aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/hw
diff options
context:
space:
mode:
Diffstat (limited to 'xorg-server/hw')
-rw-r--r--xorg-server/hw/dmx/dmxinit.c1
-rw-r--r--xorg-server/hw/kdrive/ephyr/ephyr.c13
-rw-r--r--xorg-server/hw/kdrive/ephyr/ephyr.h6
-rw-r--r--xorg-server/hw/kdrive/ephyr/ephyrinit.c12
-rw-r--r--xorg-server/hw/kdrive/ephyr/ephyrlog.h4
-rw-r--r--xorg-server/hw/kdrive/ephyr/hostx.c41
-rw-r--r--xorg-server/hw/kdrive/ephyr/hostx.h4
-rw-r--r--xorg-server/hw/kdrive/ephyr/makefile6
-rw-r--r--xorg-server/hw/kdrive/src/kdrive.c4
-rw-r--r--xorg-server/hw/kdrive/src/kdrive.h2
-rw-r--r--xorg-server/hw/kdrive/src/kinput.c27
-rw-r--r--xorg-server/hw/kdrive/src/makefile14
-rw-r--r--xorg-server/hw/xfree86/common/compiler.h6
-rw-r--r--xorg-server/hw/xwin/InitInput.c35
-rw-r--r--xorg-server/hw/xwin/InitOutput.c117
-rw-r--r--xorg-server/hw/xwin/Makefile.am1
-rw-r--r--xorg-server/hw/xwin/XWin.rc40
-rw-r--r--xorg-server/hw/xwin/ddraw.h2322
-rwxr-xr-xxorg-server/hw/xwin/doflexbison.bat18
-rw-r--r--xorg-server/hw/xwin/glx/.gitignore4
-rwxr-xr-xxorg-server/hw/xwin/glx/buildsimpledib.bat1
-rwxr-xr-x[-rw-r--r--]xorg-server/hw/xwin/glx/gen_gl_wrappers.py694
-rw-r--r--xorg-server/hw/xwin/glx/genheaders.py539
-rw-r--r--xorg-server/hw/xwin/glx/gl.xml40269
-rw-r--r--xorg-server/hw/xwin/glx/glwindows.h8
-rw-r--r--xorg-server/hw/xwin/glx/glwrap.c18
-rw-r--r--xorg-server/hw/xwin/glx/indirect.c512
-rw-r--r--xorg-server/hw/xwin/glx/makefile43
-rw-r--r--xorg-server/hw/xwin/glx/reg.py1152
-rw-r--r--xorg-server/hw/xwin/glx/simpledib.c675
-rw-r--r--xorg-server/hw/xwin/glx/wgl.xml1947
-rw-r--r--xorg-server/hw/xwin/glx/wgl_ext_api.c7
-rw-r--r--xorg-server/hw/xwin/glx/wgl_ext_api.h28
-rw-r--r--xorg-server/hw/xwin/glx/wglext.h825
-rw-r--r--xorg-server/hw/xwin/glx/winpriv.c120
-rw-r--r--xorg-server/hw/xwin/glx/winpriv.h2
-rw-r--r--xorg-server/hw/xwin/makefile165
-rw-r--r--xorg-server/hw/xwin/propertystore.h2
-rw-r--r--xorg-server/hw/xwin/swrastwgl_dri/.gitignore1
-rw-r--r--xorg-server/hw/xwin/swrastwgl_dri/glwindows.h39
-rw-r--r--xorg-server/hw/xwin/swrastwgl_dri/glwrap.c151
-rw-r--r--xorg-server/hw/xwin/swrastwgl_dri/makefile21
-rw-r--r--xorg-server/hw/xwin/swrastwgl_dri/swrastwgl_dri.c1216
-rw-r--r--xorg-server/hw/xwin/swrastwgl_dri/swrastwgl_dri.def2
-rw-r--r--xorg-server/hw/xwin/taskbar.h39
-rw-r--r--xorg-server/hw/xwin/win.h82
-rw-r--r--xorg-server/hw/xwin/winSetAppUserModelID.c3
-rw-r--r--xorg-server/hw/xwin/winallpriv.c10
-rw-r--r--xorg-server/hw/xwin/winauth.c29
-rw-r--r--xorg-server/hw/xwin/winclip.c2
-rw-r--r--xorg-server/hw/xwin/winclipboard.h15
-rw-r--r--xorg-server/hw/xwin/winclipboardinit.c7
-rw-r--r--xorg-server/hw/xwin/winclipboardthread.c196
-rw-r--r--xorg-server/hw/xwin/winclipboardwndproc.c251
-rw-r--r--xorg-server/hw/xwin/winclipboardwrappers.c80
-rw-r--r--xorg-server/hw/xwin/winclipboardxevents.c93
-rw-r--r--xorg-server/hw/xwin/wincmap.c72
-rw-r--r--xorg-server/hw/xwin/winconfig.c119
-rw-r--r--xorg-server/hw/xwin/wincreatewnd.c34
-rw-r--r--xorg-server/hw/xwin/wincursor.c40
-rw-r--r--xorg-server/hw/xwin/windialogs.c44
-rw-r--r--xorg-server/hw/xwin/windisplay.c60
-rw-r--r--xorg-server/hw/xwin/winengine.c28
-rw-r--r--xorg-server/hw/xwin/winerror.c29
-rw-r--r--xorg-server/hw/xwin/winfont.c12
-rw-r--r--xorg-server/hw/xwin/wingc.c86
-rw-r--r--xorg-server/hw/xwin/wingetsp.c19
-rw-r--r--xorg-server/hw/xwin/winglobals.c8
-rw-r--r--xorg-server/hw/xwin/winglobals.h4
-rw-r--r--xorg-server/hw/xwin/winkeybd.c20
-rw-r--r--xorg-server/hw/xwin/winkeybd.h38
-rw-r--r--xorg-server/hw/xwin/winlayouts.h1
-rw-r--r--xorg-server/hw/xwin/winmisc.c2
-rw-r--r--xorg-server/hw/xwin/winmonitors.c6
-rw-r--r--xorg-server/hw/xwin/winmouse.c27
-rw-r--r--xorg-server/hw/xwin/winmsg.c84
-rw-r--r--xorg-server/hw/xwin/winmsg.h40
-rw-r--r--xorg-server/hw/xwin/winmsgwindow.c3
-rw-r--r--xorg-server/hw/xwin/winmultiwindowclass.c16
-rw-r--r--xorg-server/hw/xwin/winmultiwindowclass.h10
-rw-r--r--xorg-server/hw/xwin/winmultiwindowicons.c24
-rw-r--r--xorg-server/hw/xwin/winmultiwindowshape.c17
-rw-r--r--xorg-server/hw/xwin/winmultiwindowwindow.c270
-rw-r--r--xorg-server/hw/xwin/winmultiwindowwm.c334
-rw-r--r--xorg-server/hw/xwin/winmultiwindowwndproc.c221
-rw-r--r--xorg-server/hw/xwin/winnativegdi.c18
-rw-r--r--xorg-server/hw/xwin/winpfbdd.c32
-rw-r--r--xorg-server/hw/xwin/winpixmap.c45
-rw-r--r--xorg-server/hw/xwin/winpolyline.c2
-rw-r--r--xorg-server/hw/xwin/winprefs.c26
-rw-r--r--xorg-server/hw/xwin/winprefslex.l2
-rw-r--r--xorg-server/hw/xwin/winprefsyacc.y12
-rw-r--r--xorg-server/hw/xwin/winprocarg.c123
-rw-r--r--xorg-server/hw/xwin/winresource.h2
-rw-r--r--xorg-server/hw/xwin/winscrinit.c59
-rw-r--r--xorg-server/hw/xwin/winsetsp.c11
-rw-r--r--xorg-server/hw/xwin/winshaddd.c53
-rw-r--r--xorg-server/hw/xwin/winshadddnl.c302
-rw-r--r--xorg-server/hw/xwin/winshadgdi.c76
-rw-r--r--xorg-server/hw/xwin/wintrayicon.c85
-rw-r--r--xorg-server/hw/xwin/winwin32rootless.c217
-rw-r--r--xorg-server/hw/xwin/winwin32rootlesswindow.c12
-rw-r--r--xorg-server/hw/xwin/winwin32rootlesswndproc.c131
-rw-r--r--xorg-server/hw/xwin/winwindow.c75
-rw-r--r--xorg-server/hw/xwin/winwindow.h46
-rw-r--r--xorg-server/hw/xwin/winwindowswm.c74
-rw-r--r--xorg-server/hw/xwin/winwndproc.c128
-rw-r--r--xorg-server/hw/xwin/xdmcphostselect.c180
-rw-r--r--xorg-server/hw/xwin/xlaunch/COPYING25
-rw-r--r--xorg-server/hw/xwin/xlaunch/config.cc200
-rw-r--r--xorg-server/hw/xwin/xlaunch/config.h87
-rw-r--r--xorg-server/hw/xwin/xlaunch/main.cc982
-rw-r--r--xorg-server/hw/xwin/xlaunch/makefile22
-rw-r--r--xorg-server/hw/xwin/xlaunch/resources/dialog.rc153
-rw-r--r--xorg-server/hw/xwin/xlaunch/resources/fullscreen.bmpbin0 -> 22554 bytes
-rw-r--r--xorg-server/hw/xwin/xlaunch/resources/images.rc29
-rw-r--r--xorg-server/hw/xwin/xlaunch/resources/multiwindow.bmpbin0 -> 22554 bytes
-rw-r--r--xorg-server/hw/xwin/xlaunch/resources/nodecoration.bmpbin0 -> 22554 bytes
-rw-r--r--xorg-server/hw/xwin/xlaunch/resources/resources.h118
-rw-r--r--xorg-server/hw/xwin/xlaunch/resources/resources.rc32
-rw-r--r--xorg-server/hw/xwin/xlaunch/resources/strings.rc121
-rw-r--r--xorg-server/hw/xwin/xlaunch/resources/windowed.bmpbin0 -> 22554 bytes
-rw-r--r--xorg-server/hw/xwin/xlaunch/window/dialog.cc86
-rw-r--r--xorg-server/hw/xwin/xlaunch/window/dialog.h54
-rw-r--r--xorg-server/hw/xwin/xlaunch/window/makefile4
-rw-r--r--xorg-server/hw/xwin/xlaunch/window/util.cc1114
-rw-r--r--xorg-server/hw/xwin/xlaunch/window/util.h53
-rw-r--r--xorg-server/hw/xwin/xlaunch/window/window.cc284
-rw-r--r--xorg-server/hw/xwin/xlaunch/window/window.h114
-rw-r--r--xorg-server/hw/xwin/xlaunch/window/wizard.cc244
-rw-r--r--xorg-server/hw/xwin/xlaunch/window/wizard.h58
131 files changed, 53885 insertions, 5195 deletions
diff --git a/xorg-server/hw/dmx/dmxinit.c b/xorg-server/hw/dmx/dmxinit.c
index 7de402b06..ec8a59e0d 100644
--- a/xorg-server/hw/dmx/dmxinit.c
+++ b/xorg-server/hw/dmx/dmxinit.c
@@ -898,6 +898,7 @@ AbortDDX(enum ExitCode error)
}
#ifdef DDXBEFORERESET
+/* This function is called in Xserver/dix/dispatch.c */
void
ddxBeforeReset(void)
{
diff --git a/xorg-server/hw/kdrive/ephyr/ephyr.c b/xorg-server/hw/kdrive/ephyr/ephyr.c
index 02d497073..632b7eee9 100644
--- a/xorg-server/hw/kdrive/ephyr/ephyr.c
+++ b/xorg-server/hw/kdrive/ephyr/ephyr.c
@@ -61,8 +61,11 @@ Bool EphyrWantResize = 0;
Bool
ephyrInitialize(KdCardInfo * card, EphyrPriv * priv)
{
+#ifdef _MSC_VER
+ __asm int 3;
+#else
OsSignal(SIGUSR1, hostx_handle_signal);
-
+#endif
priv->base = 0;
priv->bytes_per_line = 0;
return TRUE;
@@ -796,6 +799,14 @@ ephyrUpdateModifierState(unsigned int state)
}
}
+#ifdef _MSC_VER
+ __asm int 3;
+#else
+#endif
+#ifdef _MSC_VER
+ __asm int 3;
+#else
+#endif
static Bool
ephyrCursorOffScreen(ScreenPtr *ppScreen, int *x, int *y)
{
diff --git a/xorg-server/hw/kdrive/ephyr/ephyr.h b/xorg-server/hw/kdrive/ephyr/ephyr.h
index be910c19e..1e9b930c7 100644
--- a/xorg-server/hw/kdrive/ephyr/ephyr.h
+++ b/xorg-server/hw/kdrive/ephyr/ephyr.h
@@ -26,9 +26,11 @@
#ifndef _EPHYR_H_
#define _EPHYR_H_
#include <stdio.h>
+#ifndef _MSC_VER
#include <unistd.h>
-#include <signal.h>
#include <libgen.h>
+#endif
+#include <signal.h>
#include "os.h" /* for OsSignal() */
#include "kdrive.h"
@@ -177,6 +179,8 @@ extern void ephyrCursorEnable(ScreenPtr pScreen);
extern int ephyrBufferHeight(KdScreenInfo * screen);
+extern int ephyrBufferHeight(KdScreenInfo *screen);
+
/* ephyr_draw.c */
Bool
diff --git a/xorg-server/hw/kdrive/ephyr/ephyrinit.c b/xorg-server/hw/kdrive/ephyr/ephyrinit.c
index adacac949..3a8136465 100644
--- a/xorg-server/hw/kdrive/ephyr/ephyrinit.c
+++ b/xorg-server/hw/kdrive/ephyr/ephyrinit.c
@@ -54,6 +54,7 @@ InitCard(char *name)
KdCardInfoAdd(&ephyrFuncs, 0);
}
+#ifndef _MSC_VER
void
InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv)
{
@@ -132,6 +133,7 @@ ddxUseMsg(void)
exit(1);
}
+#endif
void
processScreenArg(char *screen_size, char *parent_id)
@@ -159,6 +161,7 @@ processScreenArg(char *screen_size, char *parent_id)
}
}
+#ifndef _MSC_VER
int
ddxProcessArgument(int argc, char **argv, int i)
{
@@ -304,6 +307,15 @@ OsVendorInit(void)
KdOsInit(&EphyrOsFuncs);
}
+#ifdef DDXOSFATALERROR
+void
+OsVendorFatalError(void)
+{
+}
+#endif
+
+#endif
+
/* 'Fake' cursor stuff, could be improved */
static Bool
diff --git a/xorg-server/hw/kdrive/ephyr/ephyrlog.h b/xorg-server/hw/kdrive/ephyr/ephyrlog.h
index 0da0a2518..6671c4779 100644
--- a/xorg-server/hw/kdrive/ephyr/ephyrlog.h
+++ b/xorg-server/hw/kdrive/ephyr/ephyrlog.h
@@ -43,14 +43,14 @@
#ifndef EPHYR_LOG
#define EPHYR_LOG(...) \
LogMessageVerb(X_NOTICE, INFO_LOG_LEVEL, "in %s:%d:%s: ",\
- __FILE__, __LINE__, __func__) ; \
+ __FILE__, __LINE__, __FUNCTION__) ; \
LogMessageVerb(X_NOTICE, INFO_LOG_LEVEL, __VA_ARGS__)
#endif /*nomadik_log */
#ifndef EPHYR_LOG_ERROR
#define EPHYR_LOG_ERROR(...) \
LogMessageVerb(X_NOTICE, ERROR_LOG_LEVEL, "Error:in %s:%d:%s: ",\
- __FILE__, __LINE__, __func__) ; \
+ __FILE__, __LINE__, __FUNCTION__) ; \
LogMessageVerb(X_NOTICE, ERROR_LOG_LEVEL, __VA_ARGS__)
#endif /*EPHYR_LOG_ERROR */
diff --git a/xorg-server/hw/kdrive/ephyr/hostx.c b/xorg-server/hw/kdrive/ephyr/hostx.c
index f2b458d90..438c9f76f 100644
--- a/xorg-server/hw/kdrive/ephyr/hostx.c
+++ b/xorg-server/hw/kdrive/ephyr/hostx.c
@@ -47,9 +47,11 @@
#include <errno.h>
#include <time.h>
+#ifndef _MSC_VER
#include <sys/ipc.h>
#include <sys/shm.h>
#include <sys/time.h>
+#endif
#include <X11/Xlib.h>
#include <X11/Xutil.h>
@@ -200,7 +202,11 @@ hostx_add_screen(EphyrScreenInfo screen, unsigned long win_id, int screen_num)
void
hostx_set_display_name(char *name)
{
+#ifdef _MSC_VER
+ __asm int 3;
+#else
HostX.server_dpy_name = strdup(name);
+#endif
}
void
@@ -464,6 +470,9 @@ hostx_init(void)
}
/* Try to get share memory ximages for a little bit more speed */
+#ifdef _MSC_VER
+ __asm int 3;
+#else
if (!XShmQueryExtension(HostX.dpy) || getenv("XEPHYR_NO_SHM")) {
fprintf(stderr, "\nXephyr unable to use SHM XImages\n");
HostX.have_shm = False;
@@ -491,6 +500,7 @@ hostx_init(void)
shmdt(shminfo.shmaddr);
shmctl(shminfo.shmid, IPC_RMID, 0);
}
+#endif
XFlush(HostX.dpy);
@@ -629,7 +639,7 @@ hostx_screen_init(EphyrScreenInfo screen,
struct EphyrHostScreen *host_screen = host_screen_from_screen_info(screen);
if (!host_screen) {
- fprintf(stderr, "%s: Error in accessing hostx data\n", __func__);
+ fprintf(stderr, "%s: Error in accessing hostx data\n", __FUNCTION__);
exit(1);
}
@@ -642,10 +652,14 @@ hostx_screen_init(EphyrScreenInfo screen,
*/
if (HostX.have_shm) {
+#ifdef _MSC_VER
+ __asm int 3;
+#else
XShmDetach(HostX.dpy, &host_screen->shminfo);
XDestroyImage(host_screen->ximg);
shmdt(host_screen->shminfo.shmaddr);
shmctl(host_screen->shminfo.shmid, IPC_RMID, 0);
+#endif
}
else {
free(host_screen->ximg->data);
@@ -657,6 +671,10 @@ hostx_screen_init(EphyrScreenInfo screen,
if (HostX.have_shm) {
host_screen->ximg =
+#ifdef _MSC_VER
+__asm int 3;
+#else
+ host_screen->ximg =
XShmCreateImage(HostX.dpy, HostX.visual, HostX.depth, ZPixmap, NULL,
&host_screen->shminfo, width, buffer_height);
@@ -680,6 +698,7 @@ hostx_screen_init(EphyrScreenInfo screen,
XShmAttach(HostX.dpy, &host_screen->shminfo);
shm_success = True;
}
+#endif
}
if (!shm_success) {
@@ -804,9 +823,13 @@ hostx_paint_rect(EphyrScreenInfo screen,
}
if (HostX.have_shm) {
+#ifdef _MSC_VER
+ __asm int 3;
+#else
XShmPutImage(HostX.dpy, host_screen->win,
HostX.gc, host_screen->ximg,
sx, sy, dx, dy, width, height, False);
+#endif
}
else {
XPutImage(HostX.dpy, host_screen->win, HostX.gc, host_screen->ximg,
@@ -820,6 +843,9 @@ static void
hostx_paint_debug_rect(struct EphyrHostScreen *host_screen,
int x, int y, int width, int height)
{
+#ifdef _MSC_VER
+ __asm int 3;
+#else
struct timespec tspec;
tspec.tv_sec = HostX.damage_debug_msec / (1000000);
@@ -835,6 +861,7 @@ hostx_paint_debug_rect(struct EphyrHostScreen *host_screen,
/* nanosleep seems to work better than usleep for me... */
nanosleep(&tspec, NULL);
+#endif
}
void
@@ -1256,8 +1283,12 @@ hostx_set_window_bounding_rectangles(int a_window,
rects[i].x, rects[i].y, rects[i].width, rects[i].height);
}
/*this aways returns 1 */
+#ifdef _MSC_VER
+ __asm int 3;
+#else
XShapeCombineRectangles(dpy, a_window, ShapeBounding, 0, 0,
rects, a_num_rects, ShapeSet, YXBanded);
+#endif
is_ok = TRUE;
free(rects);
@@ -1289,8 +1320,12 @@ hostx_set_window_clipping_rectangles(int a_window,
rects[i].x, rects[i].y, rects[i].width, rects[i].height);
}
/*this aways returns 1 */
+#ifdef _MSC_VER
+ __asm int 3;
+#else
XShapeCombineRectangles(dpy, a_window, ShapeClip, 0, 0,
rects, a_num_rects, ShapeSet, YXBanded);
+#endif
is_ok = TRUE;
free(rects);
@@ -1303,11 +1338,15 @@ int
hostx_has_xshape(void)
{
int event_base = 0, error_base = 0;
+#ifdef _MSC_VER
+ __asm int 3;
+#else
Display *dpy = hostx_get_display();
if (!XShapeQueryExtension(dpy, &event_base, &error_base)) {
return FALSE;
}
+#endif
return TRUE;
}
diff --git a/xorg-server/hw/kdrive/ephyr/hostx.h b/xorg-server/hw/kdrive/ephyr/hostx.h
index 38b7b3768..a0a5df2ed 100644
--- a/xorg-server/hw/kdrive/ephyr/hostx.h
+++ b/xorg-server/hw/kdrive/ephyr/hostx.h
@@ -35,8 +35,12 @@
#define EPHYR_DBG(x, a...) \
fprintf(stderr, __FILE__ ":%d,%s() " x "\n", __LINE__, __func__, ##a)
#else
+#ifdef _MSC_VER
+#define EPHYR_DBG()
+#else
#define EPHYR_DBG(x, a...) do {} while (0)
#endif
+#endif
typedef struct EphyrHostXVars EphyrHostXVars;
typedef struct EphyrHostXEvent EphyrHostXEvent;
diff --git a/xorg-server/hw/kdrive/ephyr/makefile b/xorg-server/hw/kdrive/ephyr/makefile
new file mode 100644
index 000000000..eba9a93e1
--- /dev/null
+++ b/xorg-server/hw/kdrive/ephyr/makefile
@@ -0,0 +1,6 @@
+LIBRARY = libxephyr
+
+CSRCS=ephyrinit.c ephyr.c hostx.c
+
+INCLUDES += ..\src ..\..\..\exa
+
diff --git a/xorg-server/hw/kdrive/src/kdrive.c b/xorg-server/hw/kdrive/src/kdrive.c
index 1899a27a9..15f9915f2 100644
--- a/xorg-server/hw/kdrive/src/kdrive.c
+++ b/xorg-server/hw/kdrive/src/kdrive.c
@@ -221,6 +221,7 @@ KdProcessSwitch(void)
KdEnableScreens();
}
+#ifndef _MSC_VER
void
AbortDDX(enum ExitCode error)
{
@@ -242,6 +243,7 @@ ddxGiveUp(enum ExitCode error)
{
AbortDDX(error);
}
+#endif
Bool kdDumbDriver;
Bool kdSoftCursor;
@@ -1104,6 +1106,7 @@ KdInitOutput(ScreenInfo * pScreenInfo, int argc, char **argv)
OsRegisterSigWrapper(KdSignalWrapper);
}
+#ifndef _MSC_VER
void
OsVendorFatalError(const char *f, va_list args)
{
@@ -1120,3 +1123,4 @@ DPMSSupported(void)
{
return FALSE;
}
+#endif
diff --git a/xorg-server/hw/kdrive/src/kdrive.h b/xorg-server/hw/kdrive/src/kdrive.h
index 4829e1a1b..b93dfd6f4 100644
--- a/xorg-server/hw/kdrive/src/kdrive.h
+++ b/xorg-server/hw/kdrive/src/kdrive.h
@@ -52,7 +52,7 @@
#define KD_DPMS_POWERDOWN 3
#define KD_DPMS_MAX KD_DPMS_POWERDOWN
-#define Status int
+typedef int Status;
typedef struct _KdCardInfo {
struct _KdCardFuncs *cfuncs;
diff --git a/xorg-server/hw/kdrive/src/kinput.c b/xorg-server/hw/kdrive/src/kinput.c
index c30f1708d..f8342fb96 100644
--- a/xorg-server/hw/kdrive/src/kinput.c
+++ b/xorg-server/hw/kdrive/src/kinput.c
@@ -102,6 +102,14 @@ KdSigio(int sig)
(*kdInputFds[i].read) (kdInputFds[i].fd, kdInputFds[i].closure);
}
+#ifdef _MSC_VER
+ __asm int 3;
+#else
+#endif
+#ifdef _MSC_VER
+ __asm int 3;
+#else
+#endif
#ifdef DEBUG_SIGIO
void
@@ -145,16 +153,23 @@ KdResetInputMachine(void)
static void
KdNonBlockFd(int fd)
{
+#ifdef _MSC_VER
+ __asm int 3;
+#else
int flags;
flags = fcntl(fd, F_GETFL);
flags |= FASYNC | NOBLOCK;
fcntl(fd, F_SETFL, flags);
+#endif
}
static void
KdAddFd(int fd)
{
+#ifdef _MSC_VER
+ __asm int 3;
+#else
struct sigaction act;
sigset_t set;
@@ -171,11 +186,15 @@ KdAddFd(int fd)
sigaction(SIGIO, &act, 0);
sigemptyset(&set);
sigprocmask(SIG_SETMASK, &set, 0);
+#endif
}
static void
KdRemoveFd(int fd)
{
+#ifdef _MSC_VER
+ __asm int 3;
+#else
struct sigaction act;
int flags;
@@ -190,6 +209,7 @@ KdRemoveFd(int fd)
sigemptyset(&act.sa_mask);
sigaction(SIGIO, &act, 0);
}
+#endif
}
Bool
@@ -525,11 +545,13 @@ KdPointerProc(DeviceIntPtr pDevice, int onoff)
return BadImplementation;
}
+#ifndef _MSC_VER
Bool
LegalModifier(unsigned int key, DeviceIntPtr pDev)
{
return TRUE;
}
+#endif
static void
KdBell(int volume, DeviceIntPtr pDev, pointer arg, int something)
@@ -548,6 +570,7 @@ KdBell(int volume, DeviceIntPtr pDev, pointer arg, int something)
KdRingBell(ki, volume, ctrl->bell_pitch, ctrl->bell_duration);
}
+#ifndef _MSC_VER
void
DDXRingBell(int volume, int pitch, int duration)
{
@@ -563,7 +586,7 @@ DDXRingBell(int volume, int pitch, int duration)
}
}
}
-
+#endif
void
KdRingBell(KdKeyboardInfo * ki, int volume, int pitch, int duration)
{
@@ -2100,6 +2123,7 @@ miPointerScreenFuncRec kdPointerScreenFuncs = {
KdWarpCursor
};
+#ifndef _MSC_VER
void
ProcessInputEvents(void)
{
@@ -2108,6 +2132,7 @@ ProcessInputEvents(void)
KdProcessSwitch();
KdCheckLock();
}
+#endif
/* At the moment, absolute/relative is up to the client. */
int
diff --git a/xorg-server/hw/kdrive/src/makefile b/xorg-server/hw/kdrive/src/makefile
new file mode 100644
index 000000000..e3a826faa
--- /dev/null
+++ b/xorg-server/hw/kdrive/src/makefile
@@ -0,0 +1,14 @@
+LIBRARY = libkdrive
+
+CSRCS = \
+ kcmap.c \
+ kcurscol.c \
+ kdrive.c \
+ kinfo.c \
+ kinput.c \
+ kmap.c \
+ kmode.c \
+ kshadow.c
+
+
+
diff --git a/xorg-server/hw/xfree86/common/compiler.h b/xorg-server/hw/xfree86/common/compiler.h
index c980beeb9..dc6f77318 100644
--- a/xorg-server/hw/xfree86/common/compiler.h
+++ b/xorg-server/hw/xfree86/common/compiler.h
@@ -86,7 +86,7 @@
#endif
#endif /* __inline__ */
#ifndef __inline
-#if defined(__GNUC__)
+#if defined(__GNUC__) || defined(_MSC_VER)
/* gcc has __inline */
#elif defined(__HIGHC__)
#define __inline _Inline
@@ -1499,10 +1499,10 @@ inl(unsigned short port)
#define asm __asm
#endif
#endif
-#if !defined(__SUNPRO_C)
+#if !defined(__SUNPRO_C) && !defined(_MSC_VER)
#include <sys/inline.h>
#endif
-#if !defined(__HIGHC__) && !defined(__SUNPRO_C) || \
+#if (!defined(__HIGHC__) && !defined(__SUNPRO_C) && !defined(_MSC_VER)) || \
defined(__USLC__)
#pragma asm partial_optimization outl
#pragma asm partial_optimization outw
diff --git a/xorg-server/hw/xwin/InitInput.c b/xorg-server/hw/xwin/InitInput.c
index 395b533fc..e7f402f80 100644
--- a/xorg-server/hw/xwin/InitInput.c
+++ b/xorg-server/hw/xwin/InitInput.c
@@ -32,14 +32,13 @@
#include "win.h"
#include "dixstruct.h"
#include "inputstr.h"
-
+#include <unistd.h>
/*
* Local function prototypes
*/
#ifdef XWIN_CLIPBOARD
int winProcEstablishConnection(ClientPtr /* client */ );
-int winProcQueryTree(ClientPtr /* client */ );
int winProcSetSelectionOwner(ClientPtr /* client */ );
#endif
@@ -73,15 +72,7 @@ LegalModifier(unsigned int uiKey, DeviceIntPtr pDevice)
void
ProcessInputEvents(void)
{
-#if 0
- ErrorF("ProcessInputEvents\n");
-#endif
-
mieqProcessInputEvents();
-
-#if 0
- ErrorF("ProcessInputEvents - returning\n");
-#endif
}
void
@@ -95,9 +86,8 @@ DDXRingBell(int volume, int pitch, int duration)
void
InitInput(int argc, char *argv[])
{
-#if CYGDEBUG
+ int rc;
winDebug("InitInput\n");
-#endif
#ifdef XWIN_CLIPBOARD
/*
@@ -109,15 +99,20 @@ InitInput(int argc, char *argv[])
}
#endif
- g_pwinPointer = AddInputDevice(serverClient, winMouseProc, TRUE);
- g_pwinKeyboard = AddInputDevice(serverClient, winKeybdProc, TRUE);
- g_pwinPointer->name = strdup("Windows mouse");
- g_pwinKeyboard->name = strdup("Windows keyboard");
+ rc = AllocDevicePair(serverClient, "Windows",
+ &g_pwinPointer,
+ &g_pwinKeyboard,
+ winMouseProc,
+ winKeybdProc,
+ FALSE);
+
+ if (rc != Success)
+ FatalError("Failed to init vcxsrv default devices.\n");
mieqInit();
- /* Initialize the mode key states */
- winInitializeModeKeyStates();
+ /* Do not nitialize the mode key states here yet since the keyboard device is not started yet
+ winInitializeModeKeyStates (); */
#ifdef HAS_DEVWINDOWS
/* Only open the windows message queue device once */
@@ -134,13 +129,13 @@ InitInput(int argc, char *argv[])
}
#endif
-#if CYGDEBUG
winDebug("InitInput - returning\n");
-#endif
}
void
CloseInput(void)
{
mieqFini();
+ g_pwinPointer=NULL;
+ g_pwinKeyboard=NULL;
}
diff --git a/xorg-server/hw/xwin/InitOutput.c b/xorg-server/hw/xwin/InitOutput.c
index d6b5e4fd9..18d0aa2f8 100644
--- a/xorg-server/hw/xwin/InitOutput.c
+++ b/xorg-server/hw/xwin/InitOutput.c
@@ -35,12 +35,10 @@ from The Open Group.
#include "winmsg.h"
#include "winconfig.h"
#include "winprefs.h"
-#ifdef XWIN_CLIPBOARD
-#include "X11/Xlocale.h"
-#endif
#ifdef DPMSExtension
#include "dpmsproc.h"
#endif
+#include <locale.h>
#ifdef __CYGWIN__
#include <mntent.h>
#endif
@@ -48,11 +46,12 @@ from The Open Group.
#include "xkbsrv.h"
#endif
#ifdef RELOCATE_PROJECTROOT
+#undef Status
#include <shlobj.h>
-typedef WINAPI HRESULT(*SHGETFOLDERPATHPROC) (HWND hwndOwner,
- int nFolder,
- HANDLE hToken,
- DWORD dwFlags, LPTSTR pszPath);
+typedef HRESULT (__stdcall * SHGETFOLDERPATHPROC)(HWND hwndOwner,
+ int nFolder,
+ HANDLE hToken,
+ DWORD dwFlags, LPTSTR pszPath);
#endif
#include "glx_extinit.h"
@@ -126,6 +125,7 @@ winClipboardShutdown(void)
if (g_fClipboard && g_fClipboardLaunched && g_fClipboardStarted) {
/* Synchronously destroy the clipboard window */
if (g_hwndClipboard != NULL) {
+ g_fClipboardStarted=FALSE; /* This is to avoid dead-locls caused by the clipboard thread still doing some stuff */
SendMessage(g_hwndClipboard, WM_DESTROY, 0, 0);
/* NOTE: g_hwndClipboard is set to NULL in winclipboardthread.c */
}
@@ -135,9 +135,6 @@ winClipboardShutdown(void)
/* Wait for the clipboard thread to exit */
pthread_join(g_ptClipboardProc, NULL);
- g_fClipboardLaunched = FALSE;
- g_fClipboardStarted = FALSE;
-
winDebug("winClipboardShutdown - Clipboard thread has exited.\n");
}
}
@@ -211,9 +208,7 @@ ddxGiveUp(enum ExitCode error)
{
int i;
-#if CYGDEBUG
winDebug("ddxGiveUp\n");
-#endif
/* Perform per-screen deinitialization */
for (i = 0; i < g_iNumScreens; ++i) {
@@ -264,9 +259,11 @@ ddxGiveUp(enum ExitCode error)
PostQuitMessage(0);
{
+ int iReturn;
+
winDebug("ddxGiveUp - Releasing termination mutex\n");
- int iReturn = pthread_mutex_unlock(&g_pmTerminating);
+ iReturn = pthread_mutex_unlock(&g_pmTerminating);
if (iReturn != 0) {
ErrorF("winMsgWindowProc - pthread_mutex_unlock () failed: %d\n",
@@ -281,9 +278,7 @@ ddxGiveUp(enum ExitCode error)
void
AbortDDX(enum ExitCode error)
{
-#if CYGDEBUG
winDebug("AbortDDX\n");
-#endif
ddxGiveUp(error);
}
@@ -366,8 +361,10 @@ winCheckMount(void)
return;
}
+#ifdef WINDBG
if (!binary)
- winMsg(X_WARNING, "/tmp mounted in textmode\n");
+ winDebug("/tmp mounted in textmode\n");
+#endif
}
#else
static void
@@ -419,8 +416,17 @@ winFixupPaths(void)
#ifdef READ_FONTDIRS
{
/* Open fontpath configuration file */
+#if defined WIN32 && defined __MINGW32__
+ static Bool once = False;
+ char buffer[MAX_PATH];
+ snprintf(buffer, sizeof(buffer), "%s\\font-dirs", basedir);
+ buffer[sizeof(buffer)-1] = 0;
+ FILE *fontdirs = fopen(buffer, "rt");
+ if (once) fontdirs = NULL;
+ else once = True;
+#else
FILE *fontdirs = fopen(ETCX11DIR "/font-dirs", "rt");
-
+#endif
if (fontdirs != NULL) {
char buffer[256];
int needs_sep = TRUE;
@@ -584,7 +590,7 @@ winFixupPaths(void)
}
#endif /* RELOCATE_PROJECTROOT */
if (changed_fontpath)
- winMsg(font_from, "FontPath set to \"%s\"\n", defaultFontPath);
+ winDebug ("FontPath set to \"%s\"\n", defaultFontPath);
#ifdef RELOCATE_PROJECTROOT
if (getenv("XKEYSYMDB") == NULL) {
@@ -608,6 +614,13 @@ winFixupPaths(void)
buffer[sizeof(buffer) - 1] = 0;
putenv(buffer);
}
+ if (getenv("XHOSTPREFIX") == NULL) {
+ char buffer[MAX_PATH];
+ snprintf(buffer, sizeof(buffer), "XHOSTPREFIX=%s\\X",
+ basedir);
+ buffer[sizeof(buffer)-1] = 0;
+ putenv(buffer);
+ }
if (getenv("HOME") == NULL) {
char buffer[MAX_PATH + 5];
@@ -620,7 +633,7 @@ winFixupPaths(void)
putenv(buffer);
}
else {
- winMsg(X_ERROR, "Can not determine HOME directory\n");
+ ErrorF ("Can not determine HOME directory\n");
}
}
if (!g_fLogFileChanged) {
@@ -629,16 +642,17 @@ winFixupPaths(void)
if (size && size < sizeof(buffer)) {
snprintf(buffer + size, sizeof(buffer) - size,
- "XWin.%s.log", display);
+ "VCXSrv.%s.log", display);
buffer[sizeof(buffer) - 1] = 0;
g_pszLogFile = buffer;
- winMsg(X_DEFAULT, "Logfile set to \"%s\"\n", g_pszLogFile);
+ GetLongPathName(buffer, buffer, MAX_PATH);
+ winDebug ("Logfile set to \"%s\"\n", g_pszLogFile);
}
}
{
static char xkbbasedir[MAX_PATH];
- snprintf(xkbbasedir, sizeof(xkbbasedir), "%s\\xkb", basedir);
+ snprintf(xkbbasedir, sizeof(xkbbasedir), "%s\\xkbdata", basedir);
if (sizeof(xkbbasedir) > 0)
xkbbasedir[sizeof(xkbbasedir) - 1] = 0;
XkbBaseDirectory = xkbbasedir;
@@ -648,11 +662,8 @@ winFixupPaths(void)
}
void
-OsVendorInit(void)
+OsVendorPreInit(int argc, char *argv[])
{
- /* Re-initialize global variables on server reset */
- winInitializeGlobals();
-
winFixupPaths();
#ifdef DDXOSVERRORF
@@ -673,6 +684,17 @@ OsVendorInit(void)
LogSetParameter(XLOG_VERBOSITY, g_iLogVerbose);
LogSetParameter(XLOG_FILE_VERBOSITY, g_iLogVerbose);
+ /* Log the command line */
+ winLogCommandLine(argc, argv);
+
+}
+
+void
+OsVendorInit(void)
+{
+ /* Re-initialize global variables on server reset */
+ winInitializeGlobals();
+
/* Log the version information */
if (serverGeneration == 1)
winLogVersionInfo();
@@ -710,8 +732,7 @@ OsVendorInit(void)
g_ScreenInfo[j].iE3BTimeout = WIN_DEFAULT_E3B_TIME;
if (reportOnce) {
reportOnce = FALSE;
- winMsg(X_PROBED,
- "Windows reports only %d mouse buttons, defaulting to -emulate3buttons\n",
+ winDebug("Windows reports only %d mouse buttons, defaulting to -emulate3buttons\n",
mouseButtons);
}
}
@@ -734,6 +755,10 @@ winUseMsg(void)
#ifdef XWIN_CLIPBOARD
ErrorF("-[no]clipboard\n"
"\tEnable [disable] the clipboard integration. Default is enabled.\n");
+ ErrorF ("-[no]clipboardprimary\n"
+ "\t[Do not] map the PRIMARY selection to the windows clipboard.\n"
+ "\tThe CLIPBOARD selection is always mapped if -clipboard is enabled.\n"
+ "\tDefault is mapped.\n");
#endif
ErrorF("-clipupdates num_boxes\n"
@@ -781,7 +806,7 @@ winUseMsg(void)
ErrorF("-ignoreinput\n" "\tIgnore keyboard and mouse input.\n");
-#ifdef XWIN_MULTIWINDOWEXTWM
+#ifdef XWIN_MULTIWINDOWINTWM
ErrorF("-internalwm\n" "\tRun the internal window manager.\n");
#endif
@@ -870,10 +895,11 @@ winUseMsg(void)
ErrorF("-[no]unixkill\n" "\tCtrl+Alt+Backspace exits the X Server.\n");
-#ifdef XWIN_GLX_WINDOWS
ErrorF("-[no]wgl\n"
"\tEnable the GLX extension to use the native Windows WGL interface for hardware-accelerated OpenGL\n");
-#endif
+
+ ErrorF("-swrastwgl\n"
+ "\tEnable the GLX extension to use the native Windows WGL interface based on the swrast interface for accelerated OpenGL\n");
ErrorF("-[no]winkill\n" "\tAlt+F4 exits the X Server.\n");
@@ -934,12 +960,7 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char *argv[])
if (serverGeneration == 1)
XwinExtensionInit();
- /* Log the command line */
- winLogCommandLine(argc, argv);
-
-#if CYGDEBUG
winDebug("InitOutput\n");
-#endif
/* Validate command-line arguments */
if (serverGeneration == 1 && !winValidateArgs()) {
@@ -958,11 +979,8 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char *argv[])
#ifdef XWIN_XF86CONFIG
/* Try to read the xorg.conf-style configuration file */
if (!winReadConfigfile())
- winErrorFVerb(1, "InitOutput - Error reading config file\n");
+ ErrorF ("InitOutput - Error reading config file\n");
#else
- winMsg(X_INFO, "xorg.conf is not supported\n");
- winMsg(X_INFO, "See http://x.cygwin.com/docs/faq/cygwin-x-faq.html "
- "for more information\n");
winConfigFiles();
#endif
@@ -1018,13 +1036,22 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char *argv[])
* setlocale applies to all threads in the current process.
* Apply locale specified in LANG environment variable.
*/
- setlocale(LC_ALL, "");
+ if (!setlocale (LC_ALL, ""))
+ {
+ ErrorF ("setlocale failed.\n");
+ }
+
+ /* See if X supports the current locale */
+ if (XSupportsLocale () == FALSE)
+ {
+ ErrorF ("Warning: Locale not supported by X, falling back to 'C' locale.\n");
+ setlocale(LC_ALL, "C");
+ }
+
}
#endif
-#if CYGDEBUG || YES
winDebug("InitOutput - Returning.\n");
-#endif
}
/*
@@ -1046,7 +1073,7 @@ winCheckDisplayNumber(void)
/* Check display range */
nDisp = atoi(display);
- if (nDisp < 0 || nDisp > 65535) {
+ if (nDisp < 0 || nDisp > 59535) {
ErrorF("winCheckDisplayNumber - Bad display number: %d\n", nDisp);
return FALSE;
}
@@ -1087,7 +1114,7 @@ winCheckDisplayNumber(void)
}
if (GetLastError() == ERROR_ALREADY_EXISTS) {
ErrorF("winCheckDisplayNumber - "
- PROJECT_NAME " is already running on display %d\n", nDisp);
+ "VCXsrv, Xming or Cygwin/X is already running on display %d\n", nDisp);
return FALSE;
}
diff --git a/xorg-server/hw/xwin/Makefile.am b/xorg-server/hw/xwin/Makefile.am
index 74a4243c2..3f27b4dd2 100644
--- a/xorg-server/hw/xwin/Makefile.am
+++ b/xorg-server/hw/xwin/Makefile.am
@@ -126,6 +126,7 @@ SRCS = InitInput.c \
winprefs.h \
winresource.h \
winwindow.h \
+ windisplay.c \
XWin.rc \
$(top_srcdir)/Xext/dpmsstubs.c \
$(top_srcdir)/Xi/stubs.c \
diff --git a/xorg-server/hw/xwin/XWin.rc b/xorg-server/hw/xwin/XWin.rc
index a142f3070..eb8ebe63d 100644
--- a/xorg-server/hw/xwin/XWin.rc
+++ b/xorg-server/hw/xwin/XWin.rc
@@ -32,32 +32,29 @@
#include <windows.h>
#include "winresource.h"
#include "xwin-config.h"
-#include "version-config.h"
/*
* Dialogs
*/
/* About */
-ABOUT_BOX DIALOGEX 32, 32, 260, 105
+ABOUT_BOX DIALOGEX 32, 32, 260, 95
STYLE WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE | WS_TABSTOP | DS_CENTERMOUSE
-CAPTION "About " XVENDORNAMESHORT
+CAPTION "About "XVENDORNAMESHORT
FONT 8, "MS Shell Dlg 2"
BEGIN
- CONTROL IDI_XWIN, IDC_STATIC, "Static", SS_ICON, 8, 8, 32, 32
- LTEXT XVENDORNAMESHORT " X Server ", IDC_STATIC, 36, 8, 220, 8
- LTEXT VENDOR_MAN_VERSION, IDC_STATIC, 36, 18, 220, 8
- LTEXT BUILDERSTRING, IDC_STATIC, 36, 28, 220, 8
- LTEXT "This software is licensed under the terms of the MIT/X11 License.", IDC_STATIC, 36, 48, 220, 20
- CONTROL __VENDORDWEBSUPPORT__, ID_ABOUT_WEBSITE, "Button",
- BS_OWNERDRAW | WS_TABSTOP, 36, 68, 220, 8
- DEFPUSHBUTTON "&OK", IDOK, 105, 85, 50, 15
+ CONTROL IDI_XWIN, IDC_STATIC, "Static", SS_ICON, 8, 8, 32, 32
+ LTEXT "VcXsrv X Server ", IDC_STATIC, 36, 8, 220, 8
+ LTEXT "http://vcxsrv.sourceforge.net", IDC_STATIC, 36, 18, 220, 8
+ LTEXT "marha@users.sourceforge.net", IDC_STATIC, 36, 28, 220, 8
+ LTEXT "Version 1.14.2.0 (21 June 2013)", IDC_STATIC, 36, 38, 220, 8
+ DEFPUSHBUTTON "OK", IDOK, 105, 75, 50, 15
END
/* Depth change */
-DEPTH_CHANGE_BOX DIALOGEX 32, 32, 180, 100
+DEPTH_CHANGE_BOX DIALOGEX 32, 32, 180, 100
STYLE WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE | DS_CENTERMOUSE
FONT 8, "MS Shell Dlg 2"
CAPTION XVENDORNAMESHORT
@@ -65,16 +62,16 @@ BEGIN
DEFPUSHBUTTON "Dismiss", IDOK, 66, 80, 50, 14
CTEXT XVENDORNAMESHORT, IDC_STATIC, 40, 12, 100, 8
CTEXT "Disruptive screen configuration change.", IDC_STATIC, 7, 40, 166, 8
- CTEXT "Restore previous resolution to use " XVENDORNAMESHORT ".", IDC_STATIC, 7, 52, 166, 8
+ CTEXT "Restore previous resolution to use "XVENDORNAMESHORT".", IDC_STATIC, 7, 52, 166, 8
END
/* Exit */
-EXIT_DIALOG DIALOGEX 32, 32, 180, 78
+EXIT_DIALOG DIALOGEX 32, 32, 180, 78
STYLE WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE | WS_TABSTOP | DS_CENTERMOUSE
FONT 8, "MS Shell Dlg 2"
-CAPTION "Exit " XVENDORNAMESHORT "?"
+CAPTION "Exit "XVENDORNAMESHORT"?"
BEGIN
PUSHBUTTON "E&xit", IDOK, 55, 56, 30, 14
DEFPUSHBUTTON "&Cancel", IDCANCEL, 95, 56, 30, 14
@@ -83,6 +80,17 @@ BEGIN
CTEXT "Proceed with shutdown of this display/server?", IDC_STATIC, 7, 36, 166, 8
END
+/* Xdmcp host selection dialog */
+XDMCP_HOSTS DIALOGEX 32, 32, 260, 156
+STYLE DS_SETFONT | DS_CENTERMOUSE | WS_POPUP | WS_VISIBLE | WS_CAPTION
+EXSTYLE WS_EX_NOPARENTNOTIFY
+CAPTION "Select host to connect to"
+FONT 8, "MS Shell Dlg 2", 0, 0, 0x1
+BEGIN
+ DEFPUSHBUTTON "Connect",IDOK,61,132,50,15
+ LISTBOX IDC_HOSTLIST,7,7,245,113,LBS_SORT | LBS_NOINTEGRALHEIGHT | LBS_NOTIFY | WS_VSCROLL | WS_TABSTOP
+ PUSHBUTTON "Cancel",IDCANCEL,147,134,50,14
+END
/*
* Menus
@@ -105,4 +113,4 @@ END
*/
IDI_XWIN ICON "X.ico"
-CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "XWin.exe.manifest"
+/* CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "XWin.exe.manifest"*/
diff --git a/xorg-server/hw/xwin/ddraw.h b/xorg-server/hw/xwin/ddraw.h
deleted file mode 100644
index 1871d9551..000000000
--- a/xorg-server/hw/xwin/ddraw.h
+++ /dev/null
@@ -1,2322 +0,0 @@
-#ifdef __MINGW64_VERSION_MAJOR
-#include_next <ddraw.h>
-#define __XWIN_DDRAW_H
-#endif
-#ifndef __XWIN_DDRAW_H
-#define __XWIN_DDRAW_H
-
-#include <winnt.h>
-#include <wingdi.h>
-#include <objbase.h>
-
-#if defined(NONAMELESSUNION) && !defined(DUMMYUNIONNAME1)
-#define DUMMYUNIONNAME1 u1
-#endif
-
-#define ICOM_CALL_( xfn, p, args) (p)->lpVtbl->xfn args
-
-#ifdef UNICODE
-#define WINELIB_NAME_AW(func) func##W
-#else
-#define WINELIB_NAME_AW(func) func##A
-#endif /* UNICODE */
-#define DECL_WINELIB_TYPE_AW(type) typedef WINELIB_NAME_AW(type) type;
-
-#ifdef __cplusplus
-extern "C" {
-#endif /* defined(__cplusplus) */
-
-#ifndef DIRECTDRAW_VERSION
-#define DIRECTDRAW_VERSION 0x0700
-#endif /* DIRECTDRAW_VERSION */
-
-/*****************************************************************************
- * Predeclare the interfaces
- */
- DEFINE_GUID(CLSID_DirectDraw, 0xD7B70EE0, 0x4340, 0x11CF, 0xB0, 0x63, 0x00,
- 0x20, 0xAF, 0xC2, 0xCD, 0x35);
- DEFINE_GUID(CLSID_DirectDraw7, 0x3C305196, 0x50DB, 0x11D3, 0x9C, 0xFE, 0x00,
- 0xC0, 0x4F, 0xD9, 0x30, 0xC5);
- DEFINE_GUID(CLSID_DirectDrawClipper, 0x593817A0, 0x7DB3, 0x11CF, 0xA2, 0xDE,
- 0x00, 0xAA, 0x00, 0xb9, 0x33, 0x56);
- DEFINE_GUID(IID_IDirectDraw, 0x6C14DB80, 0xA733, 0x11CE, 0xA5, 0x21, 0x00,
- 0x20, 0xAF, 0x0B, 0xE5, 0x60);
- DEFINE_GUID(IID_IDirectDraw2, 0xB3A6F3E0, 0x2B43, 0x11CF, 0xA2, 0xDE, 0x00,
- 0xAA, 0x00, 0xB9, 0x33, 0x56);
- DEFINE_GUID(IID_IDirectDraw4, 0x9c59509a, 0x39bd, 0x11d1, 0x8c, 0x4a, 0x00,
- 0xc0, 0x4f, 0xd9, 0x30, 0xc5);
- DEFINE_GUID(IID_IDirectDraw7, 0x15e65ec0, 0x3b9c, 0x11d2, 0xb9, 0x2f, 0x00,
- 0x60, 0x97, 0x97, 0xea, 0x5b);
- DEFINE_GUID(IID_IDirectDrawSurface, 0x6C14DB81, 0xA733, 0x11CE, 0xA5, 0x21,
- 0x00, 0x20, 0xAF, 0x0B, 0xE5, 0x60);
- DEFINE_GUID(IID_IDirectDrawSurface2, 0x57805885, 0x6eec, 0x11cf, 0x94, 0x41,
- 0xa8, 0x23, 0x03, 0xc1, 0x0e, 0x27);
- DEFINE_GUID(IID_IDirectDrawSurface3, 0xDA044E00, 0x69B2, 0x11D0, 0xA1, 0xD5,
- 0x00, 0xAA, 0x00, 0xB8, 0xDF, 0xBB);
- DEFINE_GUID(IID_IDirectDrawSurface4, 0x0B2B8630, 0xAD35, 0x11D0, 0x8E, 0xA6,
- 0x00, 0x60, 0x97, 0x97, 0xEA, 0x5B);
- DEFINE_GUID(IID_IDirectDrawSurface7, 0x06675a80, 0x3b9b, 0x11d2, 0xb9, 0x2f,
- 0x00, 0x60, 0x97, 0x97, 0xea, 0x5b);
- DEFINE_GUID(IID_IDirectDrawPalette, 0x6C14DB84, 0xA733, 0x11CE, 0xA5, 0x21,
- 0x00, 0x20, 0xAF, 0x0B, 0xE5, 0x60);
- DEFINE_GUID(IID_IDirectDrawClipper, 0x6C14DB85, 0xA733, 0x11CE, 0xA5, 0x21,
- 0x00, 0x20, 0xAF, 0x0B, 0xE5, 0x60);
- DEFINE_GUID(IID_IDirectDrawColorControl, 0x4B9F0EE0, 0x0D7E, 0x11D0, 0x9B,
- 0x06, 0x00, 0xA0, 0xC9, 0x03, 0xA3, 0xB8);
- DEFINE_GUID(IID_IDirectDrawGammaControl, 0x69C11C3E, 0xB46B, 0x11D1, 0xAD,
- 0x7A, 0x00, 0xC0, 0x4F, 0xC2, 0x9B, 0x4E);
-
- typedef struct IDirectDraw *LPDIRECTDRAW;
- typedef struct IDirectDraw2 *LPDIRECTDRAW2;
- typedef struct IDirectDraw4 *LPDIRECTDRAW4;
- typedef struct IDirectDraw7 *LPDIRECTDRAW7;
- typedef struct IDirectDrawClipper *LPDIRECTDRAWCLIPPER;
- typedef struct IDirectDrawPalette *LPDIRECTDRAWPALETTE;
- typedef struct IDirectDrawSurface *LPDIRECTDRAWSURFACE;
- typedef struct IDirectDrawSurface2 *LPDIRECTDRAWSURFACE2;
- typedef struct IDirectDrawSurface3 *LPDIRECTDRAWSURFACE3;
- typedef struct IDirectDrawSurface4 *LPDIRECTDRAWSURFACE4;
- typedef struct IDirectDrawSurface7 *LPDIRECTDRAWSURFACE7;
- typedef struct IDirectDrawColorControl *LPDIRECTDRAWCOLORCONTROL;
- typedef struct IDirectDrawGammaControl *LPDIRECTDRAWGAMMACONTROL;
-
-#define DDENUMRET_CANCEL 0
-#define DDENUMRET_OK 1
-
-#define DD_OK 0
-
-#define _FACDD 0x876
-#define MAKE_DDHRESULT( code ) MAKE_HRESULT( 1, _FACDD, code )
-
-#define DDERR_ALREADYINITIALIZED MAKE_DDHRESULT( 5 )
-#define DDERR_CANNOTATTACHSURFACE MAKE_DDHRESULT( 10 )
-#define DDERR_CANNOTDETACHSURFACE MAKE_DDHRESULT( 20 )
-#define DDERR_CURRENTLYNOTAVAIL MAKE_DDHRESULT( 40 )
-#define DDERR_EXCEPTION MAKE_DDHRESULT( 55 )
-#define DDERR_GENERIC E_FAIL
-#define DDERR_HEIGHTALIGN MAKE_DDHRESULT( 90 )
-#define DDERR_INCOMPATIBLEPRIMARY MAKE_DDHRESULT( 95 )
-#define DDERR_INVALIDCAPS MAKE_DDHRESULT( 100 )
-#define DDERR_INVALIDCLIPLIST MAKE_DDHRESULT( 110 )
-#define DDERR_INVALIDMODE MAKE_DDHRESULT( 120 )
-#define DDERR_INVALIDOBJECT MAKE_DDHRESULT( 130 )
-#define DDERR_INVALIDPARAMS E_INVALIDARG
-#define DDERR_INVALIDPIXELFORMAT MAKE_DDHRESULT( 145 )
-#define DDERR_INVALIDRECT MAKE_DDHRESULT( 150 )
-#define DDERR_LOCKEDSURFACES MAKE_DDHRESULT( 160 )
-#define DDERR_NO3D MAKE_DDHRESULT( 170 )
-#define DDERR_NOALPHAHW MAKE_DDHRESULT( 180 )
-#define DDERR_NOSTEREOHARDWARE MAKE_DDHRESULT( 181 )
-#define DDERR_NOSURFACELEFT MAKE_DDHRESULT( 182 )
-#define DDERR_NOCLIPLIST MAKE_DDHRESULT( 205 )
-#define DDERR_NOCOLORCONVHW MAKE_DDHRESULT( 210 )
-#define DDERR_NOCOOPERATIVELEVELSET MAKE_DDHRESULT( 212 )
-#define DDERR_NOCOLORKEY MAKE_DDHRESULT( 215 )
-#define DDERR_NOCOLORKEYHW MAKE_DDHRESULT( 220 )
-#define DDERR_NODIRECTDRAWSUPPORT MAKE_DDHRESULT( 222 )
-#define DDERR_NOEXCLUSIVEMODE MAKE_DDHRESULT( 225 )
-#define DDERR_NOFLIPHW MAKE_DDHRESULT( 230 )
-#define DDERR_NOGDI MAKE_DDHRESULT( 240 )
-#define DDERR_NOMIRRORHW MAKE_DDHRESULT( 250 )
-#define DDERR_NOTFOUND MAKE_DDHRESULT( 255 )
-#define DDERR_NOOVERLAYHW MAKE_DDHRESULT( 260 )
-#define DDERR_OVERLAPPINGRECTS MAKE_DDHRESULT( 270 )
-#define DDERR_NORASTEROPHW MAKE_DDHRESULT( 280 )
-#define DDERR_NOROTATIONHW MAKE_DDHRESULT( 290 )
-#define DDERR_NOSTRETCHHW MAKE_DDHRESULT( 310 )
-#define DDERR_NOT4BITCOLOR MAKE_DDHRESULT( 316 )
-#define DDERR_NOT4BITCOLORINDEX MAKE_DDHRESULT( 317 )
-#define DDERR_NOT8BITCOLOR MAKE_DDHRESULT( 320 )
-#define DDERR_NOTEXTUREHW MAKE_DDHRESULT( 330 )
-#define DDERR_NOVSYNCHW MAKE_DDHRESULT( 335 )
-#define DDERR_NOZBUFFERHW MAKE_DDHRESULT( 340 )
-#define DDERR_NOZOVERLAYHW MAKE_DDHRESULT( 350 )
-#define DDERR_OUTOFCAPS MAKE_DDHRESULT( 360 )
-#define DDERR_OUTOFMEMORY E_OUTOFMEMORY
-#define DDERR_OUTOFVIDEOMEMORY MAKE_DDHRESULT( 380 )
-#define DDERR_OVERLAYCANTCLIP MAKE_DDHRESULT( 382 )
-#define DDERR_OVERLAYCOLORKEYONLYONEACTIVE MAKE_DDHRESULT( 384 )
-#define DDERR_PALETTEBUSY MAKE_DDHRESULT( 387 )
-#define DDERR_COLORKEYNOTSET MAKE_DDHRESULT( 400 )
-#define DDERR_SURFACEALREADYATTACHED MAKE_DDHRESULT( 410 )
-#define DDERR_SURFACEALREADYDEPENDENT MAKE_DDHRESULT( 420 )
-#define DDERR_SURFACEBUSY MAKE_DDHRESULT( 430 )
-#define DDERR_CANTLOCKSURFACE MAKE_DDHRESULT( 435 )
-#define DDERR_SURFACEISOBSCURED MAKE_DDHRESULT( 440 )
-#define DDERR_SURFACELOST MAKE_DDHRESULT( 450 )
-#define DDERR_SURFACENOTATTACHED MAKE_DDHRESULT( 460 )
-#define DDERR_TOOBIGHEIGHT MAKE_DDHRESULT( 470 )
-#define DDERR_TOOBIGSIZE MAKE_DDHRESULT( 480 )
-#define DDERR_TOOBIGWIDTH MAKE_DDHRESULT( 490 )
-#define DDERR_UNSUPPORTED E_NOTIMPL
-#define DDERR_UNSUPPORTEDFORMAT MAKE_DDHRESULT( 510 )
-#define DDERR_UNSUPPORTEDMASK MAKE_DDHRESULT( 520 )
-#define DDERR_INVALIDSTREAM MAKE_DDHRESULT( 521 )
-#define DDERR_VERTICALBLANKINPROGRESS MAKE_DDHRESULT( 537 )
-#define DDERR_WASSTILLDRAWING MAKE_DDHRESULT( 540 )
-#define DDERR_DDSCAPSCOMPLEXREQUIRED MAKE_DDHRESULT( 542 )
-#define DDERR_XALIGN MAKE_DDHRESULT( 560 )
-#define DDERR_INVALIDDIRECTDRAWGUID MAKE_DDHRESULT( 561 )
-#define DDERR_DIRECTDRAWALREADYCREATED MAKE_DDHRESULT( 562 )
-#define DDERR_NODIRECTDRAWHW MAKE_DDHRESULT( 563 )
-#define DDERR_PRIMARYSURFACEALREADYEXISTS MAKE_DDHRESULT( 564 )
-#define DDERR_NOEMULATION MAKE_DDHRESULT( 565 )
-#define DDERR_REGIONTOOSMALL MAKE_DDHRESULT( 566 )
-#define DDERR_CLIPPERISUSINGHWND MAKE_DDHRESULT( 567 )
-#define DDERR_NOCLIPPERATTACHED MAKE_DDHRESULT( 568 )
-#define DDERR_NOHWND MAKE_DDHRESULT( 569 )
-#define DDERR_HWNDSUBCLASSED MAKE_DDHRESULT( 570 )
-#define DDERR_HWNDALREADYSET MAKE_DDHRESULT( 571 )
-#define DDERR_NOPALETTEATTACHED MAKE_DDHRESULT( 572 )
-#define DDERR_NOPALETTEHW MAKE_DDHRESULT( 573 )
-#define DDERR_BLTFASTCANTCLIP MAKE_DDHRESULT( 574 )
-#define DDERR_NOBLTHW MAKE_DDHRESULT( 575 )
-#define DDERR_NODDROPSHW MAKE_DDHRESULT( 576 )
-#define DDERR_OVERLAYNOTVISIBLE MAKE_DDHRESULT( 577 )
-#define DDERR_NOOVERLAYDEST MAKE_DDHRESULT( 578 )
-#define DDERR_INVALIDPOSITION MAKE_DDHRESULT( 579 )
-#define DDERR_NOTAOVERLAYSURFACE MAKE_DDHRESULT( 580 )
-#define DDERR_EXCLUSIVEMODEALREADYSET MAKE_DDHRESULT( 581 )
-#define DDERR_NOTFLIPPABLE MAKE_DDHRESULT( 582 )
-#define DDERR_CANTDUPLICATE MAKE_DDHRESULT( 583 )
-#define DDERR_NOTLOCKED MAKE_DDHRESULT( 584 )
-#define DDERR_CANTCREATEDC MAKE_DDHRESULT( 585 )
-#define DDERR_NODC MAKE_DDHRESULT( 586 )
-#define DDERR_WRONGMODE MAKE_DDHRESULT( 587 )
-#define DDERR_IMPLICITLYCREATED MAKE_DDHRESULT( 588 )
-#define DDERR_NOTPALETTIZED MAKE_DDHRESULT( 589 )
-#define DDERR_UNSUPPORTEDMODE MAKE_DDHRESULT( 590 )
-#define DDERR_NOMIPMAPHW MAKE_DDHRESULT( 591 )
-#define DDERR_INVALIDSURFACETYPE MAKE_DDHRESULT( 592 )
-#define DDERR_NOOPTIMIZEHW MAKE_DDHRESULT( 600 )
-#define DDERR_NOTLOADED MAKE_DDHRESULT( 601 )
-#define DDERR_NOFOCUSWINDOW MAKE_DDHRESULT( 602 )
-#define DDERR_NOTONMIPMAPSUBLEVEL MAKE_DDHRESULT( 603 )
-#define DDERR_DCALREADYCREATED MAKE_DDHRESULT( 620 )
-#define DDERR_NONONLOCALVIDMEM MAKE_DDHRESULT( 630 )
-#define DDERR_CANTPAGELOCK MAKE_DDHRESULT( 640 )
-#define DDERR_CANTPAGEUNLOCK MAKE_DDHRESULT( 660 )
-#define DDERR_NOTPAGELOCKED MAKE_DDHRESULT( 680 )
-#define DDERR_MOREDATA MAKE_DDHRESULT( 690 )
-#define DDERR_EXPIRED MAKE_DDHRESULT( 691 )
-#define DDERR_TESTFINISHED MAKE_DDHRESULT( 692 )
-#define DDERR_NEWMODE MAKE_DDHRESULT( 693 )
-#define DDERR_D3DNOTINITIALIZED MAKE_DDHRESULT( 694 )
-#define DDERR_VIDEONOTACTIVE MAKE_DDHRESULT( 695 )
-#define DDERR_NOMONITORINFORMATION MAKE_DDHRESULT( 696 )
-#define DDERR_NODRIVERSUPPORT MAKE_DDHRESULT( 697 )
-#define DDERR_DEVICEDOESNTOWNSURFACE MAKE_DDHRESULT( 699 )
-#define DDERR_NOTINITIALIZED CO_E_NOTINITIALIZED
-
-/* dwFlags for Blt* */
-#define DDBLT_ALPHADEST 0x00000001
-#define DDBLT_ALPHADESTCONSTOVERRIDE 0x00000002
-#define DDBLT_ALPHADESTNEG 0x00000004
-#define DDBLT_ALPHADESTSURFACEOVERRIDE 0x00000008
-#define DDBLT_ALPHAEDGEBLEND 0x00000010
-#define DDBLT_ALPHASRC 0x00000020
-#define DDBLT_ALPHASRCCONSTOVERRIDE 0x00000040
-#define DDBLT_ALPHASRCNEG 0x00000080
-#define DDBLT_ALPHASRCSURFACEOVERRIDE 0x00000100
-#define DDBLT_ASYNC 0x00000200
-#define DDBLT_COLORFILL 0x00000400
-#define DDBLT_DDFX 0x00000800
-#define DDBLT_DDROPS 0x00001000
-#define DDBLT_KEYDEST 0x00002000
-#define DDBLT_KEYDESTOVERRIDE 0x00004000
-#define DDBLT_KEYSRC 0x00008000
-#define DDBLT_KEYSRCOVERRIDE 0x00010000
-#define DDBLT_ROP 0x00020000
-#define DDBLT_ROTATIONANGLE 0x00040000
-#define DDBLT_ZBUFFER 0x00080000
-#define DDBLT_ZBUFFERDESTCONSTOVERRIDE 0x00100000
-#define DDBLT_ZBUFFERDESTOVERRIDE 0x00200000
-#define DDBLT_ZBUFFERSRCCONSTOVERRIDE 0x00400000
-#define DDBLT_ZBUFFERSRCOVERRIDE 0x00800000
-#define DDBLT_WAIT 0x01000000
-#define DDBLT_DEPTHFILL 0x02000000
-#define DDBLT_DONOTWAIT 0x08000000
-
-/* dwTrans for BltFast */
-#define DDBLTFAST_NOCOLORKEY 0x00000000
-#define DDBLTFAST_SRCCOLORKEY 0x00000001
-#define DDBLTFAST_DESTCOLORKEY 0x00000002
-#define DDBLTFAST_WAIT 0x00000010
-#define DDBLTFAST_DONOTWAIT 0x00000020
-
-/* dwFlags for Flip */
-#define DDFLIP_WAIT 0x00000001
-#define DDFLIP_EVEN 0x00000002 /* only valid for overlay */
-#define DDFLIP_ODD 0x00000004 /* only valid for overlay */
-#define DDFLIP_NOVSYNC 0x00000008
-#define DDFLIP_STEREO 0x00000010
-#define DDFLIP_DONOTWAIT 0x00000020
-
-/* dwFlags for GetBltStatus */
-#define DDGBS_CANBLT 0x00000001
-#define DDGBS_ISBLTDONE 0x00000002
-
-/* dwFlags for IDirectDrawSurface7::GetFlipStatus */
-#define DDGFS_CANFLIP 1L
-#define DDGFS_ISFLIPDONE 2L
-
-/* dwFlags for IDirectDrawSurface7::SetPrivateData */
-#define DDSPD_IUNKNOWNPTR 1L
-#define DDSPD_VOLATILE 2L
-
-/* DDSCAPS.dwCaps */
-/* reserved1, was 3d capable */
-#define DDSCAPS_RESERVED1 0x00000001
-/* surface contains alpha information */
-#define DDSCAPS_ALPHA 0x00000002
-/* this surface is a backbuffer */
-#define DDSCAPS_BACKBUFFER 0x00000004
-/* complex surface structure */
-#define DDSCAPS_COMPLEX 0x00000008
-/* part of surface flipping structure */
-#define DDSCAPS_FLIP 0x00000010
-/* this surface is the frontbuffer surface */
-#define DDSCAPS_FRONTBUFFER 0x00000020
-/* this is a plain offscreen surface */
-#define DDSCAPS_OFFSCREENPLAIN 0x00000040
-/* overlay */
-#define DDSCAPS_OVERLAY 0x00000080
-/* palette objects can be created and attached to us */
-#define DDSCAPS_PALETTE 0x00000100
-/* primary surface (the one the user looks at currently)(right eye)*/
-#define DDSCAPS_PRIMARYSURFACE 0x00000200
-/* primary surface for left eye */
-#define DDSCAPS_PRIMARYSURFACELEFT 0x00000400
-/* surface exists in systemmemory */
-#define DDSCAPS_SYSTEMMEMORY 0x00000800
-/* surface can be used as a texture */
-#define DDSCAPS_TEXTURE 0x00001000
-/* surface may be destination for 3d rendering */
-#define DDSCAPS_3DDEVICE 0x00002000
-/* surface exists in videomemory */
-#define DDSCAPS_VIDEOMEMORY 0x00004000
-/* surface changes immediately visible */
-#define DDSCAPS_VISIBLE 0x00008000
-/* write only surface */
-#define DDSCAPS_WRITEONLY 0x00010000
-/* zbuffer surface */
-#define DDSCAPS_ZBUFFER 0x00020000
-/* has its own DC */
-#define DDSCAPS_OWNDC 0x00040000
-/* surface should be able to receive live video */
-#define DDSCAPS_LIVEVIDEO 0x00080000
-/* should be able to have a hw codec decompress stuff into it */
-#define DDSCAPS_HWCODEC 0x00100000
-/* mode X (320x200 or 320x240) surface */
-#define DDSCAPS_MODEX 0x00200000
-/* one mipmap surface (1 level) */
-#define DDSCAPS_MIPMAP 0x00400000
-#define DDSCAPS_RESERVED2 0x00800000
-/* memory allocation delayed until Load() */
-#define DDSCAPS_ALLOCONLOAD 0x04000000
-/* Indicates that the surface will receive data from a video port */
-#define DDSCAPS_VIDEOPORT 0x08000000
-/* surface is in local videomemory */
-#define DDSCAPS_LOCALVIDMEM 0x10000000
-/* surface is in nonlocal videomemory */
-#define DDSCAPS_NONLOCALVIDMEM 0x20000000
-/* surface is a standard VGA mode surface (NOT ModeX) */
-#define DDSCAPS_STANDARDVGAMODE 0x40000000
-/* optimized? surface */
-#define DDSCAPS_OPTIMIZED 0x80000000
-
- typedef struct _DDSCAPS {
- DWORD dwCaps; /* capabilities of surface wanted */
- } DDSCAPS, *LPDDSCAPS;
-
-/* DDSCAPS2.dwCaps2 */
-/* indicates the surface will receive data from a video port using
- deinterlacing hardware. */
-#define DDSCAPS2_HARDWAREDEINTERLACE 0x00000002
-/* indicates the surface will be locked very frequently. */
-#define DDSCAPS2_HINTDYNAMIC 0x00000004
-/* indicates surface can be re-ordered or retiled on load() */
-#define DDSCAPS2_HINTSTATIC 0x00000008
-/* indicates surface to be managed by directdraw/direct3D */
-#define DDSCAPS2_TEXTUREMANAGE 0x00000010
-/* reserved bits */
-#define DDSCAPS2_RESERVED1 0x00000020
-#define DDSCAPS2_RESERVED2 0x00000040
-/* indicates surface will never be locked again */
-#define DDSCAPS2_OPAQUE 0x00000080
-/* set at CreateSurface() time to indicate antialising will be used */
-#define DDSCAPS2_HINTANTIALIASING 0x00000100
-/* set at CreateSurface() time to indicate cubic environment map */
-#define DDSCAPS2_CUBEMAP 0x00000200
-/* face flags for cube maps */
-#define DDSCAPS2_CUBEMAP_POSITIVEX 0x00000400
-#define DDSCAPS2_CUBEMAP_NEGATIVEX 0x00000800
-#define DDSCAPS2_CUBEMAP_POSITIVEY 0x00001000
-#define DDSCAPS2_CUBEMAP_NEGATIVEY 0x00002000
-#define DDSCAPS2_CUBEMAP_POSITIVEZ 0x00004000
-#define DDSCAPS2_CUBEMAP_NEGATIVEZ 0x00008000
-/* specifies all faces of a cube for CreateSurface() */
-#define DDSCAPS2_CUBEMAP_ALLFACES ( DDSCAPS2_CUBEMAP_POSITIVEX |\
- DDSCAPS2_CUBEMAP_NEGATIVEX |\
- DDSCAPS2_CUBEMAP_POSITIVEY |\
- DDSCAPS2_CUBEMAP_NEGATIVEY |\
- DDSCAPS2_CUBEMAP_POSITIVEZ |\
- DDSCAPS2_CUBEMAP_NEGATIVEZ )
-/* set for mipmap sublevels on DirectX7 and later. ignored by CreateSurface() */
-#define DDSCAPS2_MIPMAPSUBLEVEL 0x00010000
-/* indicates texture surface to be managed by Direct3D *only* */
-#define DDSCAPS2_D3DTEXTUREMANAGE 0x00020000
-/* indicates managed surface that can safely be lost */
-#define DDSCAPS2_DONOTPERSIST 0x00040000
-/* indicates surface is part of a stereo flipping chain */
-#define DDSCAPS2_STEREOSURFACELEFT 0x00080000
-
- typedef struct _DDSCAPS2 {
- DWORD dwCaps; /* capabilities of surface wanted */
- DWORD dwCaps2; /* additional capabilities */
- DWORD dwCaps3; /* reserved capabilities */
- DWORD dwCaps4; /* more reserved capabilities */
- } DDSCAPS2, *LPDDSCAPS2;
-
-#define DD_ROP_SPACE (256/32) /* space required to store ROP array */
-
- typedef struct _DDCAPS_DX7 { /* DirectX 7 version of caps struct */
- DWORD dwSize; /* size of the DDDRIVERCAPS structure */
- DWORD dwCaps; /* driver specific capabilities */
- DWORD dwCaps2; /* more driver specific capabilites */
- DWORD dwCKeyCaps; /* color key capabilities of the surface */
- DWORD dwFXCaps; /* driver specific stretching and effects capabilites */
- DWORD dwFXAlphaCaps; /* alpha driver specific capabilities */
- DWORD dwPalCaps; /* palette capabilities */
- DWORD dwSVCaps; /* stereo vision capabilities */
- DWORD dwAlphaBltConstBitDepths; /* DDBD_2,4,8 */
- DWORD dwAlphaBltPixelBitDepths; /* DDBD_1,2,4,8 */
- DWORD dwAlphaBltSurfaceBitDepths; /* DDBD_1,2,4,8 */
- DWORD dwAlphaOverlayConstBitDepths; /* DDBD_2,4,8 */
- DWORD dwAlphaOverlayPixelBitDepths; /* DDBD_1,2,4,8 */
- DWORD dwAlphaOverlaySurfaceBitDepths; /* DDBD_1,2,4,8 */
- DWORD dwZBufferBitDepths; /* DDBD_8,16,24,32 */
- DWORD dwVidMemTotal; /* total amount of video memory */
- DWORD dwVidMemFree; /* amount of free video memory */
- DWORD dwMaxVisibleOverlays; /* maximum number of visible overlays */
- DWORD dwCurrVisibleOverlays; /* current number of visible overlays */
- DWORD dwNumFourCCCodes; /* number of four cc codes */
- DWORD dwAlignBoundarySrc; /* source rectangle alignment */
- DWORD dwAlignSizeSrc; /* source rectangle byte size */
- DWORD dwAlignBoundaryDest; /* dest rectangle alignment */
- DWORD dwAlignSizeDest; /* dest rectangle byte size */
- DWORD dwAlignStrideAlign; /* stride alignment */
- DWORD dwRops[DD_ROP_SPACE]; /* ROPS supported */
- DDSCAPS ddsOldCaps; /* old DDSCAPS - superceded for DirectX6+ */
- DWORD dwMinOverlayStretch; /* minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwMaxOverlayStretch; /* maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwMinLiveVideoStretch; /* minimum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwMaxLiveVideoStretch; /* maximum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwMinHwCodecStretch; /* minimum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwMaxHwCodecStretch; /* maximum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwReserved1;
- DWORD dwReserved2;
- DWORD dwReserved3;
- DWORD dwSVBCaps; /* driver specific capabilities for System->Vmem blts */
- DWORD dwSVBCKeyCaps; /* driver color key capabilities for System->Vmem blts */
- DWORD dwSVBFXCaps; /* driver FX capabilities for System->Vmem blts */
- DWORD dwSVBRops[DD_ROP_SPACE]; /* ROPS supported for System->Vmem blts */
- DWORD dwVSBCaps; /* driver specific capabilities for Vmem->System blts */
- DWORD dwVSBCKeyCaps; /* driver color key capabilities for Vmem->System blts */
- DWORD dwVSBFXCaps; /* driver FX capabilities for Vmem->System blts */
- DWORD dwVSBRops[DD_ROP_SPACE]; /* ROPS supported for Vmem->System blts */
- DWORD dwSSBCaps; /* driver specific capabilities for System->System blts */
- DWORD dwSSBCKeyCaps; /* driver color key capabilities for System->System blts */
- DWORD dwSSBFXCaps; /* driver FX capabilities for System->System blts */
- DWORD dwSSBRops[DD_ROP_SPACE]; /* ROPS supported for System->System blts */
- DWORD dwMaxVideoPorts; /* maximum number of usable video ports */
- DWORD dwCurrVideoPorts; /* current number of video ports used */
- DWORD dwSVBCaps2; /* more driver specific capabilities for System->Vmem blts */
- DWORD dwNLVBCaps; /* driver specific capabilities for non-local->local vidmem blts */
- DWORD dwNLVBCaps2; /* more driver specific capabilities non-local->local vidmem blts */
- DWORD dwNLVBCKeyCaps; /* driver color key capabilities for non-local->local vidmem blts */
- DWORD dwNLVBFXCaps; /* driver FX capabilities for non-local->local blts */
- DWORD dwNLVBRops[DD_ROP_SPACE]; /* ROPS supported for non-local->local blts */
- DDSCAPS2 ddsCaps; /* surface capabilities */
- } DDCAPS_DX7, *LPDDCAPS_DX7;
-
- typedef struct _DDCAPS_DX6 { /* DirectX 6 version of caps struct */
- DWORD dwSize; /* size of the DDDRIVERCAPS structure */
- DWORD dwCaps; /* driver specific capabilities */
- DWORD dwCaps2; /* more driver specific capabilites */
- DWORD dwCKeyCaps; /* color key capabilities of the surface */
- DWORD dwFXCaps; /* driver specific stretching and effects capabilites */
- DWORD dwFXAlphaCaps; /* alpha driver specific capabilities */
- DWORD dwPalCaps; /* palette capabilities */
- DWORD dwSVCaps; /* stereo vision capabilities */
- DWORD dwAlphaBltConstBitDepths; /* DDBD_2,4,8 */
- DWORD dwAlphaBltPixelBitDepths; /* DDBD_1,2,4,8 */
- DWORD dwAlphaBltSurfaceBitDepths; /* DDBD_1,2,4,8 */
- DWORD dwAlphaOverlayConstBitDepths; /* DDBD_2,4,8 */
- DWORD dwAlphaOverlayPixelBitDepths; /* DDBD_1,2,4,8 */
- DWORD dwAlphaOverlaySurfaceBitDepths; /* DDBD_1,2,4,8 */
- DWORD dwZBufferBitDepths; /* DDBD_8,16,24,32 */
- DWORD dwVidMemTotal; /* total amount of video memory */
- DWORD dwVidMemFree; /* amount of free video memory */
- DWORD dwMaxVisibleOverlays; /* maximum number of visible overlays */
- DWORD dwCurrVisibleOverlays; /* current number of visible overlays */
- DWORD dwNumFourCCCodes; /* number of four cc codes */
- DWORD dwAlignBoundarySrc; /* source rectangle alignment */
- DWORD dwAlignSizeSrc; /* source rectangle byte size */
- DWORD dwAlignBoundaryDest; /* dest rectangle alignment */
- DWORD dwAlignSizeDest; /* dest rectangle byte size */
- DWORD dwAlignStrideAlign; /* stride alignment */
- DWORD dwRops[DD_ROP_SPACE]; /* ROPS supported */
- DDSCAPS ddsOldCaps; /* old DDSCAPS - superceded for DirectX6+ */
- DWORD dwMinOverlayStretch; /* minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwMaxOverlayStretch; /* maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwMinLiveVideoStretch; /* minimum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwMaxLiveVideoStretch; /* maximum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwMinHwCodecStretch; /* minimum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwMaxHwCodecStretch; /* maximum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwReserved1;
- DWORD dwReserved2;
- DWORD dwReserved3;
- DWORD dwSVBCaps; /* driver specific capabilities for System->Vmem blts */
- DWORD dwSVBCKeyCaps; /* driver color key capabilities for System->Vmem blts */
- DWORD dwSVBFXCaps; /* driver FX capabilities for System->Vmem blts */
- DWORD dwSVBRops[DD_ROP_SPACE]; /* ROPS supported for System->Vmem blts */
- DWORD dwVSBCaps; /* driver specific capabilities for Vmem->System blts */
- DWORD dwVSBCKeyCaps; /* driver color key capabilities for Vmem->System blts */
- DWORD dwVSBFXCaps; /* driver FX capabilities for Vmem->System blts */
- DWORD dwVSBRops[DD_ROP_SPACE]; /* ROPS supported for Vmem->System blts */
- DWORD dwSSBCaps; /* driver specific capabilities for System->System blts */
- DWORD dwSSBCKeyCaps; /* driver color key capabilities for System->System blts */
- DWORD dwSSBFXCaps; /* driver FX capabilities for System->System blts */
- DWORD dwSSBRops[DD_ROP_SPACE]; /* ROPS supported for System->System blts */
- DWORD dwMaxVideoPorts; /* maximum number of usable video ports */
- DWORD dwCurrVideoPorts; /* current number of video ports used */
- DWORD dwSVBCaps2; /* more driver specific capabilities for System->Vmem blts */
- DWORD dwNLVBCaps; /* driver specific capabilities for non-local->local vidmem blts */
- DWORD dwNLVBCaps2; /* more driver specific capabilities non-local->local vidmem blts */
- DWORD dwNLVBCKeyCaps; /* driver color key capabilities for non-local->local vidmem blts */
- DWORD dwNLVBFXCaps; /* driver FX capabilities for non-local->local blts */
- DWORD dwNLVBRops[DD_ROP_SPACE]; /* ROPS supported for non-local->local blts */
- /* and one new member for DirectX 6 */
- DDSCAPS2 ddsCaps; /* surface capabilities */
- } DDCAPS_DX6, *LPDDCAPS_DX6;
-
- typedef struct _DDCAPS_DX5 { /* DirectX5 version of caps struct */
- DWORD dwSize; /* size of the DDDRIVERCAPS structure */
- DWORD dwCaps; /* driver specific capabilities */
- DWORD dwCaps2; /* more driver specific capabilites */
- DWORD dwCKeyCaps; /* color key capabilities of the surface */
- DWORD dwFXCaps; /* driver specific stretching and effects capabilites */
- DWORD dwFXAlphaCaps; /* alpha driver specific capabilities */
- DWORD dwPalCaps; /* palette capabilities */
- DWORD dwSVCaps; /* stereo vision capabilities */
- DWORD dwAlphaBltConstBitDepths; /* DDBD_2,4,8 */
- DWORD dwAlphaBltPixelBitDepths; /* DDBD_1,2,4,8 */
- DWORD dwAlphaBltSurfaceBitDepths; /* DDBD_1,2,4,8 */
- DWORD dwAlphaOverlayConstBitDepths; /* DDBD_2,4,8 */
- DWORD dwAlphaOverlayPixelBitDepths; /* DDBD_1,2,4,8 */
- DWORD dwAlphaOverlaySurfaceBitDepths; /* DDBD_1,2,4,8 */
- DWORD dwZBufferBitDepths; /* DDBD_8,16,24,32 */
- DWORD dwVidMemTotal; /* total amount of video memory */
- DWORD dwVidMemFree; /* amount of free video memory */
- DWORD dwMaxVisibleOverlays; /* maximum number of visible overlays */
- DWORD dwCurrVisibleOverlays; /* current number of visible overlays */
- DWORD dwNumFourCCCodes; /* number of four cc codes */
- DWORD dwAlignBoundarySrc; /* source rectangle alignment */
- DWORD dwAlignSizeSrc; /* source rectangle byte size */
- DWORD dwAlignBoundaryDest; /* dest rectangle alignment */
- DWORD dwAlignSizeDest; /* dest rectangle byte size */
- DWORD dwAlignStrideAlign; /* stride alignment */
- DWORD dwRops[DD_ROP_SPACE]; /* ROPS supported */
- DDSCAPS ddsCaps; /* DDSCAPS structure has all the general capabilities */
- DWORD dwMinOverlayStretch; /* minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwMaxOverlayStretch; /* maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwMinLiveVideoStretch; /* minimum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwMaxLiveVideoStretch; /* maximum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwMinHwCodecStretch; /* minimum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwMaxHwCodecStretch; /* maximum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwReserved1;
- DWORD dwReserved2;
- DWORD dwReserved3;
- DWORD dwSVBCaps; /* driver specific capabilities for System->Vmem blts */
- DWORD dwSVBCKeyCaps; /* driver color key capabilities for System->Vmem blts */
- DWORD dwSVBFXCaps; /* driver FX capabilities for System->Vmem blts */
- DWORD dwSVBRops[DD_ROP_SPACE]; /* ROPS supported for System->Vmem blts */
- DWORD dwVSBCaps; /* driver specific capabilities for Vmem->System blts */
- DWORD dwVSBCKeyCaps; /* driver color key capabilities for Vmem->System blts */
- DWORD dwVSBFXCaps; /* driver FX capabilities for Vmem->System blts */
- DWORD dwVSBRops[DD_ROP_SPACE]; /* ROPS supported for Vmem->System blts */
- DWORD dwSSBCaps; /* driver specific capabilities for System->System blts */
- DWORD dwSSBCKeyCaps; /* driver color key capabilities for System->System blts */
- DWORD dwSSBFXCaps; /* driver FX capabilities for System->System blts */
- DWORD dwSSBRops[DD_ROP_SPACE]; /* ROPS supported for System->System blts */
- /* the following are the new DirectX 5 members */
- DWORD dwMaxVideoPorts; /* maximum number of usable video ports */
- DWORD dwCurrVideoPorts; /* current number of video ports used */
- DWORD dwSVBCaps2; /* more driver specific capabilities for System->Vmem blts */
- DWORD dwNLVBCaps; /* driver specific capabilities for non-local->local vidmem blts */
- DWORD dwNLVBCaps2; /* more driver specific capabilities non-local->local vidmem blts */
- DWORD dwNLVBCKeyCaps; /* driver color key capabilities for non-local->local vidmem blts */
- DWORD dwNLVBFXCaps; /* driver FX capabilities for non-local->local blts */
- DWORD dwNLVBRops[DD_ROP_SPACE]; /* ROPS supported for non-local->local blts */
- } DDCAPS_DX5, *LPDDCAPS_DX5;
-
- typedef struct _DDCAPS_DX3 { /* DirectX3 version of caps struct */
- DWORD dwSize; /* size of the DDDRIVERCAPS structure */
- DWORD dwCaps; /* driver specific capabilities */
- DWORD dwCaps2; /* more driver specific capabilites */
- DWORD dwCKeyCaps; /* color key capabilities of the surface */
- DWORD dwFXCaps; /* driver specific stretching and effects capabilites */
- DWORD dwFXAlphaCaps; /* alpha driver specific capabilities */
- DWORD dwPalCaps; /* palette capabilities */
- DWORD dwSVCaps; /* stereo vision capabilities */
- DWORD dwAlphaBltConstBitDepths; /* DDBD_2,4,8 */
- DWORD dwAlphaBltPixelBitDepths; /* DDBD_1,2,4,8 */
- DWORD dwAlphaBltSurfaceBitDepths; /* DDBD_1,2,4,8 */
- DWORD dwAlphaOverlayConstBitDepths; /* DDBD_2,4,8 */
- DWORD dwAlphaOverlayPixelBitDepths; /* DDBD_1,2,4,8 */
- DWORD dwAlphaOverlaySurfaceBitDepths; /* DDBD_1,2,4,8 */
- DWORD dwZBufferBitDepths; /* DDBD_8,16,24,32 */
- DWORD dwVidMemTotal; /* total amount of video memory */
- DWORD dwVidMemFree; /* amount of free video memory */
- DWORD dwMaxVisibleOverlays; /* maximum number of visible overlays */
- DWORD dwCurrVisibleOverlays; /* current number of visible overlays */
- DWORD dwNumFourCCCodes; /* number of four cc codes */
- DWORD dwAlignBoundarySrc; /* source rectangle alignment */
- DWORD dwAlignSizeSrc; /* source rectangle byte size */
- DWORD dwAlignBoundaryDest; /* dest rectangle alignment */
- DWORD dwAlignSizeDest; /* dest rectangle byte size */
- DWORD dwAlignStrideAlign; /* stride alignment */
- DWORD dwRops[DD_ROP_SPACE]; /* ROPS supported */
- DDSCAPS ddsCaps; /* DDSCAPS structure has all the general capabilities */
- DWORD dwMinOverlayStretch; /* minimum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwMaxOverlayStretch; /* maximum overlay stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwMinLiveVideoStretch; /* minimum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwMaxLiveVideoStretch; /* maximum live video stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwMinHwCodecStretch; /* minimum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwMaxHwCodecStretch; /* maximum hardware codec stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3 */
- DWORD dwReserved1;
- DWORD dwReserved2;
- DWORD dwReserved3;
- DWORD dwSVBCaps; /* driver specific capabilities for System->Vmem blts */
- DWORD dwSVBCKeyCaps; /* driver color key capabilities for System->Vmem blts */
- DWORD dwSVBFXCaps; /* driver FX capabilities for System->Vmem blts */
- DWORD dwSVBRops[DD_ROP_SPACE]; /* ROPS supported for System->Vmem blts */
- DWORD dwVSBCaps; /* driver specific capabilities for Vmem->System blts */
- DWORD dwVSBCKeyCaps; /* driver color key capabilities for Vmem->System blts */
- DWORD dwVSBFXCaps; /* driver FX capabilities for Vmem->System blts */
- DWORD dwVSBRops[DD_ROP_SPACE]; /* ROPS supported for Vmem->System blts */
- DWORD dwSSBCaps; /* driver specific capabilities for System->System blts */
- DWORD dwSSBCKeyCaps; /* driver color key capabilities for System->System blts */
- DWORD dwSSBFXCaps; /* driver FX capabilities for System->System blts */
- DWORD dwSSBRops[DD_ROP_SPACE]; /* ROPS supported for System->System blts */
- DWORD dwReserved4;
- DWORD dwReserved5;
- DWORD dwReserved6;
- } DDCAPS_DX3, *LPDDCAPS_DX3;
-
-/* set caps struct according to DIRECTDRAW_VERSION */
-
-#if DIRECTDRAW_VERSION <= 0x300
- typedef DDCAPS_DX3 DDCAPS;
-#elif DIRECTDRAW_VERSION <= 0x500
- typedef DDCAPS_DX5 DDCAPS;
-#elif DIRECTDRAW_VERSION <= 0x600
- typedef DDCAPS_DX6 DDCAPS;
-#else
- typedef DDCAPS_DX7 DDCAPS;
-#endif
-
- typedef DDCAPS *LPDDCAPS;
-
-/* DDCAPS.dwCaps */
-#define DDCAPS_3D 0x00000001
-#define DDCAPS_ALIGNBOUNDARYDEST 0x00000002
-#define DDCAPS_ALIGNSIZEDEST 0x00000004
-#define DDCAPS_ALIGNBOUNDARYSRC 0x00000008
-#define DDCAPS_ALIGNSIZESRC 0x00000010
-#define DDCAPS_ALIGNSTRIDE 0x00000020
-#define DDCAPS_BLT 0x00000040
-#define DDCAPS_BLTQUEUE 0x00000080
-#define DDCAPS_BLTFOURCC 0x00000100
-#define DDCAPS_BLTSTRETCH 0x00000200
-#define DDCAPS_GDI 0x00000400
-#define DDCAPS_OVERLAY 0x00000800
-#define DDCAPS_OVERLAYCANTCLIP 0x00001000
-#define DDCAPS_OVERLAYFOURCC 0x00002000
-#define DDCAPS_OVERLAYSTRETCH 0x00004000
-#define DDCAPS_PALETTE 0x00008000
-#define DDCAPS_PALETTEVSYNC 0x00010000
-#define DDCAPS_READSCANLINE 0x00020000
-#define DDCAPS_STEREOVIEW 0x00040000
-#define DDCAPS_VBI 0x00080000
-#define DDCAPS_ZBLTS 0x00100000
-#define DDCAPS_ZOVERLAYS 0x00200000
-#define DDCAPS_COLORKEY 0x00400000
-#define DDCAPS_ALPHA 0x00800000
-#define DDCAPS_COLORKEYHWASSIST 0x01000000
-#define DDCAPS_NOHARDWARE 0x02000000
-#define DDCAPS_BLTCOLORFILL 0x04000000
-#define DDCAPS_BANKSWITCHED 0x08000000
-#define DDCAPS_BLTDEPTHFILL 0x10000000
-#define DDCAPS_CANCLIP 0x20000000
-#define DDCAPS_CANCLIPSTRETCHED 0x40000000
-#define DDCAPS_CANBLTSYSMEM 0x80000000
-
-/* DDCAPS.dwCaps2 */
-#define DDCAPS2_CERTIFIED 0x00000001
-#define DDCAPS2_NO2DDURING3DSCENE 0x00000002
-#define DDCAPS2_VIDEOPORT 0x00000004
-#define DDCAPS2_AUTOFLIPOVERLAY 0x00000008
-#define DDCAPS2_CANBOBINTERLEAVED 0x00000010
-#define DDCAPS2_CANBOBNONINTERLEAVED 0x00000020
-#define DDCAPS2_COLORCONTROLOVERLAY 0x00000040
-#define DDCAPS2_COLORCONTROLPRIMARY 0x00000080
-#define DDCAPS2_CANDROPZ16BIT 0x00000100
-#define DDCAPS2_NONLOCALVIDMEM 0x00000200
-#define DDCAPS2_NONLOCALVIDMEMCAPS 0x00000400
-#define DDCAPS2_NOPAGELOCKREQUIRED 0x00000800
-#define DDCAPS2_WIDESURFACES 0x00001000
-#define DDCAPS2_CANFLIPODDEVEN 0x00002000
-#define DDCAPS2_CANBOBHARDWARE 0x00004000
-#define DDCAPS2_COPYFOURCC 0x00008000
-#define DDCAPS2_PRIMARYGAMMA 0x00020000
-#define DDCAPS2_CANRENDERWINDOWED 0x00080000
-#define DDCAPS2_CANCALIBRATEGAMMA 0x00100000
-#define DDCAPS2_FLIPINTERVAL 0x00200000
-#define DDCAPS2_FLIPNOVSYNC 0x00400000
-#define DDCAPS2_CANMANAGETEXTURE 0x00800000
-#define DDCAPS2_TEXMANINNONLOCALVIDMEM 0x01000000
-#define DDCAPS2_STEREO 0x02000000
-#define DDCAPS2_SYSTONONLOCAL_AS_SYSTOLOCAL 0x04000000
-
-/* Set/Get Colour Key Flags */
-#define DDCKEY_COLORSPACE 0x00000001 /* Struct is single colour space */
-#define DDCKEY_DESTBLT 0x00000002 /* To be used as dest for blt */
-#define DDCKEY_DESTOVERLAY 0x00000004 /* To be used as dest for CK overlays */
-#define DDCKEY_SRCBLT 0x00000008 /* To be used as src for blt */
-#define DDCKEY_SRCOVERLAY 0x00000010 /* To be used as src for CK overlays */
-
- typedef struct _DDCOLORKEY {
- DWORD dwColorSpaceLowValue; /* low boundary of color space that is to
- * be treated as Color Key, inclusive
- */
- DWORD dwColorSpaceHighValue; /* high boundary of color space that is
- * to be treated as Color Key, inclusive
- */
- } DDCOLORKEY, *LPDDCOLORKEY;
-
-/* ddCKEYCAPS bits */
-#define DDCKEYCAPS_DESTBLT 0x00000001
-#define DDCKEYCAPS_DESTBLTCLRSPACE 0x00000002
-#define DDCKEYCAPS_DESTBLTCLRSPACEYUV 0x00000004
-#define DDCKEYCAPS_DESTBLTYUV 0x00000008
-#define DDCKEYCAPS_DESTOVERLAY 0x00000010
-#define DDCKEYCAPS_DESTOVERLAYCLRSPACE 0x00000020
-#define DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV 0x00000040
-#define DDCKEYCAPS_DESTOVERLAYONEACTIVE 0x00000080
-#define DDCKEYCAPS_DESTOVERLAYYUV 0x00000100
-#define DDCKEYCAPS_SRCBLT 0x00000200
-#define DDCKEYCAPS_SRCBLTCLRSPACE 0x00000400
-#define DDCKEYCAPS_SRCBLTCLRSPACEYUV 0x00000800
-#define DDCKEYCAPS_SRCBLTYUV 0x00001000
-#define DDCKEYCAPS_SRCOVERLAY 0x00002000
-#define DDCKEYCAPS_SRCOVERLAYCLRSPACE 0x00004000
-#define DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV 0x00008000
-#define DDCKEYCAPS_SRCOVERLAYONEACTIVE 0x00010000
-#define DDCKEYCAPS_SRCOVERLAYYUV 0x00020000
-#define DDCKEYCAPS_NOCOSTOVERLAY 0x00040000
-
- typedef struct _DDPIXELFORMAT {
- DWORD dwSize; /* 0: size of structure */
- DWORD dwFlags; /* 4: pixel format flags */
- DWORD dwFourCC; /* 8: (FOURCC code) */
- union {
- DWORD dwRGBBitCount; /* C: how many bits per pixel */
- DWORD dwYUVBitCount; /* C: how many bits per pixel */
- DWORD dwZBufferBitDepth; /* C: how many bits for z buffers */
- DWORD dwAlphaBitDepth; /* C: how many bits for alpha channels */
- DWORD dwLuminanceBitCount;
- DWORD dwBumpBitCount;
- } DUMMYUNIONNAME1;
- union {
- DWORD dwRBitMask; /* 10: mask for red bit */
- DWORD dwYBitMask; /* 10: mask for Y bits */
- DWORD dwStencilBitDepth;
- DWORD dwLuminanceBitMask;
- DWORD dwBumpDuBitMask;
- } DUMMYUNIONNAME2;
- union {
- DWORD dwGBitMask; /* 14: mask for green bits */
- DWORD dwUBitMask; /* 14: mask for U bits */
- DWORD dwZBitMask;
- DWORD dwBumpDvBitMask;
- } DUMMYUNIONNAME3;
- union {
- DWORD dwBBitMask; /* 18: mask for blue bits */
- DWORD dwVBitMask; /* 18: mask for V bits */
- DWORD dwStencilBitMask;
- DWORD dwBumpLuminanceBitMask;
- } DUMMYUNIONNAME4;
- union {
- DWORD dwRGBAlphaBitMask; /* 1C: mask for alpha channel */
- DWORD dwYUVAlphaBitMask; /* 1C: mask for alpha channel */
- DWORD dwLuminanceAlphaBitMask;
- DWORD dwRGBZBitMask; /* 1C: mask for Z channel */
- DWORD dwYUVZBitMask; /* 1C: mask for Z channel */
- } DUMMYUNIONNAME5;
- /* 20: next structure */
- } DDPIXELFORMAT, *LPDDPIXELFORMAT;
-
-/* DDCAPS.dwFXCaps */
-#define DDFXCAPS_BLTALPHA 0x00000001
-#define DDFXCAPS_OVERLAYALPHA 0x00000004
-#define DDFXCAPS_BLTARITHSTRETCHYN 0x00000010
-#define DDFXCAPS_BLTARITHSTRETCHY 0x00000020
-#define DDFXCAPS_BLTMIRRORLEFTRIGHT 0x00000040
-#define DDFXCAPS_BLTMIRRORUPDOWN 0x00000080
-#define DDFXCAPS_BLTROTATION 0x00000100
-#define DDFXCAPS_BLTROTATION90 0x00000200
-#define DDFXCAPS_BLTSHRINKX 0x00000400
-#define DDFXCAPS_BLTSHRINKXN 0x00000800
-#define DDFXCAPS_BLTSHRINKY 0x00001000
-#define DDFXCAPS_BLTSHRINKYN 0x00002000
-#define DDFXCAPS_BLTSTRETCHX 0x00004000
-#define DDFXCAPS_BLTSTRETCHXN 0x00008000
-#define DDFXCAPS_BLTSTRETCHY 0x00010000
-#define DDFXCAPS_BLTSTRETCHYN 0x00020000
-#define DDFXCAPS_OVERLAYARITHSTRETCHY 0x00040000
-#define DDFXCAPS_OVERLAYARITHSTRETCHYN 0x00000008
-#define DDFXCAPS_OVERLAYSHRINKX 0x00080000
-#define DDFXCAPS_OVERLAYSHRINKXN 0x00100000
-#define DDFXCAPS_OVERLAYSHRINKY 0x00200000
-#define DDFXCAPS_OVERLAYSHRINKYN 0x00400000
-#define DDFXCAPS_OVERLAYSTRETCHX 0x00800000
-#define DDFXCAPS_OVERLAYSTRETCHXN 0x01000000
-#define DDFXCAPS_OVERLAYSTRETCHY 0x02000000
-#define DDFXCAPS_OVERLAYSTRETCHYN 0x04000000
-#define DDFXCAPS_OVERLAYMIRRORLEFTRIGHT 0x08000000
-#define DDFXCAPS_OVERLAYMIRRORUPDOWN 0x10000000
-
-#define DDFXCAPS_OVERLAYFILTER DDFXCAPS_OVERLAYARITHSTRETCHY
-
-/* DDCAPS.dwFXAlphaCaps */
-#define DDFXALPHACAPS_BLTALPHAEDGEBLEND 0x00000001
-#define DDFXALPHACAPS_BLTALPHAPIXELS 0x00000002
-#define DDFXALPHACAPS_BLTALPHAPIXELSNEG 0x00000004
-#define DDFXALPHACAPS_BLTALPHASURFACES 0x00000008
-#define DDFXALPHACAPS_BLTALPHASURFACESNEG 0x00000010
-#define DDFXALPHACAPS_OVERLAYALPHAEDGEBLEND 0x00000020
-#define DDFXALPHACAPS_OVERLAYALPHAPIXELS 0x00000040
-#define DDFXALPHACAPS_OVERLAYALPHAPIXELSNEG 0x00000080
-#define DDFXALPHACAPS_OVERLAYALPHASURFACES 0x00000100
-#define DDFXALPHACAPS_OVERLAYALPHASURFACESNEG 0x00000200
-
-/* DDCAPS.dwPalCaps */
-#define DDPCAPS_4BIT 0x00000001
-#define DDPCAPS_8BITENTRIES 0x00000002
-#define DDPCAPS_8BIT 0x00000004
-#define DDPCAPS_INITIALIZE 0x00000008
-#define DDPCAPS_PRIMARYSURFACE 0x00000010
-#define DDPCAPS_PRIMARYSURFACELEFT 0x00000020
-#define DDPCAPS_ALLOW256 0x00000040
-#define DDPCAPS_VSYNC 0x00000080
-#define DDPCAPS_1BIT 0x00000100
-#define DDPCAPS_2BIT 0x00000200
-#define DDPCAPS_ALPHA 0x00000400
-
-/* DDCAPS.dwSVCaps */
-/* the first 4 of these are now obsolete */
-#if DIRECTDRAW_VERSION >= 0x700 /* FIXME: I'm not sure when this switch occured */
-#define DDSVCAPS_RESERVED1 0x00000001
-#define DDSVCAPS_RESERVED2 0x00000002
-#define DDSVCAPS_RESERVED3 0x00000004
-#define DDSVCAPS_RESERVED4 0x00000008
-#else
-#define DDSVCAPS_ENIGMA 0x00000001
-#define DDSVCAPS_FLICKER 0x00000002
-#define DDSVCAPS_REDBLUE 0x00000004
-#define DDSVCAPS_SPLIT 0x00000008
-#endif
-#define DDSVCAPS_STEREOSEQUENTIAL 0x00000010
-
-/* BitDepths */
-#define DDBD_1 0x00004000
-#define DDBD_2 0x00002000
-#define DDBD_4 0x00001000
-#define DDBD_8 0x00000800
-#define DDBD_16 0x00000400
-#define DDBD_24 0x00000200
-#define DDBD_32 0x00000100
-
-/* DDOVERLAYFX.dwDDFX */
-#define DDOVERFX_ARITHSTRETCHY 0x00000001
-#define DDOVERFX_MIRRORLEFTRIGHT 0x00000002
-#define DDOVERFX_MIRRORUPDOWN 0x00000004
-
-/* UpdateOverlay flags */
-#define DDOVER_ALPHADEST 0x00000001
-#define DDOVER_ALPHADESTCONSTOVERRIDE 0x00000002
-#define DDOVER_ALPHADESTNEG 0x00000004
-#define DDOVER_ALPHADESTSURFACEOVERRIDE 0x00000008
-#define DDOVER_ALPHAEDGEBLEND 0x00000010
-#define DDOVER_ALPHASRC 0x00000020
-#define DDOVER_ALPHASRCCONSTOVERRIDE 0x00000040
-#define DDOVER_ALPHASRCNEG 0x00000080
-#define DDOVER_ALPHASRCSURFACEOVERRIDE 0x00000100
-#define DDOVER_HIDE 0x00000200
-#define DDOVER_KEYDEST 0x00000400
-#define DDOVER_KEYDESTOVERRIDE 0x00000800
-#define DDOVER_KEYSRC 0x00001000
-#define DDOVER_KEYSRCOVERRIDE 0x00002000
-#define DDOVER_SHOW 0x00004000
-#define DDOVER_ADDDIRTYRECT 0x00008000
-#define DDOVER_REFRESHDIRTYRECTS 0x00010000
-#define DDOVER_REFRESHALL 0x00020000
-#define DDOVER_DDFX 0x00080000
-#define DDOVER_AUTOFLIP 0x00100000
-#define DDOVER_BOB 0x00200000
-#define DDOVER_OVERRIDEBOBWEAVE 0x00400000
-#define DDOVER_INTERLEAVED 0x00800000
-
-/* DDCOLORKEY.dwFlags */
-#define DDPF_ALPHAPIXELS 0x00000001
-#define DDPF_ALPHA 0x00000002
-#define DDPF_FOURCC 0x00000004
-#define DDPF_PALETTEINDEXED4 0x00000008
-#define DDPF_PALETTEINDEXEDTO8 0x00000010
-#define DDPF_PALETTEINDEXED8 0x00000020
-#define DDPF_RGB 0x00000040
-#define DDPF_COMPRESSED 0x00000080
-#define DDPF_RGBTOYUV 0x00000100
-#define DDPF_YUV 0x00000200
-#define DDPF_ZBUFFER 0x00000400
-#define DDPF_PALETTEINDEXED1 0x00000800
-#define DDPF_PALETTEINDEXED2 0x00001000
-#define DDPF_ZPIXELS 0x00002000
-#define DDPF_STENCILBUFFER 0x00004000
-#define DDPF_ALPHAPREMULT 0x00008000
-#define DDPF_LUMINANCE 0x00020000
-#define DDPF_BUMPLUMINANCE 0x00040000
-#define DDPF_BUMPDUDV 0x00080000
-
-/* SetCooperativeLevel dwFlags */
-#define DDSCL_FULLSCREEN 0x00000001
-#define DDSCL_ALLOWREBOOT 0x00000002
-#define DDSCL_NOWINDOWCHANGES 0x00000004
-#define DDSCL_NORMAL 0x00000008
-#define DDSCL_EXCLUSIVE 0x00000010
-#define DDSCL_ALLOWMODEX 0x00000040
-#define DDSCL_SETFOCUSWINDOW 0x00000080
-#define DDSCL_SETDEVICEWINDOW 0x00000100
-#define DDSCL_CREATEDEVICEWINDOW 0x00000200
-#define DDSCL_MULTITHREADED 0x00000400
-#define DDSCL_FPUSETUP 0x00000800
-#define DDSCL_FPUPRESERVE 0x00001000
-
-/* DDSURFACEDESC.dwFlags */
-#define DDSD_CAPS 0x00000001
-#define DDSD_HEIGHT 0x00000002
-#define DDSD_WIDTH 0x00000004
-#define DDSD_PITCH 0x00000008
-#define DDSD_BACKBUFFERCOUNT 0x00000020
-#define DDSD_ZBUFFERBITDEPTH 0x00000040
-#define DDSD_ALPHABITDEPTH 0x00000080
-#define DDSD_LPSURFACE 0x00000800
-#define DDSD_PIXELFORMAT 0x00001000
-#define DDSD_CKDESTOVERLAY 0x00002000
-#define DDSD_CKDESTBLT 0x00004000
-#define DDSD_CKSRCOVERLAY 0x00008000
-#define DDSD_CKSRCBLT 0x00010000
-#define DDSD_MIPMAPCOUNT 0x00020000
-#define DDSD_REFRESHRATE 0x00040000
-#define DDSD_LINEARSIZE 0x00080000
-#define DDSD_TEXTURESTAGE 0x00100000
-#define DDSD_FVF 0x00200000
-#define DDSD_SRCVBHANDLE 0x00400000
-#define DDSD_ALL 0x007ff9ee
-
-/* EnumSurfaces flags */
-#define DDENUMSURFACES_ALL 0x00000001
-#define DDENUMSURFACES_MATCH 0x00000002
-#define DDENUMSURFACES_NOMATCH 0x00000004
-#define DDENUMSURFACES_CANBECREATED 0x00000008
-#define DDENUMSURFACES_DOESEXIST 0x00000010
-
-/* SetDisplayMode flags */
-#define DDSDM_STANDARDVGAMODE 0x00000001
-
-/* EnumDisplayModes flags */
-#define DDEDM_REFRESHRATES 0x00000001
-#define DDEDM_STANDARDVGAMODES 0x00000002
-
-/* WaitForVerticalDisplay flags */
-
-#define DDWAITVB_BLOCKBEGIN 0x00000001
-#define DDWAITVB_BLOCKBEGINEVENT 0x00000002
-#define DDWAITVB_BLOCKEND 0x00000004
-
- typedef struct _DDSURFACEDESC {
- DWORD dwSize; /* 0: size of the DDSURFACEDESC structure */
- DWORD dwFlags; /* 4: determines what fields are valid */
- DWORD dwHeight; /* 8: height of surface to be created */
- DWORD dwWidth; /* C: width of input surface */
- union {
- LONG lPitch; /* 10: distance to start of next line (return value only) */
- DWORD dwLinearSize;
- } DUMMYUNIONNAME1;
- DWORD dwBackBufferCount; /* 14: number of back buffers requested */
- union {
- DWORD dwMipMapCount; /* 18:number of mip-map levels requested */
- DWORD dwZBufferBitDepth; /*18: depth of Z buffer requested */
- DWORD dwRefreshRate; /* 18:refresh rate (used when display mode is described) */
- } DUMMYUNIONNAME2;
- DWORD dwAlphaBitDepth; /* 1C:depth of alpha buffer requested */
- DWORD dwReserved; /* 20:reserved */
- LPVOID lpSurface; /* 24:pointer to the associated surface memory */
- DDCOLORKEY ddckCKDestOverlay; /* 28: CK for dest overlay use */
- DDCOLORKEY ddckCKDestBlt; /* 30: CK for destination blt use */
- DDCOLORKEY ddckCKSrcOverlay; /* 38: CK for source overlay use */
- DDCOLORKEY ddckCKSrcBlt; /* 40: CK for source blt use */
- DDPIXELFORMAT ddpfPixelFormat; /* 48: pixel format description of the surface */
- DDSCAPS ddsCaps; /* 68: direct draw surface caps */
- } DDSURFACEDESC, *LPDDSURFACEDESC;
-
- typedef struct _DDSURFACEDESC2 {
- DWORD dwSize; /* 0: size of the DDSURFACEDESC structure */
- DWORD dwFlags; /* 4: determines what fields are valid */
- DWORD dwHeight; /* 8: height of surface to be created */
- DWORD dwWidth; /* C: width of input surface */
- union {
- LONG lPitch; /*10: distance to start of next line (return value only) */
- DWORD dwLinearSize; /*10: formless late-allocated optimized surface size */
- } DUMMYUNIONNAME1;
- DWORD dwBackBufferCount; /* 14: number of back buffers requested */
- union {
- DWORD dwMipMapCount; /* 18:number of mip-map levels requested */
- DWORD dwRefreshRate; /* 18:refresh rate (used when display mode is described) */
- DWORD dwSrcVBHandle; /* 18:source used in VB::Optimize */
- } DUMMYUNIONNAME2;
- DWORD dwAlphaBitDepth; /* 1C:depth of alpha buffer requested */
- DWORD dwReserved; /* 20:reserved */
- LPVOID lpSurface; /* 24:pointer to the associated surface memory */
- union {
- DDCOLORKEY ddckCKDestOverlay; /* 28: CK for dest overlay use */
- DWORD dwEmptyFaceColor; /* 28: color for empty cubemap faces */
- } DUMMYUNIONNAME3;
- DDCOLORKEY ddckCKDestBlt; /* 30: CK for destination blt use */
- DDCOLORKEY ddckCKSrcOverlay; /* 38: CK for source overlay use */
- DDCOLORKEY ddckCKSrcBlt; /* 40: CK for source blt use */
-
- union {
- DDPIXELFORMAT ddpfPixelFormat; /* 48: pixel format description of the surface */
- DWORD dwFVF; /* 48: vertex format description of vertex buffers */
- } DUMMYUNIONNAME4;
- DDSCAPS2 ddsCaps; /* 68: DDraw surface caps */
- DWORD dwTextureStage; /* 78: stage in multitexture cascade */
- } DDSURFACEDESC2, *LPDDSURFACEDESC2;
-
-/* DDCOLORCONTROL.dwFlags */
-#define DDCOLOR_BRIGHTNESS 0x00000001
-#define DDCOLOR_CONTRAST 0x00000002
-#define DDCOLOR_HUE 0x00000004
-#define DDCOLOR_SATURATION 0x00000008
-#define DDCOLOR_SHARPNESS 0x00000010
-#define DDCOLOR_GAMMA 0x00000020
-#define DDCOLOR_COLORENABLE 0x00000040
-
- typedef struct {
- DWORD dwSize;
- DWORD dwFlags;
- LONG lBrightness;
- LONG lContrast;
- LONG lHue;
- LONG lSaturation;
- LONG lSharpness;
- LONG lGamma;
- LONG lColorEnable;
- DWORD dwReserved1;
- } DDCOLORCONTROL, *LPDDCOLORCONTROL;
-
- typedef struct {
- WORD red[256];
- WORD green[256];
- WORD blue[256];
- } DDGAMMARAMP, *LPDDGAMMARAMP;
-
- typedef BOOL CALLBACK(*LPDDENUMCALLBACKA) (GUID *, LPSTR, LPSTR, LPVOID);
- typedef BOOL CALLBACK(*LPDDENUMCALLBACKW) (GUID *, LPWSTR, LPWSTR, LPVOID);
- DECL_WINELIB_TYPE_AW(LPDDENUMCALLBACK)
-
- typedef HRESULT CALLBACK(*LPDDENUMMODESCALLBACK) (LPDDSURFACEDESC, LPVOID);
- typedef HRESULT CALLBACK(*LPDDENUMMODESCALLBACK2) (LPDDSURFACEDESC2,
- LPVOID);
- typedef HRESULT CALLBACK(*LPDDENUMSURFACESCALLBACK) (LPDIRECTDRAWSURFACE,
- LPDDSURFACEDESC,
- LPVOID);
- typedef HRESULT CALLBACK(*LPDDENUMSURFACESCALLBACK2) (LPDIRECTDRAWSURFACE4,
- LPDDSURFACEDESC2,
- LPVOID);
- typedef HRESULT CALLBACK(*LPDDENUMSURFACESCALLBACK7) (LPDIRECTDRAWSURFACE7,
- LPDDSURFACEDESC2,
- LPVOID);
-
- typedef BOOL CALLBACK(*LPDDENUMCALLBACKEXA) (GUID *, LPSTR, LPSTR, LPVOID,
- HMONITOR);
- typedef BOOL CALLBACK(*LPDDENUMCALLBACKEXW) (GUID *, LPWSTR, LPWSTR, LPVOID,
- HMONITOR);
- DECL_WINELIB_TYPE_AW(LPDDENUMCALLBACKEX)
-
- HRESULT WINAPI DirectDrawEnumerateExA(LPDDENUMCALLBACKEXA lpCallback,
- LPVOID lpContext, DWORD dwFlags);
- HRESULT WINAPI DirectDrawEnumerateExW(LPDDENUMCALLBACKEXW lpCallback,
- LPVOID lpContext, DWORD dwFlags);
-#define DirectDrawEnumerateEx WINELIB_NAME_AW(DirectDrawEnumerateEx)
-
-/* flags for DirectDrawEnumerateEx */
-#define DDENUM_ATTACHEDSECONDARYDEVICES 0x00000001
-#define DDENUM_DETACHEDSECONDARYDEVICES 0x00000002
-#define DDENUM_NONDISPLAYDEVICES 0x00000004
-
-/* flags for DirectDrawCreate or IDirectDraw::Initialize */
-#define DDCREATE_HARDWAREONLY 1L
-#define DDCREATE_EMULATIONONLY 2L
-
- typedef struct _DDBLTFX {
- DWORD dwSize; /* size of structure */
- DWORD dwDDFX; /* FX operations */
- DWORD dwROP; /* Win32 raster operations */
- DWORD dwDDROP; /* Raster operations new for DirectDraw */
- DWORD dwRotationAngle; /* Rotation angle for blt */
- DWORD dwZBufferOpCode; /* ZBuffer compares */
- DWORD dwZBufferLow; /* Low limit of Z buffer */
- DWORD dwZBufferHigh; /* High limit of Z buffer */
- DWORD dwZBufferBaseDest; /* Destination base value */
- DWORD dwZDestConstBitDepth; /* Bit depth used to specify Z constant for destination */
- union {
- DWORD dwZDestConst; /* Constant to use as Z buffer for dest */
- LPDIRECTDRAWSURFACE lpDDSZBufferDest; /* Surface to use as Z buffer for dest */
- } DUMMYUNIONNAME1;
- DWORD dwZSrcConstBitDepth; /* Bit depth used to specify Z constant for source */
- union {
- DWORD dwZSrcConst; /* Constant to use as Z buffer for src */
- LPDIRECTDRAWSURFACE lpDDSZBufferSrc; /* Surface to use as Z buffer for src */
- } DUMMYUNIONNAME2;
- DWORD dwAlphaEdgeBlendBitDepth; /* Bit depth used to specify constant for alpha edge blend */
- DWORD dwAlphaEdgeBlend; /* Alpha for edge blending */
- DWORD dwReserved;
- DWORD dwAlphaDestConstBitDepth; /* Bit depth used to specify alpha constant for destination */
- union {
- DWORD dwAlphaDestConst; /* Constant to use as Alpha Channel */
- LPDIRECTDRAWSURFACE lpDDSAlphaDest; /* Surface to use as Alpha Channel */
- } DUMMYUNIONNAME3;
- DWORD dwAlphaSrcConstBitDepth; /* Bit depth used to specify alpha constant for source */
- union {
- DWORD dwAlphaSrcConst; /* Constant to use as Alpha Channel */
- LPDIRECTDRAWSURFACE lpDDSAlphaSrc; /* Surface to use as Alpha Channel */
- } DUMMYUNIONNAME4;
- union {
- DWORD dwFillColor; /* color in RGB or Palettized */
- DWORD dwFillDepth; /* depth value for z-buffer */
- DWORD dwFillPixel; /* pixel val for RGBA or RGBZ */
- LPDIRECTDRAWSURFACE lpDDSPattern; /* Surface to use as pattern */
- } DUMMYUNIONNAME5;
- DDCOLORKEY ddckDestColorkey; /* DestColorkey override */
- DDCOLORKEY ddckSrcColorkey; /* SrcColorkey override */
- } DDBLTFX, *LPDDBLTFX;
-
-/* dwDDFX */
-/* arithmetic stretching along y axis */
-#define DDBLTFX_ARITHSTRETCHY 0x00000001
-/* mirror on y axis */
-#define DDBLTFX_MIRRORLEFTRIGHT 0x00000002
-/* mirror on x axis */
-#define DDBLTFX_MIRRORUPDOWN 0x00000004
-/* do not tear */
-#define DDBLTFX_NOTEARING 0x00000008
-/* 180 degrees clockwise rotation */
-#define DDBLTFX_ROTATE180 0x00000010
-/* 270 degrees clockwise rotation */
-#define DDBLTFX_ROTATE270 0x00000020
-/* 90 degrees clockwise rotation */
-#define DDBLTFX_ROTATE90 0x00000040
-/* dwZBufferLow and dwZBufferHigh specify limits to the copied Z values */
-#define DDBLTFX_ZBUFFERRANGE 0x00000080
-/* add dwZBufferBaseDest to every source z value before compare */
-#define DDBLTFX_ZBUFFERBASEDEST 0x00000100
-
- typedef struct _DDOVERLAYFX {
- DWORD dwSize; /* size of structure */
- DWORD dwAlphaEdgeBlendBitDepth; /* Bit depth used to specify constant for alpha edge blend */
- DWORD dwAlphaEdgeBlend; /* Constant to use as alpha for edge blend */
- DWORD dwReserved;
- DWORD dwAlphaDestConstBitDepth; /* Bit depth used to specify alpha constant for destination */
- union {
- DWORD dwAlphaDestConst; /* Constant to use as alpha channel for dest */
- LPDIRECTDRAWSURFACE lpDDSAlphaDest; /* Surface to use as alpha channel for dest */
- } DUMMYUNIONNAME1;
- DWORD dwAlphaSrcConstBitDepth; /* Bit depth used to specify alpha constant for source */
- union {
- DWORD dwAlphaSrcConst; /* Constant to use as alpha channel for src */
- LPDIRECTDRAWSURFACE lpDDSAlphaSrc; /* Surface to use as alpha channel for src */
- } DUMMYUNIONNAME2;
- DDCOLORKEY dckDestColorkey; /* DestColorkey override */
- DDCOLORKEY dckSrcColorkey; /* DestColorkey override */
- DWORD dwDDFX; /* Overlay FX */
- DWORD dwFlags; /* flags */
- } DDOVERLAYFX, *LPDDOVERLAYFX;
-
- typedef struct _DDBLTBATCH {
- LPRECT lprDest;
- LPDIRECTDRAWSURFACE lpDDSSrc;
- LPRECT lprSrc;
- DWORD dwFlags;
- LPDDBLTFX lpDDBltFx;
- } DDBLTBATCH, *LPDDBLTBATCH;
-
-#define MAX_DDDEVICEID_STRING 512
-
- typedef struct tagDDDEVICEIDENTIFIER {
- char szDriver[MAX_DDDEVICEID_STRING];
- char szDescription[MAX_DDDEVICEID_STRING];
- LARGE_INTEGER liDriverVersion;
- DWORD dwVendorId;
- DWORD dwDeviceId;
- DWORD dwSubSysId;
- DWORD dwRevision;
- GUID guidDeviceIdentifier;
- } DDDEVICEIDENTIFIER, *LPDDDEVICEIDENTIFIER;
-
- typedef struct tagDDDEVICEIDENTIFIER2 {
- char szDriver[MAX_DDDEVICEID_STRING]; /* user readable driver name */
- char szDescription[MAX_DDDEVICEID_STRING]; /* user readable description */
- LARGE_INTEGER liDriverVersion; /* driver version */
- DWORD dwVendorId; /* vendor ID, zero if unknown */
- DWORD dwDeviceId; /* chipset ID, zero if unknown */
- DWORD dwSubSysId; /* board ID, zero if unknown */
- DWORD dwRevision; /* chipset version, zero if unknown */
- GUID guidDeviceIdentifier; /* unique ID for this driver/chipset combination */
- DWORD dwWHQLLevel; /* Windows Hardware Quality Lab certification level */
- } DDDEVICEIDENTIFIER2, *LPDDDEVICEIDENTIFIER2;
-
-/*****************************************************************************
- * IDirectDrawPalette interface
- */
-#undef INTERFACE
-#define INTERFACE IDirectDrawPalette
- DECLARE_INTERFACE_(IDirectDrawPalette, IUnknown) {
- STDMETHOD(QueryInterface) (THIS_ REFIID, PVOID *) PURE;
- STDMETHOD_(ULONG, AddRef) (THIS) PURE;
- STDMETHOD_(ULONG, Release) (THIS) PURE;
- STDMETHOD(GetCaps) (THIS_ LPDWORD lpdwCaps) PURE;
- STDMETHOD(GetEntries) (THIS_ DWORD dwFlags, DWORD dwBase,
- DWORD dwNumEntries,
- LPPALETTEENTRY lpEntries) PURE;
- STDMETHOD(Initialize) (THIS_ LPDIRECTDRAW lpDD, DWORD dwFlags,
- LPPALETTEENTRY lpDDColorTable) PURE;
- STDMETHOD(SetEntries) (THIS_ DWORD dwFlags, DWORD dwStartingEntry,
- DWORD dwCount, LPPALETTEENTRY lpEntries) PURE;
- };
-
- /*** IUnknown methods ***/
-#define IDirectDrawPalette_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b))
-#define IDirectDrawPalette_AddRef(p) ICOM_CALL_(AddRef,p,(p))
-#define IDirectDrawPalette_Release(p) ICOM_CALL_(Release,p,(p))
- /*** IDirectDrawPalette methods ***/
-#define IDirectDrawPalette_GetCaps(p,a) ICOM_CALL_(GetCaps,p,(p,a))
-#define IDirectDrawPalette_GetEntries(p,a,b,c,d) ICOM_CALL_(GetEntries,p,(p,a,b,c,d))
-#define IDirectDrawPalette_Initialize(p,a,b,c) ICOM_CALL_(Initialize,p,(p,a,b,c))
-#define IDirectDrawPalette_SetEntries(p,a,b,c,d) ICOM_CALL_(SetEntries,p,(p,a,b,c,d))
-
-/*****************************************************************************
- * IDirectDrawClipper interface
- */
-#undef INTERFACE
-#define INTERFACE IDirectDrawClipper
- DECLARE_INTERFACE_(IDirectDrawClipper, IUnknown) {
- STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE;
- STDMETHOD_(ULONG, AddRef) (THIS) PURE;
- STDMETHOD_(ULONG, Release) (THIS) PURE;
- STDMETHOD(GetClipList) (THIS_ LPRECT lpRect, LPRGNDATA lpClipList,
- LPDWORD lpdwSize) PURE;
- STDMETHOD(GetHWnd) (THIS_ HWND * lphWnd) PURE;
- STDMETHOD(Initialize) (THIS_ LPDIRECTDRAW lpDD, DWORD dwFlags) PURE;
- STDMETHOD(IsClipListChanged) (THIS_ BOOL * lpbChanged) PURE;
- STDMETHOD(SetClipList) (THIS_ LPRGNDATA lpClipList, DWORD dwFlags) PURE;
- STDMETHOD(SetHWnd) (THIS_ DWORD dwFlags, HWND hWnd) PURE;
- };
-
- /*** IUnknown methods ***/
-#define IDirectDrawClipper_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b))
-#define IDirectDrawClipper_AddRef(p) ICOM_CALL_(AddRef,p,(p))
-#define IDirectDrawClipper_Release(p) ICOM_CALL_(Release,p,(p))
- /*** IDirectDrawClipper methods ***/
-#define IDirectDrawClipper_GetClipList(p,a,b,c) ICOM_CALL_(GetClipList,p,(p,a,b,c))
-#define IDirectDrawClipper_GetHWnd(p,a) ICOM_CALL_(GetHWnd,p,(p,a))
-#define IDirectDrawClipper_Initialize(p,a,b) ICOM_CALL_(Initialize,p,(p,a,b))
-#define IDirectDrawClipper_IsClipListChanged(p,a) ICOM_CALL_(IsClipListChanged,p,(p,a))
-#define IDirectDrawClipper_SetClipList(p,a,b) ICOM_CALL_(SetClipList,p,(p,a,b))
-#define IDirectDrawClipper_SetHWnd(p,a,b) ICOM_CALL_(SetHWnd,p,(p,a,b))
-
-/*****************************************************************************
- * IDirectDraw interface
- */
-#undef INTERFACE
-#define INTERFACE IDirectDraw
- DECLARE_INTERFACE_(IDirectDraw, IUnknown) {
- STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE;
- STDMETHOD_(ULONG, AddRef) (THIS) PURE;
- STDMETHOD_(ULONG, Release) (THIS) PURE;
- STDMETHOD(Compact) (THIS) PURE;
- STDMETHOD(CreateClipper) (THIS_ DWORD dwFlags,
- LPDIRECTDRAWCLIPPER * lplpDDClipper,
- IUnknown * pUnkOuter) PURE;
- STDMETHOD(CreatePalette) (THIS_ DWORD dwFlags,
- LPPALETTEENTRY lpColorTable,
- LPDIRECTDRAWPALETTE * lplpDDPalette,
- IUnknown * pUnkOuter) PURE;
- STDMETHOD(CreateSurface) (THIS_ LPDDSURFACEDESC lpDDSurfaceDesc,
- LPDIRECTDRAWSURFACE * lplpDDSurface,
- IUnknown * pUnkOuter) PURE;
- STDMETHOD(DuplicateSurface) (THIS_ LPDIRECTDRAWSURFACE lpDDSurface,
- LPDIRECTDRAWSURFACE *
- lplpDupDDSurface) PURE;
- STDMETHOD(EnumDisplayModes) (THIS_ DWORD dwFlags,
- LPDDSURFACEDESC lpDDSurfaceDesc,
- LPVOID lpContext,
- LPDDENUMMODESCALLBACK lpEnumModesCallback)
- PURE;
- STDMETHOD(EnumSurfaces) (THIS_ DWORD dwFlags, LPDDSURFACEDESC lpDDSD,
- LPVOID lpContext,
- LPDDENUMSURFACESCALLBACK
- lpEnumSurfacesCallback) PURE;
- STDMETHOD(FlipToGDISurface) (THIS) PURE;
- STDMETHOD(GetCaps) (THIS_ LPDDCAPS lpDDDriverCaps,
- LPDDCAPS lpDDHELCaps) PURE;
- STDMETHOD(GetDisplayMode) (THIS_ LPDDSURFACEDESC lpDDSurfaceDesc) PURE;
- STDMETHOD(GetFourCCCodes) (THIS_ LPDWORD lpNumCodes,
- LPDWORD lpCodes) PURE;
- STDMETHOD(GetGDISurface) (THIS_ LPDIRECTDRAWSURFACE *
- lplpGDIDDSurface) PURE;
- STDMETHOD(GetMonitorFrequency) (THIS_ LPDWORD lpdwFrequency) PURE;
- STDMETHOD(GetScanLine) (THIS_ LPDWORD lpdwScanLine) PURE;
- STDMETHOD(GetVerticalBlankStatus) (THIS_ BOOL * lpbIsInVB) PURE;
- STDMETHOD(Initialize) (THIS_ GUID * lpGUID) PURE;
- STDMETHOD(RestoreDisplayMode) (THIS) PURE;
- STDMETHOD(SetCooperativeLevel) (THIS_ HWND hWnd, DWORD dwFlags) PURE;
- STDMETHOD(SetDisplayMode) (THIS_ DWORD, DWORD, DWORD) PURE;
- STDMETHOD(WaitForVerticalBlank) (THIS_ DWORD dwFlags,
- HANDLE hEvent) PURE;
- };
-
- /*** IUnknown methods ***/
-#define IDirectDraw_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b))
-#define IDirectDraw_AddRef(p) ICOM_CALL_(AddRef,p,(p))
-#define IDirectDraw_Release(p) ICOM_CALL_(Release,p,(p))
- /*** IDirectDraw methods ***/
-#define IDirectDraw_Compact(p) ICOM_CALL_(Compact,p,(p))
-#define IDirectDraw_CreateClipper(p,a,b,c) ICOM_CALL_(CreateClipper,p,(p,a,b,c))
-#define IDirectDraw_CreatePalette(p,a,b,c,d) ICOM_CALL_(CreatePalette,p,(p,a,b,c,d))
-#define IDirectDraw_CreateSurface(p,a,b,c) ICOM_CALL_(CreateSurface,p,(p,a,b,c))
-#define IDirectDraw_DuplicateSurface(p,a,b) ICOM_CALL_(DuplicateSurface,p,(p,a,b))
-#define IDirectDraw_EnumDisplayModes(p,a,b,c,d) ICOM_CALL_(EnumDisplayModes,p,(p,a,b,c,d))
-#define IDirectDraw_EnumSurfaces(p,a,b,c,d) ICOM_CALL_(EnumSurfaces,p,(p,a,b,c,d))
-#define IDirectDraw_FlipToGDISurface(p) ICOM_CALL_(FlipToGDISurface,p,(p))
-#define IDirectDraw_GetCaps(p,a,b) ICOM_CALL_(GetCaps,p,(p,a,b))
-#define IDirectDraw_GetDisplayMode(p,a) ICOM_CALL_(GetDisplayMode,p,(p,a))
-#define IDirectDraw_GetFourCCCodes(p,a,b) ICOM_CALL_(GetFourCCCodes,p,(p,a,b))
-#define IDirectDraw_GetGDISurface(p,a) ICOM_CALL_(GetGDISurface,p,(p,a))
-#define IDirectDraw_GetMonitorFrequency(p,a) ICOM_CALL_(GetMonitorFrequency,p,(p,a))
-#define IDirectDraw_GetScanLine(p,a) ICOM_CALL_(GetScanLine,p,(p,a))
-#define IDirectDraw_GetVerticalBlankStatus(p,a) ICOM_CALL_(GetVerticalBlankStatus,p,(p,a))
-#define IDirectDraw_Initialize(p,a) ICOM_CALL_(Initialize,p,(p,a))
-#define IDirectDraw_RestoreDisplayMode(p) ICOM_CALL_(RestoreDisplayMode,p,(p))
-#define IDirectDraw_SetCooperativeLevel(p,a,b) ICOM_CALL_(SetCooperativeLevel,p,(p,a,b))
-#define IDirectDraw_SetDisplayMode(p,a,b,c) ICOM_CALL_(SetDisplayMode,p,(p,a,b,c))
-#define IDirectDraw_WaitForVerticalBlank(p,a,b) ICOM_CALL_(WaitForVerticalBlank,p,(p,a,b))
-
-/* flags for Lock() */
-#define DDLOCK_SURFACEMEMORYPTR 0x00000000
-#define DDLOCK_WAIT 0x00000001
-#define DDLOCK_EVENT 0x00000002
-#define DDLOCK_READONLY 0x00000010
-#define DDLOCK_WRITEONLY 0x00000020
-#define DDLOCK_NOSYSLOCK 0x00000800
-
-/*****************************************************************************
- * IDirectDraw2 interface
- */
-/* Note: IDirectDraw2 cannot derive from IDirectDraw because the number of
- * arguments of SetDisplayMode has changed !
- */
-#undef INTERFACE
-#define INTERFACE IDirectDraw2
- DECLARE_INTERFACE_(IDirectDraw2, IUnknown) {
- STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE;
- STDMETHOD_(ULONG, AddRef) (THIS) PURE;
- STDMETHOD_(ULONG, Release) (THIS) PURE;
- STDMETHOD(Compact) (THIS) PURE;
- STDMETHOD(CreateClipper) (THIS_ DWORD dwFlags,
- LPDIRECTDRAWCLIPPER * lplpDDClipper,
- IUnknown * pUnkOuter) PURE;
- STDMETHOD(CreatePalette) (THIS_ DWORD dwFlags,
- LPPALETTEENTRY lpColorTable,
- LPDIRECTDRAWPALETTE * lplpDDPalette,
- IUnknown * pUnkOuter) PURE;
- STDMETHOD(CreateSurface) (THIS_ LPDDSURFACEDESC lpDDSurfaceDesc,
- LPDIRECTDRAWSURFACE2 * lplpDDSurface,
- IUnknown * pUnkOuter) PURE;
- STDMETHOD(DuplicateSurface) (THIS_ LPDIRECTDRAWSURFACE2 lpDDSurface,
- LPDIRECTDRAWSURFACE2 *
- lplpDupDDSurface) PURE;
- STDMETHOD(EnumDisplayModes) (THIS_ DWORD dwFlags,
- LPDDSURFACEDESC lpDDSurfaceDesc,
- LPVOID lpContext,
- LPDDENUMMODESCALLBACK lpEnumModesCallback)
- PURE;
- STDMETHOD(EnumSurfaces) (THIS_ DWORD dwFlags, LPDDSURFACEDESC lpDDSD,
- LPVOID lpContext,
- LPDDENUMSURFACESCALLBACK
- lpEnumSurfacesCallback) PURE;
- STDMETHOD(FlipToGDISurface) (THIS) PURE;
- STDMETHOD(GetCaps) (THIS_ LPDDCAPS lpDDDriverCaps,
- LPDDCAPS lpDDHELCaps) PURE;
- STDMETHOD(GetDisplayMode) (THIS_ LPDDSURFACEDESC lpDDSurfaceDesc) PURE;
- STDMETHOD(GetFourCCCodes) (THIS_ LPDWORD lpNumCodes,
- LPDWORD lpCodes) PURE;
- STDMETHOD(GetGDISurface) (THIS_ LPDIRECTDRAWSURFACE2 *
- lplpGDIDDSurface) PURE;
- STDMETHOD(GetMonitorFrequency) (THIS_ LPDWORD lpdwFrequency) PURE;
- STDMETHOD(GetScanLine) (THIS_ LPDWORD lpdwScanLine) PURE;
- STDMETHOD(GetVerticalBlankStatus) (THIS_ BOOL * lpbIsInVB) PURE;
- STDMETHOD(Initialize) (THIS_ GUID * lpGUID) PURE;
- STDMETHOD(RestoreDisplayMode) (THIS) PURE;
- STDMETHOD(SetCooperativeLevel) (THIS_ HWND hWnd, DWORD dwFlags) PURE;
- STDMETHOD(SetDisplayMode) (THIS_ DWORD dwWidth, DWORD dwHeight,
- DWORD dwBPP, DWORD dwRefreshRate,
- DWORD dwFlags) PURE;
- STDMETHOD(WaitForVerticalBlank) (THIS_ DWORD dwFlags,
- HANDLE hEvent) PURE;
-
- STDMETHOD(GetAvailableVidMem) (THIS_ LPDDSCAPS lpDDCaps,
- LPDWORD lpdwTotal,
- LPDWORD lpdwFree) PURE;
- };
-
- /*** IUnknown methods ***/
-#define IDirectDraw2_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b))
-#define IDirectDraw2_AddRef(p) ICOM_CALL_(AddRef,p,(p))
-#define IDirectDraw2_Release(p) ICOM_CALL_(Release,p,(p))
- /*** IDirectDraw methods ***/
-#define IDirectDraw2_Compact(p) ICOM_CALL_(Compact,p,(p))
-#define IDirectDraw2_CreateClipper(p,a,b,c) ICOM_CALL_(CreateClipper,p,(p,a,b,c))
-#define IDirectDraw2_CreatePalette(p,a,b,c,d) ICOM_CALL_(CreatePalette,p,(p,a,b,c,d))
-#define IDirectDraw2_CreateSurface(p,a,b,c) ICOM_CALL_(CreateSurface,p,(p,a,b,c))
-#define IDirectDraw2_DuplicateSurface(p,a,b) ICOM_CALL_(DuplicateSurface,p,(p,a,b))
-#define IDirectDraw2_EnumDisplayModes(p,a,b,c,d) ICOM_CALL_(EnumDisplayModes,p,(p,a,b,c,d))
-#define IDirectDraw2_EnumSurfaces(p,a,b,c,d) ICOM_CALL_(EnumSurfaces,p,(p,a,b,c,d))
-#define IDirectDraw2_FlipToGDISurface(p) ICOM_CALL_(FlipToGDISurface,p,(p))
-#define IDirectDraw2_GetCaps(p,a,b) ICOM_CALL_(GetCaps,p,(p,a,b))
-#define IDirectDraw2_GetDisplayMode(p,a) ICOM_CALL_(GetDisplayMode,p,(p,a))
-#define IDirectDraw2_GetFourCCCodes(p,a,b) ICOM_CALL_(GetFourCCCodes,p,(p,a,b))
-#define IDirectDraw2_GetGDISurface(p,a) ICOM_CALL_(GetGDISurface,p,(p,a))
-#define IDirectDraw2_GetMonitorFrequency(p,a) ICOM_CALL_(GetMonitorFrequency,p,(p,a))
-#define IDirectDraw2_GetScanLine(p,a) ICOM_CALL_(GetScanLine,p,(p,a))
-#define IDirectDraw2_GetVerticalBlankStatus(p,a) ICOM_CALL_(GetVerticalBlankStatus,p,(p,a))
-#define IDirectDraw2_Initialize(p,a) ICOM_CALL_(Initialize,p,(p,a))
-#define IDirectDraw2_RestoreDisplayMode(p) ICOM_CALL_(RestoreDisplayMode,p,(p))
-#define IDirectDraw2_SetCooperativeLevel(p,a,b) ICOM_CALL_(SetCooperativeLevel,p,(p,a,b))
-#define IDirectDraw2_SetDisplayMode(p,a,b,c,d,e) ICOM_CALL_(SetDisplayMode,p,(p,a,b,c,d,e))
-#define IDirectDraw2_WaitForVerticalBlank(p,a,b) ICOM_CALL_(WaitForVerticalBlank,p,(p,a,b))
-/*** IDirectDraw2 methods ***/
-#define IDirectDraw2_GetAvailableVidMem(p,a,b,c) ICOM_CALL_(GetAvailableVidMem,p,(p,a,b,c))
-
-/*****************************************************************************
- * IDirectDraw4 interface
- */
-#undef INTERFACE
-#define INTERFACE IDirectDraw4
- DECLARE_INTERFACE_(IDirectDraw4, IUnknown) {
- STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE;
- STDMETHOD_(ULONG, AddRef) (THIS) PURE;
- STDMETHOD_(ULONG, Release) (THIS) PURE;
- STDMETHOD(Compact) (THIS) PURE;
- STDMETHOD(CreateClipper) (THIS_ DWORD dwFlags,
- LPDIRECTDRAWCLIPPER * lplpDDClipper,
- IUnknown * pUnkOuter) PURE;
- STDMETHOD(CreatePalette) (THIS_ DWORD dwFlags,
- LPPALETTEENTRY lpColorTable,
- LPDIRECTDRAWPALETTE * lplpDDPalette,
- IUnknown * pUnkOuter) PURE;
- STDMETHOD(CreateSurface) (THIS_ LPDDSURFACEDESC2 lpDDSurfaceDesc,
- LPDIRECTDRAWSURFACE4 * lplpDDSurface,
- IUnknown * pUnkOuter) PURE;
- STDMETHOD(DuplicateSurface) (THIS_ LPDIRECTDRAWSURFACE4 lpDDSurface,
- LPDIRECTDRAWSURFACE4 *
- lplpDupDDSurface) PURE;
- STDMETHOD(EnumDisplayModes) (THIS_ DWORD dwFlags,
- LPDDSURFACEDESC2 lpDDSurfaceDesc,
- LPVOID lpContext,
- LPDDENUMMODESCALLBACK2 lpEnumModesCallback)
- PURE;
- STDMETHOD(EnumSurfaces) (THIS_ DWORD dwFlags, LPDDSURFACEDESC2 lpDDSD,
- LPVOID lpContext,
- LPDDENUMSURFACESCALLBACK2
- lpEnumSurfacesCallback) PURE;
- STDMETHOD(FlipToGDISurface) (THIS) PURE;
- STDMETHOD(GetCaps) (THIS_ LPDDCAPS lpDDDriverCaps,
- LPDDCAPS lpDDHELCaps) PURE;
- STDMETHOD(GetDisplayMode) (THIS_ LPDDSURFACEDESC2 lpDDSurfaceDesc) PURE;
- STDMETHOD(GetFourCCCodes) (THIS_ LPDWORD lpNumCodes,
- LPDWORD lpCodes) PURE;
- STDMETHOD(GetGDISurface) (THIS_ LPDIRECTDRAWSURFACE4 *
- lplpGDIDDSurface) PURE;
- STDMETHOD(GetMonitorFrequency) (THIS_ LPDWORD lpdwFrequency) PURE;
- STDMETHOD(GetScanLine) (THIS_ LPDWORD lpdwScanLine) PURE;
- STDMETHOD(GetVerticalBlankStatus) (THIS_ BOOL * lpbIsInVB) PURE;
- STDMETHOD(Initialize) (THIS_ GUID * lpGUID) PURE;
- STDMETHOD(RestoreDisplayMode) (THIS) PURE;
- STDMETHOD(SetCooperativeLevel) (THIS_ HWND hWnd, DWORD dwFlags) PURE;
- STDMETHOD(SetDisplayMode) (THIS_ DWORD dwWidth, DWORD dwHeight,
- DWORD dwBPP, DWORD dwRefreshRate,
- DWORD dwFlags) PURE;
- STDMETHOD(WaitForVerticalBlank) (THIS_ DWORD dwFlags,
- HANDLE hEvent) PURE;
-
- STDMETHOD(GetAvailableVidMem) (THIS_ LPDDSCAPS2 lpDDCaps,
- LPDWORD lpdwTotal,
- LPDWORD lpdwFree) PURE;
-
- STDMETHOD(GetSurfaceFromDC) (THIS_ HDC, LPDIRECTDRAWSURFACE4 *) PURE;
- STDMETHOD(RestoreAllSurfaces) (THIS) PURE;
- STDMETHOD(TestCooperativeLevel) (THIS) PURE;
- STDMETHOD(GetDeviceIdentifier) (THIS_ LPDDDEVICEIDENTIFIER, DWORD) PURE;
- };
-
- /*** IUnknown methods ***/
-#define IDirectDraw4_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b))
-#define IDirectDraw4_AddRef(p) ICOM_CALL_(AddRef,p,(p))
-#define IDirectDraw4_Release(p) ICOM_CALL_(Release,p,(p))
- /*** IDirectDraw methods ***/
-#define IDirectDraw4_Compact(p) ICOM_CALL_(Compact,p,(p))
-#define IDirectDraw4_CreateClipper(p,a,b,c) ICOM_CALL_(CreateClipper,p,(p,a,b,c))
-#define IDirectDraw4_CreatePalette(p,a,b,c,d) ICOM_CALL_(CreatePalette,p,(p,a,b,c,d))
-#define IDirectDraw4_CreateSurface(p,a,b,c) ICOM_CALL_(CreateSurface,p,(p,a,b,c))
-#define IDirectDraw4_DuplicateSurface(p,a,b) ICOM_CALL_(DuplicateSurface,p,(p,a,b))
-#define IDirectDraw4_EnumDisplayModes(p,a,b,c,d) ICOM_CALL_(EnumDisplayModes,p,(p,a,b,c,d))
-#define IDirectDraw4_EnumSurfaces(p,a,b,c,d) ICOM_CALL_(EnumSurfaces,p,(p,a,b,c,d))
-#define IDirectDraw4_FlipToGDISurface(p) ICOM_CALL_(FlipToGDISurface,p,(p))
-#define IDirectDraw4_GetCaps(p,a,b) ICOM_CALL_(GetCaps,p,(p,a,b))
-#define IDirectDraw4_GetDisplayMode(p,a) ICOM_CALL_(GetDisplayMode,p,(p,a))
-#define IDirectDraw4_GetFourCCCodes(p,a,b) ICOM_CALL_(GetFourCCCodes,p,(p,a,b))
-#define IDirectDraw4_GetGDISurface(p,a) ICOM_CALL_(GetGDISurface,p,(p,a))
-#define IDirectDraw4_GetMonitorFrequency(p,a) ICOM_CALL_(GetMonitorFrequency,p,(p,a))
-#define IDirectDraw4_GetScanLine(p,a) ICOM_CALL_(GetScanLine,p,(p,a))
-#define IDirectDraw4_GetVerticalBlankStatus(p,a) ICOM_CALL_(GetVerticalBlankStatus,p,(p,a))
-#define IDirectDraw4_Initialize(p,a) ICOM_CALL_(Initialize,p,(p,a))
-#define IDirectDraw4_RestoreDisplayMode(p) ICOM_CALL_(RestoreDisplayMode,p,(p))
-#define IDirectDraw4_SetCooperativeLevel(p,a,b) ICOM_CALL_(SetCooperativeLevel,p,(p,a,b))
-#define IDirectDraw4_SetDisplayMode(p,a,b,c,d,e) ICOM_CALL_(SetDisplayMode,p,(p,a,b,c,d,e))
-#define IDirectDraw4_WaitForVerticalBlank(p,a,b) ICOM_CALL_(WaitForVerticalBlank,p,(p,a,b))
-/*** IDirectDraw2 methods ***/
-#define IDirectDraw4_GetAvailableVidMem(p,a,b,c) ICOM_CALL_(GetAvailableVidMem,p,(p,a,b,c))
-/*** IDirectDraw4 methods ***/
-#define IDirectDraw4_GetSurfaceFromDC(p,a,b) ICOM_CALL_(GetSurfaceFromDC,p,(p,a,b))
-#define IDirectDraw4_RestoreAllSurfaces(p) ICOM_CALL_(RestoreAllSurfaces,p,(p))
-#define IDirectDraw4_TestCooperativeLevel(p) ICOM_CALL_(TestCooperativeLevel,p,(p))
-#define IDirectDraw4_GetDeviceIdentifier(p,a,b) ICOM_CALL_(GetDeviceIdentifier,p,(p,a,b))
-
-/*****************************************************************************
- * IDirectDraw7 interface
- */
-/* Note: IDirectDraw7 cannot derive from IDirectDraw4; it is even documented
- * as not interchangeable with earlier DirectDraw interfaces.
- */
-#undef INTERFACE
-#define INTERFACE IDirectDraw7
- DECLARE_INTERFACE_(IDirectDraw7, IUnknown) {
- STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE;
- STDMETHOD_(ULONG, AddRef) (THIS) PURE;
- STDMETHOD_(ULONG, Release) (THIS) PURE;
- STDMETHOD(Compact) (THIS) PURE;
- STDMETHOD(CreateClipper) (THIS_ DWORD dwFlags,
- LPDIRECTDRAWCLIPPER * lplpDDClipper,
- IUnknown * pUnkOuter) PURE;
- STDMETHOD(CreatePalette) (THIS_ DWORD dwFlags,
- LPPALETTEENTRY lpColorTable,
- LPDIRECTDRAWPALETTE * lplpDDPalette,
- IUnknown * pUnkOuter) PURE;
- STDMETHOD(CreateSurface) (THIS_ LPDDSURFACEDESC2 lpDDSurfaceDesc,
- LPDIRECTDRAWSURFACE7 * lplpDDSurface,
- IUnknown * pUnkOuter) PURE;
- STDMETHOD(DuplicateSurface) (THIS_ LPDIRECTDRAWSURFACE7 lpDDSurface,
- LPDIRECTDRAWSURFACE7 *
- lplpDupDDSurface) PURE;
- STDMETHOD(EnumDisplayModes) (THIS_ DWORD dwFlags,
- LPDDSURFACEDESC2 lpDDSurfaceDesc,
- LPVOID lpContext,
- LPDDENUMMODESCALLBACK2 lpEnumModesCallback)
- PURE;
- STDMETHOD(EnumSurfaces) (THIS_ DWORD dwFlags, LPDDSURFACEDESC2 lpDDSD,
- LPVOID lpContext,
- LPDDENUMSURFACESCALLBACK7
- lpEnumSurfacesCallback) PURE;
- STDMETHOD(FlipToGDISurface) (THIS) PURE;
- STDMETHOD(GetCaps) (THIS_ LPDDCAPS lpDDDriverCaps,
- LPDDCAPS lpDDHELCaps) PURE;
- STDMETHOD(GetDisplayMode) (THIS_ LPDDSURFACEDESC2 lpDDSurfaceDesc) PURE;
- STDMETHOD(GetFourCCCodes) (THIS_ LPDWORD lpNumCodes,
- LPDWORD lpCodes) PURE;
- STDMETHOD(GetGDISurface) (THIS_ LPDIRECTDRAWSURFACE7 *
- lplpGDIDDSurface) PURE;
- STDMETHOD(GetMonitorFrequency) (THIS_ LPDWORD lpdwFrequency) PURE;
- STDMETHOD(GetScanLine) (THIS_ LPDWORD lpdwScanLine) PURE;
- STDMETHOD(GetVerticalBlankStatus) (THIS_ BOOL * lpbIsInVB) PURE;
- STDMETHOD(Initialize) (THIS_ GUID * lpGUID) PURE;
- STDMETHOD(RestoreDisplayMode) (THIS) PURE;
- STDMETHOD(SetCooperativeLevel) (THIS_ HWND hWnd, DWORD dwFlags) PURE;
- STDMETHOD(SetDisplayMode) (THIS_ DWORD dwWidth, DWORD dwHeight,
- DWORD dwBPP, DWORD dwRefreshRate,
- DWORD dwFlags) PURE;
- STDMETHOD(WaitForVerticalBlank) (THIS_ DWORD dwFlags,
- HANDLE hEvent) PURE;
-
- STDMETHOD(GetAvailableVidMem) (THIS_ LPDDSCAPS2 lpDDCaps,
- LPDWORD lpdwTotal,
- LPDWORD lpdwFree) PURE;
-
- STDMETHOD(GetSurfaceFromDC) (THIS_ HDC, LPDIRECTDRAWSURFACE7 *) PURE;
- STDMETHOD(RestoreAllSurfaces) (THIS) PURE;
- STDMETHOD(TestCooperativeLevel) (THIS) PURE;
- STDMETHOD(GetDeviceIdentifier) (THIS_ LPDDDEVICEIDENTIFIER2,
- DWORD) PURE;
-
- STDMETHOD(StartModeTest) (THIS_ LPSIZE, DWORD, DWORD) PURE;
- STDMETHOD(EvaluateMode) (THIS_ DWORD, DWORD *) PURE;
- };
-
- /*** IUnknown methods ***/
-#define IDirectDraw7_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b))
-#define IDirectDraw7_AddRef(p) ICOM_CALL_(AddRef,p,(p))
-#define IDirectDraw7_Release(p) ICOM_CALL_(Release,p,(p))
- /*** IDirectDraw methods ***/
-#define IDirectDraw7_Compact(p) ICOM_CALL_(Compact,p,(p))
-#define IDirectDraw7_CreateClipper(p,a,b,c) ICOM_CALL_(CreateClipper,p,(p,a,b,c))
-#define IDirectDraw7_CreatePalette(p,a,b,c,d) ICOM_CALL_(CreatePalette,p,(p,a,b,c,d))
-#define IDirectDraw7_CreateSurface(p,a,b,c) ICOM_CALL_(CreateSurface,p,(p,a,b,c))
-#define IDirectDraw7_DuplicateSurface(p,a,b) ICOM_CALL_(DuplicateSurface,p,(p,a,b))
-#define IDirectDraw7_EnumDisplayModes(p,a,b,c,d) ICOM_CALL_(EnumDisplayModes,p,(p,a,b,c,d))
-#define IDirectDraw7_EnumSurfaces(p,a,b,c,d) ICOM_CALL_(EnumSurfaces,p,(p,a,b,c,d))
-#define IDirectDraw7_FlipToGDISurface(p) ICOM_CALL_(FlipToGDISurface,p,(p))
-#define IDirectDraw7_GetCaps(p,a,b) ICOM_CALL_(GetCaps,p,(p,a,b))
-#define IDirectDraw7_GetDisplayMode(p,a) ICOM_CALL_(GetDisplayMode,p,(p,a))
-#define IDirectDraw7_GetFourCCCodes(p,a,b) ICOM_CALL_(GetFourCCCodes,p,(p,a,b))
-#define IDirectDraw7_GetGDISurface(p,a) ICOM_CALL_(GetGDISurface,p,(p,a))
-#define IDirectDraw7_GetMonitorFrequency(p,a) ICOM_CALL_(GetMonitorFrequency,p,(p,a))
-#define IDirectDraw7_GetScanLine(p,a) ICOM_CALL_(GetScanLine,p,(p,a))
-#define IDirectDraw7_GetVerticalBlankStatus(p,a) ICOM_CALL_(GetVerticalBlankStatus,p,(p,a))
-#define IDirectDraw7_Initialize(p,a) ICOM_CALL_(Initialize,p,(p,a))
-#define IDirectDraw7_RestoreDisplayMode(p) ICOM_CALL_(RestoreDisplayMode,p,(p))
-#define IDirectDraw7_SetCooperativeLevel(p,a,b) ICOM_CALL_(SetCooperativeLevel,p,(p,a,b))
-#define IDirectDraw7_SetDisplayMode(p,a,b,c,d,e) ICOM_CALL_(SetDisplayMode,p,(p,a,b,c,d,e))
-#define IDirectDraw7_WaitForVerticalBlank(p,a,b) ICOM_CALL_(WaitForVerticalBlank,p,(p,a,b))
-/*** added in IDirectDraw2 ***/
-#define IDirectDraw7_GetAvailableVidMem(p,a,b,c) ICOM_CALL_(GetAvailableVidMem,p,(p,a,b,c))
-/*** added in IDirectDraw4 ***/
-#define IDirectDraw7_GetSurfaceFromDC(p,a,b) ICOM_CALL_(GetSurfaceFromDC,p,(p,a,b))
-#define IDirectDraw7_RestoreAllSurfaces(p) ICOM_CALL_(RestoreAllSurfaces,p,(p))
-#define IDirectDraw7_TestCooperativeLevel(p) ICOM_CALL_(TestCooperativeLevel,p,(p))
-#define IDirectDraw7_GetDeviceIdentifier(p,a,b) ICOM_CALL_(GetDeviceIdentifier,p,(p,a,b))
-/*** added in IDirectDraw 7 ***/
-#define IDirectDraw7_StartModeTest(p,a,b,c) ICOM_CALL_(StartModeTest,p,(p,a,b,c))
-#define IDirectDraw7_EvaluateMode(p,a,b) ICOM_CALL_(EvaluateMode,p,(p,a,b))
-
-/*****************************************************************************
- * IDirectDrawSurface interface
- */
-#undef INTERFACE
-#define INTERFACE IDirectDrawSurface
- DECLARE_INTERFACE_(IDirectDrawSurface, IUnknown) {
- STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE;
- STDMETHOD_(ULONG, AddRef) (THIS) PURE;
- STDMETHOD_(ULONG, Release) (THIS) PURE;
- STDMETHOD(AddAttachedSurface) (THIS_ LPDIRECTDRAWSURFACE
- lpDDSAttachedSurface) PURE;
- STDMETHOD(AddOverlayDirtyRect) (THIS_ LPRECT lpRect) PURE;
- STDMETHOD(Blt) (THIS_ LPRECT lpDestRect,
- LPDIRECTDRAWSURFACE lpDDSrcSurface, LPRECT lpSrcRect,
- DWORD dwFlags, LPDDBLTFX lpDDBltFx) PURE;
- STDMETHOD(BltBatch) (THIS_ LPDDBLTBATCH lpDDBltBatch, DWORD dwCount,
- DWORD dwFlags) PURE;
- STDMETHOD(BltFast) (THIS_ DWORD dwX, DWORD dwY,
- LPDIRECTDRAWSURFACE lpDDSrcSurface,
- LPRECT lpSrcRect, DWORD dwTrans) PURE;
- STDMETHOD(DeleteAttachedSurface) (THIS_ DWORD dwFlags,
- LPDIRECTDRAWSURFACE
- lpDDSAttachedSurface) PURE;
- STDMETHOD(EnumAttachedSurfaces) (THIS_ LPVOID lpContext,
- LPDDENUMSURFACESCALLBACK
- lpEnumSurfacesCallback) PURE;
- STDMETHOD(EnumOverlayZOrders) (THIS_ DWORD dwFlags, LPVOID lpContext,
- LPDDENUMSURFACESCALLBACK lpfnCallback)
- PURE;
- STDMETHOD(Flip) (THIS_ LPDIRECTDRAWSURFACE lpDDSurfaceTargetOverride,
- DWORD dwFlags) PURE;
- STDMETHOD(GetAttachedSurface) (THIS_ LPDDSCAPS lpDDSCaps,
- LPDIRECTDRAWSURFACE *
- lplpDDAttachedSurface) PURE;
- STDMETHOD(GetBltStatus) (THIS_ DWORD dwFlags) PURE;
- STDMETHOD(GetCaps) (THIS_ LPDDSCAPS lpDDSCaps) PURE;
- STDMETHOD(GetClipper) (THIS_ LPDIRECTDRAWCLIPPER * lplpDDClipper) PURE;
- STDMETHOD(GetColorKey) (THIS_ DWORD dwFlags,
- LPDDCOLORKEY lpDDColorKey) PURE;
- STDMETHOD(GetDC) (THIS_ HDC * lphDC) PURE;
- STDMETHOD(GetFlipStatus) (THIS_ DWORD dwFlags) PURE;
- STDMETHOD(GetOverlayPosition) (THIS_ LPLONG lplX, LPLONG lplY) PURE;
- STDMETHOD(GetPalette) (THIS_ LPDIRECTDRAWPALETTE * lplpDDPalette) PURE;
- STDMETHOD(GetPixelFormat) (THIS_ LPDDPIXELFORMAT lpDDPixelFormat) PURE;
- STDMETHOD(GetSurfaceDesc) (THIS_ LPDDSURFACEDESC lpDDSurfaceDesc) PURE;
- STDMETHOD(Initialize) (THIS_ LPDIRECTDRAW lpDD,
- LPDDSURFACEDESC lpDDSurfaceDesc) PURE;
- STDMETHOD(IsLost) (THIS) PURE;
- STDMETHOD(Lock) (THIS_ LPRECT lpDestRect,
- LPDDSURFACEDESC lpDDSurfaceDesc, DWORD dwFlags,
- HANDLE hEvent) PURE;
- STDMETHOD(ReleaseDC) (THIS_ HDC hDC) PURE;
- STDMETHOD(Restore) (THIS) PURE;
- STDMETHOD(SetClipper) (THIS_ LPDIRECTDRAWCLIPPER lpDDClipper) PURE;
- STDMETHOD(SetColorKey) (THIS_ DWORD dwFlags,
- LPDDCOLORKEY lpDDColorKey) PURE;
- STDMETHOD(SetOverlayPosition) (THIS_ LONG lX, LONG lY) PURE;
- STDMETHOD(SetPalette) (THIS_ LPDIRECTDRAWPALETTE lpDDPalette) PURE;
- STDMETHOD(Unlock) (THIS_ LPVOID lpSurfaceData) PURE;
- STDMETHOD(UpdateOverlay) (THIS_ LPRECT lpSrcRect,
- LPDIRECTDRAWSURFACE lpDDDestSurface,
- LPRECT lpDestRect, DWORD dwFlags,
- LPDDOVERLAYFX lpDDOverlayFx) PURE;
- STDMETHOD(UpdateOverlayDisplay) (THIS_ DWORD dwFlags) PURE;
- STDMETHOD(UpdateOverlayZOrder) (THIS_ DWORD dwFlags,
- LPDIRECTDRAWSURFACE lpDDSReference)
- PURE;
- };
-
- /*** IUnknown methods ***/
-#define IDirectDrawSurface_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b))
-#define IDirectDrawSurface_AddRef(p) ICOM_CALL_(AddRef,p,(p))
-#define IDirectDrawSurface_Release(p) ICOM_CALL_(Release,p,(p))
- /*** IDirectDrawSurface methods ***/
-#define IDirectDrawSurface_AddAttachedSurface(p,a) ICOM_CALL_(AddAttachedSurface,p,(p,a))
-#define IDirectDrawSurface_AddOverlayDirtyRect(p,a) ICOM_CALL_(AddOverlayDirtyRect,p,(p,a))
-#define IDirectDrawSurface_Blt(p,a,b,c,d,e) ICOM_CALL_(Blt,p,(p,a,b,c,d,e))
-#define IDirectDrawSurface_BltBatch(p,a,b,c) ICOM_CALL_(BltBatch,p,(p,a,b,c))
-#define IDirectDrawSurface_BltFast(p,a,b,c,d,e) ICOM_CALL_(BltFast,p,(p,a,b,c,d,e))
-#define IDirectDrawSurface_DeleteAttachedSurface(p,a,b) ICOM_CALL_(DeleteAttachedSurface,p,(p,a,b))
-#define IDirectDrawSurface_EnumAttachedSurfaces(p,a,b) ICOM_CALL_(EnumAttachedSurfaces,p,(p,a,b))
-#define IDirectDrawSurface_EnumOverlayZOrders(p,a,b,c) ICOM_CALL_(EnumOverlayZOrders,p,(p,a,b,c))
-#define IDirectDrawSurface_Flip(p,a,b) ICOM_CALL_(Flip,p,(p,a,b))
-#define IDirectDrawSurface_GetAttachedSurface(p,a,b) ICOM_CALL_(GetAttachedSurface,p,(p,a,b))
-#define IDirectDrawSurface_GetBltStatus(p,a) ICOM_CALL_(GetBltStatus,p,(p,a))
-#define IDirectDrawSurface_GetCaps(p,a) ICOM_CALL_(GetCaps,p,(p,a))
-#define IDirectDrawSurface_GetClipper(p,a) ICOM_CALL_(GetClipper,p,(p,a))
-#define IDirectDrawSurface_GetColorKey(p,a,b) ICOM_CALL_(GetColorKey,p,(p,a,b))
-#define IDirectDrawSurface_GetDC(p,a) ICOM_CALL_(GetDC,p,(p,a))
-#define IDirectDrawSurface_GetFlipStatus(p,a) ICOM_CALL_(GetFlipStatus,p,(p,a))
-#define IDirectDrawSurface_GetOverlayPosition(p,a,b) ICOM_CALL_(GetOverlayPosition,p,(p,a,b))
-#define IDirectDrawSurface_GetPalette(p,a) ICOM_CALL_(GetPalette,p,(p,a))
-#define IDirectDrawSurface_GetPixelFormat(p,a) ICOM_CALL_(GetPixelFormat,p,(p,a))
-#define IDirectDrawSurface_GetSurfaceDesc(p,a) ICOM_CALL_(GetSurfaceDesc,p,(p,a))
-#define IDirectDrawSurface_Initialize(p,a,b) ICOM_CALL_(Initialize,p,(p,a,b))
-#define IDirectDrawSurface_IsLost(p) ICOM_CALL_(IsLost,p,(p))
-#define IDirectDrawSurface_Lock(p,a,b,c,d) ICOM_CALL_(Lock,p,(p,a,b,c,d))
-#define IDirectDrawSurface_ReleaseDC(p,a) ICOM_CALL_(ReleaseDC,p,(p,a))
-#define IDirectDrawSurface_Restore(p) ICOM_CALL_(Restore,p,(p))
-#define IDirectDrawSurface_SetClipper(p,a) ICOM_CALL_(SetClipper,p,(p,a))
-#define IDirectDrawSurface_SetColorKey(p,a,b) ICOM_CALL_(SetColorKey,p,(p,a,b))
-#define IDirectDrawSurface_SetOverlayPosition(p,a,b) ICOM_CALL_(SetOverlayPosition,p,(p,a,b))
-#define IDirectDrawSurface_SetPalette(p,a) ICOM_CALL_(SetPalette,p,(p,a))
-#define IDirectDrawSurface_Unlock(p,a) ICOM_CALL_(Unlock,p,(p,a))
-#define IDirectDrawSurface_UpdateOverlay(p,a,b,c,d,e) ICOM_CALL_(UpdateOverlay,p,(p,a,b,c,d,e))
-#define IDirectDrawSurface_UpdateOverlayDisplay(p,a) ICOM_CALL_(UpdateOverlayDisplay,p,(p,a))
-#define IDirectDrawSurface_UpdateOverlayZOrder(p,a,b) ICOM_CALL_(UpdateOverlayZOrder,p,(p,a,b))
-
-/*****************************************************************************
- * IDirectDrawSurface2 interface
- */
-/* Cannot inherit from IDirectDrawSurface because the LPDIRECTDRAWSURFACE parameters
- * have been converted to LPDIRECTDRAWSURFACE2.
- */
-#undef INTERFACE
-#define INTERFACE IDirectDrawSurface2
- DECLARE_INTERFACE_(IDirectDrawSurface2, IUnknown) {
- STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE;
- STDMETHOD_(ULONG, AddRef) (THIS) PURE;
- STDMETHOD_(ULONG, Release) (THIS) PURE;
- STDMETHOD(AddAttachedSurface) (THIS_ LPDIRECTDRAWSURFACE2
- lpDDSAttachedSurface) PURE;
- STDMETHOD(AddOverlayDirtyRect) (THIS_ LPRECT lpRect) PURE;
- STDMETHOD(Blt) (THIS_ LPRECT lpDestRect,
- LPDIRECTDRAWSURFACE2 lpDDSrcSurface, LPRECT lpSrcRect,
- DWORD dwFlags, LPDDBLTFX lpDDBltFx) PURE;
- STDMETHOD(BltBatch) (THIS_ LPDDBLTBATCH lpDDBltBatch, DWORD dwCount,
- DWORD dwFlags) PURE;
- STDMETHOD(BltFast) (THIS_ DWORD dwX, DWORD dwY,
- LPDIRECTDRAWSURFACE2 lpDDSrcSurface,
- LPRECT lpSrcRect, DWORD dwTrans) PURE;
- STDMETHOD(DeleteAttachedSurface) (THIS_ DWORD dwFlags,
- LPDIRECTDRAWSURFACE2
- lpDDSAttachedSurface) PURE;
- STDMETHOD(EnumAttachedSurfaces) (THIS_ LPVOID lpContext,
- LPDDENUMSURFACESCALLBACK
- lpEnumSurfacesCallback) PURE;
- STDMETHOD(EnumOverlayZOrders) (THIS_ DWORD dwFlags, LPVOID lpContext,
- LPDDENUMSURFACESCALLBACK lpfnCallback)
- PURE;
- STDMETHOD(Flip) (THIS_ LPDIRECTDRAWSURFACE2 lpDDSurfaceTargetOverride,
- DWORD dwFlags) PURE;
- STDMETHOD(GetAttachedSurface) (THIS_ LPDDSCAPS lpDDSCaps,
- LPDIRECTDRAWSURFACE2 *
- lplpDDAttachedSurface) PURE;
- STDMETHOD(GetBltStatus) (THIS_ DWORD dwFlags) PURE;
- STDMETHOD(GetCaps) (THIS_ LPDDSCAPS lpDDSCaps) PURE;
- STDMETHOD(GetClipper) (THIS_ LPDIRECTDRAWCLIPPER * lplpDDClipper) PURE;
- STDMETHOD(GetColorKey) (THIS_ DWORD dwFlags,
- LPDDCOLORKEY lpDDColorKey) PURE;
- STDMETHOD(GetDC) (THIS_ HDC * lphDC) PURE;
- STDMETHOD(GetFlipStatus) (THIS_ DWORD dwFlags) PURE;
- STDMETHOD(GetOverlayPosition) (THIS_ LPLONG lplX, LPLONG lplY) PURE;
- STDMETHOD(GetPalette) (THIS_ LPDIRECTDRAWPALETTE * lplpDDPalette) PURE;
- STDMETHOD(GetPixelFormat) (THIS_ LPDDPIXELFORMAT lpDDPixelFormat) PURE;
- STDMETHOD(GetSurfaceDesc) (THIS_ LPDDSURFACEDESC lpDDSurfaceDesc) PURE;
- STDMETHOD(Initialize) (THIS_ LPDIRECTDRAW lpDD,
- LPDDSURFACEDESC lpDDSurfaceDesc) PURE;
- STDMETHOD(IsLost) (THIS) PURE;
- STDMETHOD(Lock) (THIS_ LPRECT lpDestRect,
- LPDDSURFACEDESC lpDDSurfaceDesc, DWORD dwFlags,
- HANDLE hEvent) PURE;
- STDMETHOD(ReleaseDC) (THIS_ HDC hDC) PURE;
- STDMETHOD(Restore) (THIS) PURE;
- STDMETHOD(SetClipper) (THIS_ LPDIRECTDRAWCLIPPER lpDDClipper) PURE;
- STDMETHOD(SetColorKey) (THIS_ DWORD dwFlags,
- LPDDCOLORKEY lpDDColorKey) PURE;
- STDMETHOD(SetOverlayPosition) (THIS_ LONG lX, LONG lY) PURE;
- STDMETHOD(SetPalette) (THIS_ LPDIRECTDRAWPALETTE lpDDPalette) PURE;
- STDMETHOD(Unlock) (THIS_ LPVOID lpSurfaceData) PURE;
- STDMETHOD(UpdateOverlay) (THIS_ LPRECT lpSrcRect,
- LPDIRECTDRAWSURFACE2 lpDDDestSurface,
- LPRECT lpDestRect, DWORD dwFlags,
- LPDDOVERLAYFX lpDDOverlayFx) PURE;
- STDMETHOD(UpdateOverlayDisplay) (THIS_ DWORD dwFlags) PURE;
- STDMETHOD(UpdateOverlayZOrder) (THIS_ DWORD dwFlags,
- LPDIRECTDRAWSURFACE2 lpDDSReference)
- PURE;
- /* added in v2 */
- STDMETHOD(GetDDInterface) (THIS_ LPVOID * lplpDD) PURE;
- STDMETHOD(PageLock) (THIS_ DWORD dwFlags) PURE;
- STDMETHOD(PageUnlock) (THIS_ DWORD dwFlags) PURE;
- };
-
- /*** IUnknown methods ***/
-#define IDirectDrawSurface2_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b))
-#define IDirectDrawSurface2_AddRef(p) ICOM_CALL_(AddRef,p,(p))
-#define IDirectDrawSurface2_Release(p) ICOM_CALL_(Release,p,(p))
-/*** IDirectDrawSurface methods (almost) ***/
-#define IDirectDrawSurface2_AddAttachedSurface(p,a) ICOM_CALL_(AddAttachedSurface,p,(p,a))
-#define IDirectDrawSurface2_AddOverlayDirtyRect(p,a) ICOM_CALL_(AddOverlayDirtyRect,p,(p,a))
-#define IDirectDrawSurface2_Blt(p,a,b,c,d,e) ICOM_CALL_(Blt,p,(p,a,b,c,d,e))
-#define IDirectDrawSurface2_BltBatch(p,a,b,c) ICOM_CALL_(BltBatch,p,(p,a,b,c))
-#define IDirectDrawSurface2_BltFast(p,a,b,c,d,e) ICOM_CALL_(BltFast,p,(p,a,b,c,d,e))
-#define IDirectDrawSurface2_DeleteAttachedSurface(p,a,b) ICOM_CALL_(DeleteAttachedSurface,p,(p,a,b))
-#define IDirectDrawSurface2_EnumAttachedSurfaces(p,a,b) ICOM_CALL_(EnumAttachedSurfaces,p,(p,a,b))
-#define IDirectDrawSurface2_EnumOverlayZOrders(p,a,b,c) ICOM_CALL_(EnumOverlayZOrders,p,(p,a,b,c))
-#define IDirectDrawSurface2_Flip(p,a,b) ICOM_CALL_(Flip,p,(p,a,b))
-#define IDirectDrawSurface2_GetAttachedSurface(p,a,b) ICOM_CALL_(GetAttachedSurface,p,(p,a,b))
-#define IDirectDrawSurface2_GetBltStatus(p,a) ICOM_CALL_(GetBltStatus,p,(p,a))
-#define IDirectDrawSurface2_GetCaps(p,a) ICOM_CALL_(GetCaps,p,(p,a))
-#define IDirectDrawSurface2_GetClipper(p,a) ICOM_CALL_(GetClipper,p,(p,a))
-#define IDirectDrawSurface2_GetColorKey(p,a,b) ICOM_CALL_(GetColorKey,p,(p,a,b))
-#define IDirectDrawSurface2_GetDC(p,a) ICOM_CALL_(GetDC,p,(p,a))
-#define IDirectDrawSurface2_GetFlipStatus(p,a) ICOM_CALL_(GetFlipStatus,p,(p,a))
-#define IDirectDrawSurface2_GetOverlayPosition(p,a,b) ICOM_CALL_(GetOverlayPosition,p,(p,a,b))
-#define IDirectDrawSurface2_GetPalette(p,a) ICOM_CALL_(GetPalette,p,(p,a))
-#define IDirectDrawSurface2_GetPixelFormat(p,a) ICOM_CALL_(GetPixelFormat,p,(p,a))
-#define IDirectDrawSurface2_GetSurfaceDesc(p,a) ICOM_CALL_(GetSurfaceDesc,p,(p,a))
-#define IDirectDrawSurface2_Initialize(p,a,b) ICOM_CALL_(Initialize,p,(p,a,b))
-#define IDirectDrawSurface2_IsLost(p) ICOM_CALL_(IsLost,p,(p))
-#define IDirectDrawSurface2_Lock(p,a,b,c,d) ICOM_CALL_(Lock,p,(p,a,b,c,d))
-#define IDirectDrawSurface2_ReleaseDC(p,a) ICOM_CALL_(ReleaseDC,p,(p,a))
-#define IDirectDrawSurface2_Restore(p) ICOM_CALL_(Restore,p,(p))
-#define IDirectDrawSurface2_SetClipper(p,a) ICOM_CALL_(SetClipper,p,(p,a))
-#define IDirectDrawSurface2_SetColorKey(p,a,b) ICOM_CALL_(SetColorKey,p,(p,a,b))
-#define IDirectDrawSurface2_SetOverlayPosition(p,a,b) ICOM_CALL_(SetOverlayPosition,p,(p,a,b))
-#define IDirectDrawSurface2_SetPalette(p,a) ICOM_CALL_(SetPalette,p,(p,a))
-#define IDirectDrawSurface2_Unlock(p,a) ICOM_CALL_(Unlock,p,(p,a))
-#define IDirectDrawSurface2_UpdateOverlay(p,a,b,c,d,e) ICOM_CALL_(UpdateOverlay,p,(p,a,b,c,d,e))
-#define IDirectDrawSurface2_UpdateOverlayDisplay(p,a) ICOM_CALL_(UpdateOverlayDisplay,p,(p,a))
-#define IDirectDrawSurface2_UpdateOverlayZOrder(p,a,b) ICOM_CALL_(UpdateOverlayZOrder,p,(p,a,b))
-/*** IDirectDrawSurface2 methods ***/
-#define IDirectDrawSurface2_GetDDInterface(p,a) ICOM_CALL_(GetDDInterface,p,(p,a))
-#define IDirectDrawSurface2_PageLock(p,a) ICOM_CALL_(PageLock,p,(p,a))
-#define IDirectDrawSurface2_PageUnlock(p,a) ICOM_CALL_(PageUnlock,p,(p,a))
-
-/*****************************************************************************
- * IDirectDrawSurface3 interface
- */
-/* Cannot inherit from IDirectDrawSurface2 because the LPDIRECTDRAWSURFACE2 parameters
- * have been converted to LPDIRECTDRAWSURFACE3.
- */
-#undef INTERFACE
-#define INTERFACE IDirectDrawSurface3
- DECLARE_INTERFACE_(IDirectDrawSurface3, IUnknown) {
- STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE;
- STDMETHOD_(ULONG, AddRef) (THIS) PURE;
- STDMETHOD_(ULONG, Release) (THIS) PURE;
- STDMETHOD(AddAttachedSurface) (THIS_ LPDIRECTDRAWSURFACE3
- lpDDSAttachedSurface) PURE;
- STDMETHOD(AddOverlayDirtyRect) (THIS_ LPRECT lpRect) PURE;
- STDMETHOD(Blt) (THIS_ LPRECT lpDestRect,
- LPDIRECTDRAWSURFACE3 lpDDSrcSurface, LPRECT lpSrcRect,
- DWORD dwFlags, LPDDBLTFX lpDDBltFx) PURE;
- STDMETHOD(BltBatch) (THIS_ LPDDBLTBATCH lpDDBltBatch, DWORD dwCount,
- DWORD dwFlags) PURE;
- STDMETHOD(BltFast) (THIS_ DWORD dwX, DWORD dwY,
- LPDIRECTDRAWSURFACE3 lpDDSrcSurface,
- LPRECT lpSrcRect, DWORD dwTrans) PURE;
- STDMETHOD(DeleteAttachedSurface) (THIS_ DWORD dwFlags,
- LPDIRECTDRAWSURFACE3
- lpDDSAttachedSurface) PURE;
- STDMETHOD(EnumAttachedSurfaces) (THIS_ LPVOID lpContext,
- LPDDENUMSURFACESCALLBACK
- lpEnumSurfacesCallback) PURE;
- STDMETHOD(EnumOverlayZOrders) (THIS_ DWORD dwFlags, LPVOID lpContext,
- LPDDENUMSURFACESCALLBACK lpfnCallback)
- PURE;
- STDMETHOD(Flip) (THIS_ LPDIRECTDRAWSURFACE3 lpDDSurfaceTargetOverride,
- DWORD dwFlags) PURE;
- STDMETHOD(GetAttachedSurface) (THIS_ LPDDSCAPS lpDDSCaps,
- LPDIRECTDRAWSURFACE3 *
- lplpDDAttachedSurface) PURE;
- STDMETHOD(GetBltStatus) (THIS_ DWORD dwFlags) PURE;
- STDMETHOD(GetCaps) (THIS_ LPDDSCAPS lpDDSCaps) PURE;
- STDMETHOD(GetClipper) (THIS_ LPDIRECTDRAWCLIPPER * lplpDDClipper) PURE;
- STDMETHOD(GetColorKey) (THIS_ DWORD dwFlags,
- LPDDCOLORKEY lpDDColorKey) PURE;
- STDMETHOD(GetDC) (THIS_ HDC * lphDC) PURE;
- STDMETHOD(GetFlipStatus) (THIS_ DWORD dwFlags) PURE;
- STDMETHOD(GetOverlayPosition) (THIS_ LPLONG lplX, LPLONG lplY) PURE;
- STDMETHOD(GetPalette) (THIS_ LPDIRECTDRAWPALETTE * lplpDDPalette) PURE;
- STDMETHOD(GetPixelFormat) (THIS_ LPDDPIXELFORMAT lpDDPixelFormat) PURE;
- STDMETHOD(GetSurfaceDesc) (THIS_ LPDDSURFACEDESC lpDDSurfaceDesc) PURE;
- STDMETHOD(Initialize) (THIS_ LPDIRECTDRAW lpDD,
- LPDDSURFACEDESC lpDDSurfaceDesc) PURE;
- STDMETHOD(IsLost) (THIS) PURE;
- STDMETHOD(Lock) (THIS_ LPRECT lpDestRect,
- LPDDSURFACEDESC lpDDSurfaceDesc, DWORD dwFlags,
- HANDLE hEvent) PURE;
- STDMETHOD(ReleaseDC) (THIS_ HDC hDC) PURE;
- STDMETHOD(Restore) (THIS) PURE;
- STDMETHOD(SetClipper) (THIS_ LPDIRECTDRAWCLIPPER lpDDClipper) PURE;
- STDMETHOD(SetColorKey) (THIS_ DWORD dwFlags,
- LPDDCOLORKEY lpDDColorKey) PURE;
- STDMETHOD(SetOverlayPosition) (THIS_ LONG lX, LONG lY) PURE;
- STDMETHOD(SetPalette) (THIS_ LPDIRECTDRAWPALETTE lpDDPalette) PURE;
- STDMETHOD(Unlock) (THIS_ LPVOID lpSurfaceData) PURE;
- STDMETHOD(UpdateOverlay) (THIS_ LPRECT lpSrcRect,
- LPDIRECTDRAWSURFACE3 lpDDDestSurface,
- LPRECT lpDestRect, DWORD dwFlags,
- LPDDOVERLAYFX lpDDOverlayFx) PURE;
- STDMETHOD(UpdateOverlayDisplay) (THIS_ DWORD dwFlags) PURE;
- STDMETHOD(UpdateOverlayZOrder) (THIS_ DWORD dwFlags,
- LPDIRECTDRAWSURFACE3 lpDDSReference)
- PURE;
- /* added in v2 */
- STDMETHOD(GetDDInterface) (THIS_ LPVOID * lplpDD) PURE;
- STDMETHOD(PageLock) (THIS_ DWORD dwFlags) PURE;
- STDMETHOD(PageUnlock) (THIS_ DWORD dwFlags) PURE;
- /* added in v3 */
- STDMETHOD(SetSurfaceDesc) (THIS_ LPDDSURFACEDESC lpDDSD,
- DWORD dwFlags) PURE;
- };
-
- /*** IUnknown methods ***/
-#define IDirectDrawSurface3_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b))
-#define IDirectDrawSurface3_AddRef(p) ICOM_CALL_(AddRef,p,(p))
-#define IDirectDrawSurface3_Release(p) ICOM_CALL_(Release,p,(p))
-/*** IDirectDrawSurface methods (almost) ***/
-#define IDirectDrawSurface3_AddAttachedSurface(p,a) ICOM_CALL_(AddAttachedSurface,p,(p,a))
-#define IDirectDrawSurface3_AddOverlayDirtyRect(p,a) ICOM_CALL_(AddOverlayDirtyRect,p,(p,a))
-#define IDirectDrawSurface3_Blt(p,a,b,c,d,e) ICOM_CALL_(Blt,p,(p,a,b,c,d,e))
-#define IDirectDrawSurface3_BltBatch(p,a,b,c) ICOM_CALL_(BltBatch,p,(p,a,b,c))
-#define IDirectDrawSurface3_BltFast(p,a,b,c,d,e) ICOM_CALL_(BltFast,p,(p,a,b,c,d,e))
-#define IDirectDrawSurface3_DeleteAttachedSurface(p,a,b) ICOM_CALL_(DeleteAttachedSurface,p,(p,a,b))
-#define IDirectDrawSurface3_EnumAttachedSurfaces(p,a,b) ICOM_CALL_(EnumAttachedSurfaces,p,(p,a,b))
-#define IDirectDrawSurface3_EnumOverlayZOrders(p,a,b,c) ICOM_CALL_(EnumOverlayZOrders,p,(p,a,b,c))
-#define IDirectDrawSurface3_Flip(p,a,b) ICOM_CALL_(Flip,p,(p,a,b))
-#define IDirectDrawSurface3_GetAttachedSurface(p,a,b) ICOM_CALL_(GetAttachedSurface,p,(p,a,b))
-#define IDirectDrawSurface3_GetBltStatus(p,a) ICOM_CALL_(GetBltStatus,p,(p,a))
-#define IDirectDrawSurface3_GetCaps(p,a) ICOM_CALL_(GetCaps,p,(p,a))
-#define IDirectDrawSurface3_GetClipper(p,a) ICOM_CALL_(GetClipper,p,(p,a))
-#define IDirectDrawSurface3_GetColorKey(p,a,b) ICOM_CALL_(GetColorKey,p,(p,a,b))
-#define IDirectDrawSurface3_GetDC(p,a) ICOM_CALL_(GetDC,p,(p,a))
-#define IDirectDrawSurface3_GetFlipStatus(p,a) ICOM_CALL_(GetFlipStatus,p,(p,a))
-#define IDirectDrawSurface3_GetOverlayPosition(p,a,b) ICOM_CALL_(GetOverlayPosition,p,(p,a,b))
-#define IDirectDrawSurface3_GetPalette(p,a) ICOM_CALL_(GetPalette,p,(p,a))
-#define IDirectDrawSurface3_GetPixelFormat(p,a) ICOM_CALL_(GetPixelFormat,p,(p,a))
-#define IDirectDrawSurface3_GetSurfaceDesc(p,a) ICOM_CALL_(GetSurfaceDesc,p,(p,a))
-#define IDirectDrawSurface3_Initialize(p,a,b) ICOM_CALL_(Initialize,p,(p,a,b))
-#define IDirectDrawSurface3_IsLost(p) ICOM_CALL_(IsLost,p,(p))
-#define IDirectDrawSurface3_Lock(p,a,b,c,d) ICOM_CALL_(Lock,p,(p,a,b,c,d))
-#define IDirectDrawSurface3_ReleaseDC(p,a) ICOM_CALL_(ReleaseDC,p,(p,a))
-#define IDirectDrawSurface3_Restore(p) ICOM_CALL_(Restore,p,(p))
-#define IDirectDrawSurface3_SetClipper(p,a) ICOM_CALL_(SetClipper,p,(p,a))
-#define IDirectDrawSurface3_SetColorKey(p,a,b) ICOM_CALL_(SetColorKey,p,(p,a,b))
-#define IDirectDrawSurface3_SetOverlayPosition(p,a,b) ICOM_CALL_(SetOverlayPosition,p,(p,a,b))
-#define IDirectDrawSurface3_SetPalette(p,a) ICOM_CALL_(SetPalette,p,(p,a))
-#define IDirectDrawSurface3_Unlock(p,a) ICOM_CALL_(Unlock,p,(p,a))
-#define IDirectDrawSurface3_UpdateOverlay(p,a,b,c,d,e) ICOM_CALL_(UpdateOverlay,p,(p,a,b,c,d,e))
-#define IDirectDrawSurface3_UpdateOverlayDisplay(p,a) ICOM_CALL_(UpdateOverlayDisplay,p,(p,a))
-#define IDirectDrawSurface3_UpdateOverlayZOrder(p,a,b) ICOM_CALL_(UpdateOverlayZOrder,p,(p,a,b))
-/*** IDirectDrawSurface2 methods ***/
-#define IDirectDrawSurface3_GetDDInterface(p,a) ICOM_CALL_(GetDDInterface,p,(p,a))
-#define IDirectDrawSurface3_PageLock(p,a) ICOM_CALL_(PageLock,p,(p,a))
-#define IDirectDrawSurface3_PageUnlock(p,a) ICOM_CALL_(PageUnlock,p,(p,a))
-/*** IDirectDrawSurface3 methods ***/
-#define IDirectDrawSurface3_SetSurfaceDesc(p,a,b) ICOM_CALL_(SetSurfaceDesc,p,(p,a,b))
-
-/*****************************************************************************
- * IDirectDrawSurface4 interface
- */
-/* Cannot inherit from IDirectDrawSurface2 because DDSCAPS changed to DDSCAPS2.
- */
-#undef INTERFACE
-#define INTERFACE IDirectDrawSurface4
- DECLARE_INTERFACE_(IDirectDrawSurface4, IUnknown) {
- STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE;
- STDMETHOD_(ULONG, AddRef) (THIS) PURE;
- STDMETHOD_(ULONG, Release) (THIS) PURE;
- STDMETHOD(AddAttachedSurface) (THIS_ LPDIRECTDRAWSURFACE4
- lpDDSAttachedSurface) PURE;
- STDMETHOD(AddOverlayDirtyRect) (THIS_ LPRECT lpRect) PURE;
- STDMETHOD(Blt) (THIS_ LPRECT lpDestRect,
- LPDIRECTDRAWSURFACE4 lpDDSrcSurface, LPRECT lpSrcRect,
- DWORD dwFlags, LPDDBLTFX lpDDBltFx) PURE;
- STDMETHOD(BltBatch) (THIS_ LPDDBLTBATCH lpDDBltBatch, DWORD dwCount,
- DWORD dwFlags) PURE;
- STDMETHOD(BltFast) (THIS_ DWORD dwX, DWORD dwY,
- LPDIRECTDRAWSURFACE4 lpDDSrcSurface,
- LPRECT lpSrcRect, DWORD dwTrans) PURE;
- STDMETHOD(DeleteAttachedSurface) (THIS_ DWORD dwFlags,
- LPDIRECTDRAWSURFACE4
- lpDDSAttachedSurface) PURE;
- STDMETHOD(EnumAttachedSurfaces) (THIS_ LPVOID lpContext,
- LPDDENUMSURFACESCALLBACK
- lpEnumSurfacesCallback) PURE;
- STDMETHOD(EnumOverlayZOrders) (THIS_ DWORD dwFlags, LPVOID lpContext,
- LPDDENUMSURFACESCALLBACK lpfnCallback)
- PURE;
- STDMETHOD(Flip) (THIS_ LPDIRECTDRAWSURFACE4 lpDDSurfaceTargetOverride,
- DWORD dwFlags) PURE;
- STDMETHOD(GetAttachedSurface) (THIS_ LPDDSCAPS2 lpDDSCaps,
- LPDIRECTDRAWSURFACE4 *
- lplpDDAttachedSurface) PURE;
- STDMETHOD(GetBltStatus) (THIS_ DWORD dwFlags) PURE;
- STDMETHOD(GetCaps) (THIS_ LPDDSCAPS2 lpDDSCaps) PURE;
- STDMETHOD(GetClipper) (THIS_ LPDIRECTDRAWCLIPPER * lplpDDClipper) PURE;
- STDMETHOD(GetColorKey) (THIS_ DWORD dwFlags,
- LPDDCOLORKEY lpDDColorKey) PURE;
- STDMETHOD(GetDC) (THIS_ HDC * lphDC) PURE;
- STDMETHOD(GetFlipStatus) (THIS_ DWORD dwFlags) PURE;
- STDMETHOD(GetOverlayPosition) (THIS_ LPLONG lplX, LPLONG lplY) PURE;
- STDMETHOD(GetPalette) (THIS_ LPDIRECTDRAWPALETTE * lplpDDPalette) PURE;
- STDMETHOD(GetPixelFormat) (THIS_ LPDDPIXELFORMAT lpDDPixelFormat) PURE;
- STDMETHOD(GetSurfaceDesc) (THIS_ LPDDSURFACEDESC lpDDSurfaceDesc) PURE;
- STDMETHOD(Initialize) (THIS_ LPDIRECTDRAW lpDD,
- LPDDSURFACEDESC lpDDSurfaceDesc) PURE;
- STDMETHOD(IsLost) (THIS) PURE;
- STDMETHOD(Lock) (THIS_ LPRECT lpDestRect,
- LPDDSURFACEDESC lpDDSurfaceDesc, DWORD dwFlags,
- HANDLE hEvent) PURE;
- STDMETHOD(ReleaseDC) (THIS_ HDC hDC) PURE;
- STDMETHOD(Restore) (THIS) PURE;
- STDMETHOD(SetClipper) (THIS_ LPDIRECTDRAWCLIPPER lpDDClipper) PURE;
- STDMETHOD(SetColorKey) (THIS_ DWORD dwFlags,
- LPDDCOLORKEY lpDDColorKey) PURE;
- STDMETHOD(SetOverlayPosition) (THIS_ LONG lX, LONG lY) PURE;
- STDMETHOD(SetPalette) (THIS_ LPDIRECTDRAWPALETTE lpDDPalette) PURE;
- STDMETHOD(Unlock) (THIS_ LPRECT lpSurfaceData) PURE;
- STDMETHOD(UpdateOverlay) (THIS_ LPRECT lpSrcRect,
- LPDIRECTDRAWSURFACE4 lpDDDestSurface,
- LPRECT lpDestRect, DWORD dwFlags,
- LPDDOVERLAYFX lpDDOverlayFx) PURE;
- STDMETHOD(UpdateOverlayDisplay) (THIS_ DWORD dwFlags) PURE;
- STDMETHOD(UpdateOverlayZOrder) (THIS_ DWORD dwFlags,
- LPDIRECTDRAWSURFACE4 lpDDSReference)
- PURE;
- /* added in v2 */
- STDMETHOD(GetDDInterface) (THIS_ LPVOID * lplpDD) PURE;
- STDMETHOD(PageLock) (THIS_ DWORD dwFlags) PURE;
- STDMETHOD(PageUnlock) (THIS_ DWORD dwFlags) PURE;
- /* added in v3 */
- STDMETHOD(SetSurfaceDesc) (THIS_ LPDDSURFACEDESC lpDDSD,
- DWORD dwFlags) PURE;
- /* added in v4 */
- STDMETHOD(SetPrivateData) (THIS_ REFGUID, LPVOID, DWORD, DWORD) PURE;
- STDMETHOD(GetPrivateData) (THIS_ REFGUID, LPVOID, LPDWORD) PURE;
- STDMETHOD(FreePrivateData) (THIS_ REFGUID) PURE;
- STDMETHOD(GetUniquenessValue) (THIS_ LPDWORD) PURE;
- STDMETHOD(ChangeUniquenessValue) (THIS) PURE;
- };
-
- /*** IUnknown methods ***/
-#define IDirectDrawSurface4_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b))
-#define IDirectDrawSurface4_AddRef(p) ICOM_CALL_(AddRef,p,(p))
-#define IDirectDrawSurface4_Release(p) ICOM_CALL_(Release,p,(p))
-/*** IDirectDrawSurface (almost) methods ***/
-#define IDirectDrawSurface4_AddAttachedSurface(p,a) ICOM_CALL_(AddAttachedSurface,p,(p,a))
-#define IDirectDrawSurface4_AddOverlayDirtyRect(p,a) ICOM_CALL_(AddOverlayDirtyRect,p,(p,a))
-#define IDirectDrawSurface4_Blt(p,a,b,c,d,e) ICOM_CALL_(Blt,p,(p,a,b,c,d,e))
-#define IDirectDrawSurface4_BltBatch(p,a,b,c) ICOM_CALL_(BltBatch,p,(p,a,b,c))
-#define IDirectDrawSurface4_BltFast(p,a,b,c,d,e) ICOM_CALL_(BltFast,p,(p,a,b,c,d,e))
-#define IDirectDrawSurface4_DeleteAttachedSurface(p,a,b) ICOM_CALL_(DeleteAttachedSurface,p,(p,a,b))
-#define IDirectDrawSurface4_EnumAttachedSurfaces(p,a,b) ICOM_CALL_(EnumAttachedSurfaces,p,(p,a,b))
-#define IDirectDrawSurface4_EnumOverlayZOrders(p,a,b,c) ICOM_CALL_(EnumOverlayZOrders,p,(p,a,b,c))
-#define IDirectDrawSurface4_Flip(p,a,b) ICOM_CALL_(Flip,p,(p,a,b))
-#define IDirectDrawSurface4_GetAttachedSurface(p,a,b) ICOM_CALL_(GetAttachedSurface,p,(p,a,b))
-#define IDirectDrawSurface4_GetBltStatus(p,a) ICOM_CALL_(GetBltStatus,p,(p,a))
-#define IDirectDrawSurface4_GetCaps(p,a) ICOM_CALL_(GetCaps,p,(p,a))
-#define IDirectDrawSurface4_GetClipper(p,a) ICOM_CALL_(GetClipper,p,(p,a))
-#define IDirectDrawSurface4_GetColorKey(p,a,b) ICOM_CALL_(GetColorKey,p,(p,a,b))
-#define IDirectDrawSurface4_GetDC(p,a) ICOM_CALL_(GetDC,p,(p,a))
-#define IDirectDrawSurface4_GetFlipStatus(p,a) ICOM_CALL_(GetFlipStatus,p,(p,a))
-#define IDirectDrawSurface4_GetOverlayPosition(p,a,b) ICOM_CALL_(GetOverlayPosition,p,(p,a,b))
-#define IDirectDrawSurface4_GetPalette(p,a) ICOM_CALL_(GetPalette,p,(p,a))
-#define IDirectDrawSurface4_GetPixelFormat(p,a) ICOM_CALL_(GetPixelFormat,p,(p,a))
-#define IDirectDrawSurface4_GetSurfaceDesc(p,a) ICOM_CALL_(GetSurfaceDesc,p,(p,a))
-#define IDirectDrawSurface4_Initialize(p,a,b) ICOM_CALL_(Initialize,p,(p,a,b))
-#define IDirectDrawSurface4_IsLost(p) ICOM_CALL_(IsLost,p,(p))
-#define IDirectDrawSurface4_Lock(p,a,b,c,d) ICOM_CALL_(Lock,p,(p,a,b,c,d))
-#define IDirectDrawSurface4_ReleaseDC(p,a) ICOM_CALL_(ReleaseDC,p,(p,a))
-#define IDirectDrawSurface4_Restore(p) ICOM_CALL_(Restore,p,(p))
-#define IDirectDrawSurface4_SetClipper(p,a) ICOM_CALL_(SetClipper,p,(p,a))
-#define IDirectDrawSurface4_SetColorKey(p,a,b) ICOM_CALL_(SetColorKey,p,(p,a,b))
-#define IDirectDrawSurface4_SetOverlayPosition(p,a,b) ICOM_CALL_(SetOverlayPosition,p,(p,a,b))
-#define IDirectDrawSurface4_SetPalette(p,a) ICOM_CALL_(SetPalette,p,(p,a))
-#define IDirectDrawSurface4_Unlock(p,a) ICOM_CALL_(Unlock,p,(p,a))
-#define IDirectDrawSurface4_UpdateOverlay(p,a,b,c,d,e) ICOM_CALL_(UpdateOverlay,p,(p,a,b,c,d,e))
-#define IDirectDrawSurface4_UpdateOverlayDisplay(p,a) ICOM_CALL_(UpdateOverlayDisplay,p,(p,a))
-#define IDirectDrawSurface4_UpdateOverlayZOrder(p,a,b) ICOM_CALL_(UpdateOverlayZOrder,p,(p,a,b))
-/*** IDirectDrawSurface2 methods ***/
-#define IDirectDrawSurface4_GetDDInterface(p,a) ICOM_CALL_(GetDDInterface,p,(p,a))
-#define IDirectDrawSurface4_PageLock(p,a) ICOM_CALL_(PageLock,p,(p,a))
-#define IDirectDrawSurface4_PageUnlock(p,a) ICOM_CALL_(PageUnlock,p,(p,a))
-/*** IDirectDrawSurface3 methods ***/
-#define IDirectDrawSurface4_SetSurfaceDesc(p,a,b) ICOM_CALL_(SetSurfaceDesc,p,(p,a,b))
-/*** IDirectDrawSurface4 methods ***/
-#define IDirectDrawSurface4_SetPrivateData(p,a,b,c,d) ICOM_CALL_(SetPrivateData,p,(p,a,b,c,d))
-#define IDirectDrawSurface4_GetPrivateData(p,a,b,c) ICOM_CALL_(GetPrivateData,p,(p,a,b,c))
-#define IDirectDrawSurface4_FreePrivateData(p,a) ICOM_CALL_(FreePrivateData,p,(p,a))
-#define IDirectDrawSurface4_GetUniquenessValue(p,a) ICOM_CALL_(GetUniquenessValue,p,(p,a))
-#define IDirectDrawSurface4_ChangeUniquenessValue(p) ICOM_CALL_(ChangeUniquenessValue,p,(p))
-
-/*****************************************************************************
- * IDirectDrawSurface7 interface
- */
-#undef INTERFACE
-#define INTERFACE IDirectDrawSurface7
- DECLARE_INTERFACE_(IDirectDrawSurface7, IUnknown) {
- STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE;
- STDMETHOD_(ULONG, AddRef) (THIS) PURE;
- STDMETHOD_(ULONG, Release) (THIS) PURE;
- STDMETHOD(AddAttachedSurface) (THIS_ LPDIRECTDRAWSURFACE7
- lpDDSAttachedSurface) PURE;
- STDMETHOD(AddOverlayDirtyRect) (THIS_ LPRECT lpRect) PURE;
- STDMETHOD(Blt) (THIS_ LPRECT lpDestRect,
- LPDIRECTDRAWSURFACE7 lpDDSrcSurface, LPRECT lpSrcRect,
- DWORD dwFlags, LPDDBLTFX lpDDBltFx) PURE;
- STDMETHOD(BltBatch) (THIS_ LPDDBLTBATCH lpDDBltBatch, DWORD dwCount,
- DWORD dwFlags) PURE;
- STDMETHOD(BltFast) (THIS_ DWORD dwX, DWORD dwY,
- LPDIRECTDRAWSURFACE7 lpDDSrcSurface,
- LPRECT lpSrcRect, DWORD dwTrans) PURE;
- STDMETHOD(DeleteAttachedSurface) (THIS_ DWORD dwFlags,
- LPDIRECTDRAWSURFACE7
- lpDDSAttachedSurface) PURE;
- STDMETHOD(EnumAttachedSurfaces) (THIS_ LPVOID lpContext,
- LPDDENUMSURFACESCALLBACK7
- lpEnumSurfacesCallback) PURE;
- STDMETHOD(EnumOverlayZOrders) (THIS_ DWORD dwFlags, LPVOID lpContext,
- LPDDENUMSURFACESCALLBACK7 lpfnCallback)
- PURE;
- STDMETHOD(Flip) (THIS_ LPDIRECTDRAWSURFACE7 lpDDSurfaceTargetOverride,
- DWORD dwFlags) PURE;
- STDMETHOD(GetAttachedSurface) (THIS_ LPDDSCAPS2 lpDDSCaps,
- LPDIRECTDRAWSURFACE7 *
- lplpDDAttachedSurface) PURE;
- STDMETHOD(GetBltStatus) (THIS_ DWORD dwFlags) PURE;
- STDMETHOD(GetCaps) (THIS_ LPDDSCAPS2 lpDDSCaps) PURE;
- STDMETHOD(GetClipper) (THIS_ LPDIRECTDRAWCLIPPER * lplpDDClipper) PURE;
- STDMETHOD(GetColorKey) (THIS_ DWORD dwFlags,
- LPDDCOLORKEY lpDDColorKey) PURE;
- STDMETHOD(GetDC) (THIS_ HDC * lphDC) PURE;
- STDMETHOD(GetFlipStatus) (THIS_ DWORD dwFlags) PURE;
- STDMETHOD(GetOverlayPosition) (THIS_ LPLONG lplX, LPLONG lplY) PURE;
- STDMETHOD(GetPalette) (THIS_ LPDIRECTDRAWPALETTE * lplpDDPalette) PURE;
- STDMETHOD(GetPixelFormat) (THIS_ LPDDPIXELFORMAT lpDDPixelFormat) PURE;
- STDMETHOD(GetSurfaceDesc) (THIS_ LPDDSURFACEDESC2 lpDDSurfaceDesc) PURE;
- STDMETHOD(Initialize) (THIS_ LPDIRECTDRAW lpDD,
- LPDDSURFACEDESC2 lpDDSurfaceDesc) PURE;
- STDMETHOD(IsLost) (THIS) PURE;
- STDMETHOD(Lock) (THIS_ LPRECT lpDestRect,
- LPDDSURFACEDESC2 lpDDSurfaceDesc, DWORD dwFlags,
- HANDLE hEvent) PURE;
- STDMETHOD(ReleaseDC) (THIS_ HDC hDC) PURE;
- STDMETHOD(Restore) (THIS) PURE;
- STDMETHOD(SetClipper) (THIS_ LPDIRECTDRAWCLIPPER lpDDClipper) PURE;
- STDMETHOD(SetColorKey) (THIS_ DWORD dwFlags,
- LPDDCOLORKEY lpDDColorKey) PURE;
- STDMETHOD(SetOverlayPosition) (THIS_ LONG lX, LONG lY) PURE;
- STDMETHOD(SetPalette) (THIS_ LPDIRECTDRAWPALETTE lpDDPalette) PURE;
- STDMETHOD(Unlock) (THIS_ LPRECT lpSurfaceData) PURE;
- STDMETHOD(UpdateOverlay) (THIS_ LPRECT lpSrcRect,
- LPDIRECTDRAWSURFACE7 lpDDDestSurface,
- LPRECT lpDestRect, DWORD dwFlags,
- LPDDOVERLAYFX lpDDOverlayFx) PURE;
- STDMETHOD(UpdateOverlayDisplay) (THIS_ DWORD dwFlags) PURE;
- STDMETHOD(UpdateOverlayZOrder) (THIS_ DWORD dwFlags,
- LPDIRECTDRAWSURFACE7 lpDDSReference)
- PURE;
- /* added in v2 */
- STDMETHOD(GetDDInterface) (THIS_ LPVOID * lplpDD) PURE;
- STDMETHOD(PageLock) (THIS_ DWORD dwFlags) PURE;
- STDMETHOD(PageUnlock) (THIS_ DWORD dwFlags) PURE;
- /* added in v3 */
- STDMETHOD(SetSurfaceDesc) (THIS_ LPDDSURFACEDESC2 lpDDSD,
- DWORD dwFlags) PURE;
- /* added in v4 */
- STDMETHOD(SetPrivateData) (THIS_ REFGUID, LPVOID, DWORD, DWORD) PURE;
- STDMETHOD(GetPrivateData) (THIS_ REFGUID, LPVOID, LPDWORD) PURE;
- STDMETHOD(FreePrivateData) (THIS_ REFGUID) PURE;
- STDMETHOD(GetUniquenessValue) (THIS_ LPDWORD) PURE;
- STDMETHOD(ChangeUniquenessValue) (THIS) PURE;
- /* added in v7 */
- STDMETHOD(SetPriority) (THIS_ DWORD prio) PURE;
- STDMETHOD(GetPriority) (THIS_ LPDWORD prio) PURE;
- STDMETHOD(SetLOD) (THIS_ DWORD lod) PURE;
- STDMETHOD(GetLOD) (THIS_ LPDWORD lod) PURE;
- };
-
- /*** IUnknown methods ***/
-#define IDirectDrawSurface7_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b))
-#define IDirectDrawSurface7_AddRef(p) ICOM_CALL_(AddRef,p,(p))
-#define IDirectDrawSurface7_Release(p) ICOM_CALL_(Release,p,(p))
-/*** IDirectDrawSurface (almost) methods ***/
-#define IDirectDrawSurface7_AddAttachedSurface(p,a) ICOM_CALL_(AddAttachedSurface,p,(p,a))
-#define IDirectDrawSurface7_AddOverlayDirtyRect(p,a) ICOM_CALL_(AddOverlayDirtyRect,p,(p,a))
-#define IDirectDrawSurface7_Blt(p,a,b,c,d,e) ICOM_CALL_(Blt,p,(p,a,b,c,d,e))
-#define IDirectDrawSurface7_BltBatch(p,a,b,c) ICOM_CALL_(BltBatch,p,(p,a,b,c))
-#define IDirectDrawSurface7_BltFast(p,a,b,c,d,e) ICOM_CALL_(BltFast,p,(p,a,b,c,d,e))
-#define IDirectDrawSurface7_DeleteAttachedSurface(p,a,b) ICOM_CALL_(DeleteAttachedSurface,p,(p,a,b))
-#define IDirectDrawSurface7_EnumAttachedSurfaces(p,a,b) ICOM_CALL_(EnumAttachedSurfaces,p,(p,a,b))
-#define IDirectDrawSurface7_EnumOverlayZOrders(p,a,b,c) ICOM_CALL_(EnumOverlayZOrders,p,(p,a,b,c))
-#define IDirectDrawSurface7_Flip(p,a,b) ICOM_CALL_(Flip,p,(p,a,b))
-#define IDirectDrawSurface7_GetAttachedSurface(p,a,b) ICOM_CALL_(GetAttachedSurface,p,(p,a,b))
-#define IDirectDrawSurface7_GetBltStatus(p,a) ICOM_CALL_(GetBltStatus,p,(p,a))
-#define IDirectDrawSurface7_GetCaps(p,a) ICOM_CALL_(GetCaps,p,(p,a))
-#define IDirectDrawSurface7_GetClipper(p,a) ICOM_CALL_(GetClipper,p,(p,a))
-#define IDirectDrawSurface7_GetColorKey(p,a,b) ICOM_CALL_(GetColorKey,p,(p,a,b))
-#define IDirectDrawSurface7_GetDC(p,a) ICOM_CALL_(GetDC,p,(p,a))
-#define IDirectDrawSurface7_GetFlipStatus(p,a) ICOM_CALL_(GetFlipStatus,p,(p,a))
-#define IDirectDrawSurface7_GetOverlayPosition(p,a,b) ICOM_CALL_(GetOverlayPosition,p,(p,a,b))
-#define IDirectDrawSurface7_GetPalette(p,a) ICOM_CALL_(GetPalette,p,(p,a))
-#define IDirectDrawSurface7_GetPixelFormat(p,a) ICOM_CALL_(GetPixelFormat,p,(p,a))
-#define IDirectDrawSurface7_GetSurfaceDesc(p,a) ICOM_CALL_(GetSurfaceDesc,p,(p,a))
-#define IDirectDrawSurface7_Initialize(p,a,b) ICOM_CALL_(Initialize,p,(p,a,b))
-#define IDirectDrawSurface7_IsLost(p) ICOM_CALL_(IsLost,p,(p))
-#define IDirectDrawSurface7_Lock(p,a,b,c,d) ICOM_CALL_(Lock,p,(p,a,b,c,d))
-#define IDirectDrawSurface7_ReleaseDC(p,a) ICOM_CALL_(ReleaseDC,p,(p,a))
-#define IDirectDrawSurface7_Restore(p) ICOM_CALL_(Restore,p,(p))
-#define IDirectDrawSurface7_SetClipper(p,a) ICOM_CALL_(SetClipper,p,(p,a))
-#define IDirectDrawSurface7_SetColorKey(p,a,b) ICOM_CALL_(SetColorKey,p,(p,a,b))
-#define IDirectDrawSurface7_SetOverlayPosition(p,a,b) ICOM_CALL_(SetOverlayPosition,p,(p,a,b))
-#define IDirectDrawSurface7_SetPalette(p,a) ICOM_CALL_(SetPalette,p,(p,a))
-#define IDirectDrawSurface7_Unlock(p,a) ICOM_CALL_(Unlock,p,(p,a))
-#define IDirectDrawSurface7_UpdateOverlay(p,a,b,c,d,e) ICOM_CALL_(UpdateOverlay,p,(p,a,b,c,d,e))
-#define IDirectDrawSurface7_UpdateOverlayDisplay(p,a) ICOM_CALL_(UpdateOverlayDisplay,p,(p,a))
-#define IDirectDrawSurface7_UpdateOverlayZOrder(p,a,b) ICOM_CALL_(UpdateOverlayZOrder,p,(p,a,b))
-/*** IDirectDrawSurface2 methods ***/
-#define IDirectDrawSurface7_GetDDInterface(p,a) ICOM_CALL_(GetDDInterface,p,(p,a))
-#define IDirectDrawSurface7_PageLock(p,a) ICOM_CALL_(PageLock,p,(p,a))
-#define IDirectDrawSurface7_PageUnlock(p,a) ICOM_CALL_(PageUnlock,p,(p,a))
-/*** IDirectDrawSurface3 methods ***/
-#define IDirectDrawSurface7_SetSurfaceDesc(p,a,b) ICOM_CALL_(SetSurfaceDesc,p,(p,a,b))
-/*** IDirectDrawSurface4 methods ***/
-#define IDirectDrawSurface7_SetPrivateData(p,a,b,c,d) ICOM_CALL_(SetPrivateData,p,(p,a,b,c,d))
-#define IDirectDrawSurface7_GetPrivateData(p,a,b,c) ICOM_CALL_(GetPrivateData,p,(p,a,b,c))
-#define IDirectDrawSurface7_FreePrivateData(p,a) ICOM_CALL_(FreePrivateData,p,(p,a))
-#define IDirectDrawSurface7_GetUniquenessValue(p,a) ICOM_CALL_(GetUniquenessValue,p,(p,a))
-#define IDirectDrawSurface7_ChangeUniquenessValue(p) ICOM_CALL_(ChangeUniquenessValue,p,(p))
-/*** IDirectDrawSurface7 methods ***/
-#define IDirectDrawSurface7_SetPriority(p,a) ICOM_CALL_(SetPriority,p,(p,a))
-#define IDirectDrawSurface7_GetPriority(p,a) ICOM_CALL_(GetPriority,p,(p,a))
-#define IDirectDrawSurface7_SetLOD(p,a) ICOM_CALL_(SetLOD,p,(p,a))
-#define IDirectDrawSurface7_GetLOD(p,a) ICOM_CALL_(GetLOD,p,(p,a))
-
-/*****************************************************************************
- * IDirectDrawColorControl interface
- */
-#undef INTERFACE
-#define INTERFACE IDirectDrawColorControl
- DECLARE_INTERFACE_(IDirectDrawColorControl, IUnknown) {
- STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE;
- STDMETHOD_(ULONG, AddRef) (THIS) PURE;
- STDMETHOD_(ULONG, Release) (THIS) PURE;
- STDMETHOD(GetColorControls) (THIS_ LPDDCOLORCONTROL lpColorControl)
- PURE;
- STDMETHOD(SetColorControls) (THIS_ LPDDCOLORCONTROL lpColorControl)
- PURE;
- };
-
- /*** IUnknown methods ***/
-#define IDirectDrawColorControl_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b))
-#define IDirectDrawColorControl_AddRef(p) ICOM_CALL_(AddRef,p,(p))
-#define IDirectDrawColorControl_Release(p) ICOM_CALL_(Release,p,(p))
- /*** IDirectDrawColorControl methods ***/
-#define IDirectDrawColorControl_GetColorControls(p,a) ICOM_CALL_(GetColorControls,p,(p,a))
-#define IDirectDrawColorControl_SetColorControls(p,a) ICOM_CALL_(SetColorControls,p,(p,a))
-
-/*****************************************************************************
- * IDirectDrawGammaControl interface
- */
-#undef INTERFACE
-#define INTERFACE IDirectDrawGammaControl
- DECLARE_INTERFACE_(IDirectDrawGammaControl, IUnknown) {
- STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE;
- STDMETHOD_(ULONG, AddRef) (THIS) PURE;
- STDMETHOD_(ULONG, Release) (THIS) PURE;
- STDMETHOD(GetGammaRamp) (THIS_ DWORD dwFlags,
- LPDDGAMMARAMP lpGammaRamp) PURE;
- STDMETHOD(SetGammaRamp) (THIS_ DWORD dwFlags,
- LPDDGAMMARAMP lpGammaRamp) PURE;
- };
-
- /*** IUnknown methods ***/
-#define IDirectDrawGammaControl_QueryInterface(p,a,b) ICOM_CALL_(QueryInterface,p,(p,a,b))
-#define IDirectDrawGammaControl_AddRef(p) ICOM_CALL_(AddRef,p,(p))
-#define IDirectDrawGammaControl_Release(p) ICOM_CALL_(Release,p,(p))
- /*** IDirectDrawGammaControl methods ***/
-#define IDirectDrawGammaControl_GetGammaRamp(p,a,b) ICOM_CALL_(GetGammaRamp,p,(p,a,b))
-#define IDirectDrawGammaControl_SetGammaRamp(p,a,b) ICOM_CALL_(SetGammaRamp,p,(p,a,b))
-
- HRESULT WINAPI DirectDrawCreate(LPGUID, LPDIRECTDRAW *, LPUNKNOWN);
- HRESULT WINAPI DirectDrawCreateEx(LPGUID, LPVOID *, REFIID, LPUNKNOWN);
- HRESULT WINAPI DirectDrawEnumerateA(LPDDENUMCALLBACKA, LPVOID);
- HRESULT WINAPI DirectDrawEnumerateW(LPDDENUMCALLBACKW, LPVOID);
-
-#define DirectDrawEnumerate WINELIB_NAME_AW(DirectDrawEnumerate)
- HRESULT WINAPI DirectDrawCreateClipper(DWORD, LPDIRECTDRAWCLIPPER *,
- LPUNKNOWN);
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif /* defined(__cplusplus) */
-
-#endif /* __XWIN_DDRAW_H */
diff --git a/xorg-server/hw/xwin/doflexbison.bat b/xorg-server/hw/xwin/doflexbison.bat
new file mode 100755
index 000000000..a29508bcb
--- /dev/null
+++ b/xorg-server/hw/xwin/doflexbison.bat
@@ -0,0 +1,18 @@
+@echo off
+setlocal
+
+cd "%~dp0"
+
+set M4=..\..\..\tools\mhmake\m4.exe
+set BISON_PKGDATADIR=../../../tools/mhmake/src/bisondata
+
+set path=..\..\..\tools\mhmake;%path%
+
+..\..\..\tools\mhmake\bison.exe -d -o%1/winprefsyacc.c winprefsyacc.y
+
+copy "..\..\..\tools\mhmake\flex++.exe" flex.exe
+flex.exe -i -o%1/winprefslex.c winprefslex.l
+del flex.exe
+
+endlocal
+
diff --git a/xorg-server/hw/xwin/glx/.gitignore b/xorg-server/hw/xwin/glx/.gitignore
index 062fd8573..70c5283ce 100644
--- a/xorg-server/hw/xwin/glx/.gitignore
+++ b/xorg-server/hw/xwin/glx/.gitignore
@@ -1,3 +1,3 @@
# ignore generated files
-generated_gl_wrappers.c
-generated_wgl_wrappers.c
+diag.txt
+
diff --git a/xorg-server/hw/xwin/glx/buildsimpledib.bat b/xorg-server/hw/xwin/glx/buildsimpledib.bat
new file mode 100755
index 000000000..1e1286bdd
--- /dev/null
+++ b/xorg-server/hw/xwin/glx/buildsimpledib.bat
@@ -0,0 +1 @@
+cl /Zi simpledib.c kernel32.lib user32.lib gdi32.lib opengl32.lib \ No newline at end of file
diff --git a/xorg-server/hw/xwin/glx/gen_gl_wrappers.py b/xorg-server/hw/xwin/glx/gen_gl_wrappers.py
index 2273589c9..e5fa57142 100644..100755
--- a/xorg-server/hw/xwin/glx/gen_gl_wrappers.py
+++ b/xorg-server/hw/xwin/glx/gen_gl_wrappers.py
@@ -1,60 +1,217 @@
-#!/usr/bin/python
+#!/usr/bin/python3
#
-# Comedy python script to generate cdecl to stdcall wrappers for GL functions
-#
-# This is designed to operate on OpenGL spec files from
-# http://www.opengl.org/registry/api/
-#
-#
-# Copyright (c) Jon TURNEY 2009
+# Copyright (c) 2013 The Khronos Group Inc.
#
# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the "Software"),
-# to deal in the Software without restriction, including without limitation
-# the rights to use, copy, modify, merge, publish, distribute, sublicense,
-# and/or sell copies of the Software, and to permit persons to whom the
-# Software is furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-# THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
-# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-# DEALINGS IN THE SOFTWARE.
+# copy of this software and/or associated documentation files (the
+# "Materials"), to deal in the Materials without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Materials, and to
+# permit persons to whom the Materials are furnished to do so, subject to
+# the following conditions:
#
-# Except as contained in this notice, the name(s) of the above copyright
-# holders shall not be used in advertising or otherwise to promote the sale,
-# use or other dealings in this Software without prior written authorization.
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Materials.
#
-
-import sys
-import re
-import getopt
-
-dispatchheader = ''
-prefix = 'gl'
-preresolve = False
-staticwrappers = False
-
-opts, args = getopt.getopt(sys.argv[1:], "", ['spec=', 'typemap=', 'dispatch-header=', 'prefix=', 'preresolve', 'staticwrappers' ])
-
-for o,a in opts:
- if o == '--typemap' :
- typemapfile = a
- elif o == '--dispatch-header' :
- dispatchheader = a
- elif o == '--spec' :
- specfile = a
- elif o == '--prefix' :
- prefix = a
- elif o == '--preresolve' :
- preresolve = True
- elif o == '--staticwrappers' :
- staticwrappers = True
+# THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+# MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+
+import sys, time, pdb, string, cProfile
+from reg import *
+
+# debug - start header generation in debugger
+# dump - dump registry after loading
+# profile - enable Python profiling
+# protect - whether to use #ifndef protections
+# registry <filename> - use specified XML registry instead of gl.xml
+# timeit - time length of registry loading & header generation
+# validate - validate return & parameter group tags against <group>
+debug = False
+dump = False
+profile = False
+protect = True
+timeit = False
+validate= False
+# Default input / log files
+errFilename = None
+diagFilename = 'diag.txt'
+regFilename = 'gl.xml'
+outFilename = 'gen_gl_wrappers.c'
+dispatchheader=None
+prefix="gl"
+preresolve=False
+staticwrappers=False
+nodebugcallcounting=False
+
+WinGDI={key: 1 for key in [
+ "wglCopyContext"
+ ,"wglCreateContext"
+ ,"wglCreateLayerContext"
+ ,"wglDeleteContext"
+ ,"wglGetCurrentContext"
+ ,"wglGetCurrentDC"
+ ,"wglGetProcAddress"
+ ,"wglMakeCurrent"
+ ,"wglShareLists"
+ ,"wglUseFontBitmapsA"
+ ,"wglUseFontBitmapsW"
+ ,"wglUseFontBitmaps"
+ ,"SwapBuffers"
+ ,"wglUseFontOutlinesA"
+ ,"wglUseFontOutlinesW"
+ ,"wglUseFontOutlines"
+ ,"wglDescribeLayerPlane"
+ ,"wglSetLayerPaletteEntries"
+ ,"wglGetLayerPaletteEntries"
+ ,"wglRealizeLayerPalette"
+ ,"wglSwapLayerBuffers"
+ ,"wglSwapMultipleBuffers"
+ ,"ChoosePixelFormat"
+ ,"DescribePixelFormat"
+ ,"GetEnhMetaFilePixelFormat"
+ ,"GetPixelFormat"
+ ,"SetPixelFormat"
+]}
+
+if __name__ == '__main__':
+ i = 1
+ while (i < len(sys.argv)):
+ arg = sys.argv[i]
+ i = i + 1
+ if (arg == '-debug'):
+ print('Enabling debug (-debug)', file=sys.stderr)
+ debug = True
+ elif (arg == '-dump'):
+ print('Enabling dump (-dump)', file=sys.stderr)
+ dump = True
+ elif (arg == '-noprotect'):
+ print('Disabling inclusion protection in output headers', file=sys.stderr)
+ protect = False
+ elif (arg == '-profile'):
+ print('Enabling profiling (-profile)', file=sys.stderr)
+ profile = True
+ elif (arg == '-registry'):
+ regFilename = sys.argv[i]
+ i = i+1
+ print('Using registry ', regFilename, file=sys.stderr)
+ elif (arg == '-time'):
+ print('Enabling timing (-time)', file=sys.stderr)
+ timeit = True
+ elif (arg == '-validate'):
+ print('Enabling group validation (-validate)', file=sys.stderr)
+ validate = True
+ elif (arg == '-outfile'):
+ outFilename = sys.argv[i]
+ i = i+1
+ elif (arg == '-preresolve'):
+ preresolve=True
+ elif (arg == '-staticwrappers'):
+ staticwrappers=True
+ elif (arg == '-dispatchheader'):
+ dispatchheader = sys.argv[i]
+ i = i+1
+ elif (arg == '-prefix'):
+ prefix = sys.argv[i]
+ i = i+1
+ elif (arg == '-nodbgcount'):
+ nodebugcallcounting = True
+ elif (arg[0:1] == '-'):
+ print('Unrecognized argument:', arg, file=sys.stderr)
+ exit(1)
+print('Generating ', outFilename, file=sys.stderr)
+
+# Simple timer functions
+startTime = None
+def startTimer():
+ global startTime
+ startTime = time.clock()
+def endTimer(msg):
+ global startTime
+ endTime = time.clock()
+ if (timeit):
+ print(msg, endTime - startTime)
+ startTime = None
+
+# Load & parse registry
+reg = Registry()
+
+startTimer()
+tree = etree.parse(regFilename)
+endTimer('Time to make ElementTree =')
+
+startTimer()
+reg.loadElementTree(tree)
+endTimer('Time to parse ElementTree =')
+
+if (validate):
+ reg.validateGroups()
+
+if (dump):
+ print('***************************************')
+ print('Performing Registry dump to regdump.txt')
+ print('***************************************')
+ reg.dumpReg(filehandle = open('regdump.txt','w'))
+
+# Turn a list of strings into a regexp string matching exactly those strings
+def makeREstring(list):
+ return '^(' + '|'.join(list) + ')$'
+
+# These are "mandatory" OpenGL ES 1 extensions, to
+# be included in the core GLES/gl.h header.
+es1CoreList = [
+ 'GL_OES_read_format',
+ 'GL_OES_compressed_paletted_texture',
+ 'GL_OES_point_size_array',
+ 'GL_OES_point_sprite'
+]
+
+# Descriptive names for various regexp patterns used to select
+# versions and extensions
+
+allVersions = allExtensions = '.*'
+noVersions = noExtensions = None
+gl12andLaterPat = '1\.[2-9]|[234]\.[0-9]'
+gles2onlyPat = '2\.[0-9]'
+gles2and3Pat = '[23]\.[0-9]'
+es1CorePat = makeREstring(es1CoreList)
+# Extensions in old glcorearb.h but not yet tagged accordingly in gl.xml
+glCoreARBPat = None
+glx13andLaterPat = '1\.[3-9]'
+
+# Defaults for generating re-inclusion protection wrappers (or not)
+protectFile = protect
+protectFeature = protect
+protectProto = protect
+
+genOpts = CGeneratorOptions(
+ apiname = prefix,
+ profile = 'compatibility',
+ versions = allVersions,
+ emitversions = allVersions,
+ defaultExtensions = prefix, # Default extensions for GL
+# addExtensions = None,
+# removeExtensions = None,
+# prefixText = prefixStrings + glExtPlatformStrings + glextVersionStrings,
+# genFuncPointers = True,
+# protectFile = protectFile,
+# protectFeature = protectFeature,
+# protectProto = protectProto,
+# apicall = 'GLAPI ',
+# apientry = 'APIENTRY ',
+# apientryp = 'APIENTRYP '),
+ )
+
+# create error/warning & diagnostic files
+if (errFilename):
+ errWarn = open(errFilename,'w')
+else:
+ errWarn = sys.stderr
+diag = open(diagFilename, 'w')
#
# look for all the SET_ macros in dispatch.h, this is the set of functions
@@ -64,262 +221,197 @@ for o,a in opts:
dispatch = {}
if dispatchheader :
- fh = open(dispatchheader)
- dispatchh = fh.readlines()
-
- dispatch_regex = re.compile(r'^SET_(\S*)\(')
-
- for line in dispatchh :
- line = line.strip()
- m1 = dispatch_regex.search(line)
-
- if m1 :
- dispatch[m1.group(1)] = 1
-
- del dispatch['by_offset']
-
-#
-# read the typemap .tm file
-#
-
-typemap = {}
-
-fh = open(typemapfile)
-tm = fh.readlines()
-
-typemap_regex = re.compile(r'#define\sSET_(\S*)\(')
-
-for line in tm :
- # ignore everything after a '#' as a comment
- hash = line.find('#')
- if hash != -1 :
- line = line[:hash-1]
-
- # ignore blank lines
- if line.startswith('#') or len(line) == 0 :
- continue
-
- l = line.split(',')
- typemap[l[0]] = l[3].strip()
-
-# interestingly, * is not a C type
-if typemap['void'] == '*' :
- typemap['void'] = 'void'
-
-#
-# crudely parse the .spec file
-#
-
-r1 = re.compile(r'\t(\S*)\s+(\S*.*)')
-r2 = re.compile(r'(.*)\((.*)\)')
-r3 = re.compile(r'glWindowPos.*MESA')
-r4 = re.compile(r'gl.*Program(s|)NV')
-r5 = re.compile(r'glGetVertexAttribfvNV')
-
-wrappers = {}
-
-fh = open(specfile)
-glspec = fh.readlines()
-param_count = 0
-
-for line in glspec :
- line = line.rstrip()
-
- # ignore everything after a '#' as a comment
- hash = line.find('#')
- if hash != -1 :
- line = line[:hash-1]
-
- # ignore blank lines
- if line.startswith('#') or len(line) == 0 :
- continue
-
- # lines containing ':' aren't intersting to us
- if line.count(':') != 0 :
- continue
-
- # attributes of each function follow the name, indented by a tab
- if not line.startswith('\t') :
- m1 = r2.search(line)
- if m1 :
- function = m1.group(1)
- arglist_use = m1.group(2)
- wrappers[function] = {}
-
- # ensure formal parameter names don't collide with reserved names or shadow global declarations
- arglist_use = ',' .join([i.rstrip() + '_' for i in arglist_use.split(",")])
-
- wrappers[function]['arglist_use'] = arglist_use
- param_count = 0
- else :
- m1 = r1.search(line)
- if m1 :
- attribute = m1.group(1)
- value = m1.group(2)
-
- # make param attributes unique and ordered
- if attribute == 'param' :
- attribute = 'param' + '%02d' % param_count
- param_count += 1
-
- wrappers[function][attribute] = value
-
-#
-# now emit code
-#
-
-print '/* Automatically generated by ' + sys.argv[0] + ' DO NOT EDIT */'
-print '/* from ' + specfile + ' and typemap ' + typemapfile + ' */'
-print ''
-
-#
-# if required, emit code for non-lazy function resolving
-#
-
-if preresolve :
- for w in sorted(wrappers.keys()) :
- funcname = prefix + w
- print 'RESOLVE_DECL(PFN' + funcname.upper() + 'PROC);'
-
- print ''
- print 'void ' + prefix + 'ResolveExtensionProcs(void)'
- print '{'
-
- for w in sorted(wrappers.keys()) :
- funcname = prefix + w
- print ' PRERESOLVE(PFN' + funcname.upper() + 'PROC, "' + funcname + '");'
-
- print '}\n'
-
-#
-# now emit the wrappers
-# for GL 1.0 and 1.1 functions, generate stdcall wrappers which call the function directly
-# for GL 1.2+ functions, generate wrappers which use wglGetProcAddress()
-#
-
-for w in sorted(wrappers.keys()) :
-
- funcname = prefix + w
- returntype = wrappers[w]['return']
- if returntype != 'void' :
- returntype = typemap[returntype]
-
+ fh = open(dispatchheader)
+ dispatchh = fh.readlines()
+
+ dispatch_regex = re.compile(r'(?:#define|static\s+INLINE\s+void)\s+SET_([^\()]+)\(')
+
+ for line in dispatchh :
+ line = line.strip()
+ m1 = dispatch_regex.search(line)
+
+ if m1 :
+ dispatch[prefix+m1.group(1)] = 1
+
+ del dispatch['glby_offset']
+
+class PreResolveOutputGenerator(OutputGenerator):
+ def __init__(self,
+ errFile = sys.stderr,
+ warnFile = sys.stderr,
+ diagFile = sys.stdout):
+ OutputGenerator.__init__(self, errFile, warnFile, diagFile)
+ self.wrappers={}
+ def beginFile(self, genOpts):
+ pass
+ def endFile(self):
+ self.outFile.write('\nvoid ' + prefix + 'ResolveExtensionProcs(void)\n{\n')
+ for funcname in self.wrappers.keys():
+ self.outFile.write( ' PRERESOLVE(PFN' + funcname.upper() + 'PROC, "' + funcname + '");\n')
+ self.outFile.write('}\n\n')
+ def beginFeature(self, interface, emit):
+ OutputGenerator.beginFeature(self, interface, emit)
+ self.OldVersion = self.featureName.startswith('GL_VERSION_1_0') or self.featureName.startswith('GL_VERSION_1_1')
+ def endFeature(self):
+ OutputGenerator.endFeature(self)
+ def genType(self, typeinfo, name):
+ OutputGenerator.genType(self, typeinfo, name)
+ def genEnum(self, enuminfo, name):
+ OutputGenerator.genEnum(self, enuminfo, name)
+ def genCmd(self, cmd, name):
+ OutputGenerator.genCmd(self, cmd, name)
+ if name in WinGDI:
+ return
+
+ self.outFile.write('RESOLVE_DECL(PFN' + name.upper() + 'PROC);\n')
+ self.wrappers[name]=1
+
+class MyOutputGenerator(OutputGenerator):
+ def __init__(self,
+ errFile = sys.stderr,
+ warnFile = sys.stderr,
+ diagFile = sys.stdout):
+ OutputGenerator.__init__(self, errFile, warnFile, diagFile)
+ self.wrappers={}
+ def beginFile(self, genOpts):
+ pass
+ def endFile(self):
+ pass
+ def beginFeature(self, interface, emit):
+ OutputGenerator.beginFeature(self, interface, emit)
+ self.OldVersion = self.featureName.startswith('GL_VERSION_1_0') or self.featureName.startswith('GL_VERSION_1_1')
+ def endFeature(self):
+ OutputGenerator.endFeature(self)
+ def genType(self, typeinfo, name):
+ OutputGenerator.genType(self, typeinfo, name)
+ def genEnum(self, enuminfo, name):
+ OutputGenerator.genEnum(self, enuminfo, name)
+ def genCmd(self, cmd, name):
+ OutputGenerator.genCmd(self, cmd, name)
# Avoid generating wrappers which aren't referenced by the dispatch table
- if dispatchheader and not dispatch.has_key(w) :
- print '/* No wrapper for ' + funcname + ', not in dispatch table */'
- continue
-
- # manufacture arglist
- # if no param attributes were found, it should be 'void'
- al = []
- for k in sorted(wrappers[w].keys()) :
- if k.startswith('param') :
- l = wrappers[w][k].split()
-
- # ensure formal parameter names don't collide with reserved names or shadow global declarations
- l[0] = l[0] + '_'
-
- if l[2] == 'in' :
- if l[3] == 'array' :
- arg = 'const ' + typemap[l[1]] + ' *' + l[0]
- else :
- arg = typemap[l[1]] + ' ' + l[0]
- elif l[2] == 'out' :
- arg = typemap[l[1]] + ' *' + l[0]
-
- al.append(arg)
-
- if len(al) == 0 :
- arglist = 'void'
+ if dispatchheader and not name in dispatch :
+ self.outFile.write('/* No wrapper for ' + name + ', not in dispatch table */\n')
+ return
+
+ if name in WinGDI:
+ return
+
+ self.wrappers[name]=1
+
+ proto=noneStr(cmd.elem.find('proto'))
+ rettype=noneStr(proto.text)
+ if rettype.lower()!="void ":
+ plist = ([t for t in proto.itertext()])
+ rettype = ''.join(plist[:-1])
+ #ptype=proto.find("ptype")
+ #if ptype!=None:
+ # rettype = (noneStr(ptype.text))+" "
+ if staticwrappers: self.outFile.write("static ")
+ self.outFile.write("%s__stdcall %sWrapper("%(rettype, name))
+ params = cmd.elem.findall('param')
+ plist=[]
+ for param in params:
+ paramlist = ([t for t in param.itertext()])
+ paramtype = ''.join(paramlist[:-1])
+ paramname = paramlist[-1]
+ plist.append((paramtype, paramname))
+ Comma=""
+ if len(plist):
+ for ptype, pname in plist:
+ self.outFile.write("%s%s%s_"%(Comma, ptype, pname))
+ Comma=", "
else:
- arglist = ', '.join(al)
-
- if wrappers[w]['category'].startswith('VERSION_1_0') or wrappers[w]['category'].startswith('VERSION_1_1') :
- if staticwrappers :
- print 'static',
- print returntype + ' ' + funcname + 'Wrapper(' + arglist + ')'
- print '{'
- print ' if (glxWinDebugSettings.enable' + prefix.upper() + 'callTrace) ErrorF("'+ funcname + '\\n");'
- print ' glWinDirectProcCalls++;'
- if returntype.lower() == 'void' :
- print ' ' + funcname + '(',
- else :
- print ' /* returntype was ' + returntype.lower() + '*/'
- print ' return ' + funcname + '(',
-
- if arglist != 'void' :
- print wrappers[w]['arglist_use'],
-
- print ');'
- print "}\n"
+ self.outFile.write("void")
+ if self.OldVersion:
+ if nodebugcallcounting:
+ self.outFile.write(")\n{\n")
+ else:
+ self.outFile.write( """)
+{
+#ifdef _DEBUG
+ if (glxWinDebugSettings.enable%scallTrace) ErrorF("%s\\n");
+ glWinDirectProcCalls++;
+#endif
+"""%(prefix.upper(), name))
+ if rettype.lower()=="void ":
+ self.outFile.write(" %s( "%(name))
+ else:
+ self.outFile.write(" return %s( "%(name))
+ Comma=""
+ for ptype, pname in plist:
+ self.outFile.write("%s%s_"%(Comma, pname))
+ Comma=", "
else:
- if staticwrappers :
- print 'static',
- print returntype + ' ' + funcname + 'Wrapper(' + arglist + ')'
- print '{'
-
- stringname = funcname
-
-#
-# special case: Windows OpenGL implementations are far more likely to have GL_ARB_window_pos than GL_MESA_window_pos,
-# so arrange for the wrapper to use the ARB strings to find functions...
-#
-
- m2 = r3.search(funcname)
- if m2 :
- stringname = stringname.replace('MESA','ARB')
-
-#
-# special case: likewise, implementations are more likely to have GL_ARB_vertex_program than GL_NV_vertex_program,
-# especially if they are not NV implementations, so arrange for the wrapper to use ARB strings to find functions
-#
+ if rettype.lower()=="void ":
+ self.outFile.write(""")
+{
+ RESOLVE(PFN%sPROC, "%s");"""%(name.upper(), name))
+ if not nodebugcallcounting: self.outFile.write("""
+#ifdef _DEBUG
+ if (glxWinDebugSettings.enable%scallTrace) ErrorF("%s\\n");
+#endif"""%(prefix.upper(), name))
+ self.outFile.write("""
+ RESOLVED_PROC(PFN%sPROC)( """%(name.upper()))
+ else:
+ self.outFile.write(""")
+{
+ RESOLVE_RET(PFN%sPROC, "%s", FALSE);"""%(name.upper(), name))
+ if not nodebugcallcounting: self.outFile.write("""
+#ifdef _DEBUG
+ if (glxWinDebugSettings.enable%scallTrace) ErrorF("%s\\n");
+#endif"""%(prefix.upper(), name))
+ self.outFile.write("""
+ return RESOLVED_PROC(PFN%sPROC)( """%(name.upper()))
+ Comma=""
+ for ptype, pname in plist:
+ self.outFile.write("%s%s_"%(Comma, pname))
+ Comma=", "
+ self.outFile.write(" );\n}\n\n")
+
+def genHeaders():
+ startTimer()
+ outFile = open(outFilename,"w")
+ if preresolve:
+ gen = PreResolveOutputGenerator(errFile=errWarn,
+ warnFile=errWarn,
+ diagFile=diag)
+ gen.outFile=outFile
+ reg.setGenerator(gen)
+ reg.apiGen(genOpts)
+ gen = MyOutputGenerator(errFile=errWarn,
+ warnFile=errWarn,
+ diagFile=diag)
+ gen.outFile=outFile
+ reg.setGenerator(gen)
+ reg.apiGen(genOpts)
+
+ # generate function to setup the dispatch table, which sets each
+ # dispatch table entry to point to it's wrapper function
+ # (assuming we were able to make one)
+
+ if dispatchheader :
+ outFile.write( 'void glWinSetupDispatchTable(void)\n')
+ outFile.write( '{\n')
+ outFile.write( ' struct _glapi_table *disp = _glapi_get_dispatch();\n')
- m3 = r4.search(funcname)
- if m3 :
- stringname = stringname.replace('NV','ARB')
- m4 = r5.search(funcname)
- if m4 :
- stringname = stringname.replace('NV','ARB')
-
- pfntypename = 'PFN' + funcname.upper() + 'PROC'
-
- if returntype.lower() == 'void' :
- print ' RESOLVE(' + pfntypename + ', "' + stringname + '");'
- print ' if (glxWinDebugSettings.enable' + prefix.upper() + 'callTrace) ErrorF("'+ funcname + '\\n");'
- print ' RESOLVED_PROC(' + pfntypename + ')(',
+ for d in sorted(dispatch.keys()) :
+ if d in gen.wrappers :
+ outFile.write(' SET_'+ d[len(prefix):] + '(disp, (void *)' + d + 'Wrapper);\n')
else :
- print ' RESOLVE_RET(' + pfntypename + ', "' + stringname + '", FALSE);'
- print ' if (glxWinDebugSettings.enable' + prefix.upper() + 'callTrace) ErrorF("'+ funcname + '\\n");'
- print ' return RESOLVED_PROC(' + pfntypename + ')(',
-
- if arglist != 'void' :
- print wrappers[w]['arglist_use'],
+ outFile.write('#pragma message("No wrapper for ' + d + ' !")\n')
- print ');'
- print "}\n"
+ outFile.write('}\n')
-# generate function to setup the dispatch table, which sets each
-# dispatch table entry to point to it's wrapper function
-# (assuming we were able to make one)
-if dispatchheader :
- print 'void glWinSetupDispatchTable(void)'
- print '{'
- print ' static struct _glapi_table *disp = NULL;'
- print ''
- print ' if (!disp)'
- print ' {'
- print ' disp = calloc(sizeof(void *), _glapi_get_dispatch_table_size());'
- print ' assert(disp);'
-
- for d in sorted(dispatch.keys()) :
- if wrappers.has_key(d) :
- print ' SET_'+ d + '(disp, (void *)' + prefix + d + 'Wrapper);'
- else :
- print '#warning No wrapper for ' + prefix + d + ' !'
+ outFile.close()
- print ' }'
- print ''
- print ' _glapi_set_dispatch(disp);'
- print '}'
+if (debug):
+ pdb.run('genHeaders()')
+elif (profile):
+ import cProfile, pstats
+ cProfile.run('genHeaders()', 'profile.txt')
+ p = pstats.Stats('profile.txt')
+ p.strip_dirs().sort_stats('time').print_stats(50)
+else:
+ genHeaders()
diff --git a/xorg-server/hw/xwin/glx/genheaders.py b/xorg-server/hw/xwin/glx/genheaders.py
new file mode 100644
index 000000000..61be85156
--- /dev/null
+++ b/xorg-server/hw/xwin/glx/genheaders.py
@@ -0,0 +1,539 @@
+#!/usr/bin/python3
+#
+# Copyright (c) 2013 The Khronos Group Inc.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and/or associated documentation files (the
+# "Materials"), to deal in the Materials without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Materials, and to
+# permit persons to whom the Materials are furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Materials.
+#
+# THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+# MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+
+import sys, time, pdb, string, cProfile
+from reg import *
+
+# debug - start header generation in debugger
+# dump - dump registry after loading
+# profile - enable Python profiling
+# protect - whether to use #ifndef protections
+# registry <filename> - use specified XML registry instead of gl.xml
+# target - string name of target header, or all targets if None
+# timeit - time length of registry loading & header generation
+# validate - validate return & parameter group tags against <group>
+debug = False
+dump = False
+profile = False
+protect = True
+target = None
+timeit = False
+validate= False
+# Default input / log files
+errFilename = None
+diagFilename = 'diag.txt'
+regFilename = 'gl.xml'
+
+if __name__ == '__main__':
+ i = 1
+ while (i < len(sys.argv)):
+ arg = sys.argv[i]
+ i = i + 1
+ if (arg == '-debug'):
+ print('Enabling debug (-debug)', file=sys.stderr)
+ debug = True
+ elif (arg == '-dump'):
+ print('Enabling dump (-dump)', file=sys.stderr)
+ dump = True
+ elif (arg == '-noprotect'):
+ print('Disabling inclusion protection in output headers', file=sys.stderr)
+ protect = False
+ elif (arg == '-profile'):
+ print('Enabling profiling (-profile)', file=sys.stderr)
+ profile = True
+ elif (arg == '-registry'):
+ regFilename = sys.argv[i]
+ i = i+1
+ print('Using registry ', regFilename, file=sys.stderr)
+ elif (arg == '-time'):
+ print('Enabling timing (-time)', file=sys.stderr)
+ timeit = True
+ elif (arg == '-validate'):
+ print('Enabling group validation (-validate)', file=sys.stderr)
+ validate = True
+ elif (arg[0:1] == '-'):
+ print('Unrecognized argument:', arg, file=sys.stderr)
+ exit(1)
+ else:
+ target = arg
+ print('Using target', target, file=sys.stderr)
+
+# Simple timer functions
+startTime = None
+def startTimer():
+ global startTime
+ startTime = time.clock()
+def endTimer(msg):
+ global startTime
+ endTime = time.clock()
+ if (timeit):
+ print(msg, endTime - startTime)
+ startTime = None
+
+# Load & parse registry
+reg = Registry()
+
+startTimer()
+tree = etree.parse(regFilename)
+endTimer('Time to make ElementTree =')
+
+startTimer()
+reg.loadElementTree(tree)
+endTimer('Time to parse ElementTree =')
+
+if (validate):
+ reg.validateGroups()
+
+if (dump):
+ print('***************************************')
+ print('Performing Registry dump to regdump.txt')
+ print('***************************************')
+ reg.dumpReg(filehandle = open('regdump.txt','w'))
+
+# Turn a list of strings into a regexp string matching exactly those strings
+def makeREstring(list):
+ return '^(' + '|'.join(list) + ')$'
+
+# These are "mandatory" OpenGL ES 1 extensions, to
+# be included in the core GLES/gl.h header.
+es1CoreList = [
+ 'GL_OES_read_format',
+ 'GL_OES_compressed_paletted_texture',
+ 'GL_OES_point_size_array',
+ 'GL_OES_point_sprite'
+]
+
+# Descriptive names for various regexp patterns used to select
+# versions and extensions
+
+allVersions = allExtensions = '.*'
+noVersions = noExtensions = None
+gl12andLaterPat = '1\.[2-9]|[234]\.[0-9]'
+gles2onlyPat = '2\.[0-9]'
+gles2and3Pat = '[23]\.[0-9]'
+es1CorePat = makeREstring(es1CoreList)
+# Extensions in old glcorearb.h but not yet tagged accordingly in gl.xml
+glCoreARBPat = None
+glx13andLaterPat = '1\.[3-9]'
+
+# Copyright text prefixing all headers (list of strings).
+prefixStrings = [
+ '/*',
+ '** Copyright (c) 2013 The Khronos Group Inc.',
+ '**',
+ '** Permission is hereby granted, free of charge, to any person obtaining a',
+ '** copy of this software and/or associated documentation files (the',
+ '** "Materials"), to deal in the Materials without restriction, including',
+ '** without limitation the rights to use, copy, modify, merge, publish,',
+ '** distribute, sublicense, and/or sell copies of the Materials, and to',
+ '** permit persons to whom the Materials are furnished to do so, subject to',
+ '** the following conditions:',
+ '**',
+ '** The above copyright notice and this permission notice shall be included',
+ '** in all copies or substantial portions of the Materials.',
+ '**',
+ '** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,',
+ '** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF',
+ '** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.',
+ '** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY',
+ '** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,',
+ '** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE',
+ '** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.',
+ '*/',
+ '/*',
+ '** This header is generated from the Khronos OpenGL / OpenGL ES XML',
+ '** API Registry. The current version of the Registry, generator scripts',
+ '** used to make the header, and the header can be found at',
+ '** http://www.opengl.org/registry/',
+ '**',
+ '** Khronos $' + 'Revision$ on $' + 'Date$',
+ '*/',
+ ''
+]
+
+# glext.h / glcorearb.h define calling conventions inline (no GL *platform.h)
+glExtPlatformStrings = [
+ '#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)',
+ '#ifndef WIN32_LEAN_AND_MEAN',
+ '#define WIN32_LEAN_AND_MEAN 1',
+ '#endif',
+ '#include <windows.h>',
+ '#endif',
+ '',
+ '#ifndef APIENTRY',
+ '#define APIENTRY',
+ '#endif',
+ '#ifndef APIENTRYP',
+ '#define APIENTRYP APIENTRY *',
+ '#endif',
+ '#ifndef GLAPI',
+ '#define GLAPI extern',
+ '#endif',
+ ''
+]
+
+glCorearbPlatformStrings = glExtPlatformStrings + [
+ '/* glcorearb.h is for use with OpenGL core profile implementations.',
+ '** It should should be placed in the same directory as gl.h and',
+ '** included as <GL/glcorearb.h>.',
+ '**',
+ '** glcorearb.h includes only APIs in the latest OpenGL core profile',
+ '** implementation together with APIs in newer ARB extensions which ',
+ '** can be supported by the core profile. It does not, and never will',
+ '** include functionality removed from the core profile, such as',
+ '** fixed-function vertex and fragment processing.',
+ '**',
+ '** Do not #include both <GL/glcorearb.h> and either of <GL/gl.h> or',
+ '** <GL/glext.h> in the same source file.',
+ '*/',
+ ''
+]
+
+# wglext.h needs Windows include
+wglPlatformStrings = [
+ '#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)',
+ '#define WIN32_LEAN_AND_MEAN 1',
+ '#include <windows.h>',
+ '#endif',
+ '',
+]
+
+# GLES 1/2/3 core .h have separate *platform.h files to define calling conventions
+gles1PlatformStrings = [ '#include <GLES/glplatform.h>', '' ]
+gles2PlatformStrings = [ '#include <GLES2/gl2platform.h>', '' ]
+gles3PlatformStrings = [ '#include <GLES3/gl3platform.h>', '' ]
+eglPlatformStrings = [ '#include <EGL/eglplatform.h>', '' ]
+
+# GLES 1/2 extension .h have small addition to calling convention headers
+gles1ExtPlatformStrings = gles2ExtPlatformStrings = [
+ '#ifndef GL_APIENTRYP',
+ '#define GL_APIENTRYP GL_APIENTRY*',
+ '#endif',
+ ''
+]
+
+# GL_GLEXT_VERSION is defined only in glext.h
+glextVersionStrings = [
+ format("#define GL_GLEXT_VERSION %s" % time.strftime("%Y%m%d")),
+ ''
+]
+# WGL_WGLEXT_VERSION is defined only in wglext.h
+wglextVersionStrings = [
+ format("#define WGL_WGLEXT_VERSION %s" % time.strftime("%Y%m%d")),
+ ''
+]
+# GLX_GLXEXT_VERSION is defined only in glxext.h
+glxextVersionStrings = [
+ format("#define GLX_GLXEXT_VERSION %s" % time.strftime("%Y%m%d")),
+ ''
+]
+# EGL_EGLEXT_VERSION is defined only in eglext.h
+eglextVersionStrings = [
+ format("#define EGL_EGLEXT_VERSION %s" % time.strftime("%Y%m%d")),
+ ''
+]
+
+# Defaults for generating re-inclusion protection wrappers (or not)
+protectFile = protect
+protectFeature = protect
+protectProto = protect
+
+buildList = [
+ # GL API 1.2+ + extensions - glext.h
+ CGeneratorOptions(
+ filename = 'GL/glext.h',
+ apiname = 'gl',
+ profile = 'compatibility',
+ versions = allVersions,
+ emitversions = gl12andLaterPat,
+ defaultExtensions = 'gl', # Default extensions for GL
+ addExtensions = None,
+ removeExtensions = None,
+ prefixText = prefixStrings + glExtPlatformStrings + glextVersionStrings,
+ genFuncPointers = True,
+ protectFile = protectFile,
+ protectFeature = protectFeature,
+ protectProto = protectProto,
+ apicall = 'GLAPI ',
+ apientry = 'APIENTRY ',
+ apientryp = 'APIENTRYP '),
+ # GL core profile + extensions - glcorearb.h
+ CGeneratorOptions(
+ filename = 'GL/glcorearb.h',
+ apiname = 'gl',
+ profile = 'core',
+ versions = allVersions,
+ emitversions = allVersions,
+ defaultExtensions = 'glcore', # Default extensions for GL core profile (only)
+ addExtensions = glCoreARBPat,
+ removeExtensions = None,
+ prefixText = prefixStrings + glCorearbPlatformStrings,
+ genFuncPointers = True,
+ protectFile = protectFile,
+ protectFeature = protectFeature,
+ protectProto = protectProto,
+ apicall = 'GLAPI ',
+ apientry = 'APIENTRY ',
+ apientryp = 'APIENTRYP '),
+ # GLES 1.x API + mandatory extensions - es1.h (no function pointers)
+ CGeneratorOptions(
+ filename = 'GLES/gl.h',
+ apiname = 'gles1',
+ profile = 'common',
+ versions = allVersions,
+ emitversions = allVersions,
+ defaultExtensions = None, # No default extensions
+ addExtensions = es1CorePat, # Add mandatory ES1 extensions in GLES1/gl.h
+ removeExtensions = None,
+ prefixText = prefixStrings + gles1PlatformStrings,
+ genFuncPointers = False,
+ protectFile = protectFile,
+ protectFeature = protectFeature,
+ protectProto = protectProto,
+ apicall = 'GL_API ',
+ apientry = 'GL_APIENTRY ',
+ apientryp = 'GL_APIENTRYP '),
+ # GLES 1.x extensions - es1ext.h
+ CGeneratorOptions(
+ filename = 'GLES/glext.h',
+ apiname = 'gles1',
+ profile = 'common',
+ versions = allVersions,
+ emitversions = noVersions,
+ defaultExtensions = 'gles1', # Default extensions for GLES 1
+ addExtensions = None,
+ removeExtensions = es1CorePat, # Remove mandatory ES1 extensions in GLES1/glext.h
+ prefixText = prefixStrings + gles1ExtPlatformStrings,
+ genFuncPointers = True,
+ protectFile = protectFile,
+ protectFeature = protectFeature,
+ protectProto = protectProto,
+ apicall = 'GL_API ',
+ apientry = 'GL_APIENTRY ',
+ apientryp = 'GL_APIENTRYP '),
+ # GLES 2.0 API - es2.h (no function pointers)
+ CGeneratorOptions(
+ filename = 'GLES2/gl2.h',
+ apiname = 'gles2',
+ profile = 'common',
+ versions = gles2onlyPat,
+ emitversions = allVersions,
+ defaultExtensions = None, # No default extensions
+ addExtensions = None,
+ removeExtensions = None,
+ prefixText = prefixStrings + gles2PlatformStrings,
+ genFuncPointers = False,
+ protectFile = protectFile,
+ protectFeature = protectFeature,
+ protectProto = protectProto,
+ apicall = 'GL_APICALL ',
+ apientry = 'GL_APIENTRY ',
+ apientryp = 'GL_APIENTRYP '),
+ # GLES 2.0 extensions - es2ext.h
+ CGeneratorOptions(
+ filename = 'GLES2/gl2ext.h',
+ apiname = 'gles2',
+ profile = 'common',
+ versions = gles2onlyPat,
+ emitversions = None,
+ defaultExtensions = 'gles2', # Default extensions for GLES 2
+ addExtensions = None,
+ removeExtensions = None,
+ prefixText = prefixStrings + gles2ExtPlatformStrings,
+ genFuncPointers = True,
+ protectFile = protectFile,
+ protectFeature = protectFeature,
+ protectProto = protectProto,
+ apicall = 'GL_APICALL ',
+ apientry = 'GL_APIENTRY ',
+ apientryp = 'GL_APIENTRYP '),
+ # GLES 3.0 API - es3.h (no function pointers)
+ CGeneratorOptions(
+ filename = 'GLES3/gl3.h',
+ apiname = 'gles2',
+ profile = 'common',
+ versions = gles2and3Pat,
+ emitversions = allVersions,
+ defaultExtensions = None, # No default extensions
+ addExtensions = None,
+ removeExtensions = None,
+ prefixText = prefixStrings + gles3PlatformStrings,
+ genFuncPointers = False,
+ protectFile = protectFile,
+ protectFeature = protectFeature,
+ protectProto = protectProto,
+ apicall = 'GL_APICALL ',
+ apientry = 'GL_APIENTRY ',
+ apientryp = 'GL_APIENTRYP '),
+ # EGL API - egl.h (no function pointers, yet @@@)
+ CGeneratorOptions(
+ filename = 'EGL/egl.h',
+ apiname = 'egl',
+ profile = None,
+ versions = allVersions,
+ emitversions = allVersions,
+ defaultExtensions = None, # No default extensions
+ addExtensions = None,
+ removeExtensions = None,
+ prefixText = prefixStrings + eglPlatformStrings + eglextVersionStrings,
+ genFuncPointers = False,
+ protectFile = protectFile,
+ protectFeature = protectFeature,
+ protectProto = protectProto,
+ apicall = 'EGLAPI ',
+ apientry = 'EGLAPIENTRY ',
+ apientryp = 'EGLAPIENTRYP '),
+ # EGL extensions - eglext.h (no function pointers, yet @@@)
+ CGeneratorOptions(
+ filename = 'EGL/eglext.h',
+ apiname = 'egl',
+ profile = None,
+ versions = allVersions,
+ emitversions = None,
+ defaultExtensions = 'egl', # Default extensions for EGL
+ addExtensions = None,
+ removeExtensions = None,
+ prefixText = prefixStrings + eglPlatformStrings + eglextVersionStrings,
+ genFuncPointers = False,
+ protectFile = protectFile,
+ protectFeature = protectFeature,
+ protectProto = protectProto,
+ apicall = 'EGLAPI ',
+ apientry = 'EGLAPIENTRY ',
+ apientryp = 'EGLAPIENTRYP '),
+ # GLX 1.* API - glx.h
+ CGeneratorOptions(
+ filename = 'GL/glx.h',
+ apiname = 'glx',
+ profile = None,
+ versions = allVersions,
+ emitversions = allVersions,
+ defaultExtensions = None, # No default extensions
+ addExtensions = None,
+ removeExtensions = None,
+ # add glXPlatformStrings?
+ prefixText = prefixStrings, # No GLXEXT_VERSION
+ genFuncPointers = True,
+ protectFile = protectFile,
+ protectFeature = protectFeature,
+ protectProto = protectProto,
+ apicall = '',
+ apientry = '',
+ apientryp = ' *'),
+ # GLX 1.3+ API + extensions - glxext.h (no function pointers, yet @@@)
+ CGeneratorOptions(
+ filename = 'GL/glxext.h',
+ apiname = 'glx',
+ profile = None,
+ versions = allVersions,
+ emitversions = glx13andLaterPat,
+ defaultExtensions = 'glx', # Default extensions for GLX
+ addExtensions = None,
+ removeExtensions = None,
+ # add glXPlatformStrings?
+ prefixText = prefixStrings + glxextVersionStrings,
+ genFuncPointers = True,
+ protectFile = protectFile,
+ protectFeature = protectFeature,
+ protectProto = protectProto,
+ apicall = '',
+ apientry = '',
+ apientryp = ' *'),
+ # WGL API + extensions - wgl.h (no function pointers, yet @@@)
+ CGeneratorOptions(
+ filename = 'GL/wgl.h',
+ apiname = 'wgl',
+ profile = None,
+ versions = allVersions,
+ emitversions = allVersions,
+ defaultExtensions = 'wgl', # Default extensions for WGL
+ addExtensions = None,
+ removeExtensions = None,
+ prefixText = prefixStrings + wglPlatformStrings, # No WGLEXT_VERSION
+ genFuncPointers = True,
+ protectFile = protectFile,
+ protectFeature = protectFeature,
+ protectProto = protectProto,
+ apicall = '',
+ apientry = 'WINAPI ',
+ apientryp = 'WINAPI * '),
+ # WGL extensions - wglext.h (no function pointers, yet @@@)
+ CGeneratorOptions(
+ filename = 'GL/wglext.h',
+ apiname = 'wgl',
+ profile = None,
+ versions = allVersions,
+ emitversions = None,
+ defaultExtensions = 'wgl', # Default extensions for WGL
+ addExtensions = None,
+ removeExtensions = None,
+ prefixText = prefixStrings + wglPlatformStrings + wglextVersionStrings,
+ genFuncPointers = True,
+ protectFile = protectFile,
+ protectFeature = protectFeature,
+ protectProto = protectProto,
+ apicall = '',
+ apientry = 'WINAPI ',
+ apientryp = 'WINAPI * '),
+ # End of list
+ None
+]
+
+# create error/warning & diagnostic files
+if (errFilename):
+ errWarn = open(errFilename,'w')
+else:
+ errWarn = sys.stderr
+diag = open(diagFilename, 'w')
+
+def genHeaders():
+ # Loop over targets, building each
+ generated = 0
+ for genOpts in buildList:
+ if (genOpts == None):
+ break
+ if (target and target != genOpts.filename):
+ # print('*** Skipping', genOpts.filename)
+ continue
+ print('*** Building', genOpts.filename)
+ generated = generated + 1
+ startTimer()
+ gen = COutputGenerator(errFile=errWarn,
+ warnFile=errWarn,
+ diagFile=diag)
+ reg.setGenerator(gen)
+ reg.apiGen(genOpts)
+ print('** Generated', genOpts.filename)
+ endTimer('Time to generate ' + genOpts.filename + ' =')
+ if (target and generated == 0):
+ print('Failed to generate target:', target)
+
+if (debug):
+ pdb.run('genHeaders()')
+elif (profile):
+ import cProfile, pstats
+ cProfile.run('genHeaders()', 'profile.txt')
+ p = pstats.Stats('profile.txt')
+ p.strip_dirs().sort_stats('time').print_stats(50)
+else:
+ genHeaders()
diff --git a/xorg-server/hw/xwin/glx/gl.xml b/xorg-server/hw/xwin/glx/gl.xml
new file mode 100644
index 000000000..47d32b9d0
--- /dev/null
+++ b/xorg-server/hw/xwin/glx/gl.xml
@@ -0,0 +1,40269 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<registry>
+ <comment>
+Copyright (c) 2013 The Khronos Group Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and/or associated documentation files (the
+"Materials"), to deal in the Materials without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Materials, and to
+permit persons to whom the Materials are furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Materials.
+
+THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+
+------------------------------------------------------------------------
+
+This file, gl.xml, is the OpenGL and OpenGL API Registry. The older
+".spec" file format has been retired and will no longer be updated with
+new extensions and API versions. The canonical version of the registry,
+together with documentation, schema, and Python generator scripts used
+to generate C header files for OpenGL and OpenGL ES, can always be found
+in the Khronos Registry at
+ http://www.opengl.org/registry/
+ </comment>
+
+ <!-- SECTION: GL type definitions. -->
+ <types>
+ <!-- These are dependencies GL types require to be declared legally -->
+ <type name="stddef">#include &lt;stddef.h&gt;</type>
+ <type name="khrplatform">#include &lt;KHR/khrplatform.h&gt;</type>
+ <type name="inttypes">#ifndef GLEXT_64_TYPES_DEFINED
+/* This code block is duplicated in glxext.h, so must be protected */
+#define GLEXT_64_TYPES_DEFINED
+/* Define int32_t, int64_t, and uint64_t types for UST/MSC */
+/* (as used in the GL_EXT_timer_query extension). */
+#if defined(__STDC_VERSION__) &amp;&amp; __STDC_VERSION__ &gt;= 199901L
+#include &lt;inttypes.h&gt;
+#elif defined(__sun__) || defined(__digital__)
+#include &lt;inttypes.h&gt;
+#if defined(__STDC__)
+#if defined(__arch64__) || defined(_LP64)
+typedef long int int64_t;
+typedef unsigned long int uint64_t;
+#else
+typedef long long int int64_t;
+typedef unsigned long long int uint64_t;
+#endif /* __arch64__ */
+#endif /* __STDC__ */
+#elif defined( __VMS ) || defined(__sgi)
+#include &lt;inttypes.h&gt;
+#elif defined(__SCO__) || defined(__USLC__)
+#include &lt;stdint.h&gt;
+#elif defined(__UNIXOS2__) || defined(__SOL64__)
+typedef long int int32_t;
+typedef long long int int64_t;
+typedef unsigned long long int uint64_t;
+#elif defined(_WIN32) &amp;&amp; defined(__GNUC__)
+#include &lt;stdint.h&gt;
+#elif defined(_WIN32)
+typedef __int32 int32_t;
+typedef __int64 int64_t;
+typedef unsigned __int64 uint64_t;
+#else
+/* Fallback if nothing above works */
+#include &lt;inttypes.h&gt;
+#endif
+#endif</type>
+ <!-- These are actual GL types -->
+ <type>typedef unsigned int <name>GLenum</name>;</type>
+ <type>typedef unsigned char <name>GLboolean</name>;</type>
+ <type>typedef unsigned int <name>GLbitfield</name>;</type>
+ <type>typedef void <name>GLvoid</name>;</type>
+ <type>typedef signed char <name>GLbyte</name>;</type>
+ <type>typedef short <name>GLshort</name>;</type>
+ <type>typedef int <name>GLint</name>;</type>
+ <type>typedef int <name>GLclampx</name>;</type>
+ <type>typedef unsigned char <name>GLubyte</name>;</type>
+ <type>typedef unsigned short <name>GLushort</name>;</type>
+ <type>typedef unsigned int <name>GLuint</name>;</type>
+ <type>typedef int <name>GLsizei</name>;</type>
+ <type>typedef float <name>GLfloat</name>;</type>
+ <type>typedef float <name>GLclampf</name>;</type>
+ <type>typedef double <name>GLdouble</name>;</type>
+ <type>typedef double <name>GLclampd</name>;</type>
+ <type>typedef void *<name>GLeglImageOES</name>;</type>
+ <type>typedef char <name>GLchar</name>;</type>
+ <type>typedef char <name>GLcharARB</name>;</type>
+ <type name="GLhandleARB">#ifdef __APPLE__
+typedef void *GLhandleARB;
+#else
+typedef unsigned int GLhandleARB;
+#endif</type>
+ <type>typedef unsigned short <name>GLhalfARB</name>;</type>
+ <type>typedef unsigned short <name>GLhalf</name>;</type>
+ <type comment="Must be 32 bits">typedef GLint <name>GLfixed</name>;</type>
+ <type requires="stddef">typedef ptrdiff_t <name>GLintptr</name>;</type>
+ <type requires="stddef">typedef ptrdiff_t <name>GLsizeiptr</name>;</type>
+ <type requires="inttypes">typedef int64_t <name>GLint64</name>;</type>
+ <type requires="inttypes">typedef uint64_t <name>GLuint64</name>;</type>
+ <type requires="stddef">typedef ptrdiff_t <name>GLintptrARB</name>;</type>
+ <type requires="stddef">typedef ptrdiff_t <name>GLsizeiptrARB</name>;</type>
+ <type requires="inttypes">typedef int64_t <name>GLint64EXT</name>;</type>
+ <type requires="inttypes">typedef uint64_t <name>GLuint64EXT</name>;</type>
+ <type>typedef struct __GLsync *<name>GLsync</name>;</type>
+ <type comment="compatible with OpenCL cl_context"><name>struct _cl_context</name>;</type>
+ <type comment="compatible with OpenCL cl_event"><name>struct _cl_event</name>;</type>
+ <type>typedef void (<apientry/> *<name>GLDEBUGPROC</name>)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);</type>
+ <type>typedef void (<apientry/> *<name>GLDEBUGPROCARB</name>)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);</type>
+ <type>typedef void (<apientry/> *<name>GLDEBUGPROCKHR</name>)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);</type>
+ <!-- GLES 1 types -->
+ <type api="gles1" requires="khrplatform">typedef khronos_int32_t <name>GLclampx</name>;</type>
+ <!-- GLES 1/2 types (tagged for GLES 1) -->
+ <type api="gles1" requires="khrplatform">typedef khronos_int8_t <name>GLbyte</name>;</type>
+ <type api="gles1" requires="khrplatform">typedef khronos_uint8_t <name>GLubyte</name>;</type>
+ <type api="gles1" requires="khrplatform">typedef khronos_float_t <name>GLfloat</name>;</type>
+ <type api="gles1" requires="khrplatform">typedef khronos_float_t <name>GLclampf</name>;</type>
+ <type api="gles1" requires="khrplatform">typedef khronos_int32_t <name>GLfixed</name>;</type>
+ <type api="gles1" requires="khrplatform">typedef khronos_int64_t <name>GLint64</name>;</type>
+ <type api="gles1" requires="khrplatform">typedef khronos_uint64_t <name>GLuint64</name>;</type>
+ <type api="gles1" requires="khrplatform">typedef khronos_intptr_t <name>GLintptr</name>;</type>
+ <type api="gles1" requires="khrplatform">typedef khronos_ssize_t <name>GLsizeiptr</name>;</type>
+ <!-- GLES 1/2 types (tagged for GLES 2 - attribute syntax is limited) -->
+ <type api="gles2" requires="khrplatform">typedef khronos_int8_t <name>GLbyte</name>;</type>
+ <type api="gles2" requires="khrplatform">typedef khronos_uint8_t <name>GLubyte</name>;</type>
+ <type api="gles2" requires="khrplatform">typedef khronos_float_t <name>GLfloat</name>;</type>
+ <type api="gles2" requires="khrplatform">typedef khronos_float_t <name>GLclampf</name>;</type>
+ <type api="gles2" requires="khrplatform">typedef khronos_int32_t <name>GLfixed</name>;</type>
+ <type api="gles2" requires="khrplatform">typedef khronos_int64_t <name>GLint64</name>;</type>
+ <type api="gles2" requires="khrplatform">typedef khronos_uint64_t <name>GLuint64</name>;</type>
+ <type api="gles2" requires="khrplatform">typedef khronos_int64_t <name>GLint64EXT</name>;</type>
+ <type api="gles2" requires="khrplatform">typedef khronos_uint64_t <name>GLuint64EXT</name>;</type>
+ <type api="gles2" requires="khrplatform">typedef khronos_intptr_t <name>GLintptr</name>;</type>
+ <type api="gles2" requires="khrplatform">typedef khronos_ssize_t <name>GLsizeiptr</name>;</type>
+ <!-- GLES 2 types (none currently) -->
+ <!-- Vendor extension types -->
+ <type>typedef void (<apientry/> *<name>GLDEBUGPROCAMD</name>)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,void *userParam);</type>
+ <type>typedef unsigned short <name>GLhalfNV</name>;</type>
+ <type requires="GLintptr">typedef GLintptr <name>GLvdpauSurfaceNV</name>;</type>
+ </types>
+
+ <!-- SECTION: GL parameter class type definitions. -->
+
+ <groups>
+ <group name="AccumOp">
+ <enum name="GL_ACCUM"/>
+ <enum name="GL_LOAD"/>
+ <enum name="GL_RETURN"/>
+ <enum name="GL_MULT"/>
+ <enum name="GL_ADD"/>
+ </group>
+
+ <group name="AttribMask">
+ <enum name="GL_ACCUM_BUFFER_BIT"/>
+ <enum name="GL_ALL_ATTRIB_BITS"/>
+ <enum name="GL_COLOR_BUFFER_BIT"/>
+ <enum name="GL_CURRENT_BIT"/>
+ <enum name="GL_DEPTH_BUFFER_BIT"/>
+ <enum name="GL_ENABLE_BIT"/>
+ <enum name="GL_EVAL_BIT"/>
+ <enum name="GL_FOG_BIT"/>
+ <enum name="GL_HINT_BIT"/>
+ <enum name="GL_LIGHTING_BIT"/>
+ <enum name="GL_LINE_BIT"/>
+ <enum name="GL_LIST_BIT"/>
+ <enum name="GL_MULTISAMPLE_BIT"/>
+ <enum name="GL_MULTISAMPLE_BIT_3DFX"/>
+ <enum name="GL_MULTISAMPLE_BIT_ARB"/>
+ <enum name="GL_MULTISAMPLE_BIT_EXT"/>
+ <enum name="GL_PIXEL_MODE_BIT"/>
+ <enum name="GL_POINT_BIT"/>
+ <enum name="GL_POLYGON_BIT"/>
+ <enum name="GL_POLYGON_STIPPLE_BIT"/>
+ <enum name="GL_SCISSOR_BIT"/>
+ <enum name="GL_STENCIL_BUFFER_BIT"/>
+ <enum name="GL_TEXTURE_BIT"/>
+ <enum name="GL_TRANSFORM_BIT"/>
+ <enum name="GL_VIEWPORT_BIT"/>
+ </group>
+
+ <group name="AlphaFunction">
+ <enum name="GL_ALWAYS"/>
+ <enum name="GL_EQUAL"/>
+ <enum name="GL_GEQUAL"/>
+ <enum name="GL_GREATER"/>
+ <enum name="GL_LEQUAL"/>
+ <enum name="GL_LESS"/>
+ <enum name="GL_NEVER"/>
+ <enum name="GL_NOTEQUAL"/>
+ </group>
+
+ <group name="BlendEquationModeEXT">
+ <enum name="GL_ALPHA_MAX_SGIX"/>
+ <enum name="GL_ALPHA_MIN_SGIX"/>
+ <enum name="GL_FUNC_ADD_EXT"/>
+ <enum name="GL_FUNC_REVERSE_SUBTRACT_EXT"/>
+ <enum name="GL_FUNC_SUBTRACT_EXT"/>
+ <enum name="GL_LOGIC_OP"/>
+ <enum name="GL_MAX_EXT"/>
+ <enum name="GL_MIN_EXT"/>
+ </group>
+
+ <group name="BlendingFactorDest">
+ <enum name="GL_CONSTANT_ALPHA_EXT"/>
+ <enum name="GL_CONSTANT_COLOR_EXT"/>
+ <enum name="GL_DST_ALPHA"/>
+ <enum name="GL_ONE"/>
+ <enum name="GL_ONE_MINUS_CONSTANT_ALPHA_EXT"/>
+ <enum name="GL_ONE_MINUS_CONSTANT_COLOR_EXT"/>
+ <enum name="GL_ONE_MINUS_DST_ALPHA"/>
+ <enum name="GL_ONE_MINUS_SRC_ALPHA"/>
+ <enum name="GL_ONE_MINUS_SRC_COLOR"/>
+ <enum name="GL_SRC_ALPHA"/>
+ <enum name="GL_SRC_COLOR"/>
+ <enum name="GL_ZERO"/>
+ </group>
+
+ <group name="BlendingFactorSrc">
+ <enum name="GL_CONSTANT_ALPHA_EXT"/>
+ <enum name="GL_CONSTANT_COLOR_EXT"/>
+ <enum name="GL_DST_ALPHA"/>
+ <enum name="GL_DST_COLOR"/>
+ <enum name="GL_ONE"/>
+ <enum name="GL_ONE_MINUS_CONSTANT_ALPHA_EXT"/>
+ <enum name="GL_ONE_MINUS_CONSTANT_COLOR_EXT"/>
+ <enum name="GL_ONE_MINUS_DST_ALPHA"/>
+ <enum name="GL_ONE_MINUS_DST_COLOR"/>
+ <enum name="GL_ONE_MINUS_SRC_ALPHA"/>
+ <enum name="GL_SRC_ALPHA"/>
+ <enum name="GL_SRC_ALPHA_SATURATE"/>
+ <enum name="GL_ZERO"/>
+ </group>
+
+ <group name="Boolean">
+ <enum name="GL_FALSE"/>
+ <enum name="GL_TRUE"/>
+ </group>
+
+ <group name="ClearBufferMask">
+ <enum name="GL_ACCUM_BUFFER_BIT"/>
+ <enum name="GL_COLOR_BUFFER_BIT"/>
+ <enum name="GL_COVERAGE_BUFFER_BIT_NV"/>
+ <enum name="GL_DEPTH_BUFFER_BIT"/>
+ <enum name="GL_STENCIL_BUFFER_BIT"/>
+ </group>
+
+ <group name="ClientAttribMask">
+ <enum name="GL_CLIENT_ALL_ATTRIB_BITS"/>
+ <enum name="GL_CLIENT_PIXEL_STORE_BIT"/>
+ <enum name="GL_CLIENT_VERTEX_ARRAY_BIT"/>
+ </group>
+
+ <group name="ClipPlaneName">
+ <enum name="GL_CLIP_DISTANCE0"/>
+ <enum name="GL_CLIP_DISTANCE1"/>
+ <enum name="GL_CLIP_DISTANCE2"/>
+ <enum name="GL_CLIP_DISTANCE3"/>
+ <enum name="GL_CLIP_DISTANCE4"/>
+ <enum name="GL_CLIP_DISTANCE5"/>
+ <enum name="GL_CLIP_DISTANCE6"/>
+ <enum name="GL_CLIP_DISTANCE7"/>
+ <enum name="GL_CLIP_PLANE0"/>
+ <enum name="GL_CLIP_PLANE1"/>
+ <enum name="GL_CLIP_PLANE2"/>
+ <enum name="GL_CLIP_PLANE3"/>
+ <enum name="GL_CLIP_PLANE4"/>
+ <enum name="GL_CLIP_PLANE5"/>
+ </group>
+
+ <group name="ColorMaterialFace">
+ <enum name="GL_BACK"/>
+ <enum name="GL_FRONT"/>
+ <enum name="GL_FRONT_AND_BACK"/>
+ </group>
+
+ <group name="ColorMaterialParameter">
+ <enum name="GL_AMBIENT"/>
+ <enum name="GL_AMBIENT_AND_DIFFUSE"/>
+ <enum name="GL_DIFFUSE"/>
+ <enum name="GL_EMISSION"/>
+ <enum name="GL_SPECULAR"/>
+ </group>
+
+ <group name="ColorPointerType">
+ <enum name="GL_BYTE"/>
+ <enum name="GL_DOUBLE"/>
+ <enum name="GL_FLOAT"/>
+ <enum name="GL_INT"/>
+ <enum name="GL_SHORT"/>
+ <enum name="GL_UNSIGNED_BYTE"/>
+ <enum name="GL_UNSIGNED_INT"/>
+ <enum name="GL_UNSIGNED_SHORT"/>
+ </group>
+
+ <group name="ColorTableParameterPNameSGI">
+ <enum name="GL_COLOR_TABLE_BIAS"/>
+ <enum name="GL_COLOR_TABLE_BIAS_SGI"/>
+ <enum name="GL_COLOR_TABLE_BIAS_SGI"/>
+ <enum name="GL_COLOR_TABLE_SCALE"/>
+ <enum name="GL_COLOR_TABLE_SCALE_SGI"/>
+ <enum name="GL_COLOR_TABLE_SCALE_SGI"/>
+ </group>
+
+ <group name="ColorTableTargetSGI">
+ <enum name="GL_COLOR_TABLE"/>
+ <enum name="GL_COLOR_TABLE_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_COLOR_TABLE"/>
+ <enum name="GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI"/>
+ <enum name="GL_POST_CONVOLUTION_COLOR_TABLE"/>
+ <enum name="GL_POST_CONVOLUTION_COLOR_TABLE_SGI"/>
+ <enum name="GL_PROXY_COLOR_TABLE"/>
+ <enum name="GL_PROXY_COLOR_TABLE_SGI"/>
+ <enum name="GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE"/>
+ <enum name="GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI"/>
+ <enum name="GL_PROXY_POST_CONVOLUTION_COLOR_TABLE"/>
+ <enum name="GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI"/>
+ <enum name="GL_PROXY_TEXTURE_COLOR_TABLE_SGI"/>
+ <enum name="GL_TEXTURE_COLOR_TABLE_SGI"/>
+ </group>
+
+ <group name="ContextFlagMask">
+ <enum name="GL_CONTEXT_FLAG_DEBUG_BIT"/>
+ <enum name="GL_CONTEXT_FLAG_DEBUG_BIT_KHR"/>
+ <enum name="GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT"/>
+ <enum name="GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB"/>
+ </group>
+
+ <group name="ContextProfileMask">
+ <enum name="GL_CONTEXT_COMPATIBILITY_PROFILE_BIT"/>
+ <enum name="GL_CONTEXT_CORE_PROFILE_BIT"/>
+ </group>
+
+ <group name="ConvolutionBorderModeEXT">
+ <enum name="GL_REDUCE"/>
+ <enum name="GL_REDUCE_EXT"/>
+ </group>
+
+ <group name="ConvolutionParameterEXT">
+ <enum name="GL_CONVOLUTION_BORDER_MODE"/>
+ <enum name="GL_CONVOLUTION_BORDER_MODE_EXT"/>
+ <enum name="GL_CONVOLUTION_FILTER_BIAS"/>
+ <enum name="GL_CONVOLUTION_FILTER_BIAS_EXT"/>
+ <enum name="GL_CONVOLUTION_FILTER_SCALE"/>
+ <enum name="GL_CONVOLUTION_FILTER_SCALE_EXT"/>
+ </group>
+
+ <group name="ConvolutionTargetEXT">
+ <enum name="GL_CONVOLUTION_1D"/>
+ <enum name="GL_CONVOLUTION_1D_EXT"/>
+ <enum name="GL_CONVOLUTION_2D"/>
+ <enum name="GL_CONVOLUTION_2D_EXT"/>
+ </group>
+
+ <group name="CullFaceMode">
+ <enum name="GL_BACK"/>
+ <enum name="GL_FRONT"/>
+ <enum name="GL_FRONT_AND_BACK"/>
+ </group>
+
+ <group name="DataType" comment="See enums block below"/>
+
+ <group name="DepthFunction">
+ <enum name="GL_ALWAYS"/>
+ <enum name="GL_EQUAL"/>
+ <enum name="GL_GEQUAL"/>
+ <enum name="GL_GREATER"/>
+ <enum name="GL_LEQUAL"/>
+ <enum name="GL_LESS"/>
+ <enum name="GL_NEVER"/>
+ <enum name="GL_NOTEQUAL"/>
+ </group>
+
+ <group name="DrawBufferMode">
+ <enum name="GL_AUX0"/>
+ <enum name="GL_AUX1"/>
+ <enum name="GL_AUX2"/>
+ <enum name="GL_AUX3"/>
+ <enum name="GL_BACK"/>
+ <enum name="GL_BACK_LEFT"/>
+ <enum name="GL_BACK_RIGHT"/>
+ <enum name="GL_FRONT"/>
+ <enum name="GL_FRONT_AND_BACK"/>
+ <enum name="GL_FRONT_LEFT"/>
+ <enum name="GL_FRONT_RIGHT"/>
+ <enum name="GL_LEFT"/>
+ <enum name="GL_NONE"/>
+ <enum name="GL_NONE_OES"/>
+ <enum name="GL_RIGHT"/>
+ </group>
+
+ <group name="EnableCap">
+ <enum name="GL_ALPHA_TEST"/>
+ <enum name="GL_ASYNC_DRAW_PIXELS_SGIX"/>
+ <enum name="GL_ASYNC_HISTOGRAM_SGIX"/>
+ <enum name="GL_ASYNC_READ_PIXELS_SGIX"/>
+ <enum name="GL_ASYNC_TEX_IMAGE_SGIX"/>
+ <enum name="GL_AUTO_NORMAL"/>
+ <enum name="GL_BLEND"/>
+ <enum name="GL_CALLIGRAPHIC_FRAGMENT_SGIX"/>
+ <enum name="GL_CLIP_PLANE0"/>
+ <enum name="GL_CLIP_PLANE1"/>
+ <enum name="GL_CLIP_PLANE2"/>
+ <enum name="GL_CLIP_PLANE3"/>
+ <enum name="GL_CLIP_PLANE4"/>
+ <enum name="GL_CLIP_PLANE5"/>
+ <enum name="GL_COLOR_ARRAY"/>
+ <enum name="GL_COLOR_LOGIC_OP"/>
+ <enum name="GL_COLOR_MATERIAL"/>
+ <enum name="GL_COLOR_TABLE_SGI"/>
+ <enum name="GL_CONVOLUTION_1D_EXT"/>
+ <enum name="GL_CONVOLUTION_2D_EXT"/>
+ <enum name="GL_CULL_FACE"/>
+ <enum name="GL_DEPTH_TEST"/>
+ <enum name="GL_DITHER"/>
+ <enum name="GL_EDGE_FLAG_ARRAY"/>
+ <enum name="GL_FOG"/>
+ <enum name="GL_FOG_OFFSET_SGIX"/>
+ <enum name="GL_FRAGMENT_COLOR_MATERIAL_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT0_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT1_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT2_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT3_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT4_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT5_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT6_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT7_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHTING_SGIX"/>
+ <enum name="GL_FRAMEZOOM_SGIX"/>
+ <enum name="GL_HISTOGRAM_EXT"/>
+ <enum name="GL_INDEX_ARRAY"/>
+ <enum name="GL_INDEX_LOGIC_OP"/>
+ <enum name="GL_INTERLACE_SGIX"/>
+ <enum name="GL_IR_INSTRUMENT1_SGIX"/>
+ <enum name="GL_LIGHT0"/>
+ <enum name="GL_LIGHT1"/>
+ <enum name="GL_LIGHT2"/>
+ <enum name="GL_LIGHT3"/>
+ <enum name="GL_LIGHT4"/>
+ <enum name="GL_LIGHT5"/>
+ <enum name="GL_LIGHT6"/>
+ <enum name="GL_LIGHT7"/>
+ <enum name="GL_LIGHTING"/>
+ <enum name="GL_LINE_SMOOTH"/>
+ <enum name="GL_LINE_STIPPLE"/>
+ <enum name="GL_MAP1_COLOR_4"/>
+ <enum name="GL_MAP1_INDEX"/>
+ <enum name="GL_MAP1_NORMAL"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_1"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_2"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_3"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_4"/>
+ <enum name="GL_MAP1_VERTEX_3"/>
+ <enum name="GL_MAP1_VERTEX_4"/>
+ <enum name="GL_MAP2_COLOR_4"/>
+ <enum name="GL_MAP2_INDEX"/>
+ <enum name="GL_MAP2_NORMAL"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_1"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_2"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_3"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_4"/>
+ <enum name="GL_MAP2_VERTEX_3"/>
+ <enum name="GL_MAP2_VERTEX_4"/>
+ <enum name="GL_MINMAX_EXT"/>
+ <enum name="GL_MULTISAMPLE_SGIS"/>
+ <enum name="GL_NORMALIZE"/>
+ <enum name="GL_NORMAL_ARRAY"/>
+ <enum name="GL_PIXEL_TEXTURE_SGIS"/>
+ <enum name="GL_PIXEL_TEX_GEN_SGIX"/>
+ <enum name="GL_POINT_SMOOTH"/>
+ <enum name="GL_POLYGON_OFFSET_FILL"/>
+ <enum name="GL_POLYGON_OFFSET_LINE"/>
+ <enum name="GL_POLYGON_OFFSET_POINT"/>
+ <enum name="GL_POLYGON_SMOOTH"/>
+ <enum name="GL_POLYGON_STIPPLE"/>
+ <enum name="GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI"/>
+ <enum name="GL_POST_CONVOLUTION_COLOR_TABLE_SGI"/>
+ <enum name="GL_REFERENCE_PLANE_SGIX"/>
+ <enum name="GL_RESCALE_NORMAL_EXT"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_MASK_SGIS"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_ONE_SGIS"/>
+ <enum name="GL_SAMPLE_MASK_SGIS"/>
+ <enum name="GL_SCISSOR_TEST"/>
+ <enum name="GL_SEPARABLE_2D_EXT"/>
+ <enum name="GL_SHARED_TEXTURE_PALETTE_EXT"/>
+ <enum name="GL_SPRITE_SGIX"/>
+ <enum name="GL_STENCIL_TEST"/>
+ <enum name="GL_TEXTURE_1D"/>
+ <enum name="GL_TEXTURE_2D"/>
+ <enum name="GL_TEXTURE_3D_EXT"/>
+ <enum name="GL_TEXTURE_4D_SGIS"/>
+ <enum name="GL_TEXTURE_COLOR_TABLE_SGI"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY"/>
+ <enum name="GL_TEXTURE_GEN_Q"/>
+ <enum name="GL_TEXTURE_GEN_R"/>
+ <enum name="GL_TEXTURE_GEN_S"/>
+ <enum name="GL_TEXTURE_GEN_T"/>
+ <enum name="GL_VERTEX_ARRAY"/>
+ </group>
+
+ <group name="ErrorCode">
+ <enum name="GL_INVALID_ENUM"/>
+ <enum name="GL_INVALID_FRAMEBUFFER_OPERATION"/>
+ <enum name="GL_INVALID_FRAMEBUFFER_OPERATION_EXT"/>
+ <enum name="GL_INVALID_FRAMEBUFFER_OPERATION_OES"/>
+ <enum name="GL_INVALID_OPERATION"/>
+ <enum name="GL_INVALID_VALUE"/>
+ <enum name="GL_NO_ERROR"/>
+ <enum name="GL_OUT_OF_MEMORY"/>
+ <enum name="GL_STACK_OVERFLOW"/>
+ <enum name="GL_STACK_UNDERFLOW"/>
+ <enum name="GL_TABLE_TOO_LARGE"/>
+ <enum name="GL_TABLE_TOO_LARGE_EXT"/>
+ <enum name="GL_TEXTURE_TOO_LARGE_EXT"/>
+ </group>
+
+ <group name="FeedbackType">
+ <enum name="GL_2D"/>
+ <enum name="GL_3D"/>
+ <enum name="GL_3D_COLOR"/>
+ <enum name="GL_3D_COLOR_TEXTURE"/>
+ <enum name="GL_4D_COLOR_TEXTURE"/>
+ </group>
+
+ <group name="FeedBackToken">
+ <enum name="GL_BITMAP_TOKEN"/>
+ <enum name="GL_COPY_PIXEL_TOKEN"/>
+ <enum name="GL_DRAW_PIXEL_TOKEN"/>
+ <enum name="GL_LINE_RESET_TOKEN"/>
+ <enum name="GL_LINE_TOKEN"/>
+ <enum name="GL_PASS_THROUGH_TOKEN"/>
+ <enum name="GL_POINT_TOKEN"/>
+ <enum name="GL_POLYGON_TOKEN"/>
+ </group>
+
+ <group name="FfdMaskSGIX" comment="See enums section below. Was SGIXFfdMask"/>
+
+ <group name="FfdTargetSGIX">
+ <enum name="GL_GEOMETRY_DEFORMATION_SGIX"/>
+ <enum name="GL_TEXTURE_DEFORMATION_SGIX"/>
+ </group>
+
+ <group name="FogMode">
+ <enum name="GL_EXP"/>
+ <enum name="GL_EXP2"/>
+ <enum name="GL_FOG_FUNC_SGIS"/>
+ <enum name="GL_LINEAR"/>
+ </group>
+
+ <group name="FogParameter">
+ <enum name="GL_FOG_COLOR"/>
+ <enum name="GL_FOG_DENSITY"/>
+ <enum name="GL_FOG_END"/>
+ <enum name="GL_FOG_INDEX"/>
+ <enum name="GL_FOG_MODE"/>
+ <enum name="GL_FOG_OFFSET_VALUE_SGIX"/>
+ <enum name="GL_FOG_START"/>
+ </group>
+
+ <group name="FragmentLightModelParameterSGIX">
+ <enum name="GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX"/>
+ </group>
+
+ <group name="FrontFaceDirection">
+ <enum name="GL_CCW"/>
+ <enum name="GL_CW"/>
+ </group>
+
+ <group name="GetColorTableParameterPNameSGI">
+ <enum name="GL_COLOR_TABLE_ALPHA_SIZE_SGI"/>
+ <enum name="GL_COLOR_TABLE_BIAS_SGI"/>
+ <enum name="GL_COLOR_TABLE_BLUE_SIZE_SGI"/>
+ <enum name="GL_COLOR_TABLE_FORMAT_SGI"/>
+ <enum name="GL_COLOR_TABLE_GREEN_SIZE_SGI"/>
+ <enum name="GL_COLOR_TABLE_INTENSITY_SIZE_SGI"/>
+ <enum name="GL_COLOR_TABLE_LUMINANCE_SIZE_SGI"/>
+ <enum name="GL_COLOR_TABLE_RED_SIZE_SGI"/>
+ <enum name="GL_COLOR_TABLE_SCALE_SGI"/>
+ <enum name="GL_COLOR_TABLE_WIDTH_SGI"/>
+ </group>
+
+ <group name="GetConvolutionParameter">
+ <enum name="GL_CONVOLUTION_BORDER_MODE_EXT"/>
+ <enum name="GL_CONVOLUTION_FILTER_BIAS_EXT"/>
+ <enum name="GL_CONVOLUTION_FILTER_SCALE_EXT"/>
+ <enum name="GL_CONVOLUTION_FORMAT_EXT"/>
+ <enum name="GL_CONVOLUTION_HEIGHT_EXT"/>
+ <enum name="GL_CONVOLUTION_WIDTH_EXT"/>
+ <enum name="GL_MAX_CONVOLUTION_HEIGHT_EXT"/>
+ <enum name="GL_MAX_CONVOLUTION_WIDTH_EXT"/>
+ </group>
+
+ <group name="GetHistogramParameterPNameEXT">
+ <enum name="GL_HISTOGRAM_ALPHA_SIZE_EXT"/>
+ <enum name="GL_HISTOGRAM_BLUE_SIZE_EXT"/>
+ <enum name="GL_HISTOGRAM_FORMAT_EXT"/>
+ <enum name="GL_HISTOGRAM_GREEN_SIZE_EXT"/>
+ <enum name="GL_HISTOGRAM_LUMINANCE_SIZE_EXT"/>
+ <enum name="GL_HISTOGRAM_RED_SIZE_EXT"/>
+ <enum name="GL_HISTOGRAM_SINK_EXT"/>
+ <enum name="GL_HISTOGRAM_WIDTH_EXT"/>
+ </group>
+
+ <group name="GetMapQuery">
+ <enum name="GL_COEFF"/>
+ <enum name="GL_DOMAIN"/>
+ <enum name="GL_ORDER"/>
+ </group>
+
+ <group name="GetMinmaxParameterPNameEXT">
+ <enum name="GL_MINMAX_FORMAT"/>
+ <enum name="GL_MINMAX_FORMAT_EXT"/>
+ <enum name="GL_MINMAX_SINK"/>
+ <enum name="GL_MINMAX_SINK_EXT"/>
+ </group>
+
+ <group name="GetPixelMap">
+ <enum name="GL_PIXEL_MAP_A_TO_A"/>
+ <enum name="GL_PIXEL_MAP_B_TO_B"/>
+ <enum name="GL_PIXEL_MAP_G_TO_G"/>
+ <enum name="GL_PIXEL_MAP_I_TO_A"/>
+ <enum name="GL_PIXEL_MAP_I_TO_B"/>
+ <enum name="GL_PIXEL_MAP_I_TO_G"/>
+ <enum name="GL_PIXEL_MAP_I_TO_I"/>
+ <enum name="GL_PIXEL_MAP_I_TO_R"/>
+ <enum name="GL_PIXEL_MAP_R_TO_R"/>
+ <enum name="GL_PIXEL_MAP_S_TO_S"/>
+ </group>
+
+ <group name="GetPName">
+ <enum name="GL_ACCUM_ALPHA_BITS"/>
+ <enum name="GL_ACCUM_BLUE_BITS"/>
+ <enum name="GL_ACCUM_CLEAR_VALUE"/>
+ <enum name="GL_ACCUM_GREEN_BITS"/>
+ <enum name="GL_ACCUM_RED_BITS"/>
+ <enum name="GL_ALIASED_LINE_WIDTH_RANGE"/>
+ <enum name="GL_ALIASED_POINT_SIZE_RANGE"/>
+ <enum name="GL_ALPHA_BIAS"/>
+ <enum name="GL_ALPHA_BITS"/>
+ <enum name="GL_ALPHA_SCALE"/>
+ <enum name="GL_ALPHA_TEST"/>
+ <enum name="GL_ALPHA_TEST_FUNC"/>
+ <enum name="GL_ALPHA_TEST_FUNC_QCOM"/>
+ <enum name="GL_ALPHA_TEST_QCOM"/>
+ <enum name="GL_ALPHA_TEST_REF"/>
+ <enum name="GL_ALPHA_TEST_REF_QCOM"/>
+ <enum name="GL_ASYNC_DRAW_PIXELS_SGIX"/>
+ <enum name="GL_ASYNC_HISTOGRAM_SGIX"/>
+ <enum name="GL_ASYNC_MARKER_SGIX"/>
+ <enum name="GL_ASYNC_READ_PIXELS_SGIX"/>
+ <enum name="GL_ASYNC_TEX_IMAGE_SGIX"/>
+ <enum name="GL_ATTRIB_STACK_DEPTH"/>
+ <enum name="GL_AUTO_NORMAL"/>
+ <enum name="GL_AUX_BUFFERS"/>
+ <enum name="GL_BLEND"/>
+ <enum name="GL_BLEND_COLOR_EXT"/>
+ <enum name="GL_BLEND_DST"/>
+ <enum name="GL_BLEND_EQUATION_EXT"/>
+ <enum name="GL_BLEND_SRC"/>
+ <enum name="GL_BLUE_BIAS"/>
+ <enum name="GL_BLUE_BITS"/>
+ <enum name="GL_BLUE_SCALE"/>
+ <enum name="GL_CALLIGRAPHIC_FRAGMENT_SGIX"/>
+ <enum name="GL_CLIENT_ATTRIB_STACK_DEPTH"/>
+ <enum name="GL_CLIP_PLANE0"/>
+ <enum name="GL_CLIP_PLANE1"/>
+ <enum name="GL_CLIP_PLANE2"/>
+ <enum name="GL_CLIP_PLANE3"/>
+ <enum name="GL_CLIP_PLANE4"/>
+ <enum name="GL_CLIP_PLANE5"/>
+ <enum name="GL_COLOR_ARRAY"/>
+ <enum name="GL_COLOR_ARRAY_COUNT_EXT"/>
+ <enum name="GL_COLOR_ARRAY_SIZE"/>
+ <enum name="GL_COLOR_ARRAY_STRIDE"/>
+ <enum name="GL_COLOR_ARRAY_TYPE"/>
+ <enum name="GL_COLOR_CLEAR_VALUE"/>
+ <enum name="GL_COLOR_LOGIC_OP"/>
+ <enum name="GL_COLOR_MATERIAL"/>
+ <enum name="GL_COLOR_MATERIAL_FACE"/>
+ <enum name="GL_COLOR_MATERIAL_PARAMETER"/>
+ <enum name="GL_COLOR_MATRIX_SGI"/>
+ <enum name="GL_COLOR_MATRIX_STACK_DEPTH_SGI"/>
+ <enum name="GL_COLOR_TABLE_SGI"/>
+ <enum name="GL_COLOR_WRITEMASK"/>
+ <enum name="GL_CONVOLUTION_1D_EXT"/>
+ <enum name="GL_CONVOLUTION_2D_EXT"/>
+ <enum name="GL_CONVOLUTION_HINT_SGIX"/>
+ <enum name="GL_CULL_FACE"/>
+ <enum name="GL_CULL_FACE_MODE"/>
+ <enum name="GL_CURRENT_COLOR"/>
+ <enum name="GL_CURRENT_INDEX"/>
+ <enum name="GL_CURRENT_NORMAL"/>
+ <enum name="GL_CURRENT_RASTER_COLOR"/>
+ <enum name="GL_CURRENT_RASTER_DISTANCE"/>
+ <enum name="GL_CURRENT_RASTER_INDEX"/>
+ <enum name="GL_CURRENT_RASTER_POSITION"/>
+ <enum name="GL_CURRENT_RASTER_POSITION_VALID"/>
+ <enum name="GL_CURRENT_RASTER_TEXTURE_COORDS"/>
+ <enum name="GL_CURRENT_TEXTURE_COORDS"/>
+ <enum name="GL_DEFORMATIONS_MASK_SGIX"/>
+ <enum name="GL_DEPTH_BIAS"/>
+ <enum name="GL_DEPTH_BITS"/>
+ <enum name="GL_DEPTH_CLEAR_VALUE"/>
+ <enum name="GL_DEPTH_FUNC"/>
+ <enum name="GL_DEPTH_RANGE"/>
+ <enum name="GL_DEPTH_SCALE"/>
+ <enum name="GL_DEPTH_TEST"/>
+ <enum name="GL_DEPTH_WRITEMASK"/>
+ <enum name="GL_DETAIL_TEXTURE_2D_BINDING_SGIS"/>
+ <enum name="GL_DISTANCE_ATTENUATION_SGIS"/>
+ <enum name="GL_DITHER"/>
+ <enum name="GL_DOUBLEBUFFER"/>
+ <enum name="GL_DRAW_BUFFER"/>
+ <enum name="GL_DRAW_BUFFER_EXT"/>
+ <enum name="GL_EDGE_FLAG"/>
+ <enum name="GL_EDGE_FLAG_ARRAY"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_COUNT_EXT"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_STRIDE"/>
+ <enum name="GL_FEEDBACK_BUFFER_SIZE"/>
+ <enum name="GL_FEEDBACK_BUFFER_TYPE"/>
+ <enum name="GL_FOG"/>
+ <enum name="GL_FOG_COLOR"/>
+ <enum name="GL_FOG_DENSITY"/>
+ <enum name="GL_FOG_END"/>
+ <enum name="GL_FOG_FUNC_POINTS_SGIS"/>
+ <enum name="GL_FOG_HINT"/>
+ <enum name="GL_FOG_INDEX"/>
+ <enum name="GL_FOG_MODE"/>
+ <enum name="GL_FOG_OFFSET_SGIX"/>
+ <enum name="GL_FOG_OFFSET_VALUE_SGIX"/>
+ <enum name="GL_FOG_START"/>
+ <enum name="GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX"/>
+ <enum name="GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX"/>
+ <enum name="GL_FRAGMENT_COLOR_MATERIAL_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT0_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHTING_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX"/>
+ <enum name="GL_FRAMEZOOM_FACTOR_SGIX"/>
+ <enum name="GL_FRAMEZOOM_SGIX"/>
+ <enum name="GL_FRONT_FACE"/>
+ <enum name="GL_GENERATE_MIPMAP_HINT_SGIS"/>
+ <enum name="GL_GREEN_BIAS"/>
+ <enum name="GL_GREEN_BITS"/>
+ <enum name="GL_GREEN_SCALE"/>
+ <enum name="GL_HISTOGRAM_EXT"/>
+ <enum name="GL_INDEX_ARRAY"/>
+ <enum name="GL_INDEX_ARRAY_COUNT_EXT"/>
+ <enum name="GL_INDEX_ARRAY_STRIDE"/>
+ <enum name="GL_INDEX_ARRAY_TYPE"/>
+ <enum name="GL_INDEX_BITS"/>
+ <enum name="GL_INDEX_CLEAR_VALUE"/>
+ <enum name="GL_INDEX_LOGIC_OP"/>
+ <enum name="GL_INDEX_MODE"/>
+ <enum name="GL_INDEX_OFFSET"/>
+ <enum name="GL_INDEX_SHIFT"/>
+ <enum name="GL_INDEX_WRITEMASK"/>
+ <enum name="GL_INSTRUMENT_MEASUREMENTS_SGIX"/>
+ <enum name="GL_INTERLACE_SGIX"/>
+ <enum name="GL_IR_INSTRUMENT1_SGIX"/>
+ <enum name="GL_LIGHT0"/>
+ <enum name="GL_LIGHT1"/>
+ <enum name="GL_LIGHT2"/>
+ <enum name="GL_LIGHT3"/>
+ <enum name="GL_LIGHT4"/>
+ <enum name="GL_LIGHT5"/>
+ <enum name="GL_LIGHT6"/>
+ <enum name="GL_LIGHT7"/>
+ <enum name="GL_LIGHTING"/>
+ <enum name="GL_LIGHT_ENV_MODE_SGIX"/>
+ <enum name="GL_LIGHT_MODEL_AMBIENT"/>
+ <enum name="GL_LIGHT_MODEL_COLOR_CONTROL"/>
+ <enum name="GL_LIGHT_MODEL_LOCAL_VIEWER"/>
+ <enum name="GL_LIGHT_MODEL_TWO_SIDE"/>
+ <enum name="GL_LINE_SMOOTH"/>
+ <enum name="GL_LINE_SMOOTH_HINT"/>
+ <enum name="GL_LINE_STIPPLE"/>
+ <enum name="GL_LINE_STIPPLE_PATTERN"/>
+ <enum name="GL_LINE_STIPPLE_REPEAT"/>
+ <enum name="GL_LINE_WIDTH"/>
+ <enum name="GL_LINE_WIDTH_GRANULARITY"/>
+ <enum name="GL_LINE_WIDTH_RANGE"/>
+ <enum name="GL_LIST_BASE"/>
+ <enum name="GL_LIST_INDEX"/>
+ <enum name="GL_LIST_MODE"/>
+ <enum name="GL_LOGIC_OP"/>
+ <enum name="GL_LOGIC_OP_MODE"/>
+ <enum name="GL_MAP1_COLOR_4"/>
+ <enum name="GL_MAP1_GRID_DOMAIN"/>
+ <enum name="GL_MAP1_GRID_SEGMENTS"/>
+ <enum name="GL_MAP1_INDEX"/>
+ <enum name="GL_MAP1_NORMAL"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_1"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_2"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_3"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_4"/>
+ <enum name="GL_MAP1_VERTEX_3"/>
+ <enum name="GL_MAP1_VERTEX_4"/>
+ <enum name="GL_MAP2_COLOR_4"/>
+ <enum name="GL_MAP2_GRID_DOMAIN"/>
+ <enum name="GL_MAP2_GRID_SEGMENTS"/>
+ <enum name="GL_MAP2_INDEX"/>
+ <enum name="GL_MAP2_NORMAL"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_1"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_2"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_3"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_4"/>
+ <enum name="GL_MAP2_VERTEX_3"/>
+ <enum name="GL_MAP2_VERTEX_4"/>
+ <enum name="GL_MAP_COLOR"/>
+ <enum name="GL_MAP_STENCIL"/>
+ <enum name="GL_MATRIX_MODE"/>
+ <enum name="GL_MAX_3D_TEXTURE_SIZE_EXT"/>
+ <enum name="GL_MAX_4D_TEXTURE_SIZE_SGIS"/>
+ <enum name="GL_MAX_ACTIVE_LIGHTS_SGIX"/>
+ <enum name="GL_MAX_ASYNC_DRAW_PIXELS_SGIX"/>
+ <enum name="GL_MAX_ASYNC_HISTOGRAM_SGIX"/>
+ <enum name="GL_MAX_ASYNC_READ_PIXELS_SGIX"/>
+ <enum name="GL_MAX_ASYNC_TEX_IMAGE_SGIX"/>
+ <enum name="GL_MAX_ATTRIB_STACK_DEPTH"/>
+ <enum name="GL_MAX_CLIENT_ATTRIB_STACK_DEPTH"/>
+ <enum name="GL_MAX_CLIPMAP_DEPTH_SGIX"/>
+ <enum name="GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX"/>
+ <enum name="GL_MAX_CLIP_DISTANCES"/>
+ <enum name="GL_MAX_CLIP_PLANES"/>
+ <enum name="GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI"/>
+ <enum name="GL_MAX_EVAL_ORDER"/>
+ <enum name="GL_MAX_FOG_FUNC_POINTS_SGIS"/>
+ <enum name="GL_MAX_FRAGMENT_LIGHTS_SGIX"/>
+ <enum name="GL_MAX_FRAMEZOOM_FACTOR_SGIX"/>
+ <enum name="GL_MAX_LIGHTS"/>
+ <enum name="GL_MAX_LIST_NESTING"/>
+ <enum name="GL_MAX_MODELVIEW_STACK_DEPTH"/>
+ <enum name="GL_MAX_NAME_STACK_DEPTH"/>
+ <enum name="GL_MAX_PIXEL_MAP_TABLE"/>
+ <enum name="GL_MAX_PROJECTION_STACK_DEPTH"/>
+ <enum name="GL_MAX_TEXTURE_SIZE"/>
+ <enum name="GL_MAX_TEXTURE_STACK_DEPTH"/>
+ <enum name="GL_MAX_VIEWPORT_DIMS"/>
+ <enum name="GL_MINMAX_EXT"/>
+ <enum name="GL_MODELVIEW0_MATRIX_EXT"/>
+ <enum name="GL_MODELVIEW0_STACK_DEPTH_EXT"/>
+ <enum name="GL_MODELVIEW_MATRIX"/>
+ <enum name="GL_MODELVIEW_STACK_DEPTH"/>
+ <enum name="GL_MULTISAMPLE_SGIS"/>
+ <enum name="GL_NAME_STACK_DEPTH"/>
+ <enum name="GL_NORMALIZE"/>
+ <enum name="GL_NORMAL_ARRAY"/>
+ <enum name="GL_NORMAL_ARRAY_COUNT_EXT"/>
+ <enum name="GL_NORMAL_ARRAY_STRIDE"/>
+ <enum name="GL_NORMAL_ARRAY_TYPE"/>
+ <enum name="GL_PACK_ALIGNMENT"/>
+ <enum name="GL_PACK_CMYK_HINT_EXT"/>
+ <enum name="GL_PACK_IMAGE_DEPTH_SGIS"/>
+ <enum name="GL_PACK_IMAGE_HEIGHT_EXT"/>
+ <enum name="GL_PACK_LSB_FIRST"/>
+ <enum name="GL_PACK_RESAMPLE_SGIX"/>
+ <enum name="GL_PACK_ROW_LENGTH"/>
+ <enum name="GL_PACK_SKIP_IMAGES_EXT"/>
+ <enum name="GL_PACK_SKIP_PIXELS"/>
+ <enum name="GL_PACK_SKIP_ROWS"/>
+ <enum name="GL_PACK_SKIP_VOLUMES_SGIS"/>
+ <enum name="GL_PACK_SUBSAMPLE_RATE_SGIX"/>
+ <enum name="GL_PACK_SWAP_BYTES"/>
+ <enum name="GL_PERSPECTIVE_CORRECTION_HINT"/>
+ <enum name="GL_PIXEL_MAP_A_TO_A_SIZE"/>
+ <enum name="GL_PIXEL_MAP_B_TO_B_SIZE"/>
+ <enum name="GL_PIXEL_MAP_G_TO_G_SIZE"/>
+ <enum name="GL_PIXEL_MAP_I_TO_A_SIZE"/>
+ <enum name="GL_PIXEL_MAP_I_TO_B_SIZE"/>
+ <enum name="GL_PIXEL_MAP_I_TO_G_SIZE"/>
+ <enum name="GL_PIXEL_MAP_I_TO_I_SIZE"/>
+ <enum name="GL_PIXEL_MAP_I_TO_R_SIZE"/>
+ <enum name="GL_PIXEL_MAP_R_TO_R_SIZE"/>
+ <enum name="GL_PIXEL_MAP_S_TO_S_SIZE"/>
+ <enum name="GL_PIXEL_TEXTURE_SGIS"/>
+ <enum name="GL_PIXEL_TEX_GEN_MODE_SGIX"/>
+ <enum name="GL_PIXEL_TEX_GEN_SGIX"/>
+ <enum name="GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX"/>
+ <enum name="GL_PIXEL_TILE_CACHE_INCREMENT_SGIX"/>
+ <enum name="GL_PIXEL_TILE_CACHE_SIZE_SGIX"/>
+ <enum name="GL_PIXEL_TILE_GRID_DEPTH_SGIX"/>
+ <enum name="GL_PIXEL_TILE_GRID_HEIGHT_SGIX"/>
+ <enum name="GL_PIXEL_TILE_GRID_WIDTH_SGIX"/>
+ <enum name="GL_PIXEL_TILE_HEIGHT_SGIX"/>
+ <enum name="GL_PIXEL_TILE_WIDTH_SGIX"/>
+ <enum name="GL_POINT_FADE_THRESHOLD_SIZE_SGIS"/>
+ <enum name="GL_POINT_SIZE"/>
+ <enum name="GL_POINT_SIZE_GRANULARITY"/>
+ <enum name="GL_POINT_SIZE_MAX_SGIS"/>
+ <enum name="GL_POINT_SIZE_MIN_SGIS"/>
+ <enum name="GL_POINT_SIZE_RANGE"/>
+ <enum name="GL_POINT_SMOOTH"/>
+ <enum name="GL_POINT_SMOOTH_HINT"/>
+ <enum name="GL_POLYGON_MODE"/>
+ <enum name="GL_POLYGON_OFFSET_BIAS_EXT"/>
+ <enum name="GL_POLYGON_OFFSET_FACTOR"/>
+ <enum name="GL_POLYGON_OFFSET_FILL"/>
+ <enum name="GL_POLYGON_OFFSET_LINE"/>
+ <enum name="GL_POLYGON_OFFSET_POINT"/>
+ <enum name="GL_POLYGON_OFFSET_UNITS"/>
+ <enum name="GL_POLYGON_SMOOTH"/>
+ <enum name="GL_POLYGON_SMOOTH_HINT"/>
+ <enum name="GL_POLYGON_STIPPLE"/>
+ <enum name="GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_RED_BIAS_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_RED_SCALE_SGI"/>
+ <enum name="GL_POST_CONVOLUTION_ALPHA_BIAS_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_ALPHA_SCALE_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_BLUE_BIAS_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_BLUE_SCALE_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_COLOR_TABLE_SGI"/>
+ <enum name="GL_POST_CONVOLUTION_GREEN_BIAS_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_GREEN_SCALE_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_RED_BIAS_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_RED_SCALE_EXT"/>
+ <enum name="GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX"/>
+ <enum name="GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX"/>
+ <enum name="GL_PROJECTION_MATRIX"/>
+ <enum name="GL_PROJECTION_STACK_DEPTH"/>
+ <enum name="GL_READ_BUFFER"/>
+ <enum name="GL_READ_BUFFER_EXT"/>
+ <enum name="GL_READ_BUFFER_NV"/>
+ <enum name="GL_RED_BIAS"/>
+ <enum name="GL_RED_BITS"/>
+ <enum name="GL_RED_SCALE"/>
+ <enum name="GL_REFERENCE_PLANE_EQUATION_SGIX"/>
+ <enum name="GL_REFERENCE_PLANE_SGIX"/>
+ <enum name="GL_RENDER_MODE"/>
+ <enum name="GL_RESCALE_NORMAL_EXT"/>
+ <enum name="GL_RGBA_MODE"/>
+ <enum name="GL_SAMPLES_SGIS"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_MASK_SGIS"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_ONE_SGIS"/>
+ <enum name="GL_SAMPLE_BUFFERS_SGIS"/>
+ <enum name="GL_SAMPLE_MASK_INVERT_SGIS"/>
+ <enum name="GL_SAMPLE_MASK_SGIS"/>
+ <enum name="GL_SAMPLE_MASK_VALUE_SGIS"/>
+ <enum name="GL_SAMPLE_PATTERN_SGIS"/>
+ <enum name="GL_SCISSOR_BOX"/>
+ <enum name="GL_SCISSOR_TEST"/>
+ <enum name="GL_SELECTION_BUFFER_SIZE"/>
+ <enum name="GL_SEPARABLE_2D_EXT"/>
+ <enum name="GL_SHADE_MODEL"/>
+ <enum name="GL_SHARED_TEXTURE_PALETTE_EXT"/>
+ <enum name="GL_SMOOTH_LINE_WIDTH_GRANULARITY"/>
+ <enum name="GL_SMOOTH_LINE_WIDTH_RANGE"/>
+ <enum name="GL_SMOOTH_POINT_SIZE_GRANULARITY"/>
+ <enum name="GL_SMOOTH_POINT_SIZE_RANGE"/>
+ <enum name="GL_SPRITE_AXIS_SGIX"/>
+ <enum name="GL_SPRITE_MODE_SGIX"/>
+ <enum name="GL_SPRITE_SGIX"/>
+ <enum name="GL_SPRITE_TRANSLATION_SGIX"/>
+ <enum name="GL_STENCIL_BITS"/>
+ <enum name="GL_STENCIL_CLEAR_VALUE"/>
+ <enum name="GL_STENCIL_FAIL"/>
+ <enum name="GL_STENCIL_FUNC"/>
+ <enum name="GL_STENCIL_PASS_DEPTH_FAIL"/>
+ <enum name="GL_STENCIL_PASS_DEPTH_PASS"/>
+ <enum name="GL_STENCIL_REF"/>
+ <enum name="GL_STENCIL_TEST"/>
+ <enum name="GL_STENCIL_VALUE_MASK"/>
+ <enum name="GL_STENCIL_WRITEMASK"/>
+ <enum name="GL_STEREO"/>
+ <enum name="GL_SUBPIXEL_BITS"/>
+ <enum name="GL_TEXTURE_1D"/>
+ <enum name="GL_TEXTURE_2D"/>
+ <enum name="GL_TEXTURE_3D_BINDING_EXT"/>
+ <enum name="GL_TEXTURE_3D_EXT"/>
+ <enum name="GL_TEXTURE_4D_BINDING_SGIS"/>
+ <enum name="GL_TEXTURE_4D_SGIS"/>
+ <enum name="GL_TEXTURE_BINDING_1D"/>
+ <enum name="GL_TEXTURE_BINDING_2D"/>
+ <enum name="GL_TEXTURE_BINDING_3D"/>
+ <enum name="GL_TEXTURE_COLOR_TABLE_SGI"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_COUNT_EXT"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_SIZE"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_STRIDE"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_TYPE"/>
+ <enum name="GL_TEXTURE_GEN_Q"/>
+ <enum name="GL_TEXTURE_GEN_R"/>
+ <enum name="GL_TEXTURE_GEN_S"/>
+ <enum name="GL_TEXTURE_GEN_T"/>
+ <enum name="GL_TEXTURE_MATRIX"/>
+ <enum name="GL_TEXTURE_STACK_DEPTH"/>
+ <enum name="GL_UNPACK_ALIGNMENT"/>
+ <enum name="GL_UNPACK_CMYK_HINT_EXT"/>
+ <enum name="GL_UNPACK_IMAGE_DEPTH_SGIS"/>
+ <enum name="GL_UNPACK_IMAGE_HEIGHT_EXT"/>
+ <enum name="GL_UNPACK_LSB_FIRST"/>
+ <enum name="GL_UNPACK_RESAMPLE_SGIX"/>
+ <enum name="GL_UNPACK_ROW_LENGTH"/>
+ <enum name="GL_UNPACK_SKIP_IMAGES_EXT"/>
+ <enum name="GL_UNPACK_SKIP_PIXELS"/>
+ <enum name="GL_UNPACK_SKIP_ROWS"/>
+ <enum name="GL_UNPACK_SKIP_VOLUMES_SGIS"/>
+ <enum name="GL_UNPACK_SUBSAMPLE_RATE_SGIX"/>
+ <enum name="GL_UNPACK_SWAP_BYTES"/>
+ <enum name="GL_VERTEX_ARRAY"/>
+ <enum name="GL_VERTEX_ARRAY_COUNT_EXT"/>
+ <enum name="GL_VERTEX_ARRAY_SIZE"/>
+ <enum name="GL_VERTEX_ARRAY_STRIDE"/>
+ <enum name="GL_VERTEX_ARRAY_TYPE"/>
+ <enum name="GL_VERTEX_PRECLIP_HINT_SGIX"/>
+ <enum name="GL_VERTEX_PRECLIP_SGIX"/>
+ <enum name="GL_VIEWPORT"/>
+ <enum name="GL_ZOOM_X"/>
+ <enum name="GL_ZOOM_Y"/>
+ </group>
+
+ <group name="GetPointervPName">
+ <enum name="GL_COLOR_ARRAY_POINTER"/>
+ <enum name="GL_COLOR_ARRAY_POINTER_EXT"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_POINTER"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_POINTER_EXT"/>
+ <enum name="GL_FEEDBACK_BUFFER_POINTER"/>
+ <enum name="GL_INDEX_ARRAY_POINTER"/>
+ <enum name="GL_INDEX_ARRAY_POINTER_EXT"/>
+ <enum name="GL_INSTRUMENT_BUFFER_POINTER_SGIX"/>
+ <enum name="GL_NORMAL_ARRAY_POINTER"/>
+ <enum name="GL_NORMAL_ARRAY_POINTER_EXT"/>
+ <enum name="GL_SELECTION_BUFFER_POINTER"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_POINTER"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_POINTER_EXT"/>
+ <enum name="GL_VERTEX_ARRAY_POINTER"/>
+ <enum name="GL_VERTEX_ARRAY_POINTER_EXT"/>
+ </group>
+
+ <group name="GetTextureParameter">
+ <enum name="GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS"/>
+ <enum name="GL_DETAIL_TEXTURE_LEVEL_SGIS"/>
+ <enum name="GL_DETAIL_TEXTURE_MODE_SGIS"/>
+ <enum name="GL_DUAL_TEXTURE_SELECT_SGIS"/>
+ <enum name="GL_GENERATE_MIPMAP_SGIS"/>
+ <enum name="GL_POST_TEXTURE_FILTER_BIAS_SGIX"/>
+ <enum name="GL_POST_TEXTURE_FILTER_SCALE_SGIX"/>
+ <enum name="GL_QUAD_TEXTURE_SELECT_SGIS"/>
+ <enum name="GL_SHADOW_AMBIENT_SGIX"/>
+ <enum name="GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS"/>
+ <enum name="GL_TEXTURE_4DSIZE_SGIS"/>
+ <enum name="GL_TEXTURE_ALPHA_SIZE"/>
+ <enum name="GL_TEXTURE_BASE_LEVEL_SGIS"/>
+ <enum name="GL_TEXTURE_BLUE_SIZE"/>
+ <enum name="GL_TEXTURE_BORDER"/>
+ <enum name="GL_TEXTURE_BORDER_COLOR"/>
+ <enum name="GL_TEXTURE_BORDER_COLOR_NV"/>
+ <enum name="GL_TEXTURE_CLIPMAP_CENTER_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_DEPTH_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_FRAME_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_OFFSET_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX"/>
+ <enum name="GL_TEXTURE_COMPARE_OPERATOR_SGIX"/>
+ <enum name="GL_TEXTURE_COMPARE_SGIX"/>
+ <enum name="GL_TEXTURE_COMPONENTS"/>
+ <enum name="GL_TEXTURE_DEPTH_EXT"/>
+ <enum name="GL_TEXTURE_FILTER4_SIZE_SGIS"/>
+ <enum name="GL_TEXTURE_GEQUAL_R_SGIX"/>
+ <enum name="GL_TEXTURE_GREEN_SIZE"/>
+ <enum name="GL_TEXTURE_HEIGHT"/>
+ <enum name="GL_TEXTURE_INTENSITY_SIZE"/>
+ <enum name="GL_TEXTURE_INTERNAL_FORMAT"/>
+ <enum name="GL_TEXTURE_LEQUAL_R_SGIX"/>
+ <enum name="GL_TEXTURE_LOD_BIAS_R_SGIX"/>
+ <enum name="GL_TEXTURE_LOD_BIAS_S_SGIX"/>
+ <enum name="GL_TEXTURE_LOD_BIAS_T_SGIX"/>
+ <enum name="GL_TEXTURE_LUMINANCE_SIZE"/>
+ <enum name="GL_TEXTURE_MAG_FILTER"/>
+ <enum name="GL_TEXTURE_MAX_CLAMP_R_SGIX"/>
+ <enum name="GL_TEXTURE_MAX_CLAMP_S_SGIX"/>
+ <enum name="GL_TEXTURE_MAX_CLAMP_T_SGIX"/>
+ <enum name="GL_TEXTURE_MAX_LEVEL_SGIS"/>
+ <enum name="GL_TEXTURE_MAX_LOD_SGIS"/>
+ <enum name="GL_TEXTURE_MIN_FILTER"/>
+ <enum name="GL_TEXTURE_MIN_LOD_SGIS"/>
+ <enum name="GL_TEXTURE_PRIORITY"/>
+ <enum name="GL_TEXTURE_RED_SIZE"/>
+ <enum name="GL_TEXTURE_RESIDENT"/>
+ <enum name="GL_TEXTURE_WIDTH"/>
+ <enum name="GL_TEXTURE_WRAP_Q_SGIS"/>
+ <enum name="GL_TEXTURE_WRAP_R_EXT"/>
+ <enum name="GL_TEXTURE_WRAP_S"/>
+ <enum name="GL_TEXTURE_WRAP_T"/>
+ </group>
+
+ <group name="HintMode">
+ <enum name="GL_DONT_CARE"/>
+ <enum name="GL_FASTEST"/>
+ <enum name="GL_NICEST"/>
+ </group>
+
+ <group name="HintTarget">
+ <enum name="GL_ALLOW_DRAW_FRG_HINT_PGI"/>
+ <enum name="GL_ALLOW_DRAW_MEM_HINT_PGI"/>
+ <enum name="GL_ALLOW_DRAW_OBJ_HINT_PGI"/>
+ <enum name="GL_ALLOW_DRAW_WIN_HINT_PGI"/>
+ <enum name="GL_ALWAYS_FAST_HINT_PGI"/>
+ <enum name="GL_ALWAYS_SOFT_HINT_PGI"/>
+ <enum name="GL_BACK_NORMALS_HINT_PGI"/>
+ <enum name="GL_BINNING_CONTROL_HINT_QCOM"/>
+ <enum name="GL_CLIP_FAR_HINT_PGI"/>
+ <enum name="GL_CLIP_NEAR_HINT_PGI"/>
+ <enum name="GL_CLIP_VOLUME_CLIPPING_HINT_EXT"/>
+ <enum name="GL_CONSERVE_MEMORY_HINT_PGI"/>
+ <enum name="GL_CONVOLUTION_HINT_SGIX"/>
+ <enum name="GL_FOG_HINT"/>
+ <enum name="GL_FRAGMENT_SHADER_DERIVATIVE_HINT"/>
+ <enum name="GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB"/>
+ <enum name="GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES"/>
+ <enum name="GL_FULL_STIPPLE_HINT_PGI"/>
+ <enum name="GL_GENERATE_MIPMAP_HINT"/>
+ <enum name="GL_GENERATE_MIPMAP_HINT_SGIS"/>
+ <enum name="GL_LINE_QUALITY_HINT_SGIX"/>
+ <enum name="GL_LINE_SMOOTH_HINT"/>
+ <enum name="GL_MATERIAL_SIDE_HINT_PGI"/>
+ <enum name="GL_MAX_VERTEX_HINT_PGI"/>
+ <enum name="GL_MULTISAMPLE_FILTER_HINT_NV"/>
+ <enum name="GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI"/>
+ <enum name="GL_NATIVE_GRAPHICS_END_HINT_PGI"/>
+ <enum name="GL_PACK_CMYK_HINT_EXT"/>
+ <enum name="GL_PERSPECTIVE_CORRECTION_HINT"/>
+ <enum name="GL_PHONG_HINT_WIN"/>
+ <enum name="GL_POINT_SMOOTH_HINT"/>
+ <enum name="GL_POLYGON_SMOOTH_HINT"/>
+ <enum name="GL_PREFER_DOUBLEBUFFER_HINT_PGI"/>
+ <enum name="GL_PROGRAM_BINARY_RETRIEVABLE_HINT"/>
+ <enum name="GL_RECLAIM_MEMORY_HINT_PGI"/>
+ <enum name="GL_SCALEBIAS_HINT_SGIX"/>
+ <enum name="GL_STRICT_DEPTHFUNC_HINT_PGI"/>
+ <enum name="GL_STRICT_LIGHTING_HINT_PGI"/>
+ <enum name="GL_STRICT_SCISSOR_HINT_PGI"/>
+ <enum name="GL_TEXTURE_COMPRESSION_HINT"/>
+ <enum name="GL_TEXTURE_COMPRESSION_HINT_ARB"/>
+ <enum name="GL_TEXTURE_MULTI_BUFFER_HINT_SGIX"/>
+ <enum name="GL_TEXTURE_STORAGE_HINT_APPLE"/>
+ <enum name="GL_TRANSFORM_HINT_APPLE"/>
+ <enum name="GL_UNPACK_CMYK_HINT_EXT"/>
+ <enum name="GL_VERTEX_ARRAY_STORAGE_HINT_APPLE"/>
+ <enum name="GL_VERTEX_CONSISTENT_HINT_PGI"/>
+ <enum name="GL_VERTEX_DATA_HINT_PGI"/>
+ <enum name="GL_VERTEX_PRECLIP_HINT_SGIX"/>
+ <enum name="GL_VERTEX_PRECLIP_SGIX"/>
+ <enum name="GL_WIDE_LINE_HINT_PGI"/>
+ </group>
+
+ <group name="HistogramTargetEXT">
+ <enum name="GL_HISTOGRAM"/>
+ <enum name="GL_HISTOGRAM_EXT"/>
+ <enum name="GL_PROXY_HISTOGRAM"/>
+ <enum name="GL_PROXY_HISTOGRAM_EXT"/>
+ </group>
+
+ <group name="IndexPointerType">
+ <enum name="GL_DOUBLE"/>
+ <enum name="GL_FLOAT"/>
+ <enum name="GL_INT"/>
+ <enum name="GL_SHORT"/>
+ </group>
+
+ <group name="InterleavedArrayFormat">
+ <enum name="GL_C3F_V3F"/>
+ <enum name="GL_C4F_N3F_V3F"/>
+ <enum name="GL_C4UB_V2F"/>
+ <enum name="GL_C4UB_V3F"/>
+ <enum name="GL_N3F_V3F"/>
+ <enum name="GL_T2F_C3F_V3F"/>
+ <enum name="GL_T2F_C4F_N3F_V3F"/>
+ <enum name="GL_T2F_C4UB_V3F"/>
+ <enum name="GL_T2F_N3F_V3F"/>
+ <enum name="GL_T2F_V3F"/>
+ <enum name="GL_T4F_C4F_N3F_V4F"/>
+ <enum name="GL_T4F_V4F"/>
+ <enum name="GL_V2F"/>
+ <enum name="GL_V3F"/>
+ </group>
+
+ <group name="LightEnvModeSGIX">
+ <enum name="GL_ADD"/>
+ <enum name="GL_MODULATE"/>
+ <enum name="GL_REPLACE"/>
+ </group>
+
+ <group name="LightEnvParameterSGIX">
+ <enum name="GL_LIGHT_ENV_MODE_SGIX"/>
+ </group>
+
+ <group name="LightModelColorControl">
+ <enum name="GL_SEPARATE_SPECULAR_COLOR"/>
+ <enum name="GL_SEPARATE_SPECULAR_COLOR_EXT"/>
+ <enum name="GL_SINGLE_COLOR"/>
+ <enum name="GL_SINGLE_COLOR_EXT"/>
+ </group>
+
+ <group name="LightModelParameter">
+ <enum name="GL_LIGHT_MODEL_AMBIENT"/>
+ <enum name="GL_LIGHT_MODEL_COLOR_CONTROL"/>
+ <enum name="GL_LIGHT_MODEL_COLOR_CONTROL_EXT"/>
+ <enum name="GL_LIGHT_MODEL_LOCAL_VIEWER"/>
+ <enum name="GL_LIGHT_MODEL_TWO_SIDE"/>
+ </group>
+
+ <group name="LightName">
+ <enum name="GL_FRAGMENT_LIGHT0_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT1_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT2_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT3_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT4_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT5_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT6_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT7_SGIX"/>
+ <enum name="GL_LIGHT0"/>
+ <enum name="GL_LIGHT1"/>
+ <enum name="GL_LIGHT2"/>
+ <enum name="GL_LIGHT3"/>
+ <enum name="GL_LIGHT4"/>
+ <enum name="GL_LIGHT5"/>
+ <enum name="GL_LIGHT6"/>
+ <enum name="GL_LIGHT7"/>
+ </group>
+
+ <group name="LightParameter">
+ <enum name="GL_AMBIENT"/>
+ <enum name="GL_CONSTANT_ATTENUATION"/>
+ <enum name="GL_DIFFUSE"/>
+ <enum name="GL_LINEAR_ATTENUATION"/>
+ <enum name="GL_POSITION"/>
+ <enum name="GL_QUADRATIC_ATTENUATION"/>
+ <enum name="GL_SPECULAR"/>
+ <enum name="GL_SPOT_CUTOFF"/>
+ <enum name="GL_SPOT_DIRECTION"/>
+ <enum name="GL_SPOT_EXPONENT"/>
+ </group>
+
+ <group name="ListMode">
+ <enum name="GL_COMPILE"/>
+ <enum name="GL_COMPILE_AND_EXECUTE"/>
+ </group>
+
+ <group name="ListNameType">
+ <enum name="GL_2_BYTES"/>
+ <enum name="GL_3_BYTES"/>
+ <enum name="GL_4_BYTES"/>
+ <enum name="GL_BYTE"/>
+ <enum name="GL_FLOAT"/>
+ <enum name="GL_INT"/>
+ <enum name="GL_SHORT"/>
+ <enum name="GL_UNSIGNED_BYTE"/>
+ <enum name="GL_UNSIGNED_INT"/>
+ <enum name="GL_UNSIGNED_SHORT"/>
+ </group>
+
+ <group name="ListParameterName">
+ <enum name="GL_LIST_PRIORITY_SGIX"/>
+ </group>
+
+ <group name="LogicOp">
+ <enum name="GL_AND"/>
+ <enum name="GL_AND_INVERTED"/>
+ <enum name="GL_AND_REVERSE"/>
+ <enum name="GL_CLEAR"/>
+ <enum name="GL_COPY"/>
+ <enum name="GL_COPY_INVERTED"/>
+ <enum name="GL_EQUIV"/>
+ <enum name="GL_INVERT"/>
+ <enum name="GL_NAND"/>
+ <enum name="GL_NOOP"/>
+ <enum name="GL_NOR"/>
+ <enum name="GL_OR"/>
+ <enum name="GL_OR_INVERTED"/>
+ <enum name="GL_OR_REVERSE"/>
+ <enum name="GL_SET"/>
+ <enum name="GL_XOR"/>
+ </group>
+
+ <group name="MapBufferUsageMask">
+ <enum name="GL_MAP_FLUSH_EXPLICIT_BIT"/>
+ <enum name="GL_MAP_FLUSH_EXPLICIT_BIT_EXT"/>
+ <enum name="GL_MAP_INVALIDATE_BUFFER_BIT"/>
+ <enum name="GL_MAP_INVALIDATE_BUFFER_BIT_EXT"/>
+ <enum name="GL_MAP_INVALIDATE_RANGE_BIT"/>
+ <enum name="GL_MAP_INVALIDATE_RANGE_BIT_EXT"/>
+ <enum name="GL_MAP_READ_BIT"/>
+ <enum name="GL_MAP_READ_BIT_EXT"/>
+ <enum name="GL_MAP_UNSYNCHRONIZED_BIT"/>
+ <enum name="GL_MAP_UNSYNCHRONIZED_BIT_EXT"/>
+ <enum name="GL_MAP_WRITE_BIT"/>
+ <enum name="GL_MAP_WRITE_BIT_EXT"/>
+ </group>
+
+ <group name="MapTarget">
+ <enum name="GL_GEOMETRY_DEFORMATION_SGIX"/>
+ <enum name="GL_MAP1_COLOR_4"/>
+ <enum name="GL_MAP1_INDEX"/>
+ <enum name="GL_MAP1_NORMAL"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_1"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_2"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_3"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_4"/>
+ <enum name="GL_MAP1_VERTEX_3"/>
+ <enum name="GL_MAP1_VERTEX_4"/>
+ <enum name="GL_MAP2_COLOR_4"/>
+ <enum name="GL_MAP2_INDEX"/>
+ <enum name="GL_MAP2_NORMAL"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_1"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_2"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_3"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_4"/>
+ <enum name="GL_MAP2_VERTEX_3"/>
+ <enum name="GL_MAP2_VERTEX_4"/>
+ <enum name="GL_TEXTURE_DEFORMATION_SGIX"/>
+ </group>
+
+ <group name="MapTextureFormatINTEL">
+ <enum name="GL_LAYOUT_DEFAULT_INTEL"/>
+ <enum name="GL_LAYOUT_LINEAR_CPU_CACHED_INTEL"/>
+ <enum name="GL_LAYOUT_LINEAR_INTEL"/>
+ </group>
+
+ <group name="MaterialFace">
+ <enum name="GL_BACK"/>
+ <enum name="GL_FRONT"/>
+ <enum name="GL_FRONT_AND_BACK"/>
+ </group>
+
+ <group name="MaterialParameter">
+ <enum name="GL_AMBIENT"/>
+ <enum name="GL_AMBIENT_AND_DIFFUSE"/>
+ <enum name="GL_COLOR_INDEXES"/>
+ <enum name="GL_DIFFUSE"/>
+ <enum name="GL_EMISSION"/>
+ <enum name="GL_SHININESS"/>
+ <enum name="GL_SPECULAR"/>
+ </group>
+
+ <group name="MatrixMode">
+ <enum name="GL_MODELVIEW"/>
+ <enum name="GL_MODELVIEW0_EXT"/>
+ <enum name="GL_PROJECTION"/>
+ <enum name="GL_TEXTURE"/>
+ </group>
+
+ <group name="MemoryBarrierMask">
+ <enum name="GL_ALL_BARRIER_BITS"/>
+ <enum name="GL_ALL_BARRIER_BITS_EXT"/>
+ <enum name="GL_ATOMIC_COUNTER_BARRIER_BIT"/>
+ <enum name="GL_ATOMIC_COUNTER_BARRIER_BIT_EXT"/>
+ <enum name="GL_BUFFER_UPDATE_BARRIER_BIT"/>
+ <enum name="GL_BUFFER_UPDATE_BARRIER_BIT_EXT"/>
+ <enum name="GL_COMMAND_BARRIER_BIT"/>
+ <enum name="GL_COMMAND_BARRIER_BIT_EXT"/>
+ <enum name="GL_ELEMENT_ARRAY_BARRIER_BIT"/>
+ <enum name="GL_ELEMENT_ARRAY_BARRIER_BIT_EXT"/>
+ <enum name="GL_FRAMEBUFFER_BARRIER_BIT"/>
+ <enum name="GL_FRAMEBUFFER_BARRIER_BIT_EXT"/>
+ <enum name="GL_PIXEL_BUFFER_BARRIER_BIT"/>
+ <enum name="GL_PIXEL_BUFFER_BARRIER_BIT_EXT"/>
+ <enum name="GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV"/>
+ <enum name="GL_SHADER_IMAGE_ACCESS_BARRIER_BIT"/>
+ <enum name="GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT"/>
+ <enum name="GL_SHADER_STORAGE_BARRIER_BIT"/>
+ <enum name="GL_TEXTURE_FETCH_BARRIER_BIT"/>
+ <enum name="GL_TEXTURE_FETCH_BARRIER_BIT_EXT"/>
+ <enum name="GL_TEXTURE_UPDATE_BARRIER_BIT"/>
+ <enum name="GL_TEXTURE_UPDATE_BARRIER_BIT_EXT"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BARRIER_BIT"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT"/>
+ <enum name="GL_UNIFORM_BARRIER_BIT"/>
+ <enum name="GL_UNIFORM_BARRIER_BIT_EXT"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT"/>
+ </group>
+
+ <group name="MeshMode1">
+ <enum name="GL_LINE"/>
+ <enum name="GL_POINT"/>
+ </group>
+
+ <group name="MeshMode2">
+ <enum name="GL_FILL"/>
+ <enum name="GL_LINE"/>
+ <enum name="GL_POINT"/>
+ </group>
+
+ <group name="MinmaxTargetEXT">
+ <enum name="GL_MINMAX"/>
+ <enum name="GL_MINMAX_EXT"/>
+ </group>
+
+ <group name="NormalPointerType">
+ <enum name="GL_BYTE"/>
+ <enum name="GL_DOUBLE"/>
+ <enum name="GL_FLOAT"/>
+ <enum name="GL_INT"/>
+ <enum name="GL_SHORT"/>
+ </group>
+
+ <group name="PixelCopyType">
+ <enum name="GL_COLOR"/>
+ <enum name="GL_COLOR_EXT"/>
+ <enum name="GL_DEPTH"/>
+ <enum name="GL_DEPTH_EXT"/>
+ <enum name="GL_STENCIL"/>
+ <enum name="GL_STENCIL_EXT"/>
+ </group>
+
+ <group name="PixelFormat">
+ <enum name="GL_ABGR_EXT"/>
+ <enum name="GL_ALPHA"/>
+ <enum name="GL_BLUE"/>
+ <enum name="GL_CMYKA_EXT"/>
+ <enum name="GL_CMYK_EXT"/>
+ <enum name="GL_COLOR_INDEX"/>
+ <enum name="GL_DEPTH_COMPONENT"/>
+ <enum name="GL_GREEN"/>
+ <enum name="GL_LUMINANCE"/>
+ <enum name="GL_LUMINANCE_ALPHA"/>
+ <enum name="GL_RED"/>
+ <enum name="GL_RED_EXT"/>
+ <enum name="GL_RGB"/>
+ <enum name="GL_RGBA"/>
+ <enum name="GL_STENCIL_INDEX"/>
+ <enum name="GL_UNSIGNED_INT"/>
+ <enum name="GL_UNSIGNED_SHORT"/>
+ <enum name="GL_YCRCB_422_SGIX"/>
+ <enum name="GL_YCRCB_444_SGIX"/>
+ </group>
+
+ <group name="InternalFormat" comment="Was PixelInternalFormat">
+ <enum name="GL_ALPHA12"/>
+ <enum name="GL_ALPHA16"/>
+ <enum name="GL_ALPHA16_ICC_SGIX"/>
+ <enum name="GL_ALPHA4"/>
+ <enum name="GL_ALPHA8"/>
+ <enum name="GL_ALPHA_ICC_SGIX"/>
+ <enum name="GL_DEPTH_COMPONENT16_SGIX"/>
+ <enum name="GL_DEPTH_COMPONENT24_SGIX"/>
+ <enum name="GL_DEPTH_COMPONENT32_SGIX"/>
+ <enum name="GL_DUAL_ALPHA12_SGIS"/>
+ <enum name="GL_DUAL_ALPHA16_SGIS"/>
+ <enum name="GL_DUAL_ALPHA4_SGIS"/>
+ <enum name="GL_DUAL_ALPHA8_SGIS"/>
+ <enum name="GL_DUAL_INTENSITY12_SGIS"/>
+ <enum name="GL_DUAL_INTENSITY16_SGIS"/>
+ <enum name="GL_DUAL_INTENSITY4_SGIS"/>
+ <enum name="GL_DUAL_INTENSITY8_SGIS"/>
+ <enum name="GL_DUAL_LUMINANCE12_SGIS"/>
+ <enum name="GL_DUAL_LUMINANCE16_SGIS"/>
+ <enum name="GL_DUAL_LUMINANCE4_SGIS"/>
+ <enum name="GL_DUAL_LUMINANCE8_SGIS"/>
+ <enum name="GL_DUAL_LUMINANCE_ALPHA4_SGIS"/>
+ <enum name="GL_DUAL_LUMINANCE_ALPHA8_SGIS"/>
+ <enum name="GL_INTENSITY"/>
+ <enum name="GL_INTENSITY12"/>
+ <enum name="GL_INTENSITY16"/>
+ <enum name="GL_INTENSITY16_ICC_SGIX"/>
+ <enum name="GL_INTENSITY4"/>
+ <enum name="GL_INTENSITY8"/>
+ <enum name="GL_INTENSITY_ICC_SGIX"/>
+ <enum name="GL_LUMINANCE12"/>
+ <enum name="GL_LUMINANCE12_ALPHA12"/>
+ <enum name="GL_LUMINANCE12_ALPHA4"/>
+ <enum name="GL_LUMINANCE16"/>
+ <enum name="GL_LUMINANCE16_ALPHA16"/>
+ <enum name="GL_LUMINANCE16_ALPHA8_ICC_SGIX"/>
+ <enum name="GL_LUMINANCE16_ICC_SGIX"/>
+ <enum name="GL_LUMINANCE4"/>
+ <enum name="GL_LUMINANCE4_ALPHA4"/>
+ <enum name="GL_LUMINANCE6_ALPHA2"/>
+ <enum name="GL_LUMINANCE8"/>
+ <enum name="GL_LUMINANCE8_ALPHA8"/>
+ <enum name="GL_LUMINANCE_ALPHA_ICC_SGIX"/>
+ <enum name="GL_LUMINANCE_ICC_SGIX"/>
+ <enum name="GL_QUAD_ALPHA4_SGIS"/>
+ <enum name="GL_QUAD_ALPHA8_SGIS"/>
+ <enum name="GL_QUAD_INTENSITY4_SGIS"/>
+ <enum name="GL_QUAD_INTENSITY8_SGIS"/>
+ <enum name="GL_QUAD_LUMINANCE4_SGIS"/>
+ <enum name="GL_QUAD_LUMINANCE8_SGIS"/>
+ <enum name="GL_R3_G3_B2"/>
+ <enum name="GL_R5_G6_B5_A8_ICC_SGIX"/>
+ <enum name="GL_R5_G6_B5_ICC_SGIX"/>
+ <enum name="GL_RGB10"/>
+ <enum name="GL_RGB10_A2"/>
+ <enum name="GL_RGB12"/>
+ <enum name="GL_RGB16"/>
+ <enum name="GL_RGB2_EXT"/>
+ <enum name="GL_RGB4"/>
+ <enum name="GL_RGB5"/>
+ <enum name="GL_RGB5_A1"/>
+ <enum name="GL_RGB8"/>
+ <enum name="GL_RGBA12"/>
+ <enum name="GL_RGBA16"/>
+ <enum name="GL_RGBA2"/>
+ <enum name="GL_RGBA4"/>
+ <enum name="GL_RGBA8"/>
+ <enum name="GL_RGBA_ICC_SGIX"/>
+ <enum name="GL_RGB_ICC_SGIX"/>
+ </group>
+
+ <group name="PixelMap">
+ <enum name="GL_PIXEL_MAP_A_TO_A"/>
+ <enum name="GL_PIXEL_MAP_B_TO_B"/>
+ <enum name="GL_PIXEL_MAP_G_TO_G"/>
+ <enum name="GL_PIXEL_MAP_I_TO_A"/>
+ <enum name="GL_PIXEL_MAP_I_TO_B"/>
+ <enum name="GL_PIXEL_MAP_I_TO_G"/>
+ <enum name="GL_PIXEL_MAP_I_TO_I"/>
+ <enum name="GL_PIXEL_MAP_I_TO_R"/>
+ <enum name="GL_PIXEL_MAP_R_TO_R"/>
+ <enum name="GL_PIXEL_MAP_S_TO_S"/>
+ </group>
+
+ <group name="PixelStoreParameter">
+ <enum name="GL_PACK_ALIGNMENT"/>
+ <enum name="GL_PACK_IMAGE_DEPTH_SGIS"/>
+ <enum name="GL_PACK_IMAGE_HEIGHT"/>
+ <enum name="GL_PACK_IMAGE_HEIGHT_EXT"/>
+ <enum name="GL_PACK_LSB_FIRST"/>
+ <enum name="GL_PACK_RESAMPLE_OML"/>
+ <enum name="GL_PACK_RESAMPLE_SGIX"/>
+ <enum name="GL_PACK_ROW_LENGTH"/>
+ <enum name="GL_PACK_SKIP_IMAGES"/>
+ <enum name="GL_PACK_SKIP_IMAGES_EXT"/>
+ <enum name="GL_PACK_SKIP_PIXELS"/>
+ <enum name="GL_PACK_SKIP_ROWS"/>
+ <enum name="GL_PACK_SKIP_VOLUMES_SGIS"/>
+ <enum name="GL_PACK_SUBSAMPLE_RATE_SGIX"/>
+ <enum name="GL_PACK_SWAP_BYTES"/>
+ <enum name="GL_PIXEL_TILE_CACHE_SIZE_SGIX"/>
+ <enum name="GL_PIXEL_TILE_GRID_DEPTH_SGIX"/>
+ <enum name="GL_PIXEL_TILE_GRID_HEIGHT_SGIX"/>
+ <enum name="GL_PIXEL_TILE_GRID_WIDTH_SGIX"/>
+ <enum name="GL_PIXEL_TILE_HEIGHT_SGIX"/>
+ <enum name="GL_PIXEL_TILE_WIDTH_SGIX"/>
+ <enum name="GL_UNPACK_ALIGNMENT"/>
+ <enum name="GL_UNPACK_IMAGE_DEPTH_SGIS"/>
+ <enum name="GL_UNPACK_IMAGE_HEIGHT"/>
+ <enum name="GL_UNPACK_IMAGE_HEIGHT_EXT"/>
+ <enum name="GL_UNPACK_LSB_FIRST"/>
+ <enum name="GL_UNPACK_RESAMPLE_OML"/>
+ <enum name="GL_UNPACK_RESAMPLE_SGIX"/>
+ <enum name="GL_UNPACK_ROW_LENGTH"/>
+ <enum name="GL_UNPACK_ROW_LENGTH_EXT"/>
+ <enum name="GL_UNPACK_SKIP_IMAGES"/>
+ <enum name="GL_UNPACK_SKIP_IMAGES_EXT"/>
+ <enum name="GL_UNPACK_SKIP_PIXELS"/>
+ <enum name="GL_UNPACK_SKIP_PIXELS_EXT"/>
+ <enum name="GL_UNPACK_SKIP_ROWS"/>
+ <enum name="GL_UNPACK_SKIP_ROWS_EXT"/>
+ <enum name="GL_UNPACK_SKIP_VOLUMES_SGIS"/>
+ <enum name="GL_UNPACK_SUBSAMPLE_RATE_SGIX"/>
+ <enum name="GL_UNPACK_SWAP_BYTES"/>
+ </group>
+
+ <group name="PixelStoreResampleMode">
+ <enum name="GL_RESAMPLE_DECIMATE_SGIX"/>
+ <enum name="GL_RESAMPLE_REPLICATE_SGIX"/>
+ <enum name="GL_RESAMPLE_ZERO_FILL_SGIX"/>
+ </group>
+
+ <group name="PixelStoreSubsampleRate">
+ <enum name="GL_PIXEL_SUBSAMPLE_2424_SGIX"/>
+ <enum name="GL_PIXEL_SUBSAMPLE_4242_SGIX"/>
+ <enum name="GL_PIXEL_SUBSAMPLE_4444_SGIX"/>
+ </group>
+
+ <group name="PixelTexGenMode">
+ <enum name="GL_LUMINANCE"/>
+ <enum name="GL_LUMINANCE_ALPHA"/>
+ <enum name="GL_NONE"/>
+ <enum name="GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX"/>
+ <enum name="GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX"/>
+ <enum name="GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX"/>
+ <enum name="GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX"/>
+ <enum name="GL_RGB"/>
+ <enum name="GL_RGBA"/>
+ </group>
+
+ <group name="PixelTexGenParameterNameSGIS">
+ <enum name="GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS"/>
+ <enum name="GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS"/>
+ </group>
+
+ <group name="PixelTransferParameter">
+ <enum name="GL_ALPHA_BIAS"/>
+ <enum name="GL_ALPHA_SCALE"/>
+ <enum name="GL_BLUE_BIAS"/>
+ <enum name="GL_BLUE_SCALE"/>
+ <enum name="GL_DEPTH_BIAS"/>
+ <enum name="GL_DEPTH_SCALE"/>
+ <enum name="GL_GREEN_BIAS"/>
+ <enum name="GL_GREEN_SCALE"/>
+ <enum name="GL_INDEX_OFFSET"/>
+ <enum name="GL_INDEX_SHIFT"/>
+ <enum name="GL_MAP_COLOR"/>
+ <enum name="GL_MAP_STENCIL"/>
+ <enum name="GL_POST_COLOR_MATRIX_ALPHA_BIAS"/>
+ <enum name="GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_ALPHA_SCALE"/>
+ <enum name="GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_BLUE_BIAS"/>
+ <enum name="GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_BLUE_SCALE"/>
+ <enum name="GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_GREEN_BIAS"/>
+ <enum name="GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_GREEN_SCALE"/>
+ <enum name="GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_RED_BIAS"/>
+ <enum name="GL_POST_COLOR_MATRIX_RED_BIAS_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_RED_SCALE"/>
+ <enum name="GL_POST_COLOR_MATRIX_RED_SCALE_SGI"/>
+ <enum name="GL_POST_CONVOLUTION_ALPHA_BIAS"/>
+ <enum name="GL_POST_CONVOLUTION_ALPHA_BIAS_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_ALPHA_SCALE"/>
+ <enum name="GL_POST_CONVOLUTION_ALPHA_SCALE_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_BLUE_BIAS"/>
+ <enum name="GL_POST_CONVOLUTION_BLUE_BIAS_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_BLUE_SCALE"/>
+ <enum name="GL_POST_CONVOLUTION_BLUE_SCALE_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_GREEN_BIAS"/>
+ <enum name="GL_POST_CONVOLUTION_GREEN_BIAS_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_GREEN_SCALE"/>
+ <enum name="GL_POST_CONVOLUTION_GREEN_SCALE_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_RED_BIAS"/>
+ <enum name="GL_POST_CONVOLUTION_RED_BIAS_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_RED_SCALE"/>
+ <enum name="GL_POST_CONVOLUTION_RED_SCALE_EXT"/>
+ <enum name="GL_RED_BIAS"/>
+ <enum name="GL_RED_SCALE"/>
+ </group>
+
+ <group name="PixelType">
+ <enum name="GL_BITMAP"/>
+ <enum name="GL_BYTE"/>
+ <enum name="GL_FLOAT"/>
+ <enum name="GL_INT"/>
+ <enum name="GL_SHORT"/>
+ <enum name="GL_UNSIGNED_BYTE"/>
+ <enum name="GL_UNSIGNED_BYTE_3_3_2"/>
+ <enum name="GL_UNSIGNED_BYTE_3_3_2_EXT"/>
+ <enum name="GL_UNSIGNED_INT"/>
+ <enum name="GL_UNSIGNED_INT_10_10_10_2"/>
+ <enum name="GL_UNSIGNED_INT_10_10_10_2_EXT"/>
+ <enum name="GL_UNSIGNED_INT_8_8_8_8"/>
+ <enum name="GL_UNSIGNED_INT_8_8_8_8_EXT"/>
+ <enum name="GL_UNSIGNED_SHORT"/>
+ <enum name="GL_UNSIGNED_SHORT_4_4_4_4"/>
+ <enum name="GL_UNSIGNED_SHORT_4_4_4_4_EXT"/>
+ <enum name="GL_UNSIGNED_SHORT_5_5_5_1"/>
+ <enum name="GL_UNSIGNED_SHORT_5_5_5_1_EXT"/>
+ </group>
+
+ <group name="PointParameterNameSGIS">
+ <enum name="GL_DISTANCE_ATTENUATION_EXT"/>
+ <enum name="GL_DISTANCE_ATTENUATION_SGIS"/>
+ <enum name="GL_POINT_DISTANCE_ATTENUATION"/>
+ <enum name="GL_POINT_DISTANCE_ATTENUATION_ARB"/>
+ <enum name="GL_POINT_FADE_THRESHOLD_SIZE"/>
+ <enum name="GL_POINT_FADE_THRESHOLD_SIZE_ARB"/>
+ <enum name="GL_POINT_FADE_THRESHOLD_SIZE_EXT"/>
+ <enum name="GL_POINT_FADE_THRESHOLD_SIZE_SGIS"/>
+ <enum name="GL_POINT_SIZE_MAX"/>
+ <enum name="GL_POINT_SIZE_MAX_ARB"/>
+ <enum name="GL_POINT_SIZE_MAX_EXT"/>
+ <enum name="GL_POINT_SIZE_MAX_SGIS"/>
+ <enum name="GL_POINT_SIZE_MIN"/>
+ <enum name="GL_POINT_SIZE_MIN_ARB"/>
+ <enum name="GL_POINT_SIZE_MIN_EXT"/>
+ <enum name="GL_POINT_SIZE_MIN_SGIS"/>
+ </group>
+
+ <group name="PolygonMode">
+ <enum name="GL_FILL"/>
+ <enum name="GL_LINE"/>
+ <enum name="GL_POINT"/>
+ </group>
+
+ <group name="PrimitiveType">
+ <enum name="GL_LINES"/>
+ <enum name="GL_LINES_ADJACENCY"/>
+ <enum name="GL_LINES_ADJACENCY_ARB"/>
+ <enum name="GL_LINES_ADJACENCY_EXT"/>
+ <enum name="GL_LINE_LOOP"/>
+ <enum name="GL_LINE_STRIP"/>
+ <enum name="GL_LINE_STRIP_ADJACENCY"/>
+ <enum name="GL_LINE_STRIP_ADJACENCY_ARB"/>
+ <enum name="GL_LINE_STRIP_ADJACENCY_EXT"/>
+ <enum name="GL_PATCHES"/>
+ <enum name="GL_POINTS"/>
+ <enum name="GL_POLYGON"/>
+ <enum name="GL_QUADS"/>
+ <enum name="GL_QUAD_STRIP"/>
+ <enum name="GL_TRIANGLES"/>
+ <enum name="GL_TRIANGLES_ADJACENCY"/>
+ <enum name="GL_TRIANGLES_ADJACENCY_ARB"/>
+ <enum name="GL_TRIANGLES_ADJACENCY_EXT"/>
+ <enum name="GL_TRIANGLE_FAN"/>
+ <enum name="GL_TRIANGLE_STRIP"/>
+ <enum name="GL_TRIANGLE_STRIP_ADJACENCY"/>
+ <enum name="GL_TRIANGLE_STRIP_ADJACENCY_ARB"/>
+ <enum name="GL_TRIANGLE_STRIP_ADJACENCY_EXT"/>
+ </group>
+
+ <group name="ReadBufferMode">
+ <enum name="GL_AUX0"/>
+ <enum name="GL_AUX1"/>
+ <enum name="GL_AUX2"/>
+ <enum name="GL_AUX3"/>
+ <enum name="GL_BACK"/>
+ <enum name="GL_BACK_LEFT"/>
+ <enum name="GL_BACK_RIGHT"/>
+ <enum name="GL_FRONT"/>
+ <enum name="GL_FRONT_LEFT"/>
+ <enum name="GL_FRONT_RIGHT"/>
+ <enum name="GL_LEFT"/>
+ <enum name="GL_RIGHT"/>
+ </group>
+
+ <group name="RenderingMode">
+ <enum name="GL_FEEDBACK"/>
+ <enum name="GL_RENDER"/>
+ <enum name="GL_SELECT"/>
+ </group>
+
+ <group name="SamplePatternSGIS">
+ <enum name="GL_1PASS_EXT"/>
+ <enum name="GL_1PASS_SGIS"/>
+ <enum name="GL_2PASS_0_EXT"/>
+ <enum name="GL_2PASS_0_SGIS"/>
+ <enum name="GL_2PASS_1_EXT"/>
+ <enum name="GL_2PASS_1_SGIS"/>
+ <enum name="GL_4PASS_0_EXT"/>
+ <enum name="GL_4PASS_0_SGIS"/>
+ <enum name="GL_4PASS_1_EXT"/>
+ <enum name="GL_4PASS_1_SGIS"/>
+ <enum name="GL_4PASS_2_EXT"/>
+ <enum name="GL_4PASS_2_SGIS"/>
+ <enum name="GL_4PASS_3_EXT"/>
+ <enum name="GL_4PASS_3_SGIS"/>
+ </group>
+
+ <group name="SeparableTargetEXT">
+ <enum name="GL_SEPARABLE_2D"/>
+ <enum name="GL_SEPARABLE_2D_EXT"/>
+ </group>
+
+ <group name="ShadingModel">
+ <enum name="GL_FLAT"/>
+ <enum name="GL_SMOOTH"/>
+ </group>
+
+ <group name="StencilFunction">
+ <enum name="GL_ALWAYS"/>
+ <enum name="GL_EQUAL"/>
+ <enum name="GL_GEQUAL"/>
+ <enum name="GL_GREATER"/>
+ <enum name="GL_LEQUAL"/>
+ <enum name="GL_LESS"/>
+ <enum name="GL_NEVER"/>
+ <enum name="GL_NOTEQUAL"/>
+ </group>
+
+ <group name="StencilOp">
+ <enum name="GL_DECR"/>
+ <enum name="GL_INCR"/>
+ <enum name="GL_INVERT"/>
+ <enum name="GL_KEEP"/>
+ <enum name="GL_REPLACE"/>
+ <enum name="GL_ZERO"/>
+ </group>
+
+ <group name="StringName">
+ <enum name="GL_EXTENSIONS"/>
+ <enum name="GL_RENDERER"/>
+ <enum name="GL_VENDOR"/>
+ <enum name="GL_VERSION"/>
+ </group>
+
+ <group name="TexCoordPointerType">
+ <enum name="GL_DOUBLE"/>
+ <enum name="GL_FLOAT"/>
+ <enum name="GL_INT"/>
+ <enum name="GL_SHORT"/>
+ </group>
+
+ <group name="TextureCoordName">
+ <enum name="GL_S"/>
+ <enum name="GL_T"/>
+ <enum name="GL_R"/>
+ <enum name="GL_Q"/>
+ </group>
+
+ <group name="TextureEnvMode">
+ <enum name="GL_ADD"/>
+ <enum name="GL_BLEND"/>
+ <enum name="GL_DECAL"/>
+ <enum name="GL_MODULATE"/>
+ <enum name="GL_REPLACE_EXT"/>
+ <enum name="GL_TEXTURE_ENV_BIAS_SGIX"/>
+ </group>
+
+ <group name="TextureEnvParameter">
+ <enum name="GL_TEXTURE_ENV_COLOR"/>
+ <enum name="GL_TEXTURE_ENV_MODE"/>
+ </group>
+
+ <group name="TextureEnvTarget">
+ <enum name="GL_TEXTURE_ENV"/>
+ </group>
+
+ <group name="TextureFilterFuncSGIS">
+ <enum name="GL_FILTER4_SGIS"/>
+ </group>
+
+ <group name="TextureGenMode">
+ <enum name="GL_EYE_DISTANCE_TO_LINE_SGIS"/>
+ <enum name="GL_EYE_DISTANCE_TO_POINT_SGIS"/>
+ <enum name="GL_EYE_LINEAR"/>
+ <enum name="GL_OBJECT_DISTANCE_TO_LINE_SGIS"/>
+ <enum name="GL_OBJECT_DISTANCE_TO_POINT_SGIS"/>
+ <enum name="GL_OBJECT_LINEAR"/>
+ <enum name="GL_SPHERE_MAP"/>
+ </group>
+
+ <group name="TextureGenParameter">
+ <enum name="GL_EYE_LINE_SGIS"/>
+ <enum name="GL_EYE_PLANE"/>
+ <enum name="GL_EYE_POINT_SGIS"/>
+ <enum name="GL_OBJECT_LINE_SGIS"/>
+ <enum name="GL_OBJECT_PLANE"/>
+ <enum name="GL_OBJECT_POINT_SGIS"/>
+ <enum name="GL_TEXTURE_GEN_MODE"/>
+ </group>
+
+ <group name="TextureMagFilter">
+ <enum name="GL_FILTER4_SGIS"/>
+ <enum name="GL_LINEAR"/>
+ <enum name="GL_LINEAR_DETAIL_ALPHA_SGIS"/>
+ <enum name="GL_LINEAR_DETAIL_COLOR_SGIS"/>
+ <enum name="GL_LINEAR_DETAIL_SGIS"/>
+ <enum name="GL_LINEAR_SHARPEN_ALPHA_SGIS"/>
+ <enum name="GL_LINEAR_SHARPEN_COLOR_SGIS"/>
+ <enum name="GL_LINEAR_SHARPEN_SGIS"/>
+ <enum name="GL_NEAREST"/>
+ <enum name="GL_PIXEL_TEX_GEN_Q_CEILING_SGIX"/>
+ <enum name="GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX"/>
+ <enum name="GL_PIXEL_TEX_GEN_Q_ROUND_SGIX"/>
+ </group>
+
+ <group name="TextureMinFilter">
+ <enum name="GL_FILTER4_SGIS"/>
+ <enum name="GL_LINEAR"/>
+ <enum name="GL_LINEAR_CLIPMAP_LINEAR_SGIX"/>
+ <enum name="GL_LINEAR_CLIPMAP_NEAREST_SGIX"/>
+ <enum name="GL_LINEAR_MIPMAP_LINEAR"/>
+ <enum name="GL_LINEAR_MIPMAP_NEAREST"/>
+ <enum name="GL_NEAREST"/>
+ <enum name="GL_NEAREST_CLIPMAP_LINEAR_SGIX"/>
+ <enum name="GL_NEAREST_CLIPMAP_NEAREST_SGIX"/>
+ <enum name="GL_NEAREST_MIPMAP_LINEAR"/>
+ <enum name="GL_NEAREST_MIPMAP_NEAREST"/>
+ <enum name="GL_PIXEL_TEX_GEN_Q_CEILING_SGIX"/>
+ <enum name="GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX"/>
+ <enum name="GL_PIXEL_TEX_GEN_Q_ROUND_SGIX"/>
+ </group>
+
+ <group name="TextureParameterName">
+ <enum name="GL_DETAIL_TEXTURE_LEVEL_SGIS"/>
+ <enum name="GL_DETAIL_TEXTURE_MODE_SGIS"/>
+ <enum name="GL_DUAL_TEXTURE_SELECT_SGIS"/>
+ <enum name="GL_GENERATE_MIPMAP"/>
+ <enum name="GL_GENERATE_MIPMAP_SGIS"/>
+ <enum name="GL_POST_TEXTURE_FILTER_BIAS_SGIX"/>
+ <enum name="GL_POST_TEXTURE_FILTER_SCALE_SGIX"/>
+ <enum name="GL_QUAD_TEXTURE_SELECT_SGIS"/>
+ <enum name="GL_SHADOW_AMBIENT_SGIX"/>
+ <enum name="GL_TEXTURE_BORDER_COLOR"/>
+ <enum name="GL_TEXTURE_CLIPMAP_CENTER_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_DEPTH_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_FRAME_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_OFFSET_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX"/>
+ <enum name="GL_TEXTURE_COMPARE_SGIX"/>
+ <enum name="GL_TEXTURE_LOD_BIAS_R_SGIX"/>
+ <enum name="GL_TEXTURE_LOD_BIAS_S_SGIX"/>
+ <enum name="GL_TEXTURE_LOD_BIAS_T_SGIX"/>
+ <enum name="GL_TEXTURE_MAG_FILTER"/>
+ <enum name="GL_TEXTURE_MAX_CLAMP_R_SGIX"/>
+ <enum name="GL_TEXTURE_MAX_CLAMP_S_SGIX"/>
+ <enum name="GL_TEXTURE_MAX_CLAMP_T_SGIX"/>
+ <enum name="GL_TEXTURE_MIN_FILTER"/>
+ <enum name="GL_TEXTURE_PRIORITY"/>
+ <enum name="GL_TEXTURE_PRIORITY_EXT"/>
+ <enum name="GL_TEXTURE_WRAP_Q_SGIS"/>
+ <enum name="GL_TEXTURE_WRAP_R"/>
+ <enum name="GL_TEXTURE_WRAP_R_EXT"/>
+ <enum name="GL_TEXTURE_WRAP_R_OES"/>
+ <enum name="GL_TEXTURE_WRAP_S"/>
+ <enum name="GL_TEXTURE_WRAP_T"/>
+ </group>
+
+ <group name="TextureTarget">
+ <enum name="GL_DETAIL_TEXTURE_2D_SGIS"/>
+ <enum name="GL_PROXY_TEXTURE_1D"/>
+ <enum name="GL_PROXY_TEXTURE_1D_EXT"/>
+ <enum name="GL_PROXY_TEXTURE_2D"/>
+ <enum name="GL_PROXY_TEXTURE_2D_EXT"/>
+ <enum name="GL_PROXY_TEXTURE_3D"/>
+ <enum name="GL_PROXY_TEXTURE_3D_EXT"/>
+ <enum name="GL_PROXY_TEXTURE_4D_SGIS"/>
+ <enum name="GL_TEXTURE_1D"/>
+ <enum name="GL_TEXTURE_2D"/>
+ <enum name="GL_TEXTURE_3D"/>
+ <enum name="GL_TEXTURE_3D_EXT"/>
+ <enum name="GL_TEXTURE_3D_OES"/>
+ <enum name="GL_TEXTURE_4D_SGIS"/>
+ <enum name="GL_TEXTURE_BASE_LEVEL"/>
+ <enum name="GL_TEXTURE_BASE_LEVEL_SGIS"/>
+ <enum name="GL_TEXTURE_MAX_LEVEL"/>
+ <enum name="GL_TEXTURE_MAX_LEVEL_SGIS"/>
+ <enum name="GL_TEXTURE_MAX_LOD"/>
+ <enum name="GL_TEXTURE_MAX_LOD_SGIS"/>
+ <enum name="GL_TEXTURE_MIN_LOD"/>
+ <enum name="GL_TEXTURE_MIN_LOD_SGIS"/>
+ </group>
+
+ <group name="TextureWrapMode">
+ <enum name="GL_CLAMP"/>
+ <enum name="GL_CLAMP_TO_BORDER"/>
+ <enum name="GL_CLAMP_TO_BORDER_ARB"/>
+ <enum name="GL_CLAMP_TO_BORDER_NV"/>
+ <enum name="GL_CLAMP_TO_BORDER_SGIS"/>
+ <enum name="GL_CLAMP_TO_EDGE"/>
+ <enum name="GL_CLAMP_TO_EDGE_SGIS"/>
+ <enum name="GL_REPEAT"/>
+ </group>
+
+ <group name="UseProgramStageMask">
+ <enum name="GL_VERTEX_SHADER_BIT"/>
+ <enum name="GL_VERTEX_SHADER_BIT_EXT"/>
+ <enum name="GL_FRAGMENT_SHADER_BIT"/>
+ <enum name="GL_FRAGMENT_SHADER_BIT_EXT"/>
+ <enum name="GL_GEOMETRY_SHADER_BIT"/>
+ <enum name="GL_TESS_CONTROL_SHADER_BIT"/>
+ <enum name="GL_TESS_EVALUATION_SHADER_BIT"/>
+ <enum name="GL_COMPUTE_SHADER_BIT"/>
+ <enum name="GL_ALL_SHADER_BITS"/>
+ <enum name="GL_ALL_SHADER_BITS_EXT"/>
+ </group>
+
+ <group name="VertexPointerType">
+ <enum name="GL_DOUBLE"/>
+ <enum name="GL_FLOAT"/>
+ <enum name="GL_INT"/>
+ <enum name="GL_SHORT"/>
+ </group>
+ </groups>
+
+ <!-- SECTION: GL enumerant (token) definitions. -->
+
+ <!-- Bitmasks each have their own namespace, although bits are
+ sometimes reused for other purposes -->
+
+ <enums namespace="GL" group="AttribMask" type="bitmask">
+ <enum value="0x00000001" name="GL_CURRENT_BIT"/>
+ <enum value="0x00000002" name="GL_POINT_BIT"/>
+ <enum value="0x00000004" name="GL_LINE_BIT"/>
+ <enum value="0x00000008" name="GL_POLYGON_BIT"/>
+ <enum value="0x00000010" name="GL_POLYGON_STIPPLE_BIT"/>
+ <enum value="0x00000020" name="GL_PIXEL_MODE_BIT"/>
+ <enum value="0x00000040" name="GL_LIGHTING_BIT"/>
+ <enum value="0x00000080" name="GL_FOG_BIT"/>
+ <enum value="0x00000100" name="GL_DEPTH_BUFFER_BIT"/>
+ <enum value="0x00000200" name="GL_ACCUM_BUFFER_BIT"/>
+ <enum value="0x00000400" name="GL_STENCIL_BUFFER_BIT"/>
+ <enum value="0x00000800" name="GL_VIEWPORT_BIT"/>
+ <enum value="0x00001000" name="GL_TRANSFORM_BIT"/>
+ <enum value="0x00002000" name="GL_ENABLE_BIT"/>
+ <enum value="0x00004000" name="GL_COLOR_BUFFER_BIT"/>
+ <enum value="0x00008000" name="GL_HINT_BIT"/>
+ <enum value="0x00010000" name="GL_EVAL_BIT"/>
+ <enum value="0x00020000" name="GL_LIST_BIT"/>
+ <enum value="0x00040000" name="GL_TEXTURE_BIT"/>
+ <enum value="0x00080000" name="GL_SCISSOR_BIT"/>
+ <enum value="0x20000000" name="GL_MULTISAMPLE_BIT"/>
+ <enum value="0x20000000" name="GL_MULTISAMPLE_BIT_ARB"/>
+ <enum value="0x20000000" name="GL_MULTISAMPLE_BIT_EXT"/>
+ <enum value="0x20000000" name="GL_MULTISAMPLE_BIT_3DFX"/>
+ <enum value="0xFFFFFFFF" name="GL_ALL_ATTRIB_BITS" comment="Guaranteed to mark all attribute groups at once"/>
+ </enums>
+
+ <enums namespace="GL" group="ClearBufferMask" type="bitmask" comment="GL_{DEPTH,ACCUM,STENCIL,COLOR}_BUFFER_BIT also lie in this namespace">
+ <enum value="0x00008000" name="GL_COVERAGE_BUFFER_BIT_NV" comment="Collides with AttribMask bit GL_HINT_BIT. OK since this token is for OpenGL ES 2, which doesn't have attribute groups."/>
+ <!-- Also used: 0x00004700 for bits reused from AttribMask above -->
+ </enums>
+
+ <enums namespace="GL" group="ClientAttribMask" type="bitmask">
+ <enum value="0x00000001" name="GL_CLIENT_PIXEL_STORE_BIT"/>
+ <enum value="0x00000002" name="GL_CLIENT_VERTEX_ARRAY_BIT"/>
+ <enum value="0xFFFFFFFF" name="GL_CLIENT_ALL_ATTRIB_BITS"/>
+ </enums>
+
+ <enums namespace="GL" group="ContextFlagMask" type="bitmask" comment="Should be shared with WGL/GLX, but aren't since the FORWARD_COMPATIBLE and DEBUG values are swapped vs. WGL/GLX.">
+ <enum value="0x00000001" name="GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT"/>
+ <enum value="0x00000002" name="GL_CONTEXT_FLAG_DEBUG_BIT"/>
+ <enum value="0x00000002" name="GL_CONTEXT_FLAG_DEBUG_BIT_KHR"/>
+ <enum value="0x00000004" name="GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB"/>
+ </enums>
+
+ <enums namespace="GL" group="ContextProfileMask" type="bitmask">
+ <enum value="0x00000001" name="GL_CONTEXT_CORE_PROFILE_BIT"/>
+ <enum value="0x00000002" name="GL_CONTEXT_COMPATIBILITY_PROFILE_BIT"/>
+ </enums>
+
+ <enums namespace="GL" group="MapBufferUsageMask" type="bitmask">
+ <enum value="0x0001" name="GL_MAP_READ_BIT"/>
+ <enum value="0x0001" name="GL_MAP_READ_BIT_EXT"/>
+ <enum value="0x0002" name="GL_MAP_WRITE_BIT"/>
+ <enum value="0x0002" name="GL_MAP_WRITE_BIT_EXT"/>
+ <enum value="0x0004" name="GL_MAP_INVALIDATE_RANGE_BIT"/>
+ <enum value="0x0004" name="GL_MAP_INVALIDATE_RANGE_BIT_EXT"/>
+ <enum value="0x0008" name="GL_MAP_INVALIDATE_BUFFER_BIT"/>
+ <enum value="0x0008" name="GL_MAP_INVALIDATE_BUFFER_BIT_EXT"/>
+ <enum value="0x0010" name="GL_MAP_FLUSH_EXPLICIT_BIT"/>
+ <enum value="0x0010" name="GL_MAP_FLUSH_EXPLICIT_BIT_EXT"/>
+ <enum value="0x0020" name="GL_MAP_UNSYNCHRONIZED_BIT"/>
+ <enum value="0x0020" name="GL_MAP_UNSYNCHRONIZED_BIT_EXT"/>
+ </enums>
+
+ <enums namespace="GL" group="MemoryBarrierMask" type="bitmask">
+ <enum value="0x00000001" name="GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT"/>
+ <enum value="0x00000001" name="GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT"/>
+ <enum value="0x00000002" name="GL_ELEMENT_ARRAY_BARRIER_BIT"/>
+ <enum value="0x00000002" name="GL_ELEMENT_ARRAY_BARRIER_BIT_EXT"/>
+ <enum value="0x00000004" name="GL_UNIFORM_BARRIER_BIT"/>
+ <enum value="0x00000004" name="GL_UNIFORM_BARRIER_BIT_EXT"/>
+ <enum value="0x00000008" name="GL_TEXTURE_FETCH_BARRIER_BIT"/>
+ <enum value="0x00000008" name="GL_TEXTURE_FETCH_BARRIER_BIT_EXT"/>
+ <enum value="0x00000010" name="GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV"/>
+ <enum value="0x00000020" name="GL_SHADER_IMAGE_ACCESS_BARRIER_BIT"/>
+ <enum value="0x00000020" name="GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT"/>
+ <enum value="0x00000040" name="GL_COMMAND_BARRIER_BIT"/>
+ <enum value="0x00000040" name="GL_COMMAND_BARRIER_BIT_EXT"/>
+ <enum value="0x00000080" name="GL_PIXEL_BUFFER_BARRIER_BIT"/>
+ <enum value="0x00000080" name="GL_PIXEL_BUFFER_BARRIER_BIT_EXT"/>
+ <enum value="0x00000100" name="GL_TEXTURE_UPDATE_BARRIER_BIT"/>
+ <enum value="0x00000100" name="GL_TEXTURE_UPDATE_BARRIER_BIT_EXT"/>
+ <enum value="0x00000200" name="GL_BUFFER_UPDATE_BARRIER_BIT"/>
+ <enum value="0x00000200" name="GL_BUFFER_UPDATE_BARRIER_BIT_EXT"/>
+ <enum value="0x00000400" name="GL_FRAMEBUFFER_BARRIER_BIT"/>
+ <enum value="0x00000400" name="GL_FRAMEBUFFER_BARRIER_BIT_EXT"/>
+ <enum value="0x00000800" name="GL_TRANSFORM_FEEDBACK_BARRIER_BIT"/>
+ <enum value="0x00000800" name="GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT"/>
+ <enum value="0x00001000" name="GL_ATOMIC_COUNTER_BARRIER_BIT"/>
+ <enum value="0x00001000" name="GL_ATOMIC_COUNTER_BARRIER_BIT_EXT"/>
+ <enum value="0x00002000" name="GL_SHADER_STORAGE_BARRIER_BIT"/>
+ <enum value="0xFFFFFFFF" name="GL_ALL_BARRIER_BITS"/>
+ <enum value="0xFFFFFFFF" name="GL_ALL_BARRIER_BITS_EXT"/>
+ </enums>
+
+ <enums namespace="GL" group="SyncObjectMask" type="bitmask">
+ <enum value="0x00000001" name="GL_SYNC_FLUSH_COMMANDS_BIT"/>
+ <enum value="0x00000001" name="GL_SYNC_FLUSH_COMMANDS_BIT_APPLE"/>
+ </enums>
+
+ <enums namespace="GL" group="UseProgramStageMask" type="bitmask">
+ <enum value="0x00000001" name="GL_VERTEX_SHADER_BIT"/>
+ <enum value="0x00000001" name="GL_VERTEX_SHADER_BIT_EXT"/>
+ <enum value="0x00000002" name="GL_FRAGMENT_SHADER_BIT"/>
+ <enum value="0x00000002" name="GL_FRAGMENT_SHADER_BIT_EXT"/>
+ <enum value="0x00000004" name="GL_GEOMETRY_SHADER_BIT"/>
+ <enum value="0x00000008" name="GL_TESS_CONTROL_SHADER_BIT"/>
+ <enum value="0x00000010" name="GL_TESS_EVALUATION_SHADER_BIT"/>
+ <enum value="0x00000020" name="GL_COMPUTE_SHADER_BIT"/>
+ <enum value="0xFFFFFFFF" name="GL_ALL_SHADER_BITS"/>
+ <enum value="0xFFFFFFFF" name="GL_ALL_SHADER_BITS_EXT"/>
+ </enums>
+
+ <!-- Bitmasks defined by vendor extensions -->
+
+ <enums namespace="GL" group="TextureStorageMaskAMD" type="bitmask">
+ <enum value="0x00000001" name="GL_TEXTURE_STORAGE_SPARSE_BIT_AMD"/>
+ </enums>
+
+ <enums namespace="GL" group="FragmentShaderDestMaskATI" type="bitmask">
+ <enum value="0x00000001" name="GL_RED_BIT_ATI"/>
+ <enum value="0x00000002" name="GL_GREEN_BIT_ATI"/>
+ <enum value="0x00000004" name="GL_BLUE_BIT_ATI"/>
+ </enums>
+
+ <enums namespace="GL" group="FragmentShaderDestModMaskATI" type="bitmask">
+ <enum value="0x00000001" name="GL_2X_BIT_ATI"/>
+ <enum value="0x00000002" name="GL_4X_BIT_ATI"/>
+ <enum value="0x00000004" name="GL_8X_BIT_ATI"/>
+ <enum value="0x00000008" name="GL_HALF_BIT_ATI"/>
+ <enum value="0x00000010" name="GL_QUARTER_BIT_ATI"/>
+ <enum value="0x00000020" name="GL_EIGHTH_BIT_ATI"/>
+ <enum value="0x00000040" name="GL_SATURATE_BIT_ATI"/>
+ </enums>
+
+ <enums namespace="GL" group="FragmentShaderColorModMaskATI" type="bitmask">
+ <!-- Also used: 0x00000001 for GL_2X_BIT_ATI reused from FragmentShaderDestModMaskAT above -->
+ <enum value="0x00000002" name="GL_COMP_BIT_ATI"/>
+ <enum value="0x00000004" name="GL_NEGATE_BIT_ATI"/>
+ <enum value="0x00000008" name="GL_BIAS_BIT_ATI"/>
+ </enums>
+
+ <enums namespace="GL" group="TraceMaskMESA" type="bitmask">
+ <enum value="0x0001" name="GL_TRACE_OPERATIONS_BIT_MESA"/>
+ <enum value="0x0002" name="GL_TRACE_PRIMITIVES_BIT_MESA"/>
+ <enum value="0x0004" name="GL_TRACE_ARRAYS_BIT_MESA"/>
+ <enum value="0x0008" name="GL_TRACE_TEXTURES_BIT_MESA"/>
+ <enum value="0x0010" name="GL_TRACE_PIXELS_BIT_MESA"/>
+ <enum value="0x0020" name="GL_TRACE_ERRORS_BIT_MESA"/>
+ <enum value="0xFFFF" name="GL_TRACE_ALL_BITS_MESA"/>
+ </enums>
+
+ <enums namespace="GL" group="PathRenderingMaskNV" type="bitmask">
+ <enum value="0x01" name="GL_BOLD_BIT_NV"/>
+ <enum value="0x02" name="GL_ITALIC_BIT_NV"/>
+ <enum value="0x01" name="GL_GLYPH_WIDTH_BIT_NV"/>
+ <enum value="0x02" name="GL_GLYPH_HEIGHT_BIT_NV"/>
+ <enum value="0x04" name="GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV"/>
+ <enum value="0x08" name="GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV"/>
+ <enum value="0x10" name="GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV"/>
+ <enum value="0x20" name="GL_GLYPH_VERTICAL_BEARING_X_BIT_NV"/>
+ <enum value="0x40" name="GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV"/>
+ <enum value="0x80" name="GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV"/>
+ <enum value="0x100" name="GL_GLYPH_HAS_KERNING_BIT_NV"/>
+ <enum value="0x00010000" name="GL_FONT_X_MIN_BOUNDS_BIT_NV"/>
+ <enum value="0x00020000" name="GL_FONT_Y_MIN_BOUNDS_BIT_NV"/>
+ <enum value="0x00040000" name="GL_FONT_X_MAX_BOUNDS_BIT_NV"/>
+ <enum value="0x00080000" name="GL_FONT_Y_MAX_BOUNDS_BIT_NV"/>
+ <enum value="0x00100000" name="GL_FONT_UNITS_PER_EM_BIT_NV"/>
+ <enum value="0x00200000" name="GL_FONT_ASCENDER_BIT_NV"/>
+ <enum value="0x00400000" name="GL_FONT_DESCENDER_BIT_NV"/>
+ <enum value="0x00800000" name="GL_FONT_HEIGHT_BIT_NV"/>
+ <enum value="0x01000000" name="GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV"/>
+ <enum value="0x02000000" name="GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV"/>
+ <enum value="0x04000000" name="GL_FONT_UNDERLINE_POSITION_BIT_NV"/>
+ <enum value="0x08000000" name="GL_FONT_UNDERLINE_THICKNESS_BIT_NV"/>
+ <enum value="0x10000000" name="GL_FONT_HAS_KERNING_BIT_NV"/>
+ </enums>
+
+ <enums namespace="GL" group="VertexHintsMaskPGI" type="bitmask">
+ <enum value="0x00000004" name="GL_VERTEX23_BIT_PGI"/>
+ <enum value="0x00000008" name="GL_VERTEX4_BIT_PGI"/>
+ <enum value="0x00010000" name="GL_COLOR3_BIT_PGI"/>
+ <enum value="0x00020000" name="GL_COLOR4_BIT_PGI"/>
+ <enum value="0x00040000" name="GL_EDGEFLAG_BIT_PGI"/>
+ <enum value="0x00080000" name="GL_INDEX_BIT_PGI"/>
+ <enum value="0x00100000" name="GL_MAT_AMBIENT_BIT_PGI"/>
+ <enum value="0x00200000" name="GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI"/>
+ <enum value="0x00400000" name="GL_MAT_DIFFUSE_BIT_PGI"/>
+ <enum value="0x00800000" name="GL_MAT_EMISSION_BIT_PGI"/>
+ <enum value="0x01000000" name="GL_MAT_COLOR_INDEXES_BIT_PGI"/>
+ <enum value="0x02000000" name="GL_MAT_SHININESS_BIT_PGI"/>
+ <enum value="0x04000000" name="GL_MAT_SPECULAR_BIT_PGI"/>
+ <enum value="0x08000000" name="GL_NORMAL_BIT_PGI"/>
+ <enum value="0x10000000" name="GL_TEXCOORD1_BIT_PGI"/>
+ <enum value="0x20000000" name="GL_TEXCOORD2_BIT_PGI"/>
+ <enum value="0x40000000" name="GL_TEXCOORD3_BIT_PGI"/>
+ <enum value="0x80000000" name="GL_TEXCOORD4_BIT_PGI"/>
+ </enums>
+
+ <enums namespace="GL" group="BufferBitQCOM" type="bitmask">
+ <enum value="0x00000001" name="GL_COLOR_BUFFER_BIT0_QCOM"/>
+ <enum value="0x00000002" name="GL_COLOR_BUFFER_BIT1_QCOM"/>
+ <enum value="0x00000004" name="GL_COLOR_BUFFER_BIT2_QCOM"/>
+ <enum value="0x00000008" name="GL_COLOR_BUFFER_BIT3_QCOM"/>
+ <enum value="0x00000010" name="GL_COLOR_BUFFER_BIT4_QCOM"/>
+ <enum value="0x00000020" name="GL_COLOR_BUFFER_BIT5_QCOM"/>
+ <enum value="0x00000040" name="GL_COLOR_BUFFER_BIT6_QCOM"/>
+ <enum value="0x00000080" name="GL_COLOR_BUFFER_BIT7_QCOM"/>
+ <enum value="0x00000100" name="GL_DEPTH_BUFFER_BIT0_QCOM"/>
+ <enum value="0x00000200" name="GL_DEPTH_BUFFER_BIT1_QCOM"/>
+ <enum value="0x00000400" name="GL_DEPTH_BUFFER_BIT2_QCOM"/>
+ <enum value="0x00000800" name="GL_DEPTH_BUFFER_BIT3_QCOM"/>
+ <enum value="0x00001000" name="GL_DEPTH_BUFFER_BIT4_QCOM"/>
+ <enum value="0x00002000" name="GL_DEPTH_BUFFER_BIT5_QCOM"/>
+ <enum value="0x00004000" name="GL_DEPTH_BUFFER_BIT6_QCOM"/>
+ <enum value="0x00008000" name="GL_DEPTH_BUFFER_BIT7_QCOM"/>
+ <enum value="0x00010000" name="GL_STENCIL_BUFFER_BIT0_QCOM"/>
+ <enum value="0x00020000" name="GL_STENCIL_BUFFER_BIT1_QCOM"/>
+ <enum value="0x00040000" name="GL_STENCIL_BUFFER_BIT2_QCOM"/>
+ <enum value="0x00080000" name="GL_STENCIL_BUFFER_BIT3_QCOM"/>
+ <enum value="0x00100000" name="GL_STENCIL_BUFFER_BIT4_QCOM"/>
+ <enum value="0x00200000" name="GL_STENCIL_BUFFER_BIT5_QCOM"/>
+ <enum value="0x00400000" name="GL_STENCIL_BUFFER_BIT6_QCOM"/>
+ <enum value="0x00800000" name="GL_STENCIL_BUFFER_BIT7_QCOM"/>
+ <enum value="0x01000000" name="GL_MULTISAMPLE_BUFFER_BIT0_QCOM"/>
+ <enum value="0x02000000" name="GL_MULTISAMPLE_BUFFER_BIT1_QCOM"/>
+ <enum value="0x04000000" name="GL_MULTISAMPLE_BUFFER_BIT2_QCOM"/>
+ <enum value="0x08000000" name="GL_MULTISAMPLE_BUFFER_BIT3_QCOM"/>
+ <enum value="0x10000000" name="GL_MULTISAMPLE_BUFFER_BIT4_QCOM"/>
+ <enum value="0x20000000" name="GL_MULTISAMPLE_BUFFER_BIT5_QCOM"/>
+ <enum value="0x40000000" name="GL_MULTISAMPLE_BUFFER_BIT6_QCOM"/>
+ <enum value="0x80000000" name="GL_MULTISAMPLE_BUFFER_BIT7_QCOM"/>
+ </enums>
+
+ <enums namespace="GL" group="FfdMaskSGIX" type="bitmask">
+ <enum value="0x00000001" name="GL_TEXTURE_DEFORMATION_BIT_SGIX"/>
+ <enum value="0x00000002" name="GL_GEOMETRY_DEFORMATION_BIT_SGIX"/>
+ </enums>
+
+ <!-- Non-bitmask enums with their own namespace. Generally small numbers
+ used for indexed access. -->
+
+ <enums namespace="GL" group="TriangleListSUN" vendor="SUN">
+ <enum value="0x0001" name="GL_RESTART_SUN"/>
+ <enum value="0x0002" name="GL_REPLACE_MIDDLE_SUN"/>
+ <enum value="0x0003" name="GL_REPLACE_OLDEST_SUN"/>
+ </enums>
+
+ <enums namespace="GL" group="MapTextureFormatINTEL" vendor="INTEL" comment="Texture memory layouts for INTEL_map_texture">
+ <enum value="0" name="GL_LAYOUT_DEFAULT_INTEL"/>
+ <enum value="1" name="GL_LAYOUT_LINEAR_INTEL"/>
+ <enum value="2" name="GL_LAYOUT_LINEAR_CPU_CACHED_INTEL"/>
+ </enums>
+
+ <enums namespace="GL" group="TransformFeedbackTokenNV" vendor="NV" comment="For NV_transform_feedback. No clue why small negative values are used">
+ <enum value="-2" name="GL_NEXT_BUFFER_NV"/>
+ <enum value="-3" name="GL_SKIP_COMPONENTS4_NV"/>
+ <enum value="-4" name="GL_SKIP_COMPONENTS3_NV"/>
+ <enum value="-5" name="GL_SKIP_COMPONENTS2_NV"/>
+ <enum value="-6" name="GL_SKIP_COMPONENTS1_NV"/>
+ </enums>
+
+ <enums namespace="GL" group="PathRenderingTokenNV" vendor="NV">
+ <enum value="0x00" name="GL_CLOSE_PATH_NV"/>
+ <enum value="0x02" name="GL_MOVE_TO_NV"/>
+ <enum value="0x03" name="GL_RELATIVE_MOVE_TO_NV"/>
+ <enum value="0x04" name="GL_LINE_TO_NV"/>
+ <enum value="0x05" name="GL_RELATIVE_LINE_TO_NV"/>
+ <enum value="0x06" name="GL_HORIZONTAL_LINE_TO_NV"/>
+ <enum value="0x07" name="GL_RELATIVE_HORIZONTAL_LINE_TO_NV"/>
+ <enum value="0x08" name="GL_VERTICAL_LINE_TO_NV"/>
+ <enum value="0x09" name="GL_RELATIVE_VERTICAL_LINE_TO_NV"/>
+ <enum value="0x0A" name="GL_QUADRATIC_CURVE_TO_NV"/>
+ <enum value="0x0B" name="GL_RELATIVE_QUADRATIC_CURVE_TO_NV"/>
+ <enum value="0x0C" name="GL_CUBIC_CURVE_TO_NV"/>
+ <enum value="0x0D" name="GL_RELATIVE_CUBIC_CURVE_TO_NV"/>
+ <enum value="0x0E" name="GL_SMOOTH_QUADRATIC_CURVE_TO_NV"/>
+ <enum value="0x0F" name="GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV"/>
+ <enum value="0x10" name="GL_SMOOTH_CUBIC_CURVE_TO_NV"/>
+ <enum value="0x11" name="GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV"/>
+ <enum value="0x12" name="GL_SMALL_CCW_ARC_TO_NV"/>
+ <enum value="0x13" name="GL_RELATIVE_SMALL_CCW_ARC_TO_NV"/>
+ <enum value="0x14" name="GL_SMALL_CW_ARC_TO_NV"/>
+ <enum value="0x15" name="GL_RELATIVE_SMALL_CW_ARC_TO_NV"/>
+ <enum value="0x16" name="GL_LARGE_CCW_ARC_TO_NV"/>
+ <enum value="0x17" name="GL_RELATIVE_LARGE_CCW_ARC_TO_NV"/>
+ <enum value="0x18" name="GL_LARGE_CW_ARC_TO_NV"/>
+ <enum value="0x19" name="GL_RELATIVE_LARGE_CW_ARC_TO_NV"/>
+ <enum value="0xF0" name="GL_RESTART_PATH_NV"/>
+ <enum value="0xF2" name="GL_DUP_FIRST_CUBIC_CURVE_TO_NV"/>
+ <enum value="0xF4" name="GL_DUP_LAST_CUBIC_CURVE_TO_NV"/>
+ <enum value="0xF6" name="GL_RECT_NV"/>
+ <enum value="0xF8" name="GL_CIRCULAR_CCW_ARC_TO_NV"/>
+ <enum value="0xFA" name="GL_CIRCULAR_CW_ARC_TO_NV"/>
+ <enum value="0xFC" name="GL_CIRCULAR_TANGENT_ARC_TO_NV"/>
+ <enum value="0xFE" name="GL_ARC_TO_NV"/>
+ <enum value="0xFF" name="GL_RELATIVE_ARC_TO_NV"/>
+ </enums>
+
+ <!-- The default ("API") enum namespace starts here. While some
+ assigned values may overlap, and different parts of the
+ namespace are reserved for different purposes, it is a single
+ namespace. The "class" attribute indicates some of the reserved
+ purposes but is by no means complete (and cannot be, since many
+ tokens are reused for different purposes in different
+ extensions and API versions). -->
+
+ <enums namespace="GL" group="SpecialNumbers" vendor="ARB" comment="Tokens whose numeric value is intrinsically meaningful">
+ <enum value="0" name="GL_FALSE"/>
+ <enum value="0" name="GL_NO_ERROR"/>
+ <enum value="0" name="GL_ZERO"/>
+ <enum value="0" name="GL_NONE"/>
+ <enum value="1" name="GL_TRUE"/>
+ <enum value="1" name="GL_ONE"/>
+ <enum value="0xFFFFFFFF" name="GL_INVALID_INDEX" type="u" comment="Tagged as uint"/>
+ <enum value="0xFFFFFFFFFFFFFFFF" name="GL_TIMEOUT_IGNORED" type="ull" comment="Tagged as uint64"/>
+ <enum value="0xFFFFFFFFFFFFFFFF" name="GL_TIMEOUT_IGNORED_APPLE" type="ull" comment="Tagged as uint64"/>
+ <enum value="1" name="GL_VERSION_ES_CL_1_0" comment="Not an API enum. API definition macro for ES 1.0/1.1 headers"/>
+ <enum value="1" name="GL_VERSION_ES_CM_1_1" comment="Not an API enum. API definition macro for ES 1.0/1.1 headers"/>
+ <enum value="1" name="GL_VERSION_ES_CL_1_1" comment="Not an API enum. API definition macro for ES 1.0/1.1 headers"/>
+ </enums>
+
+ <enums namespace="GL" start="0x0000" end="0x7FFF" vendor="ARB" comment="Mostly OpenGL 1.0/1.1 enum assignments. Unused ranges should generally remain unused.">
+ <enum value="0x0000" name="GL_POINTS"/>
+ <enum value="0x0001" name="GL_LINES"/>
+ <enum value="0x0002" name="GL_LINE_LOOP"/>
+ <enum value="0x0003" name="GL_LINE_STRIP"/>
+ <enum value="0x0004" name="GL_TRIANGLES"/>
+ <enum value="0x0005" name="GL_TRIANGLE_STRIP"/>
+ <enum value="0x0006" name="GL_TRIANGLE_FAN"/>
+ <enum value="0x0007" name="GL_QUADS"/>
+ <enum value="0x0008" name="GL_QUAD_STRIP"/>
+ <enum value="0x0009" name="GL_POLYGON"/>
+ <enum value="0x000A" name="GL_LINES_ADJACENCY"/>
+ <enum value="0x000A" name="GL_LINES_ADJACENCY_ARB"/>
+ <enum value="0x000A" name="GL_LINES_ADJACENCY_EXT"/>
+ <enum value="0x000B" name="GL_LINE_STRIP_ADJACENCY"/>
+ <enum value="0x000B" name="GL_LINE_STRIP_ADJACENCY_ARB"/>
+ <enum value="0x000B" name="GL_LINE_STRIP_ADJACENCY_EXT"/>
+ <enum value="0x000C" name="GL_TRIANGLES_ADJACENCY"/>
+ <enum value="0x000C" name="GL_TRIANGLES_ADJACENCY_ARB"/>
+ <enum value="0x000C" name="GL_TRIANGLES_ADJACENCY_EXT"/>
+ <enum value="0x000D" name="GL_TRIANGLE_STRIP_ADJACENCY"/>
+ <enum value="0x000D" name="GL_TRIANGLE_STRIP_ADJACENCY_ARB"/>
+ <enum value="0x000D" name="GL_TRIANGLE_STRIP_ADJACENCY_EXT"/>
+ <enum value="0x000E" name="GL_PATCHES"/>
+ <unused start="0x000F" end="0x00FF" comment="Unused for PrimitiveType"/>
+ <enum value="0x0100" name="GL_ACCUM"/>
+ <enum value="0x0101" name="GL_LOAD"/>
+ <enum value="0x0102" name="GL_RETURN"/>
+ <enum value="0x0103" name="GL_MULT"/>
+ <enum value="0x0104" name="GL_ADD"/>
+ <unused start="0x0105" end="0x01FF" comment="Unused for AccumOp"/>
+ <enum value="0x0200" name="GL_NEVER"/>
+ <enum value="0x0201" name="GL_LESS"/>
+ <enum value="0x0202" name="GL_EQUAL"/>
+ <enum value="0x0203" name="GL_LEQUAL"/>
+ <enum value="0x0204" name="GL_GREATER"/>
+ <enum value="0x0205" name="GL_NOTEQUAL"/>
+ <enum value="0x0206" name="GL_GEQUAL"/>
+ <enum value="0x0207" name="GL_ALWAYS"/>
+ <unused start="0x0208" end="0x02FF" comment="Unused for AlphaFunction"/>
+ <enum value="0x0300" name="GL_SRC_COLOR"/>
+ <enum value="0x0301" name="GL_ONE_MINUS_SRC_COLOR"/>
+ <enum value="0x0302" name="GL_SRC_ALPHA"/>
+ <enum value="0x0303" name="GL_ONE_MINUS_SRC_ALPHA"/>
+ <enum value="0x0304" name="GL_DST_ALPHA"/>
+ <enum value="0x0305" name="GL_ONE_MINUS_DST_ALPHA"/>
+ <enum value="0x0306" name="GL_DST_COLOR"/>
+ <enum value="0x0307" name="GL_ONE_MINUS_DST_COLOR"/>
+ <enum value="0x0308" name="GL_SRC_ALPHA_SATURATE"/>
+ <unused start="0x0309" end="0x03FF" comment="Unused for BlendingFactor"/>
+ <enum value="0x0400" name="GL_FRONT_LEFT"/>
+ <enum value="0x0401" name="GL_FRONT_RIGHT"/>
+ <enum value="0x0402" name="GL_BACK_LEFT"/>
+ <enum value="0x0403" name="GL_BACK_RIGHT"/>
+ <enum value="0x0404" name="GL_FRONT"/>
+ <enum value="0x0405" name="GL_BACK"/>
+ <enum value="0x0406" name="GL_LEFT"/>
+ <enum value="0x0407" name="GL_RIGHT"/>
+ <enum value="0x0408" name="GL_FRONT_AND_BACK"/>
+ <enum value="0x0409" name="GL_AUX0"/>
+ <enum value="0x040A" name="GL_AUX1"/>
+ <enum value="0x040B" name="GL_AUX2"/>
+ <enum value="0x040C" name="GL_AUX3"/>
+ <unused start="0x040D" end="0x04FF" comment="Unused for DrawBufferMode"/>
+ <enum value="0x0500" name="GL_INVALID_ENUM"/>
+ <enum value="0x0501" name="GL_INVALID_VALUE"/>
+ <enum value="0x0502" name="GL_INVALID_OPERATION"/>
+ <enum value="0x0503" name="GL_STACK_OVERFLOW"/>
+ <enum value="0x0503" name="GL_STACK_OVERFLOW_KHR"/>
+ <enum value="0x0504" name="GL_STACK_UNDERFLOW"/>
+ <enum value="0x0504" name="GL_STACK_UNDERFLOW_KHR"/>
+ <enum value="0x0505" name="GL_OUT_OF_MEMORY"/>
+ <enum value="0x0506" name="GL_INVALID_FRAMEBUFFER_OPERATION"/>
+ <enum value="0x0506" name="GL_INVALID_FRAMEBUFFER_OPERATION_EXT"/>
+ <enum value="0x0506" name="GL_INVALID_FRAMEBUFFER_OPERATION_OES"/>
+ <unused start="0x0507" end="0x05FF" comment="Unused for ErrorCode"/>
+ <enum value="0x0600" name="GL_2D"/>
+ <enum value="0x0601" name="GL_3D"/>
+ <enum value="0x0602" name="GL_3D_COLOR"/>
+ <enum value="0x0603" name="GL_3D_COLOR_TEXTURE"/>
+ <enum value="0x0604" name="GL_4D_COLOR_TEXTURE"/>
+ <unused start="0x0605" end="0x06FF" comment="Unused for FeedbackType"/>
+ <enum value="0x0700" name="GL_PASS_THROUGH_TOKEN"/>
+ <enum value="0x0701" name="GL_POINT_TOKEN"/>
+ <enum value="0x0702" name="GL_LINE_TOKEN"/>
+ <enum value="0x0703" name="GL_POLYGON_TOKEN"/>
+ <enum value="0x0704" name="GL_BITMAP_TOKEN"/>
+ <enum value="0x0705" name="GL_DRAW_PIXEL_TOKEN"/>
+ <enum value="0x0706" name="GL_COPY_PIXEL_TOKEN"/>
+ <enum value="0x0707" name="GL_LINE_RESET_TOKEN"/>
+ <unused start="0x0708" end="0x07FF" comment="Unused for FeedbackToken"/>
+ <enum value="0x0800" name="GL_EXP"/>
+ <enum value="0x0801" name="GL_EXP2"/>
+ <unused start="0x0802" end="0x08FF" comment="Unused for FogMode"/>
+ <enum value="0x0900" name="GL_CW"/>
+ <enum value="0x0901" name="GL_CCW"/>
+ <unused start="0x0902" end="0x09FF" comment="Unused for FrontFaceDirection"/>
+ <enum value="0x0A00" name="GL_COEFF"/>
+ <enum value="0x0A01" name="GL_ORDER"/>
+ <enum value="0x0A02" name="GL_DOMAIN"/>
+ <unused start="0x0A03" end="0x0AFF" comment="Unused for GetMapQuery"/>
+ <enum value="0x0B00" name="GL_CURRENT_COLOR"/>
+ <enum value="0x0B01" name="GL_CURRENT_INDEX"/>
+ <enum value="0x0B02" name="GL_CURRENT_NORMAL"/>
+ <enum value="0x0B03" name="GL_CURRENT_TEXTURE_COORDS"/>
+ <enum value="0x0B04" name="GL_CURRENT_RASTER_COLOR"/>
+ <enum value="0x0B05" name="GL_CURRENT_RASTER_INDEX"/>
+ <enum value="0x0B06" name="GL_CURRENT_RASTER_TEXTURE_COORDS"/>
+ <enum value="0x0B07" name="GL_CURRENT_RASTER_POSITION"/>
+ <enum value="0x0B08" name="GL_CURRENT_RASTER_POSITION_VALID"/>
+ <enum value="0x0B09" name="GL_CURRENT_RASTER_DISTANCE"/>
+
+ <enum value="0x0B10" name="GL_POINT_SMOOTH"/>
+ <enum value="0x0B11" name="GL_POINT_SIZE"/>
+ <enum value="0x0B12" name="GL_POINT_SIZE_RANGE"/>
+ <enum value="0x0B12" name="GL_SMOOTH_POINT_SIZE_RANGE" alias="GL_POINT_SIZE_RANGE"/>
+ <enum value="0x0B13" name="GL_POINT_SIZE_GRANULARITY"/>
+ <enum value="0x0B13" name="GL_SMOOTH_POINT_SIZE_GRANULARITY" alias="GL_POINT_SIZE_GRANULARITY"/>
+
+ <enum value="0x0B20" name="GL_LINE_SMOOTH"/>
+ <enum value="0x0B21" name="GL_LINE_WIDTH"/>
+ <enum value="0x0B22" name="GL_LINE_WIDTH_RANGE"/>
+ <enum value="0x0B22" name="GL_SMOOTH_LINE_WIDTH_RANGE" alias="GL_LINE_WIDTH_RANGE"/>
+ <enum value="0x0B23" name="GL_LINE_WIDTH_GRANULARITY"/>
+ <enum value="0x0B23" name="GL_SMOOTH_LINE_WIDTH_GRANULARITY" alias="GL_LINE_WIDTH_GRANULARITY"/>
+ <enum value="0x0B24" name="GL_LINE_STIPPLE"/>
+ <enum value="0x0B25" name="GL_LINE_STIPPLE_PATTERN"/>
+ <enum value="0x0B26" name="GL_LINE_STIPPLE_REPEAT"/>
+
+ <enum value="0x0B30" name="GL_LIST_MODE"/>
+ <enum value="0x0B31" name="GL_MAX_LIST_NESTING"/>
+ <enum value="0x0B32" name="GL_LIST_BASE"/>
+ <enum value="0x0B33" name="GL_LIST_INDEX"/>
+
+ <enum value="0x0B40" name="GL_POLYGON_MODE"/>
+ <enum value="0x0B41" name="GL_POLYGON_SMOOTH"/>
+ <enum value="0x0B42" name="GL_POLYGON_STIPPLE"/>
+ <enum value="0x0B43" name="GL_EDGE_FLAG"/>
+ <enum value="0x0B44" name="GL_CULL_FACE"/>
+ <enum value="0x0B45" name="GL_CULL_FACE_MODE"/>
+ <enum value="0x0B46" name="GL_FRONT_FACE"/>
+
+ <enum value="0x0B50" name="GL_LIGHTING"/>
+ <enum value="0x0B51" name="GL_LIGHT_MODEL_LOCAL_VIEWER"/>
+ <enum value="0x0B52" name="GL_LIGHT_MODEL_TWO_SIDE"/>
+ <enum value="0x0B53" name="GL_LIGHT_MODEL_AMBIENT"/>
+ <enum value="0x0B54" name="GL_SHADE_MODEL"/>
+ <enum value="0x0B55" name="GL_COLOR_MATERIAL_FACE"/>
+ <enum value="0x0B56" name="GL_COLOR_MATERIAL_PARAMETER"/>
+ <enum value="0x0B57" name="GL_COLOR_MATERIAL"/>
+
+ <enum value="0x0B60" name="GL_FOG"/>
+ <enum value="0x0B61" name="GL_FOG_INDEX"/>
+ <enum value="0x0B62" name="GL_FOG_DENSITY"/>
+ <enum value="0x0B63" name="GL_FOG_START"/>
+ <enum value="0x0B64" name="GL_FOG_END"/>
+ <enum value="0x0B65" name="GL_FOG_MODE"/>
+ <enum value="0x0B66" name="GL_FOG_COLOR"/>
+
+ <enum value="0x0B70" name="GL_DEPTH_RANGE"/>
+ <enum value="0x0B71" name="GL_DEPTH_TEST"/>
+ <enum value="0x0B72" name="GL_DEPTH_WRITEMASK"/>
+ <enum value="0x0B73" name="GL_DEPTH_CLEAR_VALUE"/>
+ <enum value="0x0B74" name="GL_DEPTH_FUNC"/>
+
+ <enum value="0x0B80" name="GL_ACCUM_CLEAR_VALUE"/>
+
+ <enum value="0x0B90" name="GL_STENCIL_TEST"/>
+ <enum value="0x0B91" name="GL_STENCIL_CLEAR_VALUE"/>
+ <enum value="0x0B92" name="GL_STENCIL_FUNC"/>
+ <enum value="0x0B93" name="GL_STENCIL_VALUE_MASK"/>
+ <enum value="0x0B94" name="GL_STENCIL_FAIL"/>
+ <enum value="0x0B95" name="GL_STENCIL_PASS_DEPTH_FAIL"/>
+ <enum value="0x0B96" name="GL_STENCIL_PASS_DEPTH_PASS"/>
+ <enum value="0x0B97" name="GL_STENCIL_REF"/>
+ <enum value="0x0B98" name="GL_STENCIL_WRITEMASK"/>
+
+ <enum value="0x0BA0" name="GL_MATRIX_MODE"/>
+ <enum value="0x0BA1" name="GL_NORMALIZE"/>
+ <enum value="0x0BA2" name="GL_VIEWPORT"/>
+ <enum value="0x0BA3" name="GL_MODELVIEW_STACK_DEPTH"/>
+ <enum value="0x0BA3" name="GL_MODELVIEW0_STACK_DEPTH_EXT"/>
+ <enum value="0x0BA4" name="GL_PROJECTION_STACK_DEPTH"/>
+ <enum value="0x0BA5" name="GL_TEXTURE_STACK_DEPTH"/>
+ <enum value="0x0BA6" name="GL_MODELVIEW_MATRIX"/>
+ <enum value="0x0BA6" name="GL_MODELVIEW0_MATRIX_EXT"/>
+ <enum value="0x0BA7" name="GL_PROJECTION_MATRIX"/>
+ <enum value="0x0BA8" name="GL_TEXTURE_MATRIX"/>
+
+ <enum value="0x0BB0" name="GL_ATTRIB_STACK_DEPTH"/>
+ <enum value="0x0BB1" name="GL_CLIENT_ATTRIB_STACK_DEPTH"/>
+
+ <enum value="0x0BC0" name="GL_ALPHA_TEST"/>
+ <enum value="0x0BC0" name="GL_ALPHA_TEST_QCOM"/>
+ <enum value="0x0BC1" name="GL_ALPHA_TEST_FUNC"/>
+ <enum value="0x0BC1" name="GL_ALPHA_TEST_FUNC_QCOM"/>
+ <enum value="0x0BC2" name="GL_ALPHA_TEST_REF"/>
+ <enum value="0x0BC2" name="GL_ALPHA_TEST_REF_QCOM"/>
+
+ <enum value="0x0BD0" name="GL_DITHER"/>
+
+ <enum value="0x0BE0" name="GL_BLEND_DST"/>
+ <enum value="0x0BE1" name="GL_BLEND_SRC"/>
+ <enum value="0x0BE2" name="GL_BLEND"/>
+
+ <enum value="0x0BF0" name="GL_LOGIC_OP_MODE"/>
+ <enum value="0x0BF1" name="GL_INDEX_LOGIC_OP"/>
+ <enum value="0x0BF1" name="GL_LOGIC_OP"/>
+ <enum value="0x0BF2" name="GL_COLOR_LOGIC_OP"/>
+
+ <enum value="0x0C00" name="GL_AUX_BUFFERS"/>
+ <enum value="0x0C01" name="GL_DRAW_BUFFER"/>
+ <enum value="0x0C01" name="GL_DRAW_BUFFER_EXT"/>
+ <enum value="0x0C02" name="GL_READ_BUFFER"/>
+ <enum value="0x0C02" name="GL_READ_BUFFER_EXT"/>
+ <enum value="0x0C02" name="GL_READ_BUFFER_NV"/>
+
+ <enum value="0x0C10" name="GL_SCISSOR_BOX"/>
+ <enum value="0x0C11" name="GL_SCISSOR_TEST"/>
+
+ <enum value="0x0C20" name="GL_INDEX_CLEAR_VALUE"/>
+ <enum value="0x0C21" name="GL_INDEX_WRITEMASK"/>
+ <enum value="0x0C22" name="GL_COLOR_CLEAR_VALUE"/>
+ <enum value="0x0C23" name="GL_COLOR_WRITEMASK"/>
+
+ <enum value="0x0C30" name="GL_INDEX_MODE"/>
+ <enum value="0x0C31" name="GL_RGBA_MODE"/>
+ <enum value="0x0C32" name="GL_DOUBLEBUFFER"/>
+ <enum value="0x0C33" name="GL_STEREO"/>
+
+ <enum value="0x0C40" name="GL_RENDER_MODE"/>
+
+ <enum value="0x0C50" name="GL_PERSPECTIVE_CORRECTION_HINT"/>
+ <enum value="0x0C51" name="GL_POINT_SMOOTH_HINT"/>
+ <enum value="0x0C52" name="GL_LINE_SMOOTH_HINT"/>
+ <enum value="0x0C53" name="GL_POLYGON_SMOOTH_HINT"/>
+ <enum value="0x0C54" name="GL_FOG_HINT"/>
+
+ <enum value="0x0C60" name="GL_TEXTURE_GEN_S"/>
+ <enum value="0x0C61" name="GL_TEXTURE_GEN_T"/>
+ <enum value="0x0C62" name="GL_TEXTURE_GEN_R"/>
+ <enum value="0x0C63" name="GL_TEXTURE_GEN_Q"/>
+
+ <enum value="0x0C70" name="GL_PIXEL_MAP_I_TO_I"/>
+ <enum value="0x0C71" name="GL_PIXEL_MAP_S_TO_S"/>
+ <enum value="0x0C72" name="GL_PIXEL_MAP_I_TO_R"/>
+ <enum value="0x0C73" name="GL_PIXEL_MAP_I_TO_G"/>
+ <enum value="0x0C74" name="GL_PIXEL_MAP_I_TO_B"/>
+ <enum value="0x0C75" name="GL_PIXEL_MAP_I_TO_A"/>
+ <enum value="0x0C76" name="GL_PIXEL_MAP_R_TO_R"/>
+ <enum value="0x0C77" name="GL_PIXEL_MAP_G_TO_G"/>
+ <enum value="0x0C78" name="GL_PIXEL_MAP_B_TO_B"/>
+ <enum value="0x0C79" name="GL_PIXEL_MAP_A_TO_A"/>
+
+ <enum value="0x0CB0" name="GL_PIXEL_MAP_I_TO_I_SIZE"/>
+ <enum value="0x0CB1" name="GL_PIXEL_MAP_S_TO_S_SIZE"/>
+ <enum value="0x0CB2" name="GL_PIXEL_MAP_I_TO_R_SIZE"/>
+ <enum value="0x0CB3" name="GL_PIXEL_MAP_I_TO_G_SIZE"/>
+ <enum value="0x0CB4" name="GL_PIXEL_MAP_I_TO_B_SIZE"/>
+ <enum value="0x0CB5" name="GL_PIXEL_MAP_I_TO_A_SIZE"/>
+ <enum value="0x0CB6" name="GL_PIXEL_MAP_R_TO_R_SIZE"/>
+ <enum value="0x0CB7" name="GL_PIXEL_MAP_G_TO_G_SIZE"/>
+ <enum value="0x0CB8" name="GL_PIXEL_MAP_B_TO_B_SIZE"/>
+ <enum value="0x0CB9" name="GL_PIXEL_MAP_A_TO_A_SIZE"/>
+
+ <enum value="0x0CF0" name="GL_UNPACK_SWAP_BYTES"/>
+ <enum value="0x0CF1" name="GL_UNPACK_LSB_FIRST"/>
+ <enum value="0x0CF2" name="GL_UNPACK_ROW_LENGTH"/>
+ <enum value="0x0CF2" name="GL_UNPACK_ROW_LENGTH_EXT"/>
+ <enum value="0x0CF3" name="GL_UNPACK_SKIP_ROWS"/>
+ <enum value="0x0CF3" name="GL_UNPACK_SKIP_ROWS_EXT"/>
+ <enum value="0x0CF4" name="GL_UNPACK_SKIP_PIXELS"/>
+ <enum value="0x0CF4" name="GL_UNPACK_SKIP_PIXELS_EXT"/>
+ <enum value="0x0CF5" name="GL_UNPACK_ALIGNMENT"/>
+
+ <enum value="0x0D00" name="GL_PACK_SWAP_BYTES"/>
+ <enum value="0x0D01" name="GL_PACK_LSB_FIRST"/>
+ <enum value="0x0D02" name="GL_PACK_ROW_LENGTH"/>
+ <enum value="0x0D03" name="GL_PACK_SKIP_ROWS"/>
+ <enum value="0x0D04" name="GL_PACK_SKIP_PIXELS"/>
+ <enum value="0x0D05" name="GL_PACK_ALIGNMENT"/>
+
+ <enum value="0x0D10" name="GL_MAP_COLOR"/>
+ <enum value="0x0D11" name="GL_MAP_STENCIL"/>
+ <enum value="0x0D12" name="GL_INDEX_SHIFT"/>
+ <enum value="0x0D13" name="GL_INDEX_OFFSET"/>
+ <enum value="0x0D14" name="GL_RED_SCALE"/>
+ <enum value="0x0D15" name="GL_RED_BIAS"/>
+ <enum value="0x0D16" name="GL_ZOOM_X"/>
+ <enum value="0x0D17" name="GL_ZOOM_Y"/>
+ <enum value="0x0D18" name="GL_GREEN_SCALE"/>
+ <enum value="0x0D19" name="GL_GREEN_BIAS"/>
+ <enum value="0x0D1A" name="GL_BLUE_SCALE"/>
+ <enum value="0x0D1B" name="GL_BLUE_BIAS"/>
+ <enum value="0x0D1C" name="GL_ALPHA_SCALE"/>
+ <enum value="0x0D1D" name="GL_ALPHA_BIAS"/>
+ <enum value="0x0D1E" name="GL_DEPTH_SCALE"/>
+ <enum value="0x0D1F" name="GL_DEPTH_BIAS"/>
+
+ <enum value="0x0D30" name="GL_MAX_EVAL_ORDER"/>
+ <enum value="0x0D31" name="GL_MAX_LIGHTS"/>
+ <enum value="0x0D32" name="GL_MAX_CLIP_PLANES"/>
+ <enum value="0x0D32" name="GL_MAX_CLIP_DISTANCES" alias="GL_MAX_CLIP_PLANES"/>
+ <enum value="0x0D33" name="GL_MAX_TEXTURE_SIZE"/>
+ <enum value="0x0D34" name="GL_MAX_PIXEL_MAP_TABLE"/>
+ <enum value="0x0D35" name="GL_MAX_ATTRIB_STACK_DEPTH"/>
+ <enum value="0x0D36" name="GL_MAX_MODELVIEW_STACK_DEPTH"/>
+ <enum value="0x0D37" name="GL_MAX_NAME_STACK_DEPTH"/>
+ <enum value="0x0D38" name="GL_MAX_PROJECTION_STACK_DEPTH"/>
+ <enum value="0x0D39" name="GL_MAX_TEXTURE_STACK_DEPTH"/>
+ <enum value="0x0D3A" name="GL_MAX_VIEWPORT_DIMS"/>
+ <enum value="0x0D3B" name="GL_MAX_CLIENT_ATTRIB_STACK_DEPTH"/>
+
+ <enum value="0x0D50" name="GL_SUBPIXEL_BITS"/>
+ <enum value="0x0D51" name="GL_INDEX_BITS"/>
+ <enum value="0x0D52" name="GL_RED_BITS"/>
+ <enum value="0x0D53" name="GL_GREEN_BITS"/>
+ <enum value="0x0D54" name="GL_BLUE_BITS"/>
+ <enum value="0x0D55" name="GL_ALPHA_BITS"/>
+ <enum value="0x0D56" name="GL_DEPTH_BITS"/>
+ <enum value="0x0D57" name="GL_STENCIL_BITS"/>
+ <enum value="0x0D58" name="GL_ACCUM_RED_BITS"/>
+ <enum value="0x0D59" name="GL_ACCUM_GREEN_BITS"/>
+ <enum value="0x0D5A" name="GL_ACCUM_BLUE_BITS"/>
+ <enum value="0x0D5B" name="GL_ACCUM_ALPHA_BITS"/>
+
+ <enum value="0x0D70" name="GL_NAME_STACK_DEPTH"/>
+
+ <enum value="0x0D80" name="GL_AUTO_NORMAL"/>
+
+ <enum value="0x0D90" name="GL_MAP1_COLOR_4"/>
+ <enum value="0x0D91" name="GL_MAP1_INDEX"/>
+ <enum value="0x0D92" name="GL_MAP1_NORMAL"/>
+ <enum value="0x0D93" name="GL_MAP1_TEXTURE_COORD_1"/>
+ <enum value="0x0D94" name="GL_MAP1_TEXTURE_COORD_2"/>
+ <enum value="0x0D95" name="GL_MAP1_TEXTURE_COORD_3"/>
+ <enum value="0x0D96" name="GL_MAP1_TEXTURE_COORD_4"/>
+ <enum value="0x0D97" name="GL_MAP1_VERTEX_3"/>
+ <enum value="0x0D98" name="GL_MAP1_VERTEX_4"/>
+
+ <enum value="0x0DB0" name="GL_MAP2_COLOR_4"/>
+ <enum value="0x0DB1" name="GL_MAP2_INDEX"/>
+ <enum value="0x0DB2" name="GL_MAP2_NORMAL"/>
+ <enum value="0x0DB3" name="GL_MAP2_TEXTURE_COORD_1"/>
+ <enum value="0x0DB4" name="GL_MAP2_TEXTURE_COORD_2"/>
+ <enum value="0x0DB5" name="GL_MAP2_TEXTURE_COORD_3"/>
+ <enum value="0x0DB6" name="GL_MAP2_TEXTURE_COORD_4"/>
+ <enum value="0x0DB7" name="GL_MAP2_VERTEX_3"/>
+ <enum value="0x0DB8" name="GL_MAP2_VERTEX_4"/>
+
+ <enum value="0x0DD0" name="GL_MAP1_GRID_DOMAIN"/>
+ <enum value="0x0DD1" name="GL_MAP1_GRID_SEGMENTS"/>
+ <enum value="0x0DD2" name="GL_MAP2_GRID_DOMAIN"/>
+ <enum value="0x0DD3" name="GL_MAP2_GRID_SEGMENTS"/>
+
+ <enum value="0x0DE0" name="GL_TEXTURE_1D"/>
+ <enum value="0x0DE1" name="GL_TEXTURE_2D"/>
+
+ <enum value="0x0DF0" name="GL_FEEDBACK_BUFFER_POINTER"/>
+ <enum value="0x0DF1" name="GL_FEEDBACK_BUFFER_SIZE"/>
+ <enum value="0x0DF2" name="GL_FEEDBACK_BUFFER_TYPE"/>
+ <enum value="0x0DF3" name="GL_SELECTION_BUFFER_POINTER"/>
+ <enum value="0x0DF4" name="GL_SELECTION_BUFFER_SIZE"/>
+ <unused start="0x0DF5" end="0xFFFF" comment="Unused for GetPName"/>
+ <enum value="0x1000" name="GL_TEXTURE_WIDTH"/>
+ <enum value="0x1001" name="GL_TEXTURE_HEIGHT"/>
+ <enum value="0x1003" name="GL_TEXTURE_INTERNAL_FORMAT"/>
+ <enum value="0x1003" name="GL_TEXTURE_COMPONENTS"/>
+ <enum value="0x1004" name="GL_TEXTURE_BORDER_COLOR"/>
+ <enum value="0x1004" name="GL_TEXTURE_BORDER_COLOR_NV"/>
+ <enum value="0x1005" name="GL_TEXTURE_BORDER"/>
+ <unused start="0x1006" end="0x10FF" comment="Unused for GetTextureParameter"/>
+ <enum value="0x1100" name="GL_DONT_CARE"/>
+ <enum value="0x1101" name="GL_FASTEST"/>
+ <enum value="0x1102" name="GL_NICEST"/>
+ <unused start="0x1103" end="0x11FF" comment="Unused for HintMode"/>
+ <enum value="0x1200" name="GL_AMBIENT"/>
+ <enum value="0x1201" name="GL_DIFFUSE"/>
+ <enum value="0x1202" name="GL_SPECULAR"/>
+ <enum value="0x1203" name="GL_POSITION"/>
+ <enum value="0x1204" name="GL_SPOT_DIRECTION"/>
+ <enum value="0x1205" name="GL_SPOT_EXPONENT"/>
+ <enum value="0x1206" name="GL_SPOT_CUTOFF"/>
+ <enum value="0x1207" name="GL_CONSTANT_ATTENUATION"/>
+ <enum value="0x1208" name="GL_LINEAR_ATTENUATION"/>
+ <enum value="0x1209" name="GL_QUADRATIC_ATTENUATION"/>
+ <unused start="0x1210" end="0x12FF" comment="Unused for LightParameter"/>
+ <enum value="0x1300" name="GL_COMPILE"/>
+ <enum value="0x1301" name="GL_COMPILE_AND_EXECUTE"/>
+ <unused start="0x1302" end="0x13FF" comment="Unused for ListMode"/>
+ <enum value="0x1400" name="GL_BYTE"/>
+ <enum value="0x1401" name="GL_UNSIGNED_BYTE"/>
+ <enum value="0x1402" name="GL_SHORT"/>
+ <enum value="0x1403" name="GL_UNSIGNED_SHORT"/>
+ <enum value="0x1404" name="GL_INT"/>
+ <enum value="0x1405" name="GL_UNSIGNED_INT"/>
+ <enum value="0x1406" name="GL_FLOAT"/>
+ <enum value="0x1407" name="GL_2_BYTES"/>
+ <enum value="0x1408" name="GL_3_BYTES"/>
+ <enum value="0x1409" name="GL_4_BYTES"/>
+ <enum value="0x140A" name="GL_DOUBLE"/>
+ <enum value="0x140A" name="GL_DOUBLE_EXT"/>
+ <enum value="0x140B" name="GL_HALF_FLOAT"/>
+ <enum value="0x140B" name="GL_HALF_FLOAT_ARB"/>
+ <enum value="0x140B" name="GL_HALF_FLOAT_NV"/>
+ <enum value="0x140B" name="GL_HALF_APPLE"/>
+ <enum value="0x140C" name="GL_FIXED"/>
+ <enum value="0x140C" name="GL_FIXED_OES"/>
+ <unused start="0x140D" comment="Leave gap to preserve even/odd int/uint token values"/>
+ <enum value="0x140E" name="GL_INT64_NV"/>
+ <enum value="0x140F" name="GL_UNSIGNED_INT64_NV"/>
+ <unused start="0x1410" end="0x14FF" comment="Unused for DataType"/>
+ <enum value="0x1500" name="GL_CLEAR"/>
+ <enum value="0x1501" name="GL_AND"/>
+ <enum value="0x1502" name="GL_AND_REVERSE"/>
+ <enum value="0x1503" name="GL_COPY"/>
+ <enum value="0x1504" name="GL_AND_INVERTED"/>
+ <enum value="0x1505" name="GL_NOOP"/>
+ <enum value="0x1506" name="GL_XOR"/>
+ <enum value="0x1507" name="GL_OR"/>
+ <enum value="0x1508" name="GL_NOR"/>
+ <enum value="0x1509" name="GL_EQUIV"/>
+ <enum value="0x150A" name="GL_INVERT"/>
+ <enum value="0x150B" name="GL_OR_REVERSE"/>
+ <enum value="0x150C" name="GL_COPY_INVERTED"/>
+ <enum value="0x150D" name="GL_OR_INVERTED"/>
+ <enum value="0x150E" name="GL_NAND"/>
+ <enum value="0x150F" name="GL_SET"/>
+ <unused start="0x1510" end="0x15FF" comment="Unused for LogicOp"/>
+ <enum value="0x1600" name="GL_EMISSION"/>
+ <enum value="0x1601" name="GL_SHININESS"/>
+ <enum value="0x1602" name="GL_AMBIENT_AND_DIFFUSE"/>
+ <enum value="0x1603" name="GL_COLOR_INDEXES"/>
+ <unused start="0x1604" end="0x16FF" comment="Unused for MaterialParameter"/>
+ <enum value="0x1700" name="GL_MODELVIEW"/>
+ <enum value="0x1700" name="GL_MODELVIEW0_ARB"/>
+ <enum value="0x1700" name="GL_MODELVIEW0_EXT"/>
+ <enum value="0x1701" name="GL_PROJECTION"/>
+ <enum value="0x1702" name="GL_TEXTURE"/>
+ <unused start="0x1703" end="0x17FF" comment="Unused for MatrixMode"/>
+ <enum value="0x1800" name="GL_COLOR"/>
+ <enum value="0x1800" name="GL_COLOR_EXT"/>
+ <enum value="0x1801" name="GL_DEPTH"/>
+ <enum value="0x1801" name="GL_DEPTH_EXT"/>
+ <enum value="0x1802" name="GL_STENCIL"/>
+ <enum value="0x1802" name="GL_STENCIL_EXT"/>
+ <unused start="0x1803" end="0x18FF" comment="Unused for PixelCopyType"/>
+ <enum value="0x1900" name="GL_COLOR_INDEX"/>
+ <enum value="0x1901" name="GL_STENCIL_INDEX"/>
+ <enum value="0x1902" name="GL_DEPTH_COMPONENT"/>
+ <enum value="0x1903" name="GL_RED"/>
+ <enum value="0x1903" name="GL_RED_EXT"/>
+ <enum value="0x1904" name="GL_GREEN"/>
+ <enum value="0x1905" name="GL_BLUE"/>
+ <enum value="0x1906" name="GL_ALPHA"/>
+ <enum value="0x1907" name="GL_RGB"/>
+ <enum value="0x1908" name="GL_RGBA"/>
+ <enum value="0x1909" name="GL_LUMINANCE"/>
+ <enum value="0x190A" name="GL_LUMINANCE_ALPHA"/>
+ <unused start="0x1910" end="0x19FF" comment="Unused for PixelFormat"/>
+ <enum value="0x1A00" name="GL_BITMAP"/>
+ <unused start="0x1A01" end="0x1AFF" comment="Unused for PixelType"/>
+ <enum value="0x1B00" name="GL_POINT"/>
+ <enum value="0x1B01" name="GL_LINE"/>
+ <enum value="0x1B02" name="GL_FILL"/>
+ <unused start="0x1B03" end="0x1BFF" comment="Unused for PolygonMode"/>
+ <enum value="0x1C00" name="GL_RENDER"/>
+ <enum value="0x1C01" name="GL_FEEDBACK"/>
+ <enum value="0x1C02" name="GL_SELECT"/>
+ <unused start="0x1C03" end="0x1CFF" comment="Unused for RenderingMode"/>
+ <enum value="0x1D00" name="GL_FLAT"/>
+ <enum value="0x1D01" name="GL_SMOOTH"/>
+ <unused start="0x1D02" end="0x1DFF" comment="Unused for ShadingModel"/>
+ <enum value="0x1E00" name="GL_KEEP"/>
+ <enum value="0x1E01" name="GL_REPLACE"/>
+ <enum value="0x1E02" name="GL_INCR"/>
+ <enum value="0x1E03" name="GL_DECR"/>
+ <unused start="0x1E04" end="0x1EFF" comment="Unused for StencilOp"/>
+ <enum value="0x1F00" name="GL_VENDOR"/>
+ <enum value="0x1F01" name="GL_RENDERER"/>
+ <enum value="0x1F02" name="GL_VERSION"/>
+ <enum value="0x1F03" name="GL_EXTENSIONS"/>
+ <unused start="0x1F04" end="0x1FFF" comment="Unused for StringName"/>
+ <enum value="0x2000" name="GL_S"/>
+ <enum value="0x2001" name="GL_T"/>
+ <enum value="0x2002" name="GL_R"/>
+ <enum value="0x2003" name="GL_Q"/>
+ <unused start="0x2004" end="0x20FF" comment="Unused for TextureCoordName"/>
+ <enum value="0x2100" name="GL_MODULATE"/>
+ <enum value="0x2101" name="GL_DECAL"/>
+ <unused start="0x2102" end="0x21FF" comment="Unused for TextureEnvMode"/>
+ <enum value="0x2200" name="GL_TEXTURE_ENV_MODE"/>
+ <enum value="0x2201" name="GL_TEXTURE_ENV_COLOR"/>
+ <unused start="0x2202" end="0x22FF" comment="Unused for TextureEnvParameter"/>
+ <enum value="0x2300" name="GL_TEXTURE_ENV"/>
+ <unused start="0x2301" end="0x23FF" comment="Unused for TextureEnvTarget"/>
+ <enum value="0x2400" name="GL_EYE_LINEAR"/>
+ <enum value="0x2401" name="GL_OBJECT_LINEAR"/>
+ <enum value="0x2402" name="GL_SPHERE_MAP"/>
+ <unused start="0x2403" end="0x24FF" comment="Unused for TextureGenMode"/>
+ <enum value="0x2500" name="GL_TEXTURE_GEN_MODE"/>
+ <enum value="0x2501" name="GL_OBJECT_PLANE"/>
+ <enum value="0x2502" name="GL_EYE_PLANE"/>
+ <unused start="0x2503" end="0x25FF" comment="Unused for TextureGenParameter"/>
+ <enum value="0x2600" name="GL_NEAREST"/>
+ <enum value="0x2601" name="GL_LINEAR"/>
+ <unused start="0x2602" end="0x26FF" comment="Unused for TextureMagFilter"/>
+ <enum value="0x2700" name="GL_NEAREST_MIPMAP_NEAREST"/>
+ <enum value="0x2701" name="GL_LINEAR_MIPMAP_NEAREST"/>
+ <enum value="0x2702" name="GL_NEAREST_MIPMAP_LINEAR"/>
+ <enum value="0x2703" name="GL_LINEAR_MIPMAP_LINEAR"/>
+ <unused start="0x2704" end="0x27FF" comment="Unused for TextureMinFilter"/>
+ <enum value="0x2800" name="GL_TEXTURE_MAG_FILTER"/>
+ <enum value="0x2801" name="GL_TEXTURE_MIN_FILTER"/>
+ <enum value="0x2802" name="GL_TEXTURE_WRAP_S"/>
+ <enum value="0x2803" name="GL_TEXTURE_WRAP_T"/>
+ <unused start="0x2804" end="0x28FF" comment="Unused for TextureParameterName"/>
+ <enum value="0x2900" name="GL_CLAMP"/>
+ <enum value="0x2901" name="GL_REPEAT"/>
+ <unused start="0x2902" end="0x29FF" comment="Unused for TextureWrapMode"/>
+ <enum value="0x2A00" name="GL_POLYGON_OFFSET_UNITS"/>
+ <enum value="0x2A01" name="GL_POLYGON_OFFSET_POINT"/>
+ <enum value="0x2A02" name="GL_POLYGON_OFFSET_LINE"/>
+ <unused start="0x2A03" end="0x2A09" comment="Unused for PolygonOffset"/>
+ <enum value="0x2A10" name="GL_R3_G3_B2"/>
+ <unused start="0x2A11" end="0x2A1F" comment="Unused for InternalFormat"/>
+ <enum value="0x2A20" name="GL_V2F"/>
+ <enum value="0x2A21" name="GL_V3F"/>
+ <enum value="0x2A22" name="GL_C4UB_V2F"/>
+ <enum value="0x2A23" name="GL_C4UB_V3F"/>
+ <enum value="0x2A24" name="GL_C3F_V3F"/>
+ <enum value="0x2A25" name="GL_N3F_V3F"/>
+ <enum value="0x2A26" name="GL_C4F_N3F_V3F"/>
+ <enum value="0x2A27" name="GL_T2F_V3F"/>
+ <enum value="0x2A28" name="GL_T4F_V4F"/>
+ <enum value="0x2A29" name="GL_T2F_C4UB_V3F"/>
+ <enum value="0x2A2A" name="GL_T2F_C3F_V3F"/>
+ <enum value="0x2A2B" name="GL_T2F_N3F_V3F"/>
+ <enum value="0x2A2C" name="GL_T2F_C4F_N3F_V3F"/>
+ <enum value="0x2A2D" name="GL_T4F_C4F_N3F_V4F"/>
+ <unused start="0x2A2E" end="0x2FFF" comment="Unused for InterleavedArrayFormat"/>
+ <enum value="0x3000" name="GL_CLIP_PLANE0"/>
+ <enum value="0x3000" name="GL_CLIP_DISTANCE0" alias="GL_CLIP_PLANE0"/>
+ <enum value="0x3001" name="GL_CLIP_PLANE1"/>
+ <enum value="0x3001" name="GL_CLIP_DISTANCE1" alias="GL_CLIP_PLANE1"/>
+ <enum value="0x3002" name="GL_CLIP_PLANE2"/>
+ <enum value="0x3002" name="GL_CLIP_DISTANCE2" alias="GL_CLIP_PLANE2"/>
+ <enum value="0x3003" name="GL_CLIP_PLANE3"/>
+ <enum value="0x3003" name="GL_CLIP_DISTANCE3" alias="GL_CLIP_PLANE3"/>
+ <enum value="0x3004" name="GL_CLIP_PLANE4"/>
+ <enum value="0x3004" name="GL_CLIP_DISTANCE4" alias="GL_CLIP_PLANE4"/>
+ <enum value="0x3005" name="GL_CLIP_PLANE5"/>
+ <enum value="0x3005" name="GL_CLIP_DISTANCE5" alias="GL_CLIP_PLANE5"/>
+ <enum value="0x3006" name="GL_CLIP_DISTANCE6"/>
+ <enum value="0x3007" name="GL_CLIP_DISTANCE7"/>
+ <unused start="0x3008" end="0x3FFF" comment="Unused for ClipPlaneName"/>
+ <enum value="0x4000" name="GL_LIGHT0"/>
+ <enum value="0x4001" name="GL_LIGHT1"/>
+ <enum value="0x4002" name="GL_LIGHT2"/>
+ <enum value="0x4003" name="GL_LIGHT3"/>
+ <enum value="0x4004" name="GL_LIGHT4"/>
+ <enum value="0x4005" name="GL_LIGHT5"/>
+ <enum value="0x4006" name="GL_LIGHT6"/>
+ <enum value="0x4007" name="GL_LIGHT7"/>
+ <unused start="0x4008" end="0x4FFF" comment="Unused for LightName"/>
+ <unused start="0x5000" end="0x5FFF" comment="Unused. Do not use."/>
+ <unused start="0x6000" end="0x6FFF" comment="Experimental (internal/test only) range. DO NOT SHIP VALUES IN THIS RANGE."/>
+ <unused start="0x7000" end="0x7FFF" comment="Unused. Do not use."/>
+ </enums>
+
+ <enums namespace="GL" start="0x8000" end="0x80BF" vendor="SGI" comment="The primary GL enumerant space begins here. All modern enum allocations are in this range. These enums are mostly assigned the default class since it's a great deal of not very useful work to be more specific"/>
+
+ <enums namespace="GL" vendor="ARB">
+ <enum value="0x8000" name="GL_ABGR_EXT"/>
+ <enum value="0x8001" name="GL_CONSTANT_COLOR"/>
+ <enum value="0x8001" name="GL_CONSTANT_COLOR_EXT"/>
+ <enum value="0x8002" name="GL_ONE_MINUS_CONSTANT_COLOR"/>
+ <enum value="0x8002" name="GL_ONE_MINUS_CONSTANT_COLOR_EXT"/>
+ <enum value="0x8003" name="GL_CONSTANT_ALPHA"/>
+ <enum value="0x8003" name="GL_CONSTANT_ALPHA_EXT"/>
+ <enum value="0x8004" name="GL_ONE_MINUS_CONSTANT_ALPHA"/>
+ <enum value="0x8004" name="GL_ONE_MINUS_CONSTANT_ALPHA_EXT"/>
+ <enum value="0x8005" name="GL_BLEND_COLOR"/>
+ <enum value="0x8005" name="GL_BLEND_COLOR_EXT"/>
+ <enum value="0x8006" name="GL_FUNC_ADD"/>
+ <enum value="0x8006" name="GL_FUNC_ADD_EXT"/>
+ <enum value="0x8006" name="GL_FUNC_ADD_OES"/>
+ <enum value="0x8007" name="GL_MIN"/>
+ <enum value="0x8007" name="GL_MIN_EXT"/>
+ <enum value="0x8008" name="GL_MAX"/>
+ <enum value="0x8008" name="GL_MAX_EXT"/>
+ <enum value="0x8009" name="GL_BLEND_EQUATION"/>
+ <enum value="0x8009" name="GL_BLEND_EQUATION_EXT"/>
+ <enum value="0x8009" name="GL_BLEND_EQUATION_OES"/>
+ <enum value="0x8009" name="GL_BLEND_EQUATION_RGB"/>
+ <enum value="0x8009" name="GL_BLEND_EQUATION_RGB_EXT"/>
+ <enum value="0x8009" name="GL_BLEND_EQUATION_RGB_OES"/>
+ <enum value="0x800A" name="GL_FUNC_SUBTRACT"/>
+ <enum value="0x800A" name="GL_FUNC_SUBTRACT_EXT"/>
+ <enum value="0x800A" name="GL_FUNC_SUBTRACT_OES"/>
+ <enum value="0x800B" name="GL_FUNC_REVERSE_SUBTRACT"/>
+ <enum value="0x800B" name="GL_FUNC_REVERSE_SUBTRACT_EXT"/>
+ <enum value="0x800B" name="GL_FUNC_REVERSE_SUBTRACT_OES"/>
+ <enum value="0x800C" name="GL_CMYK_EXT"/>
+ <enum value="0x800D" name="GL_CMYKA_EXT"/>
+ <enum value="0x800E" name="GL_PACK_CMYK_HINT_EXT"/>
+ <enum value="0x800F" name="GL_UNPACK_CMYK_HINT_EXT"/>
+ <enum value="0x8010" name="GL_CONVOLUTION_1D"/>
+ <enum value="0x8010" name="GL_CONVOLUTION_1D_EXT"/>
+ <enum value="0x8011" name="GL_CONVOLUTION_2D"/>
+ <enum value="0x8011" name="GL_CONVOLUTION_2D_EXT"/>
+ <enum value="0x8012" name="GL_SEPARABLE_2D"/>
+ <enum value="0x8012" name="GL_SEPARABLE_2D_EXT"/>
+ <enum value="0x8013" name="GL_CONVOLUTION_BORDER_MODE"/>
+ <enum value="0x8013" name="GL_CONVOLUTION_BORDER_MODE_EXT"/>
+ <enum value="0x8014" name="GL_CONVOLUTION_FILTER_SCALE"/>
+ <enum value="0x8014" name="GL_CONVOLUTION_FILTER_SCALE_EXT"/>
+ <enum value="0x8015" name="GL_CONVOLUTION_FILTER_BIAS"/>
+ <enum value="0x8015" name="GL_CONVOLUTION_FILTER_BIAS_EXT"/>
+ <enum value="0x8016" name="GL_REDUCE"/>
+ <enum value="0x8016" name="GL_REDUCE_EXT"/>
+ <enum value="0x8017" name="GL_CONVOLUTION_FORMAT"/>
+ <enum value="0x8017" name="GL_CONVOLUTION_FORMAT_EXT"/>
+ <enum value="0x8018" name="GL_CONVOLUTION_WIDTH"/>
+ <enum value="0x8018" name="GL_CONVOLUTION_WIDTH_EXT"/>
+ <enum value="0x8019" name="GL_CONVOLUTION_HEIGHT"/>
+ <enum value="0x8019" name="GL_CONVOLUTION_HEIGHT_EXT"/>
+ <enum value="0x801A" name="GL_MAX_CONVOLUTION_WIDTH"/>
+ <enum value="0x801A" name="GL_MAX_CONVOLUTION_WIDTH_EXT"/>
+ <enum value="0x801B" name="GL_MAX_CONVOLUTION_HEIGHT"/>
+ <enum value="0x801B" name="GL_MAX_CONVOLUTION_HEIGHT_EXT"/>
+ <enum value="0x801C" name="GL_POST_CONVOLUTION_RED_SCALE"/>
+ <enum value="0x801C" name="GL_POST_CONVOLUTION_RED_SCALE_EXT"/>
+ <enum value="0x801D" name="GL_POST_CONVOLUTION_GREEN_SCALE"/>
+ <enum value="0x801D" name="GL_POST_CONVOLUTION_GREEN_SCALE_EXT"/>
+ <enum value="0x801E" name="GL_POST_CONVOLUTION_BLUE_SCALE"/>
+ <enum value="0x801E" name="GL_POST_CONVOLUTION_BLUE_SCALE_EXT"/>
+ <enum value="0x801F" name="GL_POST_CONVOLUTION_ALPHA_SCALE"/>
+ <enum value="0x801F" name="GL_POST_CONVOLUTION_ALPHA_SCALE_EXT"/>
+ <enum value="0x8020" name="GL_POST_CONVOLUTION_RED_BIAS"/>
+ <enum value="0x8020" name="GL_POST_CONVOLUTION_RED_BIAS_EXT"/>
+ <enum value="0x8021" name="GL_POST_CONVOLUTION_GREEN_BIAS"/>
+ <enum value="0x8021" name="GL_POST_CONVOLUTION_GREEN_BIAS_EXT"/>
+ <enum value="0x8022" name="GL_POST_CONVOLUTION_BLUE_BIAS"/>
+ <enum value="0x8022" name="GL_POST_CONVOLUTION_BLUE_BIAS_EXT"/>
+ <enum value="0x8023" name="GL_POST_CONVOLUTION_ALPHA_BIAS"/>
+ <enum value="0x8023" name="GL_POST_CONVOLUTION_ALPHA_BIAS_EXT"/>
+ <enum value="0x8024" name="GL_HISTOGRAM"/>
+ <enum value="0x8024" name="GL_HISTOGRAM_EXT"/>
+ <enum value="0x8025" name="GL_PROXY_HISTOGRAM"/>
+ <enum value="0x8025" name="GL_PROXY_HISTOGRAM_EXT"/>
+ <enum value="0x8026" name="GL_HISTOGRAM_WIDTH"/>
+ <enum value="0x8026" name="GL_HISTOGRAM_WIDTH_EXT"/>
+ <enum value="0x8027" name="GL_HISTOGRAM_FORMAT"/>
+ <enum value="0x8027" name="GL_HISTOGRAM_FORMAT_EXT"/>
+ <enum value="0x8028" name="GL_HISTOGRAM_RED_SIZE"/>
+ <enum value="0x8028" name="GL_HISTOGRAM_RED_SIZE_EXT"/>
+ <enum value="0x8029" name="GL_HISTOGRAM_GREEN_SIZE"/>
+ <enum value="0x8029" name="GL_HISTOGRAM_GREEN_SIZE_EXT"/>
+ <enum value="0x802A" name="GL_HISTOGRAM_BLUE_SIZE"/>
+ <enum value="0x802A" name="GL_HISTOGRAM_BLUE_SIZE_EXT"/>
+ <enum value="0x802B" name="GL_HISTOGRAM_ALPHA_SIZE"/>
+ <enum value="0x802B" name="GL_HISTOGRAM_ALPHA_SIZE_EXT"/>
+ <enum value="0x802C" name="GL_HISTOGRAM_LUMINANCE_SIZE"/>
+ <enum value="0x802C" name="GL_HISTOGRAM_LUMINANCE_SIZE_EXT"/>
+ <enum value="0x802D" name="GL_HISTOGRAM_SINK"/>
+ <enum value="0x802D" name="GL_HISTOGRAM_SINK_EXT"/>
+ <enum value="0x802E" name="GL_MINMAX"/>
+ <enum value="0x802E" name="GL_MINMAX_EXT"/>
+ <enum value="0x802F" name="GL_MINMAX_FORMAT"/>
+ <enum value="0x802F" name="GL_MINMAX_FORMAT_EXT"/>
+ <enum value="0x8030" name="GL_MINMAX_SINK"/>
+ <enum value="0x8030" name="GL_MINMAX_SINK_EXT"/>
+ <enum value="0x8031" name="GL_TABLE_TOO_LARGE_EXT"/>
+ <enum value="0x8031" name="GL_TABLE_TOO_LARGE"/>
+ <enum value="0x8032" name="GL_UNSIGNED_BYTE_3_3_2"/>
+ <enum value="0x8032" name="GL_UNSIGNED_BYTE_3_3_2_EXT"/>
+ <enum value="0x8033" name="GL_UNSIGNED_SHORT_4_4_4_4"/>
+ <enum value="0x8033" name="GL_UNSIGNED_SHORT_4_4_4_4_EXT"/>
+ <enum value="0x8034" name="GL_UNSIGNED_SHORT_5_5_5_1"/>
+ <enum value="0x8034" name="GL_UNSIGNED_SHORT_5_5_5_1_EXT"/>
+ <enum value="0x8035" name="GL_UNSIGNED_INT_8_8_8_8"/>
+ <enum value="0x8035" name="GL_UNSIGNED_INT_8_8_8_8_EXT"/>
+ <enum value="0x8036" name="GL_UNSIGNED_INT_10_10_10_2"/>
+ <enum value="0x8036" name="GL_UNSIGNED_INT_10_10_10_2_EXT"/>
+ <enum value="0x8037" name="GL_POLYGON_OFFSET_EXT"/>
+ <enum value="0x8037" name="GL_POLYGON_OFFSET_FILL"/>
+ <enum value="0x8038" name="GL_POLYGON_OFFSET_FACTOR"/>
+ <enum value="0x8038" name="GL_POLYGON_OFFSET_FACTOR_EXT"/>
+ <enum value="0x8039" name="GL_POLYGON_OFFSET_BIAS_EXT"/>
+ <enum value="0x803A" name="GL_RESCALE_NORMAL"/>
+ <enum value="0x803A" name="GL_RESCALE_NORMAL_EXT"/>
+ <enum value="0x803B" name="GL_ALPHA4"/>
+ <enum value="0x803B" name="GL_ALPHA4_EXT"/>
+ <enum value="0x803C" name="GL_ALPHA8"/>
+ <enum value="0x803C" name="GL_ALPHA8_EXT"/>
+ <enum value="0x803D" name="GL_ALPHA12"/>
+ <enum value="0x803D" name="GL_ALPHA12_EXT"/>
+ <enum value="0x803E" name="GL_ALPHA16"/>
+ <enum value="0x803E" name="GL_ALPHA16_EXT"/>
+ <enum value="0x803F" name="GL_LUMINANCE4"/>
+ <enum value="0x803F" name="GL_LUMINANCE4_EXT"/>
+ <enum value="0x8040" name="GL_LUMINANCE8"/>
+ <enum value="0x8040" name="GL_LUMINANCE8_EXT"/>
+ <enum value="0x8041" name="GL_LUMINANCE12"/>
+ <enum value="0x8041" name="GL_LUMINANCE12_EXT"/>
+ <enum value="0x8042" name="GL_LUMINANCE16"/>
+ <enum value="0x8042" name="GL_LUMINANCE16_EXT"/>
+ <enum value="0x8043" name="GL_LUMINANCE4_ALPHA4"/>
+ <enum value="0x8043" name="GL_LUMINANCE4_ALPHA4_EXT"/>
+ <enum value="0x8044" name="GL_LUMINANCE6_ALPHA2"/>
+ <enum value="0x8044" name="GL_LUMINANCE6_ALPHA2_EXT"/>
+ <enum value="0x8045" name="GL_LUMINANCE8_ALPHA8"/>
+ <enum value="0x8045" name="GL_LUMINANCE8_ALPHA8_EXT"/>
+ <enum value="0x8046" name="GL_LUMINANCE12_ALPHA4"/>
+ <enum value="0x8046" name="GL_LUMINANCE12_ALPHA4_EXT"/>
+ <enum value="0x8047" name="GL_LUMINANCE12_ALPHA12"/>
+ <enum value="0x8047" name="GL_LUMINANCE12_ALPHA12_EXT"/>
+ <enum value="0x8048" name="GL_LUMINANCE16_ALPHA16"/>
+ <enum value="0x8048" name="GL_LUMINANCE16_ALPHA16_EXT"/>
+ <enum value="0x8049" name="GL_INTENSITY"/>
+ <enum value="0x8049" name="GL_INTENSITY_EXT"/>
+ <enum value="0x804A" name="GL_INTENSITY4"/>
+ <enum value="0x804A" name="GL_INTENSITY4_EXT"/>
+ <enum value="0x804B" name="GL_INTENSITY8"/>
+ <enum value="0x804B" name="GL_INTENSITY8_EXT"/>
+ <enum value="0x804C" name="GL_INTENSITY12"/>
+ <enum value="0x804C" name="GL_INTENSITY12_EXT"/>
+ <enum value="0x804D" name="GL_INTENSITY16"/>
+ <enum value="0x804D" name="GL_INTENSITY16_EXT"/>
+ <enum value="0x804E" name="GL_RGB2_EXT"/>
+ <enum value="0x804F" name="GL_RGB4"/>
+ <enum value="0x804F" name="GL_RGB4_EXT"/>
+ <enum value="0x8050" name="GL_RGB5"/>
+ <enum value="0x8050" name="GL_RGB5_EXT"/>
+ <enum value="0x8051" name="GL_RGB8"/>
+ <enum value="0x8051" name="GL_RGB8_EXT"/>
+ <enum value="0x8052" name="GL_RGB10"/>
+ <enum value="0x8052" name="GL_RGB10_EXT"/>
+ <enum value="0x8053" name="GL_RGB12"/>
+ <enum value="0x8053" name="GL_RGB12_EXT"/>
+ <enum value="0x8054" name="GL_RGB16"/>
+ <enum value="0x8054" name="GL_RGB16_EXT"/>
+ <enum value="0x8055" name="GL_RGBA2"/>
+ <enum value="0x8055" name="GL_RGBA2_EXT"/>
+ <enum value="0x8056" name="GL_RGBA4"/>
+ <enum value="0x8056" name="GL_RGBA4_EXT"/>
+ <enum value="0x8056" name="GL_RGBA4_OES"/>
+ <enum value="0x8057" name="GL_RGB5_A1"/>
+ <enum value="0x8057" name="GL_RGB5_A1_EXT"/>
+ <enum value="0x8057" name="GL_RGB5_A1_OES"/>
+ <enum value="0x8058" name="GL_RGBA8"/>
+ <enum value="0x8058" name="GL_RGBA8_EXT"/>
+ <enum value="0x8058" name="GL_RGBA8_OES"/>
+ <enum value="0x8059" name="GL_RGB10_A2"/>
+ <enum value="0x8059" name="GL_RGB10_A2_EXT"/>
+ <enum value="0x805A" name="GL_RGBA12"/>
+ <enum value="0x805A" name="GL_RGBA12_EXT"/>
+ <enum value="0x805B" name="GL_RGBA16"/>
+ <enum value="0x805B" name="GL_RGBA16_EXT"/>
+ <enum value="0x805C" name="GL_TEXTURE_RED_SIZE"/>
+ <enum value="0x805C" name="GL_TEXTURE_RED_SIZE_EXT"/>
+ <enum value="0x805D" name="GL_TEXTURE_GREEN_SIZE"/>
+ <enum value="0x805D" name="GL_TEXTURE_GREEN_SIZE_EXT"/>
+ <enum value="0x805E" name="GL_TEXTURE_BLUE_SIZE"/>
+ <enum value="0x805E" name="GL_TEXTURE_BLUE_SIZE_EXT"/>
+ <enum value="0x805F" name="GL_TEXTURE_ALPHA_SIZE"/>
+ <enum value="0x805F" name="GL_TEXTURE_ALPHA_SIZE_EXT"/>
+ <enum value="0x8060" name="GL_TEXTURE_LUMINANCE_SIZE"/>
+ <enum value="0x8060" name="GL_TEXTURE_LUMINANCE_SIZE_EXT"/>
+ <enum value="0x8061" name="GL_TEXTURE_INTENSITY_SIZE"/>
+ <enum value="0x8061" name="GL_TEXTURE_INTENSITY_SIZE_EXT"/>
+ <enum value="0x8062" name="GL_REPLACE_EXT"/>
+ <enum value="0x8063" name="GL_PROXY_TEXTURE_1D"/>
+ <enum value="0x8063" name="GL_PROXY_TEXTURE_1D_EXT"/>
+ <enum value="0x8064" name="GL_PROXY_TEXTURE_2D"/>
+ <enum value="0x8064" name="GL_PROXY_TEXTURE_2D_EXT"/>
+ <enum value="0x8065" name="GL_TEXTURE_TOO_LARGE_EXT"/>
+ <enum value="0x8066" name="GL_TEXTURE_PRIORITY"/>
+ <enum value="0x8066" name="GL_TEXTURE_PRIORITY_EXT"/>
+ <enum value="0x8067" name="GL_TEXTURE_RESIDENT"/>
+ <enum value="0x8067" name="GL_TEXTURE_RESIDENT_EXT"/>
+ <enum value="0x8068" name="GL_TEXTURE_1D_BINDING_EXT"/>
+ <enum value="0x8068" name="GL_TEXTURE_BINDING_1D"/>
+ <enum value="0x8069" name="GL_TEXTURE_2D_BINDING_EXT"/>
+ <enum value="0x8069" name="GL_TEXTURE_BINDING_2D"/>
+ <enum value="0x806A" name="GL_TEXTURE_3D_BINDING_EXT"/>
+ <enum value="0x806A" name="GL_TEXTURE_3D_BINDING_OES"/>
+ <enum value="0x806A" name="GL_TEXTURE_BINDING_3D"/>
+ <enum value="0x806B" name="GL_PACK_SKIP_IMAGES"/>
+ <enum value="0x806B" name="GL_PACK_SKIP_IMAGES_EXT"/>
+ <enum value="0x806C" name="GL_PACK_IMAGE_HEIGHT"/>
+ <enum value="0x806C" name="GL_PACK_IMAGE_HEIGHT_EXT"/>
+ <enum value="0x806D" name="GL_UNPACK_SKIP_IMAGES"/>
+ <enum value="0x806D" name="GL_UNPACK_SKIP_IMAGES_EXT"/>
+ <enum value="0x806E" name="GL_UNPACK_IMAGE_HEIGHT"/>
+ <enum value="0x806E" name="GL_UNPACK_IMAGE_HEIGHT_EXT"/>
+ <enum value="0x806F" name="GL_TEXTURE_3D"/>
+ <enum value="0x806F" name="GL_TEXTURE_3D_EXT"/>
+ <enum value="0x806F" name="GL_TEXTURE_3D_OES"/>
+ <enum value="0x8070" name="GL_PROXY_TEXTURE_3D"/>
+ <enum value="0x8070" name="GL_PROXY_TEXTURE_3D_EXT"/>
+ <enum value="0x8071" name="GL_TEXTURE_DEPTH"/>
+ <enum value="0x8071" name="GL_TEXTURE_DEPTH_EXT"/>
+ <enum value="0x8072" name="GL_TEXTURE_WRAP_R"/>
+ <enum value="0x8072" name="GL_TEXTURE_WRAP_R_EXT"/>
+ <enum value="0x8072" name="GL_TEXTURE_WRAP_R_OES"/>
+ <enum value="0x8073" name="GL_MAX_3D_TEXTURE_SIZE"/>
+ <enum value="0x8073" name="GL_MAX_3D_TEXTURE_SIZE_EXT"/>
+ <enum value="0x8073" name="GL_MAX_3D_TEXTURE_SIZE_OES"/>
+ <enum value="0x8074" name="GL_VERTEX_ARRAY"/>
+ <enum value="0x8074" name="GL_VERTEX_ARRAY_EXT"/>
+ <enum value="0x8075" name="GL_NORMAL_ARRAY"/>
+ <enum value="0x8075" name="GL_NORMAL_ARRAY_EXT"/>
+ <enum value="0x8076" name="GL_COLOR_ARRAY"/>
+ <enum value="0x8076" name="GL_COLOR_ARRAY_EXT"/>
+ <enum value="0x8077" name="GL_INDEX_ARRAY"/>
+ <enum value="0x8077" name="GL_INDEX_ARRAY_EXT"/>
+ <enum value="0x8078" name="GL_TEXTURE_COORD_ARRAY"/>
+ <enum value="0x8078" name="GL_TEXTURE_COORD_ARRAY_EXT"/>
+ <enum value="0x8079" name="GL_EDGE_FLAG_ARRAY"/>
+ <enum value="0x8079" name="GL_EDGE_FLAG_ARRAY_EXT"/>
+ <enum value="0x807A" name="GL_VERTEX_ARRAY_SIZE"/>
+ <enum value="0x807A" name="GL_VERTEX_ARRAY_SIZE_EXT"/>
+ <enum value="0x807B" name="GL_VERTEX_ARRAY_TYPE"/>
+ <enum value="0x807B" name="GL_VERTEX_ARRAY_TYPE_EXT"/>
+ <enum value="0x807C" name="GL_VERTEX_ARRAY_STRIDE"/>
+ <enum value="0x807C" name="GL_VERTEX_ARRAY_STRIDE_EXT"/>
+ <enum value="0x807D" name="GL_VERTEX_ARRAY_COUNT_EXT"/>
+ <enum value="0x807E" name="GL_NORMAL_ARRAY_TYPE"/>
+ <enum value="0x807E" name="GL_NORMAL_ARRAY_TYPE_EXT"/>
+ <enum value="0x807F" name="GL_NORMAL_ARRAY_STRIDE"/>
+ <enum value="0x807F" name="GL_NORMAL_ARRAY_STRIDE_EXT"/>
+ <enum value="0x8080" name="GL_NORMAL_ARRAY_COUNT_EXT"/>
+ <enum value="0x8081" name="GL_COLOR_ARRAY_SIZE"/>
+ <enum value="0x8081" name="GL_COLOR_ARRAY_SIZE_EXT"/>
+ <enum value="0x8082" name="GL_COLOR_ARRAY_TYPE"/>
+ <enum value="0x8082" name="GL_COLOR_ARRAY_TYPE_EXT"/>
+ <enum value="0x8083" name="GL_COLOR_ARRAY_STRIDE"/>
+ <enum value="0x8083" name="GL_COLOR_ARRAY_STRIDE_EXT"/>
+ <enum value="0x8084" name="GL_COLOR_ARRAY_COUNT_EXT"/>
+ <enum value="0x8085" name="GL_INDEX_ARRAY_TYPE"/>
+ <enum value="0x8085" name="GL_INDEX_ARRAY_TYPE_EXT"/>
+ <enum value="0x8086" name="GL_INDEX_ARRAY_STRIDE"/>
+ <enum value="0x8086" name="GL_INDEX_ARRAY_STRIDE_EXT"/>
+ <enum value="0x8087" name="GL_INDEX_ARRAY_COUNT_EXT"/>
+ <enum value="0x8088" name="GL_TEXTURE_COORD_ARRAY_SIZE"/>
+ <enum value="0x8088" name="GL_TEXTURE_COORD_ARRAY_SIZE_EXT"/>
+ <enum value="0x8089" name="GL_TEXTURE_COORD_ARRAY_TYPE"/>
+ <enum value="0x8089" name="GL_TEXTURE_COORD_ARRAY_TYPE_EXT"/>
+ <enum value="0x808A" name="GL_TEXTURE_COORD_ARRAY_STRIDE"/>
+ <enum value="0x808A" name="GL_TEXTURE_COORD_ARRAY_STRIDE_EXT"/>
+ <enum value="0x808B" name="GL_TEXTURE_COORD_ARRAY_COUNT_EXT"/>
+ <enum value="0x808C" name="GL_EDGE_FLAG_ARRAY_STRIDE"/>
+ <enum value="0x808C" name="GL_EDGE_FLAG_ARRAY_STRIDE_EXT"/>
+ <enum value="0x808D" name="GL_EDGE_FLAG_ARRAY_COUNT_EXT"/>
+ <enum value="0x808E" name="GL_VERTEX_ARRAY_POINTER"/>
+ <enum value="0x808E" name="GL_VERTEX_ARRAY_POINTER_EXT"/>
+ <enum value="0x808F" name="GL_NORMAL_ARRAY_POINTER"/>
+ <enum value="0x808F" name="GL_NORMAL_ARRAY_POINTER_EXT"/>
+ <enum value="0x8090" name="GL_COLOR_ARRAY_POINTER"/>
+ <enum value="0x8090" name="GL_COLOR_ARRAY_POINTER_EXT"/>
+ <enum value="0x8091" name="GL_INDEX_ARRAY_POINTER"/>
+ <enum value="0x8091" name="GL_INDEX_ARRAY_POINTER_EXT"/>
+ <enum value="0x8092" name="GL_TEXTURE_COORD_ARRAY_POINTER"/>
+ <enum value="0x8092" name="GL_TEXTURE_COORD_ARRAY_POINTER_EXT"/>
+ <enum value="0x8093" name="GL_EDGE_FLAG_ARRAY_POINTER"/>
+ <enum value="0x8093" name="GL_EDGE_FLAG_ARRAY_POINTER_EXT"/>
+ <enum value="0x8094" name="GL_INTERLACE_SGIX"/>
+ <enum value="0x8095" name="GL_DETAIL_TEXTURE_2D_SGIS"/>
+ <enum value="0x8096" name="GL_DETAIL_TEXTURE_2D_BINDING_SGIS"/>
+ <enum value="0x8097" name="GL_LINEAR_DETAIL_SGIS"/>
+ <enum value="0x8098" name="GL_LINEAR_DETAIL_ALPHA_SGIS"/>
+ <enum value="0x8099" name="GL_LINEAR_DETAIL_COLOR_SGIS"/>
+ <enum value="0x809A" name="GL_DETAIL_TEXTURE_LEVEL_SGIS"/>
+ <enum value="0x809B" name="GL_DETAIL_TEXTURE_MODE_SGIS"/>
+ <enum value="0x809C" name="GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS"/>
+ <enum value="0x809D" name="GL_MULTISAMPLE"/>
+ <enum value="0x809D" name="GL_MULTISAMPLE_ARB"/>
+ <enum value="0x809D" name="GL_MULTISAMPLE_EXT"/>
+ <enum value="0x809D" name="GL_MULTISAMPLE_SGIS"/>
+ <enum value="0x809E" name="GL_SAMPLE_ALPHA_TO_COVERAGE"/>
+ <enum value="0x809E" name="GL_SAMPLE_ALPHA_TO_COVERAGE_ARB"/>
+ <enum value="0x809E" name="GL_SAMPLE_ALPHA_TO_MASK_EXT"/>
+ <enum value="0x809E" name="GL_SAMPLE_ALPHA_TO_MASK_SGIS"/>
+ <enum value="0x809F" name="GL_SAMPLE_ALPHA_TO_ONE"/>
+ <enum value="0x809F" name="GL_SAMPLE_ALPHA_TO_ONE_ARB"/>
+ <enum value="0x809F" name="GL_SAMPLE_ALPHA_TO_ONE_EXT"/>
+ <enum value="0x809F" name="GL_SAMPLE_ALPHA_TO_ONE_SGIS"/>
+ <enum value="0x80A0" name="GL_SAMPLE_COVERAGE"/>
+ <enum value="0x80A0" name="GL_SAMPLE_COVERAGE_ARB"/>
+ <enum value="0x80A0" name="GL_SAMPLE_MASK_EXT"/>
+ <enum value="0x80A0" name="GL_SAMPLE_MASK_SGIS"/>
+ <enum value="0x80A1" name="GL_1PASS_EXT"/>
+ <enum value="0x80A1" name="GL_1PASS_SGIS"/>
+ <enum value="0x80A2" name="GL_2PASS_0_EXT"/>
+ <enum value="0x80A2" name="GL_2PASS_0_SGIS"/>
+ <enum value="0x80A3" name="GL_2PASS_1_EXT"/>
+ <enum value="0x80A3" name="GL_2PASS_1_SGIS"/>
+ <enum value="0x80A4" name="GL_4PASS_0_EXT"/>
+ <enum value="0x80A4" name="GL_4PASS_0_SGIS"/>
+ <enum value="0x80A5" name="GL_4PASS_1_EXT"/>
+ <enum value="0x80A5" name="GL_4PASS_1_SGIS"/>
+ <enum value="0x80A6" name="GL_4PASS_2_EXT"/>
+ <enum value="0x80A6" name="GL_4PASS_2_SGIS"/>
+ <enum value="0x80A7" name="GL_4PASS_3_EXT"/>
+ <enum value="0x80A7" name="GL_4PASS_3_SGIS"/>
+ <enum value="0x80A8" name="GL_SAMPLE_BUFFERS"/>
+ <enum value="0x80A8" name="GL_SAMPLE_BUFFERS_ARB"/>
+ <enum value="0x80A8" name="GL_SAMPLE_BUFFERS_EXT"/>
+ <enum value="0x80A8" name="GL_SAMPLE_BUFFERS_SGIS"/>
+ <enum value="0x80A9" name="GL_SAMPLES"/>
+ <enum value="0x80A9" name="GL_SAMPLES_ARB"/>
+ <enum value="0x80A9" name="GL_SAMPLES_EXT"/>
+ <enum value="0x80A9" name="GL_SAMPLES_SGIS"/>
+ <enum value="0x80AA" name="GL_SAMPLE_COVERAGE_VALUE"/>
+ <enum value="0x80AA" name="GL_SAMPLE_COVERAGE_VALUE_ARB"/>
+ <enum value="0x80AA" name="GL_SAMPLE_MASK_VALUE_EXT"/>
+ <enum value="0x80AA" name="GL_SAMPLE_MASK_VALUE_SGIS"/>
+ <enum value="0x80AB" name="GL_SAMPLE_COVERAGE_INVERT"/>
+ <enum value="0x80AB" name="GL_SAMPLE_COVERAGE_INVERT_ARB"/>
+ <enum value="0x80AB" name="GL_SAMPLE_MASK_INVERT_EXT"/>
+ <enum value="0x80AB" name="GL_SAMPLE_MASK_INVERT_SGIS"/>
+ <enum value="0x80AC" name="GL_SAMPLE_PATTERN_EXT"/>
+ <enum value="0x80AC" name="GL_SAMPLE_PATTERN_SGIS"/>
+ <enum value="0x80AD" name="GL_LINEAR_SHARPEN_SGIS"/>
+ <enum value="0x80AE" name="GL_LINEAR_SHARPEN_ALPHA_SGIS"/>
+ <enum value="0x80AF" name="GL_LINEAR_SHARPEN_COLOR_SGIS"/>
+ <enum value="0x80B0" name="GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS"/>
+ <enum value="0x80B1" name="GL_COLOR_MATRIX"/>
+ <enum value="0x80B1" name="GL_COLOR_MATRIX_SGI"/>
+ <enum value="0x80B2" name="GL_COLOR_MATRIX_STACK_DEPTH"/>
+ <enum value="0x80B2" name="GL_COLOR_MATRIX_STACK_DEPTH_SGI"/>
+ <enum value="0x80B3" name="GL_MAX_COLOR_MATRIX_STACK_DEPTH"/>
+ <enum value="0x80B3" name="GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI"/>
+ <enum value="0x80B4" name="GL_POST_COLOR_MATRIX_RED_SCALE"/>
+ <enum value="0x80B4" name="GL_POST_COLOR_MATRIX_RED_SCALE_SGI"/>
+ <enum value="0x80B5" name="GL_POST_COLOR_MATRIX_GREEN_SCALE"/>
+ <enum value="0x80B5" name="GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI"/>
+ <enum value="0x80B6" name="GL_POST_COLOR_MATRIX_BLUE_SCALE"/>
+ <enum value="0x80B6" name="GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI"/>
+ <enum value="0x80B7" name="GL_POST_COLOR_MATRIX_ALPHA_SCALE"/>
+ <enum value="0x80B7" name="GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI"/>
+ <enum value="0x80B8" name="GL_POST_COLOR_MATRIX_RED_BIAS"/>
+ <enum value="0x80B8" name="GL_POST_COLOR_MATRIX_RED_BIAS_SGI"/>
+ <enum value="0x80B9" name="GL_POST_COLOR_MATRIX_GREEN_BIAS"/>
+ <enum value="0x80B9" name="GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI"/>
+ <enum value="0x80BA" name="GL_POST_COLOR_MATRIX_BLUE_BIAS"/>
+ <enum value="0x80BA" name="GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI"/>
+ <enum value="0x80BB" name="GL_POST_COLOR_MATRIX_ALPHA_BIAS"/>
+ <enum value="0x80BB" name="GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI"/>
+ <enum value="0x80BC" name="GL_TEXTURE_COLOR_TABLE_SGI"/>
+ <enum value="0x80BD" name="GL_PROXY_TEXTURE_COLOR_TABLE_SGI"/>
+ <enum value="0x80BE" name="GL_TEXTURE_ENV_BIAS_SGIX"/>
+ <enum value="0x80BF" name="GL_SHADOW_AMBIENT_SGIX"/>
+ <enum value="0x80BF" name="GL_TEXTURE_COMPARE_FAIL_VALUE_ARB"/>
+ </enums>
+
+ <enums namespace="GL" start="0x80C0" end="0x80CF" vendor="ZiiLabs">
+ <unused start="0x80C0" end="0x80C7"/>
+ <enum value="0x80C8" name="GL_BLEND_DST_RGB"/>
+ <enum value="0x80C8" name="GL_BLEND_DST_RGB_EXT"/>
+ <enum value="0x80C8" name="GL_BLEND_DST_RGB_OES"/>
+ <enum value="0x80C9" name="GL_BLEND_SRC_RGB"/>
+ <enum value="0x80C9" name="GL_BLEND_SRC_RGB_EXT"/>
+ <enum value="0x80C9" name="GL_BLEND_SRC_RGB_OES"/>
+ <enum value="0x80CA" name="GL_BLEND_DST_ALPHA"/>
+ <enum value="0x80CA" name="GL_BLEND_DST_ALPHA_EXT"/>
+ <enum value="0x80CA" name="GL_BLEND_DST_ALPHA_OES"/>
+ <enum value="0x80CB" name="GL_BLEND_SRC_ALPHA"/>
+ <enum value="0x80CB" name="GL_BLEND_SRC_ALPHA_EXT"/>
+ <enum value="0x80CB" name="GL_BLEND_SRC_ALPHA_OES"/>
+ <enum value="0x80CC" name="GL_422_EXT"/>
+ <enum value="0x80CD" name="GL_422_REV_EXT"/>
+ <enum value="0x80CE" name="GL_422_AVERAGE_EXT"/>
+ <enum value="0x80CF" name="GL_422_REV_AVERAGE_EXT"/>
+ </enums>
+
+ <enums namespace="GL" start="0x80D0" end="0x80DF" vendor="SGI">
+ <enum value="0x80D0" name="GL_COLOR_TABLE"/>
+ <enum value="0x80D0" name="GL_COLOR_TABLE_SGI"/>
+ <enum value="0x80D1" name="GL_POST_CONVOLUTION_COLOR_TABLE"/>
+ <enum value="0x80D1" name="GL_POST_CONVOLUTION_COLOR_TABLE_SGI"/>
+ <enum value="0x80D2" name="GL_POST_COLOR_MATRIX_COLOR_TABLE"/>
+ <enum value="0x80D2" name="GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI"/>
+ <enum value="0x80D3" name="GL_PROXY_COLOR_TABLE"/>
+ <enum value="0x80D3" name="GL_PROXY_COLOR_TABLE_SGI"/>
+ <enum value="0x80D4" name="GL_PROXY_POST_CONVOLUTION_COLOR_TABLE"/>
+ <enum value="0x80D4" name="GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI"/>
+ <enum value="0x80D5" name="GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE"/>
+ <enum value="0x80D5" name="GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI"/>
+ <enum value="0x80D6" name="GL_COLOR_TABLE_SCALE"/>
+ <enum value="0x80D6" name="GL_COLOR_TABLE_SCALE_SGI"/>
+ <enum value="0x80D7" name="GL_COLOR_TABLE_BIAS"/>
+ <enum value="0x80D7" name="GL_COLOR_TABLE_BIAS_SGI"/>
+ <enum value="0x80D8" name="GL_COLOR_TABLE_FORMAT"/>
+ <enum value="0x80D8" name="GL_COLOR_TABLE_FORMAT_SGI"/>
+ <enum value="0x80D9" name="GL_COLOR_TABLE_WIDTH"/>
+ <enum value="0x80D9" name="GL_COLOR_TABLE_WIDTH_SGI"/>
+ <enum value="0x80DA" name="GL_COLOR_TABLE_RED_SIZE"/>
+ <enum value="0x80DA" name="GL_COLOR_TABLE_RED_SIZE_SGI"/>
+ <enum value="0x80DB" name="GL_COLOR_TABLE_GREEN_SIZE"/>
+ <enum value="0x80DB" name="GL_COLOR_TABLE_GREEN_SIZE_SGI"/>
+ <enum value="0x80DC" name="GL_COLOR_TABLE_BLUE_SIZE"/>
+ <enum value="0x80DC" name="GL_COLOR_TABLE_BLUE_SIZE_SGI"/>
+ <enum value="0x80DD" name="GL_COLOR_TABLE_ALPHA_SIZE"/>
+ <enum value="0x80DD" name="GL_COLOR_TABLE_ALPHA_SIZE_SGI"/>
+ <enum value="0x80DE" name="GL_COLOR_TABLE_LUMINANCE_SIZE"/>
+ <enum value="0x80DE" name="GL_COLOR_TABLE_LUMINANCE_SIZE_SGI"/>
+ <enum value="0x80DF" name="GL_COLOR_TABLE_INTENSITY_SIZE"/>
+ <enum value="0x80DF" name="GL_COLOR_TABLE_INTENSITY_SIZE_SGI"/>
+ </enums>
+
+ <enums namespace="GL" start="0x80E0" end="0x810F" vendor="MS">
+ <enum value="0x80E0" name="GL_BGR"/>
+ <enum value="0x80E0" name="GL_BGR_EXT"/>
+ <enum value="0x80E1" name="GL_BGRA"/>
+ <enum value="0x80E1" name="GL_BGRA_EXT"/>
+ <enum value="0x80E2" name="GL_COLOR_INDEX1_EXT"/>
+ <enum value="0x80E3" name="GL_COLOR_INDEX2_EXT"/>
+ <enum value="0x80E4" name="GL_COLOR_INDEX4_EXT"/>
+ <enum value="0x80E5" name="GL_COLOR_INDEX8_EXT"/>
+ <enum value="0x80E6" name="GL_COLOR_INDEX12_EXT"/>
+ <enum value="0x80E7" name="GL_COLOR_INDEX16_EXT"/>
+ <enum value="0x80E8" name="GL_MAX_ELEMENTS_VERTICES"/>
+ <enum value="0x80E8" name="GL_MAX_ELEMENTS_VERTICES_EXT"/>
+ <enum value="0x80E9" name="GL_MAX_ELEMENTS_INDICES"/>
+ <enum value="0x80E9" name="GL_MAX_ELEMENTS_INDICES_EXT"/>
+ <enum value="0x80EA" name="GL_PHONG_WIN"/>
+ <enum value="0x80EB" name="GL_PHONG_HINT_WIN"/>
+ <enum value="0x80EC" name="GL_FOG_SPECULAR_TEXTURE_WIN"/>
+ <enum value="0x80ED" name="GL_TEXTURE_INDEX_SIZE_EXT"/>
+ <unused start="0x80EE" end="0x80EF"/>
+ <enum value="0x80F0" name="GL_CLIP_VOLUME_CLIPPING_HINT_EXT"/>
+ <unused start="0x80F1" end="0x810F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8110" end="0x814F" vendor="SGI">
+ <enum value="0x8110" name="GL_DUAL_ALPHA4_SGIS"/>
+ <enum value="0x8111" name="GL_DUAL_ALPHA8_SGIS"/>
+ <enum value="0x8112" name="GL_DUAL_ALPHA12_SGIS"/>
+ <enum value="0x8113" name="GL_DUAL_ALPHA16_SGIS"/>
+ <enum value="0x8114" name="GL_DUAL_LUMINANCE4_SGIS"/>
+ <enum value="0x8115" name="GL_DUAL_LUMINANCE8_SGIS"/>
+ <enum value="0x8116" name="GL_DUAL_LUMINANCE12_SGIS"/>
+ <enum value="0x8117" name="GL_DUAL_LUMINANCE16_SGIS"/>
+ <enum value="0x8118" name="GL_DUAL_INTENSITY4_SGIS"/>
+ <enum value="0x8119" name="GL_DUAL_INTENSITY8_SGIS"/>
+ <enum value="0x811A" name="GL_DUAL_INTENSITY12_SGIS"/>
+ <enum value="0x811B" name="GL_DUAL_INTENSITY16_SGIS"/>
+ <enum value="0x811C" name="GL_DUAL_LUMINANCE_ALPHA4_SGIS"/>
+ <enum value="0x811D" name="GL_DUAL_LUMINANCE_ALPHA8_SGIS"/>
+ <enum value="0x811E" name="GL_QUAD_ALPHA4_SGIS"/>
+ <enum value="0x811F" name="GL_QUAD_ALPHA8_SGIS"/>
+ <enum value="0x8120" name="GL_QUAD_LUMINANCE4_SGIS"/>
+ <enum value="0x8121" name="GL_QUAD_LUMINANCE8_SGIS"/>
+ <enum value="0x8122" name="GL_QUAD_INTENSITY4_SGIS"/>
+ <enum value="0x8123" name="GL_QUAD_INTENSITY8_SGIS"/>
+ <enum value="0x8124" name="GL_DUAL_TEXTURE_SELECT_SGIS"/>
+ <enum value="0x8125" name="GL_QUAD_TEXTURE_SELECT_SGIS"/>
+ <enum value="0x8126" name="GL_POINT_SIZE_MIN"/>
+ <enum value="0x8126" name="GL_POINT_SIZE_MIN_ARB"/>
+ <enum value="0x8126" name="GL_POINT_SIZE_MIN_EXT"/>
+ <enum value="0x8126" name="GL_POINT_SIZE_MIN_SGIS"/>
+ <enum value="0x8127" name="GL_POINT_SIZE_MAX"/>
+ <enum value="0x8127" name="GL_POINT_SIZE_MAX_ARB"/>
+ <enum value="0x8127" name="GL_POINT_SIZE_MAX_EXT"/>
+ <enum value="0x8127" name="GL_POINT_SIZE_MAX_SGIS"/>
+ <enum value="0x8128" name="GL_POINT_FADE_THRESHOLD_SIZE"/>
+ <enum value="0x8128" name="GL_POINT_FADE_THRESHOLD_SIZE_ARB"/>
+ <enum value="0x8128" name="GL_POINT_FADE_THRESHOLD_SIZE_EXT"/>
+ <enum value="0x8128" name="GL_POINT_FADE_THRESHOLD_SIZE_SGIS"/>
+ <enum value="0x8129" name="GL_DISTANCE_ATTENUATION_EXT"/>
+ <enum value="0x8129" name="GL_DISTANCE_ATTENUATION_SGIS"/>
+ <enum value="0x8129" name="GL_POINT_DISTANCE_ATTENUATION"/>
+ <enum value="0x8129" name="GL_POINT_DISTANCE_ATTENUATION_ARB"/>
+ <enum value="0x812A" name="GL_FOG_FUNC_SGIS"/>
+ <enum value="0x812B" name="GL_FOG_FUNC_POINTS_SGIS"/>
+ <enum value="0x812C" name="GL_MAX_FOG_FUNC_POINTS_SGIS"/>
+ <enum value="0x812D" name="GL_CLAMP_TO_BORDER"/>
+ <enum value="0x812D" name="GL_CLAMP_TO_BORDER_ARB"/>
+ <enum value="0x812D" name="GL_CLAMP_TO_BORDER_NV"/>
+ <enum value="0x812D" name="GL_CLAMP_TO_BORDER_SGIS"/>
+ <enum value="0x812E" name="GL_TEXTURE_MULTI_BUFFER_HINT_SGIX"/>
+ <enum value="0x812F" name="GL_CLAMP_TO_EDGE"/>
+ <enum value="0x812F" name="GL_CLAMP_TO_EDGE_SGIS"/>
+ <enum value="0x8130" name="GL_PACK_SKIP_VOLUMES_SGIS"/>
+ <enum value="0x8131" name="GL_PACK_IMAGE_DEPTH_SGIS"/>
+ <enum value="0x8132" name="GL_UNPACK_SKIP_VOLUMES_SGIS"/>
+ <enum value="0x8133" name="GL_UNPACK_IMAGE_DEPTH_SGIS"/>
+ <enum value="0x8134" name="GL_TEXTURE_4D_SGIS"/>
+ <enum value="0x8135" name="GL_PROXY_TEXTURE_4D_SGIS"/>
+ <enum value="0x8136" name="GL_TEXTURE_4DSIZE_SGIS"/>
+ <enum value="0x8137" name="GL_TEXTURE_WRAP_Q_SGIS"/>
+ <enum value="0x8138" name="GL_MAX_4D_TEXTURE_SIZE_SGIS"/>
+ <enum value="0x8139" name="GL_PIXEL_TEX_GEN_SGIX"/>
+ <enum value="0x813A" name="GL_TEXTURE_MIN_LOD"/>
+ <enum value="0x813A" name="GL_TEXTURE_MIN_LOD_SGIS"/>
+ <enum value="0x813B" name="GL_TEXTURE_MAX_LOD"/>
+ <enum value="0x813B" name="GL_TEXTURE_MAX_LOD_SGIS"/>
+ <enum value="0x813C" name="GL_TEXTURE_BASE_LEVEL"/>
+ <enum value="0x813C" name="GL_TEXTURE_BASE_LEVEL_SGIS"/>
+ <enum value="0x813D" name="GL_TEXTURE_MAX_LEVEL"/>
+ <enum value="0x813D" name="GL_TEXTURE_MAX_LEVEL_SGIS"/>
+ <enum value="0x813E" name="GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX"/>
+ <enum value="0x813F" name="GL_PIXEL_TILE_CACHE_INCREMENT_SGIX"/>
+ <enum value="0x8140" name="GL_PIXEL_TILE_WIDTH_SGIX"/>
+ <enum value="0x8141" name="GL_PIXEL_TILE_HEIGHT_SGIX"/>
+ <enum value="0x8142" name="GL_PIXEL_TILE_GRID_WIDTH_SGIX"/>
+ <enum value="0x8143" name="GL_PIXEL_TILE_GRID_HEIGHT_SGIX"/>
+ <enum value="0x8144" name="GL_PIXEL_TILE_GRID_DEPTH_SGIX"/>
+ <enum value="0x8145" name="GL_PIXEL_TILE_CACHE_SIZE_SGIX"/>
+ <enum value="0x8146" name="GL_FILTER4_SGIS"/>
+ <enum value="0x8147" name="GL_TEXTURE_FILTER4_SIZE_SGIS"/>
+ <enum value="0x8148" name="GL_SPRITE_SGIX"/>
+ <enum value="0x8149" name="GL_SPRITE_MODE_SGIX"/>
+ <enum value="0x814A" name="GL_SPRITE_AXIS_SGIX"/>
+ <enum value="0x814B" name="GL_SPRITE_TRANSLATION_SGIX"/>
+ <enum value="0x814C" name="GL_SPRITE_AXIAL_SGIX"/>
+ <enum value="0x814D" name="GL_SPRITE_OBJECT_ALIGNED_SGIX"/>
+ <enum value="0x814E" name="GL_SPRITE_EYE_ALIGNED_SGIX"/>
+ <enum value="0x814F" name="GL_TEXTURE_4D_BINDING_SGIS"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8150" end="0x816F" vendor="HP">
+ <enum value="0x8150" name="GL_IGNORE_BORDER_HP"/>
+ <enum value="0x8151" name="GL_CONSTANT_BORDER"/>
+ <enum value="0x8151" name="GL_CONSTANT_BORDER_HP"/>
+ <unused start="0x8152" comment="GL_WRAP_BORDER = 0x8152 was proposed, but not actually promoted to core"/>
+ <enum value="0x8153" name="GL_REPLICATE_BORDER"/>
+ <enum value="0x8153" name="GL_REPLICATE_BORDER_HP"/>
+ <enum value="0x8154" name="GL_CONVOLUTION_BORDER_COLOR"/>
+ <enum value="0x8154" name="GL_CONVOLUTION_BORDER_COLOR_HP"/>
+ <enum value="0x8155" name="GL_IMAGE_SCALE_X_HP"/>
+ <enum value="0x8156" name="GL_IMAGE_SCALE_Y_HP"/>
+ <enum value="0x8157" name="GL_IMAGE_TRANSLATE_X_HP"/>
+ <enum value="0x8158" name="GL_IMAGE_TRANSLATE_Y_HP"/>
+ <enum value="0x8159" name="GL_IMAGE_ROTATE_ANGLE_HP"/>
+ <enum value="0x815A" name="GL_IMAGE_ROTATE_ORIGIN_X_HP"/>
+ <enum value="0x815B" name="GL_IMAGE_ROTATE_ORIGIN_Y_HP"/>
+ <enum value="0x815C" name="GL_IMAGE_MAG_FILTER_HP"/>
+ <enum value="0x815D" name="GL_IMAGE_MIN_FILTER_HP"/>
+ <enum value="0x815E" name="GL_IMAGE_CUBIC_WEIGHT_HP"/>
+ <enum value="0x815F" name="GL_CUBIC_HP"/>
+ <enum value="0x8160" name="GL_AVERAGE_HP"/>
+ <enum value="0x8161" name="GL_IMAGE_TRANSFORM_2D_HP"/>
+ <enum value="0x8162" name="GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP"/>
+ <enum value="0x8163" name="GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP"/>
+ <unused start="0x8164"/>
+ <enum value="0x8165" name="GL_OCCLUSION_TEST_HP"/>
+ <enum value="0x8166" name="GL_OCCLUSION_TEST_RESULT_HP"/>
+ <enum value="0x8167" name="GL_TEXTURE_LIGHTING_MODE_HP"/>
+ <enum value="0x8168" name="GL_TEXTURE_POST_SPECULAR_HP"/>
+ <enum value="0x8169" name="GL_TEXTURE_PRE_SPECULAR_HP"/>
+ <unused start="0x816A" end="0x816F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8170" end="0x81CF" vendor="SGI">
+ <enum value="0x8170" name="GL_LINEAR_CLIPMAP_LINEAR_SGIX"/>
+ <enum value="0x8171" name="GL_TEXTURE_CLIPMAP_CENTER_SGIX"/>
+ <enum value="0x8172" name="GL_TEXTURE_CLIPMAP_FRAME_SGIX"/>
+ <enum value="0x8173" name="GL_TEXTURE_CLIPMAP_OFFSET_SGIX"/>
+ <enum value="0x8174" name="GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX"/>
+ <enum value="0x8175" name="GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX"/>
+ <enum value="0x8176" name="GL_TEXTURE_CLIPMAP_DEPTH_SGIX"/>
+ <enum value="0x8177" name="GL_MAX_CLIPMAP_DEPTH_SGIX"/>
+ <enum value="0x8178" name="GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX"/>
+ <enum value="0x8179" name="GL_POST_TEXTURE_FILTER_BIAS_SGIX"/>
+ <enum value="0x817A" name="GL_POST_TEXTURE_FILTER_SCALE_SGIX"/>
+ <enum value="0x817B" name="GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX"/>
+ <enum value="0x817C" name="GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX"/>
+ <enum value="0x817D" name="GL_REFERENCE_PLANE_SGIX"/>
+ <enum value="0x817E" name="GL_REFERENCE_PLANE_EQUATION_SGIX"/>
+ <enum value="0x817F" name="GL_IR_INSTRUMENT1_SGIX"/>
+ <enum value="0x8180" name="GL_INSTRUMENT_BUFFER_POINTER_SGIX"/>
+ <enum value="0x8181" name="GL_INSTRUMENT_MEASUREMENTS_SGIX"/>
+ <enum value="0x8182" name="GL_LIST_PRIORITY_SGIX"/>
+ <enum value="0x8183" name="GL_CALLIGRAPHIC_FRAGMENT_SGIX"/>
+ <enum value="0x8184" name="GL_PIXEL_TEX_GEN_Q_CEILING_SGIX"/>
+ <enum value="0x8185" name="GL_PIXEL_TEX_GEN_Q_ROUND_SGIX"/>
+ <enum value="0x8186" name="GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX"/>
+ <enum value="0x8187" name="GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX"/>
+ <enum value="0x8188" name="GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX"/>
+ <enum value="0x8189" name="GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX"/>
+ <enum value="0x818A" name="GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX"/>
+ <enum value="0x818B" name="GL_FRAMEZOOM_SGIX"/>
+ <enum value="0x818C" name="GL_FRAMEZOOM_FACTOR_SGIX"/>
+ <enum value="0x818D" name="GL_MAX_FRAMEZOOM_FACTOR_SGIX"/>
+ <enum value="0x818E" name="GL_TEXTURE_LOD_BIAS_S_SGIX"/>
+ <enum value="0x818F" name="GL_TEXTURE_LOD_BIAS_T_SGIX"/>
+ <enum value="0x8190" name="GL_TEXTURE_LOD_BIAS_R_SGIX"/>
+ <enum value="0x8191" name="GL_GENERATE_MIPMAP"/>
+ <enum value="0x8191" name="GL_GENERATE_MIPMAP_SGIS"/>
+ <enum value="0x8192" name="GL_GENERATE_MIPMAP_HINT"/>
+ <enum value="0x8192" name="GL_GENERATE_MIPMAP_HINT_SGIS"/>
+ <unused start="0x8193" end="0x8193" comment="Incomplete extension SGIX_spotlight_cutoff"/>
+ <!-- <enum value="0x8193" name="GL_SPOT_CUTOFF_DELTA_SGIX"/> -->
+ <enum value="0x8194" name="GL_GEOMETRY_DEFORMATION_SGIX"/>
+ <enum value="0x8195" name="GL_TEXTURE_DEFORMATION_SGIX"/>
+ <enum value="0x8196" name="GL_DEFORMATIONS_MASK_SGIX"/>
+ <enum value="0x8197" name="GL_MAX_DEFORMATION_ORDER_SGIX"/>
+ <enum value="0x8198" name="GL_FOG_OFFSET_SGIX"/>
+ <enum value="0x8199" name="GL_FOG_OFFSET_VALUE_SGIX"/>
+ <enum value="0x819A" name="GL_TEXTURE_COMPARE_SGIX"/>
+ <enum value="0x819B" name="GL_TEXTURE_COMPARE_OPERATOR_SGIX"/>
+ <enum value="0x819C" name="GL_TEXTURE_LEQUAL_R_SGIX"/>
+ <enum value="0x819D" name="GL_TEXTURE_GEQUAL_R_SGIX"/>
+ <unused start="0x819E" end="0x81A4" comment="Private (internal) extension SGIX_igloo_interface"/>
+ <!-- <enum value="0x819E" name="GL_IGLOO_FULLSCREEN_SGIX"/> -->
+ <!-- <enum value="0x819F" name="GL_IGLOO_VIEWPORT_OFFSET_SGIX"/> -->
+ <!-- <enum value="0x81A0" name="GL_IGLOO_SWAPTMESH_SGIX"/> -->
+ <!-- <enum value="0x81A1" name="GL_IGLOO_COLORNORMAL_SGIX"/> -->
+ <!-- <enum value="0x81A2" name="GL_IGLOO_IRISGL_MODE_SGIX"/> -->
+ <!-- <enum value="0x81A3" name="GL_IGLOO_LMC_COLOR_SGIX"/> -->
+ <!-- <enum value="0x81A4" name="GL_IGLOO_TMESHMODE_SGIX"/> -->
+ <enum value="0x81A5" name="GL_DEPTH_COMPONENT16"/>
+ <enum value="0x81A5" name="GL_DEPTH_COMPONENT16_ARB"/>
+ <enum value="0x81A5" name="GL_DEPTH_COMPONENT16_OES"/>
+ <enum value="0x81A5" name="GL_DEPTH_COMPONENT16_SGIX"/>
+ <enum value="0x81A6" name="GL_DEPTH_COMPONENT24"/>
+ <enum value="0x81A6" name="GL_DEPTH_COMPONENT24_ARB"/>
+ <enum value="0x81A6" name="GL_DEPTH_COMPONENT24_OES"/>
+ <enum value="0x81A6" name="GL_DEPTH_COMPONENT24_SGIX"/>
+ <enum value="0x81A7" name="GL_DEPTH_COMPONENT32"/>
+ <enum value="0x81A7" name="GL_DEPTH_COMPONENT32_ARB"/>
+ <enum value="0x81A7" name="GL_DEPTH_COMPONENT32_OES"/>
+ <enum value="0x81A7" name="GL_DEPTH_COMPONENT32_SGIX"/>
+ <enum value="0x81A8" name="GL_ARRAY_ELEMENT_LOCK_FIRST_EXT"/>
+ <enum value="0x81A9" name="GL_ARRAY_ELEMENT_LOCK_COUNT_EXT"/>
+ <enum value="0x81AA" name="GL_CULL_VERTEX_EXT"/>
+ <enum value="0x81AB" name="GL_CULL_VERTEX_EYE_POSITION_EXT"/>
+ <enum value="0x81AC" name="GL_CULL_VERTEX_OBJECT_POSITION_EXT"/>
+ <enum value="0x81AD" name="GL_IUI_V2F_EXT"/>
+ <enum value="0x81AE" name="GL_IUI_V3F_EXT"/>
+ <enum value="0x81AF" name="GL_IUI_N3F_V2F_EXT"/>
+ <enum value="0x81B0" name="GL_IUI_N3F_V3F_EXT"/>
+ <enum value="0x81B1" name="GL_T2F_IUI_V2F_EXT"/>
+ <enum value="0x81B2" name="GL_T2F_IUI_V3F_EXT"/>
+ <enum value="0x81B3" name="GL_T2F_IUI_N3F_V2F_EXT"/>
+ <enum value="0x81B4" name="GL_T2F_IUI_N3F_V3F_EXT"/>
+ <enum value="0x81B5" name="GL_INDEX_TEST_EXT"/>
+ <enum value="0x81B6" name="GL_INDEX_TEST_FUNC_EXT"/>
+ <enum value="0x81B7" name="GL_INDEX_TEST_REF_EXT"/>
+ <enum value="0x81B8" name="GL_INDEX_MATERIAL_EXT"/>
+ <enum value="0x81B9" name="GL_INDEX_MATERIAL_PARAMETER_EXT"/>
+ <enum value="0x81BA" name="GL_INDEX_MATERIAL_FACE_EXT"/>
+ <enum value="0x81BB" name="GL_YCRCB_422_SGIX"/>
+ <enum value="0x81BC" name="GL_YCRCB_444_SGIX"/>
+ <unused start="0x81BD" end="0x81C3" comment="Incomplete extension SGI_complex_type"/>
+ <!-- <enum value="0x81BD" name="GL_COMPLEX_UNSIGNED_BYTE_SGI"/> -->
+ <!-- <enum value="0x81BE" name="GL_COMPLEX_BYTE_SGI"/> -->
+ <!-- <enum value="0x81BF" name="GL_COMPLEX_UNSIGNED_SHORT_SGI"/> -->
+ <!-- <enum value="0x81C0" name="GL_COMPLEX_SHORT_SGI"/> -->
+ <!-- <enum value="0x81C1" name="GL_COMPLEX_UNSIGNED_INT_SGI"/> -->
+ <!-- <enum value="0x81C2" name="GL_COMPLEX_INT_SGI"/> -->
+ <!-- <enum value="0x81C3" name="GL_COMPLEX_FLOAT_SGI"/> -->
+ <unused start="0x81C4" end="0x81CA" comment="Incomplete extension SGI_fft"/>
+ <!-- <enum value="0x81C4" name="GL_PIXEL_TRANSFORM_OPERATOR_SGI"/> -->
+ <!-- <enum value="0x81C5" name="GL_CONVOLUTION_SGI"/> -->
+ <!-- <enum value="0x81C6" name="GL_FFT_1D_SGI"/> -->
+ <!-- <enum value="0x81C7" name="GL_PIXEL_TRANSFORM_SGI"/> -->
+ <!-- <enum value="0x81C8" name="GL_MAX_FFT_WIDTH_SGI"/> -->
+ <!-- <enum value="0x81C9" name="GL_SORT_SGI"/> -->
+ <!-- <enum value="0x81CA" name="GL_TRANSPOSE_SGI"/> -->
+ <unused start="0x81CB" end="0x81CF" comment="Incomplete extension SGIX_nurbs_eval"/>
+ <!-- <enum value="0x81CB" name="GL_MAP1_VERTEX_3_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81CC" name="GL_MAP1_VERTEX_4_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81CD" name="GL_MAP1_INDEX_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81CE" name="GL_MAP1_COLOR_4_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81CF" name="GL_MAP1_NORMAL_NURBS_SGIX"/> -->
+ </enums>
+
+ <enums namespace="GL" start="0x81D0" end="0x81DF" vendor="SUN">
+ <unused start="0x81D0" end="0x81D1"/>
+ <unused start="0x81D2" end="0x81D3" comment="No extension spec SUNX_surface_hint"/>
+ <!-- <enum value="0x81D2" name="GL_SURFACE_SIZE_HINT_SUNX"/> -->
+ <!-- <enum value="0x81D3" name="GL_LARGE_SUNX"/> -->
+ <enum value="0x81D4" name="GL_WRAP_BORDER_SUN"/>
+ <enum value="0x81D5" name="GL_UNPACK_CONSTANT_DATA_SUNX"/>
+ <enum value="0x81D6" name="GL_TEXTURE_CONSTANT_DATA_SUNX"/>
+ <enum value="0x81D7" name="GL_TRIANGLE_LIST_SUN"/>
+ <enum value="0x81D8" name="GL_REPLACEMENT_CODE_SUN"/>
+ <enum value="0x81D9" name="GL_GLOBAL_ALPHA_SUN"/>
+ <enum value="0x81DA" name="GL_GLOBAL_ALPHA_FACTOR_SUN"/>
+ <unused start="0x81DB" end="0x81DF"/>
+ </enums>
+
+ <enums namespace="GL" start="0x81E0" end="0x81FF" vendor="SGI">
+ <unused start="0x81E0" end="0x81EE" comment="Incomplete extension SGIX_nurbs_eval"/>
+ <!-- <enum value="0x81E0" name="GL_MAP1_TEXTURE_COORD_1_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81E1" name="GL_MAP1_TEXTURE_COORD_2_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81E2" name="GL_MAP1_TEXTURE_COORD_3_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81E3" name="GL_MAP1_TEXTURE_COORD_4_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81E4" name="GL_MAP2_VERTEX_3_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81E5" name="GL_MAP2_VERTEX_4_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81E6" name="GL_MAP2_INDEX_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81E7" name="GL_MAP2_COLOR_4_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81E8" name="GL_MAP2_NORMAL_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81E9" name="GL_MAP2_TEXTURE_COORD_1_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81EA" name="GL_MAP2_TEXTURE_COORD_2_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81EB" name="GL_MAP2_TEXTURE_COORD_3_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81EC" name="GL_MAP2_TEXTURE_COORD_4_NURBS_SGIX"/> -->
+ <!-- <enum value="0x81ED" name="GL_NURBS_KNOT_COUNT_SGIX"/> -->
+ <!-- <enum value="0x81EE" name="GL_NURBS_KNOT_VECTOR_SGIX"/> -->
+ <enum value="0x81EF" name="GL_TEXTURE_COLOR_WRITEMASK_SGIS"/>
+ <enum value="0x81F0" name="GL_EYE_DISTANCE_TO_POINT_SGIS"/>
+ <enum value="0x81F1" name="GL_OBJECT_DISTANCE_TO_POINT_SGIS"/>
+ <enum value="0x81F2" name="GL_EYE_DISTANCE_TO_LINE_SGIS"/>
+ <enum value="0x81F3" name="GL_OBJECT_DISTANCE_TO_LINE_SGIS"/>
+ <enum value="0x81F4" name="GL_EYE_POINT_SGIS"/>
+ <enum value="0x81F5" name="GL_OBJECT_POINT_SGIS"/>
+ <enum value="0x81F6" name="GL_EYE_LINE_SGIS"/>
+ <enum value="0x81F7" name="GL_OBJECT_LINE_SGIS"/>
+ <enum value="0x81F8" name="GL_LIGHT_MODEL_COLOR_CONTROL"/>
+ <enum value="0x81F8" name="GL_LIGHT_MODEL_COLOR_CONTROL_EXT"/>
+ <enum value="0x81F9" name="GL_SINGLE_COLOR"/>
+ <enum value="0x81F9" name="GL_SINGLE_COLOR_EXT"/>
+ <enum value="0x81FA" name="GL_SEPARATE_SPECULAR_COLOR"/>
+ <enum value="0x81FA" name="GL_SEPARATE_SPECULAR_COLOR_EXT"/>
+ <enum value="0x81FB" name="GL_SHARED_TEXTURE_PALETTE_EXT"/>
+ <unused start="0x81FC" end="0x81FD" comment="Incomplete extension SGIX_fog_scale"/>
+ <!-- <enum value="0x81FC" name="GL_FOG_SCALE_SGIX"/> -->
+ <!-- <enum value="0x81FD" name="GL_FOG_SCALE_VALUE_SGIX"/> -->
+ <unused start="0x81FE" end="0x81FF" comment="Incomplete extension SGIX_fog_blend"/>
+ <!-- <enum value="0x81FE" name="GL_FOG_BLEND_ALPHA_SGIX"/> -->
+ <!-- <enum value="0x81FF" name="GL_FOG_BLEND_COLOR_SGIX"/> -->
+ </enums>
+
+ <enums namespace="GL" start="0x8200" end="0x820F" vendor="AMD" comment="Range released by MS 2002/9/16">
+ <enum value="0x8200" name="GL_TEXT_FRAGMENT_SHADER_ATI"/>
+ <unused start="0x8201" end="0x820F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8210" end="0x823F" vendor="ARB">
+ <enum value="0x8210" name="GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING"/>
+ <enum value="0x8211" name="GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE"/>
+ <enum value="0x8211" name="GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT"/>
+ <enum value="0x8212" name="GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE"/>
+ <enum value="0x8213" name="GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE"/>
+ <enum value="0x8214" name="GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE"/>
+ <enum value="0x8215" name="GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE"/>
+ <enum value="0x8216" name="GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE"/>
+ <enum value="0x8217" name="GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE"/>
+ <enum value="0x8218" name="GL_FRAMEBUFFER_DEFAULT"/>
+ <enum value="0x8219" name="GL_FRAMEBUFFER_UNDEFINED"/>
+ <enum value="0x8219" name="GL_FRAMEBUFFER_UNDEFINED_OES"/>
+ <enum value="0x821A" name="GL_DEPTH_STENCIL_ATTACHMENT"/>
+ <enum value="0x821B" name="GL_MAJOR_VERSION"/>
+ <enum value="0x821C" name="GL_MINOR_VERSION"/>
+ <enum value="0x821D" name="GL_NUM_EXTENSIONS"/>
+ <enum value="0x821E" name="GL_CONTEXT_FLAGS"/>
+ <unused start="0x821F" end="0x8221"/>
+ <enum value="0x8222" name="GL_INDEX"/>
+ <unused start="0x8223" comment="GL_DEPTH_BUFFER = 0x8223 not actually used in the API"/>
+ <unused start="0x8224" comment="GL_STENCIL_BUFFER = 0x8224 not actually used in the API"/>
+ <enum value="0x8225" name="GL_COMPRESSED_RED"/>
+ <enum value="0x8226" name="GL_COMPRESSED_RG"/>
+ <enum value="0x8227" name="GL_RG"/>
+ <enum value="0x8227" name="GL_RG_EXT"/>
+ <enum value="0x8228" name="GL_RG_INTEGER"/>
+ <enum value="0x8229" name="GL_R8"/>
+ <enum value="0x8229" name="GL_R8_EXT"/>
+ <enum value="0x822A" name="GL_R16"/>
+ <enum value="0x822B" name="GL_RG8"/>
+ <enum value="0x822B" name="GL_RG8_EXT"/>
+ <enum value="0x822C" name="GL_RG16"/>
+ <enum value="0x822D" name="GL_R16F"/>
+ <enum value="0x822D" name="GL_R16F_EXT"/>
+ <enum value="0x822E" name="GL_R32F"/>
+ <enum value="0x822F" name="GL_RG16F"/>
+ <enum value="0x822F" name="GL_RG16F_EXT"/>
+ <enum value="0x8230" name="GL_RG32F"/>
+ <enum value="0x8231" name="GL_R8I"/>
+ <enum value="0x8232" name="GL_R8UI"/>
+ <enum value="0x8233" name="GL_R16I"/>
+ <enum value="0x8234" name="GL_R16UI"/>
+ <enum value="0x8235" name="GL_R32I"/>
+ <enum value="0x8236" name="GL_R32UI"/>
+ <enum value="0x8237" name="GL_RG8I"/>
+ <enum value="0x8238" name="GL_RG8UI"/>
+ <enum value="0x8239" name="GL_RG16I"/>
+ <enum value="0x823A" name="GL_RG16UI"/>
+ <enum value="0x823B" name="GL_RG32I"/>
+ <enum value="0x823C" name="GL_RG32UI"/>
+ <unused start="0x823D" end="0x823F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8240" end="0x82AF" vendor="ARB" comment="Range released by MS on 2002/9/16">
+ <enum value="0x8240" name="GL_SYNC_CL_EVENT_ARB"/>
+ <enum value="0x8241" name="GL_SYNC_CL_EVENT_COMPLETE_ARB"/>
+ <enum value="0x8242" name="GL_DEBUG_OUTPUT_SYNCHRONOUS"/>
+ <enum value="0x8242" name="GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB"/>
+ <enum value="0x8242" name="GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR"/>
+ <enum value="0x8243" name="GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH"/>
+ <enum value="0x8243" name="GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB"/>
+ <enum value="0x8243" name="GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR"/>
+ <enum value="0x8244" name="GL_DEBUG_CALLBACK_FUNCTION"/>
+ <enum value="0x8244" name="GL_DEBUG_CALLBACK_FUNCTION_ARB"/>
+ <enum value="0x8244" name="GL_DEBUG_CALLBACK_FUNCTION_KHR"/>
+ <enum value="0x8245" name="GL_DEBUG_CALLBACK_USER_PARAM"/>
+ <enum value="0x8245" name="GL_DEBUG_CALLBACK_USER_PARAM_ARB"/>
+ <enum value="0x8245" name="GL_DEBUG_CALLBACK_USER_PARAM_KHR"/>
+ <enum value="0x8246" name="GL_DEBUG_SOURCE_API"/>
+ <enum value="0x8246" name="GL_DEBUG_SOURCE_API_ARB"/>
+ <enum value="0x8246" name="GL_DEBUG_SOURCE_API_KHR"/>
+ <enum value="0x8247" name="GL_DEBUG_SOURCE_WINDOW_SYSTEM"/>
+ <enum value="0x8247" name="GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB"/>
+ <enum value="0x8247" name="GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR"/>
+ <enum value="0x8248" name="GL_DEBUG_SOURCE_SHADER_COMPILER"/>
+ <enum value="0x8248" name="GL_DEBUG_SOURCE_SHADER_COMPILER_ARB"/>
+ <enum value="0x8248" name="GL_DEBUG_SOURCE_SHADER_COMPILER_KHR"/>
+ <enum value="0x8249" name="GL_DEBUG_SOURCE_THIRD_PARTY"/>
+ <enum value="0x8249" name="GL_DEBUG_SOURCE_THIRD_PARTY_ARB"/>
+ <enum value="0x8249" name="GL_DEBUG_SOURCE_THIRD_PARTY_KHR"/>
+ <enum value="0x824A" name="GL_DEBUG_SOURCE_APPLICATION"/>
+ <enum value="0x824A" name="GL_DEBUG_SOURCE_APPLICATION_ARB"/>
+ <enum value="0x824A" name="GL_DEBUG_SOURCE_APPLICATION_KHR"/>
+ <enum value="0x824B" name="GL_DEBUG_SOURCE_OTHER"/>
+ <enum value="0x824B" name="GL_DEBUG_SOURCE_OTHER_ARB"/>
+ <enum value="0x824B" name="GL_DEBUG_SOURCE_OTHER_KHR"/>
+ <enum value="0x824C" name="GL_DEBUG_TYPE_ERROR"/>
+ <enum value="0x824C" name="GL_DEBUG_TYPE_ERROR_ARB"/>
+ <enum value="0x824C" name="GL_DEBUG_TYPE_ERROR_KHR"/>
+ <enum value="0x824D" name="GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR"/>
+ <enum value="0x824D" name="GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB"/>
+ <enum value="0x824D" name="GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR"/>
+ <enum value="0x824E" name="GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR"/>
+ <enum value="0x824E" name="GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB"/>
+ <enum value="0x824E" name="GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR"/>
+ <enum value="0x824F" name="GL_DEBUG_TYPE_PORTABILITY"/>
+ <enum value="0x824F" name="GL_DEBUG_TYPE_PORTABILITY_ARB"/>
+ <enum value="0x824F" name="GL_DEBUG_TYPE_PORTABILITY_KHR"/>
+ <enum value="0x8250" name="GL_DEBUG_TYPE_PERFORMANCE"/>
+ <enum value="0x8250" name="GL_DEBUG_TYPE_PERFORMANCE_ARB"/>
+ <enum value="0x8250" name="GL_DEBUG_TYPE_PERFORMANCE_KHR"/>
+ <enum value="0x8251" name="GL_DEBUG_TYPE_OTHER"/>
+ <enum value="0x8251" name="GL_DEBUG_TYPE_OTHER_ARB"/>
+ <enum value="0x8251" name="GL_DEBUG_TYPE_OTHER_KHR"/>
+ <enum value="0x8252" name="GL_LOSE_CONTEXT_ON_RESET_ARB"/>
+ <enum value="0x8253" name="GL_GUILTY_CONTEXT_RESET_ARB"/>
+ <enum value="0x8254" name="GL_INNOCENT_CONTEXT_RESET_ARB"/>
+ <enum value="0x8255" name="GL_UNKNOWN_CONTEXT_RESET_ARB"/>
+ <enum value="0x8256" name="GL_RESET_NOTIFICATION_STRATEGY_ARB"/>
+ <enum value="0x8257" name="GL_PROGRAM_BINARY_RETRIEVABLE_HINT"/>
+ <enum value="0x8258" name="GL_PROGRAM_SEPARABLE"/>
+ <enum value="0x8258" name="GL_PROGRAM_SEPARABLE_EXT"/>
+ <enum value="0x8259" name="GL_ACTIVE_PROGRAM"/>
+ <enum value="0x8259" api="gles2" name="GL_ACTIVE_PROGRAM_EXT" comment="For the OpenGL ES version of EXT_separate_shader_objects"/>
+ <enum value="0x825A" name="GL_PROGRAM_PIPELINE_BINDING"/>
+ <enum value="0x825A" name="GL_PROGRAM_PIPELINE_BINDING_EXT"/>
+ <enum value="0x825B" name="GL_MAX_VIEWPORTS"/>
+ <enum value="0x825C" name="GL_VIEWPORT_SUBPIXEL_BITS"/>
+ <enum value="0x825D" name="GL_VIEWPORT_BOUNDS_RANGE"/>
+ <enum value="0x825E" name="GL_LAYER_PROVOKING_VERTEX"/>
+ <enum value="0x825F" name="GL_VIEWPORT_INDEX_PROVOKING_VERTEX"/>
+ <enum value="0x8260" name="GL_UNDEFINED_VERTEX"/>
+ <enum value="0x8261" name="GL_NO_RESET_NOTIFICATION_ARB"/>
+ <enum value="0x8262" name="GL_MAX_COMPUTE_SHARED_MEMORY_SIZE"/>
+ <enum value="0x8263" name="GL_MAX_COMPUTE_UNIFORM_COMPONENTS"/>
+ <enum value="0x8264" name="GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS"/>
+ <enum value="0x8265" name="GL_MAX_COMPUTE_ATOMIC_COUNTERS"/>
+ <enum value="0x8266" name="GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS"/>
+ <enum value="0x8267" name="GL_COMPUTE_LOCAL_WORK_SIZE"/>
+ <enum value="0x8268" name="GL_DEBUG_TYPE_MARKER"/>
+ <enum value="0x8268" name="GL_DEBUG_TYPE_MARKER_KHR"/>
+ <enum value="0x8269" name="GL_DEBUG_TYPE_PUSH_GROUP"/>
+ <enum value="0x8269" name="GL_DEBUG_TYPE_PUSH_GROUP_KHR"/>
+ <enum value="0x826A" name="GL_DEBUG_TYPE_POP_GROUP"/>
+ <enum value="0x826A" name="GL_DEBUG_TYPE_POP_GROUP_KHR"/>
+ <enum value="0x826B" name="GL_DEBUG_SEVERITY_NOTIFICATION"/>
+ <enum value="0x826B" name="GL_DEBUG_SEVERITY_NOTIFICATION_KHR"/>
+ <enum value="0x826C" name="GL_MAX_DEBUG_GROUP_STACK_DEPTH"/>
+ <enum value="0x826C" name="GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR"/>
+ <enum value="0x826D" name="GL_DEBUG_GROUP_STACK_DEPTH"/>
+ <enum value="0x826D" name="GL_DEBUG_GROUP_STACK_DEPTH_KHR"/>
+ <enum value="0x826E" name="GL_MAX_UNIFORM_LOCATIONS"/>
+ <enum value="0x826F" name="GL_INTERNALFORMAT_SUPPORTED"/>
+ <enum value="0x8270" name="GL_INTERNALFORMAT_PREFERRED"/>
+ <enum value="0x8271" name="GL_INTERNALFORMAT_RED_SIZE"/>
+ <enum value="0x8272" name="GL_INTERNALFORMAT_GREEN_SIZE"/>
+ <enum value="0x8273" name="GL_INTERNALFORMAT_BLUE_SIZE"/>
+ <enum value="0x8274" name="GL_INTERNALFORMAT_ALPHA_SIZE"/>
+ <enum value="0x8275" name="GL_INTERNALFORMAT_DEPTH_SIZE"/>
+ <enum value="0x8276" name="GL_INTERNALFORMAT_STENCIL_SIZE"/>
+ <enum value="0x8277" name="GL_INTERNALFORMAT_SHARED_SIZE"/>
+ <enum value="0x8278" name="GL_INTERNALFORMAT_RED_TYPE"/>
+ <enum value="0x8279" name="GL_INTERNALFORMAT_GREEN_TYPE"/>
+ <enum value="0x827A" name="GL_INTERNALFORMAT_BLUE_TYPE"/>
+ <enum value="0x827B" name="GL_INTERNALFORMAT_ALPHA_TYPE"/>
+ <enum value="0x827C" name="GL_INTERNALFORMAT_DEPTH_TYPE"/>
+ <enum value="0x827D" name="GL_INTERNALFORMAT_STENCIL_TYPE"/>
+ <enum value="0x827E" name="GL_MAX_WIDTH"/>
+ <enum value="0x827F" name="GL_MAX_HEIGHT"/>
+ <enum value="0x8280" name="GL_MAX_DEPTH"/>
+ <enum value="0x8281" name="GL_MAX_LAYERS"/>
+ <enum value="0x8282" name="GL_MAX_COMBINED_DIMENSIONS"/>
+ <enum value="0x8283" name="GL_COLOR_COMPONENTS"/>
+ <enum value="0x8284" name="GL_DEPTH_COMPONENTS"/>
+ <enum value="0x8285" name="GL_STENCIL_COMPONENTS"/>
+ <enum value="0x8286" name="GL_COLOR_RENDERABLE"/>
+ <enum value="0x8287" name="GL_DEPTH_RENDERABLE"/>
+ <enum value="0x8288" name="GL_STENCIL_RENDERABLE"/>
+ <enum value="0x8289" name="GL_FRAMEBUFFER_RENDERABLE"/>
+ <enum value="0x828A" name="GL_FRAMEBUFFER_RENDERABLE_LAYERED"/>
+ <enum value="0x828B" name="GL_FRAMEBUFFER_BLEND"/>
+ <enum value="0x828C" name="GL_READ_PIXELS"/>
+ <enum value="0x828D" name="GL_READ_PIXELS_FORMAT"/>
+ <enum value="0x828E" name="GL_READ_PIXELS_TYPE"/>
+ <enum value="0x828F" name="GL_TEXTURE_IMAGE_FORMAT"/>
+ <enum value="0x8290" name="GL_TEXTURE_IMAGE_TYPE"/>
+ <enum value="0x8291" name="GL_GET_TEXTURE_IMAGE_FORMAT"/>
+ <enum value="0x8292" name="GL_GET_TEXTURE_IMAGE_TYPE"/>
+ <enum value="0x8293" name="GL_MIPMAP"/>
+ <enum value="0x8294" name="GL_MANUAL_GENERATE_MIPMAP"/>
+ <enum value="0x8295" name="GL_AUTO_GENERATE_MIPMAP" comment="Should be deprecated"/>
+ <enum value="0x8296" name="GL_COLOR_ENCODING"/>
+ <enum value="0x8297" name="GL_SRGB_READ"/>
+ <enum value="0x8298" name="GL_SRGB_WRITE"/>
+ <enum value="0x8299" name="GL_SRGB_DECODE_ARB"/>
+ <enum value="0x829A" name="GL_FILTER"/>
+ <enum value="0x829B" name="GL_VERTEX_TEXTURE"/>
+ <enum value="0x829C" name="GL_TESS_CONTROL_TEXTURE"/>
+ <enum value="0x829D" name="GL_TESS_EVALUATION_TEXTURE"/>
+ <enum value="0x829E" name="GL_GEOMETRY_TEXTURE"/>
+ <enum value="0x829F" name="GL_FRAGMENT_TEXTURE"/>
+ <enum value="0x82A0" name="GL_COMPUTE_TEXTURE"/>
+ <enum value="0x82A1" name="GL_TEXTURE_SHADOW"/>
+ <enum value="0x82A2" name="GL_TEXTURE_GATHER"/>
+ <enum value="0x82A3" name="GL_TEXTURE_GATHER_SHADOW"/>
+ <enum value="0x82A4" name="GL_SHADER_IMAGE_LOAD"/>
+ <enum value="0x82A5" name="GL_SHADER_IMAGE_STORE"/>
+ <enum value="0x82A6" name="GL_SHADER_IMAGE_ATOMIC"/>
+ <enum value="0x82A7" name="GL_IMAGE_TEXEL_SIZE"/>
+ <enum value="0x82A8" name="GL_IMAGE_COMPATIBILITY_CLASS"/>
+ <enum value="0x82A9" name="GL_IMAGE_PIXEL_FORMAT"/>
+ <enum value="0x82AA" name="GL_IMAGE_PIXEL_TYPE"/>
+ <unused start="0x82AB"/>
+ <enum value="0x82AC" name="GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST"/>
+ <enum value="0x82AD" name="GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST"/>
+ <enum value="0x82AE" name="GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE"/>
+ <enum value="0x82AF" name="GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE"/>
+ </enums>
+
+ <enums namespace="GL" start="0x82B0" end="0x830F" vendor="ARB" comment="Range reclaimed from ADD on 2012/05/10">
+ <unused start="0x82B0"/>
+ <enum value="0x82B1" name="GL_TEXTURE_COMPRESSED_BLOCK_WIDTH"/>
+ <enum value="0x82B2" name="GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT"/>
+ <enum value="0x82B3" name="GL_TEXTURE_COMPRESSED_BLOCK_SIZE"/>
+ <enum value="0x82B4" name="GL_CLEAR_BUFFER"/>
+ <enum value="0x82B5" name="GL_TEXTURE_VIEW"/>
+ <enum value="0x82B6" name="GL_VIEW_COMPATIBILITY_CLASS"/>
+ <enum value="0x82B7" name="GL_FULL_SUPPORT"/>
+ <enum value="0x82B8" name="GL_CAVEAT_SUPPORT"/>
+ <enum value="0x82B9" name="GL_IMAGE_CLASS_4_X_32"/>
+ <enum value="0x82BA" name="GL_IMAGE_CLASS_2_X_32"/>
+ <enum value="0x82BB" name="GL_IMAGE_CLASS_1_X_32"/>
+ <enum value="0x82BC" name="GL_IMAGE_CLASS_4_X_16"/>
+ <enum value="0x82BD" name="GL_IMAGE_CLASS_2_X_16"/>
+ <enum value="0x82BE" name="GL_IMAGE_CLASS_1_X_16"/>
+ <enum value="0x82BF" name="GL_IMAGE_CLASS_4_X_8"/>
+ <enum value="0x82C0" name="GL_IMAGE_CLASS_2_X_8"/>
+ <enum value="0x82C1" name="GL_IMAGE_CLASS_1_X_8"/>
+ <enum value="0x82C2" name="GL_IMAGE_CLASS_11_11_10"/>
+ <enum value="0x82C3" name="GL_IMAGE_CLASS_10_10_10_2"/>
+ <enum value="0x82C4" name="GL_VIEW_CLASS_128_BITS"/>
+ <enum value="0x82C5" name="GL_VIEW_CLASS_96_BITS"/>
+ <enum value="0x82C6" name="GL_VIEW_CLASS_64_BITS"/>
+ <enum value="0x82C7" name="GL_VIEW_CLASS_48_BITS"/>
+ <enum value="0x82C8" name="GL_VIEW_CLASS_32_BITS"/>
+ <enum value="0x82C9" name="GL_VIEW_CLASS_24_BITS"/>
+ <enum value="0x82CA" name="GL_VIEW_CLASS_16_BITS"/>
+ <enum value="0x82CB" name="GL_VIEW_CLASS_8_BITS"/>
+ <enum value="0x82CC" name="GL_VIEW_CLASS_S3TC_DXT1_RGB"/>
+ <enum value="0x82CD" name="GL_VIEW_CLASS_S3TC_DXT1_RGBA"/>
+ <enum value="0x82CE" name="GL_VIEW_CLASS_S3TC_DXT3_RGBA"/>
+ <enum value="0x82CF" name="GL_VIEW_CLASS_S3TC_DXT5_RGBA"/>
+ <enum value="0x82D0" name="GL_VIEW_CLASS_RGTC1_RED"/>
+ <enum value="0x82D1" name="GL_VIEW_CLASS_RGTC2_RG"/>
+ <enum value="0x82D2" name="GL_VIEW_CLASS_BPTC_UNORM"/>
+ <enum value="0x82D3" name="GL_VIEW_CLASS_BPTC_FLOAT"/>
+ <enum value="0x82D4" name="GL_VERTEX_ATTRIB_BINDING"/>
+ <enum value="0x82D5" name="GL_VERTEX_ATTRIB_RELATIVE_OFFSET"/>
+ <enum value="0x82D6" name="GL_VERTEX_BINDING_DIVISOR"/>
+ <enum value="0x82D7" name="GL_VERTEX_BINDING_OFFSET"/>
+ <enum value="0x82D8" name="GL_VERTEX_BINDING_STRIDE"/>
+ <enum value="0x82D9" name="GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET"/>
+ <enum value="0x82DA" name="GL_MAX_VERTEX_ATTRIB_BINDINGS"/>
+ <enum value="0x82DB" name="GL_TEXTURE_VIEW_MIN_LEVEL"/>
+ <enum value="0x82DC" name="GL_TEXTURE_VIEW_NUM_LEVELS"/>
+ <enum value="0x82DD" name="GL_TEXTURE_VIEW_MIN_LAYER"/>
+ <enum value="0x82DE" name="GL_TEXTURE_VIEW_NUM_LAYERS"/>
+ <enum value="0x82DF" name="GL_TEXTURE_IMMUTABLE_LEVELS"/>
+ <enum value="0x82E0" name="GL_BUFFER"/>
+ <enum value="0x82E0" name="GL_BUFFER_KHR"/>
+ <enum value="0x82E1" name="GL_SHADER"/>
+ <enum value="0x82E1" name="GL_SHADER_KHR"/>
+ <enum value="0x82E2" name="GL_PROGRAM"/>
+ <enum value="0x82E2" name="GL_PROGRAM_KHR"/>
+ <enum value="0x82E3" name="GL_QUERY"/>
+ <enum value="0x82E3" name="GL_QUERY_KHR"/>
+ <enum value="0x82E4" name="GL_PROGRAM_PIPELINE"/>
+ <unused start="0x82E5" comment="Reserved for future GL"/>
+ <enum value="0x82E6" name="GL_SAMPLER"/>
+ <enum value="0x82E6" name="GL_SAMPLER_KHR"/>
+ <enum value="0x82E7" name="GL_DISPLAY_LIST"/>
+ <enum value="0x82E8" name="GL_MAX_LABEL_LENGTH"/>
+ <enum value="0x82E8" name="GL_MAX_LABEL_LENGTH_KHR"/>
+ <enum value="0x82E9" name="GL_NUM_SHADING_LANGUAGE_VERSIONS"/>
+ <unused start="0x82E9" end="0x830F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8310" end="0x832F" vendor="SGI">
+ <enum value="0x8310" name="GL_DEPTH_PASS_INSTRUMENT_SGIX"/>
+ <enum value="0x8311" name="GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX"/>
+ <enum value="0x8312" name="GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX"/>
+ <enum value="0x8313" name="GL_FRAGMENTS_INSTRUMENT_SGIX"/>
+ <enum value="0x8314" name="GL_FRAGMENTS_INSTRUMENT_COUNTERS_SGIX"/>
+ <enum value="0x8315" name="GL_FRAGMENTS_INSTRUMENT_MAX_SGIX"/>
+ <enum value="0x8316" name="GL_CONVOLUTION_HINT_SGIX"/>
+ <unused start="0x8317" comment="Incomplete extension SGIX_color_matrix_accuracy"/>
+ <!-- <enum value="0x8317" name="GL_COLOR_MATRIX_HINT"/> -->
+ <enum value="0x8318" name="GL_YCRCB_SGIX"/>
+ <enum value="0x8319" name="GL_YCRCBA_SGIX"/>
+ <enum value="0x831A" name="GL_UNPACK_COMPRESSED_SIZE_SGIX"/>
+ <enum value="0x831B" name="GL_PACK_MAX_COMPRESSED_SIZE_SGIX"/>
+ <enum value="0x831C" name="GL_PACK_COMPRESSED_SIZE_SGIX"/>
+ <enum value="0x831D" name="GL_SLIM8U_SGIX"/>
+ <enum value="0x831E" name="GL_SLIM10U_SGIX"/>
+ <enum value="0x831F" name="GL_SLIM12S_SGIX"/>
+ <enum value="0x8320" name="GL_ALPHA_MIN_SGIX"/>
+ <enum value="0x8321" name="GL_ALPHA_MAX_SGIX"/>
+ <enum value="0x8322" name="GL_SCALEBIAS_HINT_SGIX"/>
+ <unused start="0x8323" end="0x8328" comment="Incomplete extension SGIX_fog_layers"/>
+ <!-- <enum value="0x8323" name="GL_FOG_TYPE_SGIX"/> -->
+ <!-- <enum value="0x8324" name="GL_UNIFORM_SGIX"/> -->
+ <!-- <enum value="0x8325" name="GL_LAYERED_SGIX"/> -->
+ <!-- <enum value="0x8326" name="GL_FOG_GROUND_PLANE_SGIX"/> -->
+ <!-- <enum value="0x8327" name="GL_FOG_LAYERS_POINTS_SGIX"/> -->
+ <!-- <enum value="0x8328" name="GL_MAX_FOG_LAYERS_POINTS_SGIX"/> -->
+ <enum value="0x8329" name="GL_ASYNC_MARKER_SGIX"/>
+ <unused start="0x832A" comment="Incomplete extension SGIX_texture_phase"/>
+ <!-- <enum value="0x832A" name="GL_PHASE_SGIX"/> -->
+ <enum value="0x832B" name="GL_PIXEL_TEX_GEN_MODE_SGIX"/>
+ <enum value="0x832C" name="GL_ASYNC_HISTOGRAM_SGIX"/>
+ <enum value="0x832D" name="GL_MAX_ASYNC_HISTOGRAM_SGIX"/>
+ <unused start="0x832E" end="0x832F" comment="Incomplete extension SGIX_texture_mipmap_anisotropic"/>
+ <!-- <enum value="0x832E" name="GL_TEXTURE_MIPMAP_ANISOTROPY_SGIX"/> -->
+ <!-- <enum value="0x832F" name="GL_MAX_MIPMAP_ANISOTROPY_SGIX"/> -->
+ </enums>
+
+ <enums namespace="GL" start="0x8330" end="0x833F" vendor="SUN">
+ <enum value="0x8330" name="GL_PIXEL_TRANSFORM_2D_EXT"/>
+ <enum value="0x8331" name="GL_PIXEL_MAG_FILTER_EXT"/>
+ <enum value="0x8332" name="GL_PIXEL_MIN_FILTER_EXT"/>
+ <enum value="0x8333" name="GL_PIXEL_CUBIC_WEIGHT_EXT"/>
+ <enum value="0x8334" name="GL_CUBIC_EXT"/>
+ <enum value="0x8335" name="GL_AVERAGE_EXT"/>
+ <enum value="0x8336" name="GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT"/>
+ <enum value="0x8337" name="GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT"/>
+ <enum value="0x8338" name="GL_PIXEL_TRANSFORM_2D_MATRIX_EXT"/>
+ <unused start="0x8339" end="0x833F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8340" end="0x836F" vendor="SGI">
+ <unused start="0x8340" end="0x8348" comment="Incomplete extension SGIX_cube_map"/>
+ <!-- <enum value="0x8340" name="GL_ENV_MAP_SGIX"/> -->
+ <!-- <enum value="0x8341" name="GL_CUBE_MAP_SGIX"/> -->
+ <!-- <enum value="0x8342" name="GL_CUBE_MAP_ZP_SGIX"/> -->
+ <!-- <enum value="0x8343" name="GL_CUBE_MAP_ZN_SGIX"/> -->
+ <!-- <enum value="0x8344" name="GL_CUBE_MAP_XN_SGIX"/> -->
+ <!-- <enum value="0x8345" name="GL_CUBE_MAP_XP_SGIX"/> -->
+ <!-- <enum value="0x8346" name="GL_CUBE_MAP_YN_SGIX"/> -->
+ <!-- <enum value="0x8347" name="GL_CUBE_MAP_YP_SGIX"/> -->
+ <!-- <enum value="0x8348" name="GL_CUBE_MAP_BINDING_SGIX"/> -->
+ <enum value="0x8349" name="GL_FRAGMENT_MATERIAL_EXT"/>
+ <enum value="0x834A" name="GL_FRAGMENT_NORMAL_EXT"/>
+ <!-- Unfortunately, there was a collision promoting to EXT
+ from SGIX. Use fog_coord's value of 0x8452 instead of
+ the old assigned FRAGMENT_DEPTH_EXT (0x834B). -->
+ <enum value="0x834C" name="GL_FRAGMENT_COLOR_EXT"/>
+ <enum value="0x834D" name="GL_ATTENUATION_EXT"/>
+ <enum value="0x834E" name="GL_SHADOW_ATTENUATION_EXT"/>
+ <enum value="0x834F" name="GL_TEXTURE_APPLICATION_MODE_EXT"/>
+ <enum value="0x8350" name="GL_TEXTURE_LIGHT_EXT"/>
+ <enum value="0x8351" name="GL_TEXTURE_MATERIAL_FACE_EXT"/>
+ <enum value="0x8352" name="GL_TEXTURE_MATERIAL_PARAMETER_EXT"/>
+ <enum value="0x8353" name="GL_PIXEL_TEXTURE_SGIS"/>
+ <enum value="0x8354" name="GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS"/>
+ <enum value="0x8355" name="GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS"/>
+ <enum value="0x8356" name="GL_PIXEL_GROUP_COLOR_SGIS"/>
+ <unused start="0x8357" end="0x8359" comment="Incomplete extension SGIX_pixel_texture_bits"/>
+ <!-- <enum value="0x8357" name="GL_COLOR_TO_TEXTURE_COORD_SGIX"/> -->
+ <!-- <enum value="0x8358" name="GL_COLOR_BIT_PATTERN_SGIX"/> -->
+ <!-- <enum value="0x8359" name="GL_COLOR_VALUE_SGIX"/> -->
+ <unused start="0x835A" comment="Incomplete extension SGIX_pixel_texture_lod"/>
+ <!-- <enum value="0x835A" name="GL_PIXEL_TEX_GEN_LAMBDA_SOURCE_SGIX"/> -->
+ <enum value="0x835B" name="GL_LINE_QUALITY_HINT_SGIX"/>
+ <enum value="0x835C" name="GL_ASYNC_TEX_IMAGE_SGIX"/>
+ <enum value="0x835D" name="GL_ASYNC_DRAW_PIXELS_SGIX"/>
+ <enum value="0x835E" name="GL_ASYNC_READ_PIXELS_SGIX"/>
+ <enum value="0x835F" name="GL_MAX_ASYNC_TEX_IMAGE_SGIX"/>
+ <enum value="0x8360" name="GL_MAX_ASYNC_DRAW_PIXELS_SGIX"/>
+ <enum value="0x8361" name="GL_MAX_ASYNC_READ_PIXELS_SGIX"/>
+ <enum value="0x8362" name="GL_UNSIGNED_BYTE_2_3_3_REV"/>
+ <enum value="0x8362" name="GL_UNSIGNED_BYTE_2_3_3_REV_EXT"/>
+ <enum value="0x8363" name="GL_UNSIGNED_SHORT_5_6_5"/>
+ <enum value="0x8363" name="GL_UNSIGNED_SHORT_5_6_5_EXT"/>
+ <enum value="0x8364" name="GL_UNSIGNED_SHORT_5_6_5_REV"/>
+ <enum value="0x8364" name="GL_UNSIGNED_SHORT_5_6_5_REV_EXT"/>
+ <enum value="0x8365" name="GL_UNSIGNED_SHORT_4_4_4_4_REV"/>
+ <enum value="0x8365" name="GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT"/>
+ <enum value="0x8366" name="GL_UNSIGNED_SHORT_1_5_5_5_REV"/>
+ <enum value="0x8366" name="GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT"/>
+ <enum value="0x8367" name="GL_UNSIGNED_INT_8_8_8_8_REV"/>
+ <enum value="0x8367" name="GL_UNSIGNED_INT_8_8_8_8_REV_EXT"/>
+ <enum value="0x8368" name="GL_UNSIGNED_INT_2_10_10_10_REV"/>
+ <enum value="0x8368" name="GL_UNSIGNED_INT_2_10_10_10_REV_EXT"/>
+ <enum value="0x8369" name="GL_TEXTURE_MAX_CLAMP_S_SGIX"/>
+ <enum value="0x836A" name="GL_TEXTURE_MAX_CLAMP_T_SGIX"/>
+ <enum value="0x836B" name="GL_TEXTURE_MAX_CLAMP_R_SGIX"/>
+ <unused start="0x836C" end="0x836E" comment="Incomplete extension SGIX_fog_texture"/>
+ <!-- <enum value="0x836C" name="GL_FRAGMENT_FOG_SGIX"/> -->
+ <!-- <enum value="0x836D" name="GL_TEXTURE_FOG_SGIX"/> -->
+ <!-- <enum value="0x836E" name="GL_FOG_PATCHY_FACTOR_SGIX"/> -->
+ <unused start="0x836F" comment="Incomplete extension SGIX_fog_factor_to_alpha"/>
+ <!-- <enum value="0x836F" name="GL_FOG_FACTOR_TO_ALPHA_SGIX"/> -->
+ </enums>
+
+ <enums namespace="GL" start="0x8370" end="0x837F" vendor="HP">
+ <!-- NOTE: IBM is using values in this range, because of a
+ bobble when an employee left DEC for IBM at the same
+ time as they were assigned the range. their registry
+ became inconsistent. It's unknown whether HP has any
+ conflicts. They have never reported using any values in
+ this range. Lesson: assigned ranges belong to vendors,
+ not engineers! -->
+ <enum value="0x8370" name="GL_MIRRORED_REPEAT"/>
+ <enum value="0x8370" name="GL_MIRRORED_REPEAT_ARB"/>
+ <enum value="0x8370" name="GL_MIRRORED_REPEAT_IBM"/>
+ <enum value="0x8370" name="GL_MIRRORED_REPEAT_OES"/>
+ <unused start="0x8371" end="0x837F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8380" end="0x839F" vendor="IBM"/>
+
+ <enums namespace="GL" start="0x83A0" end="0x83BF" vendor="S3">
+ <enum value="0x83A0" name="GL_RGB_S3TC"/>
+ <enum value="0x83A1" name="GL_RGB4_S3TC"/>
+ <enum value="0x83A2" name="GL_RGBA_S3TC"/>
+ <enum value="0x83A3" name="GL_RGBA4_S3TC"/>
+ <enum value="0x83A4" name="GL_RGBA_DXT5_S3TC"/>
+ <enum value="0x83A5" name="GL_RGBA4_DXT5_S3TC"/>
+ <unused start="0x83A6" end="0x83BF"/>
+ </enums>
+
+ <enums namespace="GL" start="0x83C0" end="0x83EF" vendor="SGI" comment="Most of this could be reclaimed">
+ <unused start="0x83C0" end="0x83CA" comment="Withdrawn extension SGIS_multitexture"/>
+ <!-- <enum value="0x83C0" name="GL_SELECTED_TEXTURE_SGIS"/> -->
+ <!-- <enum value="0x83C1" name="GL_SELECTED_TEXTURE_COORD_SET_SGIS"/> -->
+ <!-- <enum value="0x83C2" name="GL_SELECTED_TEXTURE_TRANSFORM_SGIS"/> -->
+ <!-- <enum value="0x83C3" name="GL_MAX_TEXTURES_SGIS"/> -->
+ <!-- <enum value="0x83C4" name="GL_MAX_TEXTURE_COORD_SETS_SGIS"/> -->
+ <!-- <enum value="0x83C5" name="GL_TEXTURE_COORD_SET_INTERLEAVE_FACTOR_SGIS"/> -->
+ <!-- <enum value="0x83C6" name="GL_TEXTURE_ENV_COORD_SET_SGIS"/> -->
+ <!-- <enum value="0x83C7" name="GL_TEXTURE0_SGIS"/> -->
+ <!-- <enum value="0x83C8" name="GL_TEXTURE1_SGIS"/> -->
+ <!-- <enum value="0x83C9" name="GL_TEXTURE2_SGIS"/> -->
+ <!-- <enum value="0x83CA" name="GL_TEXTURE3_SGIS"/> -->
+ <unused start="0x83CB" end="0x83E5"/>
+ <unused start="0x83E6" end="0x83E9" comment="Incomplete extension SGIX_bali_g_instruments"/>
+ <!-- <enum value="0x83E6" name="GL_BALI_NUM_TRIS_CULLED_INSTRUMENT_SGIX"/> -->
+ <!-- <enum value="0x83E7" name="GL_BALI_NUM_PRIMS_CLIPPED_INSTRUMENT_SGIX"/> -->
+ <!-- <enum value="0x83E8" name="GL_BALI_NUM_PRIMS_REJECT_INSTRUMENT_SGIX"/> -->
+ <!-- <enum value="0x83E9" name="GL_BALI_NUM_PRIMS_CLIP_RESULT_INSTRUMENT_SGIX"/> -->
+ <unused start="0x83EA" end="0x83EC" comment="Incomplete extension SGIX_bali_r_instruments"/>
+ <!-- <enum value="0x83EA" name="GL_BALI_FRAGMENTS_GENERATED_INSTRUMENT_SGIX"/> -->
+ <!-- <enum value="0x83EB" name="GL_BALI_DEPTH_PASS_INSTRUMENT_SGIX"/> -->
+ <!-- <enum value="0x83EC" name="GL_BALI_R_CHIP_COUNT_SGIX"/> -->
+ <unused start="0x83ED" comment="Incomplete extension SGIX_occlusion_instrument"/>
+ <!-- <enum value="0x83ED" name="GL_OCCLUSION_INSTRUMENT_SGIX"/> -->
+ <enum value="0x83EE" name="GL_VERTEX_PRECLIP_SGIX"/>
+ <enum value="0x83EF" name="GL_VERTEX_PRECLIP_HINT_SGIX"/>
+ </enums>
+
+ <enums namespace="GL" start="0x83F0" end="0x83FF" vendor="INTEL">
+ <!-- This block was reclaimed from NTP, who never shipped
+ it, and reassigned to Intel. -->
+ <enum value="0x83F0" name="GL_COMPRESSED_RGB_S3TC_DXT1_EXT"/>
+ <enum value="0x83F1" name="GL_COMPRESSED_RGBA_S3TC_DXT1_EXT"/>
+ <enum value="0x83F2" name="GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE"/>
+ <enum value="0x83F2" name="GL_COMPRESSED_RGBA_S3TC_DXT3_EXT"/>
+ <enum value="0x83F3" name="GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE"/>
+ <enum value="0x83F3" name="GL_COMPRESSED_RGBA_S3TC_DXT5_EXT"/>
+ <enum value="0x83F4" name="GL_PARALLEL_ARRAYS_INTEL"/>
+ <enum value="0x83F5" name="GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL"/>
+ <enum value="0x83F6" name="GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL"/>
+ <enum value="0x83F7" name="GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL"/>
+ <enum value="0x83F8" name="GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL"/>
+ <unused start="0x83F9" end="0x83FE"/>
+ <enum value="0x83FF" name="GL_TEXTURE_MEMORY_LAYOUT_INTEL"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8400" end="0x846F" vendor="SGI">
+ <enum value="0x8400" name="GL_FRAGMENT_LIGHTING_SGIX"/>
+ <enum value="0x8401" name="GL_FRAGMENT_COLOR_MATERIAL_SGIX"/>
+ <enum value="0x8402" name="GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX"/>
+ <enum value="0x8403" name="GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX"/>
+ <enum value="0x8404" name="GL_MAX_FRAGMENT_LIGHTS_SGIX"/>
+ <enum value="0x8405" name="GL_MAX_ACTIVE_LIGHTS_SGIX"/>
+ <enum value="0x8406" name="GL_CURRENT_RASTER_NORMAL_SGIX"/>
+ <enum value="0x8407" name="GL_LIGHT_ENV_MODE_SGIX"/>
+ <enum value="0x8408" name="GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX"/>
+ <enum value="0x8409" name="GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX"/>
+ <enum value="0x840A" name="GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX"/>
+ <enum value="0x840B" name="GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX"/>
+ <enum value="0x840C" name="GL_FRAGMENT_LIGHT0_SGIX"/>
+ <enum value="0x840D" name="GL_FRAGMENT_LIGHT1_SGIX"/>
+ <enum value="0x840E" name="GL_FRAGMENT_LIGHT2_SGIX"/>
+ <enum value="0x840F" name="GL_FRAGMENT_LIGHT3_SGIX"/>
+ <enum value="0x8410" name="GL_FRAGMENT_LIGHT4_SGIX"/>
+ <enum value="0x8411" name="GL_FRAGMENT_LIGHT5_SGIX"/>
+ <enum value="0x8412" name="GL_FRAGMENT_LIGHT6_SGIX"/>
+ <enum value="0x8413" name="GL_FRAGMENT_LIGHT7_SGIX"/>
+ <unused start="0x8414" end="0x842B"/>
+ <enum value="0x842C" name="GL_PACK_RESAMPLE_SGIX"/>
+ <enum value="0x842D" name="GL_UNPACK_RESAMPLE_SGIX"/>
+ <enum value="0x842E" name="GL_RESAMPLE_REPLICATE_SGIX"/>
+ <enum value="0x842F" name="GL_RESAMPLE_ZERO_FILL_SGIX"/>
+ <enum value="0x8430" name="GL_RESAMPLE_DECIMATE_SGIX"/>
+ <unused start="0x8431" end="0x8435"/>
+ <!-- Incomplete extension SGIX_fragment_lighting -->
+ <!-- <enum value="0x8436" name="GL_EYE_SPACE_SGIX"/> -->
+ <!-- <enum value="0x8437" name="GL_TANGENT_SPACE_SGIX"/> -->
+ <!-- <enum value="0x8438" name="GL_OBJECT_SPACE_SGIX"/> -->
+ <!-- <enum value="0x8439" name="GL_TANGENT_ARRAY_SGIX"/> -->
+ <!-- <enum value="0x843A" name="GL_BINORMAL_ARRAY_SGIX"/> -->
+ <!-- <enum value="0x843B" name="GL_CURRENT_TANGENT_SGIX"/> -->
+ <!-- <enum value="0x843C" name="GL_CURRENT_BINORMAL_SGIX"/> -->
+ <!-- <enum value="0x843D" name="GL_FRAGMENT_LIGHT_SPACE_SGIX"/> -->
+ <!-- <enum value="0x843E" name="GL_TANGENT_ARRAY_TYPE_SGIX"/> -->
+ <!-- <enum value="0x843F" name="GL_TANGENT_ARRAY_STRIDE_SGIX"/> -->
+ <!-- <enum value="0x8440" name="GL_TANGENT_ARRAY_COUNT_SGIX"/> -->
+ <!-- <enum value="0x8441" name="GL_BINORMAL_ARRAY_TYPE_SGIX"/> -->
+ <!-- <enum value="0x8442" name="GL_BINORMAL_ARRAY_STRIDE_SGIX"/> -->
+ <!-- <enum value="0x8443" name="GL_BINORMAL_ARRAY_COUNT_SGIX"/> -->
+ <!-- <enum value="0x8444" name="GL_TANGENT_ARRAY_POINTER_SGIX"/> -->
+ <!-- <enum value="0x8445" name="GL_BINORMAL_ARRAY_POINTER_SGIX"/> -->
+ <!-- <enum value="0x8446" name="GL_MAP1_TANGENT_SGIX"/> -->
+ <!-- <enum value="0x8447" name="GL_MAP2_TANGENT_SGIX"/> -->
+ <!-- <enum value="0x8448" name="GL_MAP1_BINORMAL_SGIX"/> -->
+ <!-- <enum value="0x8449" name="GL_MAP2_BINORMAL_SGIX"/> -->
+ <enum value="0x8439" name="GL_TANGENT_ARRAY_EXT"/>
+ <enum value="0x843A" name="GL_BINORMAL_ARRAY_EXT"/>
+ <enum value="0x843B" name="GL_CURRENT_TANGENT_EXT"/>
+ <enum value="0x843C" name="GL_CURRENT_BINORMAL_EXT"/>
+ <unused start="0x844D"/>
+ <enum value="0x843E" name="GL_TANGENT_ARRAY_TYPE_EXT"/>
+ <enum value="0x843F" name="GL_TANGENT_ARRAY_STRIDE_EXT"/>
+ <enum value="0x8440" name="GL_BINORMAL_ARRAY_TYPE_EXT"/>
+ <enum value="0x8441" name="GL_BINORMAL_ARRAY_STRIDE_EXT"/>
+ <enum value="0x8442" name="GL_TANGENT_ARRAY_POINTER_EXT"/>
+ <enum value="0x8443" name="GL_BINORMAL_ARRAY_POINTER_EXT"/>
+ <enum value="0x8444" name="GL_MAP1_TANGENT_EXT"/>
+ <enum value="0x8445" name="GL_MAP2_TANGENT_EXT"/>
+ <enum value="0x8446" name="GL_MAP1_BINORMAL_EXT"/>
+ <enum value="0x8447" name="GL_MAP2_BINORMAL_EXT"/>
+ <unused start="0x8448" end="0x8449" comment="Incomplete extension SGIX_fragment_lighting"/>
+ <unused start="0x844A" end="0x844C" comment="Incomplete extension SGIX_bali_timer_instruments"/>
+ <!-- <enum value="0x844A" name="GL_BALI_GEOM_TIMER_INSTRUMENT_SGIX"/> -->
+ <!-- <enum value="0x844B" name="GL_BALI_RASTER_TIMER_INSTRUMENT_SGIX"/> -->
+ <!-- <enum value="0x844C" name="GL_BALI_INSTRUMENT_TIME_UNIT_SGIX"/> -->
+ <enum value="0x844D" name="GL_NEAREST_CLIPMAP_NEAREST_SGIX"/>
+ <enum value="0x844E" name="GL_NEAREST_CLIPMAP_LINEAR_SGIX"/>
+ <enum value="0x844F" name="GL_LINEAR_CLIPMAP_NEAREST_SGIX"/>
+ <!-- 0x8450-0x845F range brokered for Id Software -->
+ <enum value="0x8450" name="GL_FOG_COORDINATE_SOURCE"/>
+ <enum value="0x8450" name="GL_FOG_COORDINATE_SOURCE_EXT"/>
+ <enum value="0x8450" name="GL_FOG_COORD_SRC" alias="GL_FOG_COORDINATE_SOURCE"/>
+ <enum value="0x8451" name="GL_FOG_COORDINATE"/>
+ <enum value="0x8451" name="GL_FOG_COORD" alias="GL_FOG_COORDINATE"/>
+ <enum value="0x8451" name="GL_FOG_COORDINATE_EXT"/>
+ <enum value="0x8452" name="GL_FRAGMENT_DEPTH"/>
+ <enum value="0x8452" name="GL_FRAGMENT_DEPTH_EXT"/>
+ <enum value="0x8453" name="GL_CURRENT_FOG_COORDINATE"/>
+ <enum value="0x8453" name="GL_CURRENT_FOG_COORD" alias="GL_CURRENT_FOG_COORDINATE"/>
+ <enum value="0x8453" name="GL_CURRENT_FOG_COORDINATE_EXT"/>
+ <enum value="0x8454" name="GL_FOG_COORDINATE_ARRAY_TYPE"/>
+ <enum value="0x8454" name="GL_FOG_COORDINATE_ARRAY_TYPE_EXT"/>
+ <enum value="0x8454" name="GL_FOG_COORD_ARRAY_TYPE" alias="GL_FOG_COORDINATE_ARRAY_TYPE"/>
+ <enum value="0x8455" name="GL_FOG_COORDINATE_ARRAY_STRIDE"/>
+ <enum value="0x8455" name="GL_FOG_COORDINATE_ARRAY_STRIDE_EXT"/>
+ <enum value="0x8455" name="GL_FOG_COORD_ARRAY_STRIDE" alias="GL_FOG_COORDINATE_ARRAY_STRIDE"/>
+ <enum value="0x8456" name="GL_FOG_COORDINATE_ARRAY_POINTER"/>
+ <enum value="0x8456" name="GL_FOG_COORDINATE_ARRAY_POINTER_EXT"/>
+ <enum value="0x8456" name="GL_FOG_COORD_ARRAY_POINTER" alias="GL_FOG_COORDINATE_ARRAY_POINTER"/>
+ <enum value="0x8457" name="GL_FOG_COORDINATE_ARRAY"/>
+ <enum value="0x8457" name="GL_FOG_COORDINATE_ARRAY_EXT"/>
+ <enum value="0x8457" name="GL_FOG_COORD_ARRAY" alias="GL_FOG_COORDINATE_ARRAY"/>
+ <enum value="0x8458" name="GL_COLOR_SUM"/>
+ <enum value="0x8458" name="GL_COLOR_SUM_ARB"/>
+ <enum value="0x8458" name="GL_COLOR_SUM_EXT"/>
+ <enum value="0x8459" name="GL_CURRENT_SECONDARY_COLOR"/>
+ <enum value="0x8459" name="GL_CURRENT_SECONDARY_COLOR_EXT"/>
+ <enum value="0x845A" name="GL_SECONDARY_COLOR_ARRAY_SIZE"/>
+ <enum value="0x845A" name="GL_SECONDARY_COLOR_ARRAY_SIZE_EXT"/>
+ <enum value="0x845B" name="GL_SECONDARY_COLOR_ARRAY_TYPE"/>
+ <enum value="0x845B" name="GL_SECONDARY_COLOR_ARRAY_TYPE_EXT"/>
+ <enum value="0x845C" name="GL_SECONDARY_COLOR_ARRAY_STRIDE"/>
+ <enum value="0x845C" name="GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT"/>
+ <enum value="0x845D" name="GL_SECONDARY_COLOR_ARRAY_POINTER"/>
+ <enum value="0x845D" name="GL_SECONDARY_COLOR_ARRAY_POINTER_EXT"/>
+ <enum value="0x845E" name="GL_SECONDARY_COLOR_ARRAY"/>
+ <enum value="0x845E" name="GL_SECONDARY_COLOR_ARRAY_EXT"/>
+ <enum value="0x845F" name="GL_CURRENT_RASTER_SECONDARY_COLOR"/>
+ <unused start="0x8460" end="0x846B" comment="Incomplete extension SGIX_icc_texture"/>
+ <!-- <enum value="0x8460" name="GL_RGB_ICC_SGIX"/> -->
+ <!-- <enum value="0x8461" name="GL_RGBA_ICC_SGIX"/> -->
+ <!-- <enum value="0x8462" name="GL_ALPHA_ICC_SGIX"/> -->
+ <!-- <enum value="0x8463" name="GL_LUMINANCE_ICC_SGIX"/> -->
+ <!-- <enum value="0x8464" name="GL_INTENSITY_ICC_SGIX"/> -->
+ <!-- <enum value="0x8465" name="GL_LUMINANCE_ALPHA_ICC_SGIX"/> -->
+ <!-- <enum value="0x8466" name="GL_R5_G6_B5_ICC_SGIX"/> -->
+ <!-- <enum value="0x8467" name="GL_R5_G6_B5_A8_ICC_SGIX"/> -->
+ <!-- <enum value="0x8468" name="GL_ALPHA16_ICC_SGIX"/> -->
+ <!-- <enum value="0x8469" name="GL_LUMINANCE16_ICC_SGIX"/> -->
+ <!-- <enum value="0x846A" name="GL_INTENSITY16_ICC_SGIX"/> -->
+ <!-- <enum value="0x846B" name="GL_LUMINANCE16_ALPHA8_ICC_SGIX"/> -->
+ <unused start="0x846C"/>
+ <enum value="0x846D" name="GL_ALIASED_POINT_SIZE_RANGE"/>
+ <enum value="0x846E" name="GL_ALIASED_LINE_WIDTH_RANGE"/>
+ <unused start="0x846F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8470" end="0x848F" vendor="AMD"/>
+
+ <enums namespace="GL" start="0x8490" end="0x849F" vendor="REND">
+ <enum value="0x8490" name="GL_SCREEN_COORDINATES_REND"/>
+ <enum value="0x8491" name="GL_INVERTED_SCREEN_W_REND"/>
+ <unused start="0x8492" end="0x849F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x84A0" end="0x84BF" vendor="AMD"/>
+
+ <enums namespace="GL" start="0x84C0" end="0x84EF" vendor="ARB">
+ <enum value="0x84C0" name="GL_TEXTURE0"/>
+ <enum value="0x84C0" name="GL_TEXTURE0_ARB"/>
+ <enum value="0x84C1" name="GL_TEXTURE1"/>
+ <enum value="0x84C1" name="GL_TEXTURE1_ARB"/>
+ <enum value="0x84C2" name="GL_TEXTURE2"/>
+ <enum value="0x84C2" name="GL_TEXTURE2_ARB"/>
+ <enum value="0x84C3" name="GL_TEXTURE3"/>
+ <enum value="0x84C3" name="GL_TEXTURE3_ARB"/>
+ <enum value="0x84C4" name="GL_TEXTURE4"/>
+ <enum value="0x84C4" name="GL_TEXTURE4_ARB"/>
+ <enum value="0x84C5" name="GL_TEXTURE5"/>
+ <enum value="0x84C5" name="GL_TEXTURE5_ARB"/>
+ <enum value="0x84C6" name="GL_TEXTURE6"/>
+ <enum value="0x84C6" name="GL_TEXTURE6_ARB"/>
+ <enum value="0x84C7" name="GL_TEXTURE7"/>
+ <enum value="0x84C7" name="GL_TEXTURE7_ARB"/>
+ <enum value="0x84C8" name="GL_TEXTURE8"/>
+ <enum value="0x84C8" name="GL_TEXTURE8_ARB"/>
+ <enum value="0x84C9" name="GL_TEXTURE9"/>
+ <enum value="0x84C9" name="GL_TEXTURE9_ARB"/>
+ <enum value="0x84CA" name="GL_TEXTURE10"/>
+ <enum value="0x84CA" name="GL_TEXTURE10_ARB"/>
+ <enum value="0x84CB" name="GL_TEXTURE11"/>
+ <enum value="0x84CB" name="GL_TEXTURE11_ARB"/>
+ <enum value="0x84CC" name="GL_TEXTURE12"/>
+ <enum value="0x84CC" name="GL_TEXTURE12_ARB"/>
+ <enum value="0x84CD" name="GL_TEXTURE13"/>
+ <enum value="0x84CD" name="GL_TEXTURE13_ARB"/>
+ <enum value="0x84CE" name="GL_TEXTURE14"/>
+ <enum value="0x84CE" name="GL_TEXTURE14_ARB"/>
+ <enum value="0x84CF" name="GL_TEXTURE15"/>
+ <enum value="0x84CF" name="GL_TEXTURE15_ARB"/>
+ <enum value="0x84D0" name="GL_TEXTURE16"/>
+ <enum value="0x84D0" name="GL_TEXTURE16_ARB"/>
+ <enum value="0x84D1" name="GL_TEXTURE17"/>
+ <enum value="0x84D1" name="GL_TEXTURE17_ARB"/>
+ <enum value="0x84D2" name="GL_TEXTURE18"/>
+ <enum value="0x84D2" name="GL_TEXTURE18_ARB"/>
+ <enum value="0x84D3" name="GL_TEXTURE19"/>
+ <enum value="0x84D3" name="GL_TEXTURE19_ARB"/>
+ <enum value="0x84D4" name="GL_TEXTURE20"/>
+ <enum value="0x84D4" name="GL_TEXTURE20_ARB"/>
+ <enum value="0x84D5" name="GL_TEXTURE21"/>
+ <enum value="0x84D5" name="GL_TEXTURE21_ARB"/>
+ <enum value="0x84D6" name="GL_TEXTURE22"/>
+ <enum value="0x84D6" name="GL_TEXTURE22_ARB"/>
+ <enum value="0x84D7" name="GL_TEXTURE23"/>
+ <enum value="0x84D7" name="GL_TEXTURE23_ARB"/>
+ <enum value="0x84D8" name="GL_TEXTURE24"/>
+ <enum value="0x84D8" name="GL_TEXTURE24_ARB"/>
+ <enum value="0x84D9" name="GL_TEXTURE25"/>
+ <enum value="0x84D9" name="GL_TEXTURE25_ARB"/>
+ <enum value="0x84DA" name="GL_TEXTURE26"/>
+ <enum value="0x84DA" name="GL_TEXTURE26_ARB"/>
+ <enum value="0x84DB" name="GL_TEXTURE27"/>
+ <enum value="0x84DB" name="GL_TEXTURE27_ARB"/>
+ <enum value="0x84DC" name="GL_TEXTURE28"/>
+ <enum value="0x84DC" name="GL_TEXTURE28_ARB"/>
+ <enum value="0x84DD" name="GL_TEXTURE29"/>
+ <enum value="0x84DD" name="GL_TEXTURE29_ARB"/>
+ <enum value="0x84DE" name="GL_TEXTURE30"/>
+ <enum value="0x84DE" name="GL_TEXTURE30_ARB"/>
+ <enum value="0x84DF" name="GL_TEXTURE31"/>
+ <enum value="0x84DF" name="GL_TEXTURE31_ARB"/>
+ <enum value="0x84E0" name="GL_ACTIVE_TEXTURE"/>
+ <enum value="0x84E0" name="GL_ACTIVE_TEXTURE_ARB"/>
+ <enum value="0x84E1" name="GL_CLIENT_ACTIVE_TEXTURE"/>
+ <enum value="0x84E1" name="GL_CLIENT_ACTIVE_TEXTURE_ARB"/>
+ <enum value="0x84E2" name="GL_MAX_TEXTURE_UNITS"/>
+ <enum value="0x84E2" name="GL_MAX_TEXTURE_UNITS_ARB"/>
+ <enum value="0x84E3" name="GL_TRANSPOSE_MODELVIEW_MATRIX"/>
+ <enum value="0x84E3" name="GL_TRANSPOSE_MODELVIEW_MATRIX_ARB"/>
+ <enum value="0x84E4" name="GL_TRANSPOSE_PROJECTION_MATRIX"/>
+ <enum value="0x84E4" name="GL_TRANSPOSE_PROJECTION_MATRIX_ARB"/>
+ <enum value="0x84E5" name="GL_TRANSPOSE_TEXTURE_MATRIX"/>
+ <enum value="0x84E5" name="GL_TRANSPOSE_TEXTURE_MATRIX_ARB"/>
+ <enum value="0x84E6" name="GL_TRANSPOSE_COLOR_MATRIX"/>
+ <enum value="0x84E6" name="GL_TRANSPOSE_COLOR_MATRIX_ARB"/>
+ <enum value="0x84E7" name="GL_SUBTRACT"/>
+ <enum value="0x84E7" name="GL_SUBTRACT_ARB"/>
+ <enum value="0x84E8" name="GL_MAX_RENDERBUFFER_SIZE"/>
+ <enum value="0x84E8" name="GL_MAX_RENDERBUFFER_SIZE_EXT"/>
+ <enum value="0x84E8" name="GL_MAX_RENDERBUFFER_SIZE_OES"/>
+ <enum value="0x84E9" name="GL_COMPRESSED_ALPHA"/>
+ <enum value="0x84E9" name="GL_COMPRESSED_ALPHA_ARB"/>
+ <enum value="0x84EA" name="GL_COMPRESSED_LUMINANCE"/>
+ <enum value="0x84EA" name="GL_COMPRESSED_LUMINANCE_ARB"/>
+ <enum value="0x84EB" name="GL_COMPRESSED_LUMINANCE_ALPHA"/>
+ <enum value="0x84EB" name="GL_COMPRESSED_LUMINANCE_ALPHA_ARB"/>
+ <enum value="0x84EC" name="GL_COMPRESSED_INTENSITY"/>
+ <enum value="0x84EC" name="GL_COMPRESSED_INTENSITY_ARB"/>
+ <enum value="0x84ED" name="GL_COMPRESSED_RGB"/>
+ <enum value="0x84ED" name="GL_COMPRESSED_RGB_ARB"/>
+ <enum value="0x84EE" name="GL_COMPRESSED_RGBA"/>
+ <enum value="0x84EE" name="GL_COMPRESSED_RGBA_ARB"/>
+ <enum value="0x84EF" name="GL_TEXTURE_COMPRESSION_HINT"/>
+ <enum value="0x84EF" name="GL_TEXTURE_COMPRESSION_HINT_ARB"/>
+ </enums>
+
+ <enums namespace="GL" start="0x84F0" end="0x855F" vendor="NV">
+ <enum value="0x84F0" name="GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER"/>
+ <enum value="0x84F1" name="GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER"/>
+ <enum value="0x84F2" name="GL_ALL_COMPLETED_NV"/>
+ <enum value="0x84F3" name="GL_FENCE_STATUS_NV"/>
+ <enum value="0x84F4" name="GL_FENCE_CONDITION_NV"/>
+ <enum value="0x84F5" name="GL_TEXTURE_RECTANGLE"/>
+ <enum value="0x84F5" name="GL_TEXTURE_RECTANGLE_ARB"/>
+ <enum value="0x84F5" name="GL_TEXTURE_RECTANGLE_NV"/>
+ <enum value="0x84F6" name="GL_TEXTURE_BINDING_RECTANGLE"/>
+ <enum value="0x84F6" name="GL_TEXTURE_BINDING_RECTANGLE_ARB"/>
+ <enum value="0x84F6" name="GL_TEXTURE_BINDING_RECTANGLE_NV"/>
+ <enum value="0x84F7" name="GL_PROXY_TEXTURE_RECTANGLE"/>
+ <enum value="0x84F7" name="GL_PROXY_TEXTURE_RECTANGLE_ARB"/>
+ <enum value="0x84F7" name="GL_PROXY_TEXTURE_RECTANGLE_NV"/>
+ <enum value="0x84F8" name="GL_MAX_RECTANGLE_TEXTURE_SIZE"/>
+ <enum value="0x84F8" name="GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB"/>
+ <enum value="0x84F8" name="GL_MAX_RECTANGLE_TEXTURE_SIZE_NV"/>
+ <enum value="0x84F9" name="GL_DEPTH_STENCIL"/>
+ <enum value="0x84F9" name="GL_DEPTH_STENCIL_EXT"/>
+ <enum value="0x84F9" name="GL_DEPTH_STENCIL_NV"/>
+ <enum value="0x84F9" name="GL_DEPTH_STENCIL_OES"/>
+ <enum value="0x84FA" name="GL_UNSIGNED_INT_24_8"/>
+ <enum value="0x84FA" name="GL_UNSIGNED_INT_24_8_EXT"/>
+ <enum value="0x84FA" name="GL_UNSIGNED_INT_24_8_NV"/>
+ <enum value="0x84FA" name="GL_UNSIGNED_INT_24_8_OES"/>
+ <unused start="0x84FB" end="0x84FC"/>
+ <enum value="0x84FD" name="GL_MAX_TEXTURE_LOD_BIAS"/>
+ <enum value="0x84FD" name="GL_MAX_TEXTURE_LOD_BIAS_EXT"/>
+ <enum value="0x84FE" name="GL_TEXTURE_MAX_ANISOTROPY_EXT"/>
+ <enum value="0x84FF" name="GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT"/>
+ <enum value="0x8500" name="GL_TEXTURE_FILTER_CONTROL"/>
+ <enum value="0x8500" name="GL_TEXTURE_FILTER_CONTROL_EXT"/>
+ <enum value="0x8501" name="GL_TEXTURE_LOD_BIAS"/>
+ <enum value="0x8501" name="GL_TEXTURE_LOD_BIAS_EXT"/>
+ <enum value="0x8502" name="GL_MODELVIEW1_STACK_DEPTH_EXT"/>
+ <enum value="0x8503" name="GL_COMBINE4_NV"/>
+ <enum value="0x8504" name="GL_MAX_SHININESS_NV"/>
+ <enum value="0x8505" name="GL_MAX_SPOT_EXPONENT_NV"/>
+ <enum value="0x8506" name="GL_MODELVIEW1_MATRIX_EXT"/>
+ <enum value="0x8507" name="GL_INCR_WRAP"/>
+ <enum value="0x8507" name="GL_INCR_WRAP_EXT"/>
+ <enum value="0x8507" name="GL_INCR_WRAP_OES"/>
+ <enum value="0x8508" name="GL_DECR_WRAP"/>
+ <enum value="0x8508" name="GL_DECR_WRAP_EXT"/>
+ <enum value="0x8508" name="GL_DECR_WRAP_OES"/>
+ <enum value="0x8509" name="GL_VERTEX_WEIGHTING_EXT"/>
+ <enum value="0x850A" name="GL_MODELVIEW1_ARB"/>
+ <enum value="0x850A" name="GL_MODELVIEW1_EXT"/>
+ <enum value="0x850B" name="GL_CURRENT_VERTEX_WEIGHT_EXT"/>
+ <enum value="0x850C" name="GL_VERTEX_WEIGHT_ARRAY_EXT"/>
+ <enum value="0x850D" name="GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT"/>
+ <enum value="0x850E" name="GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT"/>
+ <enum value="0x850F" name="GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT"/>
+ <enum value="0x8510" name="GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT"/>
+ <enum value="0x8511" name="GL_NORMAL_MAP"/>
+ <enum value="0x8511" name="GL_NORMAL_MAP_ARB"/>
+ <enum value="0x8511" name="GL_NORMAL_MAP_EXT"/>
+ <enum value="0x8511" name="GL_NORMAL_MAP_NV"/>
+ <enum value="0x8511" name="GL_NORMAL_MAP_OES"/>
+ <enum value="0x8512" name="GL_REFLECTION_MAP"/>
+ <enum value="0x8512" name="GL_REFLECTION_MAP_ARB"/>
+ <enum value="0x8512" name="GL_REFLECTION_MAP_EXT"/>
+ <enum value="0x8512" name="GL_REFLECTION_MAP_NV"/>
+ <enum value="0x8512" name="GL_REFLECTION_MAP_OES"/>
+ <enum value="0x8513" name="GL_TEXTURE_CUBE_MAP"/>
+ <enum value="0x8513" name="GL_TEXTURE_CUBE_MAP_ARB"/>
+ <enum value="0x8513" name="GL_TEXTURE_CUBE_MAP_EXT"/>
+ <enum value="0x8513" name="GL_TEXTURE_CUBE_MAP_OES"/>
+ <enum value="0x8514" name="GL_TEXTURE_BINDING_CUBE_MAP"/>
+ <enum value="0x8514" name="GL_TEXTURE_BINDING_CUBE_MAP_ARB"/>
+ <enum value="0x8514" name="GL_TEXTURE_BINDING_CUBE_MAP_EXT"/>
+ <enum value="0x8514" name="GL_TEXTURE_BINDING_CUBE_MAP_OES"/>
+ <enum value="0x8515" name="GL_TEXTURE_CUBE_MAP_POSITIVE_X"/>
+ <enum value="0x8515" name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB"/>
+ <enum value="0x8515" name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT"/>
+ <enum value="0x8515" name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES"/>
+ <enum value="0x8516" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X"/>
+ <enum value="0x8516" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB"/>
+ <enum value="0x8516" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT"/>
+ <enum value="0x8516" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES"/>
+ <enum value="0x8517" name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y"/>
+ <enum value="0x8517" name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB"/>
+ <enum value="0x8517" name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT"/>
+ <enum value="0x8517" name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES"/>
+ <enum value="0x8518" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y"/>
+ <enum value="0x8518" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB"/>
+ <enum value="0x8518" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT"/>
+ <enum value="0x8518" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES"/>
+ <enum value="0x8519" name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z"/>
+ <enum value="0x8519" name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB"/>
+ <enum value="0x8519" name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT"/>
+ <enum value="0x8519" name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES"/>
+ <enum value="0x851A" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z"/>
+ <enum value="0x851A" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB"/>
+ <enum value="0x851A" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT"/>
+ <enum value="0x851A" name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES"/>
+ <enum value="0x851B" name="GL_PROXY_TEXTURE_CUBE_MAP"/>
+ <enum value="0x851B" name="GL_PROXY_TEXTURE_CUBE_MAP_ARB"/>
+ <enum value="0x851B" name="GL_PROXY_TEXTURE_CUBE_MAP_EXT"/>
+ <enum value="0x851C" name="GL_MAX_CUBE_MAP_TEXTURE_SIZE"/>
+ <enum value="0x851C" name="GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB"/>
+ <enum value="0x851C" name="GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT"/>
+ <enum value="0x851C" name="GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES"/>
+ <enum value="0x851D" name="GL_VERTEX_ARRAY_RANGE_APPLE"/>
+ <enum value="0x851D" name="GL_VERTEX_ARRAY_RANGE_NV"/>
+ <enum value="0x851E" name="GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE"/>
+ <enum value="0x851E" name="GL_VERTEX_ARRAY_RANGE_LENGTH_NV"/>
+ <enum value="0x851F" name="GL_VERTEX_ARRAY_RANGE_VALID_NV"/>
+ <enum value="0x851F" name="GL_VERTEX_ARRAY_STORAGE_HINT_APPLE"/>
+ <enum value="0x8520" name="GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV"/>
+ <enum value="0x8521" name="GL_VERTEX_ARRAY_RANGE_POINTER_APPLE"/>
+ <enum value="0x8521" name="GL_VERTEX_ARRAY_RANGE_POINTER_NV"/>
+ <enum value="0x8522" name="GL_REGISTER_COMBINERS_NV"/>
+ <enum value="0x8523" name="GL_VARIABLE_A_NV"/>
+ <enum value="0x8524" name="GL_VARIABLE_B_NV"/>
+ <enum value="0x8525" name="GL_VARIABLE_C_NV"/>
+ <enum value="0x8526" name="GL_VARIABLE_D_NV"/>
+ <enum value="0x8527" name="GL_VARIABLE_E_NV"/>
+ <enum value="0x8528" name="GL_VARIABLE_F_NV"/>
+ <enum value="0x8529" name="GL_VARIABLE_G_NV"/>
+ <enum value="0x852A" name="GL_CONSTANT_COLOR0_NV"/>
+ <enum value="0x852B" name="GL_CONSTANT_COLOR1_NV"/>
+ <enum value="0x852C" name="GL_PRIMARY_COLOR_NV"/>
+ <enum value="0x852D" name="GL_SECONDARY_COLOR_NV"/>
+ <enum value="0x852E" name="GL_SPARE0_NV"/>
+ <enum value="0x852F" name="GL_SPARE1_NV"/>
+ <enum value="0x8530" name="GL_DISCARD_NV"/>
+ <enum value="0x8531" name="GL_E_TIMES_F_NV"/>
+ <enum value="0x8532" name="GL_SPARE0_PLUS_SECONDARY_COLOR_NV"/>
+ <enum value="0x8533" name="GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV"/>
+ <enum value="0x8534" name="GL_MULTISAMPLE_FILTER_HINT_NV"/>
+ <enum value="0x8535" name="GL_PER_STAGE_CONSTANTS_NV"/>
+ <enum value="0x8536" name="GL_UNSIGNED_IDENTITY_NV"/>
+ <enum value="0x8537" name="GL_UNSIGNED_INVERT_NV"/>
+ <enum value="0x8538" name="GL_EXPAND_NORMAL_NV"/>
+ <enum value="0x8539" name="GL_EXPAND_NEGATE_NV"/>
+ <enum value="0x853A" name="GL_HALF_BIAS_NORMAL_NV"/>
+ <enum value="0x853B" name="GL_HALF_BIAS_NEGATE_NV"/>
+ <enum value="0x853C" name="GL_SIGNED_IDENTITY_NV"/>
+ <enum value="0x853D" name="GL_SIGNED_NEGATE_NV"/>
+ <enum value="0x853E" name="GL_SCALE_BY_TWO_NV"/>
+ <enum value="0x853F" name="GL_SCALE_BY_FOUR_NV"/>
+ <enum value="0x8540" name="GL_SCALE_BY_ONE_HALF_NV"/>
+ <enum value="0x8541" name="GL_BIAS_BY_NEGATIVE_ONE_HALF_NV"/>
+ <enum value="0x8542" name="GL_COMBINER_INPUT_NV"/>
+ <enum value="0x8543" name="GL_COMBINER_MAPPING_NV"/>
+ <enum value="0x8544" name="GL_COMBINER_COMPONENT_USAGE_NV"/>
+ <enum value="0x8545" name="GL_COMBINER_AB_DOT_PRODUCT_NV"/>
+ <enum value="0x8546" name="GL_COMBINER_CD_DOT_PRODUCT_NV"/>
+ <enum value="0x8547" name="GL_COMBINER_MUX_SUM_NV"/>
+ <enum value="0x8548" name="GL_COMBINER_SCALE_NV"/>
+ <enum value="0x8549" name="GL_COMBINER_BIAS_NV"/>
+ <enum value="0x854A" name="GL_COMBINER_AB_OUTPUT_NV"/>
+ <enum value="0x854B" name="GL_COMBINER_CD_OUTPUT_NV"/>
+ <enum value="0x854C" name="GL_COMBINER_SUM_OUTPUT_NV"/>
+ <enum value="0x854D" name="GL_MAX_GENERAL_COMBINERS_NV"/>
+ <enum value="0x854E" name="GL_NUM_GENERAL_COMBINERS_NV"/>
+ <enum value="0x854F" name="GL_COLOR_SUM_CLAMP_NV"/>
+ <enum value="0x8550" name="GL_COMBINER0_NV"/>
+ <enum value="0x8551" name="GL_COMBINER1_NV"/>
+ <enum value="0x8552" name="GL_COMBINER2_NV"/>
+ <enum value="0x8553" name="GL_COMBINER3_NV"/>
+ <enum value="0x8554" name="GL_COMBINER4_NV"/>
+ <enum value="0x8555" name="GL_COMBINER5_NV"/>
+ <enum value="0x8556" name="GL_COMBINER6_NV"/>
+ <enum value="0x8557" name="GL_COMBINER7_NV"/>
+ <enum value="0x8558" name="GL_PRIMITIVE_RESTART_NV"/>
+ <enum value="0x8559" name="GL_PRIMITIVE_RESTART_INDEX_NV"/>
+ <enum value="0x855A" name="GL_FOG_DISTANCE_MODE_NV"/>
+ <enum value="0x855B" name="GL_EYE_RADIAL_NV"/>
+ <enum value="0x855C" name="GL_EYE_PLANE_ABSOLUTE_NV"/>
+ <enum value="0x855D" name="GL_EMBOSS_LIGHT_NV"/>
+ <enum value="0x855E" name="GL_EMBOSS_CONSTANT_NV"/>
+ <enum value="0x855F" name="GL_EMBOSS_MAP_NV"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8560" end="0x856F" vendor="ZiiLabs">
+ <enum value="0x8560" name="GL_RED_MIN_CLAMP_INGR"/>
+ <enum value="0x8561" name="GL_GREEN_MIN_CLAMP_INGR"/>
+ <enum value="0x8562" name="GL_BLUE_MIN_CLAMP_INGR"/>
+ <enum value="0x8563" name="GL_ALPHA_MIN_CLAMP_INGR"/>
+ <enum value="0x8564" name="GL_RED_MAX_CLAMP_INGR"/>
+ <enum value="0x8565" name="GL_GREEN_MAX_CLAMP_INGR"/>
+ <enum value="0x8566" name="GL_BLUE_MAX_CLAMP_INGR"/>
+ <enum value="0x8567" name="GL_ALPHA_MAX_CLAMP_INGR"/>
+ <enum value="0x8568" name="GL_INTERLACE_READ_INGR"/>
+ <unused start="0x8569" end="0x856F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8570" end="0x859F" group="RegisterCombinerPname" vendor="AMD/NV">
+ <enum value="0x8570" name="GL_COMBINE"/>
+ <enum value="0x8570" name="GL_COMBINE_ARB"/>
+ <enum value="0x8570" name="GL_COMBINE_EXT"/>
+ <enum value="0x8571" name="GL_COMBINE_RGB"/>
+ <enum value="0x8571" name="GL_COMBINE_RGB_ARB"/>
+ <enum value="0x8571" name="GL_COMBINE_RGB_EXT"/>
+ <enum value="0x8572" name="GL_COMBINE_ALPHA"/>
+ <enum value="0x8572" name="GL_COMBINE_ALPHA_ARB"/>
+ <enum value="0x8572" name="GL_COMBINE_ALPHA_EXT"/>
+ <enum value="0x8573" name="GL_RGB_SCALE"/>
+ <enum value="0x8573" name="GL_RGB_SCALE_ARB"/>
+ <enum value="0x8573" name="GL_RGB_SCALE_EXT"/>
+ <enum value="0x8574" name="GL_ADD_SIGNED"/>
+ <enum value="0x8574" name="GL_ADD_SIGNED_ARB"/>
+ <enum value="0x8574" name="GL_ADD_SIGNED_EXT"/>
+ <enum value="0x8575" name="GL_INTERPOLATE"/>
+ <enum value="0x8575" name="GL_INTERPOLATE_ARB"/>
+ <enum value="0x8575" name="GL_INTERPOLATE_EXT"/>
+ <enum value="0x8576" name="GL_CONSTANT"/>
+ <enum value="0x8576" name="GL_CONSTANT_ARB"/>
+ <enum value="0x8576" name="GL_CONSTANT_EXT"/>
+ <enum value="0x8577" name="GL_PRIMARY_COLOR"/>
+ <enum value="0x8577" name="GL_PRIMARY_COLOR_ARB"/>
+ <enum value="0x8577" name="GL_PRIMARY_COLOR_EXT"/>
+ <enum value="0x8578" name="GL_PREVIOUS"/>
+ <enum value="0x8578" name="GL_PREVIOUS_ARB"/>
+ <enum value="0x8578" name="GL_PREVIOUS_EXT"/>
+ <unused start="0x8579" end="0x857F" comment="Additional combiner enums only"/>
+ <enum value="0x8580" name="GL_SOURCE0_RGB"/>
+ <enum value="0x8580" name="GL_SOURCE0_RGB_ARB"/>
+ <enum value="0x8580" name="GL_SOURCE0_RGB_EXT"/>
+ <enum value="0x8580" name="GL_SRC0_RGB" alias="GL_SOURCE0_RGB"/>
+ <enum value="0x8581" name="GL_SOURCE1_RGB"/>
+ <enum value="0x8581" name="GL_SOURCE1_RGB_ARB"/>
+ <enum value="0x8581" name="GL_SOURCE1_RGB_EXT"/>
+ <enum value="0x8581" name="GL_SRC1_RGB" alias="GL_SOURCE1_RGB"/>
+ <enum value="0x8582" name="GL_SOURCE2_RGB"/>
+ <enum value="0x8582" name="GL_SOURCE2_RGB_ARB"/>
+ <enum value="0x8582" name="GL_SOURCE2_RGB_EXT"/>
+ <enum value="0x8582" name="GL_SRC2_RGB" alias="GL_SOURCE2_RGB"/>
+ <enum value="0x8583" name="GL_SOURCE3_RGB_NV"/>
+ <unused start="0x8584" end="0x8587" comment="Additional combiner enums only"/>
+ <enum value="0x8588" name="GL_SOURCE0_ALPHA"/>
+ <enum value="0x8588" name="GL_SOURCE0_ALPHA_ARB"/>
+ <enum value="0x8588" name="GL_SOURCE0_ALPHA_EXT"/>
+ <enum value="0x8588" name="GL_SRC0_ALPHA" alias="GL_SOURCE0_ALPHA"/>
+ <enum value="0x8589" name="GL_SOURCE1_ALPHA"/>
+ <enum value="0x8589" name="GL_SOURCE1_ALPHA_ARB"/>
+ <enum value="0x8589" name="GL_SOURCE1_ALPHA_EXT"/>
+ <enum value="0x8589" name="GL_SRC1_ALPHA" alias="GL_SOURCE1_ALPHA"/>
+ <enum value="0x858A" name="GL_SOURCE2_ALPHA"/>
+ <enum value="0x858A" name="GL_SOURCE2_ALPHA_ARB"/>
+ <enum value="0x858A" name="GL_SOURCE2_ALPHA_EXT"/>
+ <enum value="0x858A" name="GL_SRC2_ALPHA" alias="GL_SOURCE2_ALPHA"/>
+ <enum value="0x858B" name="GL_SOURCE3_ALPHA_NV"/>
+ <unused start="0x858C" end="0x858F" comment="Additional combiner enums only"/>
+ <enum value="0x8590" name="GL_OPERAND0_RGB"/>
+ <enum value="0x8590" name="GL_OPERAND0_RGB_ARB"/>
+ <enum value="0x8590" name="GL_OPERAND0_RGB_EXT"/>
+ <enum value="0x8591" name="GL_OPERAND1_RGB"/>
+ <enum value="0x8591" name="GL_OPERAND1_RGB_ARB"/>
+ <enum value="0x8591" name="GL_OPERAND1_RGB_EXT"/>
+ <enum value="0x8592" name="GL_OPERAND2_RGB"/>
+ <enum value="0x8592" name="GL_OPERAND2_RGB_ARB"/>
+ <enum value="0x8592" name="GL_OPERAND2_RGB_EXT"/>
+ <enum value="0x8593" name="GL_OPERAND3_RGB_NV"/>
+ <unused start="0x8594" end="0x8597" comment="Additional combiner enums only"/>
+ <enum value="0x8598" name="GL_OPERAND0_ALPHA"/>
+ <enum value="0x8598" name="GL_OPERAND0_ALPHA_ARB"/>
+ <enum value="0x8598" name="GL_OPERAND0_ALPHA_EXT"/>
+ <enum value="0x8599" name="GL_OPERAND1_ALPHA"/>
+ <enum value="0x8599" name="GL_OPERAND1_ALPHA_ARB"/>
+ <enum value="0x8599" name="GL_OPERAND1_ALPHA_EXT"/>
+ <enum value="0x859A" name="GL_OPERAND2_ALPHA"/>
+ <enum value="0x859A" name="GL_OPERAND2_ALPHA_ARB"/>
+ <enum value="0x859A" name="GL_OPERAND2_ALPHA_EXT"/>
+ <enum value="0x859B" name="GL_OPERAND3_ALPHA_NV"/>
+ <unused start="0x859C" end="0x859F" comment="Additional combiner enums only"/>
+ </enums>
+
+ <enums namespace="GL" start="0x85A0" end="0x85AF" vendor="SGI">
+ <enum value="0x85A0" name="GL_PACK_SUBSAMPLE_RATE_SGIX"/>
+ <enum value="0x85A1" name="GL_UNPACK_SUBSAMPLE_RATE_SGIX"/>
+ <enum value="0x85A2" name="GL_PIXEL_SUBSAMPLE_4444_SGIX"/>
+ <enum value="0x85A3" name="GL_PIXEL_SUBSAMPLE_2424_SGIX"/>
+ <enum value="0x85A4" name="GL_PIXEL_SUBSAMPLE_4242_SGIX"/>
+ <unused start="0x85A5" end="0x85AD" comment="Incomplete extension SGIS_color_range"/>
+ <!-- <enum value="0x85A5" name="GL_EXTENDED_RANGE_SGIS"/> -->
+ <!-- <enum value="0x85A6" name="GL_MIN_RED_SGIS"/> -->
+ <!-- <enum value="0x85A7" name="GL_MAX_RED_SGIS"/> -->
+ <!-- <enum value="0x85A8" name="GL_MIN_GREEN_SGIS"/> -->
+ <!-- <enum value="0x85A9" name="GL_MAX_GREEN_SGIS"/> -->
+ <!-- <enum value="0x85AA" name="GL_MIN_BLUE_SGIS"/> -->
+ <!-- <enum value="0x85AB" name="GL_MAX_BLUE_SGIS"/> -->
+ <!-- <enum value="0x85AC" name="GL_MIN_ALPHA_SGIS"/> -->
+ <!-- <enum value="0x85AD" name="GL_MAX_ALPHA_SGIS"/> -->
+ <enum value="0x85AE" name="GL_PERTURB_EXT"/>
+ <enum value="0x85AF" name="GL_TEXTURE_NORMAL_EXT"/>
+ </enums>
+
+ <enums namespace="GL" start="0x85B0" end="0x85BF" vendor="APPLE">
+ <enum value="0x85B0" name="GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE"/>
+ <enum value="0x85B1" name="GL_TRANSFORM_HINT_APPLE"/>
+ <enum value="0x85B2" name="GL_UNPACK_CLIENT_STORAGE_APPLE"/>
+ <enum value="0x85B3" name="GL_BUFFER_OBJECT_APPLE"/>
+ <enum value="0x85B4" name="GL_STORAGE_CLIENT_APPLE"/>
+ <enum value="0x85B5" name="GL_VERTEX_ARRAY_BINDING"/>
+ <enum value="0x85B5" name="GL_VERTEX_ARRAY_BINDING_APPLE"/>
+ <unused start="0x85B6" comment="Unknown extension (Khronos bug 632)"/>
+ <!-- <enum value="0x85B6" name="GL_TEXTURE_MINIMIZE_STORAGE_APPLE"/> -->
+ <enum value="0x85B7" name="GL_TEXTURE_RANGE_LENGTH_APPLE"/>
+ <enum value="0x85B8" name="GL_TEXTURE_RANGE_POINTER_APPLE"/>
+ <enum value="0x85B9" name="GL_YCBCR_422_APPLE"/>
+ <enum value="0x85BA" name="GL_UNSIGNED_SHORT_8_8_APPLE"/>
+ <enum value="0x85BA" name="GL_UNSIGNED_SHORT_8_8_MESA"/>
+ <enum value="0x85BB" name="GL_UNSIGNED_SHORT_8_8_REV_APPLE"/>
+ <enum value="0x85BB" name="GL_UNSIGNED_SHORT_8_8_REV_MESA"/>
+ <enum value="0x85BC" name="GL_TEXTURE_STORAGE_HINT_APPLE"/>
+ <enum value="0x85BD" name="GL_STORAGE_PRIVATE_APPLE"/>
+ <enum value="0x85BE" name="GL_STORAGE_CACHED_APPLE"/>
+ <enum value="0x85BF" name="GL_STORAGE_SHARED_APPLE"/>
+ </enums>
+
+ <enums namespace="GL" start="0x85C0" end="0x85CF" vendor="SUN">
+ <enum value="0x85C0" name="GL_REPLACEMENT_CODE_ARRAY_SUN"/>
+ <enum value="0x85C1" name="GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN"/>
+ <enum value="0x85C2" name="GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN"/>
+ <enum value="0x85C3" name="GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN"/>
+ <enum value="0x85C4" name="GL_R1UI_V3F_SUN"/>
+ <enum value="0x85C5" name="GL_R1UI_C4UB_V3F_SUN"/>
+ <enum value="0x85C6" name="GL_R1UI_C3F_V3F_SUN"/>
+ <enum value="0x85C7" name="GL_R1UI_N3F_V3F_SUN"/>
+ <enum value="0x85C8" name="GL_R1UI_C4F_N3F_V3F_SUN"/>
+ <enum value="0x85C9" name="GL_R1UI_T2F_V3F_SUN"/>
+ <enum value="0x85CA" name="GL_R1UI_T2F_N3F_V3F_SUN"/>
+ <enum value="0x85CB" name="GL_R1UI_T2F_C4F_N3F_V3F_SUN"/>
+ <enum value="0x85CC" name="GL_SLICE_ACCUM_SUN"/>
+ <unused start="0x85CD" end="0x85CF"/>
+ </enums>
+
+ <enums namespace="GL" start="0x85D0" end="0x85DF" vendor="ZiiLabs" comment="3Dlabs private extension for Autodesk">
+ <unused start="0x85D0" end="0x85D1" comment="Unknown 3Dlabs private extension for Autodesk (but we know the enum values)"/>
+ <!-- <enum value="0x85D0" name="GL_FACET_NORMAL_AUTODESK"/> -->
+ <!-- <enum value="0x85D1" name="GL_FACET_NORMAL_ARRAY_AUTODESK"/> -->
+ <unused start="0x85D2" end="0x85DF"/>
+ </enums>
+
+ <enums namespace="GL" start="0x85E0" end="0x85FF" vendor="SGI">
+ <unused start="0x85E0" end="0x85FB" comment="Incomplete extension SGIX_texture_range"/>
+ <!-- <enum value="0x85E0" name="GL_RGB_SIGNED_SGIX"/> -->
+ <!-- <enum value="0x85E1" name="GL_RGBA_SIGNED_SGIX"/> -->
+ <!-- <enum value="0x85E2" name="GL_ALPHA_SIGNED_SGIX"/> -->
+ <!-- <enum value="0x85E3" name="GL_LUMINANCE_SIGNED_SGIX"/> -->
+ <!-- <enum value="0x85E4" name="GL_INTENSITY_SIGNED_SGIX"/> -->
+ <!-- <enum value="0x85E5" name="GL_LUMINANCE_ALPHA_SIGNED_SGIX"/> -->
+ <!-- <enum value="0x85E6" name="GL_RGB16_SIGNED_SGIX"/> -->
+ <!-- <enum value="0x85E7" name="GL_RGBA16_SIGNED_SGIX"/> -->
+ <!-- <enum value="0x85E8" name="GL_ALPHA16_SIGNED_SGIX"/> -->
+ <!-- <enum value="0x85E9" name="GL_LUMINANCE16_SIGNED_SGIX"/> -->
+ <!-- <enum value="0x85EA" name="GL_INTENSITY16_SIGNED_SGIX"/> -->
+ <!-- <enum value="0x85EB" name="GL_LUMINANCE16_ALPHA16_SIGNED_SGIX"/> -->
+ <!-- <enum value="0x85EC" name="GL_RGB_EXTENDED_RANGE_SGIX"/> -->
+ <!-- <enum value="0x85ED" name="GL_RGBA_EXTENDED_RANGE_SGIX"/> -->
+ <!-- <enum value="0x85EE" name="GL_ALPHA_EXTENDED_RANGE_SGIX"/> -->
+ <!-- <enum value="0x85EF" name="GL_LUMINANCE_EXTENDED_RANGE_SGIX"/> -->
+ <!-- <enum value="0x85F0" name="GL_INTENSITY_EXTENDED_RANGE_SGIX"/> -->
+ <!-- <enum value="0x85F1" name="GL_LUMINANCE_ALPHA_EXTENDED_RANGE_SGIX"/> -->
+ <!-- <enum value="0x85F2" name="GL_RGB16_EXTENDED_RANGE_SGIX"/> -->
+ <!-- <enum value="0x85F3" name="GL_RGBA16_EXTENDED_RANGE_SGIX"/> -->
+ <!-- <enum value="0x85F4" name="GL_ALPHA16_EXTENDED_RANGE_SGIX"/> -->
+ <!-- <enum value="0x85F5" name="GL_LUMINANCE16_EXTENDED_RANGE_SGIX"/> -->
+ <!-- <enum value="0x85F6" name="GL_INTENSITY16_EXTENDED_RANGE_SGIX"/> -->
+ <!-- <enum value="0x85F7" name="GL_LUMINANCE16_ALPHA16_EXTENDED_RANGE_SGIX"/> -->
+ <!-- <enum value="0x85F8" name="GL_MIN_LUMINANCE_SGIS"/> -->
+ <!-- <enum value="0x85F9" name="GL_MAX_LUMINANCE_SGIS"/> -->
+ <!-- <enum value="0x85FA" name="GL_MIN_INTENSITY_SGIS"/> -->
+ <!-- <enum value="0x85FB" name="GL_MAX_INTENSITY_SGIS"/> -->
+ <unused start="0x85FC" end="0x85FF"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8600" end="0x861F" vendor="SUN">
+ <unused start="0x8600" end="0x8613"/>
+ <enum value="0x8614" name="GL_QUAD_MESH_SUN"/>
+ <enum value="0x8615" name="GL_TRIANGLE_MESH_SUN"/>
+ <unused start="0x8614" end="0x861F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8620" end="0x867F" vendor="NV">
+ <enum value="0x8620" name="GL_VERTEX_PROGRAM_ARB"/>
+ <enum value="0x8620" name="GL_VERTEX_PROGRAM_NV"/>
+ <enum value="0x8621" name="GL_VERTEX_STATE_PROGRAM_NV"/>
+ <enum value="0x8622" name="GL_VERTEX_ATTRIB_ARRAY_ENABLED"/>
+ <enum value="0x8622" name="GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB"/>
+ <enum value="0x8623" name="GL_ATTRIB_ARRAY_SIZE_NV"/>
+ <enum value="0x8623" name="GL_VERTEX_ATTRIB_ARRAY_SIZE"/>
+ <enum value="0x8623" name="GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB"/>
+ <enum value="0x8624" name="GL_ATTRIB_ARRAY_STRIDE_NV"/>
+ <enum value="0x8624" name="GL_VERTEX_ATTRIB_ARRAY_STRIDE"/>
+ <enum value="0x8624" name="GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB"/>
+ <enum value="0x8625" name="GL_ATTRIB_ARRAY_TYPE_NV"/>
+ <enum value="0x8625" name="GL_VERTEX_ATTRIB_ARRAY_TYPE"/>
+ <enum value="0x8625" name="GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB"/>
+ <enum value="0x8626" name="GL_CURRENT_ATTRIB_NV"/>
+ <enum value="0x8626" name="GL_CURRENT_VERTEX_ATTRIB"/>
+ <enum value="0x8626" name="GL_CURRENT_VERTEX_ATTRIB_ARB"/>
+ <enum value="0x8627" name="GL_PROGRAM_LENGTH_ARB"/>
+ <enum value="0x8627" name="GL_PROGRAM_LENGTH_NV"/>
+ <enum value="0x8628" name="GL_PROGRAM_STRING_ARB"/>
+ <enum value="0x8628" name="GL_PROGRAM_STRING_NV"/>
+ <enum value="0x8629" name="GL_MODELVIEW_PROJECTION_NV"/>
+ <enum value="0x862A" name="GL_IDENTITY_NV"/>
+ <enum value="0x862B" name="GL_INVERSE_NV"/>
+ <enum value="0x862C" name="GL_TRANSPOSE_NV"/>
+ <enum value="0x862D" name="GL_INVERSE_TRANSPOSE_NV"/>
+ <enum value="0x862E" name="GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB"/>
+ <enum value="0x862E" name="GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV"/>
+ <enum value="0x862F" name="GL_MAX_PROGRAM_MATRICES_ARB"/>
+ <enum value="0x862F" name="GL_MAX_TRACK_MATRICES_NV"/>
+ <enum value="0x8630" name="GL_MATRIX0_NV"/>
+ <enum value="0x8631" name="GL_MATRIX1_NV"/>
+ <enum value="0x8632" name="GL_MATRIX2_NV"/>
+ <enum value="0x8633" name="GL_MATRIX3_NV"/>
+ <enum value="0x8634" name="GL_MATRIX4_NV"/>
+ <enum value="0x8635" name="GL_MATRIX5_NV"/>
+ <enum value="0x8636" name="GL_MATRIX6_NV"/>
+ <enum value="0x8637" name="GL_MATRIX7_NV"/>
+ <unused start="0x8638" end="0x863F" comment="Reserved for MATRIX{8-15}_NV"/>
+ <!-- <enum value="0x8638" name="GL_MATRIX8_NV"/> -->
+ <!-- <enum value="0x8639" name="GL_MATRIX9_NV"/> -->
+ <!-- <enum value="0x863A" name="GL_MATRIX10_NV"/> -->
+ <!-- <enum value="0x863B" name="GL_MATRIX11_NV"/> -->
+ <!-- <enum value="0x863C" name="GL_MATRIX12_NV"/> -->
+ <!-- <enum value="0x863D" name="GL_MATRIX13_NV"/> -->
+ <!-- <enum value="0x863E" name="GL_MATRIX14_NV"/> -->
+ <!-- <enum value="0x863F" name="GL_MATRIX15_NV"/> -->
+ <enum value="0x8640" name="GL_CURRENT_MATRIX_STACK_DEPTH_ARB"/>
+ <enum value="0x8640" name="GL_CURRENT_MATRIX_STACK_DEPTH_NV"/>
+ <enum value="0x8641" name="GL_CURRENT_MATRIX_ARB"/>
+ <enum value="0x8641" name="GL_CURRENT_MATRIX_NV"/>
+ <enum value="0x8642" name="GL_VERTEX_PROGRAM_POINT_SIZE"/>
+ <enum value="0x8642" name="GL_VERTEX_PROGRAM_POINT_SIZE_ARB"/>
+ <enum value="0x8642" name="GL_VERTEX_PROGRAM_POINT_SIZE_NV"/>
+ <enum value="0x8642" name="GL_PROGRAM_POINT_SIZE" alias="GL_VERTEX_PROGRAM_POINT_SIZE"/>
+ <enum value="0x8642" name="GL_PROGRAM_POINT_SIZE_ARB"/>
+ <enum value="0x8642" name="GL_PROGRAM_POINT_SIZE_EXT"/>
+ <enum value="0x8643" name="GL_VERTEX_PROGRAM_TWO_SIDE"/>
+ <enum value="0x8643" name="GL_VERTEX_PROGRAM_TWO_SIDE_ARB"/>
+ <enum value="0x8643" name="GL_VERTEX_PROGRAM_TWO_SIDE_NV"/>
+ <enum value="0x8644" name="GL_PROGRAM_PARAMETER_NV"/>
+ <enum value="0x8645" name="GL_ATTRIB_ARRAY_POINTER_NV"/>
+ <enum value="0x8645" name="GL_VERTEX_ATTRIB_ARRAY_POINTER"/>
+ <enum value="0x8645" name="GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB"/>
+ <enum value="0x8646" name="GL_PROGRAM_TARGET_NV"/>
+ <enum value="0x8647" name="GL_PROGRAM_RESIDENT_NV"/>
+ <enum value="0x8648" name="GL_TRACK_MATRIX_NV"/>
+ <enum value="0x8649" name="GL_TRACK_MATRIX_TRANSFORM_NV"/>
+ <enum value="0x864A" name="GL_VERTEX_PROGRAM_BINDING_NV"/>
+ <enum value="0x864B" name="GL_PROGRAM_ERROR_POSITION_ARB"/>
+ <enum value="0x864B" name="GL_PROGRAM_ERROR_POSITION_NV"/>
+ <enum value="0x864C" name="GL_OFFSET_TEXTURE_RECTANGLE_NV"/>
+ <enum value="0x864D" name="GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV"/>
+ <enum value="0x864E" name="GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV"/>
+ <enum value="0x864F" name="GL_DEPTH_CLAMP"/>
+ <enum value="0x864F" name="GL_DEPTH_CLAMP_NV"/>
+ <enum value="0x8650" name="GL_VERTEX_ATTRIB_ARRAY0_NV"/>
+ <enum value="0x8651" name="GL_VERTEX_ATTRIB_ARRAY1_NV"/>
+ <enum value="0x8652" name="GL_VERTEX_ATTRIB_ARRAY2_NV"/>
+ <enum value="0x8653" name="GL_VERTEX_ATTRIB_ARRAY3_NV"/>
+ <enum value="0x8654" name="GL_VERTEX_ATTRIB_ARRAY4_NV"/>
+ <enum value="0x8655" name="GL_VERTEX_ATTRIB_ARRAY5_NV"/>
+ <enum value="0x8656" name="GL_VERTEX_ATTRIB_ARRAY6_NV"/>
+ <enum value="0x8657" name="GL_VERTEX_ATTRIB_ARRAY7_NV"/>
+ <enum value="0x8658" name="GL_VERTEX_ATTRIB_ARRAY8_NV"/>
+ <enum value="0x8659" name="GL_VERTEX_ATTRIB_ARRAY9_NV"/>
+ <enum value="0x865A" name="GL_VERTEX_ATTRIB_ARRAY10_NV"/>
+ <enum value="0x865B" name="GL_VERTEX_ATTRIB_ARRAY11_NV"/>
+ <enum value="0x865C" name="GL_VERTEX_ATTRIB_ARRAY12_NV"/>
+ <enum value="0x865D" name="GL_VERTEX_ATTRIB_ARRAY13_NV"/>
+ <enum value="0x865E" name="GL_VERTEX_ATTRIB_ARRAY14_NV"/>
+ <enum value="0x865F" name="GL_VERTEX_ATTRIB_ARRAY15_NV"/>
+ <enum value="0x8660" name="GL_MAP1_VERTEX_ATTRIB0_4_NV"/>
+ <enum value="0x8661" name="GL_MAP1_VERTEX_ATTRIB1_4_NV"/>
+ <enum value="0x8662" name="GL_MAP1_VERTEX_ATTRIB2_4_NV"/>
+ <enum value="0x8663" name="GL_MAP1_VERTEX_ATTRIB3_4_NV"/>
+ <enum value="0x8664" name="GL_MAP1_VERTEX_ATTRIB4_4_NV"/>
+ <enum value="0x8665" name="GL_MAP1_VERTEX_ATTRIB5_4_NV"/>
+ <enum value="0x8666" name="GL_MAP1_VERTEX_ATTRIB6_4_NV"/>
+ <enum value="0x8667" name="GL_MAP1_VERTEX_ATTRIB7_4_NV"/>
+ <enum value="0x8668" name="GL_MAP1_VERTEX_ATTRIB8_4_NV"/>
+ <enum value="0x8669" name="GL_MAP1_VERTEX_ATTRIB9_4_NV"/>
+ <enum value="0x866A" name="GL_MAP1_VERTEX_ATTRIB10_4_NV"/>
+ <enum value="0x866B" name="GL_MAP1_VERTEX_ATTRIB11_4_NV"/>
+ <enum value="0x866C" name="GL_MAP1_VERTEX_ATTRIB12_4_NV"/>
+ <enum value="0x866D" name="GL_MAP1_VERTEX_ATTRIB13_4_NV"/>
+ <enum value="0x866E" name="GL_MAP1_VERTEX_ATTRIB14_4_NV"/>
+ <enum value="0x866F" name="GL_MAP1_VERTEX_ATTRIB15_4_NV"/>
+ <enum value="0x8670" name="GL_MAP2_VERTEX_ATTRIB0_4_NV"/>
+ <enum value="0x8671" name="GL_MAP2_VERTEX_ATTRIB1_4_NV"/>
+ <enum value="0x8672" name="GL_MAP2_VERTEX_ATTRIB2_4_NV"/>
+ <enum value="0x8673" name="GL_MAP2_VERTEX_ATTRIB3_4_NV"/>
+ <enum value="0x8674" name="GL_MAP2_VERTEX_ATTRIB4_4_NV"/>
+ <enum value="0x8675" name="GL_MAP2_VERTEX_ATTRIB5_4_NV"/>
+ <enum value="0x8676" name="GL_MAP2_VERTEX_ATTRIB6_4_NV"/>
+ <enum value="0x8677" name="GL_MAP2_VERTEX_ATTRIB7_4_NV"/>
+ <enum value="0x8677" name="GL_PROGRAM_BINDING_ARB" comment="NOT an alias. Accidental reuse of GL_MAP2_VERTEX_ATTRIB7_4_NV"/>
+ <enum value="0x8678" name="GL_MAP2_VERTEX_ATTRIB8_4_NV"/>
+ <enum value="0x8679" name="GL_MAP2_VERTEX_ATTRIB9_4_NV"/>
+ <enum value="0x867A" name="GL_MAP2_VERTEX_ATTRIB10_4_NV"/>
+ <enum value="0x867B" name="GL_MAP2_VERTEX_ATTRIB11_4_NV"/>
+ <enum value="0x867C" name="GL_MAP2_VERTEX_ATTRIB12_4_NV"/>
+ <enum value="0x867D" name="GL_MAP2_VERTEX_ATTRIB13_4_NV"/>
+ <enum value="0x867E" name="GL_MAP2_VERTEX_ATTRIB14_4_NV"/>
+ <enum value="0x867F" name="GL_MAP2_VERTEX_ATTRIB15_4_NV"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8680" end="0x869F" vendor="Pixelfusion"/>
+
+ <enums namespace="GL" start="0x86A0" end="0x86AF" vendor="ARB">
+ <enum value="0x86A0" name="GL_TEXTURE_COMPRESSED_IMAGE_SIZE"/>
+ <enum value="0x86A0" name="GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB"/>
+ <enum value="0x86A1" name="GL_TEXTURE_COMPRESSED"/>
+ <enum value="0x86A1" name="GL_TEXTURE_COMPRESSED_ARB"/>
+ <enum value="0x86A2" name="GL_NUM_COMPRESSED_TEXTURE_FORMATS"/>
+ <enum value="0x86A2" name="GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB"/>
+ <enum value="0x86A3" name="GL_COMPRESSED_TEXTURE_FORMATS"/>
+ <enum value="0x86A3" name="GL_COMPRESSED_TEXTURE_FORMATS_ARB"/>
+ <enum value="0x86A4" name="GL_MAX_VERTEX_UNITS_ARB"/>
+ <enum value="0x86A4" name="GL_MAX_VERTEX_UNITS_OES"/>
+ <enum value="0x86A5" name="GL_ACTIVE_VERTEX_UNITS_ARB"/>
+ <enum value="0x86A6" name="GL_WEIGHT_SUM_UNITY_ARB"/>
+ <enum value="0x86A7" name="GL_VERTEX_BLEND_ARB"/>
+ <enum value="0x86A8" name="GL_CURRENT_WEIGHT_ARB"/>
+ <enum value="0x86A9" name="GL_WEIGHT_ARRAY_TYPE_ARB"/>
+ <enum value="0x86A9" name="GL_WEIGHT_ARRAY_TYPE_OES"/>
+ <enum value="0x86AA" name="GL_WEIGHT_ARRAY_STRIDE_ARB"/>
+ <enum value="0x86AA" name="GL_WEIGHT_ARRAY_STRIDE_OES"/>
+ <enum value="0x86AB" name="GL_WEIGHT_ARRAY_SIZE_ARB"/>
+ <enum value="0x86AB" name="GL_WEIGHT_ARRAY_SIZE_OES"/>
+ <enum value="0x86AC" name="GL_WEIGHT_ARRAY_POINTER_ARB"/>
+ <enum value="0x86AC" name="GL_WEIGHT_ARRAY_POINTER_OES"/>
+ <enum value="0x86AD" name="GL_WEIGHT_ARRAY_ARB"/>
+ <enum value="0x86AD" name="GL_WEIGHT_ARRAY_OES"/>
+ <enum value="0x86AE" name="GL_DOT3_RGB"/>
+ <enum value="0x86AE" name="GL_DOT3_RGB_ARB"/>
+ <enum value="0x86AF" name="GL_DOT3_RGBA"/>
+ <enum value="0x86AF" name="GL_DOT3_RGBA_ARB"/>
+ <enum value="0x86AF" name="GL_DOT3_RGBA_IMG"/>
+ </enums>
+
+ <enums namespace="GL" start="0x86B0" end="0x86BF" vendor="3DFX">
+ <enum value="0x86B0" name="GL_COMPRESSED_RGB_FXT1_3DFX"/>
+ <enum value="0x86B1" name="GL_COMPRESSED_RGBA_FXT1_3DFX"/>
+ <enum value="0x86B2" name="GL_MULTISAMPLE_3DFX"/>
+ <enum value="0x86B3" name="GL_SAMPLE_BUFFERS_3DFX"/>
+ <enum value="0x86B4" name="GL_SAMPLES_3DFX"/>
+ <unused start="0x86B5" end="0x86BF"/>
+ </enums>
+
+ <enums namespace="GL" start="0x86C0" end="0x871F" vendor="NV">
+ <enum value="0x86C0" name="GL_EVAL_2D_NV"/>
+ <enum value="0x86C1" name="GL_EVAL_TRIANGULAR_2D_NV"/>
+ <enum value="0x86C2" name="GL_MAP_TESSELLATION_NV"/>
+ <enum value="0x86C3" name="GL_MAP_ATTRIB_U_ORDER_NV"/>
+ <enum value="0x86C4" name="GL_MAP_ATTRIB_V_ORDER_NV"/>
+ <enum value="0x86C5" name="GL_EVAL_FRACTIONAL_TESSELLATION_NV"/>
+ <enum value="0x86C6" name="GL_EVAL_VERTEX_ATTRIB0_NV"/>
+ <enum value="0x86C7" name="GL_EVAL_VERTEX_ATTRIB1_NV"/>
+ <enum value="0x86C8" name="GL_EVAL_VERTEX_ATTRIB2_NV"/>
+ <enum value="0x86C9" name="GL_EVAL_VERTEX_ATTRIB3_NV"/>
+ <enum value="0x86CA" name="GL_EVAL_VERTEX_ATTRIB4_NV"/>
+ <enum value="0x86CB" name="GL_EVAL_VERTEX_ATTRIB5_NV"/>
+ <enum value="0x86CC" name="GL_EVAL_VERTEX_ATTRIB6_NV"/>
+ <enum value="0x86CD" name="GL_EVAL_VERTEX_ATTRIB7_NV"/>
+ <enum value="0x86CE" name="GL_EVAL_VERTEX_ATTRIB8_NV"/>
+ <enum value="0x86CF" name="GL_EVAL_VERTEX_ATTRIB9_NV"/>
+ <enum value="0x86D0" name="GL_EVAL_VERTEX_ATTRIB10_NV"/>
+ <enum value="0x86D1" name="GL_EVAL_VERTEX_ATTRIB11_NV"/>
+ <enum value="0x86D2" name="GL_EVAL_VERTEX_ATTRIB12_NV"/>
+ <enum value="0x86D3" name="GL_EVAL_VERTEX_ATTRIB13_NV"/>
+ <enum value="0x86D4" name="GL_EVAL_VERTEX_ATTRIB14_NV"/>
+ <enum value="0x86D5" name="GL_EVAL_VERTEX_ATTRIB15_NV"/>
+ <enum value="0x86D6" name="GL_MAX_MAP_TESSELLATION_NV"/>
+ <enum value="0x86D7" name="GL_MAX_RATIONAL_EVAL_ORDER_NV"/>
+ <enum value="0x86D8" name="GL_MAX_PROGRAM_PATCH_ATTRIBS_NV"/>
+ <enum value="0x86D9" name="GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV"/>
+ <enum value="0x86DA" name="GL_UNSIGNED_INT_S8_S8_8_8_NV"/>
+ <enum value="0x86DB" name="GL_UNSIGNED_INT_8_8_S8_S8_REV_NV"/>
+ <enum value="0x86DC" name="GL_DSDT_MAG_INTENSITY_NV"/>
+ <enum value="0x86DD" name="GL_SHADER_CONSISTENT_NV"/>
+ <enum value="0x86DE" name="GL_TEXTURE_SHADER_NV"/>
+ <enum value="0x86DF" name="GL_SHADER_OPERATION_NV"/>
+ <enum value="0x86E0" name="GL_CULL_MODES_NV"/>
+ <enum value="0x86E1" name="GL_OFFSET_TEXTURE_MATRIX_NV"/>
+ <enum value="0x86E1" name="GL_OFFSET_TEXTURE_2D_MATRIX_NV" alias="GL_OFFSET_TEXTURE_MATRIX_NV"/>
+ <enum value="0x86E2" name="GL_OFFSET_TEXTURE_SCALE_NV"/>
+ <enum value="0x86E2" name="GL_OFFSET_TEXTURE_2D_SCALE_NV" alias="GL_OFFSET_TEXTURE_SCALE_NV"/>
+ <enum value="0x86E3" name="GL_OFFSET_TEXTURE_BIAS_NV"/>
+ <enum value="0x86E3" name="GL_OFFSET_TEXTURE_2D_BIAS_NV" alias="GL_OFFSET_TEXTURE_BIAS_NV"/>
+ <enum value="0x86E4" name="GL_PREVIOUS_TEXTURE_INPUT_NV"/>
+ <enum value="0x86E5" name="GL_CONST_EYE_NV"/>
+ <enum value="0x86E6" name="GL_PASS_THROUGH_NV"/>
+ <enum value="0x86E7" name="GL_CULL_FRAGMENT_NV"/>
+ <enum value="0x86E8" name="GL_OFFSET_TEXTURE_2D_NV"/>
+ <enum value="0x86E9" name="GL_DEPENDENT_AR_TEXTURE_2D_NV"/>
+ <enum value="0x86EA" name="GL_DEPENDENT_GB_TEXTURE_2D_NV"/>
+ <enum value="0x86EB" name="GL_SURFACE_STATE_NV"/>
+ <enum value="0x86EC" name="GL_DOT_PRODUCT_NV"/>
+ <enum value="0x86ED" name="GL_DOT_PRODUCT_DEPTH_REPLACE_NV"/>
+ <enum value="0x86EE" name="GL_DOT_PRODUCT_TEXTURE_2D_NV"/>
+ <enum value="0x86EF" name="GL_DOT_PRODUCT_TEXTURE_3D_NV"/>
+ <enum value="0x86F0" name="GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV"/>
+ <enum value="0x86F1" name="GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV"/>
+ <enum value="0x86F2" name="GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV"/>
+ <enum value="0x86F3" name="GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV"/>
+ <enum value="0x86F4" name="GL_HILO_NV"/>
+ <enum value="0x86F5" name="GL_DSDT_NV"/>
+ <enum value="0x86F6" name="GL_DSDT_MAG_NV"/>
+ <enum value="0x86F7" name="GL_DSDT_MAG_VIB_NV"/>
+ <enum value="0x86F8" name="GL_HILO16_NV"/>
+ <enum value="0x86F9" name="GL_SIGNED_HILO_NV"/>
+ <enum value="0x86FA" name="GL_SIGNED_HILO16_NV"/>
+ <enum value="0x86FB" name="GL_SIGNED_RGBA_NV"/>
+ <enum value="0x86FC" name="GL_SIGNED_RGBA8_NV"/>
+ <enum value="0x86FD" name="GL_SURFACE_REGISTERED_NV"/>
+ <enum value="0x86FE" name="GL_SIGNED_RGB_NV"/>
+ <enum value="0x86FF" name="GL_SIGNED_RGB8_NV"/>
+ <enum value="0x8700" name="GL_SURFACE_MAPPED_NV"/>
+ <enum value="0x8701" name="GL_SIGNED_LUMINANCE_NV"/>
+ <enum value="0x8702" name="GL_SIGNED_LUMINANCE8_NV"/>
+ <enum value="0x8703" name="GL_SIGNED_LUMINANCE_ALPHA_NV"/>
+ <enum value="0x8704" name="GL_SIGNED_LUMINANCE8_ALPHA8_NV"/>
+ <enum value="0x8705" name="GL_SIGNED_ALPHA_NV"/>
+ <enum value="0x8706" name="GL_SIGNED_ALPHA8_NV"/>
+ <enum value="0x8707" name="GL_SIGNED_INTENSITY_NV"/>
+ <enum value="0x8708" name="GL_SIGNED_INTENSITY8_NV"/>
+ <enum value="0x8709" name="GL_DSDT8_NV"/>
+ <enum value="0x870A" name="GL_DSDT8_MAG8_NV"/>
+ <enum value="0x870B" name="GL_DSDT8_MAG8_INTENSITY8_NV"/>
+ <enum value="0x870C" name="GL_SIGNED_RGB_UNSIGNED_ALPHA_NV"/>
+ <enum value="0x870D" name="GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV"/>
+ <enum value="0x870E" name="GL_HI_SCALE_NV"/>
+ <enum value="0x870F" name="GL_LO_SCALE_NV"/>
+ <enum value="0x8710" name="GL_DS_SCALE_NV"/>
+ <enum value="0x8711" name="GL_DT_SCALE_NV"/>
+ <enum value="0x8712" name="GL_MAGNITUDE_SCALE_NV"/>
+ <enum value="0x8713" name="GL_VIBRANCE_SCALE_NV"/>
+ <enum value="0x8714" name="GL_HI_BIAS_NV"/>
+ <enum value="0x8715" name="GL_LO_BIAS_NV"/>
+ <enum value="0x8716" name="GL_DS_BIAS_NV"/>
+ <enum value="0x8717" name="GL_DT_BIAS_NV"/>
+ <enum value="0x8718" name="GL_MAGNITUDE_BIAS_NV"/>
+ <enum value="0x8719" name="GL_VIBRANCE_BIAS_NV"/>
+ <enum value="0x871A" name="GL_TEXTURE_BORDER_VALUES_NV"/>
+ <enum value="0x871B" name="GL_TEXTURE_HI_SIZE_NV"/>
+ <enum value="0x871C" name="GL_TEXTURE_LO_SIZE_NV"/>
+ <enum value="0x871D" name="GL_TEXTURE_DS_SIZE_NV"/>
+ <enum value="0x871E" name="GL_TEXTURE_DT_SIZE_NV"/>
+ <enum value="0x871F" name="GL_TEXTURE_MAG_SIZE_NV"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8720" end="0x873F" vendor="ARB">
+ <unused start="0x8720" end="0x8721" comment="MODELVIEW0/1 already exist"/>
+ <enum value="0x8722" name="GL_MODELVIEW2_ARB"/>
+ <enum value="0x8723" name="GL_MODELVIEW3_ARB"/>
+ <enum value="0x8724" name="GL_MODELVIEW4_ARB"/>
+ <enum value="0x8725" name="GL_MODELVIEW5_ARB"/>
+ <enum value="0x8726" name="GL_MODELVIEW6_ARB"/>
+ <enum value="0x8727" name="GL_MODELVIEW7_ARB"/>
+ <enum value="0x8728" name="GL_MODELVIEW8_ARB"/>
+ <enum value="0x8729" name="GL_MODELVIEW9_ARB"/>
+ <enum value="0x872A" name="GL_MODELVIEW10_ARB"/>
+ <enum value="0x872B" name="GL_MODELVIEW11_ARB"/>
+ <enum value="0x872C" name="GL_MODELVIEW12_ARB"/>
+ <enum value="0x872D" name="GL_MODELVIEW13_ARB"/>
+ <enum value="0x872E" name="GL_MODELVIEW14_ARB"/>
+ <enum value="0x872F" name="GL_MODELVIEW15_ARB"/>
+ <enum value="0x8730" name="GL_MODELVIEW16_ARB"/>
+ <enum value="0x8731" name="GL_MODELVIEW17_ARB"/>
+ <enum value="0x8732" name="GL_MODELVIEW18_ARB"/>
+ <enum value="0x8733" name="GL_MODELVIEW19_ARB"/>
+ <enum value="0x8734" name="GL_MODELVIEW20_ARB"/>
+ <enum value="0x8735" name="GL_MODELVIEW21_ARB"/>
+ <enum value="0x8736" name="GL_MODELVIEW22_ARB"/>
+ <enum value="0x8737" name="GL_MODELVIEW23_ARB"/>
+ <enum value="0x8738" name="GL_MODELVIEW24_ARB"/>
+ <enum value="0x8739" name="GL_MODELVIEW25_ARB"/>
+ <enum value="0x873A" name="GL_MODELVIEW26_ARB"/>
+ <enum value="0x873B" name="GL_MODELVIEW27_ARB"/>
+ <enum value="0x873C" name="GL_MODELVIEW28_ARB"/>
+ <enum value="0x873D" name="GL_MODELVIEW29_ARB"/>
+ <enum value="0x873E" name="GL_MODELVIEW30_ARB"/>
+ <enum value="0x873F" name="GL_MODELVIEW31_ARB"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8740" end="0x874F" vendor="AMD">
+ <enum value="0x8740" name="GL_DOT3_RGB_EXT"/>
+ <enum value="0x8740" name="GL_Z400_BINARY_AMD" comment="NOT an alias. Accidental reuse of GL_DOT3_RGB_EXT"/>
+ <enum value="0x8741" name="GL_DOT3_RGBA_EXT"/>
+ <enum value="0x8741" name="GL_PROGRAM_BINARY_LENGTH_OES" comment="NOT an alias. Accidental reuse of GL_DOT3_RGBA_EXT"/>
+ <enum value="0x8741" name="GL_PROGRAM_BINARY_LENGTH"/>
+ <enum value="0x8742" name="GL_MIRROR_CLAMP_ATI"/>
+ <enum value="0x8742" name="GL_MIRROR_CLAMP_EXT"/>
+ <enum value="0x8743" name="GL_MIRROR_CLAMP_TO_EDGE_ATI"/>
+ <enum value="0x8743" name="GL_MIRROR_CLAMP_TO_EDGE_EXT"/>
+ <enum value="0x8744" name="GL_MODULATE_ADD_ATI"/>
+ <enum value="0x8745" name="GL_MODULATE_SIGNED_ADD_ATI"/>
+ <enum value="0x8746" name="GL_MODULATE_SUBTRACT_ATI"/>
+ <unused start="0x8747" end="0x8749"/>
+ <enum value="0x874A" name="GL_SET_AMD"/>
+ <enum value="0x874B" name="GL_REPLACE_VALUE_AMD"/>
+ <enum value="0x874C" name="GL_STENCIL_OP_VALUE_AMD"/>
+ <enum value="0x874D" name="GL_STENCIL_BACK_OP_VALUE_AMD"/>
+ <enum value="0x874E" name="GL_VERTEX_ATTRIB_ARRAY_LONG"/>
+ <unused start="0x874F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8750" end="0x875F" vendor="MESA">
+ <enum value="0x8750" name="GL_DEPTH_STENCIL_MESA"/>
+ <enum value="0x8751" name="GL_UNSIGNED_INT_24_8_MESA"/>
+ <enum value="0x8752" name="GL_UNSIGNED_INT_8_24_REV_MESA"/>
+ <enum value="0x8753" name="GL_UNSIGNED_SHORT_15_1_MESA"/>
+ <enum value="0x8754" name="GL_UNSIGNED_SHORT_1_15_REV_MESA"/>
+ <enum value="0x8755" name="GL_TRACE_MASK_MESA"/>
+ <enum value="0x8756" name="GL_TRACE_NAME_MESA"/>
+ <enum value="0x8757" name="GL_YCBCR_MESA"/>
+ <enum value="0x8758" name="GL_PACK_INVERT_MESA"/>
+ <enum value="0x8759" name="GL_DEBUG_OBJECT_MESA" comment="NOT an alias. Accidental reuse of GL_TEXTURE_1D_STACK_MESAX"/>
+ <enum value="0x8759" name="GL_TEXTURE_1D_STACK_MESAX"/>
+ <enum value="0x875A" name="GL_DEBUG_PRINT_MESA" comment="NOT an alias. Accidental reuse of GL_TEXTURE_2D_STACK_MESAX"/>
+ <enum value="0x875A" name="GL_TEXTURE_2D_STACK_MESAX"/>
+ <enum value="0x875B" name="GL_DEBUG_ASSERT_MESA" comment="NOT an alias. Accidental reuse of GL_PROXY_TEXTURE_1D_STACK_MESAX"/>
+ <enum value="0x875B" name="GL_PROXY_TEXTURE_1D_STACK_MESAX"/>
+ <enum value="0x875C" name="GL_PROXY_TEXTURE_2D_STACK_MESAX"/>
+ <enum value="0x875D" name="GL_TEXTURE_1D_STACK_BINDING_MESAX"/>
+ <enum value="0x875E" name="GL_TEXTURE_2D_STACK_BINDING_MESAX"/>
+ <unused start="0x875F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8760" end="0x883F" vendor="AMD">
+ <enum value="0x8760" name="GL_STATIC_ATI"/>
+ <enum value="0x8761" name="GL_DYNAMIC_ATI"/>
+ <enum value="0x8762" name="GL_PRESERVE_ATI"/>
+ <enum value="0x8763" name="GL_DISCARD_ATI"/>
+ <enum value="0x8764" name="GL_BUFFER_SIZE"/>
+ <enum value="0x8764" name="GL_BUFFER_SIZE_ARB"/>
+ <enum value="0x8764" name="GL_OBJECT_BUFFER_SIZE_ATI"/>
+ <enum value="0x8765" name="GL_BUFFER_USAGE"/>
+ <enum value="0x8765" name="GL_BUFFER_USAGE_ARB"/>
+ <enum value="0x8765" name="GL_OBJECT_BUFFER_USAGE_ATI"/>
+ <enum value="0x8766" name="GL_ARRAY_OBJECT_BUFFER_ATI"/>
+ <enum value="0x8767" name="GL_ARRAY_OBJECT_OFFSET_ATI"/>
+ <enum value="0x8768" name="GL_ELEMENT_ARRAY_ATI"/>
+ <enum value="0x8769" name="GL_ELEMENT_ARRAY_TYPE_ATI"/>
+ <enum value="0x876A" name="GL_ELEMENT_ARRAY_POINTER_ATI"/>
+ <enum value="0x876B" name="GL_MAX_VERTEX_STREAMS_ATI"/>
+ <enum value="0x876C" name="GL_VERTEX_STREAM0_ATI"/>
+ <enum value="0x876D" name="GL_VERTEX_STREAM1_ATI"/>
+ <enum value="0x876E" name="GL_VERTEX_STREAM2_ATI"/>
+ <enum value="0x876F" name="GL_VERTEX_STREAM3_ATI"/>
+ <enum value="0x8770" name="GL_VERTEX_STREAM4_ATI"/>
+ <enum value="0x8771" name="GL_VERTEX_STREAM5_ATI"/>
+ <enum value="0x8772" name="GL_VERTEX_STREAM6_ATI"/>
+ <enum value="0x8773" name="GL_VERTEX_STREAM7_ATI"/>
+ <enum value="0x8774" name="GL_VERTEX_SOURCE_ATI"/>
+ <enum value="0x8775" name="GL_BUMP_ROT_MATRIX_ATI"/>
+ <enum value="0x8776" name="GL_BUMP_ROT_MATRIX_SIZE_ATI"/>
+ <enum value="0x8777" name="GL_BUMP_NUM_TEX_UNITS_ATI"/>
+ <enum value="0x8778" name="GL_BUMP_TEX_UNITS_ATI"/>
+ <enum value="0x8779" name="GL_DUDV_ATI"/>
+ <enum value="0x877A" name="GL_DU8DV8_ATI"/>
+ <enum value="0x877B" name="GL_BUMP_ENVMAP_ATI"/>
+ <enum value="0x877C" name="GL_BUMP_TARGET_ATI"/>
+ <unused start="0x877D" end="0x877F"/>
+ <enum value="0x8780" name="GL_VERTEX_SHADER_EXT"/>
+ <enum value="0x8781" name="GL_VERTEX_SHADER_BINDING_EXT"/>
+ <enum value="0x8782" name="GL_OP_INDEX_EXT"/>
+ <enum value="0x8783" name="GL_OP_NEGATE_EXT"/>
+ <enum value="0x8784" name="GL_OP_DOT3_EXT"/>
+ <enum value="0x8785" name="GL_OP_DOT4_EXT"/>
+ <enum value="0x8786" name="GL_OP_MUL_EXT"/>
+ <enum value="0x8787" name="GL_OP_ADD_EXT"/>
+ <enum value="0x8788" name="GL_OP_MADD_EXT"/>
+ <enum value="0x8789" name="GL_OP_FRAC_EXT"/>
+ <enum value="0x878A" name="GL_OP_MAX_EXT"/>
+ <enum value="0x878B" name="GL_OP_MIN_EXT"/>
+ <enum value="0x878C" name="GL_OP_SET_GE_EXT"/>
+ <enum value="0x878D" name="GL_OP_SET_LT_EXT"/>
+ <enum value="0x878E" name="GL_OP_CLAMP_EXT"/>
+ <enum value="0x878F" name="GL_OP_FLOOR_EXT"/>
+ <enum value="0x8790" name="GL_OP_ROUND_EXT"/>
+ <enum value="0x8791" name="GL_OP_EXP_BASE_2_EXT"/>
+ <enum value="0x8792" name="GL_OP_LOG_BASE_2_EXT"/>
+ <enum value="0x8793" name="GL_OP_POWER_EXT"/>
+ <enum value="0x8794" name="GL_OP_RECIP_EXT"/>
+ <enum value="0x8795" name="GL_OP_RECIP_SQRT_EXT"/>
+ <enum value="0x8796" name="GL_OP_SUB_EXT"/>
+ <enum value="0x8797" name="GL_OP_CROSS_PRODUCT_EXT"/>
+ <enum value="0x8798" name="GL_OP_MULTIPLY_MATRIX_EXT"/>
+ <enum value="0x8799" name="GL_OP_MOV_EXT"/>
+ <enum value="0x879A" name="GL_OUTPUT_VERTEX_EXT"/>
+ <enum value="0x879B" name="GL_OUTPUT_COLOR0_EXT"/>
+ <enum value="0x879C" name="GL_OUTPUT_COLOR1_EXT"/>
+ <enum value="0x879D" name="GL_OUTPUT_TEXTURE_COORD0_EXT"/>
+ <enum value="0x879E" name="GL_OUTPUT_TEXTURE_COORD1_EXT"/>
+ <enum value="0x879F" name="GL_OUTPUT_TEXTURE_COORD2_EXT"/>
+ <enum value="0x87A0" name="GL_OUTPUT_TEXTURE_COORD3_EXT"/>
+ <enum value="0x87A1" name="GL_OUTPUT_TEXTURE_COORD4_EXT"/>
+ <enum value="0x87A2" name="GL_OUTPUT_TEXTURE_COORD5_EXT"/>
+ <enum value="0x87A3" name="GL_OUTPUT_TEXTURE_COORD6_EXT"/>
+ <enum value="0x87A4" name="GL_OUTPUT_TEXTURE_COORD7_EXT"/>
+ <enum value="0x87A5" name="GL_OUTPUT_TEXTURE_COORD8_EXT"/>
+ <enum value="0x87A6" name="GL_OUTPUT_TEXTURE_COORD9_EXT"/>
+ <enum value="0x87A7" name="GL_OUTPUT_TEXTURE_COORD10_EXT"/>
+ <enum value="0x87A8" name="GL_OUTPUT_TEXTURE_COORD11_EXT"/>
+ <enum value="0x87A9" name="GL_OUTPUT_TEXTURE_COORD12_EXT"/>
+ <enum value="0x87AA" name="GL_OUTPUT_TEXTURE_COORD13_EXT"/>
+ <enum value="0x87AB" name="GL_OUTPUT_TEXTURE_COORD14_EXT"/>
+ <enum value="0x87AC" name="GL_OUTPUT_TEXTURE_COORD15_EXT"/>
+ <enum value="0x87AD" name="GL_OUTPUT_TEXTURE_COORD16_EXT"/>
+ <enum value="0x87AE" name="GL_OUTPUT_TEXTURE_COORD17_EXT"/>
+ <enum value="0x87AF" name="GL_OUTPUT_TEXTURE_COORD18_EXT"/>
+ <enum value="0x87B0" name="GL_OUTPUT_TEXTURE_COORD19_EXT"/>
+ <enum value="0x87B1" name="GL_OUTPUT_TEXTURE_COORD20_EXT"/>
+ <enum value="0x87B2" name="GL_OUTPUT_TEXTURE_COORD21_EXT"/>
+ <enum value="0x87B3" name="GL_OUTPUT_TEXTURE_COORD22_EXT"/>
+ <enum value="0x87B4" name="GL_OUTPUT_TEXTURE_COORD23_EXT"/>
+ <enum value="0x87B5" name="GL_OUTPUT_TEXTURE_COORD24_EXT"/>
+ <enum value="0x87B6" name="GL_OUTPUT_TEXTURE_COORD25_EXT"/>
+ <enum value="0x87B7" name="GL_OUTPUT_TEXTURE_COORD26_EXT"/>
+ <enum value="0x87B8" name="GL_OUTPUT_TEXTURE_COORD27_EXT"/>
+ <enum value="0x87B9" name="GL_OUTPUT_TEXTURE_COORD28_EXT"/>
+ <enum value="0x87BA" name="GL_OUTPUT_TEXTURE_COORD29_EXT"/>
+ <enum value="0x87BB" name="GL_OUTPUT_TEXTURE_COORD30_EXT"/>
+ <enum value="0x87BC" name="GL_OUTPUT_TEXTURE_COORD31_EXT"/>
+ <enum value="0x87BD" name="GL_OUTPUT_FOG_EXT"/>
+ <enum value="0x87BE" name="GL_SCALAR_EXT"/>
+ <enum value="0x87BF" name="GL_VECTOR_EXT"/>
+ <enum value="0x87C0" name="GL_MATRIX_EXT"/>
+ <enum value="0x87C1" name="GL_VARIANT_EXT"/>
+ <enum value="0x87C2" name="GL_INVARIANT_EXT"/>
+ <enum value="0x87C3" name="GL_LOCAL_CONSTANT_EXT"/>
+ <enum value="0x87C4" name="GL_LOCAL_EXT"/>
+ <enum value="0x87C5" name="GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT"/>
+ <enum value="0x87C6" name="GL_MAX_VERTEX_SHADER_VARIANTS_EXT"/>
+ <enum value="0x87C7" name="GL_MAX_VERTEX_SHADER_INVARIANTS_EXT"/>
+ <enum value="0x87C8" name="GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT"/>
+ <enum value="0x87C9" name="GL_MAX_VERTEX_SHADER_LOCALS_EXT"/>
+ <enum value="0x87CA" name="GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT"/>
+ <enum value="0x87CB" name="GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT"/>
+ <enum value="0x87CC" name="GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT"/>
+ <enum value="0x87CD" name="GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT"/>
+ <enum value="0x87CE" name="GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT"/>
+ <enum value="0x87CF" name="GL_VERTEX_SHADER_INSTRUCTIONS_EXT"/>
+ <enum value="0x87D0" name="GL_VERTEX_SHADER_VARIANTS_EXT"/>
+ <enum value="0x87D1" name="GL_VERTEX_SHADER_INVARIANTS_EXT"/>
+ <enum value="0x87D2" name="GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT"/>
+ <enum value="0x87D3" name="GL_VERTEX_SHADER_LOCALS_EXT"/>
+ <enum value="0x87D4" name="GL_VERTEX_SHADER_OPTIMIZED_EXT"/>
+ <enum value="0x87D5" name="GL_X_EXT"/>
+ <enum value="0x87D6" name="GL_Y_EXT"/>
+ <enum value="0x87D7" name="GL_Z_EXT"/>
+ <enum value="0x87D8" name="GL_W_EXT"/>
+ <enum value="0x87D9" name="GL_NEGATIVE_X_EXT"/>
+ <enum value="0x87DA" name="GL_NEGATIVE_Y_EXT"/>
+ <enum value="0x87DB" name="GL_NEGATIVE_Z_EXT"/>
+ <enum value="0x87DC" name="GL_NEGATIVE_W_EXT"/>
+ <enum value="0x87DD" name="GL_ZERO_EXT"/>
+ <enum value="0x87DE" name="GL_ONE_EXT"/>
+ <enum value="0x87DF" name="GL_NEGATIVE_ONE_EXT"/>
+ <enum value="0x87E0" name="GL_NORMALIZED_RANGE_EXT"/>
+ <enum value="0x87E1" name="GL_FULL_RANGE_EXT"/>
+ <enum value="0x87E2" name="GL_CURRENT_VERTEX_EXT"/>
+ <enum value="0x87E3" name="GL_MVP_MATRIX_EXT"/>
+ <enum value="0x87E4" name="GL_VARIANT_VALUE_EXT"/>
+ <enum value="0x87E5" name="GL_VARIANT_DATATYPE_EXT"/>
+ <enum value="0x87E6" name="GL_VARIANT_ARRAY_STRIDE_EXT"/>
+ <enum value="0x87E7" name="GL_VARIANT_ARRAY_TYPE_EXT"/>
+ <enum value="0x87E8" name="GL_VARIANT_ARRAY_EXT"/>
+ <enum value="0x87E9" name="GL_VARIANT_ARRAY_POINTER_EXT"/>
+ <enum value="0x87EA" name="GL_INVARIANT_VALUE_EXT"/>
+ <enum value="0x87EB" name="GL_INVARIANT_DATATYPE_EXT"/>
+ <enum value="0x87EC" name="GL_LOCAL_CONSTANT_VALUE_EXT"/>
+ <enum value="0x87ED" name="GL_LOCAL_CONSTANT_DATATYPE_EXT"/>
+ <enum value="0x87EE" name="GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD"/>
+ <enum value="0x87F0" name="GL_PN_TRIANGLES_ATI"/>
+ <enum value="0x87F1" name="GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI"/>
+ <enum value="0x87F2" name="GL_PN_TRIANGLES_POINT_MODE_ATI"/>
+ <enum value="0x87F3" name="GL_PN_TRIANGLES_NORMAL_MODE_ATI"/>
+ <enum value="0x87F4" name="GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI"/>
+ <enum value="0x87F5" name="GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI"/>
+ <enum value="0x87F6" name="GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI"/>
+ <enum value="0x87F7" name="GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI"/>
+ <enum value="0x87F8" name="GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI"/>
+ <enum value="0x87F9" name="GL_3DC_X_AMD"/>
+ <enum value="0x87FA" name="GL_3DC_XY_AMD"/>
+ <enum value="0x87FB" name="GL_VBO_FREE_MEMORY_ATI"/>
+ <enum value="0x87FC" name="GL_TEXTURE_FREE_MEMORY_ATI"/>
+ <enum value="0x87FD" name="GL_RENDERBUFFER_FREE_MEMORY_ATI"/>
+ <enum value="0x87FE" name="GL_NUM_PROGRAM_BINARY_FORMATS"/>
+ <enum value="0x87FE" name="GL_NUM_PROGRAM_BINARY_FORMATS_OES"/>
+ <enum value="0x87FF" name="GL_PROGRAM_BINARY_FORMATS"/>
+ <enum value="0x87FF" name="GL_PROGRAM_BINARY_FORMATS_OES"/>
+ <enum value="0x8800" name="GL_STENCIL_BACK_FUNC"/>
+ <enum value="0x8800" name="GL_STENCIL_BACK_FUNC_ATI"/>
+ <enum value="0x8801" name="GL_STENCIL_BACK_FAIL"/>
+ <enum value="0x8801" name="GL_STENCIL_BACK_FAIL_ATI"/>
+ <enum value="0x8802" name="GL_STENCIL_BACK_PASS_DEPTH_FAIL"/>
+ <enum value="0x8802" name="GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI"/>
+ <enum value="0x8803" name="GL_STENCIL_BACK_PASS_DEPTH_PASS"/>
+ <enum value="0x8803" name="GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI"/>
+ <enum value="0x8804" name="GL_FRAGMENT_PROGRAM_ARB"/>
+ <enum value="0x8805" name="GL_PROGRAM_ALU_INSTRUCTIONS_ARB"/>
+ <enum value="0x8806" name="GL_PROGRAM_TEX_INSTRUCTIONS_ARB"/>
+ <enum value="0x8807" name="GL_PROGRAM_TEX_INDIRECTIONS_ARB"/>
+ <enum value="0x8808" name="GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB"/>
+ <enum value="0x8809" name="GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB"/>
+ <enum value="0x880A" name="GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB"/>
+ <enum value="0x880B" name="GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB"/>
+ <enum value="0x880C" name="GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB"/>
+ <enum value="0x880D" name="GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB"/>
+ <enum value="0x880E" name="GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB"/>
+ <enum value="0x880F" name="GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB"/>
+ <enum value="0x8810" name="GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB"/>
+ <unused start="0x8811" end="0x8813"/>
+ <enum value="0x8814" name="GL_RGBA32F"/>
+ <enum value="0x8814" name="GL_RGBA32F_ARB"/>
+ <enum value="0x8814" name="GL_RGBA_FLOAT32_APPLE"/>
+ <enum value="0x8814" name="GL_RGBA_FLOAT32_ATI"/>
+ <enum value="0x8815" name="GL_RGB32F"/>
+ <enum value="0x8815" name="GL_RGB32F_ARB"/>
+ <enum value="0x8815" name="GL_RGB_FLOAT32_APPLE"/>
+ <enum value="0x8815" name="GL_RGB_FLOAT32_ATI"/>
+ <enum value="0x8816" name="GL_ALPHA32F_ARB"/>
+ <enum value="0x8816" name="GL_ALPHA_FLOAT32_APPLE"/>
+ <enum value="0x8816" name="GL_ALPHA_FLOAT32_ATI"/>
+ <enum value="0x8817" name="GL_INTENSITY32F_ARB"/>
+ <enum value="0x8817" name="GL_INTENSITY_FLOAT32_APPLE"/>
+ <enum value="0x8817" name="GL_INTENSITY_FLOAT32_ATI"/>
+ <enum value="0x8818" name="GL_LUMINANCE32F_ARB"/>
+ <enum value="0x8818" name="GL_LUMINANCE_FLOAT32_APPLE"/>
+ <enum value="0x8818" name="GL_LUMINANCE_FLOAT32_ATI"/>
+ <enum value="0x8819" name="GL_LUMINANCE_ALPHA32F_ARB"/>
+ <enum value="0x8819" name="GL_LUMINANCE_ALPHA_FLOAT32_APPLE"/>
+ <enum value="0x8819" name="GL_LUMINANCE_ALPHA_FLOAT32_ATI"/>
+ <enum value="0x881A" name="GL_RGBA16F"/>
+ <enum value="0x881A" name="GL_RGBA16F_ARB"/>
+ <enum value="0x881A" name="GL_RGBA16F_EXT"/>
+ <enum value="0x881A" name="GL_RGBA_FLOAT16_APPLE"/>
+ <enum value="0x881A" name="GL_RGBA_FLOAT16_ATI"/>
+ <enum value="0x881B" name="GL_RGB16F"/>
+ <enum value="0x881B" name="GL_RGB16F_ARB"/>
+ <enum value="0x881B" name="GL_RGB16F_EXT"/>
+ <enum value="0x881B" name="GL_RGB_FLOAT16_APPLE"/>
+ <enum value="0x881B" name="GL_RGB_FLOAT16_ATI"/>
+ <enum value="0x881C" name="GL_ALPHA16F_ARB"/>
+ <enum value="0x881C" name="GL_ALPHA_FLOAT16_APPLE"/>
+ <enum value="0x881C" name="GL_ALPHA_FLOAT16_ATI"/>
+ <enum value="0x881D" name="GL_INTENSITY16F_ARB"/>
+ <enum value="0x881D" name="GL_INTENSITY_FLOAT16_APPLE"/>
+ <enum value="0x881D" name="GL_INTENSITY_FLOAT16_ATI"/>
+ <enum value="0x881E" name="GL_LUMINANCE16F_ARB"/>
+ <enum value="0x881E" name="GL_LUMINANCE_FLOAT16_APPLE"/>
+ <enum value="0x881E" name="GL_LUMINANCE_FLOAT16_ATI"/>
+ <enum value="0x881F" name="GL_LUMINANCE_ALPHA16F_ARB"/>
+ <enum value="0x881F" name="GL_LUMINANCE_ALPHA_FLOAT16_APPLE"/>
+ <enum value="0x881F" name="GL_LUMINANCE_ALPHA_FLOAT16_ATI"/>
+ <!-- RGBA_FLOAT_MODE_ARB equivalent to TYPE_RGBA_FLOAT_ATI -->
+ <enum value="0x8820" name="GL_RGBA_FLOAT_MODE_ARB"/>
+ <enum value="0x8820" name="GL_RGBA_FLOAT_MODE_ATI"/>
+ <unused start="0x8821" end="0x8822"/>
+ <enum value="0x8823" name="GL_WRITEONLY_RENDERING_QCOM"/>
+ <enum value="0x8824" name="GL_MAX_DRAW_BUFFERS"/>
+ <enum value="0x8824" name="GL_MAX_DRAW_BUFFERS_ARB"/>
+ <enum value="0x8824" name="GL_MAX_DRAW_BUFFERS_ATI"/>
+ <enum value="0x8824" name="GL_MAX_DRAW_BUFFERS_EXT"/>
+ <enum value="0x8824" name="GL_MAX_DRAW_BUFFERS_NV"/>
+ <enum value="0x8825" name="GL_DRAW_BUFFER0"/>
+ <enum value="0x8825" name="GL_DRAW_BUFFER0_ARB"/>
+ <enum value="0x8825" name="GL_DRAW_BUFFER0_ATI"/>
+ <enum value="0x8825" name="GL_DRAW_BUFFER0_EXT"/>
+ <enum value="0x8825" name="GL_DRAW_BUFFER0_NV"/>
+ <enum value="0x8826" name="GL_DRAW_BUFFER1"/>
+ <enum value="0x8826" name="GL_DRAW_BUFFER1_ARB"/>
+ <enum value="0x8826" name="GL_DRAW_BUFFER1_ATI"/>
+ <enum value="0x8826" name="GL_DRAW_BUFFER1_EXT"/>
+ <enum value="0x8826" name="GL_DRAW_BUFFER1_NV"/>
+ <enum value="0x8827" name="GL_DRAW_BUFFER2"/>
+ <enum value="0x8827" name="GL_DRAW_BUFFER2_ARB"/>
+ <enum value="0x8827" name="GL_DRAW_BUFFER2_ATI"/>
+ <enum value="0x8827" name="GL_DRAW_BUFFER2_EXT"/>
+ <enum value="0x8827" name="GL_DRAW_BUFFER2_NV"/>
+ <enum value="0x8828" name="GL_DRAW_BUFFER3"/>
+ <enum value="0x8828" name="GL_DRAW_BUFFER3_ARB"/>
+ <enum value="0x8828" name="GL_DRAW_BUFFER3_ATI"/>
+ <enum value="0x8828" name="GL_DRAW_BUFFER3_EXT"/>
+ <enum value="0x8828" name="GL_DRAW_BUFFER3_NV"/>
+ <enum value="0x8829" name="GL_DRAW_BUFFER4"/>
+ <enum value="0x8829" name="GL_DRAW_BUFFER4_ARB"/>
+ <enum value="0x8829" name="GL_DRAW_BUFFER4_ATI"/>
+ <enum value="0x8829" name="GL_DRAW_BUFFER4_EXT"/>
+ <enum value="0x8829" name="GL_DRAW_BUFFER4_NV"/>
+ <enum value="0x882A" name="GL_DRAW_BUFFER5"/>
+ <enum value="0x882A" name="GL_DRAW_BUFFER5_ARB"/>
+ <enum value="0x882A" name="GL_DRAW_BUFFER5_ATI"/>
+ <enum value="0x882A" name="GL_DRAW_BUFFER5_EXT"/>
+ <enum value="0x882A" name="GL_DRAW_BUFFER5_NV"/>
+ <enum value="0x882B" name="GL_DRAW_BUFFER6"/>
+ <enum value="0x882B" name="GL_DRAW_BUFFER6_ARB"/>
+ <enum value="0x882B" name="GL_DRAW_BUFFER6_ATI"/>
+ <enum value="0x882B" name="GL_DRAW_BUFFER6_EXT"/>
+ <enum value="0x882B" name="GL_DRAW_BUFFER6_NV"/>
+ <enum value="0x882C" name="GL_DRAW_BUFFER7"/>
+ <enum value="0x882C" name="GL_DRAW_BUFFER7_ARB"/>
+ <enum value="0x882C" name="GL_DRAW_BUFFER7_ATI"/>
+ <enum value="0x882C" name="GL_DRAW_BUFFER7_EXT"/>
+ <enum value="0x882C" name="GL_DRAW_BUFFER7_NV"/>
+ <enum value="0x882D" name="GL_DRAW_BUFFER8"/>
+ <enum value="0x882D" name="GL_DRAW_BUFFER8_ARB"/>
+ <enum value="0x882D" name="GL_DRAW_BUFFER8_ATI"/>
+ <enum value="0x882D" name="GL_DRAW_BUFFER8_EXT"/>
+ <enum value="0x882D" name="GL_DRAW_BUFFER8_NV"/>
+ <enum value="0x882E" name="GL_DRAW_BUFFER9"/>
+ <enum value="0x882E" name="GL_DRAW_BUFFER9_ARB"/>
+ <enum value="0x882E" name="GL_DRAW_BUFFER9_ATI"/>
+ <enum value="0x882E" name="GL_DRAW_BUFFER9_EXT"/>
+ <enum value="0x882E" name="GL_DRAW_BUFFER9_NV"/>
+ <enum value="0x882F" name="GL_DRAW_BUFFER10"/>
+ <enum value="0x882F" name="GL_DRAW_BUFFER10_ARB"/>
+ <enum value="0x882F" name="GL_DRAW_BUFFER10_ATI"/>
+ <enum value="0x882F" name="GL_DRAW_BUFFER10_EXT"/>
+ <enum value="0x882F" name="GL_DRAW_BUFFER10_NV"/>
+ <enum value="0x8830" name="GL_DRAW_BUFFER11"/>
+ <enum value="0x8830" name="GL_DRAW_BUFFER11_ARB"/>
+ <enum value="0x8830" name="GL_DRAW_BUFFER11_ATI"/>
+ <enum value="0x8830" name="GL_DRAW_BUFFER11_EXT"/>
+ <enum value="0x8830" name="GL_DRAW_BUFFER11_NV"/>
+ <enum value="0x8831" name="GL_DRAW_BUFFER12"/>
+ <enum value="0x8831" name="GL_DRAW_BUFFER12_ARB"/>
+ <enum value="0x8831" name="GL_DRAW_BUFFER12_ATI"/>
+ <enum value="0x8831" name="GL_DRAW_BUFFER12_EXT"/>
+ <enum value="0x8831" name="GL_DRAW_BUFFER12_NV"/>
+ <enum value="0x8832" name="GL_DRAW_BUFFER13"/>
+ <enum value="0x8832" name="GL_DRAW_BUFFER13_ARB"/>
+ <enum value="0x8832" name="GL_DRAW_BUFFER13_ATI"/>
+ <enum value="0x8832" name="GL_DRAW_BUFFER13_EXT"/>
+ <enum value="0x8832" name="GL_DRAW_BUFFER13_NV"/>
+ <enum value="0x8833" name="GL_DRAW_BUFFER14"/>
+ <enum value="0x8833" name="GL_DRAW_BUFFER14_ARB"/>
+ <enum value="0x8833" name="GL_DRAW_BUFFER14_ATI"/>
+ <enum value="0x8833" name="GL_DRAW_BUFFER14_EXT"/>
+ <enum value="0x8833" name="GL_DRAW_BUFFER14_NV"/>
+ <enum value="0x8834" name="GL_DRAW_BUFFER15"/>
+ <enum value="0x8834" name="GL_DRAW_BUFFER15_ARB"/>
+ <enum value="0x8834" name="GL_DRAW_BUFFER15_ATI"/>
+ <enum value="0x8834" name="GL_DRAW_BUFFER15_EXT"/>
+ <enum value="0x8834" name="GL_DRAW_BUFFER15_NV"/>
+ <enum value="0x8835" name="GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI"/>
+ <unused start="0x8836" end="0x883C"/>
+ <enum value="0x883D" name="GL_BLEND_EQUATION_ALPHA"/>
+ <enum value="0x883D" name="GL_BLEND_EQUATION_ALPHA_EXT"/>
+ <enum value="0x883D" name="GL_BLEND_EQUATION_ALPHA_OES"/>
+ <unused start="0x883E"/>
+ <enum value="0x883F" name="GL_SUBSAMPLE_DISTANCE_AMD"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8840" end="0x884F" vendor="ARB">
+ <enum value="0x8840" name="GL_MATRIX_PALETTE_ARB"/>
+ <enum value="0x8840" name="GL_MATRIX_PALETTE_OES"/>
+ <enum value="0x8841" name="GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB"/>
+ <enum value="0x8842" name="GL_MAX_PALETTE_MATRICES_ARB"/>
+ <enum value="0x8842" name="GL_MAX_PALETTE_MATRICES_OES"/>
+ <enum value="0x8843" name="GL_CURRENT_PALETTE_MATRIX_ARB"/>
+ <enum value="0x8843" name="GL_CURRENT_PALETTE_MATRIX_OES"/>
+ <enum value="0x8844" name="GL_MATRIX_INDEX_ARRAY_ARB"/>
+ <enum value="0x8844" name="GL_MATRIX_INDEX_ARRAY_OES"/>
+ <enum value="0x8845" name="GL_CURRENT_MATRIX_INDEX_ARB"/>
+ <enum value="0x8846" name="GL_MATRIX_INDEX_ARRAY_SIZE_ARB"/>
+ <enum value="0x8846" name="GL_MATRIX_INDEX_ARRAY_SIZE_OES"/>
+ <enum value="0x8847" name="GL_MATRIX_INDEX_ARRAY_TYPE_ARB"/>
+ <enum value="0x8847" name="GL_MATRIX_INDEX_ARRAY_TYPE_OES"/>
+ <enum value="0x8848" name="GL_MATRIX_INDEX_ARRAY_STRIDE_ARB"/>
+ <enum value="0x8848" name="GL_MATRIX_INDEX_ARRAY_STRIDE_OES"/>
+ <enum value="0x8849" name="GL_MATRIX_INDEX_ARRAY_POINTER_ARB"/>
+ <enum value="0x8849" name="GL_MATRIX_INDEX_ARRAY_POINTER_OES"/>
+ <enum value="0x884A" name="GL_TEXTURE_DEPTH_SIZE"/>
+ <enum value="0x884A" name="GL_TEXTURE_DEPTH_SIZE_ARB"/>
+ <enum value="0x884B" name="GL_DEPTH_TEXTURE_MODE"/>
+ <enum value="0x884B" name="GL_DEPTH_TEXTURE_MODE_ARB"/>
+ <enum value="0x884C" name="GL_TEXTURE_COMPARE_MODE"/>
+ <enum value="0x884C" name="GL_TEXTURE_COMPARE_MODE_ARB"/>
+ <enum value="0x884C" name="GL_TEXTURE_COMPARE_MODE_EXT"/>
+ <enum value="0x884D" name="GL_TEXTURE_COMPARE_FUNC"/>
+ <enum value="0x884D" name="GL_TEXTURE_COMPARE_FUNC_ARB"/>
+ <enum value="0x884D" name="GL_TEXTURE_COMPARE_FUNC_EXT"/>
+ <enum value="0x884E" name="GL_COMPARE_R_TO_TEXTURE"/>
+ <enum value="0x884E" name="GL_COMPARE_R_TO_TEXTURE_ARB"/>
+ <enum value="0x884E" name="GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT"/>
+ <enum value="0x884E" name="GL_COMPARE_REF_TO_TEXTURE" alias="GL_COMPARE_R_TO_TEXTURE"/>
+ <enum value="0x884E" name="GL_COMPARE_REF_TO_TEXTURE_EXT"/>
+ <enum value="0x884F" name="GL_TEXTURE_CUBE_MAP_SEAMLESS"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8850" end="0x891F" vendor="NV">
+ <enum value="0x8850" name="GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV"/>
+ <enum value="0x8851" name="GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV"/>
+ <enum value="0x8852" name="GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV"/>
+ <enum value="0x8853" name="GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV"/>
+ <enum value="0x8854" name="GL_OFFSET_HILO_TEXTURE_2D_NV"/>
+ <enum value="0x8855" name="GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV"/>
+ <enum value="0x8856" name="GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV"/>
+ <enum value="0x8857" name="GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV"/>
+ <enum value="0x8858" name="GL_DEPENDENT_HILO_TEXTURE_2D_NV"/>
+ <enum value="0x8859" name="GL_DEPENDENT_RGB_TEXTURE_3D_NV"/>
+ <enum value="0x885A" name="GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV"/>
+ <enum value="0x885B" name="GL_DOT_PRODUCT_PASS_THROUGH_NV"/>
+ <enum value="0x885C" name="GL_DOT_PRODUCT_TEXTURE_1D_NV"/>
+ <enum value="0x885D" name="GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV"/>
+ <enum value="0x885E" name="GL_HILO8_NV"/>
+ <enum value="0x885F" name="GL_SIGNED_HILO8_NV"/>
+ <enum value="0x8860" name="GL_FORCE_BLUE_TO_ONE_NV"/>
+ <enum value="0x8861" name="GL_POINT_SPRITE"/>
+ <enum value="0x8861" name="GL_POINT_SPRITE_ARB"/>
+ <enum value="0x8861" name="GL_POINT_SPRITE_NV"/>
+ <enum value="0x8861" name="GL_POINT_SPRITE_OES"/>
+ <enum value="0x8862" name="GL_COORD_REPLACE"/>
+ <enum value="0x8862" name="GL_COORD_REPLACE_ARB"/>
+ <enum value="0x8862" name="GL_COORD_REPLACE_NV"/>
+ <enum value="0x8862" name="GL_COORD_REPLACE_OES"/>
+ <enum value="0x8863" name="GL_POINT_SPRITE_R_MODE_NV"/>
+ <enum value="0x8864" name="GL_PIXEL_COUNTER_BITS_NV"/>
+ <enum value="0x8864" name="GL_QUERY_COUNTER_BITS"/>
+ <enum value="0x8864" name="GL_QUERY_COUNTER_BITS_ARB"/>
+ <enum value="0x8864" name="GL_QUERY_COUNTER_BITS_EXT"/>
+ <enum value="0x8865" name="GL_CURRENT_OCCLUSION_QUERY_ID_NV"/>
+ <enum value="0x8865" name="GL_CURRENT_QUERY"/>
+ <enum value="0x8865" name="GL_CURRENT_QUERY_ARB"/>
+ <enum value="0x8865" name="GL_CURRENT_QUERY_EXT"/>
+ <enum value="0x8866" name="GL_PIXEL_COUNT_NV"/>
+ <enum value="0x8866" name="GL_QUERY_RESULT"/>
+ <enum value="0x8866" name="GL_QUERY_RESULT_ARB"/>
+ <enum value="0x8866" name="GL_QUERY_RESULT_EXT"/>
+ <enum value="0x8867" name="GL_PIXEL_COUNT_AVAILABLE_NV"/>
+ <enum value="0x8867" name="GL_QUERY_RESULT_AVAILABLE"/>
+ <enum value="0x8867" name="GL_QUERY_RESULT_AVAILABLE_ARB"/>
+ <enum value="0x8867" name="GL_QUERY_RESULT_AVAILABLE_EXT"/>
+ <enum value="0x8868" name="GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV"/>
+ <enum value="0x8869" name="GL_MAX_VERTEX_ATTRIBS"/>
+ <enum value="0x8869" name="GL_MAX_VERTEX_ATTRIBS_ARB"/>
+ <enum value="0x886A" name="GL_VERTEX_ATTRIB_ARRAY_NORMALIZED"/>
+ <enum value="0x886A" name="GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB"/>
+ <unused start="0x886B"/>
+ <enum value="0x886C" name="GL_MAX_TESS_CONTROL_INPUT_COMPONENTS"/>
+ <enum value="0x886D" name="GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS"/>
+ <enum value="0x886E" name="GL_DEPTH_STENCIL_TO_RGBA_NV"/>
+ <enum value="0x886F" name="GL_DEPTH_STENCIL_TO_BGRA_NV"/>
+ <enum value="0x8870" name="GL_FRAGMENT_PROGRAM_NV"/>
+ <enum value="0x8871" name="GL_MAX_TEXTURE_COORDS"/>
+ <enum value="0x8871" name="GL_MAX_TEXTURE_COORDS_ARB"/>
+ <enum value="0x8871" name="GL_MAX_TEXTURE_COORDS_NV"/>
+ <enum value="0x8872" name="GL_MAX_TEXTURE_IMAGE_UNITS"/>
+ <enum value="0x8872" name="GL_MAX_TEXTURE_IMAGE_UNITS_ARB"/>
+ <enum value="0x8872" name="GL_MAX_TEXTURE_IMAGE_UNITS_NV"/>
+ <enum value="0x8873" name="GL_FRAGMENT_PROGRAM_BINDING_NV"/>
+ <enum value="0x8874" name="GL_PROGRAM_ERROR_STRING_ARB"/>
+ <enum value="0x8874" name="GL_PROGRAM_ERROR_STRING_NV"/>
+ <enum value="0x8875" name="GL_PROGRAM_FORMAT_ASCII_ARB"/>
+ <enum value="0x8876" name="GL_PROGRAM_FORMAT_ARB"/>
+ <unused start="0x8877" comment="Should have been assigned to PROGRAM_BINDING_ARB"/>
+ <enum value="0x8878" name="GL_WRITE_PIXEL_DATA_RANGE_NV"/>
+ <enum value="0x8879" name="GL_READ_PIXEL_DATA_RANGE_NV"/>
+ <enum value="0x887A" name="GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV"/>
+ <enum value="0x887B" name="GL_READ_PIXEL_DATA_RANGE_LENGTH_NV"/>
+ <enum value="0x887C" name="GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV"/>
+ <enum value="0x887D" name="GL_READ_PIXEL_DATA_RANGE_POINTER_NV"/>
+ <unused start="0x887E"/>
+ <enum value="0x887F" name="GL_GEOMETRY_SHADER_INVOCATIONS"/>
+ <enum value="0x8880" name="GL_FLOAT_R_NV"/>
+ <enum value="0x8881" name="GL_FLOAT_RG_NV"/>
+ <enum value="0x8882" name="GL_FLOAT_RGB_NV"/>
+ <enum value="0x8883" name="GL_FLOAT_RGBA_NV"/>
+ <enum value="0x8884" name="GL_FLOAT_R16_NV"/>
+ <enum value="0x8885" name="GL_FLOAT_R32_NV"/>
+ <enum value="0x8886" name="GL_FLOAT_RG16_NV"/>
+ <enum value="0x8887" name="GL_FLOAT_RG32_NV"/>
+ <enum value="0x8888" name="GL_FLOAT_RGB16_NV"/>
+ <enum value="0x8889" name="GL_FLOAT_RGB32_NV"/>
+ <enum value="0x888A" name="GL_FLOAT_RGBA16_NV"/>
+ <enum value="0x888B" name="GL_FLOAT_RGBA32_NV"/>
+ <enum value="0x888C" name="GL_TEXTURE_FLOAT_COMPONENTS_NV"/>
+ <enum value="0x888D" name="GL_FLOAT_CLEAR_COLOR_VALUE_NV"/>
+ <enum value="0x888E" name="GL_FLOAT_RGBA_MODE_NV"/>
+ <enum value="0x888F" name="GL_TEXTURE_UNSIGNED_REMAP_MODE_NV"/>
+ <enum value="0x8890" name="GL_DEPTH_BOUNDS_TEST_EXT"/>
+ <enum value="0x8891" name="GL_DEPTH_BOUNDS_EXT"/>
+ <enum value="0x8892" name="GL_ARRAY_BUFFER"/>
+ <enum value="0x8892" name="GL_ARRAY_BUFFER_ARB"/>
+ <enum value="0x8893" name="GL_ELEMENT_ARRAY_BUFFER"/>
+ <enum value="0x8893" name="GL_ELEMENT_ARRAY_BUFFER_ARB"/>
+ <enum value="0x8894" name="GL_ARRAY_BUFFER_BINDING"/>
+ <enum value="0x8894" name="GL_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum value="0x8895" name="GL_ELEMENT_ARRAY_BUFFER_BINDING"/>
+ <enum value="0x8895" name="GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum value="0x8896" name="GL_VERTEX_ARRAY_BUFFER_BINDING"/>
+ <enum value="0x8896" name="GL_VERTEX_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum value="0x8897" name="GL_NORMAL_ARRAY_BUFFER_BINDING"/>
+ <enum value="0x8897" name="GL_NORMAL_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum value="0x8898" name="GL_COLOR_ARRAY_BUFFER_BINDING"/>
+ <enum value="0x8898" name="GL_COLOR_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum value="0x8899" name="GL_INDEX_ARRAY_BUFFER_BINDING"/>
+ <enum value="0x8899" name="GL_INDEX_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum value="0x889A" name="GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING"/>
+ <enum value="0x889A" name="GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum value="0x889B" name="GL_EDGE_FLAG_ARRAY_BUFFER_BINDING"/>
+ <enum value="0x889B" name="GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum value="0x889C" name="GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING"/>
+ <enum value="0x889C" name="GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum value="0x889D" name="GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum value="0x889D" name="GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING"/>
+ <enum value="0x889D" name="GL_FOG_COORD_ARRAY_BUFFER_BINDING" alias="GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING"/>
+ <enum value="0x889E" name="GL_WEIGHT_ARRAY_BUFFER_BINDING"/>
+ <enum value="0x889E" name="GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum value="0x889E" name="GL_WEIGHT_ARRAY_BUFFER_BINDING_OES"/>
+ <enum value="0x889F" name="GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING"/>
+ <enum value="0x889F" name="GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum value="0x88A0" name="GL_PROGRAM_INSTRUCTIONS_ARB"/>
+ <enum value="0x88A1" name="GL_MAX_PROGRAM_INSTRUCTIONS_ARB"/>
+ <enum value="0x88A2" name="GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB"/>
+ <enum value="0x88A3" name="GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB"/>
+ <enum value="0x88A4" name="GL_PROGRAM_TEMPORARIES_ARB"/>
+ <enum value="0x88A5" name="GL_MAX_PROGRAM_TEMPORARIES_ARB"/>
+ <enum value="0x88A6" name="GL_PROGRAM_NATIVE_TEMPORARIES_ARB"/>
+ <enum value="0x88A7" name="GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB"/>
+ <enum value="0x88A8" name="GL_PROGRAM_PARAMETERS_ARB"/>
+ <enum value="0x88A9" name="GL_MAX_PROGRAM_PARAMETERS_ARB"/>
+ <enum value="0x88AA" name="GL_PROGRAM_NATIVE_PARAMETERS_ARB"/>
+ <enum value="0x88AB" name="GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB"/>
+ <enum value="0x88AC" name="GL_PROGRAM_ATTRIBS_ARB"/>
+ <enum value="0x88AD" name="GL_MAX_PROGRAM_ATTRIBS_ARB"/>
+ <enum value="0x88AE" name="GL_PROGRAM_NATIVE_ATTRIBS_ARB"/>
+ <enum value="0x88AF" name="GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB"/>
+ <enum value="0x88B0" name="GL_PROGRAM_ADDRESS_REGISTERS_ARB"/>
+ <enum value="0x88B1" name="GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB"/>
+ <enum value="0x88B2" name="GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB"/>
+ <enum value="0x88B3" name="GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB"/>
+ <enum value="0x88B4" name="GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB"/>
+ <enum value="0x88B5" name="GL_MAX_PROGRAM_ENV_PARAMETERS_ARB"/>
+ <enum value="0x88B6" name="GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB"/>
+ <enum value="0x88B7" name="GL_TRANSPOSE_CURRENT_MATRIX_ARB"/>
+ <enum value="0x88B8" name="GL_READ_ONLY"/>
+ <enum value="0x88B8" name="GL_READ_ONLY_ARB"/>
+ <enum value="0x88B9" name="GL_WRITE_ONLY"/>
+ <enum value="0x88B9" name="GL_WRITE_ONLY_ARB"/>
+ <enum value="0x88B9" name="GL_WRITE_ONLY_OES"/>
+ <enum value="0x88BA" name="GL_READ_WRITE"/>
+ <enum value="0x88BA" name="GL_READ_WRITE_ARB"/>
+ <enum value="0x88BB" name="GL_BUFFER_ACCESS"/>
+ <enum value="0x88BB" name="GL_BUFFER_ACCESS_ARB"/>
+ <enum value="0x88BB" name="GL_BUFFER_ACCESS_OES"/>
+ <enum value="0x88BC" name="GL_BUFFER_MAPPED"/>
+ <enum value="0x88BC" name="GL_BUFFER_MAPPED_ARB"/>
+ <enum value="0x88BC" name="GL_BUFFER_MAPPED_OES"/>
+ <enum value="0x88BD" name="GL_BUFFER_MAP_POINTER"/>
+ <enum value="0x88BD" name="GL_BUFFER_MAP_POINTER_ARB"/>
+ <enum value="0x88BD" name="GL_BUFFER_MAP_POINTER_OES"/>
+ <enum value="0x88BE" name="GL_WRITE_DISCARD_NV"/>
+ <enum value="0x88BF" name="GL_TIME_ELAPSED"/>
+ <enum value="0x88BF" name="GL_TIME_ELAPSED_EXT"/>
+ <enum value="0x88C0" name="GL_MATRIX0_ARB"/>
+ <enum value="0x88C1" name="GL_MATRIX1_ARB"/>
+ <enum value="0x88C2" name="GL_MATRIX2_ARB"/>
+ <enum value="0x88C3" name="GL_MATRIX3_ARB"/>
+ <enum value="0x88C4" name="GL_MATRIX4_ARB"/>
+ <enum value="0x88C5" name="GL_MATRIX5_ARB"/>
+ <enum value="0x88C6" name="GL_MATRIX6_ARB"/>
+ <enum value="0x88C7" name="GL_MATRIX7_ARB"/>
+ <enum value="0x88C8" name="GL_MATRIX8_ARB"/>
+ <enum value="0x88C9" name="GL_MATRIX9_ARB"/>
+ <enum value="0x88CA" name="GL_MATRIX10_ARB"/>
+ <enum value="0x88CB" name="GL_MATRIX11_ARB"/>
+ <enum value="0x88CC" name="GL_MATRIX12_ARB"/>
+ <enum value="0x88CD" name="GL_MATRIX13_ARB"/>
+ <enum value="0x88CE" name="GL_MATRIX14_ARB"/>
+ <enum value="0x88CF" name="GL_MATRIX15_ARB"/>
+ <enum value="0x88D0" name="GL_MATRIX16_ARB"/>
+ <enum value="0x88D1" name="GL_MATRIX17_ARB"/>
+ <enum value="0x88D2" name="GL_MATRIX18_ARB"/>
+ <enum value="0x88D3" name="GL_MATRIX19_ARB"/>
+ <enum value="0x88D4" name="GL_MATRIX20_ARB"/>
+ <enum value="0x88D5" name="GL_MATRIX21_ARB"/>
+ <enum value="0x88D6" name="GL_MATRIX22_ARB"/>
+ <enum value="0x88D7" name="GL_MATRIX23_ARB"/>
+ <enum value="0x88D8" name="GL_MATRIX24_ARB"/>
+ <enum value="0x88D9" name="GL_MATRIX25_ARB"/>
+ <enum value="0x88DA" name="GL_MATRIX26_ARB"/>
+ <enum value="0x88DB" name="GL_MATRIX27_ARB"/>
+ <enum value="0x88DC" name="GL_MATRIX28_ARB"/>
+ <enum value="0x88DD" name="GL_MATRIX29_ARB"/>
+ <enum value="0x88DE" name="GL_MATRIX30_ARB"/>
+ <enum value="0x88DF" name="GL_MATRIX31_ARB"/>
+ <enum value="0x88E0" name="GL_STREAM_DRAW"/>
+ <enum value="0x88E0" name="GL_STREAM_DRAW_ARB"/>
+ <enum value="0x88E1" name="GL_STREAM_READ"/>
+ <enum value="0x88E1" name="GL_STREAM_READ_ARB"/>
+ <enum value="0x88E2" name="GL_STREAM_COPY"/>
+ <enum value="0x88E2" name="GL_STREAM_COPY_ARB"/>
+ <unused start="0x88E3" comment="To extend ARB_vbo"/>
+ <enum value="0x88E4" name="GL_STATIC_DRAW"/>
+ <enum value="0x88E4" name="GL_STATIC_DRAW_ARB"/>
+ <enum value="0x88E5" name="GL_STATIC_READ"/>
+ <enum value="0x88E5" name="GL_STATIC_READ_ARB"/>
+ <enum value="0x88E6" name="GL_STATIC_COPY"/>
+ <enum value="0x88E6" name="GL_STATIC_COPY_ARB"/>
+ <unused start="0x88E7" comment="To extend ARB_vbo"/>
+ <enum value="0x88E8" name="GL_DYNAMIC_DRAW"/>
+ <enum value="0x88E8" name="GL_DYNAMIC_DRAW_ARB"/>
+ <enum value="0x88E9" name="GL_DYNAMIC_READ"/>
+ <enum value="0x88E9" name="GL_DYNAMIC_READ_ARB"/>
+ <enum value="0x88EA" name="GL_DYNAMIC_COPY"/>
+ <enum value="0x88EA" name="GL_DYNAMIC_COPY_ARB"/>
+ <enum value="0x88EB" name="GL_PIXEL_PACK_BUFFER"/>
+ <enum value="0x88EB" name="GL_PIXEL_PACK_BUFFER_ARB"/>
+ <enum value="0x88EB" name="GL_PIXEL_PACK_BUFFER_EXT"/>
+ <enum value="0x88EC" name="GL_PIXEL_UNPACK_BUFFER"/>
+ <enum value="0x88EC" name="GL_PIXEL_UNPACK_BUFFER_ARB"/>
+ <enum value="0x88EC" name="GL_PIXEL_UNPACK_BUFFER_EXT"/>
+ <enum value="0x88ED" name="GL_PIXEL_PACK_BUFFER_BINDING"/>
+ <enum value="0x88ED" name="GL_PIXEL_PACK_BUFFER_BINDING_ARB"/>
+ <enum value="0x88ED" name="GL_PIXEL_PACK_BUFFER_BINDING_EXT"/>
+ <enum value="0x88EE" name="GL_ETC1_SRGB8_NV"/>
+ <enum value="0x88EF" name="GL_PIXEL_UNPACK_BUFFER_BINDING"/>
+ <enum value="0x88EF" name="GL_PIXEL_UNPACK_BUFFER_BINDING_ARB"/>
+ <enum value="0x88EF" name="GL_PIXEL_UNPACK_BUFFER_BINDING_EXT"/>
+ <enum value="0x88F0" name="GL_DEPTH24_STENCIL8"/>
+ <enum value="0x88F0" name="GL_DEPTH24_STENCIL8_EXT"/>
+ <enum value="0x88F0" name="GL_DEPTH24_STENCIL8_OES"/>
+ <enum value="0x88F1" name="GL_TEXTURE_STENCIL_SIZE"/>
+ <enum value="0x88F1" name="GL_TEXTURE_STENCIL_SIZE_EXT"/>
+ <enum value="0x88F2" name="GL_STENCIL_TAG_BITS_EXT"/>
+ <enum value="0x88F3" name="GL_STENCIL_CLEAR_TAG_VALUE_EXT"/>
+ <enum value="0x88F4" name="GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV"/>
+ <enum value="0x88F5" name="GL_MAX_PROGRAM_CALL_DEPTH_NV"/>
+ <enum value="0x88F6" name="GL_MAX_PROGRAM_IF_DEPTH_NV"/>
+ <enum value="0x88F7" name="GL_MAX_PROGRAM_LOOP_DEPTH_NV"/>
+ <enum value="0x88F8" name="GL_MAX_PROGRAM_LOOP_COUNT_NV"/>
+ <enum value="0x88F9" name="GL_SRC1_COLOR"/>
+ <enum value="0x88FA" name="GL_ONE_MINUS_SRC1_COLOR"/>
+ <enum value="0x88FB" name="GL_ONE_MINUS_SRC1_ALPHA"/>
+ <enum value="0x88FC" name="GL_MAX_DUAL_SOURCE_DRAW_BUFFERS"/>
+ <enum value="0x88FD" name="GL_VERTEX_ATTRIB_ARRAY_INTEGER"/>
+ <enum value="0x88FD" name="GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT"/>
+ <enum value="0x88FD" name="GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV"/>
+ <enum value="0x88FE" name="GL_VERTEX_ATTRIB_ARRAY_DIVISOR"/>
+ <enum value="0x88FE" name="GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE"/>
+ <enum value="0x88FE" name="GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB"/>
+ <enum value="0x88FE" name="GL_VERTEX_ATTRIB_ARRAY_DIVISOR_NV"/>
+ <enum value="0x88FF" name="GL_MAX_ARRAY_TEXTURE_LAYERS"/>
+ <enum value="0x88FF" name="GL_MAX_ARRAY_TEXTURE_LAYERS_EXT"/>
+ <enum value="0x8904" name="GL_MIN_PROGRAM_TEXEL_OFFSET"/>
+ <enum value="0x8904" name="GL_MIN_PROGRAM_TEXEL_OFFSET_EXT"/>
+ <enum value="0x8904" name="GL_MIN_PROGRAM_TEXEL_OFFSET_NV"/>
+ <enum value="0x8905" name="GL_MAX_PROGRAM_TEXEL_OFFSET"/>
+ <enum value="0x8905" name="GL_MAX_PROGRAM_TEXEL_OFFSET_EXT"/>
+ <enum value="0x8905" name="GL_MAX_PROGRAM_TEXEL_OFFSET_NV"/>
+ <enum value="0x8906" name="GL_PROGRAM_ATTRIB_COMPONENTS_NV"/>
+ <enum value="0x8907" name="GL_PROGRAM_RESULT_COMPONENTS_NV"/>
+ <enum value="0x8908" name="GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV"/>
+ <enum value="0x8909" name="GL_MAX_PROGRAM_RESULT_COMPONENTS_NV"/>
+ <enum value="0x8910" name="GL_STENCIL_TEST_TWO_SIDE_EXT"/>
+ <enum value="0x8911" name="GL_ACTIVE_STENCIL_FACE_EXT"/>
+ <enum value="0x8912" name="GL_MIRROR_CLAMP_TO_BORDER_EXT"/>
+ <unused start="0x8913"/>
+ <enum value="0x8914" name="GL_SAMPLES_PASSED"/>
+ <enum value="0x8914" name="GL_SAMPLES_PASSED_ARB"/>
+ <unused start="0x8915"/>
+ <enum value="0x8916" name="GL_GEOMETRY_VERTICES_OUT"/>
+ <enum value="0x8917" name="GL_GEOMETRY_INPUT_TYPE"/>
+ <enum value="0x8918" name="GL_GEOMETRY_OUTPUT_TYPE"/>
+ <enum value="0x8919" name="GL_SAMPLER_BINDING"/>
+ <enum value="0x891A" name="GL_CLAMP_VERTEX_COLOR"/>
+ <enum value="0x891A" name="GL_CLAMP_VERTEX_COLOR_ARB"/>
+ <enum value="0x891B" name="GL_CLAMP_FRAGMENT_COLOR"/>
+ <enum value="0x891B" name="GL_CLAMP_FRAGMENT_COLOR_ARB"/>
+ <enum value="0x891C" name="GL_CLAMP_READ_COLOR"/>
+ <enum value="0x891C" name="GL_CLAMP_READ_COLOR_ARB"/>
+ <enum value="0x891D" name="GL_FIXED_ONLY"/>
+ <enum value="0x891D" name="GL_FIXED_ONLY_ARB"/>
+ <enum value="0x891E" name="GL_TESS_CONTROL_PROGRAM_NV"/>
+ <enum value="0x891F" name="GL_TESS_EVALUATION_PROGRAM_NV"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8920" end="0x897F" vendor="AMD">
+ <enum value="0x8920" name="GL_FRAGMENT_SHADER_ATI"/>
+ <enum value="0x8921" name="GL_REG_0_ATI"/>
+ <enum value="0x8922" name="GL_REG_1_ATI"/>
+ <enum value="0x8923" name="GL_REG_2_ATI"/>
+ <enum value="0x8924" name="GL_REG_3_ATI"/>
+ <enum value="0x8925" name="GL_REG_4_ATI"/>
+ <enum value="0x8926" name="GL_REG_5_ATI"/>
+ <enum value="0x8927" name="GL_REG_6_ATI"/>
+ <enum value="0x8928" name="GL_REG_7_ATI"/>
+ <enum value="0x8929" name="GL_REG_8_ATI"/>
+ <enum value="0x892A" name="GL_REG_9_ATI"/>
+ <enum value="0x892B" name="GL_REG_10_ATI"/>
+ <enum value="0x892C" name="GL_REG_11_ATI"/>
+ <enum value="0x892D" name="GL_REG_12_ATI"/>
+ <enum value="0x892E" name="GL_REG_13_ATI"/>
+ <enum value="0x892F" name="GL_REG_14_ATI"/>
+ <enum value="0x8930" name="GL_REG_15_ATI"/>
+ <enum value="0x8931" name="GL_REG_16_ATI"/>
+ <enum value="0x8932" name="GL_REG_17_ATI"/>
+ <enum value="0x8933" name="GL_REG_18_ATI"/>
+ <enum value="0x8934" name="GL_REG_19_ATI"/>
+ <enum value="0x8935" name="GL_REG_20_ATI"/>
+ <enum value="0x8936" name="GL_REG_21_ATI"/>
+ <enum value="0x8937" name="GL_REG_22_ATI"/>
+ <enum value="0x8938" name="GL_REG_23_ATI"/>
+ <enum value="0x8939" name="GL_REG_24_ATI"/>
+ <enum value="0x893A" name="GL_REG_25_ATI"/>
+ <enum value="0x893B" name="GL_REG_26_ATI"/>
+ <enum value="0x893C" name="GL_REG_27_ATI"/>
+ <enum value="0x893D" name="GL_REG_28_ATI"/>
+ <enum value="0x893E" name="GL_REG_29_ATI"/>
+ <enum value="0x893F" name="GL_REG_30_ATI"/>
+ <enum value="0x8940" name="GL_REG_31_ATI"/>
+ <enum value="0x8941" name="GL_CON_0_ATI"/>
+ <enum value="0x8942" name="GL_CON_1_ATI"/>
+ <enum value="0x8943" name="GL_CON_2_ATI"/>
+ <enum value="0x8944" name="GL_CON_3_ATI"/>
+ <enum value="0x8945" name="GL_CON_4_ATI"/>
+ <enum value="0x8946" name="GL_CON_5_ATI"/>
+ <enum value="0x8947" name="GL_CON_6_ATI"/>
+ <enum value="0x8948" name="GL_CON_7_ATI"/>
+ <enum value="0x8949" name="GL_CON_8_ATI"/>
+ <enum value="0x894A" name="GL_CON_9_ATI"/>
+ <enum value="0x894B" name="GL_CON_10_ATI"/>
+ <enum value="0x894C" name="GL_CON_11_ATI"/>
+ <enum value="0x894D" name="GL_CON_12_ATI"/>
+ <enum value="0x894E" name="GL_CON_13_ATI"/>
+ <enum value="0x894F" name="GL_CON_14_ATI"/>
+ <enum value="0x8950" name="GL_CON_15_ATI"/>
+ <enum value="0x8951" name="GL_CON_16_ATI"/>
+ <enum value="0x8952" name="GL_CON_17_ATI"/>
+ <enum value="0x8953" name="GL_CON_18_ATI"/>
+ <enum value="0x8954" name="GL_CON_19_ATI"/>
+ <enum value="0x8955" name="GL_CON_20_ATI"/>
+ <enum value="0x8956" name="GL_CON_21_ATI"/>
+ <enum value="0x8957" name="GL_CON_22_ATI"/>
+ <enum value="0x8958" name="GL_CON_23_ATI"/>
+ <enum value="0x8959" name="GL_CON_24_ATI"/>
+ <enum value="0x895A" name="GL_CON_25_ATI"/>
+ <enum value="0x895B" name="GL_CON_26_ATI"/>
+ <enum value="0x895C" name="GL_CON_27_ATI"/>
+ <enum value="0x895D" name="GL_CON_28_ATI"/>
+ <enum value="0x895E" name="GL_CON_29_ATI"/>
+ <enum value="0x895F" name="GL_CON_30_ATI"/>
+ <enum value="0x8960" name="GL_CON_31_ATI"/>
+ <enum value="0x8961" name="GL_MOV_ATI"/>
+ <enum value="0x8963" name="GL_ADD_ATI"/>
+ <enum value="0x8964" name="GL_MUL_ATI"/>
+ <enum value="0x8965" name="GL_SUB_ATI"/>
+ <enum value="0x8966" name="GL_DOT3_ATI"/>
+ <enum value="0x8967" name="GL_DOT4_ATI"/>
+ <enum value="0x8968" name="GL_MAD_ATI"/>
+ <enum value="0x8969" name="GL_LERP_ATI"/>
+ <enum value="0x896A" name="GL_CND_ATI"/>
+ <enum value="0x896B" name="GL_CND0_ATI"/>
+ <enum value="0x896C" name="GL_DOT2_ADD_ATI"/>
+ <enum value="0x896D" name="GL_SECONDARY_INTERPOLATOR_ATI"/>
+ <enum value="0x896E" name="GL_NUM_FRAGMENT_REGISTERS_ATI"/>
+ <enum value="0x896F" name="GL_NUM_FRAGMENT_CONSTANTS_ATI"/>
+ <enum value="0x8970" name="GL_NUM_PASSES_ATI"/>
+ <enum value="0x8971" name="GL_NUM_INSTRUCTIONS_PER_PASS_ATI"/>
+ <enum value="0x8972" name="GL_NUM_INSTRUCTIONS_TOTAL_ATI"/>
+ <enum value="0x8973" name="GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI"/>
+ <enum value="0x8974" name="GL_NUM_LOOPBACK_COMPONENTS_ATI"/>
+ <enum value="0x8975" name="GL_COLOR_ALPHA_PAIRING_ATI"/>
+ <enum value="0x8976" name="GL_SWIZZLE_STR_ATI"/>
+ <enum value="0x8977" name="GL_SWIZZLE_STQ_ATI"/>
+ <enum value="0x8978" name="GL_SWIZZLE_STR_DR_ATI"/>
+ <enum value="0x8979" name="GL_SWIZZLE_STQ_DQ_ATI"/>
+ <enum value="0x897A" name="GL_SWIZZLE_STRQ_ATI"/>
+ <enum value="0x897B" name="GL_SWIZZLE_STRQ_DQ_ATI"/>
+ <unused start="0x897C" end="0x897F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8980" end="0x898F" vendor="OML">
+ <enum value="0x8980" name="GL_INTERLACE_OML"/>
+ <enum value="0x8981" name="GL_INTERLACE_READ_OML"/>
+ <enum value="0x8982" name="GL_FORMAT_SUBSAMPLE_24_24_OML"/>
+ <enum value="0x8983" name="GL_FORMAT_SUBSAMPLE_244_244_OML"/>
+ <enum value="0x8984" name="GL_PACK_RESAMPLE_OML"/>
+ <enum value="0x8985" name="GL_UNPACK_RESAMPLE_OML"/>
+ <enum value="0x8986" name="GL_RESAMPLE_REPLICATE_OML"/>
+ <enum value="0x8987" name="GL_RESAMPLE_ZERO_FILL_OML"/>
+ <enum value="0x8988" name="GL_RESAMPLE_AVERAGE_OML"/>
+ <enum value="0x8989" name="GL_RESAMPLE_DECIMATE_OML"/>
+ <enum value="0x898A" name="GL_POINT_SIZE_ARRAY_TYPE_OES"/>
+ <enum value="0x898B" name="GL_POINT_SIZE_ARRAY_STRIDE_OES"/>
+ <enum value="0x898C" name="GL_POINT_SIZE_ARRAY_POINTER_OES"/>
+ <enum value="0x898D" name="GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES"/>
+ <enum value="0x898E" name="GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES"/>
+ <enum value="0x898F" name="GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8990" end="0x899F" vendor="ZiiLabs"/>
+
+ <enums namespace="GL" start="0x89A0" end="0x89FF" vendor="Matrox"/>
+
+ <enums namespace="GL" start="0x8A00" end="0x8A7F" vendor="APPLE">
+ <enum value="0x8A00" name="GL_VERTEX_ATTRIB_MAP1_APPLE"/>
+ <enum value="0x8A01" name="GL_VERTEX_ATTRIB_MAP2_APPLE"/>
+ <enum value="0x8A02" name="GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE"/>
+ <enum value="0x8A03" name="GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE"/>
+ <enum value="0x8A04" name="GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE"/>
+ <enum value="0x8A05" name="GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE"/>
+ <enum value="0x8A06" name="GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE"/>
+ <enum value="0x8A07" name="GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE"/>
+ <enum value="0x8A08" name="GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE"/>
+ <enum value="0x8A09" name="GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE"/>
+ <enum value="0x8A0A" name="GL_DRAW_PIXELS_APPLE"/>
+ <enum value="0x8A0B" name="GL_FENCE_APPLE"/>
+ <enum value="0x8A0C" name="GL_ELEMENT_ARRAY_APPLE"/>
+ <enum value="0x8A0D" name="GL_ELEMENT_ARRAY_TYPE_APPLE"/>
+ <enum value="0x8A0E" name="GL_ELEMENT_ARRAY_POINTER_APPLE"/>
+ <enum value="0x8A0F" name="GL_COLOR_FLOAT_APPLE"/>
+ <unused start="0x8A10" comment="Unknown extension (Khronos bug 632)"/>
+ <!-- <enum value="0x8A10" name="GL_MIN_PBUFFER_VIEWPORT_DIMS_APPLE"/> -->
+ <enum value="0x8A11" name="GL_UNIFORM_BUFFER"/>
+ <enum value="0x8A12" name="GL_BUFFER_SERIALIZED_MODIFY_APPLE"/>
+ <enum value="0x8A13" name="GL_BUFFER_FLUSHING_UNMAP_APPLE"/>
+ <enum value="0x8A14" name="GL_AUX_DEPTH_STENCIL_APPLE"/>
+ <enum value="0x8A15" name="GL_PACK_ROW_BYTES_APPLE"/>
+ <enum value="0x8A16" name="GL_UNPACK_ROW_BYTES_APPLE"/>
+ <unused start="0x8A17" end="0x8A18"/>
+ <enum value="0x8A19" name="GL_RELEASED_APPLE"/>
+ <enum value="0x8A1A" name="GL_VOLATILE_APPLE"/>
+ <enum value="0x8A1B" name="GL_RETAINED_APPLE"/>
+ <enum value="0x8A1C" name="GL_UNDEFINED_APPLE"/>
+ <enum value="0x8A1D" name="GL_PURGEABLE_APPLE"/>
+ <unused start="0x8A1E"/>
+ <enum value="0x8A1F" name="GL_RGB_422_APPLE"/>
+ <unused start="0x8A20" end="0x8A27"/>
+ <enum value="0x8A28" name="GL_UNIFORM_BUFFER_BINDING"/>
+ <enum value="0x8A29" name="GL_UNIFORM_BUFFER_START"/>
+ <enum value="0x8A2A" name="GL_UNIFORM_BUFFER_SIZE"/>
+ <enum value="0x8A2B" name="GL_MAX_VERTEX_UNIFORM_BLOCKS"/>
+ <enum value="0x8A2C" name="GL_MAX_GEOMETRY_UNIFORM_BLOCKS"/>
+ <enum value="0x8A2D" name="GL_MAX_FRAGMENT_UNIFORM_BLOCKS"/>
+ <enum value="0x8A2E" name="GL_MAX_COMBINED_UNIFORM_BLOCKS"/>
+ <enum value="0x8A2F" name="GL_MAX_UNIFORM_BUFFER_BINDINGS"/>
+ <enum value="0x8A30" name="GL_MAX_UNIFORM_BLOCK_SIZE"/>
+ <enum value="0x8A31" name="GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS"/>
+ <enum value="0x8A32" name="GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS"/>
+ <enum value="0x8A33" name="GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS"/>
+ <enum value="0x8A34" name="GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT"/>
+ <enum value="0x8A35" name="GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH"/>
+ <enum value="0x8A36" name="GL_ACTIVE_UNIFORM_BLOCKS"/>
+ <enum value="0x8A37" name="GL_UNIFORM_TYPE"/>
+ <enum value="0x8A38" name="GL_UNIFORM_SIZE"/>
+ <enum value="0x8A39" name="GL_UNIFORM_NAME_LENGTH"/>
+ <enum value="0x8A3A" name="GL_UNIFORM_BLOCK_INDEX"/>
+ <enum value="0x8A3B" name="GL_UNIFORM_OFFSET"/>
+ <enum value="0x8A3C" name="GL_UNIFORM_ARRAY_STRIDE"/>
+ <enum value="0x8A3D" name="GL_UNIFORM_MATRIX_STRIDE"/>
+ <enum value="0x8A3E" name="GL_UNIFORM_IS_ROW_MAJOR"/>
+ <enum value="0x8A3F" name="GL_UNIFORM_BLOCK_BINDING"/>
+ <enum value="0x8A40" name="GL_UNIFORM_BLOCK_DATA_SIZE"/>
+ <enum value="0x8A41" name="GL_UNIFORM_BLOCK_NAME_LENGTH"/>
+ <enum value="0x8A42" name="GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS"/>
+ <enum value="0x8A43" name="GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES"/>
+ <enum value="0x8A44" name="GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER"/>
+ <enum value="0x8A45" name="GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER"/>
+ <enum value="0x8A46" name="GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER"/>
+ <unused start="0x8A47"/>
+ <enum value="0x8A48" name="GL_TEXTURE_SRGB_DECODE_EXT"/>
+ <enum value="0x8A49" name="GL_DECODE_EXT"/>
+ <enum value="0x8A4A" name="GL_SKIP_DECODE_EXT"/>
+ <unused start="0x8A4B" end="0x8A4E"/>
+ <enum value="0x8A4F" name="GL_PROGRAM_PIPELINE_OBJECT_EXT"/>
+ <unused start="0x8A50" end="0x8A51"/>
+ <enum value="0x8A52" name="GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT"/>
+ <enum value="0x8A53" name="GL_SYNC_OBJECT_APPLE"/>
+ <unused start="0x8A54" end="0x8A7F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8A80" end="0x8AEF" vendor="Matrox"/>
+
+ <enums namespace="GL" start="0x8AF0" end="0x8B2F" vendor="Chromium" comment="For Brian Paul"/>
+
+ <enums namespace="GL" start="0x8B30" end="0x8B3F" group="ShaderType" vendor="ARB">
+ <enum value="0x8B30" name="GL_FRAGMENT_SHADER"/>
+ <enum value="0x8B30" name="GL_FRAGMENT_SHADER_ARB"/>
+ <enum value="0x8B31" name="GL_VERTEX_SHADER"/>
+ <enum value="0x8B31" name="GL_VERTEX_SHADER_ARB"/>
+ <unused start="0x8B32" end="0x8B3F" comment="For shader types"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8B40" end="0x8B47" group="ContainerType" vendor="ARB">
+ <enum value="0x8B40" name="GL_PROGRAM_OBJECT_ARB"/>
+ <enum value="0x8B40" name="GL_PROGRAM_OBJECT_EXT"/>
+ <unused start="0x8B41" end="0x8B47" comment="For container types"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8B48" end="0x8B4F" vendor="ARB">
+ <enum value="0x8B48" name="GL_SHADER_OBJECT_ARB"/>
+ <enum value="0x8B48" name="GL_SHADER_OBJECT_EXT"/>
+ <enum value="0x8B49" name="GL_MAX_FRAGMENT_UNIFORM_COMPONENTS"/>
+ <enum value="0x8B49" name="GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB"/>
+ <enum value="0x8B4A" name="GL_MAX_VERTEX_UNIFORM_COMPONENTS"/>
+ <enum value="0x8B4A" name="GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB"/>
+ <enum value="0x8B4B" name="GL_MAX_VARYING_FLOATS"/>
+ <enum value="0x8B4B" name="GL_MAX_VARYING_COMPONENTS" alias="MAX_VARYING_FLOATS"/>
+ <enum value="0x8B4B" name="GL_MAX_VARYING_COMPONENTS_EXT"/>
+ <enum value="0x8B4B" name="GL_MAX_VARYING_FLOATS_ARB"/>
+ <enum value="0x8B4C" name="GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS"/>
+ <enum value="0x8B4C" name="GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB"/>
+ <enum value="0x8B4D" name="GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS"/>
+ <enum value="0x8B4D" name="GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB"/>
+ <enum value="0x8B4E" name="GL_OBJECT_TYPE_ARB"/>
+ <enum value="0x8B4F" name="GL_SHADER_TYPE"/>
+ <enum value="0x8B4F" name="GL_OBJECT_SUBTYPE_ARB"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8B50" end="0x8B7F" group="AttributeType" vendor="ARB">
+ <enum value="0x8B50" name="GL_FLOAT_VEC2"/>
+ <enum value="0x8B50" name="GL_FLOAT_VEC2_ARB"/>
+ <enum value="0x8B51" name="GL_FLOAT_VEC3"/>
+ <enum value="0x8B51" name="GL_FLOAT_VEC3_ARB"/>
+ <enum value="0x8B52" name="GL_FLOAT_VEC4"/>
+ <enum value="0x8B52" name="GL_FLOAT_VEC4_ARB"/>
+ <enum value="0x8B53" name="GL_INT_VEC2"/>
+ <enum value="0x8B53" name="GL_INT_VEC2_ARB"/>
+ <enum value="0x8B54" name="GL_INT_VEC3"/>
+ <enum value="0x8B54" name="GL_INT_VEC3_ARB"/>
+ <enum value="0x8B55" name="GL_INT_VEC4"/>
+ <enum value="0x8B55" name="GL_INT_VEC4_ARB"/>
+ <enum value="0x8B56" name="GL_BOOL"/>
+ <enum value="0x8B56" name="GL_BOOL_ARB"/>
+ <enum value="0x8B57" name="GL_BOOL_VEC2"/>
+ <enum value="0x8B57" name="GL_BOOL_VEC2_ARB"/>
+ <enum value="0x8B58" name="GL_BOOL_VEC3"/>
+ <enum value="0x8B58" name="GL_BOOL_VEC3_ARB"/>
+ <enum value="0x8B59" name="GL_BOOL_VEC4"/>
+ <enum value="0x8B59" name="GL_BOOL_VEC4_ARB"/>
+ <enum value="0x8B5A" name="GL_FLOAT_MAT2"/>
+ <enum value="0x8B5A" name="GL_FLOAT_MAT2_ARB"/>
+ <enum value="0x8B5B" name="GL_FLOAT_MAT3"/>
+ <enum value="0x8B5B" name="GL_FLOAT_MAT3_ARB"/>
+ <enum value="0x8B5C" name="GL_FLOAT_MAT4"/>
+ <enum value="0x8B5C" name="GL_FLOAT_MAT4_ARB"/>
+ <enum value="0x8B5D" name="GL_SAMPLER_1D"/>
+ <enum value="0x8B5D" name="GL_SAMPLER_1D_ARB"/>
+ <enum value="0x8B5E" name="GL_SAMPLER_2D"/>
+ <enum value="0x8B5E" name="GL_SAMPLER_2D_ARB"/>
+ <enum value="0x8B5F" name="GL_SAMPLER_3D"/>
+ <enum value="0x8B5F" name="GL_SAMPLER_3D_ARB"/>
+ <enum value="0x8B5F" name="GL_SAMPLER_3D_OES"/>
+ <enum value="0x8B60" name="GL_SAMPLER_CUBE"/>
+ <enum value="0x8B60" name="GL_SAMPLER_CUBE_ARB"/>
+ <enum value="0x8B61" name="GL_SAMPLER_1D_SHADOW"/>
+ <enum value="0x8B61" name="GL_SAMPLER_1D_SHADOW_ARB"/>
+ <enum value="0x8B62" name="GL_SAMPLER_2D_SHADOW"/>
+ <enum value="0x8B62" name="GL_SAMPLER_2D_SHADOW_ARB"/>
+ <enum value="0x8B62" name="GL_SAMPLER_2D_SHADOW_EXT"/>
+ <enum value="0x8B63" name="GL_SAMPLER_2D_RECT"/>
+ <enum value="0x8B63" name="GL_SAMPLER_2D_RECT_ARB"/>
+ <enum value="0x8B64" name="GL_SAMPLER_2D_RECT_SHADOW"/>
+ <enum value="0x8B64" name="GL_SAMPLER_2D_RECT_SHADOW_ARB"/>
+ <enum value="0x8B65" name="GL_FLOAT_MAT2x3"/>
+ <enum value="0x8B66" name="GL_FLOAT_MAT2x4"/>
+ <enum value="0x8B67" name="GL_FLOAT_MAT3x2"/>
+ <enum value="0x8B68" name="GL_FLOAT_MAT3x4"/>
+ <enum value="0x8B69" name="GL_FLOAT_MAT4x2"/>
+ <enum value="0x8B6A" name="GL_FLOAT_MAT4x3"/>
+ <unused start="0x8B6B" end="0x8B7F" comment="For attribute types"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8B80" end="0x8B8F" vendor="ARB">
+ <enum value="0x8B80" name="GL_DELETE_STATUS"/>
+ <enum value="0x8B80" name="GL_OBJECT_DELETE_STATUS_ARB"/>
+ <enum value="0x8B81" name="GL_COMPILE_STATUS"/>
+ <enum value="0x8B81" name="GL_OBJECT_COMPILE_STATUS_ARB"/>
+ <enum value="0x8B82" name="GL_LINK_STATUS"/>
+ <enum value="0x8B82" name="GL_OBJECT_LINK_STATUS_ARB"/>
+ <enum value="0x8B83" name="GL_VALIDATE_STATUS"/>
+ <enum value="0x8B83" name="GL_OBJECT_VALIDATE_STATUS_ARB"/>
+ <enum value="0x8B84" name="GL_INFO_LOG_LENGTH"/>
+ <enum value="0x8B84" name="GL_OBJECT_INFO_LOG_LENGTH_ARB"/>
+ <enum value="0x8B85" name="GL_ATTACHED_SHADERS"/>
+ <enum value="0x8B85" name="GL_OBJECT_ATTACHED_OBJECTS_ARB"/>
+ <enum value="0x8B86" name="GL_ACTIVE_UNIFORMS"/>
+ <enum value="0x8B86" name="GL_OBJECT_ACTIVE_UNIFORMS_ARB"/>
+ <enum value="0x8B87" name="GL_ACTIVE_UNIFORM_MAX_LENGTH"/>
+ <enum value="0x8B87" name="GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB"/>
+ <enum value="0x8B88" name="GL_SHADER_SOURCE_LENGTH"/>
+ <enum value="0x8B88" name="GL_OBJECT_SHADER_SOURCE_LENGTH_ARB"/>
+ <enum value="0x8B89" name="GL_ACTIVE_ATTRIBUTES"/>
+ <enum value="0x8B89" name="GL_OBJECT_ACTIVE_ATTRIBUTES_ARB"/>
+ <enum value="0x8B8A" name="GL_ACTIVE_ATTRIBUTE_MAX_LENGTH"/>
+ <enum value="0x8B8A" name="GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB"/>
+ <enum value="0x8B8B" name="GL_FRAGMENT_SHADER_DERIVATIVE_HINT"/>
+ <enum value="0x8B8B" name="GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB"/>
+ <enum value="0x8B8B" name="GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES"/>
+ <enum value="0x8B8C" name="GL_SHADING_LANGUAGE_VERSION"/>
+ <enum value="0x8B8C" name="GL_SHADING_LANGUAGE_VERSION_ARB"/>
+ <enum value="0x8B8D" name="GL_CURRENT_PROGRAM"/>
+ <enum value="0x8B8D" api="gl" name="GL_ACTIVE_PROGRAM_EXT" alias="GL_CURRENT_PROGRAM" comment="For the OpenGL version of EXT_separate_shader_objects"/>
+ <unused start="0x8B8E" end="0x8B8F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8B90" end="0x8B9F" vendor="OES">
+ <enum value="0x8B90" name="GL_PALETTE4_RGB8_OES"/>
+ <enum value="0x8B91" name="GL_PALETTE4_RGBA8_OES"/>
+ <enum value="0x8B92" name="GL_PALETTE4_R5_G6_B5_OES"/>
+ <enum value="0x8B93" name="GL_PALETTE4_RGBA4_OES"/>
+ <enum value="0x8B94" name="GL_PALETTE4_RGB5_A1_OES"/>
+ <enum value="0x8B95" name="GL_PALETTE8_RGB8_OES"/>
+ <enum value="0x8B96" name="GL_PALETTE8_RGBA8_OES"/>
+ <enum value="0x8B97" name="GL_PALETTE8_R5_G6_B5_OES"/>
+ <enum value="0x8B98" name="GL_PALETTE8_RGBA4_OES"/>
+ <enum value="0x8B99" name="GL_PALETTE8_RGB5_A1_OES"/>
+ <enum value="0x8B9A" name="GL_IMPLEMENTATION_COLOR_READ_TYPE"/>
+ <enum value="0x8B9A" name="GL_IMPLEMENTATION_COLOR_READ_TYPE_OES"/>
+ <enum value="0x8B9B" name="GL_IMPLEMENTATION_COLOR_READ_FORMAT"/>
+ <enum value="0x8B9B" name="GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES"/>
+ <enum value="0x8B9C" name="GL_POINT_SIZE_ARRAY_OES"/>
+ <enum value="0x8B9D" name="GL_TEXTURE_CROP_RECT_OES"/>
+ <enum value="0x8B9E" name="GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES"/>
+ <enum value="0x8B9F" name="GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8BA0" end="0x8BAF" vendor="Seaweed"/>
+
+ <enums namespace="GL" start="0x8BB0" end="0x8BBF" vendor="MESA">
+ <enum value="0x8BB0" name="GL_FRAGMENT_PROGRAM_POSITION_MESA"/>
+ <enum value="0x8BB1" name="GL_FRAGMENT_PROGRAM_CALLBACK_MESA"/>
+ <enum value="0x8BB2" name="GL_FRAGMENT_PROGRAM_CALLBACK_FUNC_MESA"/>
+ <enum value="0x8BB3" name="GL_FRAGMENT_PROGRAM_CALLBACK_DATA_MESA"/>
+ <enum value="0x8BB4" name="GL_VERTEX_PROGRAM_CALLBACK_MESA"/>
+ <enum value="0x8BB4" name="GL_VERTEX_PROGRAM_POSITION_MESA" comment="Probably NOT an alias of GL_VERTEX_PROGRAM_CALLBACK_MESA. But spec is not complete anyway."/>
+ <unused start="0x88B5" comment="One of the 0x88B4 enums should probably have this value"/>
+ <enum value="0x8BB6" name="GL_VERTEX_PROGRAM_CALLBACK_FUNC_MESA"/>
+ <enum value="0x8BB7" name="GL_VERTEX_PROGRAM_CALLBACK_DATA_MESA"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8BC0" end="0x8BFF" vendor="AMD">
+ <enum value="0x8BC0" name="GL_COUNTER_TYPE_AMD"/>
+ <enum value="0x8BC1" name="GL_COUNTER_RANGE_AMD"/>
+ <enum value="0x8BC2" name="GL_UNSIGNED_INT64_AMD"/>
+ <enum value="0x8BC3" name="GL_PERCENTAGE_AMD"/>
+ <enum value="0x8BC4" name="GL_PERFMON_RESULT_AVAILABLE_AMD"/>
+ <enum value="0x8BC5" name="GL_PERFMON_RESULT_SIZE_AMD"/>
+ <enum value="0x8BC6" name="GL_PERFMON_RESULT_AMD"/>
+ <unused start="0x8BC7" end="0x8BD1"/>
+ <enum value="0x8BD2" name="GL_TEXTURE_WIDTH_QCOM"/>
+ <enum value="0x8BD3" name="GL_TEXTURE_HEIGHT_QCOM"/>
+ <enum value="0x8BD4" name="GL_TEXTURE_DEPTH_QCOM"/>
+ <enum value="0x8BD5" name="GL_TEXTURE_INTERNAL_FORMAT_QCOM"/>
+ <enum value="0x8BD6" name="GL_TEXTURE_FORMAT_QCOM"/>
+ <enum value="0x8BD7" name="GL_TEXTURE_TYPE_QCOM"/>
+ <enum value="0x8BD8" name="GL_TEXTURE_IMAGE_VALID_QCOM"/>
+ <enum value="0x8BD9" name="GL_TEXTURE_NUM_LEVELS_QCOM"/>
+ <enum value="0x8BDA" name="GL_TEXTURE_TARGET_QCOM"/>
+ <enum value="0x8BDB" name="GL_TEXTURE_OBJECT_VALID_QCOM"/>
+ <enum value="0x8BDC" name="GL_STATE_RESTORE"/>
+ <unused start="0x8BDD" end="0x8BFF"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8C00" end="0x8C0F" vendor="IMG">
+ <enum value="0x8C00" name="GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG"/>
+ <enum value="0x8C01" name="GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG"/>
+ <enum value="0x8C02" name="GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG"/>
+ <enum value="0x8C03" name="GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG"/>
+ <enum value="0x8C04" name="GL_MODULATE_COLOR_IMG"/>
+ <enum value="0x8C05" name="GL_RECIP_ADD_SIGNED_ALPHA_IMG"/>
+ <enum value="0x8C06" name="GL_TEXTURE_ALPHA_MODULATE_IMG"/>
+ <enum value="0x8C07" name="GL_FACTOR_ALPHA_MODULATE_IMG"/>
+ <enum value="0x8C08" name="GL_FRAGMENT_ALPHA_MODULATE_IMG"/>
+ <enum value="0x8C09" name="GL_ADD_BLEND_IMG"/>
+ <enum value="0x8C0A" name="GL_SGX_BINARY_IMG"/>
+ <unused start="0x8C0B" end="0x8C0F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8C10" end="0x8C8F" vendor="NV" comment="For Pat Brown">
+ <enum value="0x8C10" name="GL_TEXTURE_RED_TYPE"/>
+ <enum value="0x8C10" name="GL_TEXTURE_RED_TYPE_ARB"/>
+ <enum value="0x8C11" name="GL_TEXTURE_GREEN_TYPE"/>
+ <enum value="0x8C11" name="GL_TEXTURE_GREEN_TYPE_ARB"/>
+ <enum value="0x8C12" name="GL_TEXTURE_BLUE_TYPE"/>
+ <enum value="0x8C12" name="GL_TEXTURE_BLUE_TYPE_ARB"/>
+ <enum value="0x8C13" name="GL_TEXTURE_ALPHA_TYPE"/>
+ <enum value="0x8C13" name="GL_TEXTURE_ALPHA_TYPE_ARB"/>
+ <enum value="0x8C14" name="GL_TEXTURE_LUMINANCE_TYPE"/>
+ <enum value="0x8C14" name="GL_TEXTURE_LUMINANCE_TYPE_ARB"/>
+ <enum value="0x8C15" name="GL_TEXTURE_INTENSITY_TYPE"/>
+ <enum value="0x8C15" name="GL_TEXTURE_INTENSITY_TYPE_ARB"/>
+ <enum value="0x8C16" name="GL_TEXTURE_DEPTH_TYPE"/>
+ <enum value="0x8C16" name="GL_TEXTURE_DEPTH_TYPE_ARB"/>
+ <enum value="0x8C17" name="GL_UNSIGNED_NORMALIZED"/>
+ <enum value="0x8C17" name="GL_UNSIGNED_NORMALIZED_ARB"/>
+ <enum value="0x8C17" name="GL_UNSIGNED_NORMALIZED_EXT"/>
+ <enum value="0x8C18" name="GL_TEXTURE_1D_ARRAY"/>
+ <enum value="0x8C18" name="GL_TEXTURE_1D_ARRAY_EXT"/>
+ <enum value="0x8C19" name="GL_PROXY_TEXTURE_1D_ARRAY"/>
+ <enum value="0x8C19" name="GL_PROXY_TEXTURE_1D_ARRAY_EXT"/>
+ <enum value="0x8C1A" name="GL_TEXTURE_2D_ARRAY"/>
+ <enum value="0x8C1A" name="GL_TEXTURE_2D_ARRAY_EXT"/>
+ <enum value="0x8C1B" name="GL_PROXY_TEXTURE_2D_ARRAY"/>
+ <enum value="0x8C1B" name="GL_PROXY_TEXTURE_2D_ARRAY_EXT"/>
+ <enum value="0x8C1C" name="GL_TEXTURE_BINDING_1D_ARRAY"/>
+ <enum value="0x8C1C" name="GL_TEXTURE_BINDING_1D_ARRAY_EXT"/>
+ <enum value="0x8C1D" name="GL_TEXTURE_BINDING_2D_ARRAY"/>
+ <enum value="0x8C1D" name="GL_TEXTURE_BINDING_2D_ARRAY_EXT"/>
+ <unused start="0x8C1E" end="0x8C25"/>
+ <enum value="0x8C26" name="GL_GEOMETRY_PROGRAM_NV"/>
+ <enum value="0x8C27" name="GL_MAX_PROGRAM_OUTPUT_VERTICES_NV"/>
+ <enum value="0x8C28" name="GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV"/>
+ <enum value="0x8C29" name="GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS"/>
+ <enum value="0x8C29" name="GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB"/>
+ <enum value="0x8C29" name="GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT"/>
+ <enum value="0x8C2A" name="GL_TEXTURE_BUFFER"/>
+ <enum value="0x8C2A" name="GL_TEXTURE_BUFFER_ARB"/>
+ <enum value="0x8C2A" name="GL_TEXTURE_BUFFER_EXT"/>
+ <enum value="0x8C2B" name="GL_MAX_TEXTURE_BUFFER_SIZE"/>
+ <enum value="0x8C2B" name="GL_MAX_TEXTURE_BUFFER_SIZE_ARB"/>
+ <enum value="0x8C2B" name="GL_MAX_TEXTURE_BUFFER_SIZE_EXT"/>
+ <enum value="0x8C2C" name="GL_TEXTURE_BINDING_BUFFER"/>
+ <enum value="0x8C2C" name="GL_TEXTURE_BINDING_BUFFER_ARB"/>
+ <enum value="0x8C2C" name="GL_TEXTURE_BINDING_BUFFER_EXT"/>
+ <enum value="0x8C2D" name="GL_TEXTURE_BUFFER_DATA_STORE_BINDING"/>
+ <enum value="0x8C2D" name="GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB"/>
+ <enum value="0x8C2D" name="GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT"/>
+ <enum value="0x8C2E" name="GL_TEXTURE_BUFFER_FORMAT_ARB"/>
+ <enum value="0x8C2E" name="GL_TEXTURE_BUFFER_FORMAT_EXT"/>
+ <enum value="0x8C2F" name="GL_ANY_SAMPLES_PASSED"/>
+ <enum value="0x8C2F" name="GL_ANY_SAMPLES_PASSED_EXT"/>
+ <unused start="0x8C30" end="0x8C35"/>
+ <enum value="0x8C36" name="GL_SAMPLE_SHADING"/>
+ <enum value="0x8C36" name="GL_SAMPLE_SHADING_ARB"/>
+ <enum value="0x8C37" name="GL_MIN_SAMPLE_SHADING_VALUE"/>
+ <enum value="0x8C37" name="GL_MIN_SAMPLE_SHADING_VALUE_ARB"/>
+ <unused start="0x8C38" end="0x8C39"/>
+ <enum value="0x8C3A" name="GL_R11F_G11F_B10F"/>
+ <enum value="0x8C3A" name="GL_R11F_G11F_B10F_EXT"/>
+ <enum value="0x8C3B" name="GL_UNSIGNED_INT_10F_11F_11F_REV"/>
+ <enum value="0x8C3B" name="GL_UNSIGNED_INT_10F_11F_11F_REV_EXT"/>
+ <enum value="0x8C3C" name="GL_RGBA_SIGNED_COMPONENTS_EXT"/>
+ <enum value="0x8C3D" name="GL_RGB9_E5"/>
+ <enum value="0x8C3D" name="GL_RGB9_E5_EXT"/>
+ <enum value="0x8C3E" name="GL_UNSIGNED_INT_5_9_9_9_REV"/>
+ <enum value="0x8C3E" name="GL_UNSIGNED_INT_5_9_9_9_REV_EXT"/>
+ <enum value="0x8C3F" name="GL_TEXTURE_SHARED_SIZE"/>
+ <enum value="0x8C3F" name="GL_TEXTURE_SHARED_SIZE_EXT"/>
+ <enum value="0x8C40" name="GL_SRGB"/>
+ <enum value="0x8C40" name="GL_SRGB_EXT"/>
+ <enum value="0x8C41" name="GL_SRGB8"/>
+ <enum value="0x8C41" name="GL_SRGB8_EXT"/>
+ <enum value="0x8C41" name="GL_SRGB8_NV"/>
+ <enum value="0x8C42" name="GL_SRGB_ALPHA"/>
+ <enum value="0x8C42" name="GL_SRGB_ALPHA_EXT"/>
+ <enum value="0x8C43" name="GL_SRGB8_ALPHA8"/>
+ <enum value="0x8C43" name="GL_SRGB8_ALPHA8_EXT"/>
+ <enum value="0x8C44" name="GL_SLUMINANCE_ALPHA"/>
+ <enum value="0x8C44" name="GL_SLUMINANCE_ALPHA_EXT"/>
+ <enum value="0x8C44" name="GL_SLUMINANCE_ALPHA_NV"/>
+ <enum value="0x8C45" name="GL_SLUMINANCE8_ALPHA8"/>
+ <enum value="0x8C45" name="GL_SLUMINANCE8_ALPHA8_EXT"/>
+ <enum value="0x8C45" name="GL_SLUMINANCE8_ALPHA8_NV"/>
+ <enum value="0x8C46" name="GL_SLUMINANCE"/>
+ <enum value="0x8C46" name="GL_SLUMINANCE_EXT"/>
+ <enum value="0x8C46" name="GL_SLUMINANCE_NV"/>
+ <enum value="0x8C47" name="GL_SLUMINANCE8"/>
+ <enum value="0x8C47" name="GL_SLUMINANCE8_EXT"/>
+ <enum value="0x8C47" name="GL_SLUMINANCE8_NV"/>
+ <enum value="0x8C48" name="GL_COMPRESSED_SRGB"/>
+ <enum value="0x8C48" name="GL_COMPRESSED_SRGB_EXT"/>
+ <enum value="0x8C49" name="GL_COMPRESSED_SRGB_ALPHA"/>
+ <enum value="0x8C49" name="GL_COMPRESSED_SRGB_ALPHA_EXT"/>
+ <enum value="0x8C4A" name="GL_COMPRESSED_SLUMINANCE"/>
+ <enum value="0x8C4A" name="GL_COMPRESSED_SLUMINANCE_EXT"/>
+ <enum value="0x8C4B" name="GL_COMPRESSED_SLUMINANCE_ALPHA"/>
+ <enum value="0x8C4B" name="GL_COMPRESSED_SLUMINANCE_ALPHA_EXT"/>
+ <enum value="0x8C4C" name="GL_COMPRESSED_SRGB_S3TC_DXT1_EXT"/>
+ <enum value="0x8C4C" name="GL_COMPRESSED_SRGB_S3TC_DXT1_NV"/>
+ <enum value="0x8C4D" name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT"/>
+ <enum value="0x8C4D" name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV"/>
+ <enum value="0x8C4E" name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT"/>
+ <enum value="0x8C4E" name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV"/>
+ <enum value="0x8C4F" name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT"/>
+ <enum value="0x8C4F" name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV"/>
+ <unused start="0x8C50" end="0x8C6F"/>
+ <enum value="0x8C70" name="GL_COMPRESSED_LUMINANCE_LATC1_EXT"/>
+ <enum value="0x8C71" name="GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT"/>
+ <enum value="0x8C72" name="GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT"/>
+ <enum value="0x8C73" name="GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT"/>
+ <enum value="0x8C74" name="GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV"/>
+ <enum value="0x8C75" name="GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV"/>
+ <enum value="0x8C76" name="GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH"/>
+ <enum value="0x8C76" name="GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT"/>
+ <enum value="0x8C77" name="GL_BACK_PRIMARY_COLOR_NV"/>
+ <enum value="0x8C78" name="GL_BACK_SECONDARY_COLOR_NV"/>
+ <enum value="0x8C79" name="GL_TEXTURE_COORD_NV"/>
+ <enum value="0x8C7A" name="GL_CLIP_DISTANCE_NV"/>
+ <enum value="0x8C7B" name="GL_VERTEX_ID_NV"/>
+ <enum value="0x8C7C" name="GL_PRIMITIVE_ID_NV"/>
+ <enum value="0x8C7D" name="GL_GENERIC_ATTRIB_NV"/>
+ <enum value="0x8C7E" name="GL_TRANSFORM_FEEDBACK_ATTRIBS_NV"/>
+ <enum value="0x8C7F" name="GL_TRANSFORM_FEEDBACK_BUFFER_MODE"/>
+ <enum value="0x8C7F" name="GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT"/>
+ <enum value="0x8C7F" name="GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV"/>
+ <enum value="0x8C80" name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS"/>
+ <enum value="0x8C80" name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT"/>
+ <enum value="0x8C80" name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV"/>
+ <enum value="0x8C81" name="GL_ACTIVE_VARYINGS_NV"/>
+ <enum value="0x8C82" name="GL_ACTIVE_VARYING_MAX_LENGTH_NV"/>
+ <enum value="0x8C83" name="GL_TRANSFORM_FEEDBACK_VARYINGS"/>
+ <enum value="0x8C83" name="GL_TRANSFORM_FEEDBACK_VARYINGS_EXT"/>
+ <enum value="0x8C83" name="GL_TRANSFORM_FEEDBACK_VARYINGS_NV"/>
+ <enum value="0x8C84" name="GL_TRANSFORM_FEEDBACK_BUFFER_START"/>
+ <enum value="0x8C84" name="GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT"/>
+ <enum value="0x8C84" name="GL_TRANSFORM_FEEDBACK_BUFFER_START_NV"/>
+ <enum value="0x8C85" name="GL_TRANSFORM_FEEDBACK_BUFFER_SIZE"/>
+ <enum value="0x8C85" name="GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT"/>
+ <enum value="0x8C85" name="GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV"/>
+ <enum value="0x8C86" name="GL_TRANSFORM_FEEDBACK_RECORD_NV"/>
+ <enum value="0x8C87" name="GL_PRIMITIVES_GENERATED"/>
+ <enum value="0x8C87" name="GL_PRIMITIVES_GENERATED_EXT"/>
+ <enum value="0x8C87" name="GL_PRIMITIVES_GENERATED_NV"/>
+ <enum value="0x8C88" name="GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN"/>
+ <enum value="0x8C88" name="GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT"/>
+ <enum value="0x8C88" name="GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV"/>
+ <enum value="0x8C89" name="GL_RASTERIZER_DISCARD"/>
+ <enum value="0x8C89" name="GL_RASTERIZER_DISCARD_EXT"/>
+ <enum value="0x8C89" name="GL_RASTERIZER_DISCARD_NV"/>
+ <enum value="0x8C8A" name="GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS"/>
+ <enum value="0x8C8A" name="GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT"/>
+ <enum value="0x8C8A" name="GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV"/>
+ <enum value="0x8C8B" name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS"/>
+ <enum value="0x8C8B" name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT"/>
+ <enum value="0x8C8B" name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV"/>
+ <enum value="0x8C8C" name="GL_INTERLEAVED_ATTRIBS"/>
+ <enum value="0x8C8C" name="GL_INTERLEAVED_ATTRIBS_EXT"/>
+ <enum value="0x8C8C" name="GL_INTERLEAVED_ATTRIBS_NV"/>
+ <enum value="0x8C8D" name="GL_SEPARATE_ATTRIBS"/>
+ <enum value="0x8C8D" name="GL_SEPARATE_ATTRIBS_EXT"/>
+ <enum value="0x8C8D" name="GL_SEPARATE_ATTRIBS_NV"/>
+ <enum value="0x8C8E" name="GL_TRANSFORM_FEEDBACK_BUFFER"/>
+ <enum value="0x8C8E" name="GL_TRANSFORM_FEEDBACK_BUFFER_EXT"/>
+ <enum value="0x8C8E" name="GL_TRANSFORM_FEEDBACK_BUFFER_NV"/>
+ <enum value="0x8C8F" name="GL_TRANSFORM_FEEDBACK_BUFFER_BINDING"/>
+ <enum value="0x8C8F" name="GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT"/>
+ <enum value="0x8C8F" name="GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8C90" end="0x8C9F" vendor="QCOM" comment="For Affie Munshi, OpenGL ES extensions">
+ <!-- Reassigned from ATI to QCOM at time of
+ mobile/desktop split (bug 5874) -->
+ <unused start="0x8C90" end="0x8C91"/>
+ <enum value="0x8C92" name="GL_ATC_RGB_AMD"/>
+ <enum value="0x8C93" name="GL_ATC_RGBA_EXPLICIT_ALPHA_AMD"/>
+ <unused start="0x8C94" end="0x8C9F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8CA0" end="0x8CAF" vendor="ARB">
+ <enum value="0x8CA0" name="GL_POINT_SPRITE_COORD_ORIGIN"/>
+ <enum value="0x8CA1" name="GL_LOWER_LEFT"/>
+ <enum value="0x8CA2" name="GL_UPPER_LEFT"/>
+ <enum value="0x8CA3" name="GL_STENCIL_BACK_REF"/>
+ <enum value="0x8CA4" name="GL_STENCIL_BACK_VALUE_MASK"/>
+ <enum value="0x8CA5" name="GL_STENCIL_BACK_WRITEMASK"/>
+ <enum value="0x8CA6" name="GL_DRAW_FRAMEBUFFER_BINDING"/>
+ <enum value="0x8CA6" name="GL_DRAW_FRAMEBUFFER_BINDING_EXT"/>
+ <enum value="0x8CA6" name="GL_DRAW_FRAMEBUFFER_BINDING_NV"/>
+ <enum value="0x8CA6" name="GL_FRAMEBUFFER_BINDING"/>
+ <enum value="0x8CA6" name="GL_FRAMEBUFFER_BINDING_ANGLE"/>
+ <enum value="0x8CA6" name="GL_FRAMEBUFFER_BINDING_EXT"/>
+ <enum value="0x8CA6" name="GL_FRAMEBUFFER_BINDING_OES"/>
+ <enum value="0x8CA7" name="GL_RENDERBUFFER_BINDING"/>
+ <enum value="0x8CA7" name="GL_RENDERBUFFER_BINDING_ANGLE"/>
+ <enum value="0x8CA7" name="GL_RENDERBUFFER_BINDING_EXT"/>
+ <enum value="0x8CA7" name="GL_RENDERBUFFER_BINDING_OES"/>
+ <enum value="0x8CA8" name="GL_READ_FRAMEBUFFER"/>
+ <enum value="0x8CA8" name="GL_READ_FRAMEBUFFER_ANGLE"/>
+ <enum value="0x8CA8" name="GL_READ_FRAMEBUFFER_EXT"/>
+ <enum value="0x8CA8" name="GL_READ_FRAMEBUFFER_NV"/>
+ <enum value="0x8CA9" name="GL_DRAW_FRAMEBUFFER"/>
+ <enum value="0x8CA9" name="GL_DRAW_FRAMEBUFFER_ANGLE"/>
+ <enum value="0x8CA9" name="GL_DRAW_FRAMEBUFFER_EXT"/>
+ <enum value="0x8CA9" name="GL_DRAW_FRAMEBUFFER_NV"/>
+ <enum value="0x8CAA" name="GL_READ_FRAMEBUFFER_BINDING"/>
+ <enum value="0x8CAA" name="GL_READ_FRAMEBUFFER_BINDING_EXT"/>
+ <enum value="0x8CAA" name="GL_READ_FRAMEBUFFER_BINDING_NV"/>
+ <enum value="0x8CAB" name="GL_RENDERBUFFER_COVERAGE_SAMPLES_NV"/>
+ <enum value="0x8CAB" name="GL_RENDERBUFFER_SAMPLES"/>
+ <enum value="0x8CAB" name="GL_RENDERBUFFER_SAMPLES_ANGLE"/>
+ <enum value="0x8CAB" name="GL_RENDERBUFFER_SAMPLES_EXT"/>
+ <enum value="0x8CAB" name="GL_RENDERBUFFER_SAMPLES_NV"/>
+ <enum value="0x8CAC" name="GL_DEPTH_COMPONENT32F"/>
+ <enum value="0x8CAD" name="GL_DEPTH32F_STENCIL8"/>
+ <unused start="0x8CAE" end="0x8CAF"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8CB0" end="0x8CCF" vendor="ZiiLabs" comment="For Barthold Lichtenbelt 2004/12/1"/>
+
+ <enums namespace="GL" start="0x8CD0" end="0x8D5F" vendor="ARB" comment="Framebuffer object specification + headroom">
+ <enum value="0x8CD0" name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE"/>
+ <enum value="0x8CD0" name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT"/>
+ <enum value="0x8CD0" name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES"/>
+ <enum value="0x8CD1" name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME"/>
+ <enum value="0x8CD1" name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT"/>
+ <enum value="0x8CD1" name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES"/>
+ <enum value="0x8CD2" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL"/>
+ <enum value="0x8CD2" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT"/>
+ <enum value="0x8CD2" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES"/>
+ <enum value="0x8CD3" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE"/>
+ <enum value="0x8CD3" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT"/>
+ <enum value="0x8CD3" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES"/>
+ <enum value="0x8CD4" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT"/>
+ <enum value="0x8CD4" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES"/>
+ <enum value="0x8CD4" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER"/>
+ <enum value="0x8CD4" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT"/>
+ <enum value="0x8CD5" name="GL_FRAMEBUFFER_COMPLETE"/>
+ <enum value="0x8CD5" name="GL_FRAMEBUFFER_COMPLETE_EXT"/>
+ <enum value="0x8CD5" name="GL_FRAMEBUFFER_COMPLETE_OES"/>
+ <enum value="0x8CD6" name="GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT"/>
+ <enum value="0x8CD6" name="GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT"/>
+ <enum value="0x8CD6" name="GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES"/>
+ <enum value="0x8CD7" name="GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT"/>
+ <enum value="0x8CD7" name="GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT"/>
+ <enum value="0x8CD7" name="GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES"/>
+ <unused start="0x8CD8" comment="Removed 2005/09/26 in revision #117 of the FBO extension spec"/>
+ <!-- <enum value="0x8CD8" name="GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT"/> -->
+ <enum value="0x8CD9" name="GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS"/>
+ <enum value="0x8CD9" name="GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT"/>
+ <enum value="0x8CD9" name="GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES"/>
+ <enum value="0x8CDA" name="GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT"/>
+ <enum value="0x8CDA" name="GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES"/>
+ <enum value="0x8CDB" name="GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER"/>
+ <enum value="0x8CDB" name="GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT"/>
+ <enum value="0x8CDB" name="GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_OES"/>
+ <enum value="0x8CDC" name="GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER"/>
+ <enum value="0x8CDC" name="GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT"/>
+ <enum value="0x8CDC" name="GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_OES"/>
+ <enum value="0x8CDD" name="GL_FRAMEBUFFER_UNSUPPORTED"/>
+ <enum value="0x8CDD" name="GL_FRAMEBUFFER_UNSUPPORTED_EXT"/>
+ <enum value="0x8CDD" name="GL_FRAMEBUFFER_UNSUPPORTED_OES"/>
+ <unused start="0x8CDE" comment="Removed 2005/05/31 in revision #113 of the FBO extension spec"/>
+ <!-- <enum value="0x8CDE" name="GL_FRAMEBUFFER_STATUS_ERROR_EXT"/> -->
+ <enum value="0x8CDF" name="GL_MAX_COLOR_ATTACHMENTS"/>
+ <enum value="0x8CDF" name="GL_MAX_COLOR_ATTACHMENTS_EXT"/>
+ <enum value="0x8CDF" name="GL_MAX_COLOR_ATTACHMENTS_NV"/>
+ <enum value="0x8CE0" name="GL_COLOR_ATTACHMENT0"/>
+ <enum value="0x8CE0" name="GL_COLOR_ATTACHMENT0_EXT"/>
+ <enum value="0x8CE0" name="GL_COLOR_ATTACHMENT0_NV"/>
+ <enum value="0x8CE0" name="GL_COLOR_ATTACHMENT0_OES"/>
+ <enum value="0x8CE1" name="GL_COLOR_ATTACHMENT1"/>
+ <enum value="0x8CE1" name="GL_COLOR_ATTACHMENT1_EXT"/>
+ <enum value="0x8CE1" name="GL_COLOR_ATTACHMENT1_NV"/>
+ <enum value="0x8CE2" name="GL_COLOR_ATTACHMENT2"/>
+ <enum value="0x8CE2" name="GL_COLOR_ATTACHMENT2_EXT"/>
+ <enum value="0x8CE2" name="GL_COLOR_ATTACHMENT2_NV"/>
+ <enum value="0x8CE3" name="GL_COLOR_ATTACHMENT3"/>
+ <enum value="0x8CE3" name="GL_COLOR_ATTACHMENT3_EXT"/>
+ <enum value="0x8CE3" name="GL_COLOR_ATTACHMENT3_NV"/>
+ <enum value="0x8CE4" name="GL_COLOR_ATTACHMENT4"/>
+ <enum value="0x8CE4" name="GL_COLOR_ATTACHMENT4_EXT"/>
+ <enum value="0x8CE4" name="GL_COLOR_ATTACHMENT4_NV"/>
+ <enum value="0x8CE5" name="GL_COLOR_ATTACHMENT5"/>
+ <enum value="0x8CE5" name="GL_COLOR_ATTACHMENT5_EXT"/>
+ <enum value="0x8CE5" name="GL_COLOR_ATTACHMENT5_NV"/>
+ <enum value="0x8CE6" name="GL_COLOR_ATTACHMENT6"/>
+ <enum value="0x8CE6" name="GL_COLOR_ATTACHMENT6_EXT"/>
+ <enum value="0x8CE6" name="GL_COLOR_ATTACHMENT6_NV"/>
+ <enum value="0x8CE7" name="GL_COLOR_ATTACHMENT7"/>
+ <enum value="0x8CE7" name="GL_COLOR_ATTACHMENT7_EXT"/>
+ <enum value="0x8CE7" name="GL_COLOR_ATTACHMENT7_NV"/>
+ <enum value="0x8CE8" name="GL_COLOR_ATTACHMENT8"/>
+ <enum value="0x8CE8" name="GL_COLOR_ATTACHMENT8_EXT"/>
+ <enum value="0x8CE8" name="GL_COLOR_ATTACHMENT8_NV"/>
+ <enum value="0x8CE9" name="GL_COLOR_ATTACHMENT9"/>
+ <enum value="0x8CE9" name="GL_COLOR_ATTACHMENT9_EXT"/>
+ <enum value="0x8CE9" name="GL_COLOR_ATTACHMENT9_NV"/>
+ <enum value="0x8CEA" name="GL_COLOR_ATTACHMENT10"/>
+ <enum value="0x8CEA" name="GL_COLOR_ATTACHMENT10_EXT"/>
+ <enum value="0x8CEA" name="GL_COLOR_ATTACHMENT10_NV"/>
+ <enum value="0x8CEB" name="GL_COLOR_ATTACHMENT11"/>
+ <enum value="0x8CEB" name="GL_COLOR_ATTACHMENT11_EXT"/>
+ <enum value="0x8CEB" name="GL_COLOR_ATTACHMENT11_NV"/>
+ <enum value="0x8CEC" name="GL_COLOR_ATTACHMENT12"/>
+ <enum value="0x8CEC" name="GL_COLOR_ATTACHMENT12_EXT"/>
+ <enum value="0x8CEC" name="GL_COLOR_ATTACHMENT12_NV"/>
+ <enum value="0x8CED" name="GL_COLOR_ATTACHMENT13"/>
+ <enum value="0x8CED" name="GL_COLOR_ATTACHMENT13_EXT"/>
+ <enum value="0x8CED" name="GL_COLOR_ATTACHMENT13_NV"/>
+ <enum value="0x8CEE" name="GL_COLOR_ATTACHMENT14"/>
+ <enum value="0x8CEE" name="GL_COLOR_ATTACHMENT14_EXT"/>
+ <enum value="0x8CEE" name="GL_COLOR_ATTACHMENT14_NV"/>
+ <enum value="0x8CEF" name="GL_COLOR_ATTACHMENT15"/>
+ <enum value="0x8CEF" name="GL_COLOR_ATTACHMENT15_EXT"/>
+ <enum value="0x8CEF" name="GL_COLOR_ATTACHMENT15_NV"/>
+ <unused start="0x8CF0" end="0x8CFF" comment="For color attachments 16-31"/>
+ <enum value="0x8D00" name="GL_DEPTH_ATTACHMENT"/>
+ <enum value="0x8D00" name="GL_DEPTH_ATTACHMENT_EXT"/>
+ <enum value="0x8D00" name="GL_DEPTH_ATTACHMENT_OES"/>
+ <unused start="0x8D01" end="0x8D1F" comment="For depth attachments 16-31"/>
+ <enum value="0x8D20" name="GL_STENCIL_ATTACHMENT"/>
+ <enum value="0x8D20" name="GL_STENCIL_ATTACHMENT_EXT"/>
+ <enum value="0x8D20" name="GL_STENCIL_ATTACHMENT_OES"/>
+ <unused start="0x8D21" end="0x8D3F" comment="For stencil attachments 16-31"/>
+ <enum value="0x8D40" name="GL_FRAMEBUFFER"/>
+ <enum value="0x8D40" name="GL_FRAMEBUFFER_EXT"/>
+ <enum value="0x8D40" name="GL_FRAMEBUFFER_OES"/>
+ <enum value="0x8D41" name="GL_RENDERBUFFER"/>
+ <enum value="0x8D41" name="GL_RENDERBUFFER_EXT"/>
+ <enum value="0x8D41" name="GL_RENDERBUFFER_OES"/>
+ <enum value="0x8D42" name="GL_RENDERBUFFER_WIDTH"/>
+ <enum value="0x8D42" name="GL_RENDERBUFFER_WIDTH_EXT"/>
+ <enum value="0x8D42" name="GL_RENDERBUFFER_WIDTH_OES"/>
+ <enum value="0x8D43" name="GL_RENDERBUFFER_HEIGHT"/>
+ <enum value="0x8D43" name="GL_RENDERBUFFER_HEIGHT_EXT"/>
+ <enum value="0x8D43" name="GL_RENDERBUFFER_HEIGHT_OES"/>
+ <enum value="0x8D44" name="GL_RENDERBUFFER_INTERNAL_FORMAT"/>
+ <enum value="0x8D44" name="GL_RENDERBUFFER_INTERNAL_FORMAT_EXT"/>
+ <enum value="0x8D44" name="GL_RENDERBUFFER_INTERNAL_FORMAT_OES"/>
+ <unused start="0x8D45" comment="Was for GL_STENCIL_INDEX_EXT, but now use core STENCIL_INDEX instead"/>
+ <enum value="0x8D46" name="GL_STENCIL_INDEX1"/>
+ <enum value="0x8D46" name="GL_STENCIL_INDEX1_EXT"/>
+ <enum value="0x8D46" name="GL_STENCIL_INDEX1_OES"/>
+ <enum value="0x8D47" name="GL_STENCIL_INDEX4"/>
+ <enum value="0x8D47" name="GL_STENCIL_INDEX4_EXT"/>
+ <enum value="0x8D47" name="GL_STENCIL_INDEX4_OES"/>
+ <enum value="0x8D48" name="GL_STENCIL_INDEX8"/>
+ <enum value="0x8D48" name="GL_STENCIL_INDEX8_EXT"/>
+ <enum value="0x8D48" name="GL_STENCIL_INDEX8_OES"/>
+ <enum value="0x8D49" name="GL_STENCIL_INDEX16"/>
+ <enum value="0x8D49" name="GL_STENCIL_INDEX16_EXT"/>
+ <unused start="0x8D4A" end="0x8D4F" comment="For additional stencil formats"/>
+ <enum value="0x8D50" name="GL_RENDERBUFFER_RED_SIZE"/>
+ <enum value="0x8D50" name="GL_RENDERBUFFER_RED_SIZE_EXT"/>
+ <enum value="0x8D50" name="GL_RENDERBUFFER_RED_SIZE_OES"/>
+ <enum value="0x8D51" name="GL_RENDERBUFFER_GREEN_SIZE"/>
+ <enum value="0x8D51" name="GL_RENDERBUFFER_GREEN_SIZE_EXT"/>
+ <enum value="0x8D51" name="GL_RENDERBUFFER_GREEN_SIZE_OES"/>
+ <enum value="0x8D52" name="GL_RENDERBUFFER_BLUE_SIZE"/>
+ <enum value="0x8D52" name="GL_RENDERBUFFER_BLUE_SIZE_EXT"/>
+ <enum value="0x8D52" name="GL_RENDERBUFFER_BLUE_SIZE_OES"/>
+ <enum value="0x8D53" name="GL_RENDERBUFFER_ALPHA_SIZE"/>
+ <enum value="0x8D53" name="GL_RENDERBUFFER_ALPHA_SIZE_EXT"/>
+ <enum value="0x8D53" name="GL_RENDERBUFFER_ALPHA_SIZE_OES"/>
+ <enum value="0x8D54" name="GL_RENDERBUFFER_DEPTH_SIZE"/>
+ <enum value="0x8D54" name="GL_RENDERBUFFER_DEPTH_SIZE_EXT"/>
+ <enum value="0x8D54" name="GL_RENDERBUFFER_DEPTH_SIZE_OES"/>
+ <enum value="0x8D55" name="GL_RENDERBUFFER_STENCIL_SIZE"/>
+ <enum value="0x8D55" name="GL_RENDERBUFFER_STENCIL_SIZE_EXT"/>
+ <enum value="0x8D55" name="GL_RENDERBUFFER_STENCIL_SIZE_OES"/>
+ <enum value="0x8D56" name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE"/>
+ <enum value="0x8D56" name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE"/>
+ <enum value="0x8D56" name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT"/>
+ <enum value="0x8D56" name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV"/>
+ <enum value="0x8D57" name="GL_MAX_SAMPLES"/>
+ <enum value="0x8D57" name="GL_MAX_SAMPLES_ANGLE"/>
+ <enum value="0x8D57" name="GL_MAX_SAMPLES_EXT"/>
+ <enum value="0x8D57" name="GL_MAX_SAMPLES_NV"/>
+ <unused start="0x8D58" end="0x8D5F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8D60" end="0x8D6F" vendor="OES">
+ <enum value="0x8D60" name="GL_TEXTURE_GEN_STR_OES"/>
+ <enum value="0x8D61" name="GL_HALF_FLOAT_OES"/>
+ <enum value="0x8D62" name="GL_RGB565_OES"/>
+ <enum value="0x8D62" name="GL_RGB565"/>
+ <unused start="0x8D63" comment="Was GL_TEXTURE_IMMUTABLE_LEVELS in draft ES 3.0 spec"/>
+ <enum value="0x8D64" name="GL_ETC1_RGB8_OES"/>
+ <enum value="0x8D65" name="GL_TEXTURE_EXTERNAL_OES"/>
+ <enum value="0x8D66" name="GL_SAMPLER_EXTERNAL_OES"/>
+ <enum value="0x8D67" name="GL_TEXTURE_BINDING_EXTERNAL_OES"/>
+ <enum value="0x8D68" name="GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES"/>
+ <enum value="0x8D69" name="GL_PRIMITIVE_RESTART_FIXED_INDEX"/>
+ <enum value="0x8D6A" name="GL_ANY_SAMPLES_PASSED_CONSERVATIVE"/>
+ <enum value="0x8D6A" name="GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT"/>
+ <enum value="0x8D6B" name="GL_MAX_ELEMENT_INDEX"/>
+ <enum value="0x8D6C" name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT"/>
+ <unused start="0x8D6D" end="0x8D6F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8D70" end="0x8DEF" vendor="NV" comment="For Pat Brown 2005/10/13">
+ <enum value="0x8D70" name="GL_RGBA32UI"/>
+ <enum value="0x8D70" name="GL_RGBA32UI_EXT"/>
+ <enum value="0x8D71" name="GL_RGB32UI"/>
+ <enum value="0x8D71" name="GL_RGB32UI_EXT"/>
+ <enum value="0x8D72" name="GL_ALPHA32UI_EXT"/>
+ <enum value="0x8D73" name="GL_INTENSITY32UI_EXT"/>
+ <enum value="0x8D74" name="GL_LUMINANCE32UI_EXT"/>
+ <enum value="0x8D75" name="GL_LUMINANCE_ALPHA32UI_EXT"/>
+ <enum value="0x8D76" name="GL_RGBA16UI"/>
+ <enum value="0x8D76" name="GL_RGBA16UI_EXT"/>
+ <enum value="0x8D77" name="GL_RGB16UI"/>
+ <enum value="0x8D77" name="GL_RGB16UI_EXT"/>
+ <enum value="0x8D78" name="GL_ALPHA16UI_EXT"/>
+ <enum value="0x8D79" name="GL_INTENSITY16UI_EXT"/>
+ <enum value="0x8D7A" name="GL_LUMINANCE16UI_EXT"/>
+ <enum value="0x8D7B" name="GL_LUMINANCE_ALPHA16UI_EXT"/>
+ <enum value="0x8D7C" name="GL_RGBA8UI"/>
+ <enum value="0x8D7C" name="GL_RGBA8UI_EXT"/>
+ <enum value="0x8D7D" name="GL_RGB8UI"/>
+ <enum value="0x8D7D" name="GL_RGB8UI_EXT"/>
+ <enum value="0x8D7E" name="GL_ALPHA8UI_EXT"/>
+ <enum value="0x8D7F" name="GL_INTENSITY8UI_EXT"/>
+ <enum value="0x8D80" name="GL_LUMINANCE8UI_EXT"/>
+ <enum value="0x8D81" name="GL_LUMINANCE_ALPHA8UI_EXT"/>
+ <enum value="0x8D82" name="GL_RGBA32I"/>
+ <enum value="0x8D82" name="GL_RGBA32I_EXT"/>
+ <enum value="0x8D83" name="GL_RGB32I"/>
+ <enum value="0x8D83" name="GL_RGB32I_EXT"/>
+ <enum value="0x8D84" name="GL_ALPHA32I_EXT"/>
+ <enum value="0x8D85" name="GL_INTENSITY32I_EXT"/>
+ <enum value="0x8D86" name="GL_LUMINANCE32I_EXT"/>
+ <enum value="0x8D87" name="GL_LUMINANCE_ALPHA32I_EXT"/>
+ <enum value="0x8D88" name="GL_RGBA16I"/>
+ <enum value="0x8D88" name="GL_RGBA16I_EXT"/>
+ <enum value="0x8D89" name="GL_RGB16I"/>
+ <enum value="0x8D89" name="GL_RGB16I_EXT"/>
+ <enum value="0x8D8A" name="GL_ALPHA16I_EXT"/>
+ <enum value="0x8D8B" name="GL_INTENSITY16I_EXT"/>
+ <enum value="0x8D8C" name="GL_LUMINANCE16I_EXT"/>
+ <enum value="0x8D8D" name="GL_LUMINANCE_ALPHA16I_EXT"/>
+ <enum value="0x8D8E" name="GL_RGBA8I"/>
+ <enum value="0x8D8E" name="GL_RGBA8I_EXT"/>
+ <enum value="0x8D8F" name="GL_RGB8I"/>
+ <enum value="0x8D8F" name="GL_RGB8I_EXT"/>
+ <enum value="0x8D90" name="GL_ALPHA8I_EXT"/>
+ <enum value="0x8D91" name="GL_INTENSITY8I_EXT"/>
+ <enum value="0x8D92" name="GL_LUMINANCE8I_EXT"/>
+ <enum value="0x8D93" name="GL_LUMINANCE_ALPHA8I_EXT"/>
+ <enum value="0x8D94" name="GL_RED_INTEGER"/>
+ <enum value="0x8D94" name="GL_RED_INTEGER_EXT"/>
+ <enum value="0x8D95" name="GL_GREEN_INTEGER"/>
+ <enum value="0x8D95" name="GL_GREEN_INTEGER_EXT"/>
+ <enum value="0x8D96" name="GL_BLUE_INTEGER"/>
+ <enum value="0x8D96" name="GL_BLUE_INTEGER_EXT"/>
+ <enum value="0x8D97" name="GL_ALPHA_INTEGER"/>
+ <enum value="0x8D97" name="GL_ALPHA_INTEGER_EXT"/>
+ <enum value="0x8D98" name="GL_RGB_INTEGER"/>
+ <enum value="0x8D98" name="GL_RGB_INTEGER_EXT"/>
+ <enum value="0x8D99" name="GL_RGBA_INTEGER"/>
+ <enum value="0x8D99" name="GL_RGBA_INTEGER_EXT"/>
+ <enum value="0x8D9A" name="GL_BGR_INTEGER"/>
+ <enum value="0x8D9A" name="GL_BGR_INTEGER_EXT"/>
+ <enum value="0x8D9B" name="GL_BGRA_INTEGER"/>
+ <enum value="0x8D9B" name="GL_BGRA_INTEGER_EXT"/>
+ <enum value="0x8D9C" name="GL_LUMINANCE_INTEGER_EXT"/>
+ <enum value="0x8D9D" name="GL_LUMINANCE_ALPHA_INTEGER_EXT"/>
+ <enum value="0x8D9E" name="GL_RGBA_INTEGER_MODE_EXT"/>
+ <enum value="0x8D9F" name="GL_INT_2_10_10_10_REV"/>
+ <enum value="0x8DA0" name="GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV"/>
+ <enum value="0x8DA1" name="GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV"/>
+ <enum value="0x8DA2" name="GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV"/>
+ <enum value="0x8DA3" name="GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV"/>
+ <enum value="0x8DA4" name="GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV"/>
+ <enum value="0x8DA5" name="GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV"/>
+ <enum value="0x8DA6" name="GL_MAX_PROGRAM_GENERIC_RESULTS_NV"/>
+ <enum value="0x8DA7" name="GL_FRAMEBUFFER_ATTACHMENT_LAYERED"/>
+ <enum value="0x8DA7" name="GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB"/>
+ <enum value="0x8DA7" name="GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT"/>
+ <enum value="0x8DA8" name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS"/>
+ <enum value="0x8DA8" name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB"/>
+ <enum value="0x8DA8" name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT"/>
+ <enum value="0x8DA9" name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB"/>
+ <enum value="0x8DA9" name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT"/>
+ <!-- Also see the odd namespace "NVTransformFeedbackToken" above -->
+ <enum value="0x8DAA" name="GL_LAYER_NV"/>
+ <enum value="0x8DAB" name="GL_DEPTH_COMPONENT32F_NV"/>
+ <enum value="0x8DAC" name="GL_DEPTH32F_STENCIL8_NV"/>
+ <enum value="0x8DAD" name="GL_FLOAT_32_UNSIGNED_INT_24_8_REV"/>
+ <enum value="0x8DAD" name="GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV"/>
+ <enum value="0x8DAE" name="GL_SHADER_INCLUDE_ARB"/>
+ <enum value="0x8DAF" name="GL_DEPTH_BUFFER_FLOAT_MODE_NV"/>
+ <unused start="0x8DB0" end="0x8DB8"/>
+ <enum value="0x8DB9" name="GL_FRAMEBUFFER_SRGB"/>
+ <enum value="0x8DB9" name="GL_FRAMEBUFFER_SRGB_EXT"/>
+ <enum value="0x8DBA" name="GL_FRAMEBUFFER_SRGB_CAPABLE_EXT"/>
+ <enum value="0x8DBB" name="GL_COMPRESSED_RED_RGTC1"/>
+ <enum value="0x8DBB" name="GL_COMPRESSED_RED_RGTC1_EXT"/>
+ <enum value="0x8DBC" name="GL_COMPRESSED_SIGNED_RED_RGTC1"/>
+ <enum value="0x8DBC" name="GL_COMPRESSED_SIGNED_RED_RGTC1_EXT"/>
+ <enum value="0x8DBD" name="GL_COMPRESSED_RED_GREEN_RGTC2_EXT"/>
+ <enum value="0x8DBD" name="GL_COMPRESSED_RG_RGTC2"/>
+ <enum value="0x8DBE" name="GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT"/>
+ <enum value="0x8DBE" name="GL_COMPRESSED_SIGNED_RG_RGTC2"/>
+ <enum value="0x8DC0" name="GL_SAMPLER_1D_ARRAY"/>
+ <enum value="0x8DC0" name="GL_SAMPLER_1D_ARRAY_EXT"/>
+ <enum value="0x8DC1" name="GL_SAMPLER_2D_ARRAY"/>
+ <enum value="0x8DC1" name="GL_SAMPLER_2D_ARRAY_EXT"/>
+ <enum value="0x8DC2" name="GL_SAMPLER_BUFFER"/>
+ <enum value="0x8DC2" name="GL_SAMPLER_BUFFER_EXT"/>
+ <enum value="0x8DC3" name="GL_SAMPLER_1D_ARRAY_SHADOW"/>
+ <enum value="0x8DC3" name="GL_SAMPLER_1D_ARRAY_SHADOW_EXT"/>
+ <enum value="0x8DC4" name="GL_SAMPLER_2D_ARRAY_SHADOW"/>
+ <enum value="0x8DC4" name="GL_SAMPLER_2D_ARRAY_SHADOW_EXT"/>
+ <enum value="0x8DC4" name="GL_SAMPLER_2D_ARRAY_SHADOW_NV"/>
+ <enum value="0x8DC5" name="GL_SAMPLER_CUBE_SHADOW"/>
+ <enum value="0x8DC5" name="GL_SAMPLER_CUBE_SHADOW_EXT"/>
+ <enum value="0x8DC5" name="GL_SAMPLER_CUBE_SHADOW_NV"/>
+ <enum value="0x8DC6" name="GL_UNSIGNED_INT_VEC2"/>
+ <enum value="0x8DC6" name="GL_UNSIGNED_INT_VEC2_EXT"/>
+ <enum value="0x8DC7" name="GL_UNSIGNED_INT_VEC3"/>
+ <enum value="0x8DC7" name="GL_UNSIGNED_INT_VEC3_EXT"/>
+ <enum value="0x8DC8" name="GL_UNSIGNED_INT_VEC4"/>
+ <enum value="0x8DC8" name="GL_UNSIGNED_INT_VEC4_EXT"/>
+ <enum value="0x8DC9" name="GL_INT_SAMPLER_1D"/>
+ <enum value="0x8DC9" name="GL_INT_SAMPLER_1D_EXT"/>
+ <enum value="0x8DCA" name="GL_INT_SAMPLER_2D"/>
+ <enum value="0x8DCA" name="GL_INT_SAMPLER_2D_EXT"/>
+ <enum value="0x8DCB" name="GL_INT_SAMPLER_3D"/>
+ <enum value="0x8DCB" name="GL_INT_SAMPLER_3D_EXT"/>
+ <enum value="0x8DCC" name="GL_INT_SAMPLER_CUBE"/>
+ <enum value="0x8DCC" name="GL_INT_SAMPLER_CUBE_EXT"/>
+ <enum value="0x8DCD" name="GL_INT_SAMPLER_2D_RECT"/>
+ <enum value="0x8DCD" name="GL_INT_SAMPLER_2D_RECT_EXT"/>
+ <enum value="0x8DCE" name="GL_INT_SAMPLER_1D_ARRAY"/>
+ <enum value="0x8DCE" name="GL_INT_SAMPLER_1D_ARRAY_EXT"/>
+ <enum value="0x8DCF" name="GL_INT_SAMPLER_2D_ARRAY"/>
+ <enum value="0x8DCF" name="GL_INT_SAMPLER_2D_ARRAY_EXT"/>
+ <enum value="0x8DD0" name="GL_INT_SAMPLER_BUFFER"/>
+ <enum value="0x8DD0" name="GL_INT_SAMPLER_BUFFER_EXT"/>
+ <enum value="0x8DD1" name="GL_UNSIGNED_INT_SAMPLER_1D"/>
+ <enum value="0x8DD1" name="GL_UNSIGNED_INT_SAMPLER_1D_EXT"/>
+ <enum value="0x8DD2" name="GL_UNSIGNED_INT_SAMPLER_2D"/>
+ <enum value="0x8DD2" name="GL_UNSIGNED_INT_SAMPLER_2D_EXT"/>
+ <enum value="0x8DD3" name="GL_UNSIGNED_INT_SAMPLER_3D"/>
+ <enum value="0x8DD3" name="GL_UNSIGNED_INT_SAMPLER_3D_EXT"/>
+ <enum value="0x8DD4" name="GL_UNSIGNED_INT_SAMPLER_CUBE"/>
+ <enum value="0x8DD4" name="GL_UNSIGNED_INT_SAMPLER_CUBE_EXT"/>
+ <enum value="0x8DD5" name="GL_UNSIGNED_INT_SAMPLER_2D_RECT"/>
+ <enum value="0x8DD5" name="GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT"/>
+ <enum value="0x8DD6" name="GL_UNSIGNED_INT_SAMPLER_1D_ARRAY"/>
+ <enum value="0x8DD6" name="GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT"/>
+ <enum value="0x8DD7" name="GL_UNSIGNED_INT_SAMPLER_2D_ARRAY"/>
+ <enum value="0x8DD7" name="GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT"/>
+ <enum value="0x8DD8" name="GL_UNSIGNED_INT_SAMPLER_BUFFER"/>
+ <enum value="0x8DD8" name="GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT"/>
+ <enum value="0x8DD9" name="GL_GEOMETRY_SHADER"/>
+ <enum value="0x8DD9" name="GL_GEOMETRY_SHADER_ARB"/>
+ <enum value="0x8DD9" name="GL_GEOMETRY_SHADER_EXT"/>
+ <enum value="0x8DDA" name="GL_GEOMETRY_VERTICES_OUT_ARB"/>
+ <enum value="0x8DDA" name="GL_GEOMETRY_VERTICES_OUT_EXT"/>
+ <enum value="0x8DDB" name="GL_GEOMETRY_INPUT_TYPE_ARB"/>
+ <enum value="0x8DDB" name="GL_GEOMETRY_INPUT_TYPE_EXT"/>
+ <enum value="0x8DDC" name="GL_GEOMETRY_OUTPUT_TYPE_ARB"/>
+ <enum value="0x8DDC" name="GL_GEOMETRY_OUTPUT_TYPE_EXT"/>
+ <enum value="0x8DDD" name="GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB"/>
+ <enum value="0x8DDD" name="GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT"/>
+ <enum value="0x8DDE" name="GL_MAX_VERTEX_VARYING_COMPONENTS_ARB"/>
+ <enum value="0x8DDE" name="GL_MAX_VERTEX_VARYING_COMPONENTS_EXT"/>
+ <enum value="0x8DDF" name="GL_MAX_GEOMETRY_UNIFORM_COMPONENTS"/>
+ <enum value="0x8DDF" name="GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB"/>
+ <enum value="0x8DDF" name="GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT"/>
+ <enum value="0x8DE0" name="GL_MAX_GEOMETRY_OUTPUT_VERTICES"/>
+ <enum value="0x8DE0" name="GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB"/>
+ <enum value="0x8DE0" name="GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT"/>
+ <enum value="0x8DE1" name="GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS"/>
+ <enum value="0x8DE1" name="GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB"/>
+ <enum value="0x8DE1" name="GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT"/>
+ <enum value="0x8DE2" name="GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT"/>
+ <enum value="0x8DE3" name="GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT"/>
+ <enum value="0x8DE4" name="GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT"/>
+ <enum value="0x8DE5" name="GL_ACTIVE_SUBROUTINES"/>
+ <enum value="0x8DE6" name="GL_ACTIVE_SUBROUTINE_UNIFORMS"/>
+ <enum value="0x8DE7" name="GL_MAX_SUBROUTINES"/>
+ <enum value="0x8DE8" name="GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS"/>
+ <enum value="0x8DE9" name="GL_NAMED_STRING_LENGTH_ARB"/>
+ <enum value="0x8DEA" name="GL_NAMED_STRING_TYPE_ARB"/>
+ <unused start="0x8DEB" end="0x8DEC"/>
+ <enum value="0x8DED" name="GL_MAX_BINDABLE_UNIFORM_SIZE_EXT"/>
+ <enum value="0x8DEE" name="GL_UNIFORM_BUFFER_EXT"/>
+ <enum value="0x8DEF" name="GL_UNIFORM_BUFFER_BINDING_EXT"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8DF0" end="0x8E0F" vendor="OES">
+ <enum value="0x8DF0" name="GL_LOW_FLOAT"/>
+ <enum value="0x8DF1" name="GL_MEDIUM_FLOAT"/>
+ <enum value="0x8DF2" name="GL_HIGH_FLOAT"/>
+ <enum value="0x8DF3" name="GL_LOW_INT"/>
+ <enum value="0x8DF4" name="GL_MEDIUM_INT"/>
+ <enum value="0x8DF5" name="GL_HIGH_INT"/>
+ <enum value="0x8DF6" name="GL_UNSIGNED_INT_10_10_10_2_OES"/>
+ <enum value="0x8DF7" name="GL_INT_10_10_10_2_OES"/>
+ <enum value="0x8DF8" name="GL_SHADER_BINARY_FORMATS"/>
+ <enum value="0x8DF9" name="GL_NUM_SHADER_BINARY_FORMATS"/>
+ <enum value="0x8DFA" name="GL_SHADER_COMPILER"/>
+ <enum value="0x8DFB" name="GL_MAX_VERTEX_UNIFORM_VECTORS"/>
+ <enum value="0x8DFC" name="GL_MAX_VARYING_VECTORS"/>
+ <enum value="0x8DFD" name="GL_MAX_FRAGMENT_UNIFORM_VECTORS"/>
+ <unused start="0x8DFE" end="0x8E0F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8E10" end="0x8E8F" vendor="NV" comment="For Michael Gold 2006/08/07">
+ <enum value="0x8E10" name="GL_RENDERBUFFER_COLOR_SAMPLES_NV"/>
+ <enum value="0x8E11" name="GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV"/>
+ <enum value="0x8E12" name="GL_MULTISAMPLE_COVERAGE_MODES_NV"/>
+ <enum value="0x8E13" name="GL_QUERY_WAIT"/>
+ <enum value="0x8E13" name="GL_QUERY_WAIT_NV"/>
+ <enum value="0x8E14" name="GL_QUERY_NO_WAIT"/>
+ <enum value="0x8E14" name="GL_QUERY_NO_WAIT_NV"/>
+ <enum value="0x8E15" name="GL_QUERY_BY_REGION_WAIT"/>
+ <enum value="0x8E15" name="GL_QUERY_BY_REGION_WAIT_NV"/>
+ <enum value="0x8E16" name="GL_QUERY_BY_REGION_NO_WAIT"/>
+ <enum value="0x8E16" name="GL_QUERY_BY_REGION_NO_WAIT_NV"/>
+ <unused start="0x8E17" end="0x8E1D"/>
+ <enum value="0x8E1E" name="GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS"/>
+ <enum value="0x8E1F" name="GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS"/>
+ <enum value="0x8E20" name="GL_COLOR_SAMPLES_NV"/>
+ <unused start="0x8E21"/>
+ <enum value="0x8E22" name="GL_TRANSFORM_FEEDBACK"/>
+ <enum value="0x8E22" name="GL_TRANSFORM_FEEDBACK_NV"/>
+ <enum value="0x8E23" name="GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED"/>
+ <enum value="0x8E23" name="GL_TRANSFORM_FEEDBACK_PAUSED" alias="GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED"/>
+ <enum value="0x8E23" name="GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV"/>
+ <enum value="0x8E24" name="GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE"/>
+ <enum value="0x8E24" name="GL_TRANSFORM_FEEDBACK_ACTIVE" alias="GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE"/>
+ <enum value="0x8E24" name="GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV"/>
+ <enum value="0x8E25" name="GL_TRANSFORM_FEEDBACK_BINDING"/>
+ <enum value="0x8E25" name="GL_TRANSFORM_FEEDBACK_BINDING_NV"/>
+ <enum value="0x8E26" name="GL_FRAME_NV"/>
+ <enum value="0x8E27" name="GL_FIELDS_NV"/>
+ <enum value="0x8E28" name="GL_CURRENT_TIME_NV"/>
+ <enum value="0x8E28" name="GL_TIMESTAMP"/>
+ <enum value="0x8E28" name="GL_TIMESTAMP_EXT"/>
+ <enum value="0x8E29" name="GL_NUM_FILL_STREAMS_NV"/>
+ <enum value="0x8E2A" name="GL_PRESENT_TIME_NV"/>
+ <enum value="0x8E2B" name="GL_PRESENT_DURATION_NV"/>
+ <enum value="0x8E2C" name="GL_DEPTH_COMPONENT16_NONLINEAR_NV"/>
+ <enum value="0x8E2D" name="GL_PROGRAM_MATRIX_EXT"/>
+ <enum value="0x8E2E" name="GL_TRANSPOSE_PROGRAM_MATRIX_EXT"/>
+ <enum value="0x8E2F" name="GL_PROGRAM_MATRIX_STACK_DEPTH_EXT"/>
+ <unused start="0x8E30" end="0x8E41"/>
+ <enum value="0x8E42" name="GL_TEXTURE_SWIZZLE_R"/>
+ <enum value="0x8E42" name="GL_TEXTURE_SWIZZLE_R_EXT"/>
+ <enum value="0x8E43" name="GL_TEXTURE_SWIZZLE_G"/>
+ <enum value="0x8E43" name="GL_TEXTURE_SWIZZLE_G_EXT"/>
+ <enum value="0x8E44" name="GL_TEXTURE_SWIZZLE_B"/>
+ <enum value="0x8E44" name="GL_TEXTURE_SWIZZLE_B_EXT"/>
+ <enum value="0x8E45" name="GL_TEXTURE_SWIZZLE_A"/>
+ <enum value="0x8E45" name="GL_TEXTURE_SWIZZLE_A_EXT"/>
+ <enum value="0x8E46" name="GL_TEXTURE_SWIZZLE_RGBA"/>
+ <enum value="0x8E46" name="GL_TEXTURE_SWIZZLE_RGBA_EXT"/>
+ <enum value="0x8E47" name="GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS"/>
+ <enum value="0x8E48" name="GL_ACTIVE_SUBROUTINE_MAX_LENGTH"/>
+ <enum value="0x8E49" name="GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH"/>
+ <enum value="0x8E4A" name="GL_NUM_COMPATIBLE_SUBROUTINES"/>
+ <enum value="0x8E4B" name="GL_COMPATIBLE_SUBROUTINES"/>
+ <enum value="0x8E4C" name="GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION"/>
+ <enum value="0x8E4C" name="GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT"/>
+ <enum value="0x8E4D" name="GL_FIRST_VERTEX_CONVENTION"/>
+ <enum value="0x8E4D" name="GL_FIRST_VERTEX_CONVENTION_EXT"/>
+ <enum value="0x8E4E" name="GL_LAST_VERTEX_CONVENTION"/>
+ <enum value="0x8E4E" name="GL_LAST_VERTEX_CONVENTION_EXT"/>
+ <enum value="0x8E4F" name="GL_PROVOKING_VERTEX"/>
+ <enum value="0x8E4F" name="GL_PROVOKING_VERTEX_EXT"/>
+ <enum value="0x8E50" name="GL_SAMPLE_POSITION"/>
+ <enum value="0x8E50" name="GL_SAMPLE_POSITION_NV"/>
+ <enum value="0x8E51" name="GL_SAMPLE_MASK"/>
+ <enum value="0x8E51" name="GL_SAMPLE_MASK_NV"/>
+ <enum value="0x8E52" name="GL_SAMPLE_MASK_VALUE"/>
+ <enum value="0x8E52" name="GL_SAMPLE_MASK_VALUE_NV"/>
+ <enum value="0x8E53" name="GL_TEXTURE_BINDING_RENDERBUFFER_NV"/>
+ <enum value="0x8E54" name="GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV"/>
+ <enum value="0x8E55" name="GL_TEXTURE_RENDERBUFFER_NV"/>
+ <enum value="0x8E56" name="GL_SAMPLER_RENDERBUFFER_NV"/>
+ <enum value="0x8E57" name="GL_INT_SAMPLER_RENDERBUFFER_NV"/>
+ <enum value="0x8E58" name="GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV"/>
+ <enum value="0x8E59" name="GL_MAX_SAMPLE_MASK_WORDS"/>
+ <enum value="0x8E59" name="GL_MAX_SAMPLE_MASK_WORDS_NV"/>
+ <enum value="0x8E5A" name="GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV"/>
+ <enum value="0x8E5A" name="GL_MAX_GEOMETRY_SHADER_INVOCATIONS"/>
+ <enum value="0x8E5B" name="GL_MIN_FRAGMENT_INTERPOLATION_OFFSET"/>
+ <enum value="0x8E5B" name="GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV"/>
+ <enum value="0x8E5C" name="GL_MAX_FRAGMENT_INTERPOLATION_OFFSET"/>
+ <enum value="0x8E5C" name="GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV"/>
+ <enum value="0x8E5D" name="GL_FRAGMENT_INTERPOLATION_OFFSET_BITS"/>
+ <enum value="0x8E5D" name="GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV"/>
+ <enum value="0x8E5E" name="GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET"/>
+ <enum value="0x8E5E" name="GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB"/>
+ <enum value="0x8E5E" name="GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV"/>
+ <enum value="0x8E5F" name="GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET"/>
+ <enum value="0x8E5F" name="GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB"/>
+ <enum value="0x8E5F" name="GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV"/>
+ <unused start="0x8E60" end="0x8E6F"/>
+ <enum value="0x8E70" name="GL_MAX_TRANSFORM_FEEDBACK_BUFFERS"/>
+ <enum value="0x8E71" name="GL_MAX_VERTEX_STREAMS"/>
+ <enum value="0x8E72" name="GL_PATCH_VERTICES"/>
+ <enum value="0x8E73" name="GL_PATCH_DEFAULT_INNER_LEVEL"/>
+ <enum value="0x8E74" name="GL_PATCH_DEFAULT_OUTER_LEVEL"/>
+ <enum value="0x8E75" name="GL_TESS_CONTROL_OUTPUT_VERTICES"/>
+ <enum value="0x8E76" name="GL_TESS_GEN_MODE"/>
+ <enum value="0x8E77" name="GL_TESS_GEN_SPACING"/>
+ <enum value="0x8E78" name="GL_TESS_GEN_VERTEX_ORDER"/>
+ <enum value="0x8E79" name="GL_TESS_GEN_POINT_MODE"/>
+ <enum value="0x8E7A" name="GL_ISOLINES"/>
+ <enum value="0x8E7B" name="GL_FRACTIONAL_ODD"/>
+ <enum value="0x8E7C" name="GL_FRACTIONAL_EVEN"/>
+ <enum value="0x8E7D" name="GL_MAX_PATCH_VERTICES"/>
+ <enum value="0x8E7E" name="GL_MAX_TESS_GEN_LEVEL"/>
+ <enum value="0x8E7F" name="GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS"/>
+ <enum value="0x8E80" name="GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS"/>
+ <enum value="0x8E81" name="GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS"/>
+ <enum value="0x8E82" name="GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS"/>
+ <enum value="0x8E83" name="GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS"/>
+ <enum value="0x8E84" name="GL_MAX_TESS_PATCH_COMPONENTS"/>
+ <enum value="0x8E85" name="GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS"/>
+ <enum value="0x8E86" name="GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS"/>
+ <enum value="0x8E87" name="GL_TESS_EVALUATION_SHADER"/>
+ <enum value="0x8E88" name="GL_TESS_CONTROL_SHADER"/>
+ <enum value="0x8E89" name="GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS"/>
+ <enum value="0x8E8A" name="GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS"/>
+ <enum value="0x8E8C" name="GL_COMPRESSED_RGBA_BPTC_UNORM_ARB"/>
+ <enum value="0x8E8D" name="GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB"/>
+ <enum value="0x8E8E" name="GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB"/>
+ <enum value="0x8E8F" name="GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8E90" end="0x8E9F" vendor="QNX" comment="For QNX_texture_tiling, QNX_complex_polygon, QNX_stippled_lines (Khronos bug 696)">
+ <unused start="0x8E90" end="0x8E9F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8EA0" end="0x8EAF" vendor="IMG"/>
+
+ <enums namespace="GL" start="0x8EB0" end="0x8EBF" vendor="OES" comment="For Affie Munshi 2007/07/20"/>
+
+ <enums namespace="GL" start="0x8EC0" end="0x8ECF" vendor="Vincent"/>
+
+ <enums namespace="GL" start="0x8ED0" end="0x8F4F" vendor="NV" comment="For Pat Brown, Khronos bug 3191">
+ <enum value="0x8ED0" name="GL_COVERAGE_COMPONENT_NV"/>
+ <enum value="0x8ED1" name="GL_COVERAGE_COMPONENT4_NV"/>
+ <enum value="0x8ED2" name="GL_COVERAGE_ATTACHMENT_NV"/>
+ <enum value="0x8ED3" name="GL_COVERAGE_BUFFERS_NV"/>
+ <enum value="0x8ED4" name="GL_COVERAGE_SAMPLES_NV"/>
+ <enum value="0x8ED5" name="GL_COVERAGE_ALL_FRAGMENTS_NV"/>
+ <enum value="0x8ED6" name="GL_COVERAGE_EDGE_FRAGMENTS_NV"/>
+ <enum value="0x8ED7" name="GL_COVERAGE_AUTOMATIC_NV"/>
+ <unused start="0x8ED8" end="0x8F1C"/>
+ <enum value="0x8F1D" name="GL_BUFFER_GPU_ADDRESS_NV"/>
+ <enum value="0x8F1E" name="GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV"/>
+ <enum value="0x8F1F" name="GL_ELEMENT_ARRAY_UNIFIED_NV"/>
+ <enum value="0x8F20" name="GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV"/>
+ <enum value="0x8F21" name="GL_VERTEX_ARRAY_ADDRESS_NV"/>
+ <enum value="0x8F22" name="GL_NORMAL_ARRAY_ADDRESS_NV"/>
+ <enum value="0x8F23" name="GL_COLOR_ARRAY_ADDRESS_NV"/>
+ <enum value="0x8F24" name="GL_INDEX_ARRAY_ADDRESS_NV"/>
+ <enum value="0x8F25" name="GL_TEXTURE_COORD_ARRAY_ADDRESS_NV"/>
+ <enum value="0x8F26" name="GL_EDGE_FLAG_ARRAY_ADDRESS_NV"/>
+ <enum value="0x8F27" name="GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV"/>
+ <enum value="0x8F28" name="GL_FOG_COORD_ARRAY_ADDRESS_NV"/>
+ <enum value="0x8F29" name="GL_ELEMENT_ARRAY_ADDRESS_NV"/>
+ <enum value="0x8F2A" name="GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV"/>
+ <enum value="0x8F2B" name="GL_VERTEX_ARRAY_LENGTH_NV"/>
+ <enum value="0x8F2C" name="GL_NORMAL_ARRAY_LENGTH_NV"/>
+ <enum value="0x8F2D" name="GL_COLOR_ARRAY_LENGTH_NV"/>
+ <enum value="0x8F2E" name="GL_INDEX_ARRAY_LENGTH_NV"/>
+ <enum value="0x8F2F" name="GL_TEXTURE_COORD_ARRAY_LENGTH_NV"/>
+ <enum value="0x8F30" name="GL_EDGE_FLAG_ARRAY_LENGTH_NV"/>
+ <enum value="0x8F31" name="GL_SECONDARY_COLOR_ARRAY_LENGTH_NV"/>
+ <enum value="0x8F32" name="GL_FOG_COORD_ARRAY_LENGTH_NV"/>
+ <enum value="0x8F33" name="GL_ELEMENT_ARRAY_LENGTH_NV"/>
+ <enum value="0x8F34" name="GL_GPU_ADDRESS_NV"/>
+ <enum value="0x8F35" name="GL_MAX_SHADER_BUFFER_ADDRESS_NV"/>
+ <enum value="0x8F36" name="GL_COPY_READ_BUFFER"/>
+ <enum value="0x8F36" name="GL_COPY_READ_BUFFER_BINDING" alias="GL_COPY_READ_BUFFER"/>
+ <enum value="0x8F37" name="GL_COPY_WRITE_BUFFER"/>
+ <enum value="0x8F37" name="GL_COPY_WRITE_BUFFER_BINDING" alias="GL_COPY_WRITE_BUFFER"/>
+ <enum value="0x8F38" name="GL_MAX_IMAGE_UNITS"/>
+ <enum value="0x8F38" name="GL_MAX_IMAGE_UNITS_EXT"/>
+ <enum value="0x8F39" name="GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS"/>
+ <enum value="0x8F39" name="GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT"/>
+ <enum value="0x8F39" name="GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES" alias="GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS"/>
+ <enum value="0x8F3A" name="GL_IMAGE_BINDING_NAME"/>
+ <enum value="0x8F3A" name="GL_IMAGE_BINDING_NAME_EXT"/>
+ <enum value="0x8F3B" name="GL_IMAGE_BINDING_LEVEL"/>
+ <enum value="0x8F3B" name="GL_IMAGE_BINDING_LEVEL_EXT"/>
+ <enum value="0x8F3C" name="GL_IMAGE_BINDING_LAYERED"/>
+ <enum value="0x8F3C" name="GL_IMAGE_BINDING_LAYERED_EXT"/>
+ <enum value="0x8F3D" name="GL_IMAGE_BINDING_LAYER"/>
+ <enum value="0x8F3D" name="GL_IMAGE_BINDING_LAYER_EXT"/>
+ <enum value="0x8F3E" name="GL_IMAGE_BINDING_ACCESS"/>
+ <enum value="0x8F3E" name="GL_IMAGE_BINDING_ACCESS_EXT"/>
+ <enum value="0x8F3F" name="GL_DRAW_INDIRECT_BUFFER"/>
+ <enum value="0x8F40" name="GL_DRAW_INDIRECT_UNIFIED_NV"/>
+ <enum value="0x8F41" name="GL_DRAW_INDIRECT_ADDRESS_NV"/>
+ <enum value="0x8F42" name="GL_DRAW_INDIRECT_LENGTH_NV"/>
+ <enum value="0x8F43" name="GL_DRAW_INDIRECT_BUFFER_BINDING"/>
+ <enum value="0x8F44" name="GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV"/>
+ <enum value="0x8F45" name="GL_MAX_PROGRAM_SUBROUTINE_NUM_NV"/>
+ <enum value="0x8F46" name="GL_DOUBLE_MAT2"/>
+ <enum value="0x8F46" name="GL_DOUBLE_MAT2_EXT"/>
+ <enum value="0x8F47" name="GL_DOUBLE_MAT3"/>
+ <enum value="0x8F47" name="GL_DOUBLE_MAT3_EXT"/>
+ <enum value="0x8F48" name="GL_DOUBLE_MAT4"/>
+ <enum value="0x8F48" name="GL_DOUBLE_MAT4_EXT"/>
+ <enum value="0x8F49" name="GL_DOUBLE_MAT2x3"/>
+ <enum value="0x8F49" name="GL_DOUBLE_MAT2x3_EXT"/>
+ <enum value="0x8F4A" name="GL_DOUBLE_MAT2x4"/>
+ <enum value="0x8F4A" name="GL_DOUBLE_MAT2x4_EXT"/>
+ <enum value="0x8F4B" name="GL_DOUBLE_MAT3x2"/>
+ <enum value="0x8F4B" name="GL_DOUBLE_MAT3x2_EXT"/>
+ <enum value="0x8F4C" name="GL_DOUBLE_MAT3x4"/>
+ <enum value="0x8F4C" name="GL_DOUBLE_MAT3x4_EXT"/>
+ <enum value="0x8F4D" name="GL_DOUBLE_MAT4x2"/>
+ <enum value="0x8F4D" name="GL_DOUBLE_MAT4x2_EXT"/>
+ <enum value="0x8F4E" name="GL_DOUBLE_MAT4x3"/>
+ <enum value="0x8F4E" name="GL_DOUBLE_MAT4x3_EXT"/>
+ <unused start="0x8F4F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8F50" end="0x8F5F" vendor="ZiiLabs" comment="For Jon Kennedy, Khronos public bug 75"/>
+
+ <enums namespace="GL" start="0x8F60" end="0x8F6F" vendor="ARM" comment="For Remi Pedersen, Khronos bug 3745">
+ <enum value="0x8F60" name="GL_MALI_SHADER_BINARY_ARM"/>
+ <enum value="0x8F61" name="GL_MALI_PROGRAM_BINARY_ARM"/>
+ <unused start="0x8F62" end="0x8F6F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8F70" end="0x8F7F" vendor="HI" comment="For Mark Callow, Khronos bug 4055. Shared with EGL."/>
+
+ <enums namespace="GL" start="0x8F80" end="0x8F8F" vendor="Zebra" comment="For Mike Weiblen, public bug 910"/>
+
+ <enums namespace="GL" start="0x8F90" end="0x8F9F" vendor="ARB">
+ <enum value="0x8F90" name="GL_RED_SNORM"/>
+ <enum value="0x8F91" name="GL_RG_SNORM"/>
+ <enum value="0x8F92" name="GL_RGB_SNORM"/>
+ <enum value="0x8F93" name="GL_RGBA_SNORM"/>
+ <enum value="0x8F94" name="GL_R8_SNORM"/>
+ <enum value="0x8F95" name="GL_RG8_SNORM"/>
+ <enum value="0x8F96" name="GL_RGB8_SNORM"/>
+ <enum value="0x8F97" name="GL_RGBA8_SNORM"/>
+ <enum value="0x8F98" name="GL_R16_SNORM"/>
+ <enum value="0x8F99" name="GL_RG16_SNORM"/>
+ <enum value="0x8F9A" name="GL_RGB16_SNORM"/>
+ <enum value="0x8F9B" name="GL_RGBA16_SNORM"/>
+ <enum value="0x8F9C" name="GL_SIGNED_NORMALIZED"/>
+ <enum value="0x8F9D" name="GL_PRIMITIVE_RESTART"/>
+ <enum value="0x8F9E" name="GL_PRIMITIVE_RESTART_INDEX"/>
+ <enum value="0x8F9F" name="GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8FA0" end="0x8FBF" vendor="QCOM" comment="For Maurice Ribble, bug 4512">
+ <enum value="0x8FA0" name="GL_PERFMON_GLOBAL_MODE_QCOM"/>
+ <unused start="0x8FA1" end="0x8FAF"/>
+ <enum value="0x8FB0" name="GL_BINNING_CONTROL_HINT_QCOM"/>
+ <enum value="0x8FB1" name="GL_CPU_OPTIMIZED_QCOM"/>
+ <enum value="0x8FB2" name="GL_GPU_OPTIMIZED_QCOM"/>
+ <enum value="0x8FB3" name="GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM"/>
+ <unused start="0x8FB4" end="0x8FBA"/>
+ <enum value="0x8FBB" name="GL_GPU_DISJOINT_EXT"/>
+ <unused start="0x8FBC" end="0x8FBF"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8FC0" end="0x8FDF" vendor="VIV" comment="For Frido Garritsen, bug 4526">
+ <enum value="0x8FC4" name="GL_SHADER_BINARY_VIV"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8FE0" end="0x8FFF" vendor="NV" comment="For Pat Brown, bug 4935">
+ <enum value="0x8FE0" name="GL_INT8_NV"/>
+ <enum value="0x8FE1" name="GL_INT8_VEC2_NV"/>
+ <enum value="0x8FE2" name="GL_INT8_VEC3_NV"/>
+ <enum value="0x8FE3" name="GL_INT8_VEC4_NV"/>
+ <enum value="0x8FE4" name="GL_INT16_NV"/>
+ <enum value="0x8FE5" name="GL_INT16_VEC2_NV"/>
+ <enum value="0x8FE6" name="GL_INT16_VEC3_NV"/>
+ <enum value="0x8FE7" name="GL_INT16_VEC4_NV"/>
+ <enum value="0x8FE9" name="GL_INT64_VEC2_NV"/>
+ <enum value="0x8FEA" name="GL_INT64_VEC3_NV"/>
+ <enum value="0x8FEB" name="GL_INT64_VEC4_NV"/>
+ <enum value="0x8FEC" name="GL_UNSIGNED_INT8_NV"/>
+ <enum value="0x8FED" name="GL_UNSIGNED_INT8_VEC2_NV"/>
+ <enum value="0x8FEE" name="GL_UNSIGNED_INT8_VEC3_NV"/>
+ <enum value="0x8FEF" name="GL_UNSIGNED_INT8_VEC4_NV"/>
+ <enum value="0x8FF0" name="GL_UNSIGNED_INT16_NV"/>
+ <enum value="0x8FF1" name="GL_UNSIGNED_INT16_VEC2_NV"/>
+ <enum value="0x8FF2" name="GL_UNSIGNED_INT16_VEC3_NV"/>
+ <enum value="0x8FF3" name="GL_UNSIGNED_INT16_VEC4_NV"/>
+ <enum value="0x8FF5" name="GL_UNSIGNED_INT64_VEC2_NV"/>
+ <enum value="0x8FF6" name="GL_UNSIGNED_INT64_VEC3_NV"/>
+ <enum value="0x8FF7" name="GL_UNSIGNED_INT64_VEC4_NV"/>
+ <enum value="0x8FF8" name="GL_FLOAT16_NV"/>
+ <enum value="0x8FF9" name="GL_FLOAT16_VEC2_NV"/>
+ <enum value="0x8FFA" name="GL_FLOAT16_VEC3_NV"/>
+ <enum value="0x8FFB" name="GL_FLOAT16_VEC4_NV"/>
+ <enum value="0x8FFC" name="GL_DOUBLE_VEC2"/>
+ <enum value="0x8FFC" name="GL_DOUBLE_VEC2_EXT"/>
+ <enum value="0x8FFD" name="GL_DOUBLE_VEC3"/>
+ <enum value="0x8FFD" name="GL_DOUBLE_VEC3_EXT"/>
+ <enum value="0x8FFE" name="GL_DOUBLE_VEC4"/>
+ <enum value="0x8FFE" name="GL_DOUBLE_VEC4_EXT"/>
+ <unused start="0x8FFF"/>
+ </enums>
+
+ <enums namespace="GL" start="0x9000" end="0x901F" vendor="AMD" comment="For Bill Licea-Kane">
+ <enum value="0x9001" name="GL_SAMPLER_BUFFER_AMD"/>
+ <enum value="0x9002" name="GL_INT_SAMPLER_BUFFER_AMD"/>
+ <enum value="0x9003" name="GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD"/>
+ <enum value="0x9004" name="GL_TESSELLATION_MODE_AMD"/>
+ <enum value="0x9005" name="GL_TESSELLATION_FACTOR_AMD"/>
+ <enum value="0x9006" name="GL_DISCRETE_AMD"/>
+ <enum value="0x9007" name="GL_CONTINUOUS_AMD"/>
+ <unused start="0x9008"/>
+ <enum value="0x9009" name="GL_TEXTURE_CUBE_MAP_ARRAY"/>
+ <enum value="0x9009" name="GL_TEXTURE_CUBE_MAP_ARRAY_ARB"/>
+ <enum value="0x900A" name="GL_TEXTURE_BINDING_CUBE_MAP_ARRAY"/>
+ <enum value="0x900A" name="GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB"/>
+ <enum value="0x900B" name="GL_PROXY_TEXTURE_CUBE_MAP_ARRAY"/>
+ <enum value="0x900B" name="GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB"/>
+ <enum value="0x900C" name="GL_SAMPLER_CUBE_MAP_ARRAY"/>
+ <enum value="0x900C" name="GL_SAMPLER_CUBE_MAP_ARRAY_ARB"/>
+ <enum value="0x900D" name="GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW"/>
+ <enum value="0x900D" name="GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB"/>
+ <enum value="0x900E" name="GL_INT_SAMPLER_CUBE_MAP_ARRAY"/>
+ <enum value="0x900E" name="GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB"/>
+ <enum value="0x900F" name="GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY"/>
+ <enum value="0x900F" name="GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB"/>
+ <enum value="0x9010" name="GL_ALPHA_SNORM"/>
+ <enum value="0x9011" name="GL_LUMINANCE_SNORM"/>
+ <enum value="0x9012" name="GL_LUMINANCE_ALPHA_SNORM"/>
+ <enum value="0x9013" name="GL_INTENSITY_SNORM"/>
+ <enum value="0x9014" name="GL_ALPHA8_SNORM"/>
+ <enum value="0x9015" name="GL_LUMINANCE8_SNORM"/>
+ <enum value="0x9016" name="GL_LUMINANCE8_ALPHA8_SNORM"/>
+ <enum value="0x9017" name="GL_INTENSITY8_SNORM"/>
+ <enum value="0x9018" name="GL_ALPHA16_SNORM"/>
+ <enum value="0x9019" name="GL_LUMINANCE16_SNORM"/>
+ <enum value="0x901A" name="GL_LUMINANCE16_ALPHA16_SNORM"/>
+ <enum value="0x901B" name="GL_INTENSITY16_SNORM"/>
+ <enum value="0x901C" name="GL_FACTOR_MIN_AMD"/>
+ <enum value="0x901D" name="GL_FACTOR_MAX_AMD"/>
+ <enum value="0x901E" name="GL_DEPTH_CLAMP_NEAR_AMD"/>
+ <enum value="0x901F" name="GL_DEPTH_CLAMP_FAR_AMD"/>
+ </enums>
+
+ <enums namespace="GL" start="0x9020" end="0x90FF" vendor="NV" comment="For Pat Brown, bug 4935">
+ <enum value="0x9020" name="GL_VIDEO_BUFFER_NV"/>
+ <enum value="0x9021" name="GL_VIDEO_BUFFER_BINDING_NV"/>
+ <enum value="0x9022" name="GL_FIELD_UPPER_NV"/>
+ <enum value="0x9023" name="GL_FIELD_LOWER_NV"/>
+ <enum value="0x9024" name="GL_NUM_VIDEO_CAPTURE_STREAMS_NV"/>
+ <enum value="0x9025" name="GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV"/>
+ <enum value="0x9026" name="GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV"/>
+ <enum value="0x9027" name="GL_LAST_VIDEO_CAPTURE_STATUS_NV"/>
+ <enum value="0x9028" name="GL_VIDEO_BUFFER_PITCH_NV"/>
+ <enum value="0x9029" name="GL_VIDEO_COLOR_CONVERSION_MATRIX_NV"/>
+ <enum value="0x902A" name="GL_VIDEO_COLOR_CONVERSION_MAX_NV"/>
+ <enum value="0x902B" name="GL_VIDEO_COLOR_CONVERSION_MIN_NV"/>
+ <enum value="0x902C" name="GL_VIDEO_COLOR_CONVERSION_OFFSET_NV"/>
+ <enum value="0x902D" name="GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV"/>
+ <enum value="0x902E" name="GL_PARTIAL_SUCCESS_NV"/>
+ <enum value="0x902F" name="GL_SUCCESS_NV"/>
+ <enum value="0x9030" name="GL_FAILURE_NV"/>
+ <enum value="0x9031" name="GL_YCBYCR8_422_NV"/>
+ <enum value="0x9032" name="GL_YCBAYCR8A_4224_NV"/>
+ <enum value="0x9033" name="GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV"/>
+ <enum value="0x9034" name="GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV"/>
+ <enum value="0x9035" name="GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV"/>
+ <enum value="0x9036" name="GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV"/>
+ <enum value="0x9037" name="GL_Z4Y12Z4CB12Z4CR12_444_NV"/>
+ <enum value="0x9038" name="GL_VIDEO_CAPTURE_FRAME_WIDTH_NV"/>
+ <enum value="0x9039" name="GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV"/>
+ <enum value="0x903A" name="GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV"/>
+ <enum value="0x903B" name="GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV"/>
+ <enum value="0x903C" name="GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV"/>
+ <unused start="0x903D" end="0x9044"/>
+ <enum value="0x9045" name="GL_TEXTURE_COVERAGE_SAMPLES_NV"/>
+ <enum value="0x9046" name="GL_TEXTURE_COLOR_SAMPLES_NV"/>
+ <unused start="0x9047" end="0x904B"/>
+ <enum value="0x904C" name="GL_IMAGE_1D"/>
+ <enum value="0x904C" name="GL_IMAGE_1D_EXT"/>
+ <enum value="0x904D" name="GL_IMAGE_2D"/>
+ <enum value="0x904D" name="GL_IMAGE_2D_EXT"/>
+ <enum value="0x904E" name="GL_IMAGE_3D"/>
+ <enum value="0x904E" name="GL_IMAGE_3D_EXT"/>
+ <enum value="0x904F" name="GL_IMAGE_2D_RECT"/>
+ <enum value="0x904F" name="GL_IMAGE_2D_RECT_EXT"/>
+ <enum value="0x9050" name="GL_IMAGE_CUBE"/>
+ <enum value="0x9050" name="GL_IMAGE_CUBE_EXT"/>
+ <enum value="0x9051" name="GL_IMAGE_BUFFER"/>
+ <enum value="0x9051" name="GL_IMAGE_BUFFER_EXT"/>
+ <enum value="0x9052" name="GL_IMAGE_1D_ARRAY"/>
+ <enum value="0x9052" name="GL_IMAGE_1D_ARRAY_EXT"/>
+ <enum value="0x9053" name="GL_IMAGE_2D_ARRAY"/>
+ <enum value="0x9053" name="GL_IMAGE_2D_ARRAY_EXT"/>
+ <enum value="0x9054" name="GL_IMAGE_CUBE_MAP_ARRAY"/>
+ <enum value="0x9054" name="GL_IMAGE_CUBE_MAP_ARRAY_EXT"/>
+ <enum value="0x9055" name="GL_IMAGE_2D_MULTISAMPLE"/>
+ <enum value="0x9055" name="GL_IMAGE_2D_MULTISAMPLE_EXT"/>
+ <enum value="0x9056" name="GL_IMAGE_2D_MULTISAMPLE_ARRAY"/>
+ <enum value="0x9056" name="GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT"/>
+ <enum value="0x9057" name="GL_INT_IMAGE_1D"/>
+ <enum value="0x9057" name="GL_INT_IMAGE_1D_EXT"/>
+ <enum value="0x9058" name="GL_INT_IMAGE_2D"/>
+ <enum value="0x9058" name="GL_INT_IMAGE_2D_EXT"/>
+ <enum value="0x9059" name="GL_INT_IMAGE_3D"/>
+ <enum value="0x9059" name="GL_INT_IMAGE_3D_EXT"/>
+ <enum value="0x905A" name="GL_INT_IMAGE_2D_RECT"/>
+ <enum value="0x905A" name="GL_INT_IMAGE_2D_RECT_EXT"/>
+ <enum value="0x905B" name="GL_INT_IMAGE_CUBE"/>
+ <enum value="0x905B" name="GL_INT_IMAGE_CUBE_EXT"/>
+ <enum value="0x905C" name="GL_INT_IMAGE_BUFFER"/>
+ <enum value="0x905C" name="GL_INT_IMAGE_BUFFER_EXT"/>
+ <enum value="0x905D" name="GL_INT_IMAGE_1D_ARRAY"/>
+ <enum value="0x905D" name="GL_INT_IMAGE_1D_ARRAY_EXT"/>
+ <enum value="0x905E" name="GL_INT_IMAGE_2D_ARRAY"/>
+ <enum value="0x905E" name="GL_INT_IMAGE_2D_ARRAY_EXT"/>
+ <enum value="0x905F" name="GL_INT_IMAGE_CUBE_MAP_ARRAY"/>
+ <enum value="0x905F" name="GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT"/>
+ <enum value="0x9060" name="GL_INT_IMAGE_2D_MULTISAMPLE"/>
+ <enum value="0x9060" name="GL_INT_IMAGE_2D_MULTISAMPLE_EXT"/>
+ <enum value="0x9061" name="GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY"/>
+ <enum value="0x9061" name="GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT"/>
+ <enum value="0x9062" name="GL_UNSIGNED_INT_IMAGE_1D"/>
+ <enum value="0x9062" name="GL_UNSIGNED_INT_IMAGE_1D_EXT"/>
+ <enum value="0x9063" name="GL_UNSIGNED_INT_IMAGE_2D"/>
+ <enum value="0x9063" name="GL_UNSIGNED_INT_IMAGE_2D_EXT"/>
+ <enum value="0x9064" name="GL_UNSIGNED_INT_IMAGE_3D"/>
+ <enum value="0x9064" name="GL_UNSIGNED_INT_IMAGE_3D_EXT"/>
+ <enum value="0x9065" name="GL_UNSIGNED_INT_IMAGE_2D_RECT"/>
+ <enum value="0x9065" name="GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT"/>
+ <enum value="0x9066" name="GL_UNSIGNED_INT_IMAGE_CUBE"/>
+ <enum value="0x9066" name="GL_UNSIGNED_INT_IMAGE_CUBE_EXT"/>
+ <enum value="0x9067" name="GL_UNSIGNED_INT_IMAGE_BUFFER"/>
+ <enum value="0x9067" name="GL_UNSIGNED_INT_IMAGE_BUFFER_EXT"/>
+ <enum value="0x9068" name="GL_UNSIGNED_INT_IMAGE_1D_ARRAY"/>
+ <enum value="0x9068" name="GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT"/>
+ <enum value="0x9069" name="GL_UNSIGNED_INT_IMAGE_2D_ARRAY"/>
+ <enum value="0x9069" name="GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT"/>
+ <enum value="0x906A" name="GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY"/>
+ <enum value="0x906A" name="GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT"/>
+ <enum value="0x906B" name="GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE"/>
+ <enum value="0x906B" name="GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT"/>
+ <enum value="0x906C" name="GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY"/>
+ <enum value="0x906C" name="GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT"/>
+ <enum value="0x906D" name="GL_MAX_IMAGE_SAMPLES"/>
+ <enum value="0x906D" name="GL_MAX_IMAGE_SAMPLES_EXT"/>
+ <enum value="0x906E" name="GL_IMAGE_BINDING_FORMAT"/>
+ <enum value="0x906E" name="GL_IMAGE_BINDING_FORMAT_EXT"/>
+ <enum value="0x906F" name="GL_RGB10_A2UI"/>
+ <enum value="0x9070" name="GL_PATH_FORMAT_SVG_NV"/>
+ <enum value="0x9071" name="GL_PATH_FORMAT_PS_NV"/>
+ <enum value="0x9072" name="GL_STANDARD_FONT_NAME_NV"/>
+ <enum value="0x9073" name="GL_SYSTEM_FONT_NAME_NV"/>
+ <enum value="0x9074" name="GL_FILE_NAME_NV"/>
+ <enum value="0x9075" name="GL_PATH_STROKE_WIDTH_NV"/>
+ <enum value="0x9076" name="GL_PATH_END_CAPS_NV"/>
+ <enum value="0x9077" name="GL_PATH_INITIAL_END_CAP_NV"/>
+ <enum value="0x9078" name="GL_PATH_TERMINAL_END_CAP_NV"/>
+ <enum value="0x9079" name="GL_PATH_JOIN_STYLE_NV"/>
+ <enum value="0x907A" name="GL_PATH_MITER_LIMIT_NV"/>
+ <enum value="0x907B" name="GL_PATH_DASH_CAPS_NV"/>
+ <enum value="0x907C" name="GL_PATH_INITIAL_DASH_CAP_NV"/>
+ <enum value="0x907D" name="GL_PATH_TERMINAL_DASH_CAP_NV"/>
+ <enum value="0x907E" name="GL_PATH_DASH_OFFSET_NV"/>
+ <enum value="0x907F" name="GL_PATH_CLIENT_LENGTH_NV"/>
+ <enum value="0x9080" name="GL_PATH_FILL_MODE_NV"/>
+ <enum value="0x9081" name="GL_PATH_FILL_MASK_NV"/>
+ <enum value="0x9082" name="GL_PATH_FILL_COVER_MODE_NV"/>
+ <enum value="0x9083" name="GL_PATH_STROKE_COVER_MODE_NV"/>
+ <enum value="0x9084" name="GL_PATH_STROKE_MASK_NV"/>
+ <!-- <enum value="0x9085" name="GL_PATH_SAMPLE_QUALITY_NV" comment="Removed from extension"/> -->
+ <!-- <enum value="0x9086" name="GL_PATH_STROKE_BOUND_NV" comment="Removed from extension"/> -->
+ <!-- <enum value="0x9087" name="GL_PATH_STROKE_OVERSAMPLE_COUNT_NV" comment="Removed from extension"/> -->
+ <enum value="0x9088" name="GL_COUNT_UP_NV"/>
+ <enum value="0x9089" name="GL_COUNT_DOWN_NV"/>
+ <enum value="0x908A" name="GL_PATH_OBJECT_BOUNDING_BOX_NV"/>
+ <enum value="0x908B" name="GL_CONVEX_HULL_NV"/>
+ <!-- <enum value="0x908C" name="GL_MULTI_HULLS_NV" comment="Removed from extension"/> -->
+ <enum value="0x908D" name="GL_BOUNDING_BOX_NV"/>
+ <enum value="0x908E" name="GL_TRANSLATE_X_NV"/>
+ <enum value="0x908F" name="GL_TRANSLATE_Y_NV"/>
+ <enum value="0x9090" name="GL_TRANSLATE_2D_NV"/>
+ <enum value="0x9091" name="GL_TRANSLATE_3D_NV"/>
+ <enum value="0x9092" name="GL_AFFINE_2D_NV"/>
+ <!-- <enum value="0x9093" name="GL_PROJECTIVE_2D_NV" comment="Removed from extension"/> -->
+ <enum value="0x9094" name="GL_AFFINE_3D_NV"/>
+ <!-- <enum value="0x9095" name="GL_PROJECTIVE_3D_NV" comment="Removed from extension"/> -->
+ <enum value="0x9096" name="GL_TRANSPOSE_AFFINE_2D_NV"/>
+ <!-- <enum value="0x9097" name="GL_TRANSPOSE_PROJECTIVE_2D_NV" comment="Removed from extension"/> -->
+ <enum value="0x9098" name="GL_TRANSPOSE_AFFINE_3D_NV"/>
+ <!-- <enum value="0x9099" name="GL_TRANSPOSE_PROJECTIVE_3D_NV" comment="Removed from extension"/> -->
+ <enum value="0x909A" name="GL_UTF8_NV"/>
+ <enum value="0x909B" name="GL_UTF16_NV"/>
+ <enum value="0x909C" name="GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV"/>
+ <enum value="0x909D" name="GL_PATH_COMMAND_COUNT_NV"/>
+ <enum value="0x909E" name="GL_PATH_COORD_COUNT_NV"/>
+ <enum value="0x909F" name="GL_PATH_DASH_ARRAY_COUNT_NV"/>
+ <enum value="0x90A0" name="GL_PATH_COMPUTED_LENGTH_NV"/>
+ <enum value="0x90A1" name="GL_PATH_FILL_BOUNDING_BOX_NV"/>
+ <enum value="0x90A2" name="GL_PATH_STROKE_BOUNDING_BOX_NV"/>
+ <enum value="0x90A3" name="GL_SQUARE_NV"/>
+ <enum value="0x90A4" name="GL_ROUND_NV"/>
+ <enum value="0x90A5" name="GL_TRIANGULAR_NV"/>
+ <enum value="0x90A6" name="GL_BEVEL_NV"/>
+ <enum value="0x90A7" name="GL_MITER_REVERT_NV"/>
+ <enum value="0x90A8" name="GL_MITER_TRUNCATE_NV"/>
+ <enum value="0x90A9" name="GL_SKIP_MISSING_GLYPH_NV"/>
+ <enum value="0x90AA" name="GL_USE_MISSING_GLYPH_NV"/>
+ <enum value="0x90AB" name="GL_PATH_ERROR_POSITION_NV"/>
+ <enum value="0x90AC" name="GL_PATH_FOG_GEN_MODE_NV"/>
+ <enum value="0x90AD" name="GL_ACCUM_ADJACENT_PAIRS_NV"/>
+ <enum value="0x90AE" name="GL_ADJACENT_PAIRS_NV"/>
+ <enum value="0x90AF" name="GL_FIRST_TO_REST_NV"/>
+ <enum value="0x90B0" name="GL_PATH_GEN_MODE_NV"/>
+ <enum value="0x90B1" name="GL_PATH_GEN_COEFF_NV"/>
+ <enum value="0x90B2" name="GL_PATH_GEN_COLOR_FORMAT_NV"/>
+ <enum value="0x90B3" name="GL_PATH_GEN_COMPONENTS_NV"/>
+ <enum value="0x90B4" name="GL_PATH_DASH_OFFSET_RESET_NV"/>
+ <enum value="0x90B5" name="GL_MOVE_TO_RESETS_NV"/>
+ <enum value="0x90B6" name="GL_MOVE_TO_CONTINUES_NV"/>
+ <enum value="0x90B7" name="GL_PATH_STENCIL_FUNC_NV"/>
+ <enum value="0x90B8" name="GL_PATH_STENCIL_REF_NV"/>
+ <enum value="0x90B9" name="GL_PATH_STENCIL_VALUE_MASK_NV"/>
+ <enum value="0x90BA" name="GL_SCALED_RESOLVE_FASTEST_EXT"/>
+ <enum value="0x90BB" name="GL_SCALED_RESOLVE_NICEST_EXT"/>
+ <enum value="0x90BC" name="GL_MIN_MAP_BUFFER_ALIGNMENT"/>
+ <enum value="0x90BD" name="GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV"/>
+ <enum value="0x90BE" name="GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV"/>
+ <enum value="0x90BF" name="GL_PATH_COVER_DEPTH_FUNC_NV"/>
+ <unused start="0x90C0" end="0x90C6"/>
+ <enum value="0x90C7" name="GL_IMAGE_FORMAT_COMPATIBILITY_TYPE"/>
+ <enum value="0x90C8" name="GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE"/>
+ <enum value="0x90C9" name="GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS"/>
+ <enum value="0x90CA" name="GL_MAX_VERTEX_IMAGE_UNIFORMS"/>
+ <enum value="0x90CB" name="GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS"/>
+ <enum value="0x90CC" name="GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS"/>
+ <enum value="0x90CD" name="GL_MAX_GEOMETRY_IMAGE_UNIFORMS"/>
+ <enum value="0x90CE" name="GL_MAX_FRAGMENT_IMAGE_UNIFORMS"/>
+ <enum value="0x90CF" name="GL_MAX_COMBINED_IMAGE_UNIFORMS"/>
+ <enum value="0x90D0" name="GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV"/>
+ <enum value="0x90D1" name="GL_MAX_DEEP_3D_TEXTURE_DEPTH_NV"/>
+ <enum value="0x90D2" name="GL_SHADER_STORAGE_BUFFER"/>
+ <enum value="0x90D3" name="GL_SHADER_STORAGE_BUFFER_BINDING"/>
+ <enum value="0x90D4" name="GL_SHADER_STORAGE_BUFFER_START"/>
+ <enum value="0x90D5" name="GL_SHADER_STORAGE_BUFFER_SIZE"/>
+ <enum value="0x90D6" name="GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS"/>
+ <enum value="0x90D7" name="GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS"/>
+ <enum value="0x90D8" name="GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS"/>
+ <enum value="0x90D9" name="GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS"/>
+ <enum value="0x90DA" name="GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS"/>
+ <enum value="0x90DB" name="GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS"/>
+ <enum value="0x90DC" name="GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS"/>
+ <enum value="0x90DD" name="GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS"/>
+ <enum value="0x90DE" name="GL_MAX_SHADER_STORAGE_BLOCK_SIZE"/>
+ <enum value="0x90DF" name="GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT"/>
+ <unused start="0x90E0"/>
+ <enum value="0x90E1" name="GL_SYNC_X11_FENCE_EXT"/>
+ <unused start="0x90E2" end="0x90E9"/>
+ <enum value="0x90EA" name="GL_DEPTH_STENCIL_TEXTURE_MODE"/>
+ <enum value="0x90EB" name="GL_MAX_COMPUTE_LOCAL_INVOCATIONS"/>
+ <enum value="0x90EC" name="GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER"/>
+ <enum value="0x90ED" name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER"/>
+ <enum value="0x90EE" name="GL_DISPATCH_INDIRECT_BUFFER"/>
+ <enum value="0x90EF" name="GL_DISPATCH_INDIRECT_BUFFER_BINDING"/>
+ <enum value="0x90F0" name="GL_COLOR_ATTACHMENT_EXT"/>
+ <enum value="0x90F1" name="GL_MULTIVIEW_EXT"/>
+ <enum value="0x90F2" name="GL_MAX_MULTIVIEW_BUFFERS_EXT"/>
+ <unused start="0x90F3" end="0x90FA"/>
+ <enum value="0x90FB" name="GL_COMPUTE_PROGRAM_NV"/>
+ <enum value="0x90FC" name="GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV"/>
+ <unused start="0x90FD" end="0x90FF"/>
+ </enums>
+
+ <enums namespace="GL" start="0x9100" end="0x912F" vendor="ARB">
+ <enum value="0x9100" name="GL_TEXTURE_2D_MULTISAMPLE"/>
+ <enum value="0x9101" name="GL_PROXY_TEXTURE_2D_MULTISAMPLE"/>
+ <enum value="0x9102" name="GL_TEXTURE_2D_MULTISAMPLE_ARRAY"/>
+ <enum value="0x9103" name="GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY"/>
+ <enum value="0x9104" name="GL_TEXTURE_BINDING_2D_MULTISAMPLE"/>
+ <enum value="0x9105" name="GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY"/>
+ <enum value="0x9106" name="GL_TEXTURE_SAMPLES"/>
+ <enum value="0x9107" name="GL_TEXTURE_FIXED_SAMPLE_LOCATIONS"/>
+ <enum value="0x9108" name="GL_SAMPLER_2D_MULTISAMPLE"/>
+ <enum value="0x9109" name="GL_INT_SAMPLER_2D_MULTISAMPLE"/>
+ <enum value="0x910A" name="GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE"/>
+ <enum value="0x910B" name="GL_SAMPLER_2D_MULTISAMPLE_ARRAY"/>
+ <enum value="0x910C" name="GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY"/>
+ <enum value="0x910D" name="GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY"/>
+ <enum value="0x910E" name="GL_MAX_COLOR_TEXTURE_SAMPLES"/>
+ <enum value="0x910F" name="GL_MAX_DEPTH_TEXTURE_SAMPLES"/>
+ <enum value="0x9110" name="GL_MAX_INTEGER_SAMPLES"/>
+ <enum value="0x9111" name="GL_MAX_SERVER_WAIT_TIMEOUT"/>
+ <enum value="0x9111" name="GL_MAX_SERVER_WAIT_TIMEOUT_APPLE"/>
+ <enum value="0x9112" name="GL_OBJECT_TYPE"/>
+ <enum value="0x9112" name="GL_OBJECT_TYPE_APPLE"/>
+ <enum value="0x9113" name="GL_SYNC_CONDITION"/>
+ <enum value="0x9113" name="GL_SYNC_CONDITION_APPLE"/>
+ <enum value="0x9114" name="GL_SYNC_STATUS"/>
+ <enum value="0x9114" name="GL_SYNC_STATUS_APPLE"/>
+ <enum value="0x9115" name="GL_SYNC_FLAGS"/>
+ <enum value="0x9115" name="GL_SYNC_FLAGS_APPLE"/>
+ <enum value="0x9116" name="GL_SYNC_FENCE"/>
+ <enum value="0x9116" name="GL_SYNC_FENCE_APPLE"/>
+ <enum value="0x9117" name="GL_SYNC_GPU_COMMANDS_COMPLETE"/>
+ <enum value="0x9117" name="GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE"/>
+ <enum value="0x9118" name="GL_UNSIGNALED"/>
+ <enum value="0x9118" name="GL_UNSIGNALED_APPLE"/>
+ <enum value="0x9119" name="GL_SIGNALED"/>
+ <enum value="0x9119" name="GL_SIGNALED_APPLE"/>
+ <enum value="0x911A" name="GL_ALREADY_SIGNALED"/>
+ <enum value="0x911A" name="GL_ALREADY_SIGNALED_APPLE"/>
+ <enum value="0x911B" name="GL_TIMEOUT_EXPIRED"/>
+ <enum value="0x911B" name="GL_TIMEOUT_EXPIRED_APPLE"/>
+ <enum value="0x911C" name="GL_CONDITION_SATISFIED"/>
+ <enum value="0x911C" name="GL_CONDITION_SATISFIED_APPLE"/>
+ <enum value="0x911D" name="GL_WAIT_FAILED"/>
+ <enum value="0x911D" name="GL_WAIT_FAILED_APPLE"/>
+ <enum value="0x911F" name="GL_BUFFER_ACCESS_FLAGS"/>
+ <enum value="0x9120" name="GL_BUFFER_MAP_LENGTH"/>
+ <enum value="0x9121" name="GL_BUFFER_MAP_OFFSET"/>
+ <enum value="0x9122" name="GL_MAX_VERTEX_OUTPUT_COMPONENTS"/>
+ <enum value="0x9123" name="GL_MAX_GEOMETRY_INPUT_COMPONENTS"/>
+ <enum value="0x9124" name="GL_MAX_GEOMETRY_OUTPUT_COMPONENTS"/>
+ <enum value="0x9125" name="GL_MAX_FRAGMENT_INPUT_COMPONENTS"/>
+ <enum value="0x9126" name="GL_CONTEXT_PROFILE_MASK"/>
+ <enum value="0x9127" name="GL_UNPACK_COMPRESSED_BLOCK_WIDTH"/>
+ <enum value="0x9128" name="GL_UNPACK_COMPRESSED_BLOCK_HEIGHT"/>
+ <enum value="0x9129" name="GL_UNPACK_COMPRESSED_BLOCK_DEPTH"/>
+ <enum value="0x912A" name="GL_UNPACK_COMPRESSED_BLOCK_SIZE"/>
+ <enum value="0x912B" name="GL_PACK_COMPRESSED_BLOCK_WIDTH"/>
+ <enum value="0x912C" name="GL_PACK_COMPRESSED_BLOCK_HEIGHT"/>
+ <enum value="0x912D" name="GL_PACK_COMPRESSED_BLOCK_DEPTH"/>
+ <enum value="0x912E" name="GL_PACK_COMPRESSED_BLOCK_SIZE"/>
+ <enum value="0x912F" name="GL_TEXTURE_IMMUTABLE_FORMAT"/>
+ </enums>
+
+ <enums namespace="GL" start="0x9130" end="0x913F" vendor="IMG" comment="Khronos bug 882">
+ <enum value="0x9130" name="GL_SGX_PROGRAM_BINARY_IMG"/>
+ <unused start="0x9131" end="0x9132"/>
+ <enum value="0x9133" name="GL_RENDERBUFFER_SAMPLES_IMG"/>
+ <enum value="0x9134" name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG"/>
+ <enum value="0x9135" name="GL_MAX_SAMPLES_IMG"/>
+ <enum value="0x9136" name="GL_TEXTURE_SAMPLES_IMG"/>
+ <enum value="0x9137" name="GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG"/>
+ <enum value="0x9138" name="GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG"/>
+ <unused start="0x9139" end="0x913F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x9140" end="0x923F" vendor="AMD" comment="Khronos bugs 5899, 6004">
+ <unused start="0x9140" end="0x9142"/>
+ <enum value="0x9143" name="GL_MAX_DEBUG_MESSAGE_LENGTH"/>
+ <enum value="0x9143" name="GL_MAX_DEBUG_MESSAGE_LENGTH_AMD"/>
+ <enum value="0x9143" name="GL_MAX_DEBUG_MESSAGE_LENGTH_ARB"/>
+ <enum value="0x9143" name="GL_MAX_DEBUG_MESSAGE_LENGTH_KHR"/>
+ <enum value="0x9144" name="GL_MAX_DEBUG_LOGGED_MESSAGES"/>
+ <enum value="0x9144" name="GL_MAX_DEBUG_LOGGED_MESSAGES_AMD"/>
+ <enum value="0x9144" name="GL_MAX_DEBUG_LOGGED_MESSAGES_ARB"/>
+ <enum value="0x9144" name="GL_MAX_DEBUG_LOGGED_MESSAGES_KHR"/>
+ <enum value="0x9145" name="GL_DEBUG_LOGGED_MESSAGES"/>
+ <enum value="0x9145" name="GL_DEBUG_LOGGED_MESSAGES_AMD"/>
+ <enum value="0x9145" name="GL_DEBUG_LOGGED_MESSAGES_ARB"/>
+ <enum value="0x9145" name="GL_DEBUG_LOGGED_MESSAGES_KHR"/>
+ <enum value="0x9146" name="GL_DEBUG_SEVERITY_HIGH"/>
+ <enum value="0x9146" name="GL_DEBUG_SEVERITY_HIGH_AMD"/>
+ <enum value="0x9146" name="GL_DEBUG_SEVERITY_HIGH_ARB"/>
+ <enum value="0x9146" name="GL_DEBUG_SEVERITY_HIGH_KHR"/>
+ <enum value="0x9147" name="GL_DEBUG_SEVERITY_MEDIUM"/>
+ <enum value="0x9147" name="GL_DEBUG_SEVERITY_MEDIUM_AMD"/>
+ <enum value="0x9147" name="GL_DEBUG_SEVERITY_MEDIUM_ARB"/>
+ <enum value="0x9147" name="GL_DEBUG_SEVERITY_MEDIUM_KHR"/>
+ <enum value="0x9148" name="GL_DEBUG_SEVERITY_LOW"/>
+ <enum value="0x9148" name="GL_DEBUG_SEVERITY_LOW_AMD"/>
+ <enum value="0x9148" name="GL_DEBUG_SEVERITY_LOW_ARB"/>
+ <enum value="0x9148" name="GL_DEBUG_SEVERITY_LOW_KHR"/>
+ <enum value="0x9149" name="GL_DEBUG_CATEGORY_API_ERROR_AMD"/>
+ <enum value="0x914A" name="GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD"/>
+ <enum value="0x914B" name="GL_DEBUG_CATEGORY_DEPRECATION_AMD"/>
+ <enum value="0x914C" name="GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD"/>
+ <enum value="0x914D" name="GL_DEBUG_CATEGORY_PERFORMANCE_AMD"/>
+ <enum value="0x914E" name="GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD"/>
+ <enum value="0x914F" name="GL_DEBUG_CATEGORY_APPLICATION_AMD"/>
+ <enum value="0x9150" name="GL_DEBUG_CATEGORY_OTHER_AMD"/>
+ <enum value="0x9151" name="GL_BUFFER_OBJECT_EXT"/>
+ <enum value="0x9151" name="GL_DATA_BUFFER_AMD"/>
+ <enum value="0x9152" name="GL_PERFORMANCE_MONITOR_AMD"/>
+ <enum value="0x9153" name="GL_QUERY_OBJECT_AMD"/>
+ <enum value="0x9153" name="GL_QUERY_OBJECT_EXT"/>
+ <enum value="0x9154" name="GL_VERTEX_ARRAY_OBJECT_AMD"/>
+ <enum value="0x9154" name="GL_VERTEX_ARRAY_OBJECT_EXT"/>
+ <enum value="0x9155" name="GL_SAMPLER_OBJECT_AMD"/>
+ <unused start="0x9156" end="0x915F"/>
+ <enum value="0x9160" name="GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD"/>
+ <unused start="0x9161"/>
+ <enum value="0x9192" name="GL_QUERY_BUFFER_AMD"/>
+ <enum value="0x9193" name="GL_QUERY_BUFFER_BINDING_AMD"/>
+ <enum value="0x9194" name="GL_QUERY_RESULT_NO_WAIT_AMD"/>
+ <enum value="0x9195" name="GL_VIRTUAL_PAGE_SIZE_X_AMD"/>
+ <enum value="0x9196" name="GL_VIRTUAL_PAGE_SIZE_Y_AMD"/>
+ <enum value="0x9197" name="GL_VIRTUAL_PAGE_SIZE_Z_AMD"/>
+ <enum value="0x9198" name="GL_MAX_SPARSE_TEXTURE_SIZE_AMD"/>
+ <enum value="0x9199" name="GL_MAX_SPARSE_3D_TEXTURE_SIZE_AMD"/>
+ <enum value="0x919A" name="GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS"/>
+ <enum value="0x919B" name="GL_MIN_SPARSE_LEVEL_AMD"/>
+ <enum value="0x919C" name="GL_MIN_LOD_WARNING_AMD"/>
+ <enum value="0x919D" name="GL_TEXTURE_BUFFER_OFFSET"/>
+ <enum value="0x919E" name="GL_TEXTURE_BUFFER_SIZE"/>
+ <enum value="0x919F" name="GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT"/>
+ <unused start="0x91A0" end="0x91A3"/>
+ <enum value="0x91A4" name="GL_VERTEX_ELEMENT_SWIZZLE_AMD"/>
+ <enum value="0x91A5" name="GL_VERTEX_ID_SWIZZLE_AMD"/>
+ <unused start="0x91A6" end="0x91B8"/>
+ <enum value="0x91B9" name="GL_COMPUTE_SHADER"/>
+ <unused start="0x91BA"/>
+ <enum value="0x91BB" name="GL_MAX_COMPUTE_UNIFORM_BLOCKS"/>
+ <enum value="0x91BC" name="GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS"/>
+ <enum value="0x91BD" name="GL_MAX_COMPUTE_IMAGE_UNIFORMS"/>
+ <enum value="0x91BE" name="GL_MAX_COMPUTE_WORK_GROUP_COUNT"/>
+ <enum value="0x91BF" name="GL_MAX_COMPUTE_WORK_GROUP_SIZE"/>
+ <unused start="0x91C0" end="0x923F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x9240" end="0x924F" vendor="WEBGL" comment="Khronos bug 6473,6884">
+ <enum value="0x9240" name="GL_UNPACK_FLIP_Y_WEBGL"/>
+ <enum value="0x9241" name="GL_UNPACK_PREMULTIPLY_ALPHA_WEBGL"/>
+ <enum value="0x9242" name="GL_CONTEXT_LOST_WEBGL"/>
+ <enum value="0x9243" name="GL_UNPACK_COLORSPACE_CONVERSION_WEBGL"/>
+ <enum value="0x9244" name="GL_BROWSER_DEFAULT_WEBGL"/>
+ <unused start="0x9245" end="0x924F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x9250" end="0x925F" vendor="DMP" comment="For Eisaku Ohbuchi via email">
+ <enum value="0x9250" name="GL_SHADER_BINARY_DMP"/>
+ <unused start="0x9251" end="0x925F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x9260" end="0x926F" vendor="FJ" comment="Khronos bug 7486">
+ <enum value="0x9260" name="GL_GCCSO_SHADER_BINARY_FJ"/>
+ <unused start="0x9261" end="0x926F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x9270" end="0x927F" vendor="OES" comment="Khronos bug 7625">
+ <enum value="0x9270" name="GL_COMPRESSED_R11_EAC"/>
+ <enum value="0x9270" name="GL_COMPRESSED_R11_EAC_OES"/>
+ <enum value="0x9271" name="GL_COMPRESSED_SIGNED_R11_EAC"/>
+ <enum value="0x9271" name="GL_COMPRESSED_SIGNED_R11_EAC_OES"/>
+ <enum value="0x9272" name="GL_COMPRESSED_RG11_EAC"/>
+ <enum value="0x9272" name="GL_COMPRESSED_RG11_EAC_OES"/>
+ <enum value="0x9273" name="GL_COMPRESSED_SIGNED_RG11_EAC"/>
+ <enum value="0x9273" name="GL_COMPRESSED_SIGNED_RG11_EAC_OES"/>
+ <enum value="0x9274" name="GL_COMPRESSED_RGB8_ETC2"/>
+ <enum value="0x9274" name="GL_COMPRESSED_RGB8_ETC2_OES"/>
+ <enum value="0x9275" name="GL_COMPRESSED_SRGB8_ETC2"/>
+ <enum value="0x9275" name="GL_COMPRESSED_SRGB8_ETC2_OES"/>
+ <enum value="0x9276" name="GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2"/>
+ <enum value="0x9276" name="GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2_OES"/>
+ <enum value="0x9277" name="GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2"/>
+ <enum value="0x9277" name="GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2_OES"/>
+ <enum value="0x9278" name="GL_COMPRESSED_RGBA8_ETC2_EAC"/>
+ <enum value="0x9278" name="GL_COMPRESSED_RGBA8_ETC2_EAC_OES"/>
+ <enum value="0x9279" name="GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC"/>
+ <enum value="0x9279" name="GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC_OES"/>
+ <unused start="0x927A" end="0x927F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x9280" end="0x937F" vendor="NV" comment="Khronos bug 7658">
+ <unused start="0x9280" end="0x92BF"/>
+ <enum value="0x92C0" name="GL_ATOMIC_COUNTER_BUFFER"/>
+ <enum value="0x92C1" name="GL_ATOMIC_COUNTER_BUFFER_BINDING"/>
+ <enum value="0x92C2" name="GL_ATOMIC_COUNTER_BUFFER_START"/>
+ <enum value="0x92C3" name="GL_ATOMIC_COUNTER_BUFFER_SIZE"/>
+ <enum value="0x92C4" name="GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE"/>
+ <enum value="0x92C5" name="GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS"/>
+ <enum value="0x92C6" name="GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES"/>
+ <enum value="0x92C7" name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER"/>
+ <enum value="0x92C8" name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER"/>
+ <enum value="0x92C9" name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER"/>
+ <enum value="0x92CA" name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER"/>
+ <enum value="0x92CB" name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER"/>
+ <enum value="0x92CC" name="GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS"/>
+ <enum value="0x92CD" name="GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS"/>
+ <enum value="0x92CE" name="GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS"/>
+ <enum value="0x92CF" name="GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS"/>
+ <enum value="0x92D0" name="GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS"/>
+ <enum value="0x92D1" name="GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS"/>
+ <enum value="0x92D2" name="GL_MAX_VERTEX_ATOMIC_COUNTERS"/>
+ <enum value="0x92D3" name="GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS"/>
+ <enum value="0x92D4" name="GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS"/>
+ <enum value="0x92D5" name="GL_MAX_GEOMETRY_ATOMIC_COUNTERS"/>
+ <enum value="0x92D6" name="GL_MAX_FRAGMENT_ATOMIC_COUNTERS"/>
+ <enum value="0x92D7" name="GL_MAX_COMBINED_ATOMIC_COUNTERS"/>
+ <enum value="0x92D8" name="GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE"/>
+ <enum value="0x92D9" name="GL_ACTIVE_ATOMIC_COUNTER_BUFFERS"/>
+ <enum value="0x92DA" name="GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX"/>
+ <enum value="0x92DB" name="GL_UNSIGNED_INT_ATOMIC_COUNTER"/>
+ <enum value="0x92DC" name="GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS"/>
+ <unused start="0x92DC" end="0x92DF"/>
+ <enum value="0x92E0" name="GL_DEBUG_OUTPUT"/>
+ <enum value="0x92E0" name="GL_DEBUG_OUTPUT_KHR"/>
+ <enum value="0x92E1" name="GL_UNIFORM"/>
+ <enum value="0x92E2" name="GL_UNIFORM_BLOCK"/>
+ <enum value="0x92E3" name="GL_PROGRAM_INPUT"/>
+ <enum value="0x92E4" name="GL_PROGRAM_OUTPUT"/>
+ <enum value="0x92E5" name="GL_BUFFER_VARIABLE"/>
+ <enum value="0x92E6" name="GL_SHADER_STORAGE_BLOCK"/>
+ <enum value="0x92E7" name="GL_IS_PER_PATCH"/>
+ <enum value="0x92E8" name="GL_VERTEX_SUBROUTINE"/>
+ <enum value="0x92E9" name="GL_TESS_CONTROL_SUBROUTINE"/>
+ <enum value="0x92EA" name="GL_TESS_EVALUATION_SUBROUTINE"/>
+ <enum value="0x92EB" name="GL_GEOMETRY_SUBROUTINE"/>
+ <enum value="0x92EC" name="GL_FRAGMENT_SUBROUTINE"/>
+ <enum value="0x92ED" name="GL_COMPUTE_SUBROUTINE"/>
+ <enum value="0x92EE" name="GL_VERTEX_SUBROUTINE_UNIFORM"/>
+ <enum value="0x92EF" name="GL_TESS_CONTROL_SUBROUTINE_UNIFORM"/>
+ <enum value="0x92F0" name="GL_TESS_EVALUATION_SUBROUTINE_UNIFORM"/>
+ <enum value="0x92F1" name="GL_GEOMETRY_SUBROUTINE_UNIFORM"/>
+ <enum value="0x92F2" name="GL_FRAGMENT_SUBROUTINE_UNIFORM"/>
+ <enum value="0x92F3" name="GL_COMPUTE_SUBROUTINE_UNIFORM"/>
+ <enum value="0x92F4" name="GL_TRANSFORM_FEEDBACK_VARYING"/>
+ <enum value="0x92F5" name="GL_ACTIVE_RESOURCES"/>
+ <enum value="0x92F6" name="GL_MAX_NAME_LENGTH"/>
+ <enum value="0x92F7" name="GL_MAX_NUM_ACTIVE_VARIABLES"/>
+ <enum value="0x92F8" name="GL_MAX_NUM_COMPATIBLE_SUBROUTINES"/>
+ <enum value="0x92F9" name="GL_NAME_LENGTH"/>
+ <enum value="0x92FA" name="GL_TYPE"/>
+ <enum value="0x92FB" name="GL_ARRAY_SIZE"/>
+ <enum value="0x92FC" name="GL_OFFSET"/>
+ <enum value="0x92FD" name="GL_BLOCK_INDEX"/>
+ <enum value="0x92FE" name="GL_ARRAY_STRIDE"/>
+ <enum value="0x92FF" name="GL_MATRIX_STRIDE"/>
+ <enum value="0x9300" name="GL_IS_ROW_MAJOR"/>
+ <enum value="0x9301" name="GL_ATOMIC_COUNTER_BUFFER_INDEX"/>
+ <enum value="0x9302" name="GL_BUFFER_BINDING"/>
+ <enum value="0x9303" name="GL_BUFFER_DATA_SIZE"/>
+ <enum value="0x9304" name="GL_NUM_ACTIVE_VARIABLES"/>
+ <enum value="0x9305" name="GL_ACTIVE_VARIABLES"/>
+ <enum value="0x9306" name="GL_REFERENCED_BY_VERTEX_SHADER"/>
+ <enum value="0x9307" name="GL_REFERENCED_BY_TESS_CONTROL_SHADER"/>
+ <enum value="0x9308" name="GL_REFERENCED_BY_TESS_EVALUATION_SHADER"/>
+ <enum value="0x9309" name="GL_REFERENCED_BY_GEOMETRY_SHADER"/>
+ <enum value="0x930A" name="GL_REFERENCED_BY_FRAGMENT_SHADER"/>
+ <enum value="0x930B" name="GL_REFERENCED_BY_COMPUTE_SHADER"/>
+ <enum value="0x930C" name="GL_TOP_LEVEL_ARRAY_SIZE"/>
+ <enum value="0x930D" name="GL_TOP_LEVEL_ARRAY_STRIDE"/>
+ <enum value="0x930E" name="GL_LOCATION"/>
+ <enum value="0x930F" name="GL_LOCATION_INDEX"/>
+ <enum value="0x9310" name="GL_FRAMEBUFFER_DEFAULT_WIDTH"/>
+ <enum value="0x9311" name="GL_FRAMEBUFFER_DEFAULT_HEIGHT"/>
+ <enum value="0x9312" name="GL_FRAMEBUFFER_DEFAULT_LAYERS"/>
+ <enum value="0x9313" name="GL_FRAMEBUFFER_DEFAULT_SAMPLES"/>
+ <enum value="0x9314" name="GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS"/>
+ <enum value="0x9315" name="GL_MAX_FRAMEBUFFER_WIDTH"/>
+ <enum value="0x9316" name="GL_MAX_FRAMEBUFFER_HEIGHT"/>
+ <enum value="0x9317" name="GL_MAX_FRAMEBUFFER_LAYERS"/>
+ <enum value="0x9318" name="GL_MAX_FRAMEBUFFER_SAMPLES"/>
+ <unused start="0x9319" end="0x937F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x9380" end="0x939F" vendor="ARB">
+ <enum value="0x9380" name="GL_NUM_SAMPLE_COUNTS"/>
+ <unused start="0x9381" end="0x939F"/>
+ </enums>
+
+ <enums namespace="GL" start="0x93A0" end="0x93AF" vendor="ANGLE" comment="Khronos bug 8100">
+ <enum value="0x93A0" name="GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE"/>
+ <unused start="0x93A1"/>
+ <enum value="0x93A2" name="GL_TEXTURE_USAGE_ANGLE"/>
+ <enum value="0x93A3" name="GL_FRAMEBUFFER_ATTACHMENT_ANGLE"/>
+ <enum value="0x93A4" name="GL_PACK_REVERSE_ROW_ORDER_ANGLE"/>
+ <unused start="0x93A5"/>
+ <enum value="0x93A6" name="GL_PROGRAM_BINARY_ANGLE"/>
+ <unused start="0x93A7" end="0x93AF"/>
+ </enums>
+
+ <enums namespace="GL" start="0x93B0" end="0x93EF" vendor="OES" comment="Khronos bug 8853">
+ <enum value="0x93B0" name="GL_COMPRESSED_RGBA_ASTC_4x4_KHR"/>
+ <enum value="0x93B1" name="GL_COMPRESSED_RGBA_ASTC_5x4_KHR"/>
+ <enum value="0x93B2" name="GL_COMPRESSED_RGBA_ASTC_5x5_KHR"/>
+ <enum value="0x93B3" name="GL_COMPRESSED_RGBA_ASTC_6x5_KHR"/>
+ <enum value="0x93B4" name="GL_COMPRESSED_RGBA_ASTC_6x6_KHR"/>
+ <enum value="0x93B5" name="GL_COMPRESSED_RGBA_ASTC_8x5_KHR"/>
+ <enum value="0x93B6" name="GL_COMPRESSED_RGBA_ASTC_8x6_KHR"/>
+ <enum value="0x93B7" name="GL_COMPRESSED_RGBA_ASTC_8x8_KHR"/>
+ <enum value="0x93B8" name="GL_COMPRESSED_RGBA_ASTC_10x5_KHR"/>
+ <enum value="0x93B9" name="GL_COMPRESSED_RGBA_ASTC_10x6_KHR"/>
+ <enum value="0x93BA" name="GL_COMPRESSED_RGBA_ASTC_10x8_KHR"/>
+ <enum value="0x93BB" name="GL_COMPRESSED_RGBA_ASTC_10x10_KHR"/>
+ <enum value="0x93BC" name="GL_COMPRESSED_RGBA_ASTC_12x10_KHR"/>
+ <enum value="0x93BD" name="GL_COMPRESSED_RGBA_ASTC_12x12_KHR"/>
+ <unused start="0x93BE" end="0x93CF"/>
+ <enum value="0x93D0" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR"/>
+ <enum value="0x93D1" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR"/>
+ <enum value="0x93D2" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR"/>
+ <enum value="0x93D3" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR"/>
+ <enum value="0x93D4" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR"/>
+ <enum value="0x93D5" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR"/>
+ <enum value="0x93D6" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR"/>
+ <enum value="0x93D7" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR"/>
+ <enum value="0x93D8" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR"/>
+ <enum value="0x93D9" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR"/>
+ <enum value="0x93DA" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR"/>
+ <enum value="0x93DB" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR"/>
+ <enum value="0x93DC" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR"/>
+ <enum value="0x93DD" name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR"/>
+ <unused start="0x93DE" end="0x93EF"/>
+ </enums>
+
+ <enums namespace="GL" start="0x93F0" end="0x94EF" vendor="APPLE" comment="Khronos bug 10233">
+ <unused start="0x93F0" end="0x94EF"/>
+ </enums>
+
+<!-- Enums reservable for future use. To reserve a new range, allocate one
+ or more multiples of 16 starting at the lowest available point in this
+ block and note it in a new <enums> block immediately above.
+
+ Please remember that new enumerant allocations must be obtained by
+ request to the Khronos API registrar (see comments at the top of this
+ file) File requests in the Khronos Bugzilla, OpenGL project, Registry
+ component. -->
+
+ <enums namespace="GL" start="0x94F0" end="99999" vendor="ARB" comment="RESERVED FOR FUTURE ALLOCATIONS BY KHRONOS">
+ <unused start="0x94F0" end="99999"/>
+ </enums>
+
+<!-- Historical large block allocations, all unused except (in older days) by IBM -->
+ <enums namespace="GL" start="100000" end="100999" vendor="ARB" comment="GLU enums"/>
+ <enums namespace="GL" start="101000" end="101999" vendor="ARB" comment="Conformance test enums"/>
+ <enums namespace="GL" start="102000" end="102999" vendor="ARB" comment="Unused, unlikely to ever be used"/>
+
+ <enums namespace="GL" start="103000" end="103999" vendor="IBM" comment="IBM is out of the graphics hardware business. Most of this range will remain unused.">
+ <enum value="0x19262" name="GL_RASTER_POSITION_UNCLIPPED_IBM"/>
+ <enum value="103050" name="GL_CULL_VERTEX_IBM"/>
+ <enum value="103060" name="GL_ALL_STATIC_DATA_IBM"/>
+ <enum value="103061" name="GL_STATIC_VERTEX_ARRAY_IBM"/>
+ <enum value="103070" name="GL_VERTEX_ARRAY_LIST_IBM"/>
+ <enum value="103071" name="GL_NORMAL_ARRAY_LIST_IBM"/>
+ <enum value="103072" name="GL_COLOR_ARRAY_LIST_IBM"/>
+ <enum value="103073" name="GL_INDEX_ARRAY_LIST_IBM"/>
+ <enum value="103074" name="GL_TEXTURE_COORD_ARRAY_LIST_IBM"/>
+ <enum value="103075" name="GL_EDGE_FLAG_ARRAY_LIST_IBM"/>
+ <enum value="103076" name="GL_FOG_COORDINATE_ARRAY_LIST_IBM"/>
+ <enum value="103077" name="GL_SECONDARY_COLOR_ARRAY_LIST_IBM"/>
+ <enum value="103080" name="GL_VERTEX_ARRAY_LIST_STRIDE_IBM"/>
+ <enum value="103081" name="GL_NORMAL_ARRAY_LIST_STRIDE_IBM"/>
+ <enum value="103082" name="GL_COLOR_ARRAY_LIST_STRIDE_IBM"/>
+ <enum value="103083" name="GL_INDEX_ARRAY_LIST_STRIDE_IBM"/>
+ <enum value="103084" name="GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM"/>
+ <enum value="103085" name="GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM"/>
+ <enum value="103086" name="GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM"/>
+ <enum value="103087" name="GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM"/>
+ </enums>
+
+ <enums namespace="GL" start="104000" end="104999" vendor="NEC" comment="NEC may be out of the graphics hardware business?"/>
+ <enums namespace="GL" start="105000" end="105999" vendor="Compaq" comment="Compaq was acquired by HP"/>
+ <enums namespace="GL" start="106000" end="106999" vendor="KPC" comment="Kubota Pacific is out of business"/>
+ <enums namespace="GL" start="107000" end="107999" vendor="PGI" comment="Portland Graphics was acquired by Template Graphics, which is out of business">
+ <!-- lots of <unused> areas here which won't be computed yet -->
+ <enum value="0x1A1F8" name="GL_PREFER_DOUBLEBUFFER_HINT_PGI"/>
+ <enum value="0x1A1FD" name="GL_CONSERVE_MEMORY_HINT_PGI"/>
+ <enum value="0x1A1FE" name="GL_RECLAIM_MEMORY_HINT_PGI"/>
+ <enum value="0x1A202" name="GL_NATIVE_GRAPHICS_HANDLE_PGI"/>
+ <enum value="0x1A203" name="GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI"/>
+ <enum value="0x1A204" name="GL_NATIVE_GRAPHICS_END_HINT_PGI"/>
+ <enum value="0x1A20C" name="GL_ALWAYS_FAST_HINT_PGI"/>
+ <enum value="0x1A20D" name="GL_ALWAYS_SOFT_HINT_PGI"/>
+ <enum value="0x1A20E" name="GL_ALLOW_DRAW_OBJ_HINT_PGI"/>
+ <enum value="0x1A20F" name="GL_ALLOW_DRAW_WIN_HINT_PGI"/>
+ <enum value="0x1A210" name="GL_ALLOW_DRAW_FRG_HINT_PGI"/>
+ <enum value="0x1A211" name="GL_ALLOW_DRAW_MEM_HINT_PGI"/>
+ <enum value="0x1A216" name="GL_STRICT_DEPTHFUNC_HINT_PGI"/>
+ <enum value="0x1A217" name="GL_STRICT_LIGHTING_HINT_PGI"/>
+ <enum value="0x1A218" name="GL_STRICT_SCISSOR_HINT_PGI"/>
+ <enum value="0x1A219" name="GL_FULL_STIPPLE_HINT_PGI"/>
+ <enum value="0x1A220" name="GL_CLIP_NEAR_HINT_PGI"/>
+ <enum value="0x1A221" name="GL_CLIP_FAR_HINT_PGI"/>
+ <enum value="0x1A222" name="GL_WIDE_LINE_HINT_PGI"/>
+ <enum value="0x1A223" name="GL_BACK_NORMALS_HINT_PGI"/>
+ <enum value="0x1A22A" name="GL_VERTEX_DATA_HINT_PGI"/>
+ <enum value="0x1A22B" name="GL_VERTEX_CONSISTENT_HINT_PGI"/>
+ <enum value="0x1A22C" name="GL_MATERIAL_SIDE_HINT_PGI"/>
+ <enum value="0x1A22D" name="GL_MAX_VERTEX_HINT_PGI"/>
+ </enums>
+
+ <enums namespace="GL" start="108000" end="108999" vendor="ES" comment="Evans and Sutherland is out of the graphics hardware business"/>
+
+ <enums namespace="GL" comment="required for ES[123] core API - needs sorting">
+ <!-- required enums for ES[123] - core API -->
+ <enum value="0x0D32" name="GL_MAX_CLIP_PLANES_IMG"/>
+ <enum value="0x2500" name="GL_TEXTURE_GEN_MODE_OES"/>
+ <enum value="0x3000" name="GL_CLIP_PLANE0_IMG"/>
+ <enum value="0x3001" name="GL_CLIP_PLANE1_IMG"/>
+ <enum value="0x3002" name="GL_CLIP_PLANE2_IMG"/>
+ <enum value="0x3003" name="GL_CLIP_PLANE3_IMG"/>
+ <enum value="0x3004" name="GL_CLIP_PLANE4_IMG"/>
+ <enum value="0x3005" name="GL_CLIP_PLANE5_IMG"/>
+ <enum value="0x803C" name="GL_ALPHA8_OES"/>
+ <enum value="0x8040" name="GL_LUMINANCE8_OES"/>
+ <enum value="0x8043" name="GL_LUMINANCE4_ALPHA4_OES"/>
+ <enum value="0x8045" name="GL_LUMINANCE8_ALPHA8_OES"/>
+ <enum value="0x8051" name="GL_RGB8_OES"/>
+ <enum value="0x806A" name="GL_TEXTURE_BINDING_3D_OES"/>
+ <enum value="0x80E1" name="GL_BGRA_IMG"/>
+ <enum value="0x813D" name="GL_TEXTURE_MAX_LEVEL_APPLE"/>
+ <enum value="0x8210" name="GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT"/>
+ <enum value="0x822E" name="GL_R32F_EXT"/>
+ <enum value="0x8230" name="GL_RG32F_EXT"/>
+ <enum value="0x8252" name="GL_LOSE_CONTEXT_ON_RESET_EXT"/>
+ <enum value="0x8253" name="GL_GUILTY_CONTEXT_RESET_EXT"/>
+ <enum value="0x8254" name="GL_INNOCENT_CONTEXT_RESET_EXT"/>
+ <enum value="0x8255" name="GL_UNKNOWN_CONTEXT_RESET_EXT"/>
+ <enum value="0x8256" name="GL_RESET_NOTIFICATION_STRATEGY_EXT"/>
+ <enum value="0x8261" name="GL_NO_RESET_NOTIFICATION_EXT"/>
+ <enum value="0x8365" name="GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG"/>
+ <enum value="0x85B5" name="GL_VERTEX_ARRAY_BINDING_OES"/>
+ <enum value="0x8814" name="GL_RGBA32F_EXT"/>
+ <enum value="0x8815" name="GL_RGB32F_EXT"/>
+ <enum value="0x8816" name="GL_ALPHA32F_EXT"/>
+ <enum value="0x8818" name="GL_LUMINANCE32F_EXT"/>
+ <enum value="0x8819" name="GL_LUMINANCE_ALPHA32F_EXT"/>
+ <enum value="0x881C" name="GL_ALPHA16F_EXT"/>
+ <enum value="0x881E" name="GL_LUMINANCE16F_EXT"/>
+ <enum value="0x881F" name="GL_LUMINANCE_ALPHA16F_EXT"/>
+ <enum value="0x8CA6" name="GL_DRAW_FRAMEBUFFER_BINDING_ANGLE"/>
+ <enum value="0x8CA6" name="GL_DRAW_FRAMEBUFFER_BINDING_APPLE"/>
+ <enum value="0x8CA8" name="GL_READ_FRAMEBUFFER_APPLE"/>
+ <enum value="0x8CA9" name="GL_DRAW_FRAMEBUFFER_APPLE"/>
+ <enum value="0x8CAA" name="GL_READ_FRAMEBUFFER_BINDING_ANGLE"/>
+ <enum value="0x8CAA" name="GL_READ_FRAMEBUFFER_BINDING_APPLE"/>
+ <enum value="0x8CAB" name="GL_RENDERBUFFER_SAMPLES_APPLE"/>
+ <enum value="0x8D56" name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE"/>
+ <enum value="0x8D57" name="GL_MAX_SAMPLES_APPLE"/>
+ <enum value="0x90F3" name="GL_CONTEXT_ROBUST_ACCESS_EXT"/>
+ <enum value="0x912F" name="GL_TEXTURE_IMMUTABLE_FORMAT_EXT"/>
+ <enum value="0x93A1" name="GL_BGRA8_EXT"/>
+ </enums>
+
+ <!-- SECTION: GL command definitions. -->
+ <commands namespace="GL">
+ <command>
+ <proto>void <name>glAccum</name></proto>
+ <param group="AccumOp"><ptype>GLenum</ptype> <name>op</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>value</name></param>
+ <glx type="render" opcode="137"/>
+ </command>
+ <command>
+ <proto>void <name>glAccumxOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>op</name></param>
+ <param><ptype>GLfixed</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glActiveProgramEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ </command>
+ <command>
+ <proto>void <name>glActiveShaderProgram</name></proto>
+ <param><ptype>GLuint</ptype> <name>pipeline</name></param>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ </command>
+ <command>
+ <proto>void <name>glActiveShaderProgramEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>pipeline</name></param>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ </command>
+ <command>
+ <proto>void <name>glActiveStencilFaceEXT</name></proto>
+ <param group="StencilFaceDirection"><ptype>GLenum</ptype> <name>face</name></param>
+ <glx type="render" opcode="4220"/>
+ </command>
+ <command>
+ <proto>void <name>glActiveTexture</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texture</name></param>
+ <glx type="render" opcode="197"/>
+ </command>
+ <command>
+ <proto>void <name>glActiveTextureARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texture</name></param>
+ <alias name="glActiveTexture"/>
+ <glx type="render" opcode="197"/>
+ </command>
+ <command>
+ <proto>void <name>glActiveVaryingNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param len="COMPSIZE(name)">const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glAlphaFragmentOp1ATI</name></proto>
+ <param group="FragmentOpATI"><ptype>GLenum</ptype> <name>op</name></param>
+ <param><ptype>GLuint</ptype> <name>dst</name></param>
+ <param><ptype>GLuint</ptype> <name>dstMod</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1Rep</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1Mod</name></param>
+ </command>
+ <command>
+ <proto>void <name>glAlphaFragmentOp2ATI</name></proto>
+ <param group="FragmentOpATI"><ptype>GLenum</ptype> <name>op</name></param>
+ <param><ptype>GLuint</ptype> <name>dst</name></param>
+ <param><ptype>GLuint</ptype> <name>dstMod</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1Rep</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1Mod</name></param>
+ <param><ptype>GLuint</ptype> <name>arg2</name></param>
+ <param><ptype>GLuint</ptype> <name>arg2Rep</name></param>
+ <param><ptype>GLuint</ptype> <name>arg2Mod</name></param>
+ </command>
+ <command>
+ <proto>void <name>glAlphaFragmentOp3ATI</name></proto>
+ <param group="FragmentOpATI"><ptype>GLenum</ptype> <name>op</name></param>
+ <param><ptype>GLuint</ptype> <name>dst</name></param>
+ <param><ptype>GLuint</ptype> <name>dstMod</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1Rep</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1Mod</name></param>
+ <param><ptype>GLuint</ptype> <name>arg2</name></param>
+ <param><ptype>GLuint</ptype> <name>arg2Rep</name></param>
+ <param><ptype>GLuint</ptype> <name>arg2Mod</name></param>
+ <param><ptype>GLuint</ptype> <name>arg3</name></param>
+ <param><ptype>GLuint</ptype> <name>arg3Rep</name></param>
+ <param><ptype>GLuint</ptype> <name>arg3Mod</name></param>
+ </command>
+ <command>
+ <proto>void <name>glAlphaFunc</name></proto>
+ <param group="AlphaFunction"><ptype>GLenum</ptype> <name>func</name></param>
+ <param><ptype>GLfloat</ptype> <name>ref</name></param>
+ <glx type="render" opcode="159"/>
+ </command>
+ <command>
+ <proto>void <name>glAlphaFuncQCOM</name></proto>
+ <param><ptype>GLenum</ptype> <name>func</name></param>
+ <param><ptype>GLclampf</ptype> <name>ref</name></param>
+ </command>
+ <command>
+ <proto>void <name>glAlphaFuncx</name></proto>
+ <param><ptype>GLenum</ptype> <name>func</name></param>
+ <param><ptype>GLfixed</ptype> <name>ref</name></param>
+ </command>
+ <command>
+ <proto>void <name>glAlphaFuncxOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>func</name></param>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>ref</name></param>
+ </command>
+ <command>
+ <proto>void <name>glApplyTextureEXT</name></proto>
+ <param group="LightTextureModeEXT"><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glAreProgramsResidentNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>programs</name></param>
+ <param group="Boolean" len="n"><ptype>GLboolean</ptype> *<name>residences</name></param>
+ <glx type="vendor" opcode="1293"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glAreTexturesResident</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="Texture" len="n">const <ptype>GLuint</ptype> *<name>textures</name></param>
+ <param group="Boolean" len="n"><ptype>GLboolean</ptype> *<name>residences</name></param>
+ <glx type="single" opcode="143"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glAreTexturesResidentEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="Texture" len="n">const <ptype>GLuint</ptype> *<name>textures</name></param>
+ <param group="Boolean" len="n"><ptype>GLboolean</ptype> *<name>residences</name></param>
+ <glx type="vendor" opcode="11"/>
+ </command>
+ <command>
+ <proto>void <name>glArrayElement</name></proto>
+ <param><ptype>GLint</ptype> <name>i</name></param>
+ </command>
+ <command>
+ <proto>void <name>glArrayElementEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>i</name></param>
+ <alias name="glArrayElement"/>
+ </command>
+ <command>
+ <proto>void <name>glArrayObjectATI</name></proto>
+ <param group="EnableCap"><ptype>GLenum</ptype> <name>array</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="ScalarType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLuint</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glAsyncMarkerSGIX</name></proto>
+ <param><ptype>GLuint</ptype> <name>marker</name></param>
+ </command>
+ <command>
+ <proto>void <name>glAttachObjectARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>containerObj</name></param>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>obj</name></param>
+ <alias name="glAttachShader"/>
+ </command>
+ <command>
+ <proto>void <name>glAttachShader</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>shader</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBegin</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <glx type="render" opcode="4"/>
+ </command>
+ <command>
+ <proto>void <name>glBeginConditionalRender</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="TypeEnum"><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBeginConditionalRenderNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="TypeEnum"><ptype>GLenum</ptype> <name>mode</name></param>
+ <alias name="glBeginConditionalRender"/>
+ <glx type="render" opcode="348"/>
+ </command>
+ <command>
+ <proto>void <name>glBeginConditionalRenderNVX</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBeginFragmentShaderATI</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glBeginOcclusionQueryNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBeginPerfMonitorAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>monitor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBeginQuery</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <glx type="render" opcode="231"/>
+ </command>
+ <command>
+ <proto>void <name>glBeginQueryARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <alias name="glBeginQuery"/>
+ </command>
+ <command>
+ <proto>void <name>glBeginQueryEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBeginQueryIndexed</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBeginTransformFeedback</name></proto>
+ <param><ptype>GLenum</ptype> <name>primitiveMode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBeginTransformFeedbackEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>primitiveMode</name></param>
+ <alias name="glBeginTransformFeedback"/>
+ </command>
+ <command>
+ <proto>void <name>glBeginTransformFeedbackNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>primitiveMode</name></param>
+ <alias name="glBeginTransformFeedback"/>
+ </command>
+ <command>
+ <proto>void <name>glBeginVertexShaderEXT</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glBeginVideoCaptureNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_capture_slot</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindAttribLocation</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindAttribLocationARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>programObj</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param>const <ptype>GLcharARB</ptype> *<name>name</name></param>
+ <alias name="glBindAttribLocation"/>
+ </command>
+ <command>
+ <proto>void <name>glBindBuffer</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindBufferARB</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <alias name="glBindBuffer"/>
+ </command>
+ <command>
+ <proto>void <name>glBindBufferBase</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindBufferBaseEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <alias name="glBindBufferBase"/>
+ </command>
+ <command>
+ <proto>void <name>glBindBufferBaseNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <alias name="glBindBufferBase"/>
+ </command>
+ <command>
+ <proto>void <name>glBindBufferOffsetEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindBufferOffsetNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <alias name="glBindBufferOffsetEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glBindBufferRange</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindBufferRangeEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ <alias name="glBindBufferRange"/>
+ </command>
+ <command>
+ <proto>void <name>glBindBufferRangeNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ <alias name="glBindBufferRange"/>
+ </command>
+ <command>
+ <proto>void <name>glBindFragDataLocation</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>color</name></param>
+ <param len="COMPSIZE(name)">const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindFragDataLocationEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>color</name></param>
+ <param len="COMPSIZE(name)">const <ptype>GLchar</ptype> *<name>name</name></param>
+ <alias name="glBindFragDataLocation"/>
+ </command>
+ <command>
+ <proto>void <name>glBindFragDataLocationIndexed</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>colorNumber</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindFragmentShaderATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindFramebuffer</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <glx type="render" opcode="236"/>
+ </command>
+ <command>
+ <proto>void <name>glBindFramebufferEXT</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <glx type="render" opcode="4319"/>
+ </command>
+ <command>
+ <proto>void <name>glBindFramebufferOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindImageTexture</name></proto>
+ <param><ptype>GLuint</ptype> <name>unit</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>layered</name></param>
+ <param><ptype>GLint</ptype> <name>layer</name></param>
+ <param><ptype>GLenum</ptype> <name>access</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindImageTextureEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>layered</name></param>
+ <param><ptype>GLint</ptype> <name>layer</name></param>
+ <param><ptype>GLenum</ptype> <name>access</name></param>
+ <param><ptype>GLint</ptype> <name>format</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glBindLightParameterEXT</name></proto>
+ <param group="LightName"><ptype>GLenum</ptype> <name>light</name></param>
+ <param group="LightParameter"><ptype>GLenum</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glBindMaterialParameterEXT</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindMultiTextureEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glBindParameterEXT</name></proto>
+ <param group="VertexShaderParameterEXT"><ptype>GLenum</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindProgramARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <glx type="render" opcode="4180"/>
+ </command>
+ <command>
+ <proto>void <name>glBindProgramNV</name></proto>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <alias name="glBindProgramARB"/>
+ <glx type="render" opcode="4180"/>
+ </command>
+ <command>
+ <proto>void <name>glBindProgramPipeline</name></proto>
+ <param><ptype>GLuint</ptype> <name>pipeline</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindProgramPipelineEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>pipeline</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindRenderbuffer</name></proto>
+ <param group="RenderbufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ <glx type="render" opcode="235"/>
+ </command>
+ <command>
+ <proto>void <name>glBindRenderbufferEXT</name></proto>
+ <param group="RenderbufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ <glx type="render" opcode="4316"/>
+ </command>
+ <command>
+ <proto>void <name>glBindRenderbufferOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindSampler</name></proto>
+ <param><ptype>GLuint</ptype> <name>unit</name></param>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glBindTexGenParameterEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>unit</name></param>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindTexture</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <glx type="render" opcode="4117"/>
+ </command>
+ <command>
+ <proto>void <name>glBindTextureEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <alias name="glBindTexture"/>
+ <glx type="render" opcode="4117"/>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glBindTextureUnitParameterEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>unit</name></param>
+ <param group="VertexShaderTextureUnitParameter"><ptype>GLenum</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindTransformFeedback</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindTransformFeedbackNV</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindVertexArray</name></proto>
+ <param><ptype>GLuint</ptype> <name>array</name></param>
+ <glx type="render" opcode="350"/>
+ </command>
+ <command>
+ <proto>void <name>glBindVertexArrayAPPLE</name></proto>
+ <param><ptype>GLuint</ptype> <name>array</name></param>
+ <alias name="glBindVertexArray"/>
+ </command>
+ <command>
+ <proto>void <name>glBindVertexArrayOES</name></proto>
+ <param><ptype>GLuint</ptype> <name>array</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindVertexBuffer</name></proto>
+ <param><ptype>GLuint</ptype> <name>bindingindex</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindVertexShaderEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindVideoCaptureStreamBufferNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_capture_slot</name></param>
+ <param><ptype>GLuint</ptype> <name>stream</name></param>
+ <param><ptype>GLenum</ptype> <name>frame_region</name></param>
+ <param group="BufferOffsetARB"><ptype>GLintptrARB</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBindVideoCaptureStreamTextureNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_capture_slot</name></param>
+ <param><ptype>GLuint</ptype> <name>stream</name></param>
+ <param><ptype>GLenum</ptype> <name>frame_region</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBinormal3bEXT</name></proto>
+ <param><ptype>GLbyte</ptype> <name>bx</name></param>
+ <param><ptype>GLbyte</ptype> <name>by</name></param>
+ <param><ptype>GLbyte</ptype> <name>bz</name></param>
+ <vecequiv name="glBinormal3bvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glBinormal3bvEXT</name></proto>
+ <param len="3">const <ptype>GLbyte</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBinormal3dEXT</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>bx</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>by</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>bz</name></param>
+ <vecequiv name="glBinormal3dvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glBinormal3dvEXT</name></proto>
+ <param group="CoordD" len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBinormal3fEXT</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>bx</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>by</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>bz</name></param>
+ <vecequiv name="glBinormal3fvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glBinormal3fvEXT</name></proto>
+ <param group="CoordF" len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBinormal3iEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>bx</name></param>
+ <param><ptype>GLint</ptype> <name>by</name></param>
+ <param><ptype>GLint</ptype> <name>bz</name></param>
+ <vecequiv name="glBinormal3ivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glBinormal3ivEXT</name></proto>
+ <param len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBinormal3sEXT</name></proto>
+ <param><ptype>GLshort</ptype> <name>bx</name></param>
+ <param><ptype>GLshort</ptype> <name>by</name></param>
+ <param><ptype>GLshort</ptype> <name>bz</name></param>
+ <vecequiv name="glBinormal3svEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glBinormal3svEXT</name></proto>
+ <param len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBinormalPointerEXT</name></proto>
+ <param group="BinormalPointerTypeEXT"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(type,stride)">const <ptype>GLvoid</ptype> *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBitmap</name></proto>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>xorig</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>yorig</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>xmove</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>ymove</name></param>
+ <param len="COMPSIZE(width,height)">const <ptype>GLubyte</ptype> *<name>bitmap</name></param>
+ <glx type="render" opcode="5"/>
+ <glx type="render" opcode="311" name="glBitmapPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glBitmapxOES</name></proto>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLfixed</ptype> <name>xorig</name></param>
+ <param><ptype>GLfixed</ptype> <name>yorig</name></param>
+ <param><ptype>GLfixed</ptype> <name>xmove</name></param>
+ <param><ptype>GLfixed</ptype> <name>ymove</name></param>
+ <param len="COMPSIZE()">const <ptype>GLubyte</ptype> *<name>bitmap</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBlendColor</name></proto>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>red</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>green</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>blue</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>alpha</name></param>
+ <glx type="render" opcode="4096"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendColorEXT</name></proto>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>red</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>green</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>blue</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>alpha</name></param>
+ <alias name="glBlendColor"/>
+ <glx type="render" opcode="4096"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendColorxOES</name></proto>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>red</name></param>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>green</name></param>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>blue</name></param>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>alpha</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBlendEquation</name></proto>
+ <param group="BlendEquationMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <glx type="render" opcode="4097"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendEquationEXT</name></proto>
+ <param group="BlendEquationModeEXT"><ptype>GLenum</ptype> <name>mode</name></param>
+ <alias name="glBlendEquation"/>
+ <glx type="render" opcode="4097"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendEquationIndexedAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>buf</name></param>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ <alias name="glBlendEquationi"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendEquationOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBlendEquationSeparate</name></proto>
+ <param group="BlendEquationModeEXT"><ptype>GLenum</ptype> <name>modeRGB</name></param>
+ <param group="BlendEquationModeEXT"><ptype>GLenum</ptype> <name>modeAlpha</name></param>
+ <glx type="render" opcode="4228"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendEquationSeparateEXT</name></proto>
+ <param group="BlendEquationModeEXT"><ptype>GLenum</ptype> <name>modeRGB</name></param>
+ <param group="BlendEquationModeEXT"><ptype>GLenum</ptype> <name>modeAlpha</name></param>
+ <alias name="glBlendEquationSeparate"/>
+ <glx type="render" opcode="4228"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendEquationSeparateIndexedAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>buf</name></param>
+ <param><ptype>GLenum</ptype> <name>modeRGB</name></param>
+ <param><ptype>GLenum</ptype> <name>modeAlpha</name></param>
+ <alias name="glBlendEquationSeparatei"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendEquationSeparateOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>modeRGB</name></param>
+ <param><ptype>GLenum</ptype> <name>modeAlpha</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBlendEquationSeparatei</name></proto>
+ <param><ptype>GLuint</ptype> <name>buf</name></param>
+ <param><ptype>GLenum</ptype> <name>modeRGB</name></param>
+ <param><ptype>GLenum</ptype> <name>modeAlpha</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBlendEquationSeparateiARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>buf</name></param>
+ <param><ptype>GLenum</ptype> <name>modeRGB</name></param>
+ <param><ptype>GLenum</ptype> <name>modeAlpha</name></param>
+ <alias name="glBlendEquationSeparatei"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendEquationi</name></proto>
+ <param><ptype>GLuint</ptype> <name>buf</name></param>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBlendEquationiARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>buf</name></param>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ <alias name="glBlendEquationi"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendFunc</name></proto>
+ <param group="BlendingFactorSrc"><ptype>GLenum</ptype> <name>sfactor</name></param>
+ <param group="BlendingFactorDest"><ptype>GLenum</ptype> <name>dfactor</name></param>
+ <glx type="render" opcode="160"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendFuncIndexedAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>buf</name></param>
+ <param><ptype>GLenum</ptype> <name>src</name></param>
+ <param><ptype>GLenum</ptype> <name>dst</name></param>
+ <alias name="glBlendFunci"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendFuncSeparate</name></proto>
+ <param group="BlendFuncSeparateParameterEXT"><ptype>GLenum</ptype> <name>sfactorRGB</name></param>
+ <param group="BlendFuncSeparateParameterEXT"><ptype>GLenum</ptype> <name>dfactorRGB</name></param>
+ <param group="BlendFuncSeparateParameterEXT"><ptype>GLenum</ptype> <name>sfactorAlpha</name></param>
+ <param group="BlendFuncSeparateParameterEXT"><ptype>GLenum</ptype> <name>dfactorAlpha</name></param>
+ <glx type="render" opcode="4134"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendFuncSeparateEXT</name></proto>
+ <param group="BlendFuncSeparateParameterEXT"><ptype>GLenum</ptype> <name>sfactorRGB</name></param>
+ <param group="BlendFuncSeparateParameterEXT"><ptype>GLenum</ptype> <name>dfactorRGB</name></param>
+ <param group="BlendFuncSeparateParameterEXT"><ptype>GLenum</ptype> <name>sfactorAlpha</name></param>
+ <param group="BlendFuncSeparateParameterEXT"><ptype>GLenum</ptype> <name>dfactorAlpha</name></param>
+ <alias name="glBlendFuncSeparate"/>
+ <glx type="render" opcode="4134"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendFuncSeparateINGR</name></proto>
+ <param group="BlendFuncSeparateParameterEXT"><ptype>GLenum</ptype> <name>sfactorRGB</name></param>
+ <param group="BlendFuncSeparateParameterEXT"><ptype>GLenum</ptype> <name>dfactorRGB</name></param>
+ <param group="BlendFuncSeparateParameterEXT"><ptype>GLenum</ptype> <name>sfactorAlpha</name></param>
+ <param group="BlendFuncSeparateParameterEXT"><ptype>GLenum</ptype> <name>dfactorAlpha</name></param>
+ <alias name="glBlendFuncSeparate"/>
+ <glx type="render" opcode="4134"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendFuncSeparateIndexedAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>buf</name></param>
+ <param><ptype>GLenum</ptype> <name>srcRGB</name></param>
+ <param><ptype>GLenum</ptype> <name>dstRGB</name></param>
+ <param><ptype>GLenum</ptype> <name>srcAlpha</name></param>
+ <param><ptype>GLenum</ptype> <name>dstAlpha</name></param>
+ <alias name="glBlendFuncSeparatei"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendFuncSeparateOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>srcRGB</name></param>
+ <param><ptype>GLenum</ptype> <name>dstRGB</name></param>
+ <param><ptype>GLenum</ptype> <name>srcAlpha</name></param>
+ <param><ptype>GLenum</ptype> <name>dstAlpha</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBlendFuncSeparatei</name></proto>
+ <param><ptype>GLuint</ptype> <name>buf</name></param>
+ <param><ptype>GLenum</ptype> <name>srcRGB</name></param>
+ <param><ptype>GLenum</ptype> <name>dstRGB</name></param>
+ <param><ptype>GLenum</ptype> <name>srcAlpha</name></param>
+ <param><ptype>GLenum</ptype> <name>dstAlpha</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBlendFuncSeparateiARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>buf</name></param>
+ <param><ptype>GLenum</ptype> <name>srcRGB</name></param>
+ <param><ptype>GLenum</ptype> <name>dstRGB</name></param>
+ <param><ptype>GLenum</ptype> <name>srcAlpha</name></param>
+ <param><ptype>GLenum</ptype> <name>dstAlpha</name></param>
+ <alias name="glBlendFuncSeparatei"/>
+ </command>
+ <command>
+ <proto>void <name>glBlendFunci</name></proto>
+ <param><ptype>GLuint</ptype> <name>buf</name></param>
+ <param><ptype>GLenum</ptype> <name>src</name></param>
+ <param><ptype>GLenum</ptype> <name>dst</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBlendFunciARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>buf</name></param>
+ <param><ptype>GLenum</ptype> <name>src</name></param>
+ <param><ptype>GLenum</ptype> <name>dst</name></param>
+ <alias name="glBlendFunci"/>
+ </command>
+ <command>
+ <proto>void <name>glBlitFramebuffer</name></proto>
+ <param><ptype>GLint</ptype> <name>srcX0</name></param>
+ <param><ptype>GLint</ptype> <name>srcY0</name></param>
+ <param><ptype>GLint</ptype> <name>srcX1</name></param>
+ <param><ptype>GLint</ptype> <name>srcY1</name></param>
+ <param><ptype>GLint</ptype> <name>dstX0</name></param>
+ <param><ptype>GLint</ptype> <name>dstY0</name></param>
+ <param><ptype>GLint</ptype> <name>dstX1</name></param>
+ <param><ptype>GLint</ptype> <name>dstY1</name></param>
+ <param group="ClearBufferMask"><ptype>GLbitfield</ptype> <name>mask</name></param>
+ <param><ptype>GLenum</ptype> <name>filter</name></param>
+ <glx type="render" opcode="4330"/>
+ </command>
+ <command>
+ <proto>void <name>glBlitFramebufferANGLE</name></proto>
+ <param><ptype>GLint</ptype> <name>srcX0</name></param>
+ <param><ptype>GLint</ptype> <name>srcY0</name></param>
+ <param><ptype>GLint</ptype> <name>srcX1</name></param>
+ <param><ptype>GLint</ptype> <name>srcY1</name></param>
+ <param><ptype>GLint</ptype> <name>dstX0</name></param>
+ <param><ptype>GLint</ptype> <name>dstY0</name></param>
+ <param><ptype>GLint</ptype> <name>dstX1</name></param>
+ <param><ptype>GLint</ptype> <name>dstY1</name></param>
+ <param><ptype>GLbitfield</ptype> <name>mask</name></param>
+ <param><ptype>GLenum</ptype> <name>filter</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBlitFramebufferEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>srcX0</name></param>
+ <param><ptype>GLint</ptype> <name>srcY0</name></param>
+ <param><ptype>GLint</ptype> <name>srcX1</name></param>
+ <param><ptype>GLint</ptype> <name>srcY1</name></param>
+ <param><ptype>GLint</ptype> <name>dstX0</name></param>
+ <param><ptype>GLint</ptype> <name>dstY0</name></param>
+ <param><ptype>GLint</ptype> <name>dstX1</name></param>
+ <param><ptype>GLint</ptype> <name>dstY1</name></param>
+ <param group="ClearBufferMask"><ptype>GLbitfield</ptype> <name>mask</name></param>
+ <param><ptype>GLenum</ptype> <name>filter</name></param>
+ <alias name="glBlitFramebuffer"/>
+ <glx type="render" opcode="4330"/>
+ </command>
+ <command>
+ <proto>void <name>glBlitFramebufferNV</name></proto>
+ <param><ptype>GLint</ptype> <name>srcX0</name></param>
+ <param><ptype>GLint</ptype> <name>srcY0</name></param>
+ <param><ptype>GLint</ptype> <name>srcX1</name></param>
+ <param><ptype>GLint</ptype> <name>srcY1</name></param>
+ <param><ptype>GLint</ptype> <name>dstX0</name></param>
+ <param><ptype>GLint</ptype> <name>dstY0</name></param>
+ <param><ptype>GLint</ptype> <name>dstX1</name></param>
+ <param><ptype>GLint</ptype> <name>dstY1</name></param>
+ <param><ptype>GLbitfield</ptype> <name>mask</name></param>
+ <param><ptype>GLenum</ptype> <name>filter</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBufferAddressRangeNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>address</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>length</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBufferData</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ <param len="size">const <ptype>GLvoid</ptype> *<name>data</name></param>
+ <param group="BufferUsageARB"><ptype>GLenum</ptype> <name>usage</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBufferDataARB</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferSizeARB"><ptype>GLsizeiptrARB</ptype> <name>size</name></param>
+ <param len="size">const <ptype>GLvoid</ptype> *<name>data</name></param>
+ <param group="BufferUsageARB"><ptype>GLenum</ptype> <name>usage</name></param>
+ <alias name="glBufferData"/>
+ </command>
+ <command>
+ <proto>void <name>glBufferParameteriAPPLE</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBufferSubData</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ <param len="size">const <ptype>GLvoid</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glBufferSubDataARB</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferOffsetARB"><ptype>GLintptrARB</ptype> <name>offset</name></param>
+ <param group="BufferSizeARB"><ptype>GLsizeiptrARB</ptype> <name>size</name></param>
+ <param len="size">const <ptype>GLvoid</ptype> *<name>data</name></param>
+ <alias name="glBufferSubData"/>
+ </command>
+ <command>
+ <proto>void <name>glCallList</name></proto>
+ <param group="List"><ptype>GLuint</ptype> <name>list</name></param>
+ <glx type="render" opcode="1"/>
+ </command>
+ <command>
+ <proto>void <name>glCallLists</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="ListNameType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(n,type)">const <ptype>GLvoid</ptype> *<name>lists</name></param>
+ <glx type="render" opcode="2"/>
+ </command>
+ <command>
+ <proto><ptype>GLenum</ptype> <name>glCheckFramebufferStatus</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <glx type="vendor" opcode="1427"/>
+ </command>
+ <command>
+ <proto><ptype>GLenum</ptype> <name>glCheckFramebufferStatusEXT</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <alias name="glCheckFramebufferStatus"/>
+ <glx type="vendor" opcode="1427"/>
+ </command>
+ <command>
+ <proto><ptype>GLenum</ptype> <name>glCheckFramebufferStatusOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ </command>
+ <command>
+ <proto group="FramebufferStatus"><ptype>GLenum</ptype> <name>glCheckNamedFramebufferStatusEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClampColor</name></proto>
+ <param group="ClampColorTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ClampColorModeARB"><ptype>GLenum</ptype> <name>clamp</name></param>
+ <glx type="render" opcode="234"/>
+ </command>
+ <command>
+ <proto>void <name>glClampColorARB</name></proto>
+ <param group="ClampColorTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ClampColorModeARB"><ptype>GLenum</ptype> <name>clamp</name></param>
+ <alias name="glClampColor"/>
+ <glx type="render" opcode="234"/>
+ </command>
+ <command>
+ <proto>void <name>glClear</name></proto>
+ <param group="ClearBufferMask"><ptype>GLbitfield</ptype> <name>mask</name></param>
+ <glx type="render" opcode="127"/>
+ </command>
+ <command>
+ <proto>void <name>glClearAccum</name></proto>
+ <param><ptype>GLfloat</ptype> <name>red</name></param>
+ <param><ptype>GLfloat</ptype> <name>green</name></param>
+ <param><ptype>GLfloat</ptype> <name>blue</name></param>
+ <param><ptype>GLfloat</ptype> <name>alpha</name></param>
+ <glx type="render" opcode="128"/>
+ </command>
+ <command>
+ <proto>void <name>glClearAccumxOES</name></proto>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>red</name></param>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>green</name></param>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>blue</name></param>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>alpha</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearBufferData</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type)">const void *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearBufferSubData</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type)">const void *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearBufferfi</name></proto>
+ <param><ptype>GLenum</ptype> <name>buffer</name></param>
+ <param group="DrawBufferName"><ptype>GLint</ptype> <name>drawbuffer</name></param>
+ <param><ptype>GLfloat</ptype> <name>depth</name></param>
+ <param><ptype>GLint</ptype> <name>stencil</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearBufferfv</name></proto>
+ <param><ptype>GLenum</ptype> <name>buffer</name></param>
+ <param group="DrawBufferName"><ptype>GLint</ptype> <name>drawbuffer</name></param>
+ <param len="COMPSIZE(buffer)">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearBufferiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>buffer</name></param>
+ <param group="DrawBufferName"><ptype>GLint</ptype> <name>drawbuffer</name></param>
+ <param len="COMPSIZE(buffer)">const <ptype>GLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearBufferuiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>buffer</name></param>
+ <param group="DrawBufferName"><ptype>GLint</ptype> <name>drawbuffer</name></param>
+ <param len="COMPSIZE(buffer)">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearColor</name></proto>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>red</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>green</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>blue</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>alpha</name></param>
+ <glx type="render" opcode="130"/>
+ </command>
+ <command>
+ <proto>void <name>glClearColorIiEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>red</name></param>
+ <param><ptype>GLint</ptype> <name>green</name></param>
+ <param><ptype>GLint</ptype> <name>blue</name></param>
+ <param><ptype>GLint</ptype> <name>alpha</name></param>
+ <glx type="render" opcode="4292"/>
+ </command>
+ <command>
+ <proto>void <name>glClearColorIuiEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>red</name></param>
+ <param><ptype>GLuint</ptype> <name>green</name></param>
+ <param><ptype>GLuint</ptype> <name>blue</name></param>
+ <param><ptype>GLuint</ptype> <name>alpha</name></param>
+ <glx type="render" opcode="4293"/>
+ </command>
+ <command>
+ <proto>void <name>glClearColorx</name></proto>
+ <param><ptype>GLfixed</ptype> <name>red</name></param>
+ <param><ptype>GLfixed</ptype> <name>green</name></param>
+ <param><ptype>GLfixed</ptype> <name>blue</name></param>
+ <param><ptype>GLfixed</ptype> <name>alpha</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearColorxOES</name></proto>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>red</name></param>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>green</name></param>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>blue</name></param>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>alpha</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearDepth</name></proto>
+ <param><ptype>GLdouble</ptype> <name>depth</name></param>
+ <glx type="render" opcode="132"/>
+ </command>
+ <command>
+ <proto>void <name>glClearDepthdNV</name></proto>
+ <param><ptype>GLdouble</ptype> <name>depth</name></param>
+ <glx type="render" opcode="4284"/>
+ </command>
+ <command>
+ <proto>void <name>glClearDepthf</name></proto>
+ <param><ptype>GLfloat</ptype> <name>d</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearDepthfOES</name></proto>
+ <param group="ClampedFloat32"><ptype>GLclampf</ptype> <name>depth</name></param>
+ <glx type="render" opcode="4308"/>
+ <alias name="glClearDepthf"/>
+ </command>
+ <command>
+ <proto>void <name>glClearDepthx</name></proto>
+ <param><ptype>GLfixed</ptype> <name>depth</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearDepthxOES</name></proto>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>depth</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearIndex</name></proto>
+ <param group="MaskedColorIndexValueF"><ptype>GLfloat</ptype> <name>c</name></param>
+ <glx type="render" opcode="129"/>
+ </command>
+ <command>
+ <proto>void <name>glClearNamedBufferDataEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type)">const void *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearNamedBufferSubDataEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>offset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ <param len="COMPSIZE(format,type)">const void *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClearStencil</name></proto>
+ <param group="StencilValue"><ptype>GLint</ptype> <name>s</name></param>
+ <glx type="render" opcode="131"/>
+ </command>
+ <command>
+ <proto>void <name>glClientActiveTexture</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texture</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClientActiveTextureARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texture</name></param>
+ <alias name="glClientActiveTexture"/>
+ </command>
+ <command>
+ <proto>void <name>glClientActiveVertexStreamATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClientAttribDefaultEXT</name></proto>
+ <param group="ClientAttribMask"><ptype>GLbitfield</ptype> <name>mask</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLenum</ptype> <name>glClientWaitSync</name></proto>
+ <param group="sync"><ptype>GLsync</ptype> <name>sync</name></param>
+ <param><ptype>GLbitfield</ptype> <name>flags</name></param>
+ <param><ptype>GLuint64</ptype> <name>timeout</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLenum</ptype> <name>glClientWaitSyncAPPLE</name></proto>
+ <param><ptype>GLsync</ptype> <name>sync</name></param>
+ <param><ptype>GLbitfield</ptype> <name>flags</name></param>
+ <param><ptype>GLuint64</ptype> <name>timeout</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClipPlane</name></proto>
+ <param group="ClipPlaneName"><ptype>GLenum</ptype> <name>plane</name></param>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>equation</name></param>
+ <glx type="render" opcode="77"/>
+ </command>
+ <command>
+ <proto>void <name>glClipPlanef</name></proto>
+ <param><ptype>GLenum</ptype> <name>p</name></param>
+ <param>const <ptype>GLfloat</ptype> *<name>eqn</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClipPlanefIMG</name></proto>
+ <param><ptype>GLenum</ptype> <name>p</name></param>
+ <param>const <ptype>GLfloat</ptype> *<name>eqn</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClipPlanefOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>plane</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>equation</name></param>
+ <glx type="render" opcode="4312"/>
+ </command>
+ <command>
+ <proto>void <name>glClipPlanex</name></proto>
+ <param><ptype>GLenum</ptype> <name>plane</name></param>
+ <param>const <ptype>GLfixed</ptype> *<name>equation</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClipPlanexIMG</name></proto>
+ <param><ptype>GLenum</ptype> <name>p</name></param>
+ <param>const <ptype>GLfixed</ptype> *<name>eqn</name></param>
+ </command>
+ <command>
+ <proto>void <name>glClipPlanexOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>plane</name></param>
+ <param len="4">const <ptype>GLfixed</ptype> *<name>equation</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColor3b</name></proto>
+ <param group="ColorB"><ptype>GLbyte</ptype> <name>red</name></param>
+ <param group="ColorB"><ptype>GLbyte</ptype> <name>green</name></param>
+ <param group="ColorB"><ptype>GLbyte</ptype> <name>blue</name></param>
+ <vecequiv name="glColor3bv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3bv</name></proto>
+ <param group="ColorB" len="3">const <ptype>GLbyte</ptype> *<name>v</name></param>
+ <glx type="render" opcode="6"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3d</name></proto>
+ <param group="ColorD"><ptype>GLdouble</ptype> <name>red</name></param>
+ <param group="ColorD"><ptype>GLdouble</ptype> <name>green</name></param>
+ <param group="ColorD"><ptype>GLdouble</ptype> <name>blue</name></param>
+ <vecequiv name="glColor3dv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3dv</name></proto>
+ <param group="ColorD" len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="7"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3f</name></proto>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>red</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>green</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>blue</name></param>
+ <vecequiv name="glColor3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3fVertex3fSUN</name></proto>
+ <param><ptype>GLfloat</ptype> <name>r</name></param>
+ <param><ptype>GLfloat</ptype> <name>g</name></param>
+ <param><ptype>GLfloat</ptype> <name>b</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColor3fVertex3fvSUN</name></proto>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>c</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColor3fv</name></proto>
+ <param group="ColorF" len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="8"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3hNV</name></proto>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>red</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>green</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>blue</name></param>
+ <vecequiv name="glColor3hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3hvNV</name></proto>
+ <param group="Half16NV" len="3">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4244"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3i</name></proto>
+ <param group="ColorI"><ptype>GLint</ptype> <name>red</name></param>
+ <param group="ColorI"><ptype>GLint</ptype> <name>green</name></param>
+ <param group="ColorI"><ptype>GLint</ptype> <name>blue</name></param>
+ <vecequiv name="glColor3iv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3iv</name></proto>
+ <param group="ColorI" len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="9"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3s</name></proto>
+ <param group="ColorS"><ptype>GLshort</ptype> <name>red</name></param>
+ <param group="ColorS"><ptype>GLshort</ptype> <name>green</name></param>
+ <param group="ColorS"><ptype>GLshort</ptype> <name>blue</name></param>
+ <vecequiv name="glColor3sv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3sv</name></proto>
+ <param group="ColorS" len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="10"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3ub</name></proto>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>red</name></param>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>green</name></param>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>blue</name></param>
+ <vecequiv name="glColor3ubv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3ubv</name></proto>
+ <param group="ColorUB" len="3">const <ptype>GLubyte</ptype> *<name>v</name></param>
+ <glx type="render" opcode="11"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3ui</name></proto>
+ <param group="ColorUI"><ptype>GLuint</ptype> <name>red</name></param>
+ <param group="ColorUI"><ptype>GLuint</ptype> <name>green</name></param>
+ <param group="ColorUI"><ptype>GLuint</ptype> <name>blue</name></param>
+ <vecequiv name="glColor3uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3uiv</name></proto>
+ <param group="ColorUI" len="3">const <ptype>GLuint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="12"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3us</name></proto>
+ <param group="ColorUS"><ptype>GLushort</ptype> <name>red</name></param>
+ <param group="ColorUS"><ptype>GLushort</ptype> <name>green</name></param>
+ <param group="ColorUS"><ptype>GLushort</ptype> <name>blue</name></param>
+ <vecequiv name="glColor3usv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3usv</name></proto>
+ <param group="ColorUS" len="3">const <ptype>GLushort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="13"/>
+ </command>
+ <command>
+ <proto>void <name>glColor3xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>red</name></param>
+ <param><ptype>GLfixed</ptype> <name>green</name></param>
+ <param><ptype>GLfixed</ptype> <name>blue</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColor3xvOES</name></proto>
+ <param len="3">const <ptype>GLfixed</ptype> *<name>components</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColor4b</name></proto>
+ <param group="ColorB"><ptype>GLbyte</ptype> <name>red</name></param>
+ <param group="ColorB"><ptype>GLbyte</ptype> <name>green</name></param>
+ <param group="ColorB"><ptype>GLbyte</ptype> <name>blue</name></param>
+ <param group="ColorB"><ptype>GLbyte</ptype> <name>alpha</name></param>
+ <vecequiv name="glColor4bv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4bv</name></proto>
+ <param group="ColorB" len="4">const <ptype>GLbyte</ptype> *<name>v</name></param>
+ <glx type="render" opcode="14"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4d</name></proto>
+ <param group="ColorD"><ptype>GLdouble</ptype> <name>red</name></param>
+ <param group="ColorD"><ptype>GLdouble</ptype> <name>green</name></param>
+ <param group="ColorD"><ptype>GLdouble</ptype> <name>blue</name></param>
+ <param group="ColorD"><ptype>GLdouble</ptype> <name>alpha</name></param>
+ <vecequiv name="glColor4dv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4dv</name></proto>
+ <param group="ColorD" len="4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="15"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4f</name></proto>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>red</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>green</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>blue</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>alpha</name></param>
+ <vecequiv name="glColor4fv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4fNormal3fVertex3fSUN</name></proto>
+ <param><ptype>GLfloat</ptype> <name>r</name></param>
+ <param><ptype>GLfloat</ptype> <name>g</name></param>
+ <param><ptype>GLfloat</ptype> <name>b</name></param>
+ <param><ptype>GLfloat</ptype> <name>a</name></param>
+ <param><ptype>GLfloat</ptype> <name>nx</name></param>
+ <param><ptype>GLfloat</ptype> <name>ny</name></param>
+ <param><ptype>GLfloat</ptype> <name>nz</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColor4fNormal3fVertex3fvSUN</name></proto>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>c</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>n</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColor4fv</name></proto>
+ <param group="ColorF" len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="16"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4hNV</name></proto>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>red</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>green</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>blue</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>alpha</name></param>
+ <vecequiv name="glColor4hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4hvNV</name></proto>
+ <param group="Half16NV" len="4">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4245"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4i</name></proto>
+ <param group="ColorI"><ptype>GLint</ptype> <name>red</name></param>
+ <param group="ColorI"><ptype>GLint</ptype> <name>green</name></param>
+ <param group="ColorI"><ptype>GLint</ptype> <name>blue</name></param>
+ <param group="ColorI"><ptype>GLint</ptype> <name>alpha</name></param>
+ <vecequiv name="glColor4iv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4iv</name></proto>
+ <param group="ColorI" len="4">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="17"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4s</name></proto>
+ <param group="ColorS"><ptype>GLshort</ptype> <name>red</name></param>
+ <param group="ColorS"><ptype>GLshort</ptype> <name>green</name></param>
+ <param group="ColorS"><ptype>GLshort</ptype> <name>blue</name></param>
+ <param group="ColorS"><ptype>GLshort</ptype> <name>alpha</name></param>
+ <vecequiv name="glColor4sv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4sv</name></proto>
+ <param group="ColorS" len="4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="18"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4ub</name></proto>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>red</name></param>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>green</name></param>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>blue</name></param>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>alpha</name></param>
+ <vecequiv name="glColor4ubv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4ubVertex2fSUN</name></proto>
+ <param><ptype>GLubyte</ptype> <name>r</name></param>
+ <param><ptype>GLubyte</ptype> <name>g</name></param>
+ <param><ptype>GLubyte</ptype> <name>b</name></param>
+ <param><ptype>GLubyte</ptype> <name>a</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColor4ubVertex2fvSUN</name></proto>
+ <param len="4">const <ptype>GLubyte</ptype> *<name>c</name></param>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColor4ubVertex3fSUN</name></proto>
+ <param><ptype>GLubyte</ptype> <name>r</name></param>
+ <param><ptype>GLubyte</ptype> <name>g</name></param>
+ <param><ptype>GLubyte</ptype> <name>b</name></param>
+ <param><ptype>GLubyte</ptype> <name>a</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColor4ubVertex3fvSUN</name></proto>
+ <param len="4">const <ptype>GLubyte</ptype> *<name>c</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColor4ubv</name></proto>
+ <param group="ColorUB" len="4">const <ptype>GLubyte</ptype> *<name>v</name></param>
+ <glx type="render" opcode="19"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4ui</name></proto>
+ <param group="ColorUI"><ptype>GLuint</ptype> <name>red</name></param>
+ <param group="ColorUI"><ptype>GLuint</ptype> <name>green</name></param>
+ <param group="ColorUI"><ptype>GLuint</ptype> <name>blue</name></param>
+ <param group="ColorUI"><ptype>GLuint</ptype> <name>alpha</name></param>
+ <vecequiv name="glColor4uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4uiv</name></proto>
+ <param group="ColorUI" len="4">const <ptype>GLuint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="20"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4us</name></proto>
+ <param group="ColorUS"><ptype>GLushort</ptype> <name>red</name></param>
+ <param group="ColorUS"><ptype>GLushort</ptype> <name>green</name></param>
+ <param group="ColorUS"><ptype>GLushort</ptype> <name>blue</name></param>
+ <param group="ColorUS"><ptype>GLushort</ptype> <name>alpha</name></param>
+ <vecequiv name="glColor4usv"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4usv</name></proto>
+ <param group="ColorUS" len="4">const <ptype>GLushort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="21"/>
+ </command>
+ <command>
+ <proto>void <name>glColor4x</name></proto>
+ <param><ptype>GLfixed</ptype> <name>red</name></param>
+ <param><ptype>GLfixed</ptype> <name>green</name></param>
+ <param><ptype>GLfixed</ptype> <name>blue</name></param>
+ <param><ptype>GLfixed</ptype> <name>alpha</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColor4xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>red</name></param>
+ <param><ptype>GLfixed</ptype> <name>green</name></param>
+ <param><ptype>GLfixed</ptype> <name>blue</name></param>
+ <param><ptype>GLfixed</ptype> <name>alpha</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColor4xvOES</name></proto>
+ <param len="4">const <ptype>GLfixed</ptype> *<name>components</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColorFormatNV</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColorFragmentOp1ATI</name></proto>
+ <param group="FragmentOpATI"><ptype>GLenum</ptype> <name>op</name></param>
+ <param><ptype>GLuint</ptype> <name>dst</name></param>
+ <param><ptype>GLuint</ptype> <name>dstMask</name></param>
+ <param><ptype>GLuint</ptype> <name>dstMod</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1Rep</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1Mod</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColorFragmentOp2ATI</name></proto>
+ <param group="FragmentOpATI"><ptype>GLenum</ptype> <name>op</name></param>
+ <param><ptype>GLuint</ptype> <name>dst</name></param>
+ <param><ptype>GLuint</ptype> <name>dstMask</name></param>
+ <param><ptype>GLuint</ptype> <name>dstMod</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1Rep</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1Mod</name></param>
+ <param><ptype>GLuint</ptype> <name>arg2</name></param>
+ <param><ptype>GLuint</ptype> <name>arg2Rep</name></param>
+ <param><ptype>GLuint</ptype> <name>arg2Mod</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColorFragmentOp3ATI</name></proto>
+ <param group="FragmentOpATI"><ptype>GLenum</ptype> <name>op</name></param>
+ <param><ptype>GLuint</ptype> <name>dst</name></param>
+ <param><ptype>GLuint</ptype> <name>dstMask</name></param>
+ <param><ptype>GLuint</ptype> <name>dstMod</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1Rep</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1Mod</name></param>
+ <param><ptype>GLuint</ptype> <name>arg2</name></param>
+ <param><ptype>GLuint</ptype> <name>arg2Rep</name></param>
+ <param><ptype>GLuint</ptype> <name>arg2Mod</name></param>
+ <param><ptype>GLuint</ptype> <name>arg3</name></param>
+ <param><ptype>GLuint</ptype> <name>arg3Rep</name></param>
+ <param><ptype>GLuint</ptype> <name>arg3Mod</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColorMask</name></proto>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>red</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>green</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>blue</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>alpha</name></param>
+ <glx type="render" opcode="134"/>
+ </command>
+ <command>
+ <proto>void <name>glColorMaskIndexedEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>r</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>g</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>b</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>a</name></param>
+ <alias name="glColorMaski"/>
+ </command>
+ <command>
+ <proto>void <name>glColorMaski</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>r</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>g</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>b</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>a</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColorMaterial</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="ColorMaterialParameter"><ptype>GLenum</ptype> <name>mode</name></param>
+ <glx type="render" opcode="78"/>
+ </command>
+ <command>
+ <proto>void <name>glColorP3ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>color</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColorP3uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>color</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColorP4ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>color</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColorP4uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>color</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColorPointer</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="ColorPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const <ptype>GLvoid</ptype> *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColorPointerEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="ColorPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(size,type,stride,count)">const <ptype>GLvoid</ptype> *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColorPointerListIBM</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="ColorPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLint</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const <ptype>GLvoid</ptype> **<name>pointer</name></param>
+ <param><ptype>GLint</ptype> <name>ptrstride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColorPointervINTEL</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="4">const <ptype>GLvoid</ptype> **<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glColorSubTable</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>start</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,count)">const <ptype>GLvoid</ptype> *<name>data</name></param>
+ <glx type="render" opcode="195"/>
+ <glx type="render" opcode="312" name="glColorSubTablePBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glColorSubTableEXT</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>start</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,count)">const <ptype>GLvoid</ptype> *<name>data</name></param>
+ <alias name="glColorSubTable"/>
+ </command>
+ <command>
+ <proto>void <name>glColorTable</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width)">const <ptype>GLvoid</ptype> *<name>table</name></param>
+ <glx type="render" opcode="2053"/>
+ <glx type="render" opcode="313" name="glColorTablePBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glColorTableEXT</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalFormat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width)">const <ptype>GLvoid</ptype> *<name>table</name></param>
+ <alias name="glColorTable"/>
+ </command>
+ <command>
+ <proto>void <name>glColorTableParameterfv</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ColorTableParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="2054"/>
+ </command>
+ <command>
+ <proto>void <name>glColorTableParameterfvSGI</name></proto>
+ <param group="ColorTableTargetSGI"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ColorTableParameterPNameSGI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <alias name="glColorTableParameterfv"/>
+ <glx type="render" opcode="2054"/>
+ </command>
+ <command>
+ <proto>void <name>glColorTableParameteriv</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ColorTableParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="2055"/>
+ </command>
+ <command>
+ <proto>void <name>glColorTableParameterivSGI</name></proto>
+ <param group="ColorTableTargetSGI"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ColorTableParameterPNameSGI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glColorTableParameteriv"/>
+ <glx type="render" opcode="2055"/>
+ </command>
+ <command>
+ <proto>void <name>glColorTableSGI</name></proto>
+ <param group="ColorTableTargetSGI"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width)">const <ptype>GLvoid</ptype> *<name>table</name></param>
+ <alias name="glColorTable"/>
+ <glx type="render" opcode="2053"/>
+ </command>
+ <command>
+ <proto>void <name>glCombinerInputNV</name></proto>
+ <param group="CombinerStageNV"><ptype>GLenum</ptype> <name>stage</name></param>
+ <param group="CombinerPortionNV"><ptype>GLenum</ptype> <name>portion</name></param>
+ <param group="CombinerVariableNV"><ptype>GLenum</ptype> <name>variable</name></param>
+ <param group="CombinerRegisterNV"><ptype>GLenum</ptype> <name>input</name></param>
+ <param group="CombinerMappingNV"><ptype>GLenum</ptype> <name>mapping</name></param>
+ <param group="CombinerComponentUsageNV"><ptype>GLenum</ptype> <name>componentUsage</name></param>
+ <glx type="render" opcode="4140"/>
+ </command>
+ <command>
+ <proto>void <name>glCombinerOutputNV</name></proto>
+ <param group="CombinerStageNV"><ptype>GLenum</ptype> <name>stage</name></param>
+ <param group="CombinerPortionNV"><ptype>GLenum</ptype> <name>portion</name></param>
+ <param group="CombinerRegisterNV"><ptype>GLenum</ptype> <name>abOutput</name></param>
+ <param group="CombinerRegisterNV"><ptype>GLenum</ptype> <name>cdOutput</name></param>
+ <param group="CombinerRegisterNV"><ptype>GLenum</ptype> <name>sumOutput</name></param>
+ <param group="CombinerScaleNV"><ptype>GLenum</ptype> <name>scale</name></param>
+ <param group="CombinerBiasNV"><ptype>GLenum</ptype> <name>bias</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>abDotProduct</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>cdDotProduct</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>muxSum</name></param>
+ <glx type="render" opcode="4141"/>
+ </command>
+ <command>
+ <proto>void <name>glCombinerParameterfNV</name></proto>
+ <param group="CombinerParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfloat</ptype> <name>param</name></param>
+ <glx type="render" opcode="4136"/>
+ </command>
+ <command>
+ <proto>void <name>glCombinerParameterfvNV</name></proto>
+ <param group="CombinerParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="4137"/>
+ </command>
+ <command>
+ <proto>void <name>glCombinerParameteriNV</name></proto>
+ <param group="CombinerParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ <glx type="render" opcode="4138"/>
+ </command>
+ <command>
+ <proto>void <name>glCombinerParameterivNV</name></proto>
+ <param group="CombinerParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="4139"/>
+ </command>
+ <command>
+ <proto>void <name>glCombinerStageParameterfvNV</name></proto>
+ <param group="CombinerStageNV"><ptype>GLenum</ptype> <name>stage</name></param>
+ <param group="CombinerParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompileShader</name></proto>
+ <param><ptype>GLuint</ptype> <name>shader</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompileShaderARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>shaderObj</name></param>
+ <alias name="glCompileShader"/>
+ </command>
+ <command>
+ <proto>void <name>glCompileShaderIncludeARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>shader</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLchar</ptype> *const*<name>path</name></param>
+ <param len="count">const <ptype>GLint</ptype> *<name>length</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompressedMultiTexImage1DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param len="imageSize">const <ptype>GLvoid</ptype> *<name>bits</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompressedMultiTexImage2DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param len="imageSize">const <ptype>GLvoid</ptype> *<name>bits</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompressedMultiTexImage3DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param len="imageSize">const <ptype>GLvoid</ptype> *<name>bits</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompressedMultiTexSubImage1DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param len="imageSize">const <ptype>GLvoid</ptype> *<name>bits</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompressedMultiTexSubImage2DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param len="imageSize">const <ptype>GLvoid</ptype> *<name>bits</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompressedMultiTexSubImage3DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param len="imageSize">const <ptype>GLvoid</ptype> *<name>bits</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTexImage1D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param group="CompressedTextureARB" len="imageSize">const <ptype>GLvoid</ptype> *<name>data</name></param>
+ <glx type="render" opcode="214"/>
+ <glx type="render" opcode="314" name="glCompressedTexImage1DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTexImage1DARB</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param group="CompressedTextureARB" len="imageSize">const <ptype>GLvoid</ptype> *<name>data</name></param>
+ <alias name="glCompressedTexImage1D"/>
+ <glx type="render" opcode="214"/>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTexImage2D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param group="CompressedTextureARB" len="imageSize">const <ptype>GLvoid</ptype> *<name>data</name></param>
+ <glx type="render" opcode="215"/>
+ <glx type="render" opcode="315" name="glCompressedTexImage2DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTexImage2DARB</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param group="CompressedTextureARB" len="imageSize">const <ptype>GLvoid</ptype> *<name>data</name></param>
+ <alias name="glCompressedTexImage2D"/>
+ <glx type="render" opcode="215"/>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTexImage3D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param group="CompressedTextureARB" len="imageSize">const <ptype>GLvoid</ptype> *<name>data</name></param>
+ <glx type="render" opcode="216"/>
+ <glx type="render" opcode="316" name="glCompressedTexImage3DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTexImage3DARB</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param group="CompressedTextureARB" len="imageSize">const <ptype>GLvoid</ptype> *<name>data</name></param>
+ <alias name="glCompressedTexImage3D"/>
+ <glx type="render" opcode="216"/>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTexImage3DOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param><ptype>GLint</ptype> <name>border</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param>const <ptype>GLvoid</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTexSubImage1D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param group="CompressedTextureARB" len="imageSize">const <ptype>GLvoid</ptype> *<name>data</name></param>
+ <glx type="render" opcode="217"/>
+ <glx type="render" opcode="317" name="glCompressedTexSubImage1DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTexSubImage1DARB</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param group="CompressedTextureARB" len="imageSize">const <ptype>GLvoid</ptype> *<name>data</name></param>
+ <alias name="glCompressedTexSubImage1D"/>
+ <glx type="render" opcode="217"/>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTexSubImage2D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param group="CompressedTextureARB" len="imageSize">const <ptype>GLvoid</ptype> *<name>data</name></param>
+ <glx type="render" opcode="218"/>
+ <glx type="render" opcode="318" name="glCompressedTexSubImage2DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTexSubImage2DARB</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param group="CompressedTextureARB" len="imageSize">const <ptype>GLvoid</ptype> *<name>data</name></param>
+ <alias name="glCompressedTexSubImage2D"/>
+ <glx type="render" opcode="218"/>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTexSubImage3D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param group="CompressedTextureARB" len="imageSize">const <ptype>GLvoid</ptype> *<name>data</name></param>
+ <glx type="render" opcode="219"/>
+ <glx type="render" opcode="319" name="glCompressedTexSubImage3DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTexSubImage3DARB</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param group="CompressedTextureARB" len="imageSize">const <ptype>GLvoid</ptype> *<name>data</name></param>
+ <alias name="glCompressedTexSubImage3D"/>
+ <glx type="render" opcode="219"/>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTexSubImage3DOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param>const <ptype>GLvoid</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTextureImage1DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param len="imageSize">const <ptype>GLvoid</ptype> *<name>bits</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTextureImage2DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param len="imageSize">const <ptype>GLvoid</ptype> *<name>bits</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTextureImage3DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param len="imageSize">const <ptype>GLvoid</ptype> *<name>bits</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTextureSubImage1DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param len="imageSize">const <ptype>GLvoid</ptype> *<name>bits</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTextureSubImage2DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param len="imageSize">const <ptype>GLvoid</ptype> *<name>bits</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCompressedTextureSubImage3DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>imageSize</name></param>
+ <param len="imageSize">const <ptype>GLvoid</ptype> *<name>bits</name></param>
+ </command>
+ <command>
+ <proto>void <name>glConvolutionFilter1D</name></proto>
+ <param group="ConvolutionTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width)">const <ptype>GLvoid</ptype> *<name>image</name></param>
+ <glx type="render" opcode="4101"/>
+ <glx type="render" opcode="320" name="glConvolutionFilter1DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glConvolutionFilter1DEXT</name></proto>
+ <param group="ConvolutionTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width)">const <ptype>GLvoid</ptype> *<name>image</name></param>
+ <alias name="glConvolutionFilter1D"/>
+ <glx type="render" opcode="4101"/>
+ </command>
+ <command>
+ <proto>void <name>glConvolutionFilter2D</name></proto>
+ <param group="ConvolutionTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height)">const <ptype>GLvoid</ptype> *<name>image</name></param>
+ <glx type="render" opcode="4102"/>
+ <glx type="render" opcode="321" name="glConvolutionFilter2DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glConvolutionFilter2DEXT</name></proto>
+ <param group="ConvolutionTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height)">const <ptype>GLvoid</ptype> *<name>image</name></param>
+ <alias name="glConvolutionFilter2D"/>
+ <glx type="render" opcode="4102"/>
+ </command>
+ <command>
+ <proto>void <name>glConvolutionParameterf</name></proto>
+ <param group="ConvolutionTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ConvolutionParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>params</name></param>
+ <glx type="render" opcode="4103"/>
+ </command>
+ <command>
+ <proto>void <name>glConvolutionParameterfEXT</name></proto>
+ <param group="ConvolutionTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ConvolutionParameterEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>params</name></param>
+ <alias name="glConvolutionParameterf"/>
+ <glx type="render" opcode="4103"/>
+ </command>
+ <command>
+ <proto>void <name>glConvolutionParameterfv</name></proto>
+ <param group="ConvolutionTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ConvolutionParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="4104"/>
+ </command>
+ <command>
+ <proto>void <name>glConvolutionParameterfvEXT</name></proto>
+ <param group="ConvolutionTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ConvolutionParameterEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <alias name="glConvolutionParameterfv"/>
+ <glx type="render" opcode="4104"/>
+ </command>
+ <command>
+ <proto>void <name>glConvolutionParameteri</name></proto>
+ <param group="ConvolutionTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ConvolutionParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>params</name></param>
+ <glx type="render" opcode="4105"/>
+ </command>
+ <command>
+ <proto>void <name>glConvolutionParameteriEXT</name></proto>
+ <param group="ConvolutionTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ConvolutionParameterEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>params</name></param>
+ <alias name="glConvolutionParameteri"/>
+ <glx type="render" opcode="4105"/>
+ </command>
+ <command>
+ <proto>void <name>glConvolutionParameteriv</name></proto>
+ <param group="ConvolutionTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ConvolutionParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="4106"/>
+ </command>
+ <command>
+ <proto>void <name>glConvolutionParameterivEXT</name></proto>
+ <param group="ConvolutionTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ConvolutionParameterEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glConvolutionParameteriv"/>
+ <glx type="render" opcode="4106"/>
+ </command>
+ <command>
+ <proto>void <name>glConvolutionParameterxOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glConvolutionParameterxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyBufferSubData</name></proto>
+ <param><ptype>GLenum</ptype> <name>readTarget</name></param>
+ <param><ptype>GLenum</ptype> <name>writeTarget</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>readOffset</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>writeOffset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyColorSubTable</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>start</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <glx type="render" opcode="196"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyColorSubTableEXT</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>start</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <alias name="glCopyColorSubTable"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyColorTable</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <glx type="render" opcode="2056"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyColorTableSGI</name></proto>
+ <param group="ColorTableTargetSGI"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <alias name="glCopyColorTable"/>
+ <glx type="render" opcode="2056"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyConvolutionFilter1D</name></proto>
+ <param group="ConvolutionTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <glx type="render" opcode="4107"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyConvolutionFilter1DEXT</name></proto>
+ <param group="ConvolutionTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <alias name="glCopyConvolutionFilter1D"/>
+ <glx type="render" opcode="4107"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyConvolutionFilter2D</name></proto>
+ <param group="ConvolutionTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <glx type="render" opcode="4108"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyConvolutionFilter2DEXT</name></proto>
+ <param group="ConvolutionTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <alias name="glCopyConvolutionFilter2D"/>
+ <glx type="render" opcode="4108"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyImageSubData</name></proto>
+ <param><ptype>GLuint</ptype> <name>srcName</name></param>
+ <param><ptype>GLenum</ptype> <name>srcTarget</name></param>
+ <param><ptype>GLint</ptype> <name>srcLevel</name></param>
+ <param><ptype>GLint</ptype> <name>srcX</name></param>
+ <param><ptype>GLint</ptype> <name>srcY</name></param>
+ <param><ptype>GLint</ptype> <name>srcZ</name></param>
+ <param><ptype>GLuint</ptype> <name>dstName</name></param>
+ <param><ptype>GLenum</ptype> <name>dstTarget</name></param>
+ <param><ptype>GLint</ptype> <name>dstLevel</name></param>
+ <param><ptype>GLint</ptype> <name>dstX</name></param>
+ <param><ptype>GLint</ptype> <name>dstY</name></param>
+ <param><ptype>GLint</ptype> <name>dstZ</name></param>
+ <param><ptype>GLsizei</ptype> <name>srcWidth</name></param>
+ <param><ptype>GLsizei</ptype> <name>srcHeight</name></param>
+ <param><ptype>GLsizei</ptype> <name>srcDepth</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyImageSubDataNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>srcName</name></param>
+ <param><ptype>GLenum</ptype> <name>srcTarget</name></param>
+ <param><ptype>GLint</ptype> <name>srcLevel</name></param>
+ <param><ptype>GLint</ptype> <name>srcX</name></param>
+ <param><ptype>GLint</ptype> <name>srcY</name></param>
+ <param><ptype>GLint</ptype> <name>srcZ</name></param>
+ <param><ptype>GLuint</ptype> <name>dstName</name></param>
+ <param><ptype>GLenum</ptype> <name>dstTarget</name></param>
+ <param><ptype>GLint</ptype> <name>dstLevel</name></param>
+ <param><ptype>GLint</ptype> <name>dstX</name></param>
+ <param><ptype>GLint</ptype> <name>dstY</name></param>
+ <param><ptype>GLint</ptype> <name>dstZ</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <glx type="render" opcode="4291"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyMultiTexImage1DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyMultiTexImage2DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyMultiTexSubImage1DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyMultiTexSubImage2DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyMultiTexSubImage3DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyPathNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>resultPath</name></param>
+ <param group="Path"><ptype>GLuint</ptype> <name>srcPath</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyPixels</name></proto>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelCopyType"><ptype>GLenum</ptype> <name>type</name></param>
+ <glx type="render" opcode="172"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyTexImage1D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <glx type="render" opcode="4119"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyTexImage1DEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <alias name="glCopyTexImage1D"/>
+ <glx type="render" opcode="4119"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyTexImage2D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <glx type="render" opcode="4120"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyTexImage2DEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <alias name="glCopyTexImage2D"/>
+ <glx type="render" opcode="4120"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyTexSubImage1D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <glx type="render" opcode="4121"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyTexSubImage1DEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <alias name="glCopyTexSubImage1D"/>
+ <glx type="render" opcode="4121"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyTexSubImage2D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <glx type="render" opcode="4122"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyTexSubImage2DEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <alias name="glCopyTexSubImage2D"/>
+ <glx type="render" opcode="4122"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyTexSubImage3D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <glx type="render" opcode="4123"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyTexSubImage3DEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <alias name="glCopyTexSubImage3D"/>
+ <glx type="render" opcode="4123"/>
+ </command>
+ <command>
+ <proto>void <name>glCopyTexSubImage3DOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyTextureImage1DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyTextureImage2DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyTextureLevelsAPPLE</name></proto>
+ <param><ptype>GLuint</ptype> <name>destinationTexture</name></param>
+ <param><ptype>GLuint</ptype> <name>sourceTexture</name></param>
+ <param><ptype>GLint</ptype> <name>sourceBaseLevel</name></param>
+ <param><ptype>GLsizei</ptype> <name>sourceLevelCount</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyTextureSubImage1DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyTextureSubImage2DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCopyTextureSubImage3DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCoverFillPathInstancedNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>numPaths</name></param>
+ <param group="PathElementType"><ptype>GLenum</ptype> <name>pathNameType</name></param>
+ <param group="PathElement" len="COMPSIZE(numPaths,pathNameType,paths)">const <ptype>GLvoid</ptype> *<name>paths</name></param>
+ <param group="Path"><ptype>GLuint</ptype> <name>pathBase</name></param>
+ <param group="PathCoverMode"><ptype>GLenum</ptype> <name>coverMode</name></param>
+ <param group="PathTransformType"><ptype>GLenum</ptype> <name>transformType</name></param>
+ <param len="COMPSIZE(numPaths,transformType)">const <ptype>GLfloat</ptype> *<name>transformValues</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCoverFillPathNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param group="PathCoverMode"><ptype>GLenum</ptype> <name>coverMode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCoverStrokePathInstancedNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>numPaths</name></param>
+ <param group="PathElementType"><ptype>GLenum</ptype> <name>pathNameType</name></param>
+ <param group="PathElement" len="COMPSIZE(numPaths,pathNameType,paths)">const <ptype>GLvoid</ptype> *<name>paths</name></param>
+ <param group="Path"><ptype>GLuint</ptype> <name>pathBase</name></param>
+ <param group="PathCoverMode"><ptype>GLenum</ptype> <name>coverMode</name></param>
+ <param group="PathTransformType"><ptype>GLenum</ptype> <name>transformType</name></param>
+ <param len="COMPSIZE(numPaths,transformType)">const <ptype>GLfloat</ptype> *<name>transformValues</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCoverStrokePathNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param group="PathCoverMode"><ptype>GLenum</ptype> <name>coverMode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCoverageMaskNV</name></proto>
+ <param><ptype>GLboolean</ptype> <name>mask</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCoverageOperationNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>operation</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glCreateProgram</name></proto>
+ </command>
+ <command>
+ <proto group="handleARB"><ptype>GLhandleARB</ptype> <name>glCreateProgramObjectARB</name></proto>
+ <alias name="glCreateProgram"/>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glCreateShader</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ </command>
+ <command>
+ <proto group="handleARB"><ptype>GLhandleARB</ptype> <name>glCreateShaderObjectARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>shaderType</name></param>
+ <alias name="glCreateShader"/>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glCreateShaderProgramEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>string</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glCreateShaderProgramv</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLchar</ptype> *const*<name>strings</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glCreateShaderProgramvEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param>const <ptype>GLchar</ptype> **<name>strings</name></param>
+ </command>
+ <command>
+ <proto group="sync"><ptype>GLsync</ptype> <name>glCreateSyncFromCLeventARB</name></proto>
+ <param group="cl_context"><ptype>struct _cl_context</ptype> *<name>context</name></param>
+ <param group="cl_event"><ptype>struct _cl_event</ptype> *<name>event</name></param>
+ <param><ptype>GLbitfield</ptype> <name>flags</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCullFace</name></proto>
+ <param group="CullFaceMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <glx type="render" opcode="79"/>
+ </command>
+ <command>
+ <proto>void <name>glCullParameterdvEXT</name></proto>
+ <param group="CullParameterEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="4"><ptype>GLdouble</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCullParameterfvEXT</name></proto>
+ <param group="CullParameterEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="4"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glCurrentPaletteMatrixARB</name></proto>
+ <param><ptype>GLint</ptype> <name>index</name></param>
+ <glx type="render" opcode="4329"/>
+ </command>
+ <command>
+ <proto>void <name>glCurrentPaletteMatrixOES</name></proto>
+ <param><ptype>GLuint</ptype> <name>matrixpaletteindex</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDebugMessageCallback</name></proto>
+ <param><ptype>GLDEBUGPROC</ptype> <name>callback</name></param>
+ <param>const void *<name>userParam</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDebugMessageCallbackAMD</name></proto>
+ <param><ptype>GLDEBUGPROCAMD</ptype> <name>callback</name></param>
+ <param>void *<name>userParam</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDebugMessageCallbackARB</name></proto>
+ <param><ptype>GLDEBUGPROCARB</ptype> <name>callback</name></param>
+ <param len="COMPSIZE(callback)">const void *<name>userParam</name></param>
+ <alias name="glDebugMessageCallback"/>
+ </command>
+ <command>
+ <proto>void <name>glDebugMessageCallbackKHR</name></proto>
+ <param><ptype>GLDEBUGPROCKHR</ptype> <name>callback</name></param>
+ <param>const void *<name>userParam</name></param>
+ <alias name="glDebugMessageCallback"/>
+ </command>
+ <command>
+ <proto>void <name>glDebugMessageControl</name></proto>
+ <param><ptype>GLenum</ptype> <name>source</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLenum</ptype> <name>severity</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint</ptype> *<name>ids</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>enabled</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDebugMessageControlARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>source</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLenum</ptype> <name>severity</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint</ptype> *<name>ids</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>enabled</name></param>
+ <alias name="glDebugMessageControl"/>
+ </command>
+ <command>
+ <proto>void <name>glDebugMessageControlKHR</name></proto>
+ <param><ptype>GLenum</ptype> <name>source</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLenum</ptype> <name>severity</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param>const <ptype>GLuint</ptype> *<name>ids</name></param>
+ <param><ptype>GLboolean</ptype> <name>enabled</name></param>
+ <alias name="glDebugMessageControl"/>
+ </command>
+ <command>
+ <proto>void <name>glDebugMessageEnableAMD</name></proto>
+ <param><ptype>GLenum</ptype> <name>category</name></param>
+ <param><ptype>GLenum</ptype> <name>severity</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint</ptype> *<name>ids</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>enabled</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDebugMessageInsert</name></proto>
+ <param><ptype>GLenum</ptype> <name>source</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>severity</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param len="COMPSIZE(buf,length)">const <ptype>GLchar</ptype> *<name>buf</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDebugMessageInsertAMD</name></proto>
+ <param><ptype>GLenum</ptype> <name>category</name></param>
+ <param><ptype>GLenum</ptype> <name>severity</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param len="length">const <ptype>GLchar</ptype> *<name>buf</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDebugMessageInsertARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>source</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>severity</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param len="length">const <ptype>GLchar</ptype> *<name>buf</name></param>
+ <alias name="glDebugMessageInsert"/>
+ </command>
+ <command>
+ <proto>void <name>glDebugMessageInsertKHR</name></proto>
+ <param><ptype>GLenum</ptype> <name>source</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>severity</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>buf</name></param>
+ <alias name="glDebugMessageInsert"/>
+ </command>
+ <command>
+ <proto>void <name>glDeformSGIX</name></proto>
+ <param group="FfdMaskSGIX"><ptype>GLbitfield</ptype> <name>mask</name></param>
+ <glx type="render" opcode="2075"/>
+ </command>
+ <command>
+ <proto>void <name>glDeformationMap3dSGIX</name></proto>
+ <param group="FfdTargetSGIX"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u1</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u2</name></param>
+ <param><ptype>GLint</ptype> <name>ustride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>uorder</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>v1</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>v2</name></param>
+ <param><ptype>GLint</ptype> <name>vstride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>vorder</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>w1</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>w2</name></param>
+ <param><ptype>GLint</ptype> <name>wstride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>worder</name></param>
+ <param group="CoordD" len="COMPSIZE(target,ustride,uorder,vstride,vorder,wstride,worder)">const <ptype>GLdouble</ptype> *<name>points</name></param>
+ <glx type="render" opcode="2073"/>
+ </command>
+ <command>
+ <proto>void <name>glDeformationMap3fSGIX</name></proto>
+ <param group="FfdTargetSGIX"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u1</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u2</name></param>
+ <param><ptype>GLint</ptype> <name>ustride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>uorder</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>v1</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>v2</name></param>
+ <param><ptype>GLint</ptype> <name>vstride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>vorder</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>w1</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>w2</name></param>
+ <param><ptype>GLint</ptype> <name>wstride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>worder</name></param>
+ <param group="CoordF" len="COMPSIZE(target,ustride,uorder,vstride,vorder,wstride,worder)">const <ptype>GLfloat</ptype> *<name>points</name></param>
+ <glx type="render" opcode="2074"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteAsyncMarkersSGIX</name></proto>
+ <param><ptype>GLuint</ptype> <name>marker</name></param>
+ <param><ptype>GLsizei</ptype> <name>range</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteBuffers</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>buffers</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteBuffersARB</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>buffers</name></param>
+ <alias name="glDeleteBuffers"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteFencesAPPLE</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="FenceNV" len="n">const <ptype>GLuint</ptype> *<name>fences</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteFencesNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="FenceNV" len="n">const <ptype>GLuint</ptype> *<name>fences</name></param>
+ <glx type="vendor" opcode="1276"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteFragmentShaderATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteFramebuffers</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>framebuffers</name></param>
+ <glx type="render" opcode="4320"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteFramebuffersEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>framebuffers</name></param>
+ <alias name="glDeleteFramebuffers"/>
+ <glx type="render" opcode="4320"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteFramebuffersOES</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param>const <ptype>GLuint</ptype> *<name>framebuffers</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteLists</name></proto>
+ <param group="List"><ptype>GLuint</ptype> <name>list</name></param>
+ <param><ptype>GLsizei</ptype> <name>range</name></param>
+ <glx type="single" opcode="103"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteNamedStringARB</name></proto>
+ <param><ptype>GLint</ptype> <name>namelen</name></param>
+ <param len="namelen">const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteNamesAMD</name></proto>
+ <param><ptype>GLenum</ptype> <name>identifier</name></param>
+ <param><ptype>GLuint</ptype> <name>num</name></param>
+ <param len="num">const <ptype>GLuint</ptype> *<name>names</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteObjectARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>obj</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteOcclusionQueriesNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>ids</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeletePathsNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param><ptype>GLsizei</ptype> <name>range</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeletePerfMonitorsAMD</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>monitors</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteProgram</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <glx type="single" opcode="202"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteProgramPipelines</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>pipelines</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteProgramPipelinesEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param>const <ptype>GLuint</ptype> *<name>pipelines</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteProgramsARB</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>programs</name></param>
+ <glx type="vendor" opcode="1294"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteProgramsNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>programs</name></param>
+ <alias name="glDeleteProgramsARB"/>
+ <glx type="vendor" opcode="1294"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteQueries</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>ids</name></param>
+ <glx type="single" opcode="161"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteQueriesARB</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>ids</name></param>
+ <alias name="glDeleteQueries"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteQueriesEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param>const <ptype>GLuint</ptype> *<name>ids</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteRenderbuffers</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>renderbuffers</name></param>
+ <glx type="render" opcode="4317"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteRenderbuffersEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>renderbuffers</name></param>
+ <alias name="glDeleteRenderbuffers"/>
+ <glx type="render" opcode="4317"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteRenderbuffersOES</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param>const <ptype>GLuint</ptype> *<name>renderbuffers</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteSamplers</name></proto>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint</ptype> *<name>samplers</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteShader</name></proto>
+ <param><ptype>GLuint</ptype> <name>shader</name></param>
+ <glx type="single" opcode="195"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteSync</name></proto>
+ <param group="sync"><ptype>GLsync</ptype> <name>sync</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteSyncAPPLE</name></proto>
+ <param><ptype>GLsync</ptype> <name>sync</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteTextures</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="Texture" len="n">const <ptype>GLuint</ptype> *<name>textures</name></param>
+ <glx type="single" opcode="144"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteTexturesEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="Texture" len="n">const <ptype>GLuint</ptype> *<name>textures</name></param>
+ <glx type="vendor" opcode="12"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteTransformFeedbacks</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>ids</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteTransformFeedbacksNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>ids</name></param>
+ <alias name="glDeleteTransformFeedbacks"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteVertexArrays</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>arrays</name></param>
+ <glx type="render" opcode="351"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteVertexArraysAPPLE</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>arrays</name></param>
+ <alias name="glDeleteVertexArrays"/>
+ </command>
+ <command>
+ <proto>void <name>glDeleteVertexArraysOES</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param>const <ptype>GLuint</ptype> *<name>arrays</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDeleteVertexShaderEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDepthBoundsEXT</name></proto>
+ <param group="ClampedFloat64"><ptype>GLclampd</ptype> <name>zmin</name></param>
+ <param group="ClampedFloat64"><ptype>GLclampd</ptype> <name>zmax</name></param>
+ <glx type="render" opcode="4229"/>
+ </command>
+ <command>
+ <proto>void <name>glDepthBoundsdNV</name></proto>
+ <param><ptype>GLdouble</ptype> <name>zmin</name></param>
+ <param><ptype>GLdouble</ptype> <name>zmax</name></param>
+ <glx type="render" opcode="4285"/>
+ </command>
+ <command>
+ <proto>void <name>glDepthFunc</name></proto>
+ <param group="DepthFunction"><ptype>GLenum</ptype> <name>func</name></param>
+ <glx type="render" opcode="164"/>
+ </command>
+ <command>
+ <proto>void <name>glDepthMask</name></proto>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>flag</name></param>
+ <glx type="render" opcode="135"/>
+ </command>
+ <command>
+ <proto>void <name>glDepthRange</name></proto>
+ <param><ptype>GLdouble</ptype> <name>near</name></param>
+ <param><ptype>GLdouble</ptype> <name>far</name></param>
+ <glx type="render" opcode="174"/>
+ </command>
+ <command>
+ <proto>void <name>glDepthRangeArrayv</name></proto>
+ <param><ptype>GLuint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(count)">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDepthRangeIndexed</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>n</name></param>
+ <param><ptype>GLdouble</ptype> <name>f</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDepthRangedNV</name></proto>
+ <param><ptype>GLdouble</ptype> <name>zNear</name></param>
+ <param><ptype>GLdouble</ptype> <name>zFar</name></param>
+ <glx type="render" opcode="4283"/>
+ </command>
+ <command>
+ <proto>void <name>glDepthRangef</name></proto>
+ <param><ptype>GLfloat</ptype> <name>n</name></param>
+ <param><ptype>GLfloat</ptype> <name>f</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDepthRangefOES</name></proto>
+ <param group="ClampedFloat32"><ptype>GLclampf</ptype> <name>n</name></param>
+ <param group="ClampedFloat32"><ptype>GLclampf</ptype> <name>f</name></param>
+ <glx type="render" opcode="4309"/>
+ <alias name="glDepthRangef"/>
+ </command>
+ <command>
+ <proto>void <name>glDepthRangex</name></proto>
+ <param><ptype>GLfixed</ptype> <name>n</name></param>
+ <param><ptype>GLfixed</ptype> <name>f</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDepthRangexOES</name></proto>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>n</name></param>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>f</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDetachObjectARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>containerObj</name></param>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>attachedObj</name></param>
+ <alias name="glDetachShader"/>
+ </command>
+ <command>
+ <proto>void <name>glDetachShader</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>shader</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDetailTexFuncSGIS</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n*2">const <ptype>GLfloat</ptype> *<name>points</name></param>
+ <glx type="render" opcode="2051"/>
+ </command>
+ <command>
+ <proto>void <name>glDisable</name></proto>
+ <param group="EnableCap"><ptype>GLenum</ptype> <name>cap</name></param>
+ <glx type="render" opcode="138"/>
+ </command>
+ <command>
+ <proto>void <name>glDisableClientState</name></proto>
+ <param group="EnableCap"><ptype>GLenum</ptype> <name>array</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDisableClientStateIndexedEXT</name></proto>
+ <param group="EnableCap"><ptype>GLenum</ptype> <name>array</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDisableClientStateiEXT</name></proto>
+ <param group="EnableCap"><ptype>GLenum</ptype> <name>array</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDisableDriverControlQCOM</name></proto>
+ <param><ptype>GLuint</ptype> <name>driverControl</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDisableIndexedEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <alias name="glDisablei"/>
+ </command>
+ <command>
+ <proto>void <name>glDisableVariantClientStateEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDisableVertexArrayAttribEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDisableVertexArrayEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param group="EnableCap"><ptype>GLenum</ptype> <name>array</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDisableVertexAttribAPPLE</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDisableVertexAttribArray</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDisableVertexAttribArrayARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <alias name="glDisableVertexAttribArray"/>
+ </command>
+ <command>
+ <proto>void <name>glDisablei</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDiscardFramebufferEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>numAttachments</name></param>
+ <param>const <ptype>GLenum</ptype> *<name>attachments</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDispatchCompute</name></proto>
+ <param><ptype>GLuint</ptype> <name>num_groups_x</name></param>
+ <param><ptype>GLuint</ptype> <name>num_groups_y</name></param>
+ <param><ptype>GLuint</ptype> <name>num_groups_z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDispatchComputeIndirect</name></proto>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>indirect</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawArrays</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <glx type="render" opcode="193"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawArraysEXT</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <alias name="glDrawArrays"/>
+ <glx type="render" opcode="4116"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawArraysIndirect</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param>const <ptype>GLvoid</ptype> *<name>indirect</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawArraysInstanced</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>instancecount</name></param>
+ <vecequiv name="glArrayElement"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawArraysInstancedANGLE</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawArraysInstancedARB</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ <alias name="glDrawArraysInstanced"/>
+ <vecequiv name="glArrayElement"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawArraysInstancedBaseInstance</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>instancecount</name></param>
+ <param><ptype>GLuint</ptype> <name>baseinstance</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawArraysInstancedEXT</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLint</ptype> <name>start</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ <alias name="glDrawArraysInstanced"/>
+ <vecequiv name="glArrayElement"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawArraysInstancedNV</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawBuffer</name></proto>
+ <param group="DrawBufferMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <glx type="render" opcode="126"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawBuffers</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="DrawBufferModeATI" len="n">const <ptype>GLenum</ptype> *<name>bufs</name></param>
+ <glx type="render" opcode="233"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawBuffersARB</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="DrawBufferModeATI" len="n">const <ptype>GLenum</ptype> *<name>bufs</name></param>
+ <alias name="glDrawBuffers"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawBuffersATI</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="DrawBufferModeATI" len="n">const <ptype>GLenum</ptype> *<name>bufs</name></param>
+ <alias name="glDrawBuffers"/>
+ <glx type="render" opcode="233"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawBuffersEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param>const <ptype>GLenum</ptype> *<name>bufs</name></param>
+ <alias name="glDrawBuffers"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawBuffersIndexedEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>n</name></param>
+ <param>const <ptype>GLenum</ptype> *<name>location</name></param>
+ <param>const <ptype>GLint</ptype> *<name>indices</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawBuffersNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param>const <ptype>GLenum</ptype> *<name>bufs</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawElementArrayAPPLE</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawElementArrayATI</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawElements</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(count,type)">const <ptype>GLvoid</ptype> *<name>indices</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawElementsBaseVertex</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(count,type)">const <ptype>GLvoid</ptype> *<name>indices</name></param>
+ <param><ptype>GLint</ptype> <name>basevertex</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawElementsIndirect</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param>const <ptype>GLvoid</ptype> *<name>indirect</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawElementsInstanced</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(count,type)">const <ptype>GLvoid</ptype> *<name>indices</name></param>
+ <param><ptype>GLsizei</ptype> <name>instancecount</name></param>
+ <vecequiv name="glArrayElement"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawElementsInstancedANGLE</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param>const void *<name>indices</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawElementsInstancedARB</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(count,type)">const <ptype>GLvoid</ptype> *<name>indices</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ <alias name="glDrawElementsInstanced"/>
+ <vecequiv name="glArrayElement"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawElementsInstancedBaseInstance</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="count">const void *<name>indices</name></param>
+ <param><ptype>GLsizei</ptype> <name>instancecount</name></param>
+ <param><ptype>GLuint</ptype> <name>baseinstance</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawElementsInstancedBaseVertex</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(count,type)">const <ptype>GLvoid</ptype> *<name>indices</name></param>
+ <param><ptype>GLsizei</ptype> <name>instancecount</name></param>
+ <param><ptype>GLint</ptype> <name>basevertex</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawElementsInstancedBaseVertexBaseInstance</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="count">const void *<name>indices</name></param>
+ <param><ptype>GLsizei</ptype> <name>instancecount</name></param>
+ <param><ptype>GLint</ptype> <name>basevertex</name></param>
+ <param><ptype>GLuint</ptype> <name>baseinstance</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawElementsInstancedEXT</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(count,type)">const <ptype>GLvoid</ptype> *<name>indices</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ <alias name="glDrawElementsInstanced"/>
+ <vecequiv name="glArrayElement"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawElementsInstancedNV</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param>const <ptype>GLvoid</ptype> *<name>indices</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawMeshArraysSUN</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawPixels</name></proto>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height)">const <ptype>GLvoid</ptype> *<name>pixels</name></param>
+ <glx type="render" opcode="173"/>
+ <glx type="render" opcode="322" name="glDrawPixelsPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawRangeElementArrayAPPLE</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLuint</ptype> <name>start</name></param>
+ <param><ptype>GLuint</ptype> <name>end</name></param>
+ <param><ptype>GLint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawRangeElementArrayATI</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLuint</ptype> <name>start</name></param>
+ <param><ptype>GLuint</ptype> <name>end</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawRangeElements</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLuint</ptype> <name>start</name></param>
+ <param><ptype>GLuint</ptype> <name>end</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(count,type)">const <ptype>GLvoid</ptype> *<name>indices</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawRangeElementsBaseVertex</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLuint</ptype> <name>start</name></param>
+ <param><ptype>GLuint</ptype> <name>end</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(count,type)">const <ptype>GLvoid</ptype> *<name>indices</name></param>
+ <param><ptype>GLint</ptype> <name>basevertex</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawRangeElementsEXT</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLuint</ptype> <name>start</name></param>
+ <param><ptype>GLuint</ptype> <name>end</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(count,type)">const <ptype>GLvoid</ptype> *<name>indices</name></param>
+ <alias name="glDrawRangeElements"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawTexfOES</name></proto>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <param><ptype>GLfloat</ptype> <name>width</name></param>
+ <param><ptype>GLfloat</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawTexfvOES</name></proto>
+ <param>const <ptype>GLfloat</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawTexiOES</name></proto>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLint</ptype> <name>z</name></param>
+ <param><ptype>GLint</ptype> <name>width</name></param>
+ <param><ptype>GLint</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawTexivOES</name></proto>
+ <param>const <ptype>GLint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawTexsOES</name></proto>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <param><ptype>GLshort</ptype> <name>y</name></param>
+ <param><ptype>GLshort</ptype> <name>z</name></param>
+ <param><ptype>GLshort</ptype> <name>width</name></param>
+ <param><ptype>GLshort</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawTexsvOES</name></proto>
+ <param>const <ptype>GLshort</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawTextureNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ <param><ptype>GLfloat</ptype> <name>x0</name></param>
+ <param><ptype>GLfloat</ptype> <name>y0</name></param>
+ <param><ptype>GLfloat</ptype> <name>x1</name></param>
+ <param><ptype>GLfloat</ptype> <name>y1</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <param><ptype>GLfloat</ptype> <name>s0</name></param>
+ <param><ptype>GLfloat</ptype> <name>t0</name></param>
+ <param><ptype>GLfloat</ptype> <name>s1</name></param>
+ <param><ptype>GLfloat</ptype> <name>t1</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawTexxOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>x</name></param>
+ <param><ptype>GLfixed</ptype> <name>y</name></param>
+ <param><ptype>GLfixed</ptype> <name>z</name></param>
+ <param><ptype>GLfixed</ptype> <name>width</name></param>
+ <param><ptype>GLfixed</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawTexxvOES</name></proto>
+ <param>const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawTransformFeedback</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawTransformFeedbackInstanced</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLsizei</ptype> <name>instancecount</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawTransformFeedbackNV</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <alias name="glDrawTransformFeedback"/>
+ </command>
+ <command>
+ <proto>void <name>glDrawTransformFeedbackStream</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLuint</ptype> <name>stream</name></param>
+ </command>
+ <command>
+ <proto>void <name>glDrawTransformFeedbackStreamInstanced</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLuint</ptype> <name>stream</name></param>
+ <param><ptype>GLsizei</ptype> <name>instancecount</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEGLImageTargetRenderbufferStorageOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLeglImageOES</ptype> <name>image</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEGLImageTargetTexture2DOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLeglImageOES</ptype> <name>image</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEdgeFlag</name></proto>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>flag</name></param>
+ <vecequiv name="glEdgeFlagv"/>
+ </command>
+ <command>
+ <proto>void <name>glEdgeFlagFormatNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEdgeFlagPointer</name></proto>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(stride)">const <ptype>GLvoid</ptype> *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEdgeFlagPointerEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean" len="COMPSIZE(stride,count)">const <ptype>GLboolean</ptype> *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEdgeFlagPointerListIBM</name></proto>
+ <param><ptype>GLint</ptype> <name>stride</name></param>
+ <param group="BooleanPointer" len="COMPSIZE(stride)">const <ptype>GLboolean</ptype> **<name>pointer</name></param>
+ <param><ptype>GLint</ptype> <name>ptrstride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEdgeFlagv</name></proto>
+ <param group="Boolean">const <ptype>GLboolean</ptype> *<name>flag</name></param>
+ <glx type="render" opcode="22"/>
+ </command>
+ <command>
+ <proto>void <name>glElementPointerAPPLE</name></proto>
+ <param group="ElementPointerTypeATI"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="type">const <ptype>GLvoid</ptype> *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glElementPointerATI</name></proto>
+ <param group="ElementPointerTypeATI"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(type)">const <ptype>GLvoid</ptype> *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEnable</name></proto>
+ <param group="EnableCap"><ptype>GLenum</ptype> <name>cap</name></param>
+ <glx type="render" opcode="139"/>
+ </command>
+ <command>
+ <proto>void <name>glEnableClientState</name></proto>
+ <param group="EnableCap"><ptype>GLenum</ptype> <name>array</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEnableClientStateIndexedEXT</name></proto>
+ <param group="EnableCap"><ptype>GLenum</ptype> <name>array</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEnableClientStateiEXT</name></proto>
+ <param group="EnableCap"><ptype>GLenum</ptype> <name>array</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEnableDriverControlQCOM</name></proto>
+ <param><ptype>GLuint</ptype> <name>driverControl</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEnableIndexedEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <alias name="glEnablei"/>
+ </command>
+ <command>
+ <proto>void <name>glEnableVariantClientStateEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEnableVertexArrayAttribEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEnableVertexArrayEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param group="EnableCap"><ptype>GLenum</ptype> <name>array</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEnableVertexAttribAPPLE</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEnableVertexAttribArray</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEnableVertexAttribArrayARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <alias name="glEnableVertexAttribArray"/>
+ </command>
+ <command>
+ <proto>void <name>glEnablei</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEnd</name></proto>
+ <glx type="render" opcode="23"/>
+ </command>
+ <command>
+ <proto>void <name>glEndConditionalRender</name></proto>
+ <glx type="render" opcode="349"/>
+ </command>
+ <command>
+ <proto>void <name>glEndConditionalRenderNV</name></proto>
+ <alias name="glEndConditionalRender"/>
+ </command>
+ <command>
+ <proto>void <name>glEndConditionalRenderNVX</name></proto>
+ <alias name="glEndConditionalRender"/>
+ </command>
+ <command>
+ <proto>void <name>glEndFragmentShaderATI</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glEndList</name></proto>
+ <glx type="single" opcode="102"/>
+ </command>
+ <command>
+ <proto>void <name>glEndOcclusionQueryNV</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glEndPerfMonitorAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>monitor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEndQuery</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <glx type="render" opcode="232"/>
+ </command>
+ <command>
+ <proto>void <name>glEndQueryARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <alias name="glEndQuery"/>
+ </command>
+ <command>
+ <proto>void <name>glEndQueryEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEndQueryIndexed</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEndTilingQCOM</name></proto>
+ <param><ptype>GLbitfield</ptype> <name>preserveMask</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEndTransformFeedback</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glEndTransformFeedbackEXT</name></proto>
+ <alias name="glEndTransformFeedback"/>
+ </command>
+ <command>
+ <proto>void <name>glEndTransformFeedbackNV</name></proto>
+ <alias name="glEndTransformFeedback"/>
+ </command>
+ <command>
+ <proto>void <name>glEndVertexShaderEXT</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glEndVideoCaptureNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_capture_slot</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEvalCoord1d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u</name></param>
+ <vecequiv name="glEvalCoord1dv"/>
+ </command>
+ <command>
+ <proto>void <name>glEvalCoord1dv</name></proto>
+ <param group="CoordD" len="1">const <ptype>GLdouble</ptype> *<name>u</name></param>
+ <glx type="render" opcode="151"/>
+ </command>
+ <command>
+ <proto>void <name>glEvalCoord1f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u</name></param>
+ <vecequiv name="glEvalCoord1fv"/>
+ </command>
+ <command>
+ <proto>void <name>glEvalCoord1fv</name></proto>
+ <param group="CoordF" len="1">const <ptype>GLfloat</ptype> *<name>u</name></param>
+ <glx type="render" opcode="152"/>
+ </command>
+ <command>
+ <proto>void <name>glEvalCoord1xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>u</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEvalCoord1xvOES</name></proto>
+ <param len="1">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEvalCoord2d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>v</name></param>
+ <vecequiv name="glEvalCoord2dv"/>
+ </command>
+ <command>
+ <proto>void <name>glEvalCoord2dv</name></proto>
+ <param group="CoordD" len="2">const <ptype>GLdouble</ptype> *<name>u</name></param>
+ <glx type="render" opcode="153"/>
+ </command>
+ <command>
+ <proto>void <name>glEvalCoord2f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>v</name></param>
+ <vecequiv name="glEvalCoord2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glEvalCoord2fv</name></proto>
+ <param group="CoordF" len="2">const <ptype>GLfloat</ptype> *<name>u</name></param>
+ <glx type="render" opcode="154"/>
+ </command>
+ <command>
+ <proto>void <name>glEvalCoord2xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>u</name></param>
+ <param><ptype>GLfixed</ptype> <name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEvalCoord2xvOES</name></proto>
+ <param len="2">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEvalMapsNV</name></proto>
+ <param group="EvalTargetNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="EvalMapsModeNV"><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glEvalMesh1</name></proto>
+ <param group="MeshMode1"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>i1</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>i2</name></param>
+ <glx type="render" opcode="155"/>
+ </command>
+ <command>
+ <proto>void <name>glEvalMesh2</name></proto>
+ <param group="MeshMode2"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>i1</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>i2</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>j1</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>j2</name></param>
+ <glx type="render" opcode="157"/>
+ </command>
+ <command>
+ <proto>void <name>glEvalPoint1</name></proto>
+ <param><ptype>GLint</ptype> <name>i</name></param>
+ <glx type="render" opcode="156"/>
+ </command>
+ <command>
+ <proto>void <name>glEvalPoint2</name></proto>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>i</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>j</name></param>
+ <glx type="render" opcode="158"/>
+ </command>
+ <command>
+ <proto>void <name>glExecuteProgramNV</name></proto>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="4181"/>
+ </command>
+ <command>
+ <proto>void <name>glExtGetBufferPointervQCOM</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLvoid</ptype> **<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glExtGetBuffersQCOM</name></proto>
+ <param><ptype>GLuint</ptype> *<name>buffers</name></param>
+ <param><ptype>GLint</ptype> <name>maxBuffers</name></param>
+ <param><ptype>GLint</ptype> *<name>numBuffers</name></param>
+ </command>
+ <command>
+ <proto>void <name>glExtGetFramebuffersQCOM</name></proto>
+ <param><ptype>GLuint</ptype> *<name>framebuffers</name></param>
+ <param><ptype>GLint</ptype> <name>maxFramebuffers</name></param>
+ <param><ptype>GLint</ptype> *<name>numFramebuffers</name></param>
+ </command>
+ <command>
+ <proto>void <name>glExtGetProgramBinarySourceQCOM</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>shadertype</name></param>
+ <param><ptype>GLchar</ptype> *<name>source</name></param>
+ <param><ptype>GLint</ptype> *<name>length</name></param>
+ </command>
+ <command>
+ <proto>void <name>glExtGetProgramsQCOM</name></proto>
+ <param><ptype>GLuint</ptype> *<name>programs</name></param>
+ <param><ptype>GLint</ptype> <name>maxPrograms</name></param>
+ <param><ptype>GLint</ptype> *<name>numPrograms</name></param>
+ </command>
+ <command>
+ <proto>void <name>glExtGetRenderbuffersQCOM</name></proto>
+ <param><ptype>GLuint</ptype> *<name>renderbuffers</name></param>
+ <param><ptype>GLint</ptype> <name>maxRenderbuffers</name></param>
+ <param><ptype>GLint</ptype> *<name>numRenderbuffers</name></param>
+ </command>
+ <command>
+ <proto>void <name>glExtGetShadersQCOM</name></proto>
+ <param><ptype>GLuint</ptype> *<name>shaders</name></param>
+ <param><ptype>GLint</ptype> <name>maxShaders</name></param>
+ <param><ptype>GLint</ptype> *<name>numShaders</name></param>
+ </command>
+ <command>
+ <proto>void <name>glExtGetTexLevelParameterivQCOM</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>face</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glExtGetTexSubImageQCOM</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLvoid</ptype> *<name>texels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glExtGetTexturesQCOM</name></proto>
+ <param><ptype>GLuint</ptype> *<name>textures</name></param>
+ <param><ptype>GLint</ptype> <name>maxTextures</name></param>
+ <param><ptype>GLint</ptype> *<name>numTextures</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLboolean</ptype> <name>glExtIsProgramBinaryQCOM</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ </command>
+ <command>
+ <proto>void <name>glExtTexObjectStateOverrideiQCOM</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glExtractComponentEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>res</name></param>
+ <param><ptype>GLuint</ptype> <name>src</name></param>
+ <param><ptype>GLuint</ptype> <name>num</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFeedbackBuffer</name></proto>
+ <param><ptype>GLsizei</ptype> <name>size</name></param>
+ <param group="FeedbackType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="FeedbackElement" len="size"><ptype>GLfloat</ptype> *<name>buffer</name></param>
+ <glx type="single" opcode="105"/>
+ </command>
+ <command>
+ <proto>void <name>glFeedbackBufferxOES</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="n">const <ptype>GLfixed</ptype> *<name>buffer</name></param>
+ </command>
+ <command>
+ <proto group="sync"><ptype>GLsync</ptype> <name>glFenceSync</name></proto>
+ <param><ptype>GLenum</ptype> <name>condition</name></param>
+ <param><ptype>GLbitfield</ptype> <name>flags</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLsync</ptype> <name>glFenceSyncAPPLE</name></proto>
+ <param><ptype>GLenum</ptype> <name>condition</name></param>
+ <param><ptype>GLbitfield</ptype> <name>flags</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFinalCombinerInputNV</name></proto>
+ <param group="CombinerVariableNV"><ptype>GLenum</ptype> <name>variable</name></param>
+ <param group="CombinerRegisterNV"><ptype>GLenum</ptype> <name>input</name></param>
+ <param group="CombinerMappingNV"><ptype>GLenum</ptype> <name>mapping</name></param>
+ <param group="CombinerComponentUsageNV"><ptype>GLenum</ptype> <name>componentUsage</name></param>
+ <glx type="render" opcode="4142"/>
+ </command>
+ <command>
+ <proto>void <name>glFinish</name></proto>
+ <glx type="single" opcode="108"/>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glFinishAsyncSGIX</name></proto>
+ <param len="1"><ptype>GLuint</ptype> *<name>markerp</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFinishFenceAPPLE</name></proto>
+ <param group="FenceNV"><ptype>GLuint</ptype> <name>fence</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFinishFenceNV</name></proto>
+ <param group="FenceNV"><ptype>GLuint</ptype> <name>fence</name></param>
+ <glx type="vendor" opcode="1312"/>
+ </command>
+ <command>
+ <proto>void <name>glFinishObjectAPPLE</name></proto>
+ <param group="ObjectTypeAPPLE"><ptype>GLenum</ptype> <name>object</name></param>
+ <param><ptype>GLint</ptype> <name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFinishTextureSUNX</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glFlush</name></proto>
+ <glx type="single" opcode="142"/>
+ </command>
+ <command>
+ <proto>void <name>glFlushMappedBufferRange</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>length</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFlushMappedBufferRangeAPPLE</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ <alias name="glFlushMappedBufferRange"/>
+ </command>
+ <command>
+ <proto>void <name>glFlushMappedBufferRangeEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param><ptype>GLsizeiptr</ptype> <name>length</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFlushMappedNamedBufferRangeEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param><ptype>GLsizeiptr</ptype> <name>length</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFlushPixelDataRangeNV</name></proto>
+ <param group="PixelDataRangeTargetNV"><ptype>GLenum</ptype> <name>target</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFlushRasterSGIX</name></proto>
+ <glx type="vendor" opcode="4105"/>
+ </command>
+ <command>
+ <proto>void <name>glFlushStaticDataIBM</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFlushVertexArrayRangeAPPLE</name></proto>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param len="length"><ptype>GLvoid</ptype> *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFlushVertexArrayRangeNV</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glFogCoordFormatNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFogCoordPointer</name></proto>
+ <param group="FogPointerTypeEXT"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(type,stride)">const <ptype>GLvoid</ptype> *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFogCoordPointerEXT</name></proto>
+ <param group="FogPointerTypeEXT"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(type,stride)">const <ptype>GLvoid</ptype> *<name>pointer</name></param>
+ <alias name="glFogCoordPointer"/>
+ </command>
+ <command>
+ <proto>void <name>glFogCoordPointerListIBM</name></proto>
+ <param group="FogPointerTypeIBM"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLint</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(type,stride)">const <ptype>GLvoid</ptype> **<name>pointer</name></param>
+ <param><ptype>GLint</ptype> <name>ptrstride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFogCoordd</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>coord</name></param>
+ <vecequiv name="glFogCoorddv"/>
+ </command>
+ <command>
+ <proto>void <name>glFogCoorddEXT</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>coord</name></param>
+ <alias name="glFogCoordd"/>
+ <vecequiv name="glFogCoorddvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glFogCoorddv</name></proto>
+ <param group="CoordD" len="1">const <ptype>GLdouble</ptype> *<name>coord</name></param>
+ <glx type="render" opcode="4125"/>
+ </command>
+ <command>
+ <proto>void <name>glFogCoorddvEXT</name></proto>
+ <param group="CoordD" len="1">const <ptype>GLdouble</ptype> *<name>coord</name></param>
+ <alias name="glFogCoorddv"/>
+ <glx type="render" opcode="4125"/>
+ </command>
+ <command>
+ <proto>void <name>glFogCoordf</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>coord</name></param>
+ <vecequiv name="glFogCoordfv"/>
+ </command>
+ <command>
+ <proto>void <name>glFogCoordfEXT</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>coord</name></param>
+ <alias name="glFogCoordf"/>
+ <vecequiv name="glFogCoordfvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glFogCoordfv</name></proto>
+ <param group="CoordF" len="1">const <ptype>GLfloat</ptype> *<name>coord</name></param>
+ <glx type="render" opcode="4124"/>
+ </command>
+ <command>
+ <proto>void <name>glFogCoordfvEXT</name></proto>
+ <param group="CoordF" len="1">const <ptype>GLfloat</ptype> *<name>coord</name></param>
+ <alias name="glFogCoordfv"/>
+ <glx type="render" opcode="4124"/>
+ </command>
+ <command>
+ <proto>void <name>glFogCoordhNV</name></proto>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>fog</name></param>
+ <vecequiv name="glFogCoordhvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glFogCoordhvNV</name></proto>
+ <param group="Half16NV" len="1">const <ptype>GLhalfNV</ptype> *<name>fog</name></param>
+ <glx type="render" opcode="4254"/>
+ </command>
+ <command>
+ <proto>void <name>glFogFuncSGIS</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n*2">const <ptype>GLfloat</ptype> *<name>points</name></param>
+ <glx type="render" opcode="2067"/>
+ </command>
+ <command>
+ <proto>void <name>glFogf</name></proto>
+ <param group="FogParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <glx type="render" opcode="80"/>
+ </command>
+ <command>
+ <proto>void <name>glFogfv</name></proto>
+ <param group="FogParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="81"/>
+ </command>
+ <command>
+ <proto>void <name>glFogi</name></proto>
+ <param group="FogParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ <glx type="render" opcode="82"/>
+ </command>
+ <command>
+ <proto>void <name>glFogiv</name></proto>
+ <param group="FogParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="83"/>
+ </command>
+ <command>
+ <proto>void <name>glFogx</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFogxOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFogxv</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param>const <ptype>GLfixed</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFogxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfixed</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFragmentColorMaterialSGIX</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFragmentLightModelfSGIX</name></proto>
+ <param group="FragmentLightModelParameterSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFragmentLightModelfvSGIX</name></proto>
+ <param group="FragmentLightModelParameterSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFragmentLightModeliSGIX</name></proto>
+ <param group="FragmentLightModelParameterSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFragmentLightModelivSGIX</name></proto>
+ <param group="FragmentLightModelParameterSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFragmentLightfSGIX</name></proto>
+ <param group="FragmentLightNameSGIX"><ptype>GLenum</ptype> <name>light</name></param>
+ <param group="FragmentLightParameterSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFragmentLightfvSGIX</name></proto>
+ <param group="FragmentLightNameSGIX"><ptype>GLenum</ptype> <name>light</name></param>
+ <param group="FragmentLightParameterSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFragmentLightiSGIX</name></proto>
+ <param group="FragmentLightNameSGIX"><ptype>GLenum</ptype> <name>light</name></param>
+ <param group="FragmentLightParameterSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFragmentLightivSGIX</name></proto>
+ <param group="FragmentLightNameSGIX"><ptype>GLenum</ptype> <name>light</name></param>
+ <param group="FragmentLightParameterSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFragmentMaterialfSGIX</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFragmentMaterialfvSGIX</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFragmentMaterialiSGIX</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFragmentMaterialivSGIX</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFrameTerminatorGREMEDY</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glFrameZoomSGIX</name></proto>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>factor</name></param>
+ <glx type="render" opcode="2072"/>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferDrawBufferEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param group="DrawBufferMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferDrawBuffersEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="DrawBufferMode" len="n">const <ptype>GLenum</ptype> *<name>bufs</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferParameteri</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferReadBufferEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param group="ReadBufferMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferRenderbuffer</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="RenderbufferTarget"><ptype>GLenum</ptype> <name>renderbuffertarget</name></param>
+ <param><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ <glx type="render" opcode="4324"/>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferRenderbufferEXT</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="RenderbufferTarget"><ptype>GLenum</ptype> <name>renderbuffertarget</name></param>
+ <param><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ <alias name="glFramebufferRenderbuffer"/>
+ <glx type="render" opcode="4324"/>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferRenderbufferOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>renderbuffertarget</name></param>
+ <param><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTexture</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTexture1D</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>textarget</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <glx type="render" opcode="4321"/>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTexture1DEXT</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>textarget</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <alias name="glFramebufferTexture1D"/>
+ <glx type="render" opcode="4321"/>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTexture2D</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>textarget</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <glx type="render" opcode="4322"/>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTexture2DEXT</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>textarget</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <alias name="glFramebufferTexture2D"/>
+ <glx type="render" opcode="4322"/>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTexture2DMultisampleEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>textarget</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTexture2DMultisampleIMG</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>textarget</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTexture2DOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>textarget</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTexture3D</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>textarget</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLint</ptype> <name>zoffset</name></param>
+ <glx type="render" opcode="4323"/>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTexture3DEXT</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>textarget</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLint</ptype> <name>zoffset</name></param>
+ <alias name="glFramebufferTexture3D"/>
+ <glx type="render" opcode="4323"/>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTexture3DOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>textarget</name></param>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLint</ptype> <name>zoffset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTextureARB</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <alias name="glFramebufferTexture"/>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTextureEXT</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <alias name="glFramebufferTextureARB"/>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTextureFaceARB</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>face</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTextureFaceEXT</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>face</name></param>
+ <alias name="glFramebufferTextureFaceARB"/>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTextureLayer</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>layer</name></param>
+ <glx type="render" opcode="237"/>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTextureLayerARB</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>layer</name></param>
+ <alias name="glFramebufferTextureLayer"/>
+ </command>
+ <command>
+ <proto>void <name>glFramebufferTextureLayerEXT</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>layer</name></param>
+ <alias name="glFramebufferTextureLayer"/>
+ </command>
+ <command>
+ <proto>void <name>glFreeObjectBufferATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFrontFace</name></proto>
+ <param group="FrontFaceDirection"><ptype>GLenum</ptype> <name>mode</name></param>
+ <glx type="render" opcode="84"/>
+ </command>
+ <command>
+ <proto>void <name>glFrustum</name></proto>
+ <param><ptype>GLdouble</ptype> <name>left</name></param>
+ <param><ptype>GLdouble</ptype> <name>right</name></param>
+ <param><ptype>GLdouble</ptype> <name>bottom</name></param>
+ <param><ptype>GLdouble</ptype> <name>top</name></param>
+ <param><ptype>GLdouble</ptype> <name>zNear</name></param>
+ <param><ptype>GLdouble</ptype> <name>zFar</name></param>
+ <glx type="render" opcode="175"/>
+ </command>
+ <command>
+ <proto>void <name>glFrustumf</name></proto>
+ <param><ptype>GLfloat</ptype> <name>l</name></param>
+ <param><ptype>GLfloat</ptype> <name>r</name></param>
+ <param><ptype>GLfloat</ptype> <name>b</name></param>
+ <param><ptype>GLfloat</ptype> <name>t</name></param>
+ <param><ptype>GLfloat</ptype> <name>n</name></param>
+ <param><ptype>GLfloat</ptype> <name>f</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFrustumfOES</name></proto>
+ <param><ptype>GLfloat</ptype> <name>l</name></param>
+ <param><ptype>GLfloat</ptype> <name>r</name></param>
+ <param><ptype>GLfloat</ptype> <name>b</name></param>
+ <param><ptype>GLfloat</ptype> <name>t</name></param>
+ <param><ptype>GLfloat</ptype> <name>n</name></param>
+ <param><ptype>GLfloat</ptype> <name>f</name></param>
+ <glx type="render" opcode="4310"/>
+ </command>
+ <command>
+ <proto>void <name>glFrustumx</name></proto>
+ <param><ptype>GLfixed</ptype> <name>l</name></param>
+ <param><ptype>GLfixed</ptype> <name>r</name></param>
+ <param><ptype>GLfixed</ptype> <name>b</name></param>
+ <param><ptype>GLfixed</ptype> <name>t</name></param>
+ <param><ptype>GLfixed</ptype> <name>n</name></param>
+ <param><ptype>GLfixed</ptype> <name>f</name></param>
+ </command>
+ <command>
+ <proto>void <name>glFrustumxOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>l</name></param>
+ <param><ptype>GLfixed</ptype> <name>r</name></param>
+ <param><ptype>GLfixed</ptype> <name>b</name></param>
+ <param><ptype>GLfixed</ptype> <name>t</name></param>
+ <param><ptype>GLfixed</ptype> <name>n</name></param>
+ <param><ptype>GLfixed</ptype> <name>f</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glGenAsyncMarkersSGIX</name></proto>
+ <param><ptype>GLsizei</ptype> <name>range</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenBuffers</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>buffers</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenBuffersARB</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>buffers</name></param>
+ <alias name="glGenBuffers"/>
+ </command>
+ <command>
+ <proto>void <name>glGenFencesAPPLE</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="FenceNV" len="n"><ptype>GLuint</ptype> *<name>fences</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenFencesNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="FenceNV" len="n"><ptype>GLuint</ptype> *<name>fences</name></param>
+ <glx type="vendor" opcode="1277"/>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glGenFragmentShadersATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>range</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenFramebuffers</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>framebuffers</name></param>
+ <glx type="vendor" opcode="1426"/>
+ </command>
+ <command>
+ <proto>void <name>glGenFramebuffersEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>framebuffers</name></param>
+ <alias name="glGenFramebuffers"/>
+ <glx type="vendor" opcode="1426"/>
+ </command>
+ <command>
+ <proto>void <name>glGenFramebuffersOES</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param><ptype>GLuint</ptype> *<name>framebuffers</name></param>
+ </command>
+ <command>
+ <proto group="List"><ptype>GLuint</ptype> <name>glGenLists</name></proto>
+ <param><ptype>GLsizei</ptype> <name>range</name></param>
+ <glx type="single" opcode="104"/>
+ </command>
+ <command>
+ <proto>void <name>glGenNamesAMD</name></proto>
+ <param><ptype>GLenum</ptype> <name>identifier</name></param>
+ <param><ptype>GLuint</ptype> <name>num</name></param>
+ <param len="num"><ptype>GLuint</ptype> *<name>names</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenOcclusionQueriesNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>ids</name></param>
+ </command>
+ <command>
+ <proto group="Path"><ptype>GLuint</ptype> <name>glGenPathsNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>range</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenPerfMonitorsAMD</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>monitors</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenProgramPipelines</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>pipelines</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenProgramPipelinesEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param><ptype>GLuint</ptype> *<name>pipelines</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenProgramsARB</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>programs</name></param>
+ <glx type="vendor" opcode="1295"/>
+ </command>
+ <command>
+ <proto>void <name>glGenProgramsNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>programs</name></param>
+ <alias name="glGenProgramsARB"/>
+ <glx type="vendor" opcode="1295"/>
+ </command>
+ <command>
+ <proto>void <name>glGenQueries</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>ids</name></param>
+ <glx type="single" opcode="162"/>
+ </command>
+ <command>
+ <proto>void <name>glGenQueriesARB</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>ids</name></param>
+ <alias name="glGenQueries"/>
+ </command>
+ <command>
+ <proto>void <name>glGenQueriesEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param><ptype>GLuint</ptype> *<name>ids</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenRenderbuffers</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>renderbuffers</name></param>
+ <glx type="vendor" opcode="1423"/>
+ </command>
+ <command>
+ <proto>void <name>glGenRenderbuffersEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>renderbuffers</name></param>
+ <alias name="glGenRenderbuffers"/>
+ <glx type="vendor" opcode="1423"/>
+ </command>
+ <command>
+ <proto>void <name>glGenRenderbuffersOES</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param><ptype>GLuint</ptype> *<name>renderbuffers</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenSamplers</name></proto>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count"><ptype>GLuint</ptype> *<name>samplers</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glGenSymbolsEXT</name></proto>
+ <param group="DataTypeEXT"><ptype>GLenum</ptype> <name>datatype</name></param>
+ <param group="VertexShaderStorageTypeEXT"><ptype>GLenum</ptype> <name>storagetype</name></param>
+ <param group="ParameterRangeEXT"><ptype>GLenum</ptype> <name>range</name></param>
+ <param><ptype>GLuint</ptype> <name>components</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenTextures</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="Texture" len="n"><ptype>GLuint</ptype> *<name>textures</name></param>
+ <glx type="single" opcode="145"/>
+ </command>
+ <command>
+ <proto>void <name>glGenTexturesEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="Texture" len="n"><ptype>GLuint</ptype> *<name>textures</name></param>
+ <glx type="vendor" opcode="13"/>
+ </command>
+ <command>
+ <proto>void <name>glGenTransformFeedbacks</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>ids</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenTransformFeedbacksNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>ids</name></param>
+ <alias name="glGenTransformFeedbacks"/>
+ </command>
+ <command>
+ <proto>void <name>glGenVertexArrays</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>arrays</name></param>
+ <glx type="single" opcode="206"/>
+ </command>
+ <command>
+ <proto>void <name>glGenVertexArraysAPPLE</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n"><ptype>GLuint</ptype> *<name>arrays</name></param>
+ <alias name="glGenVertexArrays"/>
+ </command>
+ <command>
+ <proto>void <name>glGenVertexArraysOES</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param><ptype>GLuint</ptype> *<name>arrays</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glGenVertexShadersEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>range</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenerateMipmap</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <glx type="render" opcode="4325"/>
+ </command>
+ <command>
+ <proto>void <name>glGenerateMipmapEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <alias name="glGenerateMipmap"/>
+ <glx type="render" opcode="4325"/>
+ </command>
+ <command>
+ <proto>void <name>glGenerateMipmapOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenerateMultiTexMipmapEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGenerateTextureMipmapEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetActiveAtomicCounterBufferiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>bufferIndex</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetActiveAttrib</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>size</name></param>
+ <param len="1"><ptype>GLenum</ptype> *<name>type</name></param>
+ <param><ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetActiveAttribARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>programObj</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>maxLength</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>size</name></param>
+ <param len="1"><ptype>GLenum</ptype> *<name>type</name></param>
+ <param><ptype>GLcharARB</ptype> *<name>name</name></param>
+ <alias name="glGetActiveAttrib"/>
+ </command>
+ <command>
+ <proto>void <name>glGetActiveSubroutineName</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>shadertype</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufsize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufsize"><ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetActiveSubroutineUniformName</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>shadertype</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufsize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufsize"><ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetActiveSubroutineUniformiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>shadertype</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetActiveUniform</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>size</name></param>
+ <param len="1"><ptype>GLenum</ptype> *<name>type</name></param>
+ <param><ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetActiveUniformARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>programObj</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>maxLength</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>size</name></param>
+ <param len="1"><ptype>GLenum</ptype> *<name>type</name></param>
+ <param><ptype>GLcharARB</ptype> *<name>name</name></param>
+ <alias name="glGetActiveUniform"/>
+ </command>
+ <command>
+ <proto>void <name>glGetActiveUniformBlockName</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>uniformBlockIndex</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>uniformBlockName</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetActiveUniformBlockiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>uniformBlockIndex</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetActiveUniformName</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>uniformIndex</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>uniformName</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetActiveUniformsiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLsizei</ptype> <name>uniformCount</name></param>
+ <param len="COMPSIZE(uniformCount)">const <ptype>GLuint</ptype> *<name>uniformIndices</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetActiveVaryingNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>size</name></param>
+ <param len="1"><ptype>GLenum</ptype> *<name>type</name></param>
+ <param len="COMPSIZE(program,index,bufSize)"><ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetArrayObjectfvATI</name></proto>
+ <param group="EnableCap"><ptype>GLenum</ptype> <name>array</name></param>
+ <param group="ArrayObjectPNameATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetArrayObjectivATI</name></proto>
+ <param group="EnableCap"><ptype>GLenum</ptype> <name>array</name></param>
+ <param group="ArrayObjectPNameATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetAttachedObjectsARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>containerObj</name></param>
+ <param><ptype>GLsizei</ptype> <name>maxCount</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>count</name></param>
+ <param group="handleARB" len="count"><ptype>GLhandleARB</ptype> *<name>obj</name></param>
+ <alias name="glGetAttachedShaders"/>
+ </command>
+ <command>
+ <proto>void <name>glGetAttachedShaders</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLsizei</ptype> <name>maxCount</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>count</name></param>
+ <param><ptype>GLuint</ptype> *<name>shaders</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glGetAttribLocation</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glGetAttribLocationARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>programObj</name></param>
+ <param>const <ptype>GLcharARB</ptype> *<name>name</name></param>
+ <alias name="glGetAttribLocation"/>
+ </command>
+ <command>
+ <proto>void <name>glGetBooleanIndexedvEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="Boolean" len="COMPSIZE(target)"><ptype>GLboolean</ptype> *<name>data</name></param>
+ <alias name="glGetBooleani_v"/>
+ </command>
+ <command>
+ <proto>void <name>glGetBooleani_v</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="Boolean" len="COMPSIZE(target)"><ptype>GLboolean</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetBooleanv</name></proto>
+ <param group="GetPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="Boolean" len="COMPSIZE(pname)"><ptype>GLboolean</ptype> *<name>params</name></param>
+ <glx type="single" opcode="112"/>
+ </command>
+ <command>
+ <proto>void <name>glGetBufferParameteri64v</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferPNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint64</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetBufferParameteriv</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferPNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetBufferParameterivARB</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferPNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glGetBufferParameteriv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetBufferParameterui64vNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLuint64EXT</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetBufferPointerv</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferPointerNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLvoid</ptype> **<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetBufferPointervARB</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferPointerNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLvoid</ptype> **<name>params</name></param>
+ <alias name="glGetBufferPointerv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetBufferPointervOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLvoid</ptype> **<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetBufferSubData</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ <param len="size"><ptype>GLvoid</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetBufferSubDataARB</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferOffsetARB"><ptype>GLintptrARB</ptype> <name>offset</name></param>
+ <param group="BufferSizeARB"><ptype>GLsizeiptrARB</ptype> <name>size</name></param>
+ <param len="size"><ptype>GLvoid</ptype> *<name>data</name></param>
+ <alias name="glGetBufferSubData"/>
+ </command>
+ <command>
+ <proto>void <name>glGetClipPlane</name></proto>
+ <param group="ClipPlaneName"><ptype>GLenum</ptype> <name>plane</name></param>
+ <param len="4"><ptype>GLdouble</ptype> *<name>equation</name></param>
+ <glx type="single" opcode="113"/>
+ </command>
+ <command>
+ <proto>void <name>glGetClipPlanef</name></proto>
+ <param><ptype>GLenum</ptype> <name>plane</name></param>
+ <param><ptype>GLfloat</ptype> *<name>equation</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetClipPlanefOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>plane</name></param>
+ <param len="4"><ptype>GLfloat</ptype> *<name>equation</name></param>
+ <glx type="vendor" opcode="1421"/>
+ </command>
+ <command>
+ <proto>void <name>glGetClipPlanex</name></proto>
+ <param><ptype>GLenum</ptype> <name>plane</name></param>
+ <param><ptype>GLfixed</ptype> *<name>equation</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetClipPlanexOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>plane</name></param>
+ <param len="4"><ptype>GLfixed</ptype> *<name>equation</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetColorTable</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,format,type)"><ptype>GLvoid</ptype> *<name>table</name></param>
+ <glx type="single" opcode="147"/>
+ <glx type="render" opcode="334" name="glGetColorTablePBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glGetColorTableEXT</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,format,type)"><ptype>GLvoid</ptype> *<name>data</name></param>
+ <alias name="glGetColorTable"/>
+ </command>
+ <command>
+ <proto>void <name>glGetColorTableParameterfv</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetColorTableParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="single" opcode="148"/>
+ </command>
+ <command>
+ <proto>void <name>glGetColorTableParameterfvEXT</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetColorTableParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <alias name="glGetColorTableParameterfv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetColorTableParameterfvSGI</name></proto>
+ <param group="ColorTableTargetSGI"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetColorTableParameterPNameSGI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="4099"/>
+ </command>
+ <command>
+ <proto>void <name>glGetColorTableParameteriv</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetColorTableParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="149"/>
+ </command>
+ <command>
+ <proto>void <name>glGetColorTableParameterivEXT</name></proto>
+ <param group="ColorTableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetColorTableParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glGetColorTableParameteriv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetColorTableParameterivSGI</name></proto>
+ <param group="ColorTableTargetSGI"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetColorTableParameterPNameSGI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="4100"/>
+ </command>
+ <command>
+ <proto>void <name>glGetColorTableSGI</name></proto>
+ <param group="ColorTableTargetSGI"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,format,type)"><ptype>GLvoid</ptype> *<name>table</name></param>
+ <glx type="vendor" opcode="4098"/>
+ </command>
+ <command>
+ <proto>void <name>glGetCombinerInputParameterfvNV</name></proto>
+ <param group="CombinerStageNV"><ptype>GLenum</ptype> <name>stage</name></param>
+ <param group="CombinerPortionNV"><ptype>GLenum</ptype> <name>portion</name></param>
+ <param group="CombinerVariableNV"><ptype>GLenum</ptype> <name>variable</name></param>
+ <param group="CombinerParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1270"/>
+ </command>
+ <command>
+ <proto>void <name>glGetCombinerInputParameterivNV</name></proto>
+ <param group="CombinerStageNV"><ptype>GLenum</ptype> <name>stage</name></param>
+ <param group="CombinerPortionNV"><ptype>GLenum</ptype> <name>portion</name></param>
+ <param group="CombinerVariableNV"><ptype>GLenum</ptype> <name>variable</name></param>
+ <param group="CombinerParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1271"/>
+ </command>
+ <command>
+ <proto>void <name>glGetCombinerOutputParameterfvNV</name></proto>
+ <param group="CombinerStageNV"><ptype>GLenum</ptype> <name>stage</name></param>
+ <param group="CombinerPortionNV"><ptype>GLenum</ptype> <name>portion</name></param>
+ <param group="CombinerParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1272"/>
+ </command>
+ <command>
+ <proto>void <name>glGetCombinerOutputParameterivNV</name></proto>
+ <param group="CombinerStageNV"><ptype>GLenum</ptype> <name>stage</name></param>
+ <param group="CombinerPortionNV"><ptype>GLenum</ptype> <name>portion</name></param>
+ <param group="CombinerParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1273"/>
+ </command>
+ <command>
+ <proto>void <name>glGetCombinerStageParameterfvNV</name></proto>
+ <param group="CombinerStageNV"><ptype>GLenum</ptype> <name>stage</name></param>
+ <param group="CombinerParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetCompressedMultiTexImageEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>lod</name></param>
+ <param len="COMPSIZE(target,lod)"><ptype>GLvoid</ptype> *<name>img</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetCompressedTexImage</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CompressedTextureARB" len="COMPSIZE(target,level)"><ptype>GLvoid</ptype> *<name>img</name></param>
+ <glx type="single" opcode="160"/>
+ <glx type="render" opcode="335" name="glGetCompressedTexImagePBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glGetCompressedTexImageARB</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CompressedTextureARB" len="COMPSIZE(target,level)"><ptype>GLvoid</ptype> *<name>img</name></param>
+ <alias name="glGetCompressedTexImage"/>
+ <glx type="single" opcode="160"/>
+ </command>
+ <command>
+ <proto>void <name>glGetCompressedTextureImageEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>lod</name></param>
+ <param len="COMPSIZE(target,lod)"><ptype>GLvoid</ptype> *<name>img</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetConvolutionFilter</name></proto>
+ <param group="ConvolutionTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,format,type)"><ptype>GLvoid</ptype> *<name>image</name></param>
+ <glx type="single" opcode="150"/>
+ <glx type="render" opcode="336" name="glGetConvolutionFilterPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glGetConvolutionFilterEXT</name></proto>
+ <param group="ConvolutionTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,format,type)"><ptype>GLvoid</ptype> *<name>image</name></param>
+ <glx type="vendor" opcode="1"/>
+ </command>
+ <command>
+ <proto>void <name>glGetConvolutionParameterfv</name></proto>
+ <param group="ConvolutionTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetConvolutionParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="single" opcode="151"/>
+ </command>
+ <command>
+ <proto>void <name>glGetConvolutionParameterfvEXT</name></proto>
+ <param group="ConvolutionTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ConvolutionParameterEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="2"/>
+ </command>
+ <command>
+ <proto>void <name>glGetConvolutionParameteriv</name></proto>
+ <param group="ConvolutionTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetConvolutionParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="152"/>
+ </command>
+ <command>
+ <proto>void <name>glGetConvolutionParameterivEXT</name></proto>
+ <param group="ConvolutionTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ConvolutionParameterEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="3"/>
+ </command>
+ <command>
+ <proto>void <name>glGetConvolutionParameterxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glGetDebugMessageLog</name></proto>
+ <param><ptype>GLuint</ptype> <name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufsize</name></param>
+ <param len="COMPSIZE(count)"><ptype>GLenum</ptype> *<name>sources</name></param>
+ <param len="COMPSIZE(count)"><ptype>GLenum</ptype> *<name>types</name></param>
+ <param len="COMPSIZE(count)"><ptype>GLuint</ptype> *<name>ids</name></param>
+ <param len="COMPSIZE(count)"><ptype>GLenum</ptype> *<name>severities</name></param>
+ <param len="COMPSIZE(count)"><ptype>GLsizei</ptype> *<name>lengths</name></param>
+ <param len="COMPSIZE(bufsize)"><ptype>GLchar</ptype> *<name>messageLog</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glGetDebugMessageLogAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufsize</name></param>
+ <param len="count"><ptype>GLenum</ptype> *<name>categories</name></param>
+ <param len="count"><ptype>GLuint</ptype> *<name>severities</name></param>
+ <param len="count"><ptype>GLuint</ptype> *<name>ids</name></param>
+ <param len="count"><ptype>GLsizei</ptype> *<name>lengths</name></param>
+ <param len="bufsize"><ptype>GLchar</ptype> *<name>message</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glGetDebugMessageLogARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufsize</name></param>
+ <param len="count"><ptype>GLenum</ptype> *<name>sources</name></param>
+ <param len="count"><ptype>GLenum</ptype> *<name>types</name></param>
+ <param len="count"><ptype>GLuint</ptype> *<name>ids</name></param>
+ <param len="count"><ptype>GLenum</ptype> *<name>severities</name></param>
+ <param len="count"><ptype>GLsizei</ptype> *<name>lengths</name></param>
+ <param len="COMPSIZE(lengths)"><ptype>GLchar</ptype> *<name>messageLog</name></param>
+ <alias name="glGetDebugMessageLog"/>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glGetDebugMessageLogKHR</name></proto>
+ <param><ptype>GLuint</ptype> <name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufsize</name></param>
+ <param><ptype>GLenum</ptype> *<name>sources</name></param>
+ <param><ptype>GLenum</ptype> *<name>types</name></param>
+ <param><ptype>GLuint</ptype> *<name>ids</name></param>
+ <param><ptype>GLenum</ptype> *<name>severities</name></param>
+ <param><ptype>GLsizei</ptype> *<name>lengths</name></param>
+ <param><ptype>GLchar</ptype> *<name>messageLog</name></param>
+ <alias name="glGetDebugMessageLog"/>
+ </command>
+ <command>
+ <proto>void <name>glGetDetailTexFuncSGIS</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param len="COMPSIZE(target)"><ptype>GLfloat</ptype> *<name>points</name></param>
+ <glx type="vendor" opcode="4096"/>
+ </command>
+ <command>
+ <proto>void <name>glGetDoubleIndexedvEXT</name></proto>
+ <param group="TypeEnum"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="COMPSIZE(target)"><ptype>GLdouble</ptype> *<name>data</name></param>
+ <alias name="glGetDoublei_v"/>
+ </command>
+ <command>
+ <proto>void <name>glGetDoublei_v</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="COMPSIZE(target)"><ptype>GLdouble</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetDoublei_vEXT</name></proto>
+ <param group="TypeEnum"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="COMPSIZE(target)"><ptype>GLdouble</ptype> *<name>params</name></param>
+ <alias name="glGetDoublei_v"/>
+ </command>
+ <command>
+ <proto>void <name>glGetDoublev</name></proto>
+ <param group="GetPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLdouble</ptype> *<name>params</name></param>
+ <glx type="single" opcode="114"/>
+ </command>
+ <command>
+ <proto>void <name>glGetDriverControlStringQCOM</name></proto>
+ <param><ptype>GLuint</ptype> <name>driverControl</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param><ptype>GLchar</ptype> *<name>driverControlString</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetDriverControlsQCOM</name></proto>
+ <param><ptype>GLint</ptype> *<name>num</name></param>
+ <param><ptype>GLsizei</ptype> <name>size</name></param>
+ <param><ptype>GLuint</ptype> *<name>driverControls</name></param>
+ </command>
+ <command>
+ <proto group="ErrorCode"><ptype>GLenum</ptype> <name>glGetError</name></proto>
+ <glx type="single" opcode="115"/>
+ </command>
+ <command>
+ <proto>void <name>glGetFenceivNV</name></proto>
+ <param group="FenceNV"><ptype>GLuint</ptype> <name>fence</name></param>
+ <param group="FenceParameterNameNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1280"/>
+ </command>
+ <command>
+ <proto>void <name>glGetFinalCombinerInputParameterfvNV</name></proto>
+ <param group="CombinerVariableNV"><ptype>GLenum</ptype> <name>variable</name></param>
+ <param group="CombinerParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1274"/>
+ </command>
+ <command>
+ <proto>void <name>glGetFinalCombinerInputParameterivNV</name></proto>
+ <param group="CombinerVariableNV"><ptype>GLenum</ptype> <name>variable</name></param>
+ <param group="CombinerParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1275"/>
+ </command>
+ <command>
+ <proto>void <name>glGetFixedv</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetFixedvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetFloatIndexedvEXT</name></proto>
+ <param group="TypeEnum"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="COMPSIZE(target)"><ptype>GLfloat</ptype> *<name>data</name></param>
+ <alias name="glGetFloati_v"/>
+ </command>
+ <command>
+ <proto>void <name>glGetFloati_v</name></proto>
+ <param group="TypeEnum"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="COMPSIZE(target)"><ptype>GLfloat</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetFloati_vEXT</name></proto>
+ <param group="TypeEnum"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="COMPSIZE(target)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <alias name="glGetFloati_v"/>
+ </command>
+ <command>
+ <proto>void <name>glGetFloatv</name></proto>
+ <param group="GetPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="single" opcode="116"/>
+ </command>
+ <command>
+ <proto>void <name>glGetFogFuncSGIS</name></proto>
+ <param len="COMPSIZE()"><ptype>GLfloat</ptype> *<name>points</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glGetFragDataIndex</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glGetFragDataLocation</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param len="COMPSIZE(name)">const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glGetFragDataLocationEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param len="COMPSIZE(name)">const <ptype>GLchar</ptype> *<name>name</name></param>
+ <alias name="glGetFragDataLocation"/>
+ </command>
+ <command>
+ <proto>void <name>glGetFragmentLightfvSGIX</name></proto>
+ <param group="FragmentLightNameSGIX"><ptype>GLenum</ptype> <name>light</name></param>
+ <param group="FragmentLightParameterSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetFragmentLightivSGIX</name></proto>
+ <param group="FragmentLightNameSGIX"><ptype>GLenum</ptype> <name>light</name></param>
+ <param group="FragmentLightParameterSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetFragmentMaterialfvSGIX</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetFragmentMaterialivSGIX</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetFramebufferAttachmentParameteriv</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1428"/>
+ </command>
+ <command>
+ <proto>void <name>glGetFramebufferAttachmentParameterivEXT</name></proto>
+ <param group="FramebufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glGetFramebufferAttachmentParameteriv"/>
+ <glx type="vendor" opcode="1428"/>
+ </command>
+ <command>
+ <proto>void <name>glGetFramebufferAttachmentParameterivOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetFramebufferParameteriv</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetFramebufferParameterivEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param group="GetFramebufferParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLenum</ptype> <name>glGetGraphicsResetStatusARB</name></proto>
+ </command>
+ <command>
+ <proto><ptype>GLenum</ptype> <name>glGetGraphicsResetStatusEXT</name></proto>
+ </command>
+ <command>
+ <proto group="handleARB"><ptype>GLhandleARB</ptype> <name>glGetHandleARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetHistogram</name></proto>
+ <param group="HistogramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>reset</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,format,type)"><ptype>GLvoid</ptype> *<name>values</name></param>
+ <glx type="single" opcode="154"/>
+ <glx type="render" opcode="337" name="glGetHistogramPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glGetHistogramEXT</name></proto>
+ <param group="HistogramTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>reset</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,format,type)"><ptype>GLvoid</ptype> *<name>values</name></param>
+ <glx type="vendor" opcode="5"/>
+ </command>
+ <command>
+ <proto>void <name>glGetHistogramParameterfv</name></proto>
+ <param group="HistogramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetHistogramParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="single" opcode="155"/>
+ </command>
+ <command>
+ <proto>void <name>glGetHistogramParameterfvEXT</name></proto>
+ <param group="HistogramTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetHistogramParameterPNameEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="6"/>
+ </command>
+ <command>
+ <proto>void <name>glGetHistogramParameteriv</name></proto>
+ <param group="HistogramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetHistogramParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="156"/>
+ </command>
+ <command>
+ <proto>void <name>glGetHistogramParameterivEXT</name></proto>
+ <param group="HistogramTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetHistogramParameterPNameEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="7"/>
+ </command>
+ <command>
+ <proto>void <name>glGetHistogramParameterxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint64</ptype> <name>glGetImageHandleNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>layered</name></param>
+ <param><ptype>GLint</ptype> <name>layer</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetImageTransformParameterfvHP</name></proto>
+ <param group="ImageTransformTargetHP"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ImageTransformPNameHP"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetImageTransformParameterivHP</name></proto>
+ <param group="ImageTransformTargetHP"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ImageTransformPNameHP"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetInfoLogARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>obj</name></param>
+ <param><ptype>GLsizei</ptype> <name>maxLength</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="length"><ptype>GLcharARB</ptype> *<name>infoLog</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glGetInstrumentsSGIX</name></proto>
+ <glx type="vendor" opcode="4102"/>
+ </command>
+ <command>
+ <proto>void <name>glGetInteger64i_v</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="COMPSIZE(target)"><ptype>GLint64</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetInteger64v</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint64</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetInteger64vAPPLE</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint64</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetIntegerIndexedvEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="COMPSIZE(target)"><ptype>GLint</ptype> *<name>data</name></param>
+ <alias name="glGetIntegeri_v"/>
+ </command>
+ <command>
+ <proto>void <name>glGetIntegeri_v</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="COMPSIZE(target)"><ptype>GLint</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetIntegeri_vEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetIntegerui64i_vNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>value</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="COMPSIZE(value)"><ptype>GLuint64EXT</ptype> *<name>result</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetIntegerui64vNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>value</name></param>
+ <param len="COMPSIZE(value)"><ptype>GLuint64EXT</ptype> *<name>result</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetIntegerv</name></proto>
+ <param group="GetPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="117"/>
+ </command>
+ <command>
+ <proto>void <name>glGetInternalformati64v</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLint64</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetInternalformativ</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetInvariantBooleanvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="GetVariantValueEXT"><ptype>GLenum</ptype> <name>value</name></param>
+ <param group="Boolean" len="COMPSIZE(id)"><ptype>GLboolean</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetInvariantFloatvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="GetVariantValueEXT"><ptype>GLenum</ptype> <name>value</name></param>
+ <param len="COMPSIZE(id)"><ptype>GLfloat</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetInvariantIntegervEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="GetVariantValueEXT"><ptype>GLenum</ptype> <name>value</name></param>
+ <param len="COMPSIZE(id)"><ptype>GLint</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetLightfv</name></proto>
+ <param group="LightName"><ptype>GLenum</ptype> <name>light</name></param>
+ <param group="LightParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="single" opcode="118"/>
+ </command>
+ <command>
+ <proto>void <name>glGetLightiv</name></proto>
+ <param group="LightName"><ptype>GLenum</ptype> <name>light</name></param>
+ <param group="LightParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="119"/>
+ </command>
+ <command>
+ <proto>void <name>glGetLightx</name></proto>
+ <param><ptype>GLenum</ptype> <name>light</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetLightxOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>light</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetLightxv</name></proto>
+ <param><ptype>GLenum</ptype> <name>light</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetLightxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>light</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetListParameterfvSGIX</name></proto>
+ <param group="List"><ptype>GLuint</ptype> <name>list</name></param>
+ <param group="ListParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetListParameterivSGIX</name></proto>
+ <param group="List"><ptype>GLuint</ptype> <name>list</name></param>
+ <param group="ListParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetLocalConstantBooleanvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="GetVariantValueEXT"><ptype>GLenum</ptype> <name>value</name></param>
+ <param group="Boolean" len="COMPSIZE(id)"><ptype>GLboolean</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetLocalConstantFloatvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="GetVariantValueEXT"><ptype>GLenum</ptype> <name>value</name></param>
+ <param len="COMPSIZE(id)"><ptype>GLfloat</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetLocalConstantIntegervEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="GetVariantValueEXT"><ptype>GLenum</ptype> <name>value</name></param>
+ <param len="COMPSIZE(id)"><ptype>GLint</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMapAttribParameterfvNV</name></proto>
+ <param group="EvalTargetNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="MapAttribParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMapAttribParameterivNV</name></proto>
+ <param group="EvalTargetNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="MapAttribParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMapControlPointsNV</name></proto>
+ <param group="EvalTargetNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="MapTypeNV"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>ustride</name></param>
+ <param><ptype>GLsizei</ptype> <name>vstride</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>packed</name></param>
+ <param len="COMPSIZE(target)"><ptype>GLvoid</ptype> *<name>points</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMapParameterfvNV</name></proto>
+ <param group="EvalTargetNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="MapParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(target,pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMapParameterivNV</name></proto>
+ <param group="EvalTargetNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="MapParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(target,pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMapdv</name></proto>
+ <param group="MapTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetMapQuery"><ptype>GLenum</ptype> <name>query</name></param>
+ <param len="COMPSIZE(target,query)"><ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="single" opcode="120"/>
+ </command>
+ <command>
+ <proto>void <name>glGetMapfv</name></proto>
+ <param group="MapTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetMapQuery"><ptype>GLenum</ptype> <name>query</name></param>
+ <param len="COMPSIZE(target,query)"><ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="single" opcode="121"/>
+ </command>
+ <command>
+ <proto>void <name>glGetMapiv</name></proto>
+ <param group="MapTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetMapQuery"><ptype>GLenum</ptype> <name>query</name></param>
+ <param len="COMPSIZE(target,query)"><ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="single" opcode="122"/>
+ </command>
+ <command>
+ <proto>void <name>glGetMapxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>query</name></param>
+ <param len="COMPSIZE(query)"><ptype>GLfixed</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMaterialfv</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="single" opcode="123"/>
+ </command>
+ <command>
+ <proto>void <name>glGetMaterialiv</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="124"/>
+ </command>
+ <command>
+ <proto>void <name>glGetMaterialx</name></proto>
+ <param><ptype>GLenum</ptype> <name>face</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMaterialxOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>face</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMaterialxv</name></proto>
+ <param><ptype>GLenum</ptype> <name>face</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMaterialxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>face</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMinmax</name></proto>
+ <param group="MinmaxTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>reset</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,format,type)"><ptype>GLvoid</ptype> *<name>values</name></param>
+ <glx type="single" opcode="157"/>
+ <glx type="render" opcode="338" name="glGetMinmaxPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glGetMinmaxEXT</name></proto>
+ <param group="MinmaxTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>reset</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,format,type)"><ptype>GLvoid</ptype> *<name>values</name></param>
+ <glx type="vendor" opcode="8"/>
+ </command>
+ <command>
+ <proto>void <name>glGetMinmaxParameterfv</name></proto>
+ <param group="MinmaxTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetMinmaxParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="single" opcode="158"/>
+ </command>
+ <command>
+ <proto>void <name>glGetMinmaxParameterfvEXT</name></proto>
+ <param group="MinmaxTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetMinmaxParameterPNameEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="9"/>
+ </command>
+ <command>
+ <proto>void <name>glGetMinmaxParameteriv</name></proto>
+ <param group="MinmaxTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetMinmaxParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="159"/>
+ </command>
+ <command>
+ <proto>void <name>glGetMinmaxParameterivEXT</name></proto>
+ <param group="MinmaxTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetMinmaxParameterPNameEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="10"/>
+ </command>
+ <command>
+ <proto>void <name>glGetMultiTexEnvfvEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureEnvTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureEnvParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMultiTexEnvivEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureEnvTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureEnvParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMultiTexGendvEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLdouble</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMultiTexGenfvEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMultiTexGenivEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMultiTexImageEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,level,format,type)"><ptype>GLvoid</ptype> *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMultiTexLevelParameterfvEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMultiTexLevelParameterivEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMultiTexParameterIivEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMultiTexParameterIuivEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMultiTexParameterfvEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMultiTexParameterivEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMultisamplefv</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>val</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetMultisamplefvNV</name></proto>
+ <param group="GetMultisamplePNameNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2"><ptype>GLfloat</ptype> *<name>val</name></param>
+ <alias name="glGetMultisamplefv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedBufferParameterivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="VertexBufferObjectParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedBufferParameterui64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="VertexBufferObjectParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLuint64EXT</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedBufferPointervEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="VertexBufferObjectParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLvoid</ptype> **<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedBufferSubDataEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ <param len="COMPSIZE(size)"><ptype>GLvoid</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedFramebufferAttachmentParameterivEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="FramebufferAttachmentParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedFramebufferParameterivEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param group="GetFramebufferParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedProgramLocalParameterIivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedProgramLocalParameterIuivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4"><ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedProgramLocalParameterdvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4"><ptype>GLdouble</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedProgramLocalParameterfvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedProgramStringEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ProgramStringProperty"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(program,pname)"><ptype>GLvoid</ptype> *<name>string</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedProgramivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ProgramProperty"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedRenderbufferParameterivEXT</name></proto>
+ <param group="Renderbuffer"><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ <param group="RenderbufferParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedStringARB</name></proto>
+ <param><ptype>GLint</ptype> <name>namelen</name></param>
+ <param len="namelen">const <ptype>GLchar</ptype> *<name>name</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>stringlen</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>string</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetNamedStringivARB</name></proto>
+ <param><ptype>GLint</ptype> <name>namelen</name></param>
+ <param len="namelen">const <ptype>GLchar</ptype> *<name>name</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetObjectBufferfvATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="ArrayObjectPNameATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetObjectBufferivATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="ArrayObjectPNameATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetObjectLabel</name></proto>
+ <param><ptype>GLenum</ptype> <name>identifier</name></param>
+ <param><ptype>GLuint</ptype> <name>name</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>label</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetObjectLabelEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>object</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param><ptype>GLchar</ptype> *<name>label</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetObjectLabelKHR</name></proto>
+ <param><ptype>GLenum</ptype> <name>identifier</name></param>
+ <param><ptype>GLuint</ptype> <name>name</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param><ptype>GLchar</ptype> *<name>label</name></param>
+ <alias name="glGetObjectLabel"/>
+ </command>
+ <command>
+ <proto>void <name>glGetObjectParameterfvARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>obj</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="pname"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetObjectParameterivAPPLE</name></proto>
+ <param><ptype>GLenum</ptype> <name>objectType</name></param>
+ <param><ptype>GLuint</ptype> <name>name</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetObjectParameterivARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>obj</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="pname"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetObjectPtrLabel</name></proto>
+ <param>const void *<name>ptr</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>label</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetObjectPtrLabelKHR</name></proto>
+ <param>const void *<name>ptr</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param><ptype>GLchar</ptype> *<name>label</name></param>
+ <alias name="glGetObjectPtrLabel"/>
+ </command>
+ <command>
+ <proto>void <name>glGetOcclusionQueryivNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="OcclusionQueryParameterNameNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetOcclusionQueryuivNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="OcclusionQueryParameterNameNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPathColorGenfvNV</name></proto>
+ <param group="PathColor"><ptype>GLenum</ptype> <name>color</name></param>
+ <param group="PathGenMode"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPathColorGenivNV</name></proto>
+ <param group="PathColor"><ptype>GLenum</ptype> <name>color</name></param>
+ <param group="PathGenMode"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPathCommandsNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param group="PathCommand" len="COMPSIZE(path)"><ptype>GLubyte</ptype> *<name>commands</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPathCoordsNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param len="COMPSIZE(path)"><ptype>GLfloat</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPathDashArrayNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param len="COMPSIZE(path)"><ptype>GLfloat</ptype> *<name>dashArray</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLfloat</ptype> <name>glGetPathLengthNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param><ptype>GLsizei</ptype> <name>startSegment</name></param>
+ <param><ptype>GLsizei</ptype> <name>numSegments</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPathMetricRangeNV</name></proto>
+ <param group="PathMetricMask"><ptype>GLbitfield</ptype> <name>metricQueryMask</name></param>
+ <param group="Path"><ptype>GLuint</ptype> <name>firstPathName</name></param>
+ <param><ptype>GLsizei</ptype> <name>numPaths</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(metricQueryMask,numPaths,stride)"><ptype>GLfloat</ptype> *<name>metrics</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPathMetricsNV</name></proto>
+ <param group="PathMetricMask"><ptype>GLbitfield</ptype> <name>metricQueryMask</name></param>
+ <param><ptype>GLsizei</ptype> <name>numPaths</name></param>
+ <param group="PathElementType"><ptype>GLenum</ptype> <name>pathNameType</name></param>
+ <param group="PathElement" len="COMPSIZE(numPaths,pathNameType,paths)">const <ptype>GLvoid</ptype> *<name>paths</name></param>
+ <param group="Path"><ptype>GLuint</ptype> <name>pathBase</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(metricQueryMask,numPaths,stride)"><ptype>GLfloat</ptype> *<name>metrics</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPathParameterfvNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param group="PathParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="4"><ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPathParameterivNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param group="PathParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="4"><ptype>GLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPathSpacingNV</name></proto>
+ <param group="PathListMode"><ptype>GLenum</ptype> <name>pathListMode</name></param>
+ <param><ptype>GLsizei</ptype> <name>numPaths</name></param>
+ <param group="PathElementType"><ptype>GLenum</ptype> <name>pathNameType</name></param>
+ <param group="PathElement" len="COMPSIZE(numPaths,pathNameType,paths)">const <ptype>GLvoid</ptype> *<name>paths</name></param>
+ <param group="Path"><ptype>GLuint</ptype> <name>pathBase</name></param>
+ <param><ptype>GLfloat</ptype> <name>advanceScale</name></param>
+ <param><ptype>GLfloat</ptype> <name>kerningScale</name></param>
+ <param group="PathTransformType"><ptype>GLenum</ptype> <name>transformType</name></param>
+ <param len="COMPSIZE(pathListMode,numPaths)"><ptype>GLfloat</ptype> *<name>returnedSpacing</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPathTexGenfvNV</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texCoordSet</name></param>
+ <param group="PathGenMode"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPathTexGenivNV</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texCoordSet</name></param>
+ <param group="PathGenMode"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPerfMonitorCounterDataAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>monitor</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLsizei</ptype> <name>dataSize</name></param>
+ <param len="dataSize"><ptype>GLuint</ptype> *<name>data</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>bytesWritten</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPerfMonitorCounterInfoAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>group</name></param>
+ <param><ptype>GLuint</ptype> <name>counter</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLvoid</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPerfMonitorCounterStringAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>group</name></param>
+ <param><ptype>GLuint</ptype> <name>counter</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>counterString</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPerfMonitorCountersAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>group</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>numCounters</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>maxActiveCounters</name></param>
+ <param><ptype>GLsizei</ptype> <name>counterSize</name></param>
+ <param len="counterSize"><ptype>GLuint</ptype> *<name>counters</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPerfMonitorGroupStringAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>group</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>groupString</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPerfMonitorGroupsAMD</name></proto>
+ <param len="1"><ptype>GLint</ptype> *<name>numGroups</name></param>
+ <param><ptype>GLsizei</ptype> <name>groupsSize</name></param>
+ <param len="groupsSize"><ptype>GLuint</ptype> *<name>groups</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPixelMapfv</name></proto>
+ <param group="PixelMap"><ptype>GLenum</ptype> <name>map</name></param>
+ <param len="COMPSIZE(map)"><ptype>GLfloat</ptype> *<name>values</name></param>
+ <glx type="single" opcode="125"/>
+ <glx type="render" opcode="339" name="glGetPixelMapfvPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glGetPixelMapuiv</name></proto>
+ <param group="PixelMap"><ptype>GLenum</ptype> <name>map</name></param>
+ <param len="COMPSIZE(map)"><ptype>GLuint</ptype> *<name>values</name></param>
+ <glx type="single" opcode="126"/>
+ <glx type="render" opcode="340" name="glGetPixelMapuivPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glGetPixelMapusv</name></proto>
+ <param group="PixelMap"><ptype>GLenum</ptype> <name>map</name></param>
+ <param len="COMPSIZE(map)"><ptype>GLushort</ptype> *<name>values</name></param>
+ <glx type="single" opcode="127"/>
+ <glx type="render" opcode="341" name="glGetPixelMapusvPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glGetPixelMapxv</name></proto>
+ <param><ptype>GLenum</ptype> <name>map</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param len="size"><ptype>GLfixed</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPixelTexGenParameterfvSGIS</name></proto>
+ <param group="PixelTexGenParameterNameSGIS"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPixelTexGenParameterivSGIS</name></proto>
+ <param group="PixelTexGenParameterNameSGIS"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPixelTransformParameterfvEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="2051"/>
+ </command>
+ <command>
+ <proto>void <name>glGetPixelTransformParameterivEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="2052"/>
+ </command>
+ <command>
+ <proto>void <name>glGetPointerIndexedvEXT</name></proto>
+ <param group="TypeEnum"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1"><ptype>GLvoid</ptype> **<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPointeri_vEXT</name></proto>
+ <param group="TypeEnum"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1"><ptype>GLvoid</ptype> **<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetPointerv</name></proto>
+ <param group="GetPointervPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLvoid</ptype> **<name>params</name></param>
+ <glx type="single" opcode="208"/>
+ </command>
+ <command>
+ <proto>void <name>glGetPointervEXT</name></proto>
+ <param group="GetPointervPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLvoid</ptype> **<name>params</name></param>
+ <alias name="glGetPointerv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetPointervKHR</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLvoid</ptype> **<name>params</name></param>
+ <alias name="glGetPointerv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetPolygonStipple</name></proto>
+ <param len="COMPSIZE()"><ptype>GLubyte</ptype> *<name>mask</name></param>
+ <glx type="single" opcode="128"/>
+ <glx type="render" opcode="342" name="glGetPolygonStipplePBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramBinary</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="1"><ptype>GLenum</ptype> *<name>binaryFormat</name></param>
+ <param len="COMPSIZE(length)"><ptype>GLvoid</ptype> *<name>binary</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramBinaryOES</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param><ptype>GLenum</ptype> *<name>binaryFormat</name></param>
+ <param><ptype>GLvoid</ptype> *<name>binary</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramEnvParameterIivNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramEnvParameterIuivNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4"><ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramEnvParameterdvARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4"><ptype>GLdouble</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramEnvParameterfvARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramInfoLog</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="length"><ptype>GLchar</ptype> *<name>infoLog</name></param>
+ <glx type="single" opcode="201"/>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramInterfaceiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>programInterface</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramLocalParameterIivNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramLocalParameterIuivNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4"><ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramLocalParameterdvARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4"><ptype>GLdouble</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramLocalParameterfvARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramNamedParameterdvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLsizei</ptype> <name>len</name></param>
+ <param len="1">const <ptype>GLubyte</ptype> *<name>name</name></param>
+ <param len="4"><ptype>GLdouble</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1311"/>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramNamedParameterfvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLsizei</ptype> <name>len</name></param>
+ <param len="1">const <ptype>GLubyte</ptype> *<name>name</name></param>
+ <param len="4"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1310"/>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramParameterdvNV</name></proto>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="4"><ptype>GLdouble</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1297"/>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramParameterfvNV</name></proto>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="4"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1296"/>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramPipelineInfoLog</name></proto>
+ <param><ptype>GLuint</ptype> <name>pipeline</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="COMPSIZE(length)"><ptype>GLchar</ptype> *<name>infoLog</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramPipelineInfoLogEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>pipeline</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param><ptype>GLchar</ptype> *<name>infoLog</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramPipelineiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>pipeline</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramPipelineivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>pipeline</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glGetProgramResourceIndex</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>programInterface</name></param>
+ <param len="COMPSIZE(name)">const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glGetProgramResourceLocation</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>programInterface</name></param>
+ <param len="COMPSIZE(name)">const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glGetProgramResourceLocationIndex</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>programInterface</name></param>
+ <param len="COMPSIZE(name)">const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramResourceName</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>programInterface</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramResourceiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>programInterface</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>propCount</name></param>
+ <param len="propCount">const <ptype>GLenum</ptype> *<name>props</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="bufSize"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramStageiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>shadertype</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramStringARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ProgramStringPropertyARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(target,pname)"><ptype>GLvoid</ptype> *<name>string</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramStringNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="ProgramCharacterNV" len="COMPSIZE(id,pname)"><ptype>GLubyte</ptype> *<name>program</name></param>
+ <glx type="vendor" opcode="1299"/>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramSubroutineParameteruivNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="COMPSIZE(target)"><ptype>GLuint</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="pname"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="199"/>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramivARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ProgramPropertyARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetProgramivNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="4"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1298"/>
+ </command>
+ <command>
+ <proto>void <name>glGetQueryIndexediv</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetQueryObjecti64v</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint64</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetQueryObjecti64vEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="pname"><ptype>GLint64</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1328"/>
+ <alias name="glGetQueryObjecti64v"/>
+ </command>
+ <command>
+ <proto>void <name>glGetQueryObjectiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="pname"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="165"/>
+ </command>
+ <command>
+ <proto>void <name>glGetQueryObjectivARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="pname"><ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glGetQueryObjectiv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetQueryObjectivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glGetQueryObjectiv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetQueryObjectui64v</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLuint64</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetQueryObjectui64vEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="pname"><ptype>GLuint64</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1329"/>
+ <alias name="glGetQueryObjectui64v"/>
+ </command>
+ <command>
+ <proto>void <name>glGetQueryObjectuiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="pname"><ptype>GLuint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="166"/>
+ </command>
+ <command>
+ <proto>void <name>glGetQueryObjectuivARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="pname"><ptype>GLuint</ptype> *<name>params</name></param>
+ <alias name="glGetQueryObjectuiv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetQueryObjectuivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetQueryiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="pname"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="164"/>
+ </command>
+ <command>
+ <proto>void <name>glGetQueryivARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="pname"><ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glGetQueryiv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetQueryivEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetRenderbufferParameteriv</name></proto>
+ <param group="RenderbufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1424"/>
+ </command>
+ <command>
+ <proto>void <name>glGetRenderbufferParameterivEXT</name></proto>
+ <param group="RenderbufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glGetRenderbufferParameteriv"/>
+ <glx type="vendor" opcode="1424"/>
+ </command>
+ <command>
+ <proto>void <name>glGetRenderbufferParameterivOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetSamplerParameterIiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetSamplerParameterIuiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetSamplerParameterfv</name></proto>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetSamplerParameteriv</name></proto>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetSeparableFilter</name></proto>
+ <param group="SeparableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,format,type)"><ptype>GLvoid</ptype> *<name>row</name></param>
+ <param len="COMPSIZE(target,format,type)"><ptype>GLvoid</ptype> *<name>column</name></param>
+ <param len="COMPSIZE(target,format,type)"><ptype>GLvoid</ptype> *<name>span</name></param>
+ <glx type="single" opcode="153"/>
+ <glx type="render" opcode="343" name="glGetSeparableFilterPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glGetSeparableFilterEXT</name></proto>
+ <param group="SeparableTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,format,type)"><ptype>GLvoid</ptype> *<name>row</name></param>
+ <param len="COMPSIZE(target,format,type)"><ptype>GLvoid</ptype> *<name>column</name></param>
+ <param len="COMPSIZE(target,format,type)"><ptype>GLvoid</ptype> *<name>span</name></param>
+ <glx type="vendor" opcode="4"/>
+ </command>
+ <command>
+ <proto>void <name>glGetShaderInfoLog</name></proto>
+ <param><ptype>GLuint</ptype> <name>shader</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="length"><ptype>GLchar</ptype> *<name>infoLog</name></param>
+ <glx type="single" opcode="200"/>
+ </command>
+ <command>
+ <proto>void <name>glGetShaderPrecisionFormat</name></proto>
+ <param><ptype>GLenum</ptype> <name>shadertype</name></param>
+ <param><ptype>GLenum</ptype> <name>precisiontype</name></param>
+ <param len="2"><ptype>GLint</ptype> *<name>range</name></param>
+ <param len="2"><ptype>GLint</ptype> *<name>precision</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetShaderSource</name></proto>
+ <param><ptype>GLuint</ptype> <name>shader</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="length"><ptype>GLchar</ptype> *<name>source</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetShaderSourceARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>obj</name></param>
+ <param><ptype>GLsizei</ptype> <name>maxLength</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="length"><ptype>GLcharARB</ptype> *<name>source</name></param>
+ <alias name="glGetShaderSource"/>
+ </command>
+ <command>
+ <proto>void <name>glGetShaderiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>shader</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="pname"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="198"/>
+ </command>
+ <command>
+ <proto>void <name>glGetSharpenTexFuncSGIS</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param len="COMPSIZE(target)"><ptype>GLfloat</ptype> *<name>points</name></param>
+ <glx type="vendor" opcode="4097"/>
+ </command>
+ <command>
+ <proto group="String">const <ptype>GLubyte</ptype> *<name>glGetString</name></proto>
+ <param group="StringName"><ptype>GLenum</ptype> <name>name</name></param>
+ <glx type="single" opcode="129"/>
+ </command>
+ <command>
+ <proto group="String">const <ptype>GLubyte</ptype> *<name>glGetStringi</name></proto>
+ <param><ptype>GLenum</ptype> <name>name</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glGetSubroutineIndex</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>shadertype</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glGetSubroutineUniformLocation</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>shadertype</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetSynciv</name></proto>
+ <param group="sync"><ptype>GLsync</ptype> <name>sync</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="length"><ptype>GLint</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetSyncivAPPLE</name></proto>
+ <param><ptype>GLsync</ptype> <name>sync</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param><ptype>GLint</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTexBumpParameterfvATI</name></proto>
+ <param group="GetTexBumpParameterATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTexBumpParameterivATI</name></proto>
+ <param group="GetTexBumpParameterATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTexEnvfv</name></proto>
+ <param group="TextureEnvTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureEnvParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="single" opcode="130"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexEnviv</name></proto>
+ <param group="TextureEnvTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureEnvParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="131"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexEnvxv</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTexEnvxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTexFilterFuncSGIS</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureFilterSGIS"><ptype>GLenum</ptype> <name>filter</name></param>
+ <param len="COMPSIZE(target,filter)"><ptype>GLfloat</ptype> *<name>weights</name></param>
+ <glx type="vendor" opcode="4101"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexGendv</name></proto>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLdouble</ptype> *<name>params</name></param>
+ <glx type="single" opcode="132"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexGenfv</name></proto>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="single" opcode="133"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexGenfvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>coord</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTexGeniv</name></proto>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="134"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexGenivOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>coord</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTexGenxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>coord</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTexImage</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,level,format,type)"><ptype>GLvoid</ptype> *<name>pixels</name></param>
+ <glx type="single" opcode="135"/>
+ <glx type="render" opcode="344" name="glGetTexImagePBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexLevelParameterfv</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="single" opcode="138"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexLevelParameteriv</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="139"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexLevelParameterxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTexParameterIiv</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="203"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexParameterIivEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glGetTexParameterIiv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexParameterIuiv</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLuint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="204"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexParameterIuivEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLuint</ptype> *<name>params</name></param>
+ <alias name="glGetTexParameterIuiv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexParameterPointervAPPLE</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLvoid</ptype> **<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTexParameterfv</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="single" opcode="136"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexParameteriv</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="single" opcode="137"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTexParameterxv</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTexParameterxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint64</ptype> <name>glGetTextureHandleNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTextureImageEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,level,format,type)"><ptype>GLvoid</ptype> *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTextureLevelParameterfvEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTextureLevelParameterivEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTextureParameterIivEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTextureParameterIuivEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTextureParameterfvEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTextureParameterivEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="GetTextureParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint64</ptype> <name>glGetTextureSamplerHandleNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTrackMatrixivNV</name></proto>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>address</name></param>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1300"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTransformFeedbackVarying</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>size</name></param>
+ <param len="1"><ptype>GLenum</ptype> *<name>type</name></param>
+ <param len="COMPSIZE(length)"><ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTransformFeedbackVaryingEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="1"><ptype>GLsizei</ptype> *<name>size</name></param>
+ <param len="1"><ptype>GLenum</ptype> *<name>type</name></param>
+ <param len="COMPSIZE(length)"><ptype>GLchar</ptype> *<name>name</name></param>
+ <alias name="glGetTransformFeedbackVarying"/>
+ </command>
+ <command>
+ <proto>void <name>glGetTransformFeedbackVaryingNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>location</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetTranslatedShaderSourceANGLE</name></proto>
+ <param><ptype>GLuint</ptype> <name>shader</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufsize</name></param>
+ <param><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param><ptype>GLchar</ptype> *<name>source</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glGetUniformBlockIndex</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param len="COMPSIZE()">const <ptype>GLchar</ptype> *<name>uniformBlockName</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glGetUniformBufferSizeEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetUniformIndices</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLsizei</ptype> <name>uniformCount</name></param>
+ <param len="COMPSIZE(uniformCount)">const <ptype>GLchar</ptype> *const*<name>uniformNames</name></param>
+ <param len="COMPSIZE(uniformCount)"><ptype>GLuint</ptype> *<name>uniformIndices</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glGetUniformLocation</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glGetUniformLocationARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>programObj</name></param>
+ <param>const <ptype>GLcharARB</ptype> *<name>name</name></param>
+ <alias name="glGetUniformLocation"/>
+ </command>
+ <command>
+ <proto group="BufferOffset"><ptype>GLintptr</ptype> <name>glGetUniformOffsetEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetUniformSubroutineuiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>shadertype</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param len="1"><ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetUniformdv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param len="COMPSIZE(location)"><ptype>GLdouble</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetUniformfv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param len="COMPSIZE(location)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetUniformfvARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>programObj</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param len="COMPSIZE(location)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <alias name="glGetUniformfv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetUniformi64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param len="COMPSIZE(location)"><ptype>GLint64EXT</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetUniformiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param len="COMPSIZE(location)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetUniformivARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>programObj</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param len="COMPSIZE(location)"><ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glGetUniformiv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetUniformui64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param len="COMPSIZE(program,location)"><ptype>GLuint64EXT</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetUniformuiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param len="COMPSIZE(program,location)"><ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetUniformuivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param len="COMPSIZE(program,location)"><ptype>GLuint</ptype> *<name>params</name></param>
+ <alias name="glGetUniformuiv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVariantArrayObjectfvATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="ArrayObjectPNameATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVariantArrayObjectivATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="ArrayObjectPNameATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVariantBooleanvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="GetVariantValueEXT"><ptype>GLenum</ptype> <name>value</name></param>
+ <param group="Boolean" len="COMPSIZE(id)"><ptype>GLboolean</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVariantFloatvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="GetVariantValueEXT"><ptype>GLenum</ptype> <name>value</name></param>
+ <param len="COMPSIZE(id)"><ptype>GLfloat</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVariantIntegervEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="GetVariantValueEXT"><ptype>GLenum</ptype> <name>value</name></param>
+ <param len="COMPSIZE(id)"><ptype>GLint</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVariantPointervEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="GetVariantValueEXT"><ptype>GLenum</ptype> <name>value</name></param>
+ <param len="COMPSIZE(id)"><ptype>GLvoid</ptype> **<name>data</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glGetVaryingLocationNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param len="COMPSIZE(name)">const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexArrayIntegeri_vEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexArrayIntegervEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexArrayPointeri_vEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLvoid</ptype> **<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexArrayPointervEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLvoid</ptype> **<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribArrayObjectfvATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="ArrayObjectPNameATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="pname"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribArrayObjectivATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="ArrayObjectPNameATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="pname"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribIiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribEnum"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribIivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribEnum"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glGetVertexAttribIiv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribIuiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribEnum"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribIuivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribEnum"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLuint</ptype> *<name>params</name></param>
+ <alias name="glGetVertexAttribIuiv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribLdv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLdouble</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribLdvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLdouble</ptype> *<name>params</name></param>
+ <alias name="glGetVertexAttribLdv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribLi64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint64EXT</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribLui64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLuint64EXT</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribPointerv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribPointerPropertyARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLvoid</ptype> **<name>pointer</name></param>
+ <glx type="single" opcode="209"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribPointervARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribPointerPropertyARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLvoid</ptype> **<name>pointer</name></param>
+ <alias name="glGetVertexAttribPointerv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribPointervNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLvoid</ptype> **<name>pointer</name></param>
+ <alias name="glGetVertexAttribPointerv"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribdv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribPropertyARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="4"><ptype>GLdouble</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1301"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribdvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribPropertyARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="4"><ptype>GLdouble</ptype> *<name>params</name></param>
+ <alias name="glGetVertexAttribdv"/>
+ <glx type="vendor" opcode="1301"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribdvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLdouble</ptype> *<name>params</name></param>
+ <alias name="glGetVertexAttribdv"/>
+ <glx type="vendor" opcode="1301"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribfv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribPropertyARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="4"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1302"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribfvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribPropertyARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="4"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <alias name="glGetVertexAttribfv"/>
+ <glx type="vendor" opcode="1302"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribfvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <alias name="glGetVertexAttribfv"/>
+ <glx type="vendor" opcode="1302"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribPropertyARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="4"><ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="vendor" opcode="1303"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribivARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribPropertyARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="4"><ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glGetVertexAttribiv"/>
+ <glx type="vendor" opcode="1303"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVertexAttribivNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1"><ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glGetVertexAttribiv"/>
+ <glx type="vendor" opcode="1303"/>
+ </command>
+ <command>
+ <proto>void <name>glGetVideoCaptureStreamdvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_capture_slot</name></param>
+ <param><ptype>GLuint</ptype> <name>stream</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLdouble</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVideoCaptureStreamfvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_capture_slot</name></param>
+ <param><ptype>GLuint</ptype> <name>stream</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVideoCaptureStreamivNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_capture_slot</name></param>
+ <param><ptype>GLuint</ptype> <name>stream</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVideoCaptureivNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_capture_slot</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVideoi64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_slot</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint64EXT</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVideoivNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_slot</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVideoui64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_slot</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLuint64EXT</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetVideouivNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_slot</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)"><ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnColorTableARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLvoid</ptype> *<name>table</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnCompressedTexImageARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLint</ptype> <name>lod</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLvoid</ptype> *<name>img</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnConvolutionFilterARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLvoid</ptype> *<name>image</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnHistogramARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>reset</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLvoid</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnMapdvARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>query</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLdouble</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnMapfvARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>query</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnMapivARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>query</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnMinmaxARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>reset</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLvoid</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnPixelMapfvARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>map</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLfloat</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnPixelMapuivARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>map</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLuint</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnPixelMapusvARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>map</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLushort</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnPolygonStippleARB</name></proto>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLubyte</ptype> *<name>pattern</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnSeparableFilterARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>rowBufSize</name></param>
+ <param len="rowBufSize"><ptype>GLvoid</ptype> *<name>row</name></param>
+ <param><ptype>GLsizei</ptype> <name>columnBufSize</name></param>
+ <param len="columnBufSize"><ptype>GLvoid</ptype> *<name>column</name></param>
+ <param len="0"><ptype>GLvoid</ptype> *<name>span</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnTexImageARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLvoid</ptype> *<name>img</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnUniformdvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLdouble</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnUniformfvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnUniformfvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnUniformivARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnUniformivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGetnUniformuivARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGlobalAlphaFactorbSUN</name></proto>
+ <param><ptype>GLbyte</ptype> <name>factor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGlobalAlphaFactordSUN</name></proto>
+ <param><ptype>GLdouble</ptype> <name>factor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGlobalAlphaFactorfSUN</name></proto>
+ <param><ptype>GLfloat</ptype> <name>factor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGlobalAlphaFactoriSUN</name></proto>
+ <param><ptype>GLint</ptype> <name>factor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGlobalAlphaFactorsSUN</name></proto>
+ <param><ptype>GLshort</ptype> <name>factor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGlobalAlphaFactorubSUN</name></proto>
+ <param><ptype>GLubyte</ptype> <name>factor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGlobalAlphaFactoruiSUN</name></proto>
+ <param><ptype>GLuint</ptype> <name>factor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glGlobalAlphaFactorusSUN</name></proto>
+ <param><ptype>GLushort</ptype> <name>factor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glHint</name></proto>
+ <param group="HintTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="HintMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <glx type="render" opcode="85"/>
+ </command>
+ <command>
+ <proto>void <name>glHintPGI</name></proto>
+ <param group="HintTargetPGI"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLint</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glHistogram</name></proto>
+ <param group="HistogramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>sink</name></param>
+ <glx type="render" opcode="4110"/>
+ </command>
+ <command>
+ <proto>void <name>glHistogramEXT</name></proto>
+ <param group="HistogramTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>sink</name></param>
+ <alias name="glHistogram"/>
+ <glx type="render" opcode="4110"/>
+ </command>
+ <command>
+ <proto>void <name>glIglooInterfaceSGIX</name></proto>
+ <param group="IglooFunctionSelectSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="IglooParameterSGIX" len="COMPSIZE(pname)">const <ptype>GLvoid</ptype> *<name>params</name></param>
+ <glx type="render" opcode="200"/>
+ </command>
+ <command>
+ <proto>void <name>glImageTransformParameterfHP</name></proto>
+ <param group="ImageTransformTargetHP"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ImageTransformPNameHP"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfloat</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glImageTransformParameterfvHP</name></proto>
+ <param group="ImageTransformTargetHP"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ImageTransformPNameHP"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glImageTransformParameteriHP</name></proto>
+ <param group="ImageTransformTargetHP"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ImageTransformPNameHP"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glImageTransformParameterivHP</name></proto>
+ <param group="ImageTransformTargetHP"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ImageTransformPNameHP"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto group="sync"><ptype>GLsync</ptype> <name>glImportSyncEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>external_sync_type</name></param>
+ <param><ptype>GLintptr</ptype> <name>external_sync</name></param>
+ <param><ptype>GLbitfield</ptype> <name>flags</name></param>
+ </command>
+ <command>
+ <proto>void <name>glIndexFormatNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glIndexFuncEXT</name></proto>
+ <param group="IndexFunctionEXT"><ptype>GLenum</ptype> <name>func</name></param>
+ <param group="ClampedFloat32"><ptype>GLclampf</ptype> <name>ref</name></param>
+ </command>
+ <command>
+ <proto>void <name>glIndexMask</name></proto>
+ <param group="MaskedColorIndexValueI"><ptype>GLuint</ptype> <name>mask</name></param>
+ <glx type="render" opcode="136"/>
+ </command>
+ <command>
+ <proto>void <name>glIndexMaterialEXT</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="IndexMaterialParameterEXT"><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glIndexPointer</name></proto>
+ <param group="IndexPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(type,stride)">const <ptype>GLvoid</ptype> *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glIndexPointerEXT</name></proto>
+ <param group="IndexPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(type,stride,count)">const <ptype>GLvoid</ptype> *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glIndexPointerListIBM</name></proto>
+ <param group="IndexPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLint</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(type,stride)">const <ptype>GLvoid</ptype> **<name>pointer</name></param>
+ <param><ptype>GLint</ptype> <name>ptrstride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glIndexd</name></proto>
+ <param group="ColorIndexValueD"><ptype>GLdouble</ptype> <name>c</name></param>
+ <vecequiv name="glIndexdv"/>
+ </command>
+ <command>
+ <proto>void <name>glIndexdv</name></proto>
+ <param group="ColorIndexValueD" len="1">const <ptype>GLdouble</ptype> *<name>c</name></param>
+ <glx type="render" opcode="24"/>
+ </command>
+ <command>
+ <proto>void <name>glIndexf</name></proto>
+ <param group="ColorIndexValueF"><ptype>GLfloat</ptype> <name>c</name></param>
+ <vecequiv name="glIndexfv"/>
+ </command>
+ <command>
+ <proto>void <name>glIndexfv</name></proto>
+ <param group="ColorIndexValueF" len="1">const <ptype>GLfloat</ptype> *<name>c</name></param>
+ <glx type="render" opcode="25"/>
+ </command>
+ <command>
+ <proto>void <name>glIndexi</name></proto>
+ <param group="ColorIndexValueI"><ptype>GLint</ptype> <name>c</name></param>
+ <vecequiv name="glIndexiv"/>
+ </command>
+ <command>
+ <proto>void <name>glIndexiv</name></proto>
+ <param group="ColorIndexValueI" len="1">const <ptype>GLint</ptype> *<name>c</name></param>
+ <glx type="render" opcode="26"/>
+ </command>
+ <command>
+ <proto>void <name>glIndexs</name></proto>
+ <param group="ColorIndexValueS"><ptype>GLshort</ptype> <name>c</name></param>
+ <vecequiv name="glIndexsv"/>
+ </command>
+ <command>
+ <proto>void <name>glIndexsv</name></proto>
+ <param group="ColorIndexValueS" len="1">const <ptype>GLshort</ptype> *<name>c</name></param>
+ <glx type="render" opcode="27"/>
+ </command>
+ <command>
+ <proto>void <name>glIndexub</name></proto>
+ <param group="ColorIndexValueUB"><ptype>GLubyte</ptype> <name>c</name></param>
+ <vecequiv name="glIndexubv"/>
+ </command>
+ <command>
+ <proto>void <name>glIndexubv</name></proto>
+ <param group="ColorIndexValueUB" len="1">const <ptype>GLubyte</ptype> *<name>c</name></param>
+ <glx type="render" opcode="194"/>
+ </command>
+ <command>
+ <proto>void <name>glIndexxOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>component</name></param>
+ </command>
+ <command>
+ <proto>void <name>glIndexxvOES</name></proto>
+ <param len="1">const <ptype>GLfixed</ptype> *<name>component</name></param>
+ </command>
+ <command>
+ <proto>void <name>glInitNames</name></proto>
+ <glx type="render" opcode="121"/>
+ </command>
+ <command>
+ <proto>void <name>glInsertComponentEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>res</name></param>
+ <param><ptype>GLuint</ptype> <name>src</name></param>
+ <param><ptype>GLuint</ptype> <name>num</name></param>
+ </command>
+ <command>
+ <proto>void <name>glInsertEventMarkerEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>marker</name></param>
+ </command>
+ <command>
+ <proto>void <name>glInstrumentsBufferSGIX</name></proto>
+ <param><ptype>GLsizei</ptype> <name>size</name></param>
+ <param len="size"><ptype>GLint</ptype> *<name>buffer</name></param>
+ <glx type="vendor" opcode="4103"/>
+ </command>
+ <command>
+ <proto>void <name>glInterleavedArrays</name></proto>
+ <param group="InterleavedArrayFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(format,stride)">const <ptype>GLvoid</ptype> *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glInterpolatePathsNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>resultPath</name></param>
+ <param group="Path"><ptype>GLuint</ptype> <name>pathA</name></param>
+ <param group="Path"><ptype>GLuint</ptype> <name>pathB</name></param>
+ <param><ptype>GLfloat</ptype> <name>weight</name></param>
+ </command>
+ <command>
+ <proto>void <name>glInvalidateBufferData</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glInvalidateBufferSubData</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>length</name></param>
+ </command>
+ <command>
+ <proto>void <name>glInvalidateFramebuffer</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>numAttachments</name></param>
+ <param len="numAttachments">const <ptype>GLenum</ptype> *<name>attachments</name></param>
+ </command>
+ <command>
+ <proto>void <name>glInvalidateSubFramebuffer</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>numAttachments</name></param>
+ <param len="numAttachments">const <ptype>GLenum</ptype> *<name>attachments</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glInvalidateTexImage</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ </command>
+ <command>
+ <proto>void <name>glInvalidateTexSubImage</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsAsyncMarkerSGIX</name></proto>
+ <param><ptype>GLuint</ptype> <name>marker</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsBuffer</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsBufferARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <alias name="glIsBuffer"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsBufferResidentNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsEnabled</name></proto>
+ <param group="EnableCap"><ptype>GLenum</ptype> <name>cap</name></param>
+ <glx type="single" opcode="140"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsEnabledIndexedEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <alias name="glIsEnabledi"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsEnabledi</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsFenceAPPLE</name></proto>
+ <param group="FenceNV"><ptype>GLuint</ptype> <name>fence</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsFenceNV</name></proto>
+ <param group="FenceNV"><ptype>GLuint</ptype> <name>fence</name></param>
+ <glx type="vendor" opcode="1278"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsFramebuffer</name></proto>
+ <param><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <glx type="vendor" opcode="1425"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsFramebufferEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <alias name="glIsFramebuffer"/>
+ <glx type="vendor" opcode="1425"/>
+ </command>
+ <command>
+ <proto><ptype>GLboolean</ptype> <name>glIsFramebufferOES</name></proto>
+ <param><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsImageHandleResidentNV</name></proto>
+ <param><ptype>GLuint64</ptype> <name>handle</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsList</name></proto>
+ <param group="List"><ptype>GLuint</ptype> <name>list</name></param>
+ <glx type="single" opcode="141"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsNameAMD</name></proto>
+ <param><ptype>GLenum</ptype> <name>identifier</name></param>
+ <param><ptype>GLuint</ptype> <name>name</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsNamedBufferResidentNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsNamedStringARB</name></proto>
+ <param><ptype>GLint</ptype> <name>namelen</name></param>
+ <param len="namelen">const <ptype>GLchar</ptype> *<name>name</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsObjectBufferATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsOcclusionQueryNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsPathNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsPointInFillPathNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param group="MaskedStencilValue"><ptype>GLuint</ptype> <name>mask</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsPointInStrokePathNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsProgram</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <glx type="single" opcode="197"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsProgramARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <glx type="vendor" opcode="1304"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsProgramNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <alias name="glIsProgramARB"/>
+ <glx type="vendor" opcode="1304"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsProgramPipeline</name></proto>
+ <param><ptype>GLuint</ptype> <name>pipeline</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLboolean</ptype> <name>glIsProgramPipelineEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>pipeline</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsQuery</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <glx type="single" opcode="163"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsQueryARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <alias name="glIsQuery"/>
+ </command>
+ <command>
+ <proto><ptype>GLboolean</ptype> <name>glIsQueryEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsRenderbuffer</name></proto>
+ <param><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ <glx type="vendor" opcode="1422"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsRenderbufferEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ <alias name="glIsRenderbuffer"/>
+ <glx type="vendor" opcode="1422"/>
+ </command>
+ <command>
+ <proto><ptype>GLboolean</ptype> <name>glIsRenderbufferOES</name></proto>
+ <param><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsSampler</name></proto>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsShader</name></proto>
+ <param><ptype>GLuint</ptype> <name>shader</name></param>
+ <glx type="single" opcode="196"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsSync</name></proto>
+ <param group="sync"><ptype>GLsync</ptype> <name>sync</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLboolean</ptype> <name>glIsSyncAPPLE</name></proto>
+ <param><ptype>GLsync</ptype> <name>sync</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsTexture</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <glx type="single" opcode="146"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsTextureEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <glx type="vendor" opcode="14"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsTextureHandleResidentNV</name></proto>
+ <param><ptype>GLuint64</ptype> <name>handle</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsTransformFeedback</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsTransformFeedbackNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <alias name="glIsTransformFeedback"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsVariantEnabledEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="VariantCapEXT"><ptype>GLenum</ptype> <name>cap</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsVertexArray</name></proto>
+ <param><ptype>GLuint</ptype> <name>array</name></param>
+ <glx type="single" opcode="207"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsVertexArrayAPPLE</name></proto>
+ <param><ptype>GLuint</ptype> <name>array</name></param>
+ <alias name="glIsVertexArray"/>
+ </command>
+ <command>
+ <proto><ptype>GLboolean</ptype> <name>glIsVertexArrayOES</name></proto>
+ <param><ptype>GLuint</ptype> <name>array</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glIsVertexAttribEnabledAPPLE</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLabelObjectEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>object</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>label</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLightEnviSGIX</name></proto>
+ <param group="LightEnvParameterSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLightModelf</name></proto>
+ <param group="LightModelParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfloat</ptype> <name>param</name></param>
+ <glx type="render" opcode="90"/>
+ </command>
+ <command>
+ <proto>void <name>glLightModelfv</name></proto>
+ <param group="LightModelParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="91"/>
+ </command>
+ <command>
+ <proto>void <name>glLightModeli</name></proto>
+ <param group="LightModelParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ <glx type="render" opcode="92"/>
+ </command>
+ <command>
+ <proto>void <name>glLightModeliv</name></proto>
+ <param group="LightModelParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="93"/>
+ </command>
+ <command>
+ <proto>void <name>glLightModelx</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLightModelxOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLightModelxv</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param>const <ptype>GLfixed</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLightModelxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfixed</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLightf</name></proto>
+ <param group="LightName"><ptype>GLenum</ptype> <name>light</name></param>
+ <param group="LightParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <glx type="render" opcode="86"/>
+ </command>
+ <command>
+ <proto>void <name>glLightfv</name></proto>
+ <param group="LightName"><ptype>GLenum</ptype> <name>light</name></param>
+ <param group="LightParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="87"/>
+ </command>
+ <command>
+ <proto>void <name>glLighti</name></proto>
+ <param group="LightName"><ptype>GLenum</ptype> <name>light</name></param>
+ <param group="LightParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ <glx type="render" opcode="88"/>
+ </command>
+ <command>
+ <proto>void <name>glLightiv</name></proto>
+ <param group="LightName"><ptype>GLenum</ptype> <name>light</name></param>
+ <param group="LightParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="89"/>
+ </command>
+ <command>
+ <proto>void <name>glLightx</name></proto>
+ <param><ptype>GLenum</ptype> <name>light</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLightxOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>light</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLightxv</name></proto>
+ <param><ptype>GLenum</ptype> <name>light</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param>const <ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLightxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>light</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLineStipple</name></proto>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>factor</name></param>
+ <param group="LineStipple"><ptype>GLushort</ptype> <name>pattern</name></param>
+ <glx type="render" opcode="94"/>
+ </command>
+ <command>
+ <proto>void <name>glLineWidth</name></proto>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>width</name></param>
+ <glx type="render" opcode="95"/>
+ </command>
+ <command>
+ <proto>void <name>glLineWidthx</name></proto>
+ <param><ptype>GLfixed</ptype> <name>width</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLineWidthxOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>width</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLinkProgram</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLinkProgramARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>programObj</name></param>
+ <alias name="glLinkProgram"/>
+ </command>
+ <command>
+ <proto>void <name>glListBase</name></proto>
+ <param group="List"><ptype>GLuint</ptype> <name>base</name></param>
+ <glx type="render" opcode="3"/>
+ </command>
+ <command>
+ <proto>void <name>glListParameterfSGIX</name></proto>
+ <param group="List"><ptype>GLuint</ptype> <name>list</name></param>
+ <param group="ListParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <glx type="render" opcode="2078"/>
+ </command>
+ <command>
+ <proto>void <name>glListParameterfvSGIX</name></proto>
+ <param group="List"><ptype>GLuint</ptype> <name>list</name></param>
+ <param group="ListParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="2079"/>
+ </command>
+ <command>
+ <proto>void <name>glListParameteriSGIX</name></proto>
+ <param group="List"><ptype>GLuint</ptype> <name>list</name></param>
+ <param group="ListParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ <glx type="render" opcode="2080"/>
+ </command>
+ <command>
+ <proto>void <name>glListParameterivSGIX</name></proto>
+ <param group="List"><ptype>GLuint</ptype> <name>list</name></param>
+ <param group="ListParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="2081"/>
+ </command>
+ <command>
+ <proto>void <name>glLoadIdentity</name></proto>
+ <glx type="render" opcode="176"/>
+ </command>
+ <command>
+ <proto>void <name>glLoadIdentityDeformationMapSGIX</name></proto>
+ <param group="FfdMaskSGIX"><ptype>GLbitfield</ptype> <name>mask</name></param>
+ <glx type="render" opcode="2076"/>
+ </command>
+ <command>
+ <proto>void <name>glLoadMatrixd</name></proto>
+ <param len="16">const <ptype>GLdouble</ptype> *<name>m</name></param>
+ <glx type="render" opcode="178"/>
+ </command>
+ <command>
+ <proto>void <name>glLoadMatrixf</name></proto>
+ <param len="16">const <ptype>GLfloat</ptype> *<name>m</name></param>
+ <glx type="render" opcode="177"/>
+ </command>
+ <command>
+ <proto>void <name>glLoadMatrixx</name></proto>
+ <param>const <ptype>GLfixed</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLoadMatrixxOES</name></proto>
+ <param len="16">const <ptype>GLfixed</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLoadName</name></proto>
+ <param group="SelectName"><ptype>GLuint</ptype> <name>name</name></param>
+ <glx type="render" opcode="122"/>
+ </command>
+ <command>
+ <proto>void <name>glLoadPaletteFromModelViewMatrixOES</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glLoadProgramNV</name></proto>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLsizei</ptype> <name>len</name></param>
+ <param len="len">const <ptype>GLubyte</ptype> *<name>program</name></param>
+ <glx type="render" opcode="4183"/>
+ </command>
+ <command>
+ <proto>void <name>glLoadTransposeMatrixd</name></proto>
+ <param len="16">const <ptype>GLdouble</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLoadTransposeMatrixdARB</name></proto>
+ <param len="16">const <ptype>GLdouble</ptype> *<name>m</name></param>
+ <alias name="glLoadTransposeMatrixd"/>
+ </command>
+ <command>
+ <proto>void <name>glLoadTransposeMatrixf</name></proto>
+ <param len="16">const <ptype>GLfloat</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLoadTransposeMatrixfARB</name></proto>
+ <param len="16">const <ptype>GLfloat</ptype> *<name>m</name></param>
+ <alias name="glLoadTransposeMatrixf"/>
+ </command>
+ <command>
+ <proto>void <name>glLoadTransposeMatrixxOES</name></proto>
+ <param len="16">const <ptype>GLfixed</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLockArraysEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ </command>
+ <command>
+ <proto>void <name>glLogicOp</name></proto>
+ <param group="LogicOp"><ptype>GLenum</ptype> <name>opcode</name></param>
+ <glx type="render" opcode="161"/>
+ </command>
+ <command>
+ <proto>void <name>glMakeBufferNonResidentNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMakeBufferResidentNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>access</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMakeImageHandleNonResidentNV</name></proto>
+ <param><ptype>GLuint64</ptype> <name>handle</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMakeImageHandleResidentNV</name></proto>
+ <param><ptype>GLuint64</ptype> <name>handle</name></param>
+ <param><ptype>GLenum</ptype> <name>access</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMakeNamedBufferNonResidentNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMakeNamedBufferResidentNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLenum</ptype> <name>access</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMakeTextureHandleNonResidentNV</name></proto>
+ <param><ptype>GLuint64</ptype> <name>handle</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMakeTextureHandleResidentNV</name></proto>
+ <param><ptype>GLuint64</ptype> <name>handle</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMap1d</name></proto>
+ <param group="MapTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u1</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u2</name></param>
+ <param><ptype>GLint</ptype> <name>stride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>order</name></param>
+ <param group="CoordD" len="COMPSIZE(target,stride,order)">const <ptype>GLdouble</ptype> *<name>points</name></param>
+ <glx type="render" opcode="143"/>
+ </command>
+ <command>
+ <proto>void <name>glMap1f</name></proto>
+ <param group="MapTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u1</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u2</name></param>
+ <param><ptype>GLint</ptype> <name>stride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>order</name></param>
+ <param group="CoordF" len="COMPSIZE(target,stride,order)">const <ptype>GLfloat</ptype> *<name>points</name></param>
+ <glx type="render" opcode="144"/>
+ </command>
+ <command>
+ <proto>void <name>glMap1xOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLfixed</ptype> <name>u1</name></param>
+ <param><ptype>GLfixed</ptype> <name>u2</name></param>
+ <param><ptype>GLint</ptype> <name>stride</name></param>
+ <param><ptype>GLint</ptype> <name>order</name></param>
+ <param><ptype>GLfixed</ptype> <name>points</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMap2d</name></proto>
+ <param group="MapTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u1</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u2</name></param>
+ <param><ptype>GLint</ptype> <name>ustride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>uorder</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>v1</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>v2</name></param>
+ <param><ptype>GLint</ptype> <name>vstride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>vorder</name></param>
+ <param group="CoordD" len="COMPSIZE(target,ustride,uorder,vstride,vorder)">const <ptype>GLdouble</ptype> *<name>points</name></param>
+ <glx type="render" opcode="145"/>
+ </command>
+ <command>
+ <proto>void <name>glMap2f</name></proto>
+ <param group="MapTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u1</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u2</name></param>
+ <param><ptype>GLint</ptype> <name>ustride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>uorder</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>v1</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>v2</name></param>
+ <param><ptype>GLint</ptype> <name>vstride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>vorder</name></param>
+ <param group="CoordF" len="COMPSIZE(target,ustride,uorder,vstride,vorder)">const <ptype>GLfloat</ptype> *<name>points</name></param>
+ <glx type="render" opcode="146"/>
+ </command>
+ <command>
+ <proto>void <name>glMap2xOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLfixed</ptype> <name>u1</name></param>
+ <param><ptype>GLfixed</ptype> <name>u2</name></param>
+ <param><ptype>GLint</ptype> <name>ustride</name></param>
+ <param><ptype>GLint</ptype> <name>uorder</name></param>
+ <param><ptype>GLfixed</ptype> <name>v1</name></param>
+ <param><ptype>GLfixed</ptype> <name>v2</name></param>
+ <param><ptype>GLint</ptype> <name>vstride</name></param>
+ <param><ptype>GLint</ptype> <name>vorder</name></param>
+ <param><ptype>GLfixed</ptype> <name>points</name></param>
+ </command>
+ <command>
+ <proto>void *<name>glMapBuffer</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferAccessARB"><ptype>GLenum</ptype> <name>access</name></param>
+ </command>
+ <command>
+ <proto>void *<name>glMapBufferARB</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferAccessARB"><ptype>GLenum</ptype> <name>access</name></param>
+ <alias name="glMapBuffer"/>
+ </command>
+ <command>
+ <proto>void *<name>glMapBufferOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>access</name></param>
+ </command>
+ <command>
+ <proto>void *<name>glMapBufferRange</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>length</name></param>
+ <param group="BufferAccessMask"><ptype>GLbitfield</ptype> <name>access</name></param>
+ <glx type="single" opcode="205"/>
+ </command>
+ <command>
+ <proto>void *<name>glMapBufferRangeEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param><ptype>GLsizeiptr</ptype> <name>length</name></param>
+ <param><ptype>GLbitfield</ptype> <name>access</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMapControlPointsNV</name></proto>
+ <param group="EvalTargetNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="MapTypeNV"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>ustride</name></param>
+ <param><ptype>GLsizei</ptype> <name>vstride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>uorder</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>vorder</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>packed</name></param>
+ <param len="COMPSIZE(target,uorder,vorder)">const <ptype>GLvoid</ptype> *<name>points</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMapGrid1d</name></proto>
+ <param><ptype>GLint</ptype> <name>un</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u1</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u2</name></param>
+ <glx type="render" opcode="147"/>
+ </command>
+ <command>
+ <proto>void <name>glMapGrid1f</name></proto>
+ <param><ptype>GLint</ptype> <name>un</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u1</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u2</name></param>
+ <glx type="render" opcode="148"/>
+ </command>
+ <command>
+ <proto>void <name>glMapGrid1xOES</name></proto>
+ <param><ptype>GLint</ptype> <name>n</name></param>
+ <param><ptype>GLfixed</ptype> <name>u1</name></param>
+ <param><ptype>GLfixed</ptype> <name>u2</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMapGrid2d</name></proto>
+ <param><ptype>GLint</ptype> <name>un</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u1</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u2</name></param>
+ <param><ptype>GLint</ptype> <name>vn</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>v1</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>v2</name></param>
+ <glx type="render" opcode="149"/>
+ </command>
+ <command>
+ <proto>void <name>glMapGrid2f</name></proto>
+ <param><ptype>GLint</ptype> <name>un</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u1</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u2</name></param>
+ <param><ptype>GLint</ptype> <name>vn</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>v1</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>v2</name></param>
+ <glx type="render" opcode="150"/>
+ </command>
+ <command>
+ <proto>void <name>glMapGrid2xOES</name></proto>
+ <param><ptype>GLint</ptype> <name>n</name></param>
+ <param><ptype>GLfixed</ptype> <name>u1</name></param>
+ <param><ptype>GLfixed</ptype> <name>u2</name></param>
+ <param><ptype>GLfixed</ptype> <name>v1</name></param>
+ <param><ptype>GLfixed</ptype> <name>v2</name></param>
+ </command>
+ <command>
+ <proto>void *<name>glMapNamedBufferEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="VertexBufferObjectAccess"><ptype>GLenum</ptype> <name>access</name></param>
+ </command>
+ <command>
+ <proto>void *<name>glMapNamedBufferRangeEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param><ptype>GLsizeiptr</ptype> <name>length</name></param>
+ <param group="BufferAccessMask"><ptype>GLbitfield</ptype> <name>access</name></param>
+ </command>
+ <command>
+ <proto>void *<name>glMapObjectBufferATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMapParameterfvNV</name></proto>
+ <param group="EvalTargetNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="MapParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(target,pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMapParameterivNV</name></proto>
+ <param group="EvalTargetNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="MapParameterNV"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(target,pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void *<name>glMapTexture2DINTEL</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLbitfield</ptype> <name>access</name></param>
+ <param len="1">const <ptype>GLint</ptype> *<name>stride</name></param>
+ <param len="1">const <ptype>GLenum</ptype> *<name>layout</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMapVertexAttrib1dAPPLE</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>size</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u1</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u2</name></param>
+ <param><ptype>GLint</ptype> <name>stride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>order</name></param>
+ <param group="CoordD" len="COMPSIZE(size,stride,order)">const <ptype>GLdouble</ptype> *<name>points</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMapVertexAttrib1fAPPLE</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>size</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u1</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u2</name></param>
+ <param><ptype>GLint</ptype> <name>stride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>order</name></param>
+ <param group="CoordF" len="COMPSIZE(size,stride,order)">const <ptype>GLfloat</ptype> *<name>points</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMapVertexAttrib2dAPPLE</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>size</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u1</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>u2</name></param>
+ <param><ptype>GLint</ptype> <name>ustride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>uorder</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>v1</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>v2</name></param>
+ <param><ptype>GLint</ptype> <name>vstride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>vorder</name></param>
+ <param group="CoordD" len="COMPSIZE(size,ustride,uorder,vstride,vorder)">const <ptype>GLdouble</ptype> *<name>points</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMapVertexAttrib2fAPPLE</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>size</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u1</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>u2</name></param>
+ <param><ptype>GLint</ptype> <name>ustride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>uorder</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>v1</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>v2</name></param>
+ <param><ptype>GLint</ptype> <name>vstride</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>vorder</name></param>
+ <param group="CoordF" len="COMPSIZE(size,ustride,uorder,vstride,vorder)">const <ptype>GLfloat</ptype> *<name>points</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMaterialf</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <glx type="render" opcode="96"/>
+ </command>
+ <command>
+ <proto>void <name>glMaterialfv</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="97"/>
+ </command>
+ <command>
+ <proto>void <name>glMateriali</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ <glx type="render" opcode="98"/>
+ </command>
+ <command>
+ <proto>void <name>glMaterialiv</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="99"/>
+ </command>
+ <command>
+ <proto>void <name>glMaterialx</name></proto>
+ <param><ptype>GLenum</ptype> <name>face</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMaterialxOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>face</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMaterialxv</name></proto>
+ <param><ptype>GLenum</ptype> <name>face</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param>const <ptype>GLfixed</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMaterialxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>face</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfixed</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixFrustumEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLdouble</ptype> <name>left</name></param>
+ <param><ptype>GLdouble</ptype> <name>right</name></param>
+ <param><ptype>GLdouble</ptype> <name>bottom</name></param>
+ <param><ptype>GLdouble</ptype> <name>top</name></param>
+ <param><ptype>GLdouble</ptype> <name>zNear</name></param>
+ <param><ptype>GLdouble</ptype> <name>zFar</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixIndexPointerARB</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="MatrixIndexPointerTypeARB"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(type,stride)">const <ptype>GLvoid</ptype> *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixIndexPointerOES</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param>const <ptype>GLvoid</ptype> *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixIndexubvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param len="size">const <ptype>GLubyte</ptype> *<name>indices</name></param>
+ <glx type="render" opcode="4326"/>
+ </command>
+ <command>
+ <proto>void <name>glMatrixIndexuivARB</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param len="size">const <ptype>GLuint</ptype> *<name>indices</name></param>
+ <glx type="render" opcode="4328"/>
+ </command>
+ <command>
+ <proto>void <name>glMatrixIndexusvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param len="size">const <ptype>GLushort</ptype> *<name>indices</name></param>
+ <glx type="render" opcode="4327"/>
+ </command>
+ <command>
+ <proto>void <name>glMatrixLoadIdentityEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixLoadTransposedEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="16">const <ptype>GLdouble</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixLoadTransposefEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="16">const <ptype>GLfloat</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixLoaddEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="16">const <ptype>GLdouble</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixLoadfEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="16">const <ptype>GLfloat</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixMode</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <glx type="render" opcode="179"/>
+ </command>
+ <command>
+ <proto>void <name>glMatrixMultTransposedEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="16">const <ptype>GLdouble</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixMultTransposefEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="16">const <ptype>GLfloat</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixMultdEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="16">const <ptype>GLdouble</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixMultfEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="16">const <ptype>GLfloat</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixOrthoEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLdouble</ptype> <name>left</name></param>
+ <param><ptype>GLdouble</ptype> <name>right</name></param>
+ <param><ptype>GLdouble</ptype> <name>bottom</name></param>
+ <param><ptype>GLdouble</ptype> <name>top</name></param>
+ <param><ptype>GLdouble</ptype> <name>zNear</name></param>
+ <param><ptype>GLdouble</ptype> <name>zFar</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixPopEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixPushEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixRotatedEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLdouble</ptype> <name>angle</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixRotatefEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLfloat</ptype> <name>angle</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixScaledEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixScalefEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixTranslatedEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMatrixTranslatefEXT</name></proto>
+ <param group="MatrixMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMemoryBarrier</name></proto>
+ <param><ptype>GLbitfield</ptype> <name>barriers</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMemoryBarrierEXT</name></proto>
+ <param><ptype>GLbitfield</ptype> <name>barriers</name></param>
+ <alias name="glMemoryBarrier"/>
+ </command>
+ <command>
+ <proto>void <name>glMinSampleShading</name></proto>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMinSampleShadingARB</name></proto>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>value</name></param>
+ <alias name="glMinSampleShading"/>
+ </command>
+ <command>
+ <proto>void <name>glMinmax</name></proto>
+ <param group="MinmaxTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>sink</name></param>
+ <glx type="render" opcode="4111"/>
+ </command>
+ <command>
+ <proto>void <name>glMinmaxEXT</name></proto>
+ <param group="MinmaxTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>sink</name></param>
+ <alias name="glMinmax"/>
+ <glx type="render" opcode="4111"/>
+ </command>
+ <command>
+ <proto>void <name>glMultMatrixd</name></proto>
+ <param len="16">const <ptype>GLdouble</ptype> *<name>m</name></param>
+ <glx type="render" opcode="181"/>
+ </command>
+ <command>
+ <proto>void <name>glMultMatrixf</name></proto>
+ <param len="16">const <ptype>GLfloat</ptype> *<name>m</name></param>
+ <glx type="render" opcode="180"/>
+ </command>
+ <command>
+ <proto>void <name>glMultMatrixx</name></proto>
+ <param>const <ptype>GLfixed</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultMatrixxOES</name></proto>
+ <param len="16">const <ptype>GLfixed</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultTransposeMatrixd</name></proto>
+ <param len="16">const <ptype>GLdouble</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultTransposeMatrixdARB</name></proto>
+ <param len="16">const <ptype>GLdouble</ptype> *<name>m</name></param>
+ <alias name="glMultTransposeMatrixd"/>
+ </command>
+ <command>
+ <proto>void <name>glMultTransposeMatrixf</name></proto>
+ <param len="16">const <ptype>GLfloat</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultTransposeMatrixfARB</name></proto>
+ <param len="16">const <ptype>GLfloat</ptype> *<name>m</name></param>
+ <alias name="glMultTransposeMatrixf"/>
+ </command>
+ <command>
+ <proto>void <name>glMultTransposeMatrixxOES</name></proto>
+ <param len="16">const <ptype>GLfixed</ptype> *<name>m</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiDrawArrays</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="COMPSIZE(count)">const <ptype>GLint</ptype> *<name>first</name></param>
+ <param len="COMPSIZE(drawcount)">const <ptype>GLsizei</ptype> *<name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>drawcount</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiDrawArraysEXT</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="COMPSIZE(primcount)">const <ptype>GLint</ptype> *<name>first</name></param>
+ <param len="COMPSIZE(primcount)">const <ptype>GLsizei</ptype> *<name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ <alias name="glMultiDrawArrays"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiDrawArraysIndirect</name></proto>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="COMPSIZE(drawcount,stride)">const void *<name>indirect</name></param>
+ <param><ptype>GLsizei</ptype> <name>drawcount</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiDrawArraysIndirectAMD</name></proto>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ <param>const <ptype>GLvoid</ptype> *<name>indirect</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <alias name="glMultiDrawArraysIndirect"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiDrawElementArrayAPPLE</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="primcount">const <ptype>GLint</ptype> *<name>first</name></param>
+ <param len="primcount">const <ptype>GLsizei</ptype> *<name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiDrawElements</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="COMPSIZE(drawcount)">const <ptype>GLsizei</ptype> *<name>count</name></param>
+ <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(drawcount)">const <ptype>GLvoid</ptype> *const*<name>indices</name></param>
+ <param><ptype>GLsizei</ptype> <name>drawcount</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiDrawElementsBaseVertex</name></proto>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="COMPSIZE(drawcount)">const <ptype>GLsizei</ptype> *<name>count</name></param>
+ <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(drawcount)">const <ptype>GLvoid</ptype> *const*<name>indices</name></param>
+ <param><ptype>GLsizei</ptype> <name>drawcount</name></param>
+ <param len="COMPSIZE(drawcount)">const <ptype>GLint</ptype> *<name>basevertex</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiDrawElementsEXT</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param len="COMPSIZE(primcount)">const <ptype>GLsizei</ptype> *<name>count</name></param>
+ <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(primcount)">const <ptype>GLvoid</ptype> *const*<name>indices</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ <alias name="glMultiDrawElements"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiDrawElementsIndirect</name></proto>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(drawcount,stride)">const void *<name>indirect</name></param>
+ <param><ptype>GLsizei</ptype> <name>drawcount</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiDrawElementsIndirectAMD</name></proto>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param>const <ptype>GLvoid</ptype> *<name>indirect</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <alias name="glMultiDrawElementsIndirect"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiDrawRangeElementArrayAPPLE</name></proto>
+ <param group="PrimitiveType"><ptype>GLenum</ptype> <name>mode</name></param>
+ <param><ptype>GLuint</ptype> <name>start</name></param>
+ <param><ptype>GLuint</ptype> <name>end</name></param>
+ <param len="primcount">const <ptype>GLint</ptype> *<name>first</name></param>
+ <param len="primcount">const <ptype>GLsizei</ptype> *<name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiModeDrawArraysIBM</name></proto>
+ <param group="PrimitiveType" len="COMPSIZE(primcount)">const <ptype>GLenum</ptype> *<name>mode</name></param>
+ <param len="COMPSIZE(primcount)">const <ptype>GLint</ptype> *<name>first</name></param>
+ <param len="COMPSIZE(primcount)">const <ptype>GLsizei</ptype> *<name>count</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ <param><ptype>GLint</ptype> <name>modestride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiModeDrawElementsIBM</name></proto>
+ <param group="PrimitiveType" len="COMPSIZE(primcount)">const <ptype>GLenum</ptype> *<name>mode</name></param>
+ <param len="COMPSIZE(primcount)">const <ptype>GLsizei</ptype> *<name>count</name></param>
+ <param group="DrawElementsType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(primcount)">const <ptype>GLvoid</ptype> *const*<name>indices</name></param>
+ <param><ptype>GLsizei</ptype> <name>primcount</name></param>
+ <param><ptype>GLint</ptype> <name>modestride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexBufferEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TypeEnum"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1bOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLbyte</ptype> <name>s</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1bvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param len="1">const <ptype>GLbyte</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1d</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>s</name></param>
+ <vecequiv name="glMultiTexCoord1dv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1dARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>s</name></param>
+ <vecequiv name="glMultiTexCoord1dv"/>
+ <alias name="glMultiTexCoord1d"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1dv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD" len="1">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="198"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1dvARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD" len="1">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord1dv"/>
+ <glx type="render" opcode="198"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1f</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>s</name></param>
+ <vecequiv name="glMultiTexCoord1fv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1fARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>s</name></param>
+ <vecequiv name="glMultiTexCoord1fv"/>
+ <alias name="glMultiTexCoord1f"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1fv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF" len="1">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="199"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1fvARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF" len="1">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord1fv"/>
+ <glx type="render" opcode="199"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1hNV</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>s</name></param>
+ <vecequiv name="glMultiTexCoord1hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1hvNV</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Half16NV" len="1">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4250"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1i</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>s</name></param>
+ <vecequiv name="glMultiTexCoord1iv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1iARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>s</name></param>
+ <vecequiv name="glMultiTexCoord1iv"/>
+ <alias name="glMultiTexCoord1i"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1iv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI" len="1">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="200"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1ivARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI" len="1">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord1iv"/>
+ <glx type="render" opcode="200"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1s</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>s</name></param>
+ <vecequiv name="glMultiTexCoord1sv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1sARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>s</name></param>
+ <vecequiv name="glMultiTexCoord1sv"/>
+ <alias name="glMultiTexCoord1s"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1sv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS" len="1">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="201"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1svARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS" len="1">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord1sv"/>
+ <glx type="render" opcode="201"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1xOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLfixed</ptype> <name>s</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord1xvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param len="1">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2bOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLbyte</ptype> <name>s</name></param>
+ <param><ptype>GLbyte</ptype> <name>t</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2bvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param len="2">const <ptype>GLbyte</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2d</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>s</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>t</name></param>
+ <vecequiv name="glMultiTexCoord2dv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2dARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>s</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>t</name></param>
+ <vecequiv name="glMultiTexCoord2dv"/>
+ <alias name="glMultiTexCoord2d"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2dv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD" len="2">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="202"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2dvARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD" len="2">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord2dv"/>
+ <glx type="render" opcode="202"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2f</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>s</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>t</name></param>
+ <vecequiv name="glMultiTexCoord2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2fARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>s</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>t</name></param>
+ <vecequiv name="glMultiTexCoord2fv"/>
+ <alias name="glMultiTexCoord2f"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2fv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF" len="2">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="203"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2fvARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF" len="2">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord2fv"/>
+ <glx type="render" opcode="203"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2hNV</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>s</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>t</name></param>
+ <vecequiv name="glMultiTexCoord2hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2hvNV</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Half16NV" len="2">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4251"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2i</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>s</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>t</name></param>
+ <vecequiv name="glMultiTexCoord2iv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2iARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>s</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>t</name></param>
+ <vecequiv name="glMultiTexCoord2iv"/>
+ <alias name="glMultiTexCoord2i"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2iv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI" len="2">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="204"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2ivARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI" len="2">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord2iv"/>
+ <glx type="render" opcode="204"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2s</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>s</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>t</name></param>
+ <vecequiv name="glMultiTexCoord2sv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2sARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>s</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>t</name></param>
+ <vecequiv name="glMultiTexCoord2sv"/>
+ <alias name="glMultiTexCoord2s"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2sv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS" len="2">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="205"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2svARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS" len="2">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord2sv"/>
+ <glx type="render" opcode="205"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2xOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLfixed</ptype> <name>s</name></param>
+ <param><ptype>GLfixed</ptype> <name>t</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord2xvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param len="2">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3bOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLbyte</ptype> <name>s</name></param>
+ <param><ptype>GLbyte</ptype> <name>t</name></param>
+ <param><ptype>GLbyte</ptype> <name>r</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3bvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param len="3">const <ptype>GLbyte</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3d</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>s</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>t</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>r</name></param>
+ <vecequiv name="glMultiTexCoord3dv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3dARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>s</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>t</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>r</name></param>
+ <vecequiv name="glMultiTexCoord3dv"/>
+ <alias name="glMultiTexCoord3d"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3dv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD" len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="206"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3dvARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD" len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord3dv"/>
+ <glx type="render" opcode="206"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3f</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>s</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>t</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>r</name></param>
+ <vecequiv name="glMultiTexCoord3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3fARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>s</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>t</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>r</name></param>
+ <vecequiv name="glMultiTexCoord3fv"/>
+ <alias name="glMultiTexCoord3f"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3fv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF" len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="207"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3fvARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF" len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord3fv"/>
+ <glx type="render" opcode="207"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3hNV</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>s</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>t</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>r</name></param>
+ <vecequiv name="glMultiTexCoord3hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3hvNV</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Half16NV" len="3">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4252"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3i</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>s</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>t</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>r</name></param>
+ <vecequiv name="glMultiTexCoord3iv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3iARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>s</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>t</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>r</name></param>
+ <vecequiv name="glMultiTexCoord3iv"/>
+ <alias name="glMultiTexCoord3i"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3iv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI" len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="208"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3ivARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI" len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord3iv"/>
+ <glx type="render" opcode="208"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3s</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>s</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>t</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>r</name></param>
+ <vecequiv name="glMultiTexCoord3sv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3sARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>s</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>t</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>r</name></param>
+ <vecequiv name="glMultiTexCoord3sv"/>
+ <alias name="glMultiTexCoord3s"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3sv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS" len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="209"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3svARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS" len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord3sv"/>
+ <glx type="render" opcode="209"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3xOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLfixed</ptype> <name>s</name></param>
+ <param><ptype>GLfixed</ptype> <name>t</name></param>
+ <param><ptype>GLfixed</ptype> <name>r</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord3xvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param len="3">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4bOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLbyte</ptype> <name>s</name></param>
+ <param><ptype>GLbyte</ptype> <name>t</name></param>
+ <param><ptype>GLbyte</ptype> <name>r</name></param>
+ <param><ptype>GLbyte</ptype> <name>q</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4bvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param len="4">const <ptype>GLbyte</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4d</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>s</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>t</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>r</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>q</name></param>
+ <vecequiv name="glMultiTexCoord4dv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4dARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>s</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>t</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>r</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>q</name></param>
+ <vecequiv name="glMultiTexCoord4dv"/>
+ <alias name="glMultiTexCoord4d"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4dv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD" len="4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="210"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4dvARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordD" len="4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord4dv"/>
+ <glx type="render" opcode="210"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4f</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>s</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>t</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>r</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>q</name></param>
+ <vecequiv name="glMultiTexCoord4fv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4fARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>s</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>t</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>r</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>q</name></param>
+ <vecequiv name="glMultiTexCoord4fv"/>
+ <alias name="glMultiTexCoord4f"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4fv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF" len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="211"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4fvARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordF" len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord4fv"/>
+ <glx type="render" opcode="211"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4hNV</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>s</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>t</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>r</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>q</name></param>
+ <vecequiv name="glMultiTexCoord4hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4hvNV</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="Half16NV" len="4">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4253"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4i</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>s</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>t</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>r</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>q</name></param>
+ <vecequiv name="glMultiTexCoord4iv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4iARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>s</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>t</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>r</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>q</name></param>
+ <vecequiv name="glMultiTexCoord4iv"/>
+ <alias name="glMultiTexCoord4i"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4iv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI" len="4">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="212"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4ivARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordI" len="4">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord4iv"/>
+ <glx type="render" opcode="212"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4s</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>s</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>t</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>r</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>q</name></param>
+ <vecequiv name="glMultiTexCoord4sv"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4sARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>s</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>t</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>r</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>q</name></param>
+ <vecequiv name="glMultiTexCoord4sv"/>
+ <alias name="glMultiTexCoord4s"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4sv</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS" len="4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="213"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4svARB</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CoordS" len="4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glMultiTexCoord4sv"/>
+ <glx type="render" opcode="213"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4x</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLfixed</ptype> <name>s</name></param>
+ <param><ptype>GLfixed</ptype> <name>t</name></param>
+ <param><ptype>GLfixed</ptype> <name>r</name></param>
+ <param><ptype>GLfixed</ptype> <name>q</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4xOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLfixed</ptype> <name>s</name></param>
+ <param><ptype>GLfixed</ptype> <name>t</name></param>
+ <param><ptype>GLfixed</ptype> <name>r</name></param>
+ <param><ptype>GLfixed</ptype> <name>q</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoord4xvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param len="4">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoordP1ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoordP1uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoordP2ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoordP2uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoordP3ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoordP3uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoordP4ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoordP4uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexCoordPointerEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="TexCoordPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const <ptype>GLvoid</ptype> *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexEnvfEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureEnvTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureEnvParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <vecequiv name="glMultiTexEnvfvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexEnvfvEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureEnvTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureEnvParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexEnviEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureEnvTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureEnvParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ <vecequiv name="glMultiTexEnvivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexEnvivEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureEnvTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureEnvParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexGendEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLdouble</ptype> <name>param</name></param>
+ <vecequiv name="glMultiTexGendvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexGendvEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLdouble</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexGenfEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <vecequiv name="glMultiTexGenfvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexGenfvEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexGeniEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ <vecequiv name="glMultiTexGenivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexGenivEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexImage1DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureComponentCount"><ptype>GLint</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width)">const <ptype>GLvoid</ptype> *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexImage2DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureComponentCount"><ptype>GLint</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height)">const <ptype>GLvoid</ptype> *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexImage3DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureComponentCount"><ptype>GLint</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height,depth)">const <ptype>GLvoid</ptype> *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexParameterIivEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexParameterIuivEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexParameterfEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <vecequiv name="glMultiTexParameterfvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexParameterfvEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexParameteriEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ <vecequiv name="glMultiTexParameterivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexParameterivEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexRenderbufferEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexSubImage1DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width)">const <ptype>GLvoid</ptype> *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexSubImage2DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height)">const <ptype>GLvoid</ptype> *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glMultiTexSubImage3DEXT</name></proto>
+ <param group="TextureUnit"><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height,depth)">const <ptype>GLvoid</ptype> *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedBufferDataEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ <param len="COMPSIZE(size)">const <ptype>GLvoid</ptype> *<name>data</name></param>
+ <param group="VertexBufferObjectUsage"><ptype>GLenum</ptype> <name>usage</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedBufferSubDataEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ <param len="COMPSIZE(size)">const <ptype>GLvoid</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedCopyBufferSubDataEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>readBuffer</name></param>
+ <param><ptype>GLuint</ptype> <name>writeBuffer</name></param>
+ <param><ptype>GLintptr</ptype> <name>readOffset</name></param>
+ <param><ptype>GLintptr</ptype> <name>writeOffset</name></param>
+ <param><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedFramebufferParameteriEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param group="FramebufferParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedFramebufferRenderbufferEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="RenderbufferTarget"><ptype>GLenum</ptype> <name>renderbuffertarget</name></param>
+ <param group="Renderbuffer"><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedFramebufferTexture1DEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>textarget</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedFramebufferTexture2DEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>textarget</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedFramebufferTexture3DEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>textarget</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>zoffset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedFramebufferTextureEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedFramebufferTextureFaceEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>face</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedFramebufferTextureLayerEXT</name></proto>
+ <param group="Framebuffer"><ptype>GLuint</ptype> <name>framebuffer</name></param>
+ <param group="FramebufferAttachment"><ptype>GLenum</ptype> <name>attachment</name></param>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>layer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedProgramLocalParameter4dEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <param><ptype>GLdouble</ptype> <name>w</name></param>
+ <vecequiv name="glNamedProgramLocalParameter4dvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glNamedProgramLocalParameter4dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedProgramLocalParameter4fEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <param><ptype>GLfloat</ptype> <name>w</name></param>
+ <vecequiv name="glNamedProgramLocalParameter4fvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glNamedProgramLocalParameter4fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedProgramLocalParameterI4iEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLint</ptype> <name>z</name></param>
+ <param><ptype>GLint</ptype> <name>w</name></param>
+ <vecequiv name="glNamedProgramLocalParameterI4ivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glNamedProgramLocalParameterI4ivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedProgramLocalParameterI4uiEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>x</name></param>
+ <param><ptype>GLuint</ptype> <name>y</name></param>
+ <param><ptype>GLuint</ptype> <name>z</name></param>
+ <param><ptype>GLuint</ptype> <name>w</name></param>
+ <vecequiv name="glNamedProgramLocalParameterI4uivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glNamedProgramLocalParameterI4uivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedProgramLocalParameters4fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedProgramLocalParametersI4ivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedProgramLocalParametersI4uivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedProgramStringEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ProgramFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>len</name></param>
+ <param len="len">const <ptype>GLvoid</ptype> *<name>string</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedRenderbufferStorageEXT</name></proto>
+ <param group="Renderbuffer"><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedRenderbufferStorageMultisampleCoverageEXT</name></proto>
+ <param group="Renderbuffer"><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ <param><ptype>GLsizei</ptype> <name>coverageSamples</name></param>
+ <param><ptype>GLsizei</ptype> <name>colorSamples</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedRenderbufferStorageMultisampleEXT</name></proto>
+ <param group="Renderbuffer"><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNamedStringARB</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLint</ptype> <name>namelen</name></param>
+ <param len="namelen">const <ptype>GLchar</ptype> *<name>name</name></param>
+ <param><ptype>GLint</ptype> <name>stringlen</name></param>
+ <param len="stringlen">const <ptype>GLchar</ptype> *<name>string</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNewList</name></proto>
+ <param group="List"><ptype>GLuint</ptype> <name>list</name></param>
+ <param group="ListMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <glx type="single" opcode="101"/>
+ </command>
+ <command>
+ <proto><ptype>GLuint</ptype> <name>glNewObjectBufferATI</name></proto>
+ <param><ptype>GLsizei</ptype> <name>size</name></param>
+ <param len="size">const <ptype>GLvoid</ptype> *<name>pointer</name></param>
+ <param group="ArrayObjectUsageATI"><ptype>GLenum</ptype> <name>usage</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormal3b</name></proto>
+ <param><ptype>GLbyte</ptype> <name>nx</name></param>
+ <param><ptype>GLbyte</ptype> <name>ny</name></param>
+ <param><ptype>GLbyte</ptype> <name>nz</name></param>
+ <vecequiv name="glNormal3bv"/>
+ </command>
+ <command>
+ <proto>void <name>glNormal3bv</name></proto>
+ <param len="3">const <ptype>GLbyte</ptype> *<name>v</name></param>
+ <glx type="render" opcode="28"/>
+ </command>
+ <command>
+ <proto>void <name>glNormal3d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>nx</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>ny</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>nz</name></param>
+ <vecequiv name="glNormal3dv"/>
+ </command>
+ <command>
+ <proto>void <name>glNormal3dv</name></proto>
+ <param group="CoordD" len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="29"/>
+ </command>
+ <command>
+ <proto>void <name>glNormal3f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>nx</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>ny</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>nz</name></param>
+ <vecequiv name="glNormal3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glNormal3fVertex3fSUN</name></proto>
+ <param><ptype>GLfloat</ptype> <name>nx</name></param>
+ <param><ptype>GLfloat</ptype> <name>ny</name></param>
+ <param><ptype>GLfloat</ptype> <name>nz</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormal3fVertex3fvSUN</name></proto>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>n</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormal3fv</name></proto>
+ <param group="CoordF" len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="30"/>
+ </command>
+ <command>
+ <proto>void <name>glNormal3hNV</name></proto>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>nx</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>ny</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>nz</name></param>
+ <vecequiv name="glNormal3hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glNormal3hvNV</name></proto>
+ <param group="Half16NV" len="3">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4243"/>
+ </command>
+ <command>
+ <proto>void <name>glNormal3i</name></proto>
+ <param><ptype>GLint</ptype> <name>nx</name></param>
+ <param><ptype>GLint</ptype> <name>ny</name></param>
+ <param><ptype>GLint</ptype> <name>nz</name></param>
+ <vecequiv name="glNormal3iv"/>
+ </command>
+ <command>
+ <proto>void <name>glNormal3iv</name></proto>
+ <param len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="31"/>
+ </command>
+ <command>
+ <proto>void <name>glNormal3s</name></proto>
+ <param><ptype>GLshort</ptype> <name>nx</name></param>
+ <param><ptype>GLshort</ptype> <name>ny</name></param>
+ <param><ptype>GLshort</ptype> <name>nz</name></param>
+ <vecequiv name="glNormal3sv"/>
+ </command>
+ <command>
+ <proto>void <name>glNormal3sv</name></proto>
+ <param len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="32"/>
+ </command>
+ <command>
+ <proto>void <name>glNormal3x</name></proto>
+ <param><ptype>GLfixed</ptype> <name>nx</name></param>
+ <param><ptype>GLfixed</ptype> <name>ny</name></param>
+ <param><ptype>GLfixed</ptype> <name>nz</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormal3xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>nx</name></param>
+ <param><ptype>GLfixed</ptype> <name>ny</name></param>
+ <param><ptype>GLfixed</ptype> <name>nz</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormal3xvOES</name></proto>
+ <param len="3">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalFormatNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalP3ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalP3uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalPointer</name></proto>
+ <param group="NormalPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(type,stride)">const <ptype>GLvoid</ptype> *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalPointerEXT</name></proto>
+ <param group="NormalPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(type,stride,count)">const <ptype>GLvoid</ptype> *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalPointerListIBM</name></proto>
+ <param group="NormalPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLint</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(type,stride)">const <ptype>GLvoid</ptype> **<name>pointer</name></param>
+ <param><ptype>GLint</ptype> <name>ptrstride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalPointervINTEL</name></proto>
+ <param group="NormalPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="4">const <ptype>GLvoid</ptype> **<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalStream3bATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLbyte</ptype> <name>nx</name></param>
+ <param><ptype>GLbyte</ptype> <name>ny</name></param>
+ <param><ptype>GLbyte</ptype> <name>nz</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalStream3bvATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="3">const <ptype>GLbyte</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalStream3dATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLdouble</ptype> <name>nx</name></param>
+ <param><ptype>GLdouble</ptype> <name>ny</name></param>
+ <param><ptype>GLdouble</ptype> <name>nz</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalStream3dvATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="3">const <ptype>GLdouble</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalStream3fATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLfloat</ptype> <name>nx</name></param>
+ <param><ptype>GLfloat</ptype> <name>ny</name></param>
+ <param><ptype>GLfloat</ptype> <name>nz</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalStream3fvATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalStream3iATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLint</ptype> <name>nx</name></param>
+ <param><ptype>GLint</ptype> <name>ny</name></param>
+ <param><ptype>GLint</ptype> <name>nz</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalStream3ivATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="3">const <ptype>GLint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalStream3sATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLshort</ptype> <name>nx</name></param>
+ <param><ptype>GLshort</ptype> <name>ny</name></param>
+ <param><ptype>GLshort</ptype> <name>nz</name></param>
+ </command>
+ <command>
+ <proto>void <name>glNormalStream3svATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="3">const <ptype>GLshort</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glObjectLabel</name></proto>
+ <param><ptype>GLenum</ptype> <name>identifier</name></param>
+ <param><ptype>GLuint</ptype> <name>name</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param len="COMPSIZE(label,length)">const <ptype>GLchar</ptype> *<name>label</name></param>
+ </command>
+ <command>
+ <proto>void <name>glObjectLabelKHR</name></proto>
+ <param><ptype>GLenum</ptype> <name>identifier</name></param>
+ <param><ptype>GLuint</ptype> <name>name</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>label</name></param>
+ <alias name="glObjectLabel"/>
+ </command>
+ <command>
+ <proto>void <name>glObjectPtrLabel</name></proto>
+ <param>const void *<name>ptr</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param len="COMPSIZE(label,length)">const <ptype>GLchar</ptype> *<name>label</name></param>
+ </command>
+ <command>
+ <proto>void <name>glObjectPtrLabelKHR</name></proto>
+ <param>const void *<name>ptr</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>label</name></param>
+ <alias name="glObjectPtrLabel"/>
+ </command>
+ <command>
+ <proto><ptype>GLenum</ptype> <name>glObjectPurgeableAPPLE</name></proto>
+ <param><ptype>GLenum</ptype> <name>objectType</name></param>
+ <param><ptype>GLuint</ptype> <name>name</name></param>
+ <param><ptype>GLenum</ptype> <name>option</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLenum</ptype> <name>glObjectUnpurgeableAPPLE</name></proto>
+ <param><ptype>GLenum</ptype> <name>objectType</name></param>
+ <param><ptype>GLuint</ptype> <name>name</name></param>
+ <param><ptype>GLenum</ptype> <name>option</name></param>
+ </command>
+ <command>
+ <proto>void <name>glOrtho</name></proto>
+ <param><ptype>GLdouble</ptype> <name>left</name></param>
+ <param><ptype>GLdouble</ptype> <name>right</name></param>
+ <param><ptype>GLdouble</ptype> <name>bottom</name></param>
+ <param><ptype>GLdouble</ptype> <name>top</name></param>
+ <param><ptype>GLdouble</ptype> <name>zNear</name></param>
+ <param><ptype>GLdouble</ptype> <name>zFar</name></param>
+ <glx type="render" opcode="182"/>
+ </command>
+ <command>
+ <proto>void <name>glOrthof</name></proto>
+ <param><ptype>GLfloat</ptype> <name>l</name></param>
+ <param><ptype>GLfloat</ptype> <name>r</name></param>
+ <param><ptype>GLfloat</ptype> <name>b</name></param>
+ <param><ptype>GLfloat</ptype> <name>t</name></param>
+ <param><ptype>GLfloat</ptype> <name>n</name></param>
+ <param><ptype>GLfloat</ptype> <name>f</name></param>
+ </command>
+ <command>
+ <proto>void <name>glOrthofOES</name></proto>
+ <param><ptype>GLfloat</ptype> <name>l</name></param>
+ <param><ptype>GLfloat</ptype> <name>r</name></param>
+ <param><ptype>GLfloat</ptype> <name>b</name></param>
+ <param><ptype>GLfloat</ptype> <name>t</name></param>
+ <param><ptype>GLfloat</ptype> <name>n</name></param>
+ <param><ptype>GLfloat</ptype> <name>f</name></param>
+ <glx type="render" opcode="4311"/>
+ </command>
+ <command>
+ <proto>void <name>glOrthox</name></proto>
+ <param><ptype>GLfixed</ptype> <name>l</name></param>
+ <param><ptype>GLfixed</ptype> <name>r</name></param>
+ <param><ptype>GLfixed</ptype> <name>b</name></param>
+ <param><ptype>GLfixed</ptype> <name>t</name></param>
+ <param><ptype>GLfixed</ptype> <name>n</name></param>
+ <param><ptype>GLfixed</ptype> <name>f</name></param>
+ </command>
+ <command>
+ <proto>void <name>glOrthoxOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>l</name></param>
+ <param><ptype>GLfixed</ptype> <name>r</name></param>
+ <param><ptype>GLfixed</ptype> <name>b</name></param>
+ <param><ptype>GLfixed</ptype> <name>t</name></param>
+ <param><ptype>GLfixed</ptype> <name>n</name></param>
+ <param><ptype>GLfixed</ptype> <name>f</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPNTrianglesfATI</name></proto>
+ <param group="PNTrianglesPNameATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfloat</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPNTrianglesiATI</name></proto>
+ <param group="PNTrianglesPNameATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPassTexCoordATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>dst</name></param>
+ <param><ptype>GLuint</ptype> <name>coord</name></param>
+ <param group="SwizzleOpATI"><ptype>GLenum</ptype> <name>swizzle</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPassThrough</name></proto>
+ <param group="FeedbackElement"><ptype>GLfloat</ptype> <name>token</name></param>
+ <glx type="render" opcode="123"/>
+ </command>
+ <command>
+ <proto>void <name>glPassThroughxOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>token</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPatchParameterfv</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPatchParameteri</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathColorGenNV</name></proto>
+ <param group="PathColor"><ptype>GLenum</ptype> <name>color</name></param>
+ <param group="PathGenMode"><ptype>GLenum</ptype> <name>genMode</name></param>
+ <param group="PathColorFormat"><ptype>GLenum</ptype> <name>colorFormat</name></param>
+ <param len="COMPSIZE(genMode,colorFormat)">const <ptype>GLfloat</ptype> *<name>coeffs</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathCommandsNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param><ptype>GLsizei</ptype> <name>numCommands</name></param>
+ <param group="PathCommand" len="numCommands">const <ptype>GLubyte</ptype> *<name>commands</name></param>
+ <param><ptype>GLsizei</ptype> <name>numCoords</name></param>
+ <param group="PathCoordType"><ptype>GLenum</ptype> <name>coordType</name></param>
+ <param len="COMPSIZE(numCoords,coordType)">const <ptype>GLvoid</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathCoordsNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param><ptype>GLsizei</ptype> <name>numCoords</name></param>
+ <param group="PathCoordType"><ptype>GLenum</ptype> <name>coordType</name></param>
+ <param len="COMPSIZE(numCoords,coordType)">const <ptype>GLvoid</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathCoverDepthFuncNV</name></proto>
+ <param group="DepthFunction"><ptype>GLenum</ptype> <name>func</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathDashArrayNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param><ptype>GLsizei</ptype> <name>dashCount</name></param>
+ <param len="dashCount">const <ptype>GLfloat</ptype> *<name>dashArray</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathFogGenNV</name></proto>
+ <param group="PathGenMode"><ptype>GLenum</ptype> <name>genMode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathGlyphRangeNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>firstPathName</name></param>
+ <param group="PathFontTarget"><ptype>GLenum</ptype> <name>fontTarget</name></param>
+ <param len="COMPSIZE(fontTarget,fontName)">const <ptype>GLvoid</ptype> *<name>fontName</name></param>
+ <param group="PathFontStyle"><ptype>GLbitfield</ptype> <name>fontStyle</name></param>
+ <param><ptype>GLuint</ptype> <name>firstGlyph</name></param>
+ <param><ptype>GLsizei</ptype> <name>numGlyphs</name></param>
+ <param group="PathHandleMissingGlyphs"><ptype>GLenum</ptype> <name>handleMissingGlyphs</name></param>
+ <param group="Path"><ptype>GLuint</ptype> <name>pathParameterTemplate</name></param>
+ <param><ptype>GLfloat</ptype> <name>emScale</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathGlyphsNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>firstPathName</name></param>
+ <param group="PathFontTarget"><ptype>GLenum</ptype> <name>fontTarget</name></param>
+ <param len="COMPSIZE(fontTarget,fontName)">const <ptype>GLvoid</ptype> *<name>fontName</name></param>
+ <param group="PathFontStyle"><ptype>GLbitfield</ptype> <name>fontStyle</name></param>
+ <param><ptype>GLsizei</ptype> <name>numGlyphs</name></param>
+ <param group="PathElementType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(numGlyphs,type,charcodes)">const <ptype>GLvoid</ptype> *<name>charcodes</name></param>
+ <param group="PathHandleMissingGlyphs"><ptype>GLenum</ptype> <name>handleMissingGlyphs</name></param>
+ <param group="Path"><ptype>GLuint</ptype> <name>pathParameterTemplate</name></param>
+ <param><ptype>GLfloat</ptype> <name>emScale</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathParameterfNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param group="PathParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfloat</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathParameterfvNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param group="PathParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathParameteriNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param group="PathParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathParameterivNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param group="PathParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathStencilDepthOffsetNV</name></proto>
+ <param><ptype>GLfloat</ptype> <name>factor</name></param>
+ <param><ptype>GLfloat</ptype> <name>units</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathStencilFuncNV</name></proto>
+ <param group="StencilFunction"><ptype>GLenum</ptype> <name>func</name></param>
+ <param group="ClampedStencilValue"><ptype>GLint</ptype> <name>ref</name></param>
+ <param group="MaskedStencilValue"><ptype>GLuint</ptype> <name>mask</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathStringNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param group="PathStringFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param len="length">const <ptype>GLvoid</ptype> *<name>pathString</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathSubCommandsNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param><ptype>GLsizei</ptype> <name>commandStart</name></param>
+ <param><ptype>GLsizei</ptype> <name>commandsToDelete</name></param>
+ <param><ptype>GLsizei</ptype> <name>numCommands</name></param>
+ <param group="PathCommand" len="numCommands">const <ptype>GLubyte</ptype> *<name>commands</name></param>
+ <param><ptype>GLsizei</ptype> <name>numCoords</name></param>
+ <param group="PathCoordType"><ptype>GLenum</ptype> <name>coordType</name></param>
+ <param len="COMPSIZE(numCoords,coordType)">const <ptype>GLvoid</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathSubCoordsNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param><ptype>GLsizei</ptype> <name>coordStart</name></param>
+ <param><ptype>GLsizei</ptype> <name>numCoords</name></param>
+ <param group="PathCoordType"><ptype>GLenum</ptype> <name>coordType</name></param>
+ <param len="COMPSIZE(numCoords,coordType)">const <ptype>GLvoid</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPathTexGenNV</name></proto>
+ <param group="PathColor"><ptype>GLenum</ptype> <name>texCoordSet</name></param>
+ <param group="PathGenMode"><ptype>GLenum</ptype> <name>genMode</name></param>
+ <param><ptype>GLint</ptype> <name>components</name></param>
+ <param len="COMPSIZE(genMode,components)">const <ptype>GLfloat</ptype> *<name>coeffs</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPauseTransformFeedback</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glPauseTransformFeedbackNV</name></proto>
+ <alias name="glPauseTransformFeedback"/>
+ </command>
+ <command>
+ <proto>void <name>glPixelDataRangeNV</name></proto>
+ <param group="PixelDataRangeTargetNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param len="length">const <ptype>GLvoid</ptype> *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPixelMapfv</name></proto>
+ <param group="PixelMap"><ptype>GLenum</ptype> <name>map</name></param>
+ <param group="CheckedInt32"><ptype>GLsizei</ptype> <name>mapsize</name></param>
+ <param len="mapsize">const <ptype>GLfloat</ptype> *<name>values</name></param>
+ <glx type="render" opcode="168"/>
+ <glx type="render" opcode="323" name="glPixelMapfvPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glPixelMapuiv</name></proto>
+ <param group="PixelMap"><ptype>GLenum</ptype> <name>map</name></param>
+ <param group="CheckedInt32"><ptype>GLsizei</ptype> <name>mapsize</name></param>
+ <param len="mapsize">const <ptype>GLuint</ptype> *<name>values</name></param>
+ <glx type="render" opcode="169"/>
+ <glx type="render" opcode="324" name="glPixelMapuivPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glPixelMapusv</name></proto>
+ <param group="PixelMap"><ptype>GLenum</ptype> <name>map</name></param>
+ <param group="CheckedInt32"><ptype>GLsizei</ptype> <name>mapsize</name></param>
+ <param len="mapsize">const <ptype>GLushort</ptype> *<name>values</name></param>
+ <glx type="render" opcode="170"/>
+ <glx type="render" opcode="325" name="glPixelMapusvPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glPixelMapx</name></proto>
+ <param><ptype>GLenum</ptype> <name>map</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param len="size">const <ptype>GLfixed</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPixelStoref</name></proto>
+ <param group="PixelStoreParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <glx type="single" opcode="109"/>
+ </command>
+ <command>
+ <proto>void <name>glPixelStorei</name></proto>
+ <param group="PixelStoreParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ <glx type="single" opcode="110"/>
+ </command>
+ <command>
+ <proto>void <name>glPixelStorex</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPixelTexGenParameterfSGIS</name></proto>
+ <param group="PixelTexGenParameterNameSGIS"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPixelTexGenParameterfvSGIS</name></proto>
+ <param group="PixelTexGenParameterNameSGIS"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPixelTexGenParameteriSGIS</name></proto>
+ <param group="PixelTexGenParameterNameSGIS"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPixelTexGenParameterivSGIS</name></proto>
+ <param group="PixelTexGenParameterNameSGIS"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPixelTexGenSGIX</name></proto>
+ <param group="PixelTexGenModeSGIX"><ptype>GLenum</ptype> <name>mode</name></param>
+ <glx type="render" opcode="2059"/>
+ </command>
+ <command>
+ <proto>void <name>glPixelTransferf</name></proto>
+ <param group="PixelTransferParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <glx type="render" opcode="166"/>
+ </command>
+ <command>
+ <proto>void <name>glPixelTransferi</name></proto>
+ <param group="PixelTransferParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ <glx type="render" opcode="167"/>
+ </command>
+ <command>
+ <proto>void <name>glPixelTransferxOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPixelTransformParameterfEXT</name></proto>
+ <param group="PixelTransformTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelTransformPNameEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfloat</ptype> <name>param</name></param>
+ <glx type="render" opcode="16385"/>
+ </command>
+ <command>
+ <proto>void <name>glPixelTransformParameterfvEXT</name></proto>
+ <param group="PixelTransformTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelTransformPNameEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPixelTransformParameteriEXT</name></proto>
+ <param group="PixelTransformTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelTransformPNameEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ <glx type="render" opcode="16386"/>
+ </command>
+ <command>
+ <proto>void <name>glPixelTransformParameterivEXT</name></proto>
+ <param group="PixelTransformTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelTransformPNameEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="1">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPixelZoom</name></proto>
+ <param><ptype>GLfloat</ptype> <name>xfactor</name></param>
+ <param><ptype>GLfloat</ptype> <name>yfactor</name></param>
+ <glx type="render" opcode="165"/>
+ </command>
+ <command>
+ <proto>void <name>glPixelZoomxOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>xfactor</name></param>
+ <param><ptype>GLfixed</ptype> <name>yfactor</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glPointAlongPathNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param><ptype>GLsizei</ptype> <name>startSegment</name></param>
+ <param><ptype>GLsizei</ptype> <name>numSegments</name></param>
+ <param><ptype>GLfloat</ptype> <name>distance</name></param>
+ <param len="1"><ptype>GLfloat</ptype> *<name>x</name></param>
+ <param len="1"><ptype>GLfloat</ptype> *<name>y</name></param>
+ <param len="1"><ptype>GLfloat</ptype> *<name>tangentX</name></param>
+ <param len="1"><ptype>GLfloat</ptype> *<name>tangentY</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPointParameterf</name></proto>
+ <param group="PointParameterNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <glx type="render" opcode="2065"/>
+ </command>
+ <command>
+ <proto>void <name>glPointParameterfARB</name></proto>
+ <param group="PointParameterNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <alias name="glPointParameterf"/>
+ <glx type="render" opcode="2065"/>
+ </command>
+ <command>
+ <proto>void <name>glPointParameterfEXT</name></proto>
+ <param group="PointParameterNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <alias name="glPointParameterf"/>
+ </command>
+ <command>
+ <proto>void <name>glPointParameterfSGIS</name></proto>
+ <param group="PointParameterNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <alias name="glPointParameterf"/>
+ </command>
+ <command>
+ <proto>void <name>glPointParameterfv</name></proto>
+ <param group="PointParameterNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="2066"/>
+ </command>
+ <command>
+ <proto>void <name>glPointParameterfvARB</name></proto>
+ <param group="PointParameterNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <alias name="glPointParameterfv"/>
+ <glx type="render" opcode="2066"/>
+ </command>
+ <command>
+ <proto>void <name>glPointParameterfvEXT</name></proto>
+ <param group="PointParameterNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <alias name="glPointParameterfv"/>
+ </command>
+ <command>
+ <proto>void <name>glPointParameterfvSGIS</name></proto>
+ <param group="PointParameterNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <alias name="glPointParameterfv"/>
+ </command>
+ <command>
+ <proto>void <name>glPointParameteri</name></proto>
+ <param group="PointParameterNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ <glx type="render" opcode="4221"/>
+ </command>
+ <command>
+ <proto>void <name>glPointParameteriNV</name></proto>
+ <param group="PointParameterNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ <alias name="glPointParameteri"/>
+ <glx type="render" opcode="4221"/>
+ </command>
+ <command>
+ <proto>void <name>glPointParameteriv</name></proto>
+ <param group="PointParameterNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="4222"/>
+ </command>
+ <command>
+ <proto>void <name>glPointParameterivNV</name></proto>
+ <param group="PointParameterNameARB"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glPointParameteriv"/>
+ <glx type="render" opcode="4222"/>
+ </command>
+ <command>
+ <proto>void <name>glPointParameterx</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPointParameterxOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPointParameterxv</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param>const <ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPointParameterxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPointSize</name></proto>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>size</name></param>
+ <glx type="render" opcode="100"/>
+ </command>
+ <command>
+ <proto>void <name>glPointSizePointerOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param>const void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPointSizex</name></proto>
+ <param><ptype>GLfixed</ptype> <name>size</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPointSizexOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>size</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glPollAsyncSGIX</name></proto>
+ <param len="1"><ptype>GLuint</ptype> *<name>markerp</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glPollInstrumentsSGIX</name></proto>
+ <param len="1"><ptype>GLint</ptype> *<name>marker_p</name></param>
+ <glx type="vendor" opcode="4104"/>
+ </command>
+ <command>
+ <proto>void <name>glPolygonMode</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="PolygonMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <glx type="render" opcode="101"/>
+ </command>
+ <command>
+ <proto>void <name>glPolygonOffset</name></proto>
+ <param><ptype>GLfloat</ptype> <name>factor</name></param>
+ <param><ptype>GLfloat</ptype> <name>units</name></param>
+ <glx type="render" opcode="192"/>
+ </command>
+ <command>
+ <proto>void <name>glPolygonOffsetEXT</name></proto>
+ <param><ptype>GLfloat</ptype> <name>factor</name></param>
+ <param><ptype>GLfloat</ptype> <name>bias</name></param>
+ <glx type="render" opcode="4098"/>
+ </command>
+ <command>
+ <proto>void <name>glPolygonOffsetx</name></proto>
+ <param><ptype>GLfixed</ptype> <name>factor</name></param>
+ <param><ptype>GLfixed</ptype> <name>units</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPolygonOffsetxOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>factor</name></param>
+ <param><ptype>GLfixed</ptype> <name>units</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPolygonStipple</name></proto>
+ <param len="COMPSIZE()">const <ptype>GLubyte</ptype> *<name>mask</name></param>
+ <glx type="render" opcode="102"/>
+ <glx type="render" opcode="326" name="glPolygonStipplePBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glPopAttrib</name></proto>
+ <glx type="render" opcode="141"/>
+ </command>
+ <command>
+ <proto>void <name>glPopClientAttrib</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glPopDebugGroup</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glPopDebugGroupKHR</name></proto>
+ <alias name="glPopDebugGroup"/>
+ </command>
+ <command>
+ <proto>void <name>glPopGroupMarkerEXT</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glPopMatrix</name></proto>
+ <glx type="render" opcode="183"/>
+ </command>
+ <command>
+ <proto>void <name>glPopName</name></proto>
+ <glx type="render" opcode="124"/>
+ </command>
+ <command>
+ <proto>void <name>glPresentFrameDualFillNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_slot</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>minPresentTime</name></param>
+ <param><ptype>GLuint</ptype> <name>beginPresentTimeId</name></param>
+ <param><ptype>GLuint</ptype> <name>presentDurationId</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLenum</ptype> <name>target0</name></param>
+ <param><ptype>GLuint</ptype> <name>fill0</name></param>
+ <param><ptype>GLenum</ptype> <name>target1</name></param>
+ <param><ptype>GLuint</ptype> <name>fill1</name></param>
+ <param><ptype>GLenum</ptype> <name>target2</name></param>
+ <param><ptype>GLuint</ptype> <name>fill2</name></param>
+ <param><ptype>GLenum</ptype> <name>target3</name></param>
+ <param><ptype>GLuint</ptype> <name>fill3</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPresentFrameKeyedNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_slot</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>minPresentTime</name></param>
+ <param><ptype>GLuint</ptype> <name>beginPresentTimeId</name></param>
+ <param><ptype>GLuint</ptype> <name>presentDurationId</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLenum</ptype> <name>target0</name></param>
+ <param><ptype>GLuint</ptype> <name>fill0</name></param>
+ <param><ptype>GLuint</ptype> <name>key0</name></param>
+ <param><ptype>GLenum</ptype> <name>target1</name></param>
+ <param><ptype>GLuint</ptype> <name>fill1</name></param>
+ <param><ptype>GLuint</ptype> <name>key1</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPrimitiveRestartIndex</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPrimitiveRestartIndexNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPrimitiveRestartNV</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glPrioritizeTextures</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="Texture" len="n">const <ptype>GLuint</ptype> *<name>textures</name></param>
+ <param len="n">const <ptype>GLfloat</ptype> *<name>priorities</name></param>
+ <glx type="render" opcode="4118"/>
+ </command>
+ <command>
+ <proto>void <name>glPrioritizeTexturesEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="Texture" len="n">const <ptype>GLuint</ptype> *<name>textures</name></param>
+ <param group="ClampedFloat32" len="n">const <ptype>GLclampf</ptype> *<name>priorities</name></param>
+ <alias name="glPrioritizeTextures"/>
+ <glx type="render" opcode="4118"/>
+ </command>
+ <command>
+ <proto>void <name>glPrioritizeTexturesxOES</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>textures</name></param>
+ <param group="ClampedFixed" len="n">const <ptype>GLfixed</ptype> *<name>priorities</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramBinary</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>binaryFormat</name></param>
+ <param len="length">const <ptype>GLvoid</ptype> *<name>binary</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramBinaryOES</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLenum</ptype> <name>binaryFormat</name></param>
+ <param>const <ptype>GLvoid</ptype> *<name>binary</name></param>
+ <param><ptype>GLint</ptype> <name>length</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramBufferParametersIivNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>bindingIndex</name></param>
+ <param><ptype>GLuint</ptype> <name>wordIndex</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramBufferParametersIuivNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>bindingIndex</name></param>
+ <param><ptype>GLuint</ptype> <name>wordIndex</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramBufferParametersfvNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>bindingIndex</name></param>
+ <param><ptype>GLuint</ptype> <name>wordIndex</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramEnvParameter4dARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <param><ptype>GLdouble</ptype> <name>w</name></param>
+ <vecequiv name="glProgramEnvParameter4dvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramEnvParameter4dvARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramEnvParameter4fARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <param><ptype>GLfloat</ptype> <name>w</name></param>
+ <vecequiv name="glProgramEnvParameter4fvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramEnvParameter4fvARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramEnvParameterI4iNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLint</ptype> <name>z</name></param>
+ <param><ptype>GLint</ptype> <name>w</name></param>
+ <vecequiv name="glProgramEnvParameterI4ivNV"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramEnvParameterI4ivNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramEnvParameterI4uiNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>x</name></param>
+ <param><ptype>GLuint</ptype> <name>y</name></param>
+ <param><ptype>GLuint</ptype> <name>z</name></param>
+ <param><ptype>GLuint</ptype> <name>w</name></param>
+ <vecequiv name="glProgramEnvParameterI4uivNV"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramEnvParameterI4uivNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramEnvParameters4fvEXT</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="4281"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramEnvParametersI4ivNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramEnvParametersI4uivNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramLocalParameter4dARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <param><ptype>GLdouble</ptype> <name>w</name></param>
+ <vecequiv name="glProgramLocalParameter4dvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramLocalParameter4dvARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramLocalParameter4fARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <param><ptype>GLfloat</ptype> <name>w</name></param>
+ <vecequiv name="glProgramLocalParameter4fvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramLocalParameter4fvARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramLocalParameterI4iNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLint</ptype> <name>z</name></param>
+ <param><ptype>GLint</ptype> <name>w</name></param>
+ <vecequiv name="glProgramLocalParameterI4ivNV"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramLocalParameterI4ivNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramLocalParameterI4uiNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>x</name></param>
+ <param><ptype>GLuint</ptype> <name>y</name></param>
+ <param><ptype>GLuint</ptype> <name>z</name></param>
+ <param><ptype>GLuint</ptype> <name>w</name></param>
+ <vecequiv name="glProgramLocalParameterI4uivNV"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramLocalParameterI4uivNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramLocalParameters4fvEXT</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="4282"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramLocalParametersI4ivNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramLocalParametersI4uivNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramNamedParameter4dNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLsizei</ptype> <name>len</name></param>
+ <param len="1">const <ptype>GLubyte</ptype> *<name>name</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <param><ptype>GLdouble</ptype> <name>w</name></param>
+ <vecequiv name="glProgramNamedParameter4dvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramNamedParameter4dvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLsizei</ptype> <name>len</name></param>
+ <param len="1">const <ptype>GLubyte</ptype> *<name>name</name></param>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4219"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramNamedParameter4fNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLsizei</ptype> <name>len</name></param>
+ <param len="1">const <ptype>GLubyte</ptype> *<name>name</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <param><ptype>GLfloat</ptype> <name>w</name></param>
+ <vecequiv name="glProgramNamedParameter4fvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramNamedParameter4fvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLsizei</ptype> <name>len</name></param>
+ <param len="1">const <ptype>GLubyte</ptype> *<name>name</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4218"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramParameter4dNV</name></proto>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <param><ptype>GLdouble</ptype> <name>w</name></param>
+ <vecequiv name="glProgramParameter4dvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramParameter4dvNV</name></proto>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4185"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramParameter4fNV</name></proto>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <param><ptype>GLfloat</ptype> <name>w</name></param>
+ <vecequiv name="glProgramParameter4fvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramParameter4fvNV</name></proto>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4184"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramParameteri</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramParameteriARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>value</name></param>
+ <alias name="glProgramParameteri"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramParameteriEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param group="ProgramParameterPName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>value</name></param>
+ <alias name="glProgramParameteri"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramParameters4dvNV</name></proto>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4187"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramParameters4fvNV</name></proto>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4186"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramStringARB</name></proto>
+ <param group="ProgramTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="ProgramFormatARB"><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLsizei</ptype> <name>len</name></param>
+ <param len="len">const <ptype>GLvoid</ptype> *<name>string</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramSubroutineParametersuivNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1d</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLdouble</ptype> <name>v0</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1dEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="1">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1f</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1fEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ <alias name="glProgramUniform1f"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="1">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glProgramUniform1fv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1i</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1i64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1i64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1iEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ <alias name="glProgramUniform1i"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1iv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="1">const <ptype>GLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1ivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLint</ptype> *<name>value</name></param>
+ <alias name="glProgramUniform1iv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1ui</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1ui64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1ui64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1uiEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ <alias name="glProgramUniform1ui"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1uiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform1uivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint</ptype> *<name>value</name></param>
+ <alias name="glProgramUniform1uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2d</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLdouble</ptype> <name>v0</name></param>
+ <param><ptype>GLdouble</ptype> <name>v1</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2dEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="2">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2f</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ <param><ptype>GLfloat</ptype> <name>v1</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2fEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ <param><ptype>GLfloat</ptype> <name>v1</name></param>
+ <alias name="glProgramUniform2f"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*2">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glProgramUniform2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2i</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ <param><ptype>GLint</ptype> <name>v1</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2i64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2i64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(count*2)">const <ptype>GLint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2iEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ <param><ptype>GLint</ptype> <name>v1</name></param>
+ <alias name="glProgramUniform2i"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2iv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="2">const <ptype>GLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2ivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*2">const <ptype>GLint</ptype> *<name>value</name></param>
+ <alias name="glProgramUniform2iv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2ui</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ <param><ptype>GLuint</ptype> <name>v1</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2ui64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2ui64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(count*2)">const <ptype>GLuint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2uiEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ <param><ptype>GLuint</ptype> <name>v1</name></param>
+ <alias name="glProgramUniform2ui"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2uiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="2">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform2uivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*2">const <ptype>GLuint</ptype> *<name>value</name></param>
+ <alias name="glProgramUniform2uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3d</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLdouble</ptype> <name>v0</name></param>
+ <param><ptype>GLdouble</ptype> <name>v1</name></param>
+ <param><ptype>GLdouble</ptype> <name>v2</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3dEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="3">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3f</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ <param><ptype>GLfloat</ptype> <name>v1</name></param>
+ <param><ptype>GLfloat</ptype> <name>v2</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3fEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ <param><ptype>GLfloat</ptype> <name>v1</name></param>
+ <param><ptype>GLfloat</ptype> <name>v2</name></param>
+ <alias name="glProgramUniform3f"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*3">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glProgramUniform3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3i</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ <param><ptype>GLint</ptype> <name>v1</name></param>
+ <param><ptype>GLint</ptype> <name>v2</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3i64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>y</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3i64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(count*3)">const <ptype>GLint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3iEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ <param><ptype>GLint</ptype> <name>v1</name></param>
+ <param><ptype>GLint</ptype> <name>v2</name></param>
+ <alias name="glProgramUniform3i"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3iv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="3">const <ptype>GLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3ivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*3">const <ptype>GLint</ptype> *<name>value</name></param>
+ <alias name="glProgramUniform3iv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3ui</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ <param><ptype>GLuint</ptype> <name>v1</name></param>
+ <param><ptype>GLuint</ptype> <name>v2</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3ui64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>y</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3ui64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(count*3)">const <ptype>GLuint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3uiEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ <param><ptype>GLuint</ptype> <name>v1</name></param>
+ <param><ptype>GLuint</ptype> <name>v2</name></param>
+ <alias name="glProgramUniform3ui"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3uiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="3">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform3uivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*3">const <ptype>GLuint</ptype> *<name>value</name></param>
+ <alias name="glProgramUniform3uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4d</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLdouble</ptype> <name>v0</name></param>
+ <param><ptype>GLdouble</ptype> <name>v1</name></param>
+ <param><ptype>GLdouble</ptype> <name>v2</name></param>
+ <param><ptype>GLdouble</ptype> <name>v3</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4dEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <param><ptype>GLdouble</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4f</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ <param><ptype>GLfloat</ptype> <name>v1</name></param>
+ <param><ptype>GLfloat</ptype> <name>v2</name></param>
+ <param><ptype>GLfloat</ptype> <name>v3</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4fEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ <param><ptype>GLfloat</ptype> <name>v1</name></param>
+ <param><ptype>GLfloat</ptype> <name>v2</name></param>
+ <param><ptype>GLfloat</ptype> <name>v3</name></param>
+ <alias name="glProgramUniform4f"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glProgramUniform4fv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4i</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ <param><ptype>GLint</ptype> <name>v1</name></param>
+ <param><ptype>GLint</ptype> <name>v2</name></param>
+ <param><ptype>GLint</ptype> <name>v3</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4i64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>y</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>z</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4i64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(count*4)">const <ptype>GLint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4iEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ <param><ptype>GLint</ptype> <name>v1</name></param>
+ <param><ptype>GLint</ptype> <name>v2</name></param>
+ <param><ptype>GLint</ptype> <name>v3</name></param>
+ <alias name="glProgramUniform4i"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4iv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="4">const <ptype>GLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4ivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLint</ptype> *<name>value</name></param>
+ <alias name="glProgramUniform4iv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4ui</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ <param><ptype>GLuint</ptype> <name>v1</name></param>
+ <param><ptype>GLuint</ptype> <name>v2</name></param>
+ <param><ptype>GLuint</ptype> <name>v3</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4ui64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>y</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>z</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4ui64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(count*4)">const <ptype>GLuint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4uiEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ <param><ptype>GLuint</ptype> <name>v1</name></param>
+ <param><ptype>GLuint</ptype> <name>v2</name></param>
+ <param><ptype>GLuint</ptype> <name>v3</name></param>
+ <alias name="glProgramUniform4ui"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4uiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="4">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniform4uivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLuint</ptype> *<name>value</name></param>
+ <alias name="glProgramUniform4uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformHandleui64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint64</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformHandleui64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint64</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix2dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="2">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix2dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix2fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix2fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*4">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glProgramUniformMatrix2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix2x3dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix2x3dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix2x3fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix2x3fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*6">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glProgramUniformMatrix2x3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix2x4dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix2x4dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix2x4fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix2x4fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*8">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glProgramUniformMatrix2x4fv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix3dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="3">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix3dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix3fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix3fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*9">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glProgramUniformMatrix3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix3x2dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix3x2dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix3x2fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix3x2fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*6">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glProgramUniformMatrix3x2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix3x4dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix3x4dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix3x4fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix3x4fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*12">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glProgramUniformMatrix3x4fv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix4dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix4dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix4fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix4fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*16">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glProgramUniformMatrix4fv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix4x2dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix4x2dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix4x2fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix4x2fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*8">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glProgramUniformMatrix4x2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix4x3dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix4x3dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix4x3fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformMatrix4x3fvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count*12">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glProgramUniformMatrix4x3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformui64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramUniformui64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProgramVertexLimitNV</name></proto>
+ <param group="ProgramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLint</ptype> <name>limit</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProvokingVertex</name></proto>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glProvokingVertexEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ <alias name="glProvokingVertex"/>
+ </command>
+ <command>
+ <proto>void <name>glPushAttrib</name></proto>
+ <param group="AttribMask"><ptype>GLbitfield</ptype> <name>mask</name></param>
+ <glx type="render" opcode="142"/>
+ </command>
+ <command>
+ <proto>void <name>glPushClientAttrib</name></proto>
+ <param group="ClientAttribMask"><ptype>GLbitfield</ptype> <name>mask</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPushClientAttribDefaultEXT</name></proto>
+ <param group="ClientAttribMask"><ptype>GLbitfield</ptype> <name>mask</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPushDebugGroup</name></proto>
+ <param><ptype>GLenum</ptype> <name>source</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param len="COMPSIZE(message,length)">const <ptype>GLchar</ptype> *<name>message</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPushDebugGroupKHR</name></proto>
+ <param><ptype>GLenum</ptype> <name>source</name></param>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>message</name></param>
+ <alias name="glPushDebugGroup"/>
+ </command>
+ <command>
+ <proto>void <name>glPushGroupMarkerEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param>const <ptype>GLchar</ptype> *<name>marker</name></param>
+ </command>
+ <command>
+ <proto>void <name>glPushMatrix</name></proto>
+ <glx type="render" opcode="184"/>
+ </command>
+ <command>
+ <proto>void <name>glPushName</name></proto>
+ <param group="SelectName"><ptype>GLuint</ptype> <name>name</name></param>
+ <glx type="render" opcode="125"/>
+ </command>
+ <command>
+ <proto>void <name>glQueryCounter</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ </command>
+ <command>
+ <proto>void <name>glQueryCounterEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <alias name="glQueryCounter"/>
+ </command>
+ <command>
+ <proto><ptype>GLbitfield</ptype> <name>glQueryMatrixxOES</name></proto>
+ <param len="16"><ptype>GLfixed</ptype> *<name>mantissa</name></param>
+ <param len="16"><ptype>GLint</ptype> *<name>exponent</name></param>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos2d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y</name></param>
+ <vecequiv name="glRasterPos2dv"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos2dv</name></proto>
+ <param group="CoordD" len="2">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="33"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos2f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y</name></param>
+ <vecequiv name="glRasterPos2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos2fv</name></proto>
+ <param group="CoordF" len="2">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="34"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos2i</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y</name></param>
+ <vecequiv name="glRasterPos2iv"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos2iv</name></proto>
+ <param group="CoordI" len="2">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="35"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos2s</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y</name></param>
+ <vecequiv name="glRasterPos2sv"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos2sv</name></proto>
+ <param group="CoordS" len="2">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="36"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos2xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>x</name></param>
+ <param><ptype>GLfixed</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos2xvOES</name></proto>
+ <param len="2">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos3d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>z</name></param>
+ <vecequiv name="glRasterPos3dv"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos3dv</name></proto>
+ <param group="CoordD" len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="37"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos3f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>z</name></param>
+ <vecequiv name="glRasterPos3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos3fv</name></proto>
+ <param group="CoordF" len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="38"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos3i</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>z</name></param>
+ <vecequiv name="glRasterPos3iv"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos3iv</name></proto>
+ <param group="CoordI" len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="39"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos3s</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>z</name></param>
+ <vecequiv name="glRasterPos3sv"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos3sv</name></proto>
+ <param group="CoordS" len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="40"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos3xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>x</name></param>
+ <param><ptype>GLfixed</ptype> <name>y</name></param>
+ <param><ptype>GLfixed</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos3xvOES</name></proto>
+ <param len="3">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos4d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>z</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>w</name></param>
+ <vecequiv name="glRasterPos4dv"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos4dv</name></proto>
+ <param group="CoordD" len="4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="41"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos4f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>z</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>w</name></param>
+ <vecequiv name="glRasterPos4fv"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos4fv</name></proto>
+ <param group="CoordF" len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="42"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos4i</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>z</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>w</name></param>
+ <vecequiv name="glRasterPos4iv"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos4iv</name></proto>
+ <param group="CoordI" len="4">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="43"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos4s</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>z</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>w</name></param>
+ <vecequiv name="glRasterPos4sv"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos4sv</name></proto>
+ <param group="CoordS" len="4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="44"/>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos4xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>x</name></param>
+ <param><ptype>GLfixed</ptype> <name>y</name></param>
+ <param><ptype>GLfixed</ptype> <name>z</name></param>
+ <param><ptype>GLfixed</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glRasterPos4xvOES</name></proto>
+ <param len="4">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReadBuffer</name></proto>
+ <param group="ReadBufferMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <glx type="render" opcode="171"/>
+ </command>
+ <command>
+ <proto>void <name>glReadBufferIndexedEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>src</name></param>
+ <param><ptype>GLint</ptype> <name>index</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReadBufferNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReadInstrumentsSGIX</name></proto>
+ <param><ptype>GLint</ptype> <name>marker</name></param>
+ <glx type="render" opcode="2077"/>
+ </command>
+ <command>
+ <proto>void <name>glReadPixels</name></proto>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height)"><ptype>GLvoid</ptype> *<name>pixels</name></param>
+ <glx type="single" opcode="111"/>
+ <glx type="render" opcode="345" name="glReadPixelsPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glReadnPixelsARB</name></proto>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param len="bufSize"><ptype>GLvoid</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReadnPixelsEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLvoid</ptype> *<name>data</name></param>
+ </command>
+ <command>
+ <proto>void <name>glRectd</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x1</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y1</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x2</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y2</name></param>
+ <vecequiv name="glRectdv"/>
+ </command>
+ <command>
+ <proto>void <name>glRectdv</name></proto>
+ <param group="CoordD" len="2">const <ptype>GLdouble</ptype> *<name>v1</name></param>
+ <param group="CoordD" len="2">const <ptype>GLdouble</ptype> *<name>v2</name></param>
+ <glx type="render" opcode="45"/>
+ </command>
+ <command>
+ <proto>void <name>glRectf</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x1</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y1</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x2</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y2</name></param>
+ <vecequiv name="glRectfv"/>
+ </command>
+ <command>
+ <proto>void <name>glRectfv</name></proto>
+ <param group="CoordF" len="2">const <ptype>GLfloat</ptype> *<name>v1</name></param>
+ <param group="CoordF" len="2">const <ptype>GLfloat</ptype> *<name>v2</name></param>
+ <glx type="render" opcode="46"/>
+ </command>
+ <command>
+ <proto>void <name>glRecti</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x1</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y1</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x2</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y2</name></param>
+ <vecequiv name="glRectiv"/>
+ </command>
+ <command>
+ <proto>void <name>glRectiv</name></proto>
+ <param group="CoordI" len="2">const <ptype>GLint</ptype> *<name>v1</name></param>
+ <param group="CoordI" len="2">const <ptype>GLint</ptype> *<name>v2</name></param>
+ <glx type="render" opcode="47"/>
+ </command>
+ <command>
+ <proto>void <name>glRects</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x1</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y1</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x2</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y2</name></param>
+ <vecequiv name="glRectsv"/>
+ </command>
+ <command>
+ <proto>void <name>glRectsv</name></proto>
+ <param group="CoordS" len="2">const <ptype>GLshort</ptype> *<name>v1</name></param>
+ <param group="CoordS" len="2">const <ptype>GLshort</ptype> *<name>v2</name></param>
+ <glx type="render" opcode="48"/>
+ </command>
+ <command>
+ <proto>void <name>glRectxOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>x1</name></param>
+ <param><ptype>GLfixed</ptype> <name>y1</name></param>
+ <param><ptype>GLfixed</ptype> <name>x2</name></param>
+ <param><ptype>GLfixed</ptype> <name>y2</name></param>
+ </command>
+ <command>
+ <proto>void <name>glRectxvOES</name></proto>
+ <param len="2">const <ptype>GLfixed</ptype> *<name>v1</name></param>
+ <param len="2">const <ptype>GLfixed</ptype> *<name>v2</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReferencePlaneSGIX</name></proto>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>equation</name></param>
+ <glx type="render" opcode="2071"/>
+ </command>
+ <command>
+ <proto>void <name>glReleaseShaderCompiler</name></proto>
+ </command>
+ <command>
+ <proto><ptype>GLint</ptype> <name>glRenderMode</name></proto>
+ <param group="RenderingMode"><ptype>GLenum</ptype> <name>mode</name></param>
+ <glx type="single" opcode="107"/>
+ </command>
+ <command>
+ <proto>void <name>glRenderbufferStorage</name></proto>
+ <param group="RenderbufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <glx type="render" opcode="4318"/>
+ </command>
+ <command>
+ <proto>void <name>glRenderbufferStorageEXT</name></proto>
+ <param group="RenderbufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <alias name="glRenderbufferStorage"/>
+ <glx type="render" opcode="4318"/>
+ </command>
+ <command>
+ <proto>void <name>glRenderbufferStorageMultisample</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <glx type="render" opcode="4331"/>
+ </command>
+ <command>
+ <proto>void <name>glRenderbufferStorageMultisampleANGLE</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glRenderbufferStorageMultisampleAPPLE</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glRenderbufferStorageMultisampleCoverageNV</name></proto>
+ <param group="RenderbufferTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>coverageSamples</name></param>
+ <param><ptype>GLsizei</ptype> <name>colorSamples</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glRenderbufferStorageMultisampleEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <alias name="glRenderbufferStorageMultisample"/>
+ <glx type="render" opcode="4331"/>
+ </command>
+ <command>
+ <proto>void <name>glRenderbufferStorageMultisampleIMG</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glRenderbufferStorageMultisampleNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glRenderbufferStorageOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodePointerSUN</name></proto>
+ <param group="ReplacementCodeTypeSUN"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(type,stride)">const <ptype>GLvoid</ptype> **<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeubSUN</name></proto>
+ <param><ptype>GLubyte</ptype> <name>code</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeubvSUN</name></proto>
+ <param len="COMPSIZE()">const <ptype>GLubyte</ptype> *<name>code</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiColor3fVertex3fSUN</name></proto>
+ <param group="ReplacementCodeSUN"><ptype>GLuint</ptype> <name>rc</name></param>
+ <param><ptype>GLfloat</ptype> <name>r</name></param>
+ <param><ptype>GLfloat</ptype> <name>g</name></param>
+ <param><ptype>GLfloat</ptype> <name>b</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiColor3fVertex3fvSUN</name></proto>
+ <param group="ReplacementCodeSUN" len="1">const <ptype>GLuint</ptype> *<name>rc</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>c</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiColor4fNormal3fVertex3fSUN</name></proto>
+ <param group="ReplacementCodeSUN"><ptype>GLuint</ptype> <name>rc</name></param>
+ <param><ptype>GLfloat</ptype> <name>r</name></param>
+ <param><ptype>GLfloat</ptype> <name>g</name></param>
+ <param><ptype>GLfloat</ptype> <name>b</name></param>
+ <param><ptype>GLfloat</ptype> <name>a</name></param>
+ <param><ptype>GLfloat</ptype> <name>nx</name></param>
+ <param><ptype>GLfloat</ptype> <name>ny</name></param>
+ <param><ptype>GLfloat</ptype> <name>nz</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiColor4fNormal3fVertex3fvSUN</name></proto>
+ <param group="ReplacementCodeSUN" len="1">const <ptype>GLuint</ptype> *<name>rc</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>c</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>n</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiColor4ubVertex3fSUN</name></proto>
+ <param group="ReplacementCodeSUN"><ptype>GLuint</ptype> <name>rc</name></param>
+ <param><ptype>GLubyte</ptype> <name>r</name></param>
+ <param><ptype>GLubyte</ptype> <name>g</name></param>
+ <param><ptype>GLubyte</ptype> <name>b</name></param>
+ <param><ptype>GLubyte</ptype> <name>a</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiColor4ubVertex3fvSUN</name></proto>
+ <param group="ReplacementCodeSUN" len="1">const <ptype>GLuint</ptype> *<name>rc</name></param>
+ <param len="4">const <ptype>GLubyte</ptype> *<name>c</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiNormal3fVertex3fSUN</name></proto>
+ <param group="ReplacementCodeSUN"><ptype>GLuint</ptype> <name>rc</name></param>
+ <param><ptype>GLfloat</ptype> <name>nx</name></param>
+ <param><ptype>GLfloat</ptype> <name>ny</name></param>
+ <param><ptype>GLfloat</ptype> <name>nz</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiNormal3fVertex3fvSUN</name></proto>
+ <param group="ReplacementCodeSUN" len="1">const <ptype>GLuint</ptype> *<name>rc</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>n</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiSUN</name></proto>
+ <param><ptype>GLuint</ptype> <name>code</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN</name></proto>
+ <param group="ReplacementCodeSUN"><ptype>GLuint</ptype> <name>rc</name></param>
+ <param><ptype>GLfloat</ptype> <name>s</name></param>
+ <param><ptype>GLfloat</ptype> <name>t</name></param>
+ <param><ptype>GLfloat</ptype> <name>r</name></param>
+ <param><ptype>GLfloat</ptype> <name>g</name></param>
+ <param><ptype>GLfloat</ptype> <name>b</name></param>
+ <param><ptype>GLfloat</ptype> <name>a</name></param>
+ <param><ptype>GLfloat</ptype> <name>nx</name></param>
+ <param><ptype>GLfloat</ptype> <name>ny</name></param>
+ <param><ptype>GLfloat</ptype> <name>nz</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN</name></proto>
+ <param group="ReplacementCodeSUN" len="1">const <ptype>GLuint</ptype> *<name>rc</name></param>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>tc</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>c</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>n</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN</name></proto>
+ <param group="ReplacementCodeSUN"><ptype>GLuint</ptype> <name>rc</name></param>
+ <param><ptype>GLfloat</ptype> <name>s</name></param>
+ <param><ptype>GLfloat</ptype> <name>t</name></param>
+ <param><ptype>GLfloat</ptype> <name>nx</name></param>
+ <param><ptype>GLfloat</ptype> <name>ny</name></param>
+ <param><ptype>GLfloat</ptype> <name>nz</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN</name></proto>
+ <param group="ReplacementCodeSUN" len="1">const <ptype>GLuint</ptype> *<name>rc</name></param>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>tc</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>n</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiTexCoord2fVertex3fSUN</name></proto>
+ <param group="ReplacementCodeSUN"><ptype>GLuint</ptype> <name>rc</name></param>
+ <param><ptype>GLfloat</ptype> <name>s</name></param>
+ <param><ptype>GLfloat</ptype> <name>t</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiTexCoord2fVertex3fvSUN</name></proto>
+ <param group="ReplacementCodeSUN" len="1">const <ptype>GLuint</ptype> *<name>rc</name></param>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>tc</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiVertex3fSUN</name></proto>
+ <param group="ReplacementCodeSUN"><ptype>GLuint</ptype> <name>rc</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuiVertex3fvSUN</name></proto>
+ <param group="ReplacementCodeSUN" len="1">const <ptype>GLuint</ptype> *<name>rc</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeuivSUN</name></proto>
+ <param len="COMPSIZE()">const <ptype>GLuint</ptype> *<name>code</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeusSUN</name></proto>
+ <param><ptype>GLushort</ptype> <name>code</name></param>
+ </command>
+ <command>
+ <proto>void <name>glReplacementCodeusvSUN</name></proto>
+ <param len="COMPSIZE()">const <ptype>GLushort</ptype> *<name>code</name></param>
+ </command>
+ <command>
+ <proto>void <name>glRequestResidentProgramsNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLuint</ptype> *<name>programs</name></param>
+ <glx type="render" opcode="4182"/>
+ </command>
+ <command>
+ <proto>void <name>glResetHistogram</name></proto>
+ <param group="HistogramTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <glx type="render" opcode="4112"/>
+ </command>
+ <command>
+ <proto>void <name>glResetHistogramEXT</name></proto>
+ <param group="HistogramTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <alias name="glResetHistogram"/>
+ <glx type="render" opcode="4112"/>
+ </command>
+ <command>
+ <proto>void <name>glResetMinmax</name></proto>
+ <param group="MinmaxTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <glx type="render" opcode="4113"/>
+ </command>
+ <command>
+ <proto>void <name>glResetMinmaxEXT</name></proto>
+ <param group="MinmaxTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <alias name="glResetMinmax"/>
+ <glx type="render" opcode="4113"/>
+ </command>
+ <command>
+ <proto>void <name>glResizeBuffersMESA</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glResolveMultisampleFramebufferAPPLE</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glResumeTransformFeedback</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glResumeTransformFeedbackNV</name></proto>
+ <alias name="glResumeTransformFeedback"/>
+ </command>
+ <command>
+ <proto>void <name>glRotated</name></proto>
+ <param><ptype>GLdouble</ptype> <name>angle</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <glx type="render" opcode="185"/>
+ </command>
+ <command>
+ <proto>void <name>glRotatef</name></proto>
+ <param><ptype>GLfloat</ptype> <name>angle</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <glx type="render" opcode="186"/>
+ </command>
+ <command>
+ <proto>void <name>glRotatex</name></proto>
+ <param><ptype>GLfixed</ptype> <name>angle</name></param>
+ <param><ptype>GLfixed</ptype> <name>x</name></param>
+ <param><ptype>GLfixed</ptype> <name>y</name></param>
+ <param><ptype>GLfixed</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glRotatexOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>angle</name></param>
+ <param><ptype>GLfixed</ptype> <name>x</name></param>
+ <param><ptype>GLfixed</ptype> <name>y</name></param>
+ <param><ptype>GLfixed</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSampleCoverage</name></proto>
+ <param><ptype>GLfloat</ptype> <name>value</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>invert</name></param>
+ <glx type="render" opcode="229"/>
+ </command>
+ <command>
+ <proto>void <name>glSampleCoverageARB</name></proto>
+ <param><ptype>GLfloat</ptype> <name>value</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>invert</name></param>
+ <alias name="glSampleCoverage"/>
+ </command>
+ <command>
+ <proto>void <name>glSampleCoverageOES</name></proto>
+ <param group="ClampedFixed"><ptype>GLfixed</ptype> <name>value</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>invert</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSampleCoveragex</name></proto>
+ <param><ptype>GLclampx</ptype> <name>value</name></param>
+ <param><ptype>GLboolean</ptype> <name>invert</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSampleCoveragexOES</name></proto>
+ <param><ptype>GLclampx</ptype> <name>value</name></param>
+ <param><ptype>GLboolean</ptype> <name>invert</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSampleMapATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>dst</name></param>
+ <param><ptype>GLuint</ptype> <name>interp</name></param>
+ <param group="SwizzleOpATI"><ptype>GLenum</ptype> <name>swizzle</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSampleMaskEXT</name></proto>
+ <param group="ClampedFloat32"><ptype>GLclampf</ptype> <name>value</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>invert</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSampleMaskIndexedNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="SampleMaskNV"><ptype>GLbitfield</ptype> <name>mask</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSampleMaskSGIS</name></proto>
+ <param group="ClampedFloat32"><ptype>GLclampf</ptype> <name>value</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>invert</name></param>
+ <alias name="glSampleMaskEXT"/>
+ <glx type="render" opcode="2048"/>
+ </command>
+ <command>
+ <proto>void <name>glSampleMaski</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLbitfield</ptype> <name>mask</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSamplePatternEXT</name></proto>
+ <param group="SamplePatternEXT"><ptype>GLenum</ptype> <name>pattern</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSamplePatternSGIS</name></proto>
+ <param group="SamplePatternSGIS"><ptype>GLenum</ptype> <name>pattern</name></param>
+ <alias name="glSamplePatternEXT"/>
+ <glx type="render" opcode="2049"/>
+ </command>
+ <command>
+ <proto>void <name>glSamplerParameterIiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSamplerParameterIuiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLuint</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSamplerParameterf</name></proto>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfloat</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSamplerParameterfv</name></proto>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSamplerParameteri</name></proto>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSamplerParameteriv</name></proto>
+ <param><ptype>GLuint</ptype> <name>sampler</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glScaled</name></proto>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <glx type="render" opcode="187"/>
+ </command>
+ <command>
+ <proto>void <name>glScalef</name></proto>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <glx type="render" opcode="188"/>
+ </command>
+ <command>
+ <proto>void <name>glScalex</name></proto>
+ <param><ptype>GLfixed</ptype> <name>x</name></param>
+ <param><ptype>GLfixed</ptype> <name>y</name></param>
+ <param><ptype>GLfixed</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glScalexOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>x</name></param>
+ <param><ptype>GLfixed</ptype> <name>y</name></param>
+ <param><ptype>GLfixed</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glScissor</name></proto>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <glx type="render" opcode="103"/>
+ </command>
+ <command>
+ <proto>void <name>glScissorArrayv</name></proto>
+ <param><ptype>GLuint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(count)">const <ptype>GLint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glScissorIndexed</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>left</name></param>
+ <param><ptype>GLint</ptype> <name>bottom</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glScissorIndexedv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3b</name></proto>
+ <param group="ColorB"><ptype>GLbyte</ptype> <name>red</name></param>
+ <param group="ColorB"><ptype>GLbyte</ptype> <name>green</name></param>
+ <param group="ColorB"><ptype>GLbyte</ptype> <name>blue</name></param>
+ <vecequiv name="glSecondaryColor3bv"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3bEXT</name></proto>
+ <param group="ColorB"><ptype>GLbyte</ptype> <name>red</name></param>
+ <param group="ColorB"><ptype>GLbyte</ptype> <name>green</name></param>
+ <param group="ColorB"><ptype>GLbyte</ptype> <name>blue</name></param>
+ <alias name="glSecondaryColor3b"/>
+ <vecequiv name="glSecondaryColor3bvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3bv</name></proto>
+ <param group="ColorB" len="3">const <ptype>GLbyte</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4126"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3bvEXT</name></proto>
+ <param group="ColorB" len="3">const <ptype>GLbyte</ptype> *<name>v</name></param>
+ <alias name="glSecondaryColor3bv"/>
+ <glx type="render" opcode="4126"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3d</name></proto>
+ <param group="ColorD"><ptype>GLdouble</ptype> <name>red</name></param>
+ <param group="ColorD"><ptype>GLdouble</ptype> <name>green</name></param>
+ <param group="ColorD"><ptype>GLdouble</ptype> <name>blue</name></param>
+ <vecequiv name="glSecondaryColor3dv"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3dEXT</name></proto>
+ <param group="ColorD"><ptype>GLdouble</ptype> <name>red</name></param>
+ <param group="ColorD"><ptype>GLdouble</ptype> <name>green</name></param>
+ <param group="ColorD"><ptype>GLdouble</ptype> <name>blue</name></param>
+ <alias name="glSecondaryColor3d"/>
+ <vecequiv name="glSecondaryColor3dvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3dv</name></proto>
+ <param group="ColorD" len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4130"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3dvEXT</name></proto>
+ <param group="ColorD" len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glSecondaryColor3dv"/>
+ <glx type="render" opcode="4130"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3f</name></proto>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>red</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>green</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>blue</name></param>
+ <vecequiv name="glSecondaryColor3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3fEXT</name></proto>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>red</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>green</name></param>
+ <param group="ColorF"><ptype>GLfloat</ptype> <name>blue</name></param>
+ <alias name="glSecondaryColor3f"/>
+ <vecequiv name="glSecondaryColor3fvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3fv</name></proto>
+ <param group="ColorF" len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4129"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3fvEXT</name></proto>
+ <param group="ColorF" len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glSecondaryColor3fv"/>
+ <glx type="render" opcode="4129"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3hNV</name></proto>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>red</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>green</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>blue</name></param>
+ <vecequiv name="glSecondaryColor3hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3hvNV</name></proto>
+ <param group="Half16NV" len="3">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4255"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3i</name></proto>
+ <param group="ColorI"><ptype>GLint</ptype> <name>red</name></param>
+ <param group="ColorI"><ptype>GLint</ptype> <name>green</name></param>
+ <param group="ColorI"><ptype>GLint</ptype> <name>blue</name></param>
+ <vecequiv name="glSecondaryColor3iv"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3iEXT</name></proto>
+ <param group="ColorI"><ptype>GLint</ptype> <name>red</name></param>
+ <param group="ColorI"><ptype>GLint</ptype> <name>green</name></param>
+ <param group="ColorI"><ptype>GLint</ptype> <name>blue</name></param>
+ <alias name="glSecondaryColor3i"/>
+ <vecequiv name="glSecondaryColor3ivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3iv</name></proto>
+ <param group="ColorI" len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4128"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3ivEXT</name></proto>
+ <param group="ColorI" len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glSecondaryColor3iv"/>
+ <glx type="render" opcode="4128"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3s</name></proto>
+ <param group="ColorS"><ptype>GLshort</ptype> <name>red</name></param>
+ <param group="ColorS"><ptype>GLshort</ptype> <name>green</name></param>
+ <param group="ColorS"><ptype>GLshort</ptype> <name>blue</name></param>
+ <vecequiv name="glSecondaryColor3sv"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3sEXT</name></proto>
+ <param group="ColorS"><ptype>GLshort</ptype> <name>red</name></param>
+ <param group="ColorS"><ptype>GLshort</ptype> <name>green</name></param>
+ <param group="ColorS"><ptype>GLshort</ptype> <name>blue</name></param>
+ <alias name="glSecondaryColor3s"/>
+ <vecequiv name="glSecondaryColor3svEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3sv</name></proto>
+ <param group="ColorS" len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4127"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3svEXT</name></proto>
+ <param group="ColorS" len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glSecondaryColor3sv"/>
+ <glx type="render" opcode="4127"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3ub</name></proto>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>red</name></param>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>green</name></param>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>blue</name></param>
+ <vecequiv name="glSecondaryColor3ubv"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3ubEXT</name></proto>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>red</name></param>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>green</name></param>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>blue</name></param>
+ <alias name="glSecondaryColor3ub"/>
+ <vecequiv name="glSecondaryColor3ubvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3ubv</name></proto>
+ <param group="ColorUB" len="3">const <ptype>GLubyte</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4131"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3ubvEXT</name></proto>
+ <param group="ColorUB" len="3">const <ptype>GLubyte</ptype> *<name>v</name></param>
+ <alias name="glSecondaryColor3ubv"/>
+ <glx type="render" opcode="4131"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3ui</name></proto>
+ <param group="ColorUI"><ptype>GLuint</ptype> <name>red</name></param>
+ <param group="ColorUI"><ptype>GLuint</ptype> <name>green</name></param>
+ <param group="ColorUI"><ptype>GLuint</ptype> <name>blue</name></param>
+ <vecequiv name="glSecondaryColor3uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3uiEXT</name></proto>
+ <param group="ColorUI"><ptype>GLuint</ptype> <name>red</name></param>
+ <param group="ColorUI"><ptype>GLuint</ptype> <name>green</name></param>
+ <param group="ColorUI"><ptype>GLuint</ptype> <name>blue</name></param>
+ <alias name="glSecondaryColor3ui"/>
+ <vecequiv name="glSecondaryColor3uivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3uiv</name></proto>
+ <param group="ColorUI" len="3">const <ptype>GLuint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4133"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3uivEXT</name></proto>
+ <param group="ColorUI" len="3">const <ptype>GLuint</ptype> *<name>v</name></param>
+ <alias name="glSecondaryColor3uiv"/>
+ <glx type="render" opcode="4133"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3us</name></proto>
+ <param group="ColorUS"><ptype>GLushort</ptype> <name>red</name></param>
+ <param group="ColorUS"><ptype>GLushort</ptype> <name>green</name></param>
+ <param group="ColorUS"><ptype>GLushort</ptype> <name>blue</name></param>
+ <vecequiv name="glSecondaryColor3usv"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3usEXT</name></proto>
+ <param group="ColorUS"><ptype>GLushort</ptype> <name>red</name></param>
+ <param group="ColorUS"><ptype>GLushort</ptype> <name>green</name></param>
+ <param group="ColorUS"><ptype>GLushort</ptype> <name>blue</name></param>
+ <alias name="glSecondaryColor3us"/>
+ <vecequiv name="glSecondaryColor3usvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3usv</name></proto>
+ <param group="ColorUS" len="3">const <ptype>GLushort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4132"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColor3usvEXT</name></proto>
+ <param group="ColorUS" len="3">const <ptype>GLushort</ptype> *<name>v</name></param>
+ <alias name="glSecondaryColor3usv"/>
+ <glx type="render" opcode="4132"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColorFormatNV</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColorP3ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>color</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColorP3uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>color</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColorPointer</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="ColorPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const <ptype>GLvoid</ptype> *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColorPointerEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="ColorPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const <ptype>GLvoid</ptype> *<name>pointer</name></param>
+ <alias name="glSecondaryColorPointer"/>
+ </command>
+ <command>
+ <proto>void <name>glSecondaryColorPointerListIBM</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="SecondaryColorPointerTypeIBM"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLint</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const <ptype>GLvoid</ptype> **<name>pointer</name></param>
+ <param><ptype>GLint</ptype> <name>ptrstride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSelectBuffer</name></proto>
+ <param><ptype>GLsizei</ptype> <name>size</name></param>
+ <param group="SelectName" len="size"><ptype>GLuint</ptype> *<name>buffer</name></param>
+ <glx type="single" opcode="106"/>
+ </command>
+ <command>
+ <proto>void <name>glSelectPerfMonitorCountersAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>monitor</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>enable</name></param>
+ <param><ptype>GLuint</ptype> <name>group</name></param>
+ <param><ptype>GLint</ptype> <name>numCounters</name></param>
+ <param len="numCounters"><ptype>GLuint</ptype> *<name>counterList</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSeparableFilter2D</name></proto>
+ <param group="SeparableTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,format,type,width)">const <ptype>GLvoid</ptype> *<name>row</name></param>
+ <param len="COMPSIZE(target,format,type,height)">const <ptype>GLvoid</ptype> *<name>column</name></param>
+ <glx type="render" opcode="4109"/>
+ <glx type="render" opcode="327" name="glSeparableFilter2DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glSeparableFilter2DEXT</name></proto>
+ <param group="SeparableTargetEXT"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(target,format,type,width)">const <ptype>GLvoid</ptype> *<name>row</name></param>
+ <param len="COMPSIZE(target,format,type,height)">const <ptype>GLvoid</ptype> *<name>column</name></param>
+ <alias name="glSeparableFilter2D"/>
+ <glx type="render" opcode="4109"/>
+ </command>
+ <command>
+ <proto>void <name>glSetFenceAPPLE</name></proto>
+ <param group="FenceNV"><ptype>GLuint</ptype> <name>fence</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSetFenceNV</name></proto>
+ <param group="FenceNV"><ptype>GLuint</ptype> <name>fence</name></param>
+ <param group="FenceConditionNV"><ptype>GLenum</ptype> <name>condition</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSetFragmentShaderConstantATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>dst</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSetInvariantEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="ScalarType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(id,type)">const <ptype>GLvoid</ptype> *<name>addr</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSetLocalConstantEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="ScalarType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(id,type)">const <ptype>GLvoid</ptype> *<name>addr</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSetMultisamplefvAMD</name></proto>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>val</name></param>
+ </command>
+ <command>
+ <proto>void <name>glShadeModel</name></proto>
+ <param group="ShadingModel"><ptype>GLenum</ptype> <name>mode</name></param>
+ <glx type="render" opcode="104"/>
+ </command>
+ <command>
+ <proto>void <name>glShaderBinary</name></proto>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint</ptype> *<name>shaders</name></param>
+ <param><ptype>GLenum</ptype> <name>binaryformat</name></param>
+ <param len="length">const <ptype>GLvoid</ptype> *<name>binary</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ </command>
+ <command>
+ <proto>void <name>glShaderOp1EXT</name></proto>
+ <param group="VertexShaderOpEXT"><ptype>GLenum</ptype> <name>op</name></param>
+ <param><ptype>GLuint</ptype> <name>res</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1</name></param>
+ </command>
+ <command>
+ <proto>void <name>glShaderOp2EXT</name></proto>
+ <param group="VertexShaderOpEXT"><ptype>GLenum</ptype> <name>op</name></param>
+ <param><ptype>GLuint</ptype> <name>res</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1</name></param>
+ <param><ptype>GLuint</ptype> <name>arg2</name></param>
+ </command>
+ <command>
+ <proto>void <name>glShaderOp3EXT</name></proto>
+ <param group="VertexShaderOpEXT"><ptype>GLenum</ptype> <name>op</name></param>
+ <param><ptype>GLuint</ptype> <name>res</name></param>
+ <param><ptype>GLuint</ptype> <name>arg1</name></param>
+ <param><ptype>GLuint</ptype> <name>arg2</name></param>
+ <param><ptype>GLuint</ptype> <name>arg3</name></param>
+ </command>
+ <command>
+ <proto>void <name>glShaderSource</name></proto>
+ <param><ptype>GLuint</ptype> <name>shader</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLchar</ptype> *const*<name>string</name></param>
+ <param len="1">const <ptype>GLint</ptype> *<name>length</name></param>
+ </command>
+ <command>
+ <proto>void <name>glShaderSourceARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>shaderObj</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLcharARB</ptype> **<name>string</name></param>
+ <param len="1">const <ptype>GLint</ptype> *<name>length</name></param>
+ <alias name="glShaderSource"/>
+ </command>
+ <command>
+ <proto>void <name>glShaderStorageBlockBinding</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>storageBlockIndex</name></param>
+ <param><ptype>GLuint</ptype> <name>storageBlockBinding</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSharpenTexFuncSGIS</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n*2">const <ptype>GLfloat</ptype> *<name>points</name></param>
+ <glx type="render" opcode="2052"/>
+ </command>
+ <command>
+ <proto>void <name>glSpriteParameterfSGIX</name></proto>
+ <param group="SpriteParameterNameSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <glx type="render" opcode="2060"/>
+ </command>
+ <command>
+ <proto>void <name>glSpriteParameterfvSGIX</name></proto>
+ <param group="SpriteParameterNameSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="2061"/>
+ </command>
+ <command>
+ <proto>void <name>glSpriteParameteriSGIX</name></proto>
+ <param group="SpriteParameterNameSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ <glx type="render" opcode="2062"/>
+ </command>
+ <command>
+ <proto>void <name>glSpriteParameterivSGIX</name></proto>
+ <param group="SpriteParameterNameSGIX"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="2063"/>
+ </command>
+ <command>
+ <proto>void <name>glStartInstrumentsSGIX</name></proto>
+ <glx type="render" opcode="2069"/>
+ </command>
+ <command>
+ <proto>void <name>glStartTilingQCOM</name></proto>
+ <param><ptype>GLuint</ptype> <name>x</name></param>
+ <param><ptype>GLuint</ptype> <name>y</name></param>
+ <param><ptype>GLuint</ptype> <name>width</name></param>
+ <param><ptype>GLuint</ptype> <name>height</name></param>
+ <param><ptype>GLbitfield</ptype> <name>preserveMask</name></param>
+ </command>
+ <command>
+ <proto>void <name>glStencilClearTagEXT</name></proto>
+ <param><ptype>GLsizei</ptype> <name>stencilTagBits</name></param>
+ <param><ptype>GLuint</ptype> <name>stencilClearTag</name></param>
+ <glx type="render" opcode="4223"/>
+ </command>
+ <command>
+ <proto>void <name>glStencilFillPathInstancedNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>numPaths</name></param>
+ <param group="PathElementType"><ptype>GLenum</ptype> <name>pathNameType</name></param>
+ <param group="PathElement" len="COMPSIZE(numPaths,pathNameType,paths)">const <ptype>GLvoid</ptype> *<name>paths</name></param>
+ <param group="Path"><ptype>GLuint</ptype> <name>pathBase</name></param>
+ <param group="PathFillMode"><ptype>GLenum</ptype> <name>fillMode</name></param>
+ <param group="MaskedStencilValue"><ptype>GLuint</ptype> <name>mask</name></param>
+ <param group="PathTransformType"><ptype>GLenum</ptype> <name>transformType</name></param>
+ <param len="COMPSIZE(numPaths,transformType)">const <ptype>GLfloat</ptype> *<name>transformValues</name></param>
+ </command>
+ <command>
+ <proto>void <name>glStencilFillPathNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param group="PathFillMode"><ptype>GLenum</ptype> <name>fillMode</name></param>
+ <param group="MaskedStencilValue"><ptype>GLuint</ptype> <name>mask</name></param>
+ </command>
+ <command>
+ <proto>void <name>glStencilFunc</name></proto>
+ <param group="StencilFunction"><ptype>GLenum</ptype> <name>func</name></param>
+ <param group="StencilValue"><ptype>GLint</ptype> <name>ref</name></param>
+ <param group="MaskedStencilValue"><ptype>GLuint</ptype> <name>mask</name></param>
+ <glx type="render" opcode="162"/>
+ </command>
+ <command>
+ <proto>void <name>glStencilFuncSeparate</name></proto>
+ <param group="StencilFaceDirection"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="StencilFunction"><ptype>GLenum</ptype> <name>func</name></param>
+ <param group="StencilValue"><ptype>GLint</ptype> <name>ref</name></param>
+ <param group="MaskedStencilValue"><ptype>GLuint</ptype> <name>mask</name></param>
+ </command>
+ <command>
+ <proto>void <name>glStencilFuncSeparateATI</name></proto>
+ <param group="StencilFunction"><ptype>GLenum</ptype> <name>frontfunc</name></param>
+ <param group="StencilFunction"><ptype>GLenum</ptype> <name>backfunc</name></param>
+ <param group="ClampedStencilValue"><ptype>GLint</ptype> <name>ref</name></param>
+ <param group="MaskedStencilValue"><ptype>GLuint</ptype> <name>mask</name></param>
+ </command>
+ <command>
+ <proto>void <name>glStencilMask</name></proto>
+ <param group="MaskedStencilValue"><ptype>GLuint</ptype> <name>mask</name></param>
+ <glx type="render" opcode="133"/>
+ </command>
+ <command>
+ <proto>void <name>glStencilMaskSeparate</name></proto>
+ <param group="StencilFaceDirection"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaskedStencilValue"><ptype>GLuint</ptype> <name>mask</name></param>
+ </command>
+ <command>
+ <proto>void <name>glStencilOp</name></proto>
+ <param group="StencilOp"><ptype>GLenum</ptype> <name>fail</name></param>
+ <param group="StencilOp"><ptype>GLenum</ptype> <name>zfail</name></param>
+ <param group="StencilOp"><ptype>GLenum</ptype> <name>zpass</name></param>
+ <glx type="render" opcode="163"/>
+ </command>
+ <command>
+ <proto>void <name>glStencilOpSeparate</name></proto>
+ <param group="StencilFaceDirection"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="StencilOp"><ptype>GLenum</ptype> <name>sfail</name></param>
+ <param group="StencilOp"><ptype>GLenum</ptype> <name>dpfail</name></param>
+ <param group="StencilOp"><ptype>GLenum</ptype> <name>dppass</name></param>
+ </command>
+ <command>
+ <proto>void <name>glStencilOpSeparateATI</name></proto>
+ <param group="StencilFaceDirection"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="StencilOp"><ptype>GLenum</ptype> <name>sfail</name></param>
+ <param group="StencilOp"><ptype>GLenum</ptype> <name>dpfail</name></param>
+ <param group="StencilOp"><ptype>GLenum</ptype> <name>dppass</name></param>
+ <alias name="glStencilOpSeparate"/>
+ </command>
+ <command>
+ <proto>void <name>glStencilOpValueAMD</name></proto>
+ <param group="StencilFaceDirection"><ptype>GLenum</ptype> <name>face</name></param>
+ <param><ptype>GLuint</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glStencilStrokePathInstancedNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>numPaths</name></param>
+ <param group="PathElementType"><ptype>GLenum</ptype> <name>pathNameType</name></param>
+ <param group="PathElement" len="COMPSIZE(numPaths,pathNameType,paths)">const <ptype>GLvoid</ptype> *<name>paths</name></param>
+ <param group="Path"><ptype>GLuint</ptype> <name>pathBase</name></param>
+ <param group="StencilValue"><ptype>GLint</ptype> <name>reference</name></param>
+ <param group="MaskedStencilValue"><ptype>GLuint</ptype> <name>mask</name></param>
+ <param group="PathTransformType"><ptype>GLenum</ptype> <name>transformType</name></param>
+ <param len="COMPSIZE(numPaths,transformType)">const <ptype>GLfloat</ptype> *<name>transformValues</name></param>
+ </command>
+ <command>
+ <proto>void <name>glStencilStrokePathNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>path</name></param>
+ <param group="StencilValue"><ptype>GLint</ptype> <name>reference</name></param>
+ <param group="MaskedStencilValue"><ptype>GLuint</ptype> <name>mask</name></param>
+ </command>
+ <command>
+ <proto>void <name>glStopInstrumentsSGIX</name></proto>
+ <param><ptype>GLint</ptype> <name>marker</name></param>
+ <glx type="render" opcode="2070"/>
+ </command>
+ <command>
+ <proto>void <name>glStringMarkerGREMEDY</name></proto>
+ <param><ptype>GLsizei</ptype> <name>len</name></param>
+ <param len="len">const <ptype>GLvoid</ptype> *<name>string</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSwizzleEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>res</name></param>
+ <param><ptype>GLuint</ptype> <name>in</name></param>
+ <param group="VertexShaderCoordOutEXT"><ptype>GLenum</ptype> <name>outX</name></param>
+ <param group="VertexShaderCoordOutEXT"><ptype>GLenum</ptype> <name>outY</name></param>
+ <param group="VertexShaderCoordOutEXT"><ptype>GLenum</ptype> <name>outZ</name></param>
+ <param group="VertexShaderCoordOutEXT"><ptype>GLenum</ptype> <name>outW</name></param>
+ </command>
+ <command>
+ <proto>void <name>glSyncTextureINTEL</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTagSampleBufferSGIX</name></proto>
+ <glx type="render" opcode="2050"/>
+ </command>
+ <command>
+ <proto>void <name>glTangent3bEXT</name></proto>
+ <param><ptype>GLbyte</ptype> <name>tx</name></param>
+ <param><ptype>GLbyte</ptype> <name>ty</name></param>
+ <param><ptype>GLbyte</ptype> <name>tz</name></param>
+ <vecequiv name="glTangent3bvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glTangent3bvEXT</name></proto>
+ <param len="3">const <ptype>GLbyte</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTangent3dEXT</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>tx</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>ty</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>tz</name></param>
+ <vecequiv name="glTangent3dvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glTangent3dvEXT</name></proto>
+ <param group="CoordD" len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTangent3fEXT</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>tx</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>ty</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>tz</name></param>
+ <vecequiv name="glTangent3fvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glTangent3fvEXT</name></proto>
+ <param group="CoordF" len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTangent3iEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>tx</name></param>
+ <param><ptype>GLint</ptype> <name>ty</name></param>
+ <param><ptype>GLint</ptype> <name>tz</name></param>
+ <vecequiv name="glTangent3ivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glTangent3ivEXT</name></proto>
+ <param len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTangent3sEXT</name></proto>
+ <param><ptype>GLshort</ptype> <name>tx</name></param>
+ <param><ptype>GLshort</ptype> <name>ty</name></param>
+ <param><ptype>GLshort</ptype> <name>tz</name></param>
+ <vecequiv name="glTangent3svEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glTangent3svEXT</name></proto>
+ <param len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTangentPointerEXT</name></proto>
+ <param group="TangentPointerTypeEXT"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(type,stride)">const <ptype>GLvoid</ptype> *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTbufferMask3DFX</name></proto>
+ <param><ptype>GLuint</ptype> <name>mask</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTessellationFactorAMD</name></proto>
+ <param><ptype>GLfloat</ptype> <name>factor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTessellationModeAMD</name></proto>
+ <param><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glTestFenceAPPLE</name></proto>
+ <param group="FenceNV"><ptype>GLuint</ptype> <name>fence</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glTestFenceNV</name></proto>
+ <param group="FenceNV"><ptype>GLuint</ptype> <name>fence</name></param>
+ <glx type="vendor" opcode="1279"/>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glTestObjectAPPLE</name></proto>
+ <param group="ObjectTypeAPPLE"><ptype>GLenum</ptype> <name>object</name></param>
+ <param><ptype>GLuint</ptype> <name>name</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexBuffer</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexBufferARB</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <alias name="glTexBuffer"/>
+ </command>
+ <command>
+ <proto>void <name>glTexBufferEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <alias name="glTexBuffer"/>
+ </command>
+ <command>
+ <proto>void <name>glTexBufferRange</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexBumpParameterfvATI</name></proto>
+ <param group="TexBumpParameterATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexBumpParameterivATI</name></proto>
+ <param group="TexBumpParameterATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord1bOES</name></proto>
+ <param><ptype>GLbyte</ptype> <name>s</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord1bvOES</name></proto>
+ <param len="1">const <ptype>GLbyte</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord1d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>s</name></param>
+ <vecequiv name="glTexCoord1dv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord1dv</name></proto>
+ <param group="CoordD" len="1">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="49"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord1f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>s</name></param>
+ <vecequiv name="glTexCoord1fv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord1fv</name></proto>
+ <param group="CoordF" len="1">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="50"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord1hNV</name></proto>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>s</name></param>
+ <vecequiv name="glTexCoord1hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord1hvNV</name></proto>
+ <param group="Half16NV" len="1">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4246"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord1i</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>s</name></param>
+ <vecequiv name="glTexCoord1iv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord1iv</name></proto>
+ <param group="CoordI" len="1">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="51"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord1s</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>s</name></param>
+ <vecequiv name="glTexCoord1sv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord1sv</name></proto>
+ <param group="CoordS" len="1">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="52"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord1xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>s</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord1xvOES</name></proto>
+ <param len="1">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2bOES</name></proto>
+ <param><ptype>GLbyte</ptype> <name>s</name></param>
+ <param><ptype>GLbyte</ptype> <name>t</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2bvOES</name></proto>
+ <param len="2">const <ptype>GLbyte</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>s</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>t</name></param>
+ <vecequiv name="glTexCoord2dv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2dv</name></proto>
+ <param group="CoordD" len="2">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="53"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>s</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>t</name></param>
+ <vecequiv name="glTexCoord2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2fColor3fVertex3fSUN</name></proto>
+ <param><ptype>GLfloat</ptype> <name>s</name></param>
+ <param><ptype>GLfloat</ptype> <name>t</name></param>
+ <param><ptype>GLfloat</ptype> <name>r</name></param>
+ <param><ptype>GLfloat</ptype> <name>g</name></param>
+ <param><ptype>GLfloat</ptype> <name>b</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2fColor3fVertex3fvSUN</name></proto>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>tc</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>c</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2fColor4fNormal3fVertex3fSUN</name></proto>
+ <param><ptype>GLfloat</ptype> <name>s</name></param>
+ <param><ptype>GLfloat</ptype> <name>t</name></param>
+ <param><ptype>GLfloat</ptype> <name>r</name></param>
+ <param><ptype>GLfloat</ptype> <name>g</name></param>
+ <param><ptype>GLfloat</ptype> <name>b</name></param>
+ <param><ptype>GLfloat</ptype> <name>a</name></param>
+ <param><ptype>GLfloat</ptype> <name>nx</name></param>
+ <param><ptype>GLfloat</ptype> <name>ny</name></param>
+ <param><ptype>GLfloat</ptype> <name>nz</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2fColor4fNormal3fVertex3fvSUN</name></proto>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>tc</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>c</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>n</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2fColor4ubVertex3fSUN</name></proto>
+ <param><ptype>GLfloat</ptype> <name>s</name></param>
+ <param><ptype>GLfloat</ptype> <name>t</name></param>
+ <param><ptype>GLubyte</ptype> <name>r</name></param>
+ <param><ptype>GLubyte</ptype> <name>g</name></param>
+ <param><ptype>GLubyte</ptype> <name>b</name></param>
+ <param><ptype>GLubyte</ptype> <name>a</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2fColor4ubVertex3fvSUN</name></proto>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>tc</name></param>
+ <param len="4">const <ptype>GLubyte</ptype> *<name>c</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2fNormal3fVertex3fSUN</name></proto>
+ <param><ptype>GLfloat</ptype> <name>s</name></param>
+ <param><ptype>GLfloat</ptype> <name>t</name></param>
+ <param><ptype>GLfloat</ptype> <name>nx</name></param>
+ <param><ptype>GLfloat</ptype> <name>ny</name></param>
+ <param><ptype>GLfloat</ptype> <name>nz</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2fNormal3fVertex3fvSUN</name></proto>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>tc</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>n</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2fVertex3fSUN</name></proto>
+ <param><ptype>GLfloat</ptype> <name>s</name></param>
+ <param><ptype>GLfloat</ptype> <name>t</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2fVertex3fvSUN</name></proto>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>tc</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2fv</name></proto>
+ <param group="CoordF" len="2">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="54"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2hNV</name></proto>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>s</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>t</name></param>
+ <vecequiv name="glTexCoord2hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2hvNV</name></proto>
+ <param group="Half16NV" len="2">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4247"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2i</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>s</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>t</name></param>
+ <vecequiv name="glTexCoord2iv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2iv</name></proto>
+ <param group="CoordI" len="2">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="55"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2s</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>s</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>t</name></param>
+ <vecequiv name="glTexCoord2sv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2sv</name></proto>
+ <param group="CoordS" len="2">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="56"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>s</name></param>
+ <param><ptype>GLfixed</ptype> <name>t</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord2xvOES</name></proto>
+ <param len="2">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord3bOES</name></proto>
+ <param><ptype>GLbyte</ptype> <name>s</name></param>
+ <param><ptype>GLbyte</ptype> <name>t</name></param>
+ <param><ptype>GLbyte</ptype> <name>r</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord3bvOES</name></proto>
+ <param len="3">const <ptype>GLbyte</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord3d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>s</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>t</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>r</name></param>
+ <vecequiv name="glTexCoord3dv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord3dv</name></proto>
+ <param group="CoordD" len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="57"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord3f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>s</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>t</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>r</name></param>
+ <vecequiv name="glTexCoord3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord3fv</name></proto>
+ <param group="CoordF" len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="58"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord3hNV</name></proto>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>s</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>t</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>r</name></param>
+ <vecequiv name="glTexCoord3hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord3hvNV</name></proto>
+ <param group="Half16NV" len="3">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4248"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord3i</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>s</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>t</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>r</name></param>
+ <vecequiv name="glTexCoord3iv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord3iv</name></proto>
+ <param group="CoordI" len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="59"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord3s</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>s</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>t</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>r</name></param>
+ <vecequiv name="glTexCoord3sv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord3sv</name></proto>
+ <param group="CoordS" len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="60"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord3xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>s</name></param>
+ <param><ptype>GLfixed</ptype> <name>t</name></param>
+ <param><ptype>GLfixed</ptype> <name>r</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord3xvOES</name></proto>
+ <param len="3">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4bOES</name></proto>
+ <param><ptype>GLbyte</ptype> <name>s</name></param>
+ <param><ptype>GLbyte</ptype> <name>t</name></param>
+ <param><ptype>GLbyte</ptype> <name>r</name></param>
+ <param><ptype>GLbyte</ptype> <name>q</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4bvOES</name></proto>
+ <param len="4">const <ptype>GLbyte</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>s</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>t</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>r</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>q</name></param>
+ <vecequiv name="glTexCoord4dv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4dv</name></proto>
+ <param group="CoordD" len="4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="61"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>s</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>t</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>r</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>q</name></param>
+ <vecequiv name="glTexCoord4fv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4fColor4fNormal3fVertex4fSUN</name></proto>
+ <param><ptype>GLfloat</ptype> <name>s</name></param>
+ <param><ptype>GLfloat</ptype> <name>t</name></param>
+ <param><ptype>GLfloat</ptype> <name>p</name></param>
+ <param><ptype>GLfloat</ptype> <name>q</name></param>
+ <param><ptype>GLfloat</ptype> <name>r</name></param>
+ <param><ptype>GLfloat</ptype> <name>g</name></param>
+ <param><ptype>GLfloat</ptype> <name>b</name></param>
+ <param><ptype>GLfloat</ptype> <name>a</name></param>
+ <param><ptype>GLfloat</ptype> <name>nx</name></param>
+ <param><ptype>GLfloat</ptype> <name>ny</name></param>
+ <param><ptype>GLfloat</ptype> <name>nz</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <param><ptype>GLfloat</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4fColor4fNormal3fVertex4fvSUN</name></proto>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>tc</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>c</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>n</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4fVertex4fSUN</name></proto>
+ <param><ptype>GLfloat</ptype> <name>s</name></param>
+ <param><ptype>GLfloat</ptype> <name>t</name></param>
+ <param><ptype>GLfloat</ptype> <name>p</name></param>
+ <param><ptype>GLfloat</ptype> <name>q</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <param><ptype>GLfloat</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4fVertex4fvSUN</name></proto>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>tc</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4fv</name></proto>
+ <param group="CoordF" len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="62"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4hNV</name></proto>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>s</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>t</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>r</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>q</name></param>
+ <vecequiv name="glTexCoord4hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4hvNV</name></proto>
+ <param group="Half16NV" len="4">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4249"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4i</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>s</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>t</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>r</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>q</name></param>
+ <vecequiv name="glTexCoord4iv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4iv</name></proto>
+ <param group="CoordI" len="4">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="63"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4s</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>s</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>t</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>r</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>q</name></param>
+ <vecequiv name="glTexCoord4sv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4sv</name></proto>
+ <param group="CoordS" len="4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="64"/>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>s</name></param>
+ <param><ptype>GLfixed</ptype> <name>t</name></param>
+ <param><ptype>GLfixed</ptype> <name>r</name></param>
+ <param><ptype>GLfixed</ptype> <name>q</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoord4xvOES</name></proto>
+ <param len="4">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoordFormatNV</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoordP1ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoordP1uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoordP2ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoordP2uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoordP3ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoordP3uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoordP4ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoordP4uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoordPointer</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="TexCoordPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const <ptype>GLvoid</ptype> *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoordPointerEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="TexCoordPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(size,type,stride,count)">const <ptype>GLvoid</ptype> *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoordPointerListIBM</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="TexCoordPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLint</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const <ptype>GLvoid</ptype> **<name>pointer</name></param>
+ <param><ptype>GLint</ptype> <name>ptrstride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexCoordPointervINTEL</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="4">const <ptype>GLvoid</ptype> **<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexEnvf</name></proto>
+ <param group="TextureEnvTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureEnvParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <glx type="render" opcode="111"/>
+ </command>
+ <command>
+ <proto>void <name>glTexEnvfv</name></proto>
+ <param group="TextureEnvTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureEnvParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="112"/>
+ </command>
+ <command>
+ <proto>void <name>glTexEnvi</name></proto>
+ <param group="TextureEnvTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureEnvParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ <glx type="render" opcode="113"/>
+ </command>
+ <command>
+ <proto>void <name>glTexEnviv</name></proto>
+ <param group="TextureEnvTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureEnvParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="114"/>
+ </command>
+ <command>
+ <proto>void <name>glTexEnvx</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexEnvxOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexEnvxv</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param>const <ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexEnvxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexFilterFuncSGIS</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureFilterSGIS"><ptype>GLenum</ptype> <name>filter</name></param>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param len="n">const <ptype>GLfloat</ptype> *<name>weights</name></param>
+ <glx type="render" opcode="2064"/>
+ </command>
+ <command>
+ <proto>void <name>glTexGend</name></proto>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLdouble</ptype> <name>param</name></param>
+ <glx type="render" opcode="115"/>
+ </command>
+ <command>
+ <proto>void <name>glTexGendv</name></proto>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLdouble</ptype> *<name>params</name></param>
+ <glx type="render" opcode="116"/>
+ </command>
+ <command>
+ <proto>void <name>glTexGenf</name></proto>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <glx type="render" opcode="117"/>
+ </command>
+ <command>
+ <proto>void <name>glTexGenfOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>coord</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfloat</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexGenfv</name></proto>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="118"/>
+ </command>
+ <command>
+ <proto>void <name>glTexGenfvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>coord</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param>const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexGeni</name></proto>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ <glx type="render" opcode="119"/>
+ </command>
+ <command>
+ <proto>void <name>glTexGeniOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>coord</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexGeniv</name></proto>
+ <param group="TextureCoordName"><ptype>GLenum</ptype> <name>coord</name></param>
+ <param group="TextureGenParameter"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="120"/>
+ </command>
+ <command>
+ <proto>void <name>glTexGenivOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>coord</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param>const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexGenxOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>coord</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexGenxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>coord</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexImage1D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureComponentCount"><ptype>GLint</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width)">const <ptype>GLvoid</ptype> *<name>pixels</name></param>
+ <glx type="render" opcode="109"/>
+ <glx type="render" opcode="328" name="glTexImage1DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glTexImage2D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureComponentCount"><ptype>GLint</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height)">const <ptype>GLvoid</ptype> *<name>pixels</name></param>
+ <glx type="render" opcode="110"/>
+ <glx type="render" opcode="329" name="glTexImage2DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glTexImage2DMultisample</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param><ptype>GLint</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>fixedsamplelocations</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexImage2DMultisampleCoverageNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>coverageSamples</name></param>
+ <param><ptype>GLsizei</ptype> <name>colorSamples</name></param>
+ <param><ptype>GLint</ptype> <name>internalFormat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>fixedSampleLocations</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexImage3D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureComponentCount"><ptype>GLint</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height,depth)">const <ptype>GLvoid</ptype> *<name>pixels</name></param>
+ <glx type="render" opcode="4114"/>
+ <glx type="render" opcode="330" name="glTexImage3DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glTexImage3DEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height,depth)">const <ptype>GLvoid</ptype> *<name>pixels</name></param>
+ <alias name="glTexImage3D"/>
+ <glx type="render" opcode="4114"/>
+ </command>
+ <command>
+ <proto>void <name>glTexImage3DMultisample</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param><ptype>GLint</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>fixedsamplelocations</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexImage3DMultisampleCoverageNV</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>coverageSamples</name></param>
+ <param><ptype>GLsizei</ptype> <name>colorSamples</name></param>
+ <param><ptype>GLint</ptype> <name>internalFormat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>fixedSampleLocations</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexImage3DOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param><ptype>GLint</ptype> <name>border</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param>const <ptype>GLvoid</ptype> *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexImage4DSGIS</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="PixelInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param><ptype>GLsizei</ptype> <name>size4d</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height,depth,size4d)">const <ptype>GLvoid</ptype> *<name>pixels</name></param>
+ <glx type="render" opcode="2057"/>
+ </command>
+ <command>
+ <proto>void <name>glTexParameterIiv</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="346"/>
+ </command>
+ <command>
+ <proto>void <name>glTexParameterIivEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <alias name="glTexParameterIiv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexParameterIuiv</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLuint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="347"/>
+ </command>
+ <command>
+ <proto>void <name>glTexParameterIuivEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLuint</ptype> *<name>params</name></param>
+ <alias name="glTexParameterIuiv"/>
+ </command>
+ <command>
+ <proto>void <name>glTexParameterf</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <glx type="render" opcode="105"/>
+ </command>
+ <command>
+ <proto>void <name>glTexParameterfv</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ <glx type="render" opcode="106"/>
+ </command>
+ <command>
+ <proto>void <name>glTexParameteri</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ <glx type="render" opcode="107"/>
+ </command>
+ <command>
+ <proto>void <name>glTexParameteriv</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ <glx type="render" opcode="108"/>
+ </command>
+ <command>
+ <proto>void <name>glTexParameterx</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexParameterxOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfixed</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexParameterxv</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param>const <ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexParameterxvOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfixed</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexRenderbufferNV</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexStorage1D</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>levels</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexStorage1DEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>levels</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexStorage2D</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>levels</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexStorage2DEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>levels</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexStorage2DMultisample</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>fixedsamplelocations</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexStorage3D</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>levels</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexStorage3DEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>levels</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexStorage3DMultisample</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>fixedsamplelocations</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexStorageSparseAMD</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>internalFormat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param><ptype>GLsizei</ptype> <name>layers</name></param>
+ <param><ptype>GLbitfield</ptype> <name>flags</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexSubImage1D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width)">const <ptype>GLvoid</ptype> *<name>pixels</name></param>
+ <glx type="render" opcode="4099"/>
+ <glx type="render" opcode="331" name="glTexSubImage1DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glTexSubImage1DEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width)">const <ptype>GLvoid</ptype> *<name>pixels</name></param>
+ <alias name="glTexSubImage1D"/>
+ <glx type="render" opcode="4099"/>
+ </command>
+ <command>
+ <proto>void <name>glTexSubImage2D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height)">const <ptype>GLvoid</ptype> *<name>pixels</name></param>
+ <glx type="render" opcode="4100"/>
+ <glx type="render" opcode="332" name="glTexSubImage2DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glTexSubImage2DEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height)">const <ptype>GLvoid</ptype> *<name>pixels</name></param>
+ <alias name="glTexSubImage2D"/>
+ <glx type="render" opcode="4100"/>
+ </command>
+ <command>
+ <proto>void <name>glTexSubImage3D</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height,depth)">const <ptype>GLvoid</ptype> *<name>pixels</name></param>
+ <glx type="render" opcode="4115"/>
+ <glx type="render" opcode="333" name="glTexSubImage3DPBO" comment="PBO protocol"/>
+ </command>
+ <command>
+ <proto>void <name>glTexSubImage3DEXT</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height,depth)">const <ptype>GLvoid</ptype> *<name>pixels</name></param>
+ <alias name="glTexSubImage3D"/>
+ <glx type="render" opcode="4115"/>
+ </command>
+ <command>
+ <proto>void <name>glTexSubImage3DOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ <param><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param><ptype>GLenum</ptype> <name>format</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param>const <ptype>GLvoid</ptype> *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTexSubImage4DSGIS</name></proto>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>woffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param><ptype>GLsizei</ptype> <name>size4d</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height,depth,size4d)">const <ptype>GLvoid</ptype> *<name>pixels</name></param>
+ <glx type="render" opcode="2058"/>
+ </command>
+ <command>
+ <proto>void <name>glTextureBarrierNV</name></proto>
+ <glx type="render" opcode="4348"/>
+ </command>
+ <command>
+ <proto>void <name>glTextureBufferEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureBufferRangeEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param group="BufferSize"><ptype>GLsizeiptr</ptype> <name>size</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureColorMaskSGIS</name></proto>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>red</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>green</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>blue</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>alpha</name></param>
+ <glx type="render" opcode="2082"/>
+ </command>
+ <command>
+ <proto>void <name>glTextureImage1DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureComponentCount"><ptype>GLint</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width)">const <ptype>GLvoid</ptype> *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureImage2DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureComponentCount"><ptype>GLint</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height)">const <ptype>GLvoid</ptype> *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureImage2DMultisampleCoverageNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>coverageSamples</name></param>
+ <param><ptype>GLsizei</ptype> <name>colorSamples</name></param>
+ <param><ptype>GLint</ptype> <name>internalFormat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>fixedSampleLocations</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureImage2DMultisampleNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param><ptype>GLint</ptype> <name>internalFormat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>fixedSampleLocations</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureImage3DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="TextureComponentCount"><ptype>GLint</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>border</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height,depth)">const <ptype>GLvoid</ptype> *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureImage3DMultisampleCoverageNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>coverageSamples</name></param>
+ <param><ptype>GLsizei</ptype> <name>colorSamples</name></param>
+ <param><ptype>GLint</ptype> <name>internalFormat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>fixedSampleLocations</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureImage3DMultisampleNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param><ptype>GLint</ptype> <name>internalFormat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>fixedSampleLocations</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureLightEXT</name></proto>
+ <param group="LightTexturePNameEXT"><ptype>GLenum</ptype> <name>pname</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureMaterialEXT</name></proto>
+ <param group="MaterialFace"><ptype>GLenum</ptype> <name>face</name></param>
+ <param group="MaterialParameter"><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureNormalEXT</name></proto>
+ <param group="TextureNormalModeEXT"><ptype>GLenum</ptype> <name>mode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureParameterIivEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureParameterIuivEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLuint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureParameterfEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32"><ptype>GLfloat</ptype> <name>param</name></param>
+ <vecequiv name="glTextureParameterfvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glTextureParameterfvEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedFloat32" len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureParameteriEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>param</name></param>
+ <vecequiv name="glTextureParameterivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glTextureParameterivEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="TextureParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param group="CheckedInt32" len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureRangeAPPLE</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param len="length">const <ptype>GLvoid</ptype> *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureRenderbufferEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>renderbuffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureStorage1DEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>levels</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureStorage2DEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>levels</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureStorage2DMultisampleEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param group="TextureInternalFormat"><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>fixedsamplelocations</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureStorage3DEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>levels</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureStorage3DMultisampleEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>samples</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>fixedsamplelocations</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureStorageSparseAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLenum</ptype> <name>internalFormat</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param><ptype>GLsizei</ptype> <name>layers</name></param>
+ <param><ptype>GLbitfield</ptype> <name>flags</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureSubImage1DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width)">const <ptype>GLvoid</ptype> *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureSubImage2DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height)">const <ptype>GLvoid</ptype> *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureSubImage3DEXT</name></proto>
+ <param group="Texture"><ptype>GLuint</ptype> <name>texture</name></param>
+ <param group="TextureTarget"><ptype>GLenum</ptype> <name>target</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>level</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>xoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>yoffset</name></param>
+ <param group="CheckedInt32"><ptype>GLint</ptype> <name>zoffset</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ <param group="PixelFormat"><ptype>GLenum</ptype> <name>format</name></param>
+ <param group="PixelType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="COMPSIZE(format,type,width,height,depth)">const <ptype>GLvoid</ptype> *<name>pixels</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTextureView</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>origtexture</name></param>
+ <param><ptype>GLenum</ptype> <name>internalformat</name></param>
+ <param><ptype>GLuint</ptype> <name>minlevel</name></param>
+ <param><ptype>GLuint</ptype> <name>numlevels</name></param>
+ <param><ptype>GLuint</ptype> <name>minlayer</name></param>
+ <param><ptype>GLuint</ptype> <name>numlayers</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTrackMatrixNV</name></proto>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLuint</ptype> <name>address</name></param>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>matrix</name></param>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>transform</name></param>
+ <glx type="render" opcode="4188"/>
+ </command>
+ <command>
+ <proto>void <name>glTransformFeedbackAttribsNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>count</name></param>
+ <param len="COMPSIZE(count)">const <ptype>GLint</ptype> *<name>attribs</name></param>
+ <param><ptype>GLenum</ptype> <name>bufferMode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTransformFeedbackStreamAttribsNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLint</ptype> *<name>attribs</name></param>
+ <param><ptype>GLsizei</ptype> <name>nbuffers</name></param>
+ <param len="nbuffers">const <ptype>GLint</ptype> *<name>bufstreams</name></param>
+ <param><ptype>GLenum</ptype> <name>bufferMode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTransformFeedbackVaryings</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLchar</ptype> *const*<name>varyings</name></param>
+ <param><ptype>GLenum</ptype> <name>bufferMode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTransformFeedbackVaryingsEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLchar</ptype> *const*<name>varyings</name></param>
+ <param><ptype>GLenum</ptype> <name>bufferMode</name></param>
+ <alias name="glTransformFeedbackVaryings"/>
+ </command>
+ <command>
+ <proto>void <name>glTransformFeedbackVaryingsNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLint</ptype> *<name>locations</name></param>
+ <param><ptype>GLenum</ptype> <name>bufferMode</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTransformPathNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>resultPath</name></param>
+ <param group="Path"><ptype>GLuint</ptype> <name>srcPath</name></param>
+ <param group="PathTransformType"><ptype>GLenum</ptype> <name>transformType</name></param>
+ <param len="COMPSIZE(transformType)">const <ptype>GLfloat</ptype> *<name>transformValues</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTranslated</name></proto>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <glx type="render" opcode="189"/>
+ </command>
+ <command>
+ <proto>void <name>glTranslatef</name></proto>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <glx type="render" opcode="190"/>
+ </command>
+ <command>
+ <proto>void <name>glTranslatex</name></proto>
+ <param><ptype>GLfixed</ptype> <name>x</name></param>
+ <param><ptype>GLfixed</ptype> <name>y</name></param>
+ <param><ptype>GLfixed</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glTranslatexOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>x</name></param>
+ <param><ptype>GLfixed</ptype> <name>y</name></param>
+ <param><ptype>GLfixed</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform1d</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform1dv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform1f</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform1fARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ <alias name="glUniform1f"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform1fv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform1fvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glUniform1fv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform1i</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform1i64NV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform1i64vNV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform1iARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ <alias name="glUniform1i"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform1iv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform1ivARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLint</ptype> *<name>value</name></param>
+ <alias name="glUniform1iv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform1ui</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform1ui64NV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform1ui64vNV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform1uiEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ <alias name="glUniform1ui"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform1uiv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform1uivEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint</ptype> *<name>value</name></param>
+ <alias name="glUniform1uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform2d</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform2dv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform2f</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ <param><ptype>GLfloat</ptype> <name>v1</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform2fARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ <param><ptype>GLfloat</ptype> <name>v1</name></param>
+ <alias name="glUniform2f"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform2fv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform2fvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glUniform2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform2i</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ <param><ptype>GLint</ptype> <name>v1</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform2i64NV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform2i64vNV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(count*2)">const <ptype>GLint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform2iARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ <param><ptype>GLint</ptype> <name>v1</name></param>
+ <alias name="glUniform2i"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform2iv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform2ivARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLint</ptype> *<name>value</name></param>
+ <alias name="glUniform2iv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform2ui</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ <param><ptype>GLuint</ptype> <name>v1</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform2ui64NV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform2ui64vNV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(count*2)">const <ptype>GLuint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform2uiEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ <param><ptype>GLuint</ptype> <name>v1</name></param>
+ <alias name="glUniform2ui"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform2uiv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*2">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform2uivEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*2">const <ptype>GLuint</ptype> *<name>value</name></param>
+ <alias name="glUniform2uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform3d</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform3dv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform3f</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ <param><ptype>GLfloat</ptype> <name>v1</name></param>
+ <param><ptype>GLfloat</ptype> <name>v2</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform3fARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ <param><ptype>GLfloat</ptype> <name>v1</name></param>
+ <param><ptype>GLfloat</ptype> <name>v2</name></param>
+ <alias name="glUniform3f"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform3fv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform3fvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glUniform3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform3i</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ <param><ptype>GLint</ptype> <name>v1</name></param>
+ <param><ptype>GLint</ptype> <name>v2</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform3i64NV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>y</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform3i64vNV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(count*3)">const <ptype>GLint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform3iARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ <param><ptype>GLint</ptype> <name>v1</name></param>
+ <param><ptype>GLint</ptype> <name>v2</name></param>
+ <alias name="glUniform3i"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform3iv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform3ivARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLint</ptype> *<name>value</name></param>
+ <alias name="glUniform3iv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform3ui</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ <param><ptype>GLuint</ptype> <name>v1</name></param>
+ <param><ptype>GLuint</ptype> <name>v2</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform3ui64NV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>y</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform3ui64vNV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(count*3)">const <ptype>GLuint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform3uiEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ <param><ptype>GLuint</ptype> <name>v1</name></param>
+ <param><ptype>GLuint</ptype> <name>v2</name></param>
+ <alias name="glUniform3ui"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform3uiv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*3">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform3uivEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*3">const <ptype>GLuint</ptype> *<name>value</name></param>
+ <alias name="glUniform3uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform4d</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <param><ptype>GLdouble</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform4dv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform4f</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ <param><ptype>GLfloat</ptype> <name>v1</name></param>
+ <param><ptype>GLfloat</ptype> <name>v2</name></param>
+ <param><ptype>GLfloat</ptype> <name>v3</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform4fARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLfloat</ptype> <name>v0</name></param>
+ <param><ptype>GLfloat</ptype> <name>v1</name></param>
+ <param><ptype>GLfloat</ptype> <name>v2</name></param>
+ <param><ptype>GLfloat</ptype> <name>v3</name></param>
+ <alias name="glUniform4f"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform4fv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform4fvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glUniform4fv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform4i</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ <param><ptype>GLint</ptype> <name>v1</name></param>
+ <param><ptype>GLint</ptype> <name>v2</name></param>
+ <param><ptype>GLint</ptype> <name>v3</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform4i64NV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>y</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>z</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform4i64vNV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(count*4)">const <ptype>GLint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform4iARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLint</ptype> <name>v0</name></param>
+ <param><ptype>GLint</ptype> <name>v1</name></param>
+ <param><ptype>GLint</ptype> <name>v2</name></param>
+ <param><ptype>GLint</ptype> <name>v3</name></param>
+ <alias name="glUniform4i"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform4iv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform4ivARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLint</ptype> *<name>value</name></param>
+ <alias name="glUniform4iv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform4ui</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ <param><ptype>GLuint</ptype> <name>v1</name></param>
+ <param><ptype>GLuint</ptype> <name>v2</name></param>
+ <param><ptype>GLuint</ptype> <name>v3</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform4ui64NV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>y</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>z</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform4ui64vNV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(count*4)">const <ptype>GLuint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform4uiEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>v0</name></param>
+ <param><ptype>GLuint</ptype> <name>v1</name></param>
+ <param><ptype>GLuint</ptype> <name>v2</name></param>
+ <param><ptype>GLuint</ptype> <name>v3</name></param>
+ <alias name="glUniform4ui"/>
+ </command>
+ <command>
+ <proto>void <name>glUniform4uiv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniform4uivEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLuint</ptype> *<name>value</name></param>
+ <alias name="glUniform4uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniformBlockBinding</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLuint</ptype> <name>uniformBlockIndex</name></param>
+ <param><ptype>GLuint</ptype> <name>uniformBlockBinding</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformBufferEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformHandleui64NV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint64</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformHandleui64vNV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint64</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix2dv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix2fv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix2fvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glUniformMatrix2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix2x3dv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix2x3fv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="6">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <glx type="render" opcode="305"/>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix2x4dv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix2x4fv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="8">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <glx type="render" opcode="307"/>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix3dv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix3fv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix3fvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glUniformMatrix3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix3x2dv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix3x2fv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="6">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <glx type="render" opcode="306"/>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix3x4dv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix3x4fv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="12">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <glx type="render" opcode="309"/>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix4dv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix4fv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix4fvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <alias name="glUniformMatrix4fv"/>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix4x2dv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix4x2fv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="8">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <glx type="render" opcode="308"/>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix4x3dv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformMatrix4x3fv</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>transpose</name></param>
+ <param len="12">const <ptype>GLfloat</ptype> *<name>value</name></param>
+ <glx type="render" opcode="310"/>
+ </command>
+ <command>
+ <proto>void <name>glUniformSubroutinesuiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>shadertype</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint</ptype> *<name>indices</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformui64NV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUniformui64vNV</name></proto>
+ <param><ptype>GLint</ptype> <name>location</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLuint64EXT</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUnlockArraysEXT</name></proto>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glUnmapBuffer</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glUnmapBufferARB</name></proto>
+ <param group="BufferTargetARB"><ptype>GLenum</ptype> <name>target</name></param>
+ <alias name="glUnmapBuffer"/>
+ </command>
+ <command>
+ <proto><ptype>GLboolean</ptype> <name>glUnmapBufferOES</name></proto>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ </command>
+ <command>
+ <proto group="Boolean"><ptype>GLboolean</ptype> <name>glUnmapNamedBufferEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUnmapObjectBufferATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUnmapTexture2DINTEL</name></proto>
+ <param><ptype>GLuint</ptype> <name>texture</name></param>
+ <param><ptype>GLint</ptype> <name>level</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUpdateObjectBufferATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLuint</ptype> <name>offset</name></param>
+ <param><ptype>GLsizei</ptype> <name>size</name></param>
+ <param len="size">const <ptype>GLvoid</ptype> *<name>pointer</name></param>
+ <param group="PreserveModeATI"><ptype>GLenum</ptype> <name>preserve</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUseProgram</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUseProgramObjectARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>programObj</name></param>
+ <alias name="glUseProgram"/>
+ </command>
+ <command>
+ <proto>void <name>glUseProgramStages</name></proto>
+ <param><ptype>GLuint</ptype> <name>pipeline</name></param>
+ <param><ptype>GLbitfield</ptype> <name>stages</name></param>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUseProgramStagesEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>pipeline</name></param>
+ <param><ptype>GLbitfield</ptype> <name>stages</name></param>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ </command>
+ <command>
+ <proto>void <name>glUseShaderProgramEXT</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVDPAUFiniNV</name></proto>
+ </command>
+ <command>
+ <proto>void <name>glVDPAUGetSurfaceivNV</name></proto>
+ <param group="vdpauSurfaceNV"><ptype>GLvdpauSurfaceNV</ptype> <name>surface</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLsizei</ptype> <name>bufSize</name></param>
+ <param><ptype>GLsizei</ptype> *<name>length</name></param>
+ <param len="length"><ptype>GLint</ptype> *<name>values</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVDPAUInitNV</name></proto>
+ <param>const <ptype>GLvoid</ptype> *<name>vdpDevice</name></param>
+ <param>const <ptype>GLvoid</ptype> *<name>getProcAddress</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVDPAUIsSurfaceNV</name></proto>
+ <param group="vdpauSurfaceNV"><ptype>GLvdpauSurfaceNV</ptype> <name>surface</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVDPAUMapSurfacesNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>numSurfaces</name></param>
+ <param group="vdpauSurfaceNV" len="numSurfaces">const <ptype>GLvdpauSurfaceNV</ptype> *<name>surfaces</name></param>
+ </command>
+ <command>
+ <proto group="vdpauSurfaceNV"><ptype>GLvdpauSurfaceNV</ptype> <name>glVDPAURegisterOutputSurfaceNV</name></proto>
+ <param>const <ptype>GLvoid</ptype> *<name>vdpSurface</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>numTextureNames</name></param>
+ <param len="numTextureNames">const <ptype>GLuint</ptype> *<name>textureNames</name></param>
+ </command>
+ <command>
+ <proto group="vdpauSurfaceNV"><ptype>GLvdpauSurfaceNV</ptype> <name>glVDPAURegisterVideoSurfaceNV</name></proto>
+ <param>const <ptype>GLvoid</ptype> *<name>vdpSurface</name></param>
+ <param><ptype>GLenum</ptype> <name>target</name></param>
+ <param><ptype>GLsizei</ptype> <name>numTextureNames</name></param>
+ <param len="numTextureNames">const <ptype>GLuint</ptype> *<name>textureNames</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVDPAUSurfaceAccessNV</name></proto>
+ <param group="vdpauSurfaceNV"><ptype>GLvdpauSurfaceNV</ptype> <name>surface</name></param>
+ <param><ptype>GLenum</ptype> <name>access</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVDPAUUnmapSurfacesNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>numSurface</name></param>
+ <param group="vdpauSurfaceNV" len="numSurface">const <ptype>GLvdpauSurfaceNV</ptype> *<name>surfaces</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVDPAUUnregisterSurfaceNV</name></proto>
+ <param group="vdpauSurfaceNV"><ptype>GLvdpauSurfaceNV</ptype> <name>surface</name></param>
+ </command>
+ <command>
+ <proto>void <name>glValidateProgram</name></proto>
+ <param><ptype>GLuint</ptype> <name>program</name></param>
+ </command>
+ <command>
+ <proto>void <name>glValidateProgramARB</name></proto>
+ <param group="handleARB"><ptype>GLhandleARB</ptype> <name>programObj</name></param>
+ <alias name="glValidateProgram"/>
+ </command>
+ <command>
+ <proto>void <name>glValidateProgramPipeline</name></proto>
+ <param><ptype>GLuint</ptype> <name>pipeline</name></param>
+ </command>
+ <command>
+ <proto>void <name>glValidateProgramPipelineEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>pipeline</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVariantArrayObjectATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="ScalarType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLuint</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVariantPointerEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param group="ScalarType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(id,type,stride)">const <ptype>GLvoid</ptype> *<name>addr</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVariantbvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param len="COMPSIZE(id)">const <ptype>GLbyte</ptype> *<name>addr</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVariantdvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param len="COMPSIZE(id)">const <ptype>GLdouble</ptype> *<name>addr</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVariantfvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param len="COMPSIZE(id)">const <ptype>GLfloat</ptype> *<name>addr</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVariantivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param len="COMPSIZE(id)">const <ptype>GLint</ptype> *<name>addr</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVariantsvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param len="COMPSIZE(id)">const <ptype>GLshort</ptype> *<name>addr</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVariantubvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param len="COMPSIZE(id)">const <ptype>GLubyte</ptype> *<name>addr</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVariantuivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param len="COMPSIZE(id)">const <ptype>GLuint</ptype> *<name>addr</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVariantusvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>id</name></param>
+ <param len="COMPSIZE(id)">const <ptype>GLushort</ptype> *<name>addr</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertex2bOES</name></proto>
+ <param><ptype>GLbyte</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertex2bvOES</name></proto>
+ <param len="2">const <ptype>GLbyte</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertex2d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y</name></param>
+ <vecequiv name="glVertex2dv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex2dv</name></proto>
+ <param group="CoordD" len="2">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="65"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex2f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y</name></param>
+ <vecequiv name="glVertex2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex2fv</name></proto>
+ <param group="CoordF" len="2">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="66"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex2hNV</name></proto>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>x</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>y</name></param>
+ <vecequiv name="glVertex2hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex2hvNV</name></proto>
+ <param group="Half16NV" len="2">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4240"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex2i</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y</name></param>
+ <vecequiv name="glVertex2iv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex2iv</name></proto>
+ <param group="CoordI" len="2">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="67"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex2s</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y</name></param>
+ <vecequiv name="glVertex2sv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex2sv</name></proto>
+ <param group="CoordS" len="2">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="68"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex2xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertex2xvOES</name></proto>
+ <param len="2">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertex3bOES</name></proto>
+ <param><ptype>GLbyte</ptype> <name>x</name></param>
+ <param><ptype>GLbyte</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertex3bvOES</name></proto>
+ <param len="3">const <ptype>GLbyte</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertex3d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>z</name></param>
+ <vecequiv name="glVertex3dv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex3dv</name></proto>
+ <param group="CoordD" len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="69"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex3f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>z</name></param>
+ <vecequiv name="glVertex3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex3fv</name></proto>
+ <param group="CoordF" len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="70"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex3hNV</name></proto>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>x</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>y</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>z</name></param>
+ <vecequiv name="glVertex3hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex3hvNV</name></proto>
+ <param group="Half16NV" len="3">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4241"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex3i</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>z</name></param>
+ <vecequiv name="glVertex3iv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex3iv</name></proto>
+ <param group="CoordI" len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="71"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex3s</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>z</name></param>
+ <vecequiv name="glVertex3sv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex3sv</name></proto>
+ <param group="CoordS" len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="72"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex3xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>x</name></param>
+ <param><ptype>GLfixed</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertex3xvOES</name></proto>
+ <param len="3">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertex4bOES</name></proto>
+ <param><ptype>GLbyte</ptype> <name>x</name></param>
+ <param><ptype>GLbyte</ptype> <name>y</name></param>
+ <param><ptype>GLbyte</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertex4bvOES</name></proto>
+ <param len="4">const <ptype>GLbyte</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertex4d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>z</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>w</name></param>
+ <vecequiv name="glVertex4dv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex4dv</name></proto>
+ <param group="CoordD" len="4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="73"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex4f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>z</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>w</name></param>
+ <vecequiv name="glVertex4fv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex4fv</name></proto>
+ <param group="CoordF" len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="74"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex4hNV</name></proto>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>x</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>y</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>z</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>w</name></param>
+ <vecequiv name="glVertex4hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex4hvNV</name></proto>
+ <param group="Half16NV" len="4">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4242"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex4i</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>z</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>w</name></param>
+ <vecequiv name="glVertex4iv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex4iv</name></proto>
+ <param group="CoordI" len="4">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="75"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex4s</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>z</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>w</name></param>
+ <vecequiv name="glVertex4sv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex4sv</name></proto>
+ <param group="CoordS" len="4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="76"/>
+ </command>
+ <command>
+ <proto>void <name>glVertex4xOES</name></proto>
+ <param><ptype>GLfixed</ptype> <name>x</name></param>
+ <param><ptype>GLfixed</ptype> <name>y</name></param>
+ <param><ptype>GLfixed</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertex4xvOES</name></proto>
+ <param len="4">const <ptype>GLfixed</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayBindVertexBufferEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>bindingindex</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayColorOffsetEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="ColorPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayEdgeFlagOffsetEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayFogCoordOffsetEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="FogCoordinatePointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayIndexOffsetEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="IndexPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayMultiTexCoordOffsetEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLenum</ptype> <name>texunit</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="TexCoordPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayNormalOffsetEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param group="NormalPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayParameteriAPPLE</name></proto>
+ <param group="VertexArrayPNameAPPLE"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayRangeAPPLE</name></proto>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param len="length"><ptype>GLvoid</ptype> *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayRangeNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>length</name></param>
+ <param len="COMPSIZE(length)">const <ptype>GLvoid</ptype> *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArraySecondaryColorOffsetEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="ColorPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayTexCoordOffsetEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="TexCoordPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayVertexAttribBindingEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>attribindex</name></param>
+ <param><ptype>GLuint</ptype> <name>bindingindex</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayVertexAttribFormatEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>attribindex</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param><ptype>GLuint</ptype> <name>relativeoffset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayVertexAttribIFormatEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>attribindex</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>relativeoffset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayVertexAttribIOffsetEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexAttribEnum"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayVertexAttribLFormatEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>attribindex</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>relativeoffset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayVertexAttribLOffsetEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param group="BufferOffset"><ptype>GLintptr</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayVertexAttribOffsetEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexAttribPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayVertexBindingDivisorEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>bindingindex</name></param>
+ <param><ptype>GLuint</ptype> <name>divisor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexArrayVertexOffsetEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>vaobj</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLintptr</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1d</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <vecequiv name="glVertexAttrib1dv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1dARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <alias name="glVertexAttrib1d"/>
+ <vecequiv name="glVertexAttrib1dvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1dNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <alias name="glVertexAttrib1d"/>
+ <vecequiv name="glVertexAttrib1dvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4197"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1dvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib1dv"/>
+ <glx type="render" opcode="4197"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1dvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib1dv"/>
+ <glx type="render" opcode="4197"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1f</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <vecequiv name="glVertexAttrib1fv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1fARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <alias name="glVertexAttrib1f"/>
+ <vecequiv name="glVertexAttrib1fvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1fNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <alias name="glVertexAttrib1f"/>
+ <vecequiv name="glVertexAttrib1fvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4193"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1fvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib1fv"/>
+ <glx type="render" opcode="4193"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1fvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib1fv"/>
+ <glx type="render" opcode="4193"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1hNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>x</name></param>
+ <vecequiv name="glVertexAttrib1hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1hvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="Half16NV" len="1">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4257"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1s</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <vecequiv name="glVertexAttrib1sv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1sARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <alias name="glVertexAttrib1s"/>
+ <vecequiv name="glVertexAttrib1svARB"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1sNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <alias name="glVertexAttrib1s"/>
+ <vecequiv name="glVertexAttrib1svNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1sv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4189"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1svARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib1sv"/>
+ <glx type="render" opcode="4189"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib1svNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib1sv"/>
+ <glx type="render" opcode="4189"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2d</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <vecequiv name="glVertexAttrib2dv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2dARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <alias name="glVertexAttrib2d"/>
+ <vecequiv name="glVertexAttrib2dvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2dNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <alias name="glVertexAttrib2d"/>
+ <vecequiv name="glVertexAttrib2dvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4198"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2dvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib2dv"/>
+ <glx type="render" opcode="4198"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2dvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib2dv"/>
+ <glx type="render" opcode="4198"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2f</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <vecequiv name="glVertexAttrib2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2fARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <alias name="glVertexAttrib2f"/>
+ <vecequiv name="glVertexAttrib2fvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2fNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <alias name="glVertexAttrib2f"/>
+ <vecequiv name="glVertexAttrib2fvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4194"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2fvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib2fv"/>
+ <glx type="render" opcode="4194"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2fvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib2fv"/>
+ <glx type="render" opcode="4194"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2hNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>x</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>y</name></param>
+ <vecequiv name="glVertexAttrib2hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2hvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="Half16NV" len="2">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4258"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2s</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <param><ptype>GLshort</ptype> <name>y</name></param>
+ <vecequiv name="glVertexAttrib2sv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2sARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <param><ptype>GLshort</ptype> <name>y</name></param>
+ <alias name="glVertexAttrib2s"/>
+ <vecequiv name="glVertexAttrib2svARB"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2sNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <param><ptype>GLshort</ptype> <name>y</name></param>
+ <alias name="glVertexAttrib2s"/>
+ <vecequiv name="glVertexAttrib2svNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2sv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4190"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2svARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib2sv"/>
+ <glx type="render" opcode="4190"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib2svNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib2sv"/>
+ <glx type="render" opcode="4190"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3d</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <vecequiv name="glVertexAttrib3dv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3dARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <alias name="glVertexAttrib3d"/>
+ <vecequiv name="glVertexAttrib3dvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3dNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <alias name="glVertexAttrib3d"/>
+ <vecequiv name="glVertexAttrib3dvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4199"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3dvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib3dv"/>
+ <glx type="render" opcode="4199"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3dvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib3dv"/>
+ <glx type="render" opcode="4199"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3f</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <vecequiv name="glVertexAttrib3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3fARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <alias name="glVertexAttrib3f"/>
+ <vecequiv name="glVertexAttrib3fvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3fNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <alias name="glVertexAttrib3f"/>
+ <vecequiv name="glVertexAttrib3fvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4195"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3fvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib3fv"/>
+ <glx type="render" opcode="4195"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3fvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib3fv"/>
+ <glx type="render" opcode="4195"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3hNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>x</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>y</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>z</name></param>
+ <vecequiv name="glVertexAttrib3hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3hvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="Half16NV" len="3">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4259"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3s</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <param><ptype>GLshort</ptype> <name>y</name></param>
+ <param><ptype>GLshort</ptype> <name>z</name></param>
+ <vecequiv name="glVertexAttrib3sv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3sARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <param><ptype>GLshort</ptype> <name>y</name></param>
+ <param><ptype>GLshort</ptype> <name>z</name></param>
+ <alias name="glVertexAttrib3s"/>
+ <vecequiv name="glVertexAttrib3svARB"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3sNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <param><ptype>GLshort</ptype> <name>y</name></param>
+ <param><ptype>GLshort</ptype> <name>z</name></param>
+ <alias name="glVertexAttrib3s"/>
+ <vecequiv name="glVertexAttrib3svNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3sv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4191"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3svARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib3sv"/>
+ <glx type="render" opcode="4191"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib3svNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib3sv"/>
+ <glx type="render" opcode="4191"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4Nbv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLbyte</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4NbvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLbyte</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4Nbv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4Niv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4NivARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4Niv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4Nsv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4NsvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4Nsv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4Nub</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLubyte</ptype> <name>x</name></param>
+ <param><ptype>GLubyte</ptype> <name>y</name></param>
+ <param><ptype>GLubyte</ptype> <name>z</name></param>
+ <param><ptype>GLubyte</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4NubARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLubyte</ptype> <name>x</name></param>
+ <param><ptype>GLubyte</ptype> <name>y</name></param>
+ <param><ptype>GLubyte</ptype> <name>z</name></param>
+ <param><ptype>GLubyte</ptype> <name>w</name></param>
+ <alias name="glVertexAttrib4Nub"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4Nubv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLubyte</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4201"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4NubvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLubyte</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4Nubv"/>
+ <glx type="render" opcode="4201"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4Nuiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLuint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4NuivARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLuint</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4Nuiv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4Nusv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLushort</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4NusvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLushort</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4Nusv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4bv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLbyte</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4bvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLbyte</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4bv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4d</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <param><ptype>GLdouble</ptype> <name>w</name></param>
+ <vecequiv name="glVertexAttrib4dv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4dARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <param><ptype>GLdouble</ptype> <name>w</name></param>
+ <alias name="glVertexAttrib4d"/>
+ <vecequiv name="glVertexAttrib4dvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4dNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <param><ptype>GLdouble</ptype> <name>w</name></param>
+ <alias name="glVertexAttrib4d"/>
+ <vecequiv name="glVertexAttrib4dvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4200"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4dvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4dv"/>
+ <glx type="render" opcode="4200"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4dvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4dv"/>
+ <glx type="render" opcode="4200"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4f</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <param><ptype>GLfloat</ptype> <name>w</name></param>
+ <vecequiv name="glVertexAttrib4fv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4fARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <param><ptype>GLfloat</ptype> <name>w</name></param>
+ <alias name="glVertexAttrib4f"/>
+ <vecequiv name="glVertexAttrib4fvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4fNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <param><ptype>GLfloat</ptype> <name>w</name></param>
+ <alias name="glVertexAttrib4f"/>
+ <vecequiv name="glVertexAttrib4fvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4fv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4196"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4fvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4fv"/>
+ <glx type="render" opcode="4196"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4fvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4fv"/>
+ <glx type="render" opcode="4196"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4hNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>x</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>y</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>z</name></param>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>w</name></param>
+ <vecequiv name="glVertexAttrib4hvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4hvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="Half16NV" len="4">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4260"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4iv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4ivARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4iv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4s</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <param><ptype>GLshort</ptype> <name>y</name></param>
+ <param><ptype>GLshort</ptype> <name>z</name></param>
+ <param><ptype>GLshort</ptype> <name>w</name></param>
+ <vecequiv name="glVertexAttrib4sv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4sARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <param><ptype>GLshort</ptype> <name>y</name></param>
+ <param><ptype>GLshort</ptype> <name>z</name></param>
+ <param><ptype>GLshort</ptype> <name>w</name></param>
+ <alias name="glVertexAttrib4s"/>
+ <vecequiv name="glVertexAttrib4svARB"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4sNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <param><ptype>GLshort</ptype> <name>y</name></param>
+ <param><ptype>GLshort</ptype> <name>z</name></param>
+ <param><ptype>GLshort</ptype> <name>w</name></param>
+ <alias name="glVertexAttrib4s"/>
+ <vecequiv name="glVertexAttrib4svNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4sv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4192"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4svARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4sv"/>
+ <glx type="render" opcode="4192"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4svNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4sv"/>
+ <glx type="render" opcode="4192"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4ubNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>x</name></param>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>y</name></param>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>z</name></param>
+ <param group="ColorUB"><ptype>GLubyte</ptype> <name>w</name></param>
+ <alias name="glVertexAttrib4Nub"/>
+ <vecequiv name="glVertexAttrib4ubvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4ubv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLubyte</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4ubvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLubyte</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4ubv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4ubvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param group="ColorUB" len="4">const <ptype>GLubyte</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4Nubv"/>
+ <glx type="render" opcode="4201"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4uiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLuint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4uivARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLuint</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4usv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLushort</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttrib4usvARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLushort</ptype> *<name>v</name></param>
+ <alias name="glVertexAttrib4usv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribArrayObjectATI</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexAttribPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLuint</ptype> <name>buffer</name></param>
+ <param><ptype>GLuint</ptype> <name>offset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribBinding</name></proto>
+ <param><ptype>GLuint</ptype> <name>attribindex</name></param>
+ <param><ptype>GLuint</ptype> <name>bindingindex</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribDivisor</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>divisor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribDivisorANGLE</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>divisor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribDivisorARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>divisor</name></param>
+ <alias name="glVertexAttribDivisor"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribDivisorNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>divisor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribFormat</name></proto>
+ <param><ptype>GLuint</ptype> <name>attribindex</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param><ptype>GLuint</ptype> <name>relativeoffset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribFormatNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI1i</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <vecequiv name="glVertexAttribI1iv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI1iEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <alias name="glVertexAttribI1i"/>
+ <vecequiv name="glVertexAttribI1ivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI1iv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI1ivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribI1iv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI1ui</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>x</name></param>
+ <vecequiv name="glVertexAttribI1uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI1uiEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>x</name></param>
+ <alias name="glVertexAttribI1ui"/>
+ <vecequiv name="glVertexAttribI1uivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI1uiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI1uivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribI1uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI2i</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <vecequiv name="glVertexAttribI2iv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI2iEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <alias name="glVertexAttribI2i"/>
+ <vecequiv name="glVertexAttribI2ivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI2iv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI2ivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribI2iv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI2ui</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>x</name></param>
+ <param><ptype>GLuint</ptype> <name>y</name></param>
+ <vecequiv name="glVertexAttribI2uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI2uiEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>x</name></param>
+ <param><ptype>GLuint</ptype> <name>y</name></param>
+ <alias name="glVertexAttribI2ui"/>
+ <vecequiv name="glVertexAttribI2uivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI2uiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLuint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI2uivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLuint</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribI2uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI3i</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLint</ptype> <name>z</name></param>
+ <vecequiv name="glVertexAttribI3iv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI3iEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLint</ptype> <name>z</name></param>
+ <alias name="glVertexAttribI3i"/>
+ <vecequiv name="glVertexAttribI3ivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI3iv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI3ivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribI3iv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI3ui</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>x</name></param>
+ <param><ptype>GLuint</ptype> <name>y</name></param>
+ <param><ptype>GLuint</ptype> <name>z</name></param>
+ <vecequiv name="glVertexAttribI3uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI3uiEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>x</name></param>
+ <param><ptype>GLuint</ptype> <name>y</name></param>
+ <param><ptype>GLuint</ptype> <name>z</name></param>
+ <alias name="glVertexAttribI3ui"/>
+ <vecequiv name="glVertexAttribI3uivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI3uiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLuint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI3uivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLuint</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribI3uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4bv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLbyte</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4bvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLbyte</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribI4bv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4i</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLint</ptype> <name>z</name></param>
+ <param><ptype>GLint</ptype> <name>w</name></param>
+ <vecequiv name="glVertexAttribI4iv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4iEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLint</ptype> <name>z</name></param>
+ <param><ptype>GLint</ptype> <name>w</name></param>
+ <alias name="glVertexAttribI4i"/>
+ <vecequiv name="glVertexAttribI4ivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4iv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4ivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribI4iv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4sv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4svEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribI4sv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4ubv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLubyte</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4ubvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLubyte</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribI4ubv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4ui</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>x</name></param>
+ <param><ptype>GLuint</ptype> <name>y</name></param>
+ <param><ptype>GLuint</ptype> <name>z</name></param>
+ <param><ptype>GLuint</ptype> <name>w</name></param>
+ <vecequiv name="glVertexAttribI4uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4uiEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint</ptype> <name>x</name></param>
+ <param><ptype>GLuint</ptype> <name>y</name></param>
+ <param><ptype>GLuint</ptype> <name>z</name></param>
+ <param><ptype>GLuint</ptype> <name>w</name></param>
+ <alias name="glVertexAttribI4ui"/>
+ <vecequiv name="glVertexAttribI4uivEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4uiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLuint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4uivEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLuint</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribI4uiv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4usv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLushort</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribI4usvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLushort</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribI4usv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribIFormat</name></proto>
+ <param><ptype>GLuint</ptype> <name>attribindex</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>relativeoffset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribIFormatNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribIPointer</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexAttribEnum"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const <ptype>GLvoid</ptype> *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribIPointerEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexAttribEnum"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const <ptype>GLvoid</ptype> *<name>pointer</name></param>
+ <alias name="glVertexAttribIPointer"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL1d</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL1dEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <alias name="glVertexAttribL1d"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL1dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL1dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribL1dv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL1i64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL1i64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLint64EXT</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL1ui64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL1ui64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="1">const <ptype>GLuint64EXT</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL2d</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL2dEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <alias name="glVertexAttribL2d"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL2dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL2dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribL2dv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL2i64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL2i64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLint64EXT</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL2ui64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL2ui64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="2">const <ptype>GLuint64EXT</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL3d</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL3dEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <alias name="glVertexAttribL3d"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL3dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL3dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribL3dv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL3i64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>y</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL3i64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLint64EXT</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL3ui64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>y</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL3ui64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="3">const <ptype>GLuint64EXT</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL4d</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <param><ptype>GLdouble</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL4dEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <param><ptype>GLdouble</ptype> <name>w</name></param>
+ <alias name="glVertexAttribL4d"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL4dv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL4dvEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glVertexAttribL4dv"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL4i64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>y</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>z</name></param>
+ <param><ptype>GLint64EXT</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL4i64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLint64EXT</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL4ui64NV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>x</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>y</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>z</name></param>
+ <param><ptype>GLuint64EXT</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribL4ui64vNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLuint64EXT</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribLFormat</name></proto>
+ <param><ptype>GLuint</ptype> <name>attribindex</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>relativeoffset</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribLFormatNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribLPointer</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="size">const <ptype>GLvoid</ptype> *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribLPointerEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="size">const <ptype>GLvoid</ptype> *<name>pointer</name></param>
+ <alias name="glVertexAttribLPointer"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribP1ui</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param><ptype>GLuint</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribP1uiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribP2ui</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param><ptype>GLuint</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribP2uiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribP3ui</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param><ptype>GLuint</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribP3uiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribP4ui</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param><ptype>GLuint</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribP4uiv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribParameteriAMD</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribPointer</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexAttribPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const <ptype>GLvoid</ptype> *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribPointerARB</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexAttribPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param group="Boolean"><ptype>GLboolean</ptype> <name>normalized</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const <ptype>GLvoid</ptype> *<name>pointer</name></param>
+ <alias name="glVertexAttribPointer"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribPointerNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLint</ptype> <name>fsize</name></param>
+ <param group="VertexAttribEnumNV"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(fsize,type,stride)">const <ptype>GLvoid</ptype> *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs1dvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4210"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs1fvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4206"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs1hvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="Half16NV" len="n">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4261"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs1svNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4202"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs2dvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*2">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4211"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs2fvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*2">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4207"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs2hvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="Half16NV" len="n">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4262"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs2svNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*2">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4203"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs3dvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4212"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs3fvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4208"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs3hvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="Half16NV" len="n">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4263"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs3svNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4204"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs4dvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4213"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs4fvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4209"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs4hvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>n</name></param>
+ <param group="Half16NV" len="n">const <ptype>GLhalfNV</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4264"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs4svNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="count*4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4205"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexAttribs4ubvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param group="ColorUB" len="count*4">const <ptype>GLubyte</ptype> *<name>v</name></param>
+ <glx type="render" opcode="4214"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexBindingDivisor</name></proto>
+ <param><ptype>GLuint</ptype> <name>bindingindex</name></param>
+ <param><ptype>GLuint</ptype> <name>divisor</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexBlendARB</name></proto>
+ <param><ptype>GLint</ptype> <name>count</name></param>
+ <glx type="render" opcode="226"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexBlendEnvfATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLfloat</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexBlendEnviATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>pname</name></param>
+ <param><ptype>GLint</ptype> <name>param</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexFormatNV</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexP2ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexP2uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexP3ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexP3uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexP4ui</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLuint</ptype> <name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexP4uiv</name></proto>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="1">const <ptype>GLuint</ptype> *<name>value</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexPointer</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const <ptype>GLvoid</ptype> *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexPointerEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(size,type,stride,count)">const <ptype>GLvoid</ptype> *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexPointerListIBM</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLint</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(size,type,stride)">const <ptype>GLvoid</ptype> **<name>pointer</name></param>
+ <param><ptype>GLint</ptype> <name>ptrstride</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexPointervINTEL</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexPointerType"><ptype>GLenum</ptype> <name>type</name></param>
+ <param len="4">const <ptype>GLvoid</ptype> **<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream1dATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream1dvATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="1">const <ptype>GLdouble</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream1fATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream1fvATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="1">const <ptype>GLfloat</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream1iATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream1ivATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="1">const <ptype>GLint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream1sATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream1svATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="1">const <ptype>GLshort</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream2dATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream2dvATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="2">const <ptype>GLdouble</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream2fATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream2fvATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="2">const <ptype>GLfloat</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream2iATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream2ivATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="2">const <ptype>GLint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream2sATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <param><ptype>GLshort</ptype> <name>y</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream2svATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="2">const <ptype>GLshort</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream3dATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream3dvATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="3">const <ptype>GLdouble</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream3fATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream3fvATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="3">const <ptype>GLfloat</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream3iATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLint</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream3ivATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="3">const <ptype>GLint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream3sATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <param><ptype>GLshort</ptype> <name>y</name></param>
+ <param><ptype>GLshort</ptype> <name>z</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream3svATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="3">const <ptype>GLshort</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream4dATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLdouble</ptype> <name>x</name></param>
+ <param><ptype>GLdouble</ptype> <name>y</name></param>
+ <param><ptype>GLdouble</ptype> <name>z</name></param>
+ <param><ptype>GLdouble</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream4dvATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="4">const <ptype>GLdouble</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream4fATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>z</name></param>
+ <param><ptype>GLfloat</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream4fvATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream4iATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLint</ptype> <name>x</name></param>
+ <param><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLint</ptype> <name>z</name></param>
+ <param><ptype>GLint</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream4ivATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="4">const <ptype>GLint</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream4sATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param><ptype>GLshort</ptype> <name>x</name></param>
+ <param><ptype>GLshort</ptype> <name>y</name></param>
+ <param><ptype>GLshort</ptype> <name>z</name></param>
+ <param><ptype>GLshort</ptype> <name>w</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexStream4svATI</name></proto>
+ <param group="VertexStreamATI"><ptype>GLenum</ptype> <name>stream</name></param>
+ <param len="4">const <ptype>GLshort</ptype> *<name>coords</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexWeightPointerEXT</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="VertexWeightPointerTypeEXT"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(type,stride)">const <ptype>GLvoid</ptype> *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVertexWeightfEXT</name></proto>
+ <param><ptype>GLfloat</ptype> <name>weight</name></param>
+ <vecequiv name="glVertexWeightfvEXT"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexWeightfvEXT</name></proto>
+ <param len="1">const <ptype>GLfloat</ptype> *<name>weight</name></param>
+ <glx type="render" opcode="4135"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexWeighthNV</name></proto>
+ <param group="Half16NV"><ptype>GLhalfNV</ptype> <name>weight</name></param>
+ <vecequiv name="glVertexWeighthvNV"/>
+ </command>
+ <command>
+ <proto>void <name>glVertexWeighthvNV</name></proto>
+ <param group="Half16NV" len="1">const <ptype>GLhalfNV</ptype> *<name>weight</name></param>
+ <glx type="render" opcode="4256"/>
+ </command>
+ <command>
+ <proto><ptype>GLenum</ptype> <name>glVideoCaptureNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_capture_slot</name></param>
+ <param><ptype>GLuint</ptype> *<name>sequence_num</name></param>
+ <param><ptype>GLuint64EXT</ptype> *<name>capture_time</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVideoCaptureStreamParameterdvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_capture_slot</name></param>
+ <param><ptype>GLuint</ptype> <name>stream</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLdouble</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVideoCaptureStreamParameterfvNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_capture_slot</name></param>
+ <param><ptype>GLuint</ptype> <name>stream</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLfloat</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glVideoCaptureStreamParameterivNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>video_capture_slot</name></param>
+ <param><ptype>GLuint</ptype> <name>stream</name></param>
+ <param><ptype>GLenum</ptype> <name>pname</name></param>
+ <param len="COMPSIZE(pname)">const <ptype>GLint</ptype> *<name>params</name></param>
+ </command>
+ <command>
+ <proto>void <name>glViewport</name></proto>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="WinCoord"><ptype>GLint</ptype> <name>y</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <glx type="render" opcode="191"/>
+ </command>
+ <command>
+ <proto>void <name>glViewportArrayv</name></proto>
+ <param><ptype>GLuint</ptype> <name>first</name></param>
+ <param><ptype>GLsizei</ptype> <name>count</name></param>
+ <param len="COMPSIZE(count)">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glViewportIndexedf</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param><ptype>GLfloat</ptype> <name>x</name></param>
+ <param><ptype>GLfloat</ptype> <name>y</name></param>
+ <param><ptype>GLfloat</ptype> <name>w</name></param>
+ <param><ptype>GLfloat</ptype> <name>h</name></param>
+ </command>
+ <command>
+ <proto>void <name>glViewportIndexedfv</name></proto>
+ <param><ptype>GLuint</ptype> <name>index</name></param>
+ <param len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glWaitSync</name></proto>
+ <param group="sync"><ptype>GLsync</ptype> <name>sync</name></param>
+ <param><ptype>GLbitfield</ptype> <name>flags</name></param>
+ <param><ptype>GLuint64</ptype> <name>timeout</name></param>
+ </command>
+ <command>
+ <proto>void <name>glWaitSyncAPPLE</name></proto>
+ <param><ptype>GLsync</ptype> <name>sync</name></param>
+ <param><ptype>GLbitfield</ptype> <name>flags</name></param>
+ <param><ptype>GLuint64</ptype> <name>timeout</name></param>
+ </command>
+ <command>
+ <proto>void <name>glWeightPathsNV</name></proto>
+ <param group="Path"><ptype>GLuint</ptype> <name>resultPath</name></param>
+ <param><ptype>GLsizei</ptype> <name>numPaths</name></param>
+ <param group="Path" len="numPaths">const <ptype>GLuint</ptype> *<name>paths</name></param>
+ <param len="numPaths">const <ptype>GLfloat</ptype> *<name>weights</name></param>
+ </command>
+ <command>
+ <proto>void <name>glWeightPointerARB</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param group="WeightPointerTypeARB"><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param len="COMPSIZE(type,stride)">const <ptype>GLvoid</ptype> *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glWeightPointerOES</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLsizei</ptype> <name>stride</name></param>
+ <param>const <ptype>GLvoid</ptype> *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto>void <name>glWeightbvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param len="size">const <ptype>GLbyte</ptype> *<name>weights</name></param>
+ <glx type="render" opcode="220"/>
+ </command>
+ <command>
+ <proto>void <name>glWeightdvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param len="size">const <ptype>GLdouble</ptype> *<name>weights</name></param>
+ <glx type="render" opcode="228"/>
+ </command>
+ <command>
+ <proto>void <name>glWeightfvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param len="size">const <ptype>GLfloat</ptype> *<name>weights</name></param>
+ <glx type="render" opcode="227"/>
+ </command>
+ <command>
+ <proto>void <name>glWeightivARB</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param len="size">const <ptype>GLint</ptype> *<name>weights</name></param>
+ <glx type="render" opcode="224"/>
+ </command>
+ <command>
+ <proto>void <name>glWeightsvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param len="size">const <ptype>GLshort</ptype> *<name>weights</name></param>
+ <glx type="render" opcode="222"/>
+ </command>
+ <command>
+ <proto>void <name>glWeightubvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param len="size">const <ptype>GLubyte</ptype> *<name>weights</name></param>
+ <glx type="render" opcode="221"/>
+ </command>
+ <command>
+ <proto>void <name>glWeightuivARB</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param len="size">const <ptype>GLuint</ptype> *<name>weights</name></param>
+ <glx type="render" opcode="225"/>
+ </command>
+ <command>
+ <proto>void <name>glWeightusvARB</name></proto>
+ <param><ptype>GLint</ptype> <name>size</name></param>
+ <param len="size">const <ptype>GLushort</ptype> *<name>weights</name></param>
+ <glx type="render" opcode="223"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y</name></param>
+ <vecequiv name="glWindowPos2dv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2dARB</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y</name></param>
+ <alias name="glWindowPos2d"/>
+ <vecequiv name="glWindowPos2dvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2dMESA</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y</name></param>
+ <alias name="glWindowPos2d"/>
+ <vecequiv name="glWindowPos2dvMESA"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2dv</name></proto>
+ <param group="CoordD" len="2">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2dvARB</name></proto>
+ <param group="CoordD" len="2">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glWindowPos2dv"/>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2dvMESA</name></proto>
+ <param group="CoordD" len="2">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glWindowPos2dv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y</name></param>
+ <vecequiv name="glWindowPos2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2fARB</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y</name></param>
+ <alias name="glWindowPos2f"/>
+ <vecequiv name="glWindowPos2fvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2fMESA</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y</name></param>
+ <alias name="glWindowPos2f"/>
+ <vecequiv name="glWindowPos2fvMESA"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2fv</name></proto>
+ <param group="CoordF" len="2">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2fvARB</name></proto>
+ <param group="CoordF" len="2">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glWindowPos2fv"/>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2fvMESA</name></proto>
+ <param group="CoordF" len="2">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glWindowPos2fv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2i</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y</name></param>
+ <vecequiv name="glWindowPos2iv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2iARB</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y</name></param>
+ <alias name="glWindowPos2i"/>
+ <vecequiv name="glWindowPos2ivARB"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2iMESA</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y</name></param>
+ <alias name="glWindowPos2i"/>
+ <vecequiv name="glWindowPos2ivMESA"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2iv</name></proto>
+ <param group="CoordI" len="2">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2ivARB</name></proto>
+ <param group="CoordI" len="2">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glWindowPos2iv"/>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2ivMESA</name></proto>
+ <param group="CoordI" len="2">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glWindowPos2iv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2s</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y</name></param>
+ <vecequiv name="glWindowPos2sv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2sARB</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y</name></param>
+ <alias name="glWindowPos2s"/>
+ <vecequiv name="glWindowPos2svARB"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2sMESA</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y</name></param>
+ <alias name="glWindowPos2s"/>
+ <vecequiv name="glWindowPos2svMESA"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2sv</name></proto>
+ <param group="CoordS" len="2">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2svARB</name></proto>
+ <param group="CoordS" len="2">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glWindowPos2sv"/>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos2svMESA</name></proto>
+ <param group="CoordS" len="2">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glWindowPos2sv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3d</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>z</name></param>
+ <vecequiv name="glWindowPos3dv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3dARB</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>z</name></param>
+ <alias name="glWindowPos3d"/>
+ <vecequiv name="glWindowPos3dvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3dMESA</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>z</name></param>
+ <alias name="glWindowPos3d"/>
+ <vecequiv name="glWindowPos3dvMESA"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3dv</name></proto>
+ <param group="CoordD" len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3dvARB</name></proto>
+ <param group="CoordD" len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glWindowPos3dv"/>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3dvMESA</name></proto>
+ <param group="CoordD" len="3">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ <alias name="glWindowPos3dv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3f</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>z</name></param>
+ <vecequiv name="glWindowPos3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3fARB</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>z</name></param>
+ <alias name="glWindowPos3f"/>
+ <vecequiv name="glWindowPos3fvARB"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3fMESA</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>z</name></param>
+ <alias name="glWindowPos3f"/>
+ <vecequiv name="glWindowPos3fvMESA"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3fv</name></proto>
+ <param group="CoordF" len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3fvARB</name></proto>
+ <param group="CoordF" len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glWindowPos3fv"/>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3fvMESA</name></proto>
+ <param group="CoordF" len="3">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ <alias name="glWindowPos3fv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3i</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>z</name></param>
+ <vecequiv name="glWindowPos3iv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3iARB</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>z</name></param>
+ <alias name="glWindowPos3i"/>
+ <vecequiv name="glWindowPos3ivARB"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3iMESA</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>z</name></param>
+ <alias name="glWindowPos3i"/>
+ <vecequiv name="glWindowPos3ivMESA"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3iv</name></proto>
+ <param group="CoordI" len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3ivARB</name></proto>
+ <param group="CoordI" len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glWindowPos3iv"/>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3ivMESA</name></proto>
+ <param group="CoordI" len="3">const <ptype>GLint</ptype> *<name>v</name></param>
+ <alias name="glWindowPos3iv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3s</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>z</name></param>
+ <vecequiv name="glWindowPos3sv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3sARB</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>z</name></param>
+ <alias name="glWindowPos3s"/>
+ <vecequiv name="glWindowPos3svARB"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3sMESA</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>z</name></param>
+ <alias name="glWindowPos3s"/>
+ <vecequiv name="glWindowPos3svMESA"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3sv</name></proto>
+ <param group="CoordS" len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3svARB</name></proto>
+ <param group="CoordS" len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glWindowPos3sv"/>
+ <glx type="render" opcode="230"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos3svMESA</name></proto>
+ <param group="CoordS" len="3">const <ptype>GLshort</ptype> *<name>v</name></param>
+ <alias name="glWindowPos3sv"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos4dMESA</name></proto>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>x</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>y</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>z</name></param>
+ <param group="CoordD"><ptype>GLdouble</ptype> <name>w</name></param>
+ <vecequiv name="glWindowPos4dvMESA"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos4dvMESA</name></proto>
+ <param group="CoordD" len="4">const <ptype>GLdouble</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos4fMESA</name></proto>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>x</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>y</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>z</name></param>
+ <param group="CoordF"><ptype>GLfloat</ptype> <name>w</name></param>
+ <vecequiv name="glWindowPos4fvMESA"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos4fvMESA</name></proto>
+ <param group="CoordF" len="4">const <ptype>GLfloat</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos4iMESA</name></proto>
+ <param group="CoordI"><ptype>GLint</ptype> <name>x</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>y</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>z</name></param>
+ <param group="CoordI"><ptype>GLint</ptype> <name>w</name></param>
+ <vecequiv name="glWindowPos4ivMESA"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos4ivMESA</name></proto>
+ <param group="CoordI" len="4">const <ptype>GLint</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos4sMESA</name></proto>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>x</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>y</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>z</name></param>
+ <param group="CoordS"><ptype>GLshort</ptype> <name>w</name></param>
+ <vecequiv name="glWindowPos4svMESA"/>
+ </command>
+ <command>
+ <proto>void <name>glWindowPos4svMESA</name></proto>
+ <param group="CoordS" len="4">const <ptype>GLshort</ptype> *<name>v</name></param>
+ </command>
+ <command>
+ <proto>void <name>glWriteMaskEXT</name></proto>
+ <param><ptype>GLuint</ptype> <name>res</name></param>
+ <param><ptype>GLuint</ptype> <name>in</name></param>
+ <param group="VertexShaderWriteMaskEXT"><ptype>GLenum</ptype> <name>outX</name></param>
+ <param group="VertexShaderWriteMaskEXT"><ptype>GLenum</ptype> <name>outY</name></param>
+ <param group="VertexShaderWriteMaskEXT"><ptype>GLenum</ptype> <name>outZ</name></param>
+ <param group="VertexShaderWriteMaskEXT"><ptype>GLenum</ptype> <name>outW</name></param>
+ </command>
+ </commands>
+
+ <!-- SECTION: GL API interface definitions. -->
+ <feature api="gl" name="GL_VERSION_1_0" number="1.0">
+ <require>
+ <command name="glCullFace"/>
+ <command name="glFrontFace"/>
+ <command name="glHint"/>
+ <command name="glLineWidth"/>
+ <command name="glPointSize"/>
+ <command name="glPolygonMode"/>
+ <command name="glScissor"/>
+ <command name="glTexParameterf"/>
+ <command name="glTexParameterfv"/>
+ <command name="glTexParameteri"/>
+ <command name="glTexParameteriv"/>
+ <command name="glTexImage1D"/>
+ <command name="glTexImage2D"/>
+ <command name="glDrawBuffer"/>
+ <command name="glClear"/>
+ <command name="glClearColor"/>
+ <command name="glClearStencil"/>
+ <command name="glClearDepth"/>
+ <command name="glStencilMask"/>
+ <command name="glColorMask"/>
+ <command name="glDepthMask"/>
+ <command name="glDisable"/>
+ <command name="glEnable"/>
+ <command name="glFinish"/>
+ <command name="glFlush"/>
+ <command name="glBlendFunc"/>
+ <command name="glLogicOp"/>
+ <command name="glStencilFunc"/>
+ <command name="glStencilOp"/>
+ <command name="glDepthFunc"/>
+ <command name="glPixelStoref"/>
+ <command name="glPixelStorei"/>
+ <command name="glReadBuffer"/>
+ <command name="glReadPixels"/>
+ <command name="glGetBooleanv"/>
+ <command name="glGetDoublev"/>
+ <command name="glGetError"/>
+ <command name="glGetFloatv"/>
+ <command name="glGetIntegerv"/>
+ <command name="glGetString"/>
+ <command name="glGetTexImage"/>
+ <command name="glGetTexParameterfv"/>
+ <command name="glGetTexParameteriv"/>
+ <command name="glGetTexLevelParameterfv"/>
+ <command name="glGetTexLevelParameteriv"/>
+ <command name="glIsEnabled"/>
+ <command name="glDepthRange"/>
+ <command name="glViewport"/>
+ <command name="glNewList"/>
+ <command name="glEndList"/>
+ <command name="glCallList"/>
+ <command name="glCallLists"/>
+ <command name="glDeleteLists"/>
+ <command name="glGenLists"/>
+ <command name="glListBase"/>
+ <command name="glBegin"/>
+ <command name="glBitmap"/>
+ <command name="glColor3b"/>
+ <command name="glColor3bv"/>
+ <command name="glColor3d"/>
+ <command name="glColor3dv"/>
+ <command name="glColor3f"/>
+ <command name="glColor3fv"/>
+ <command name="glColor3i"/>
+ <command name="glColor3iv"/>
+ <command name="glColor3s"/>
+ <command name="glColor3sv"/>
+ <command name="glColor3ub"/>
+ <command name="glColor3ubv"/>
+ <command name="glColor3ui"/>
+ <command name="glColor3uiv"/>
+ <command name="glColor3us"/>
+ <command name="glColor3usv"/>
+ <command name="glColor4b"/>
+ <command name="glColor4bv"/>
+ <command name="glColor4d"/>
+ <command name="glColor4dv"/>
+ <command name="glColor4f"/>
+ <command name="glColor4fv"/>
+ <command name="glColor4i"/>
+ <command name="glColor4iv"/>
+ <command name="glColor4s"/>
+ <command name="glColor4sv"/>
+ <command name="glColor4ub"/>
+ <command name="glColor4ubv"/>
+ <command name="glColor4ui"/>
+ <command name="glColor4uiv"/>
+ <command name="glColor4us"/>
+ <command name="glColor4usv"/>
+ <command name="glEdgeFlag"/>
+ <command name="glEdgeFlagv"/>
+ <command name="glEnd"/>
+ <command name="glIndexd"/>
+ <command name="glIndexdv"/>
+ <command name="glIndexf"/>
+ <command name="glIndexfv"/>
+ <command name="glIndexi"/>
+ <command name="glIndexiv"/>
+ <command name="glIndexs"/>
+ <command name="glIndexsv"/>
+ <command name="glNormal3b"/>
+ <command name="glNormal3bv"/>
+ <command name="glNormal3d"/>
+ <command name="glNormal3dv"/>
+ <command name="glNormal3f"/>
+ <command name="glNormal3fv"/>
+ <command name="glNormal3i"/>
+ <command name="glNormal3iv"/>
+ <command name="glNormal3s"/>
+ <command name="glNormal3sv"/>
+ <command name="glRasterPos2d"/>
+ <command name="glRasterPos2dv"/>
+ <command name="glRasterPos2f"/>
+ <command name="glRasterPos2fv"/>
+ <command name="glRasterPos2i"/>
+ <command name="glRasterPos2iv"/>
+ <command name="glRasterPos2s"/>
+ <command name="glRasterPos2sv"/>
+ <command name="glRasterPos3d"/>
+ <command name="glRasterPos3dv"/>
+ <command name="glRasterPos3f"/>
+ <command name="glRasterPos3fv"/>
+ <command name="glRasterPos3i"/>
+ <command name="glRasterPos3iv"/>
+ <command name="glRasterPos3s"/>
+ <command name="glRasterPos3sv"/>
+ <command name="glRasterPos4d"/>
+ <command name="glRasterPos4dv"/>
+ <command name="glRasterPos4f"/>
+ <command name="glRasterPos4fv"/>
+ <command name="glRasterPos4i"/>
+ <command name="glRasterPos4iv"/>
+ <command name="glRasterPos4s"/>
+ <command name="glRasterPos4sv"/>
+ <command name="glRectd"/>
+ <command name="glRectdv"/>
+ <command name="glRectf"/>
+ <command name="glRectfv"/>
+ <command name="glRecti"/>
+ <command name="glRectiv"/>
+ <command name="glRects"/>
+ <command name="glRectsv"/>
+ <command name="glTexCoord1d"/>
+ <command name="glTexCoord1dv"/>
+ <command name="glTexCoord1f"/>
+ <command name="glTexCoord1fv"/>
+ <command name="glTexCoord1i"/>
+ <command name="glTexCoord1iv"/>
+ <command name="glTexCoord1s"/>
+ <command name="glTexCoord1sv"/>
+ <command name="glTexCoord2d"/>
+ <command name="glTexCoord2dv"/>
+ <command name="glTexCoord2f"/>
+ <command name="glTexCoord2fv"/>
+ <command name="glTexCoord2i"/>
+ <command name="glTexCoord2iv"/>
+ <command name="glTexCoord2s"/>
+ <command name="glTexCoord2sv"/>
+ <command name="glTexCoord3d"/>
+ <command name="glTexCoord3dv"/>
+ <command name="glTexCoord3f"/>
+ <command name="glTexCoord3fv"/>
+ <command name="glTexCoord3i"/>
+ <command name="glTexCoord3iv"/>
+ <command name="glTexCoord3s"/>
+ <command name="glTexCoord3sv"/>
+ <command name="glTexCoord4d"/>
+ <command name="glTexCoord4dv"/>
+ <command name="glTexCoord4f"/>
+ <command name="glTexCoord4fv"/>
+ <command name="glTexCoord4i"/>
+ <command name="glTexCoord4iv"/>
+ <command name="glTexCoord4s"/>
+ <command name="glTexCoord4sv"/>
+ <command name="glVertex2d"/>
+ <command name="glVertex2dv"/>
+ <command name="glVertex2f"/>
+ <command name="glVertex2fv"/>
+ <command name="glVertex2i"/>
+ <command name="glVertex2iv"/>
+ <command name="glVertex2s"/>
+ <command name="glVertex2sv"/>
+ <command name="glVertex3d"/>
+ <command name="glVertex3dv"/>
+ <command name="glVertex3f"/>
+ <command name="glVertex3fv"/>
+ <command name="glVertex3i"/>
+ <command name="glVertex3iv"/>
+ <command name="glVertex3s"/>
+ <command name="glVertex3sv"/>
+ <command name="glVertex4d"/>
+ <command name="glVertex4dv"/>
+ <command name="glVertex4f"/>
+ <command name="glVertex4fv"/>
+ <command name="glVertex4i"/>
+ <command name="glVertex4iv"/>
+ <command name="glVertex4s"/>
+ <command name="glVertex4sv"/>
+ <command name="glClipPlane"/>
+ <command name="glColorMaterial"/>
+ <command name="glFogf"/>
+ <command name="glFogfv"/>
+ <command name="glFogi"/>
+ <command name="glFogiv"/>
+ <command name="glLightf"/>
+ <command name="glLightfv"/>
+ <command name="glLighti"/>
+ <command name="glLightiv"/>
+ <command name="glLightModelf"/>
+ <command name="glLightModelfv"/>
+ <command name="glLightModeli"/>
+ <command name="glLightModeliv"/>
+ <command name="glLineStipple"/>
+ <command name="glMaterialf"/>
+ <command name="glMaterialfv"/>
+ <command name="glMateriali"/>
+ <command name="glMaterialiv"/>
+ <command name="glPolygonStipple"/>
+ <command name="glShadeModel"/>
+ <command name="glTexEnvf"/>
+ <command name="glTexEnvfv"/>
+ <command name="glTexEnvi"/>
+ <command name="glTexEnviv"/>
+ <command name="glTexGend"/>
+ <command name="glTexGendv"/>
+ <command name="glTexGenf"/>
+ <command name="glTexGenfv"/>
+ <command name="glTexGeni"/>
+ <command name="glTexGeniv"/>
+ <command name="glFeedbackBuffer"/>
+ <command name="glSelectBuffer"/>
+ <command name="glRenderMode"/>
+ <command name="glInitNames"/>
+ <command name="glLoadName"/>
+ <command name="glPassThrough"/>
+ <command name="glPopName"/>
+ <command name="glPushName"/>
+ <command name="glClearAccum"/>
+ <command name="glClearIndex"/>
+ <command name="glIndexMask"/>
+ <command name="glAccum"/>
+ <command name="glPopAttrib"/>
+ <command name="glPushAttrib"/>
+ <command name="glMap1d"/>
+ <command name="glMap1f"/>
+ <command name="glMap2d"/>
+ <command name="glMap2f"/>
+ <command name="glMapGrid1d"/>
+ <command name="glMapGrid1f"/>
+ <command name="glMapGrid2d"/>
+ <command name="glMapGrid2f"/>
+ <command name="glEvalCoord1d"/>
+ <command name="glEvalCoord1dv"/>
+ <command name="glEvalCoord1f"/>
+ <command name="glEvalCoord1fv"/>
+ <command name="glEvalCoord2d"/>
+ <command name="glEvalCoord2dv"/>
+ <command name="glEvalCoord2f"/>
+ <command name="glEvalCoord2fv"/>
+ <command name="glEvalMesh1"/>
+ <command name="glEvalPoint1"/>
+ <command name="glEvalMesh2"/>
+ <command name="glEvalPoint2"/>
+ <command name="glAlphaFunc"/>
+ <command name="glPixelZoom"/>
+ <command name="glPixelTransferf"/>
+ <command name="glPixelTransferi"/>
+ <command name="glPixelMapfv"/>
+ <command name="glPixelMapuiv"/>
+ <command name="glPixelMapusv"/>
+ <command name="glCopyPixels"/>
+ <command name="glDrawPixels"/>
+ <command name="glGetClipPlane"/>
+ <command name="glGetLightfv"/>
+ <command name="glGetLightiv"/>
+ <command name="glGetMapdv"/>
+ <command name="glGetMapfv"/>
+ <command name="glGetMapiv"/>
+ <command name="glGetMaterialfv"/>
+ <command name="glGetMaterialiv"/>
+ <command name="glGetPixelMapfv"/>
+ <command name="glGetPixelMapuiv"/>
+ <command name="glGetPixelMapusv"/>
+ <command name="glGetPolygonStipple"/>
+ <command name="glGetTexEnvfv"/>
+ <command name="glGetTexEnviv"/>
+ <command name="glGetTexGendv"/>
+ <command name="glGetTexGenfv"/>
+ <command name="glGetTexGeniv"/>
+ <command name="glIsList"/>
+ <command name="glFrustum"/>
+ <command name="glLoadIdentity"/>
+ <command name="glLoadMatrixf"/>
+ <command name="glLoadMatrixd"/>
+ <command name="glMatrixMode"/>
+ <command name="glMultMatrixf"/>
+ <command name="glMultMatrixd"/>
+ <command name="glOrtho"/>
+ <command name="glPopMatrix"/>
+ <command name="glPushMatrix"/>
+ <command name="glRotated"/>
+ <command name="glRotatef"/>
+ <command name="glScaled"/>
+ <command name="glScalef"/>
+ <command name="glTranslated"/>
+ <command name="glTranslatef"/>
+ </require>
+ </feature>
+ <feature api="gl" name="GL_VERSION_1_1" number="1.1">
+ <require>
+ <type name="GLclampf" comment="No longer used in GL 1.1, but still defined in Mesa gl.h"/>
+ <type name="GLclampd" comment="No longer used in GL 1.1, but still defined in Mesa gl.h"/>
+ <!-- Many of these are really VERSION_1_0 enums -->
+ <enum name="GL_DEPTH_BUFFER_BIT"/>
+ <enum name="GL_STENCIL_BUFFER_BIT"/>
+ <enum name="GL_COLOR_BUFFER_BIT"/>
+ <enum name="GL_FALSE"/>
+ <enum name="GL_TRUE"/>
+ <enum name="GL_POINTS"/>
+ <enum name="GL_LINES"/>
+ <enum name="GL_LINE_LOOP"/>
+ <enum name="GL_LINE_STRIP"/>
+ <enum name="GL_TRIANGLES"/>
+ <enum name="GL_TRIANGLE_STRIP"/>
+ <enum name="GL_TRIANGLE_FAN"/>
+ <enum name="GL_QUADS"/>
+ <enum name="GL_NEVER"/>
+ <enum name="GL_LESS"/>
+ <enum name="GL_EQUAL"/>
+ <enum name="GL_LEQUAL"/>
+ <enum name="GL_GREATER"/>
+ <enum name="GL_NOTEQUAL"/>
+ <enum name="GL_GEQUAL"/>
+ <enum name="GL_ALWAYS"/>
+ <enum name="GL_ZERO"/>
+ <enum name="GL_ONE"/>
+ <enum name="GL_SRC_COLOR"/>
+ <enum name="GL_ONE_MINUS_SRC_COLOR"/>
+ <enum name="GL_SRC_ALPHA"/>
+ <enum name="GL_ONE_MINUS_SRC_ALPHA"/>
+ <enum name="GL_DST_ALPHA"/>
+ <enum name="GL_ONE_MINUS_DST_ALPHA"/>
+ <enum name="GL_DST_COLOR"/>
+ <enum name="GL_ONE_MINUS_DST_COLOR"/>
+ <enum name="GL_SRC_ALPHA_SATURATE"/>
+ <enum name="GL_NONE"/>
+ <enum name="GL_FRONT_LEFT"/>
+ <enum name="GL_FRONT_RIGHT"/>
+ <enum name="GL_BACK_LEFT"/>
+ <enum name="GL_BACK_RIGHT"/>
+ <enum name="GL_FRONT"/>
+ <enum name="GL_BACK"/>
+ <enum name="GL_LEFT"/>
+ <enum name="GL_RIGHT"/>
+ <enum name="GL_FRONT_AND_BACK"/>
+ <enum name="GL_NO_ERROR"/>
+ <enum name="GL_INVALID_ENUM"/>
+ <enum name="GL_INVALID_VALUE"/>
+ <enum name="GL_INVALID_OPERATION"/>
+ <enum name="GL_OUT_OF_MEMORY"/>
+ <enum name="GL_CW"/>
+ <enum name="GL_CCW"/>
+ <enum name="GL_POINT_SIZE"/>
+ <enum name="GL_POINT_SIZE_RANGE"/>
+ <enum name="GL_POINT_SIZE_GRANULARITY"/>
+ <enum name="GL_LINE_SMOOTH"/>
+ <enum name="GL_LINE_WIDTH"/>
+ <enum name="GL_LINE_WIDTH_RANGE"/>
+ <enum name="GL_LINE_WIDTH_GRANULARITY"/>
+ <enum name="GL_POLYGON_MODE"/>
+ <enum name="GL_POLYGON_SMOOTH"/>
+ <enum name="GL_CULL_FACE"/>
+ <enum name="GL_CULL_FACE_MODE"/>
+ <enum name="GL_FRONT_FACE"/>
+ <enum name="GL_DEPTH_RANGE"/>
+ <enum name="GL_DEPTH_TEST"/>
+ <enum name="GL_DEPTH_WRITEMASK"/>
+ <enum name="GL_DEPTH_CLEAR_VALUE"/>
+ <enum name="GL_DEPTH_FUNC"/>
+ <enum name="GL_STENCIL_TEST"/>
+ <enum name="GL_STENCIL_CLEAR_VALUE"/>
+ <enum name="GL_STENCIL_FUNC"/>
+ <enum name="GL_STENCIL_VALUE_MASK"/>
+ <enum name="GL_STENCIL_FAIL"/>
+ <enum name="GL_STENCIL_PASS_DEPTH_FAIL"/>
+ <enum name="GL_STENCIL_PASS_DEPTH_PASS"/>
+ <enum name="GL_STENCIL_REF"/>
+ <enum name="GL_STENCIL_WRITEMASK"/>
+ <enum name="GL_VIEWPORT"/>
+ <enum name="GL_DITHER"/>
+ <enum name="GL_BLEND_DST"/>
+ <enum name="GL_BLEND_SRC"/>
+ <enum name="GL_BLEND"/>
+ <enum name="GL_LOGIC_OP_MODE"/>
+ <enum name="GL_COLOR_LOGIC_OP"/>
+ <enum name="GL_DRAW_BUFFER"/>
+ <enum name="GL_READ_BUFFER"/>
+ <enum name="GL_SCISSOR_BOX"/>
+ <enum name="GL_SCISSOR_TEST"/>
+ <enum name="GL_COLOR_CLEAR_VALUE"/>
+ <enum name="GL_COLOR_WRITEMASK"/>
+ <enum name="GL_DOUBLEBUFFER"/>
+ <enum name="GL_STEREO"/>
+ <enum name="GL_LINE_SMOOTH_HINT"/>
+ <enum name="GL_POLYGON_SMOOTH_HINT"/>
+ <enum name="GL_UNPACK_SWAP_BYTES"/>
+ <enum name="GL_UNPACK_LSB_FIRST"/>
+ <enum name="GL_UNPACK_ROW_LENGTH"/>
+ <enum name="GL_UNPACK_SKIP_ROWS"/>
+ <enum name="GL_UNPACK_SKIP_PIXELS"/>
+ <enum name="GL_UNPACK_ALIGNMENT"/>
+ <enum name="GL_PACK_SWAP_BYTES"/>
+ <enum name="GL_PACK_LSB_FIRST"/>
+ <enum name="GL_PACK_ROW_LENGTH"/>
+ <enum name="GL_PACK_SKIP_ROWS"/>
+ <enum name="GL_PACK_SKIP_PIXELS"/>
+ <enum name="GL_PACK_ALIGNMENT"/>
+ <enum name="GL_MAX_TEXTURE_SIZE"/>
+ <enum name="GL_MAX_VIEWPORT_DIMS"/>
+ <enum name="GL_SUBPIXEL_BITS"/>
+ <enum name="GL_TEXTURE_1D"/>
+ <enum name="GL_TEXTURE_2D"/>
+ <enum name="GL_POLYGON_OFFSET_UNITS"/>
+ <enum name="GL_POLYGON_OFFSET_POINT"/>
+ <enum name="GL_POLYGON_OFFSET_LINE"/>
+ <enum name="GL_POLYGON_OFFSET_FILL"/>
+ <enum name="GL_POLYGON_OFFSET_FACTOR"/>
+ <enum name="GL_TEXTURE_BINDING_1D"/>
+ <enum name="GL_TEXTURE_BINDING_2D"/>
+ <enum name="GL_TEXTURE_WIDTH"/>
+ <enum name="GL_TEXTURE_HEIGHT"/>
+ <enum name="GL_TEXTURE_INTERNAL_FORMAT"/>
+ <enum name="GL_TEXTURE_BORDER_COLOR"/>
+ <enum name="GL_TEXTURE_RED_SIZE"/>
+ <enum name="GL_TEXTURE_GREEN_SIZE"/>
+ <enum name="GL_TEXTURE_BLUE_SIZE"/>
+ <enum name="GL_TEXTURE_ALPHA_SIZE"/>
+ <enum name="GL_DONT_CARE"/>
+ <enum name="GL_FASTEST"/>
+ <enum name="GL_NICEST"/>
+ <enum name="GL_BYTE"/>
+ <enum name="GL_UNSIGNED_BYTE"/>
+ <enum name="GL_SHORT"/>
+ <enum name="GL_UNSIGNED_SHORT"/>
+ <enum name="GL_INT"/>
+ <enum name="GL_UNSIGNED_INT"/>
+ <enum name="GL_FLOAT"/>
+ <enum name="GL_DOUBLE"/>
+ <enum name="GL_STACK_OVERFLOW"/>
+ <enum name="GL_STACK_UNDERFLOW"/>
+ <enum name="GL_CLEAR"/>
+ <enum name="GL_AND"/>
+ <enum name="GL_AND_REVERSE"/>
+ <enum name="GL_COPY"/>
+ <enum name="GL_AND_INVERTED"/>
+ <enum name="GL_NOOP"/>
+ <enum name="GL_XOR"/>
+ <enum name="GL_OR"/>
+ <enum name="GL_NOR"/>
+ <enum name="GL_EQUIV"/>
+ <enum name="GL_INVERT"/>
+ <enum name="GL_OR_REVERSE"/>
+ <enum name="GL_COPY_INVERTED"/>
+ <enum name="GL_OR_INVERTED"/>
+ <enum name="GL_NAND"/>
+ <enum name="GL_SET"/>
+ <enum name="GL_TEXTURE"/>
+ <enum name="GL_COLOR"/>
+ <enum name="GL_DEPTH"/>
+ <enum name="GL_STENCIL"/>
+ <enum name="GL_STENCIL_INDEX"/>
+ <enum name="GL_DEPTH_COMPONENT"/>
+ <enum name="GL_RED"/>
+ <enum name="GL_GREEN"/>
+ <enum name="GL_BLUE"/>
+ <enum name="GL_ALPHA"/>
+ <enum name="GL_RGB"/>
+ <enum name="GL_RGBA"/>
+ <enum name="GL_POINT"/>
+ <enum name="GL_LINE"/>
+ <enum name="GL_FILL"/>
+ <enum name="GL_KEEP"/>
+ <enum name="GL_REPLACE"/>
+ <enum name="GL_INCR"/>
+ <enum name="GL_DECR"/>
+ <enum name="GL_VENDOR"/>
+ <enum name="GL_RENDERER"/>
+ <enum name="GL_VERSION"/>
+ <enum name="GL_EXTENSIONS"/>
+ <enum name="GL_NEAREST"/>
+ <enum name="GL_LINEAR"/>
+ <enum name="GL_NEAREST_MIPMAP_NEAREST"/>
+ <enum name="GL_LINEAR_MIPMAP_NEAREST"/>
+ <enum name="GL_NEAREST_MIPMAP_LINEAR"/>
+ <enum name="GL_LINEAR_MIPMAP_LINEAR"/>
+ <enum name="GL_TEXTURE_MAG_FILTER"/>
+ <enum name="GL_TEXTURE_MIN_FILTER"/>
+ <enum name="GL_TEXTURE_WRAP_S"/>
+ <enum name="GL_TEXTURE_WRAP_T"/>
+ <enum name="GL_PROXY_TEXTURE_1D"/>
+ <enum name="GL_PROXY_TEXTURE_2D"/>
+ <enum name="GL_REPEAT"/>
+ <enum name="GL_R3_G3_B2"/>
+ <enum name="GL_RGB4"/>
+ <enum name="GL_RGB5"/>
+ <enum name="GL_RGB8"/>
+ <enum name="GL_RGB10"/>
+ <enum name="GL_RGB12"/>
+ <enum name="GL_RGB16"/>
+ <enum name="GL_RGBA2"/>
+ <enum name="GL_RGBA4"/>
+ <enum name="GL_RGB5_A1"/>
+ <enum name="GL_RGBA8"/>
+ <enum name="GL_RGB10_A2"/>
+ <enum name="GL_RGBA12"/>
+ <enum name="GL_RGBA16"/>
+ <enum name="GL_CURRENT_BIT"/>
+ <enum name="GL_POINT_BIT"/>
+ <enum name="GL_LINE_BIT"/>
+ <enum name="GL_POLYGON_BIT"/>
+ <enum name="GL_POLYGON_STIPPLE_BIT"/>
+ <enum name="GL_PIXEL_MODE_BIT"/>
+ <enum name="GL_LIGHTING_BIT"/>
+ <enum name="GL_FOG_BIT"/>
+ <enum name="GL_ACCUM_BUFFER_BIT"/>
+ <enum name="GL_VIEWPORT_BIT"/>
+ <enum name="GL_TRANSFORM_BIT"/>
+ <enum name="GL_ENABLE_BIT"/>
+ <enum name="GL_HINT_BIT"/>
+ <enum name="GL_EVAL_BIT"/>
+ <enum name="GL_LIST_BIT"/>
+ <enum name="GL_TEXTURE_BIT"/>
+ <enum name="GL_SCISSOR_BIT"/>
+ <enum name="GL_ALL_ATTRIB_BITS"/>
+ <enum name="GL_CLIENT_PIXEL_STORE_BIT"/>
+ <enum name="GL_CLIENT_VERTEX_ARRAY_BIT"/>
+ <enum name="GL_CLIENT_ALL_ATTRIB_BITS"/>
+ <enum name="GL_QUAD_STRIP"/>
+ <enum name="GL_POLYGON"/>
+ <enum name="GL_ACCUM"/>
+ <enum name="GL_LOAD"/>
+ <enum name="GL_RETURN"/>
+ <enum name="GL_MULT"/>
+ <enum name="GL_ADD"/>
+ <enum name="GL_AUX0"/>
+ <enum name="GL_AUX1"/>
+ <enum name="GL_AUX2"/>
+ <enum name="GL_AUX3"/>
+ <enum name="GL_2D"/>
+ <enum name="GL_3D"/>
+ <enum name="GL_3D_COLOR"/>
+ <enum name="GL_3D_COLOR_TEXTURE"/>
+ <enum name="GL_4D_COLOR_TEXTURE"/>
+ <enum name="GL_PASS_THROUGH_TOKEN"/>
+ <enum name="GL_POINT_TOKEN"/>
+ <enum name="GL_LINE_TOKEN"/>
+ <enum name="GL_POLYGON_TOKEN"/>
+ <enum name="GL_BITMAP_TOKEN"/>
+ <enum name="GL_DRAW_PIXEL_TOKEN"/>
+ <enum name="GL_COPY_PIXEL_TOKEN"/>
+ <enum name="GL_LINE_RESET_TOKEN"/>
+ <enum name="GL_EXP"/>
+ <enum name="GL_EXP2"/>
+ <enum name="GL_COEFF"/>
+ <enum name="GL_ORDER"/>
+ <enum name="GL_DOMAIN"/>
+ <enum name="GL_PIXEL_MAP_I_TO_I"/>
+ <enum name="GL_PIXEL_MAP_S_TO_S"/>
+ <enum name="GL_PIXEL_MAP_I_TO_R"/>
+ <enum name="GL_PIXEL_MAP_I_TO_G"/>
+ <enum name="GL_PIXEL_MAP_I_TO_B"/>
+ <enum name="GL_PIXEL_MAP_I_TO_A"/>
+ <enum name="GL_PIXEL_MAP_R_TO_R"/>
+ <enum name="GL_PIXEL_MAP_G_TO_G"/>
+ <enum name="GL_PIXEL_MAP_B_TO_B"/>
+ <enum name="GL_PIXEL_MAP_A_TO_A"/>
+ <enum name="GL_VERTEX_ARRAY_POINTER"/>
+ <enum name="GL_NORMAL_ARRAY_POINTER"/>
+ <enum name="GL_COLOR_ARRAY_POINTER"/>
+ <enum name="GL_INDEX_ARRAY_POINTER"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_POINTER"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_POINTER"/>
+ <enum name="GL_FEEDBACK_BUFFER_POINTER"/>
+ <enum name="GL_SELECTION_BUFFER_POINTER"/>
+ <enum name="GL_CURRENT_COLOR"/>
+ <enum name="GL_CURRENT_INDEX"/>
+ <enum name="GL_CURRENT_NORMAL"/>
+ <enum name="GL_CURRENT_TEXTURE_COORDS"/>
+ <enum name="GL_CURRENT_RASTER_COLOR"/>
+ <enum name="GL_CURRENT_RASTER_INDEX"/>
+ <enum name="GL_CURRENT_RASTER_TEXTURE_COORDS"/>
+ <enum name="GL_CURRENT_RASTER_POSITION"/>
+ <enum name="GL_CURRENT_RASTER_POSITION_VALID"/>
+ <enum name="GL_CURRENT_RASTER_DISTANCE"/>
+ <enum name="GL_POINT_SMOOTH"/>
+ <enum name="GL_LINE_STIPPLE"/>
+ <enum name="GL_LINE_STIPPLE_PATTERN"/>
+ <enum name="GL_LINE_STIPPLE_REPEAT"/>
+ <enum name="GL_LIST_MODE"/>
+ <enum name="GL_MAX_LIST_NESTING"/>
+ <enum name="GL_LIST_BASE"/>
+ <enum name="GL_LIST_INDEX"/>
+ <enum name="GL_POLYGON_STIPPLE"/>
+ <enum name="GL_EDGE_FLAG"/>
+ <enum name="GL_LIGHTING"/>
+ <enum name="GL_LIGHT_MODEL_LOCAL_VIEWER"/>
+ <enum name="GL_LIGHT_MODEL_TWO_SIDE"/>
+ <enum name="GL_LIGHT_MODEL_AMBIENT"/>
+ <enum name="GL_SHADE_MODEL"/>
+ <enum name="GL_COLOR_MATERIAL_FACE"/>
+ <enum name="GL_COLOR_MATERIAL_PARAMETER"/>
+ <enum name="GL_COLOR_MATERIAL"/>
+ <enum name="GL_FOG"/>
+ <enum name="GL_FOG_INDEX"/>
+ <enum name="GL_FOG_DENSITY"/>
+ <enum name="GL_FOG_START"/>
+ <enum name="GL_FOG_END"/>
+ <enum name="GL_FOG_MODE"/>
+ <enum name="GL_FOG_COLOR"/>
+ <enum name="GL_ACCUM_CLEAR_VALUE"/>
+ <enum name="GL_MATRIX_MODE"/>
+ <enum name="GL_NORMALIZE"/>
+ <enum name="GL_MODELVIEW_STACK_DEPTH"/>
+ <enum name="GL_PROJECTION_STACK_DEPTH"/>
+ <enum name="GL_TEXTURE_STACK_DEPTH"/>
+ <enum name="GL_MODELVIEW_MATRIX"/>
+ <enum name="GL_PROJECTION_MATRIX"/>
+ <enum name="GL_TEXTURE_MATRIX"/>
+ <enum name="GL_ATTRIB_STACK_DEPTH"/>
+ <enum name="GL_CLIENT_ATTRIB_STACK_DEPTH"/>
+ <enum name="GL_ALPHA_TEST"/>
+ <enum name="GL_ALPHA_TEST_FUNC"/>
+ <enum name="GL_ALPHA_TEST_REF"/>
+ <enum name="GL_INDEX_LOGIC_OP"/>
+ <enum name="GL_LOGIC_OP"/>
+ <enum name="GL_AUX_BUFFERS"/>
+ <enum name="GL_INDEX_CLEAR_VALUE"/>
+ <enum name="GL_INDEX_WRITEMASK"/>
+ <enum name="GL_INDEX_MODE"/>
+ <enum name="GL_RGBA_MODE"/>
+ <enum name="GL_RENDER_MODE"/>
+ <enum name="GL_PERSPECTIVE_CORRECTION_HINT"/>
+ <enum name="GL_POINT_SMOOTH_HINT"/>
+ <enum name="GL_FOG_HINT"/>
+ <enum name="GL_TEXTURE_GEN_S"/>
+ <enum name="GL_TEXTURE_GEN_T"/>
+ <enum name="GL_TEXTURE_GEN_R"/>
+ <enum name="GL_TEXTURE_GEN_Q"/>
+ <enum name="GL_PIXEL_MAP_I_TO_I_SIZE"/>
+ <enum name="GL_PIXEL_MAP_S_TO_S_SIZE"/>
+ <enum name="GL_PIXEL_MAP_I_TO_R_SIZE"/>
+ <enum name="GL_PIXEL_MAP_I_TO_G_SIZE"/>
+ <enum name="GL_PIXEL_MAP_I_TO_B_SIZE"/>
+ <enum name="GL_PIXEL_MAP_I_TO_A_SIZE"/>
+ <enum name="GL_PIXEL_MAP_R_TO_R_SIZE"/>
+ <enum name="GL_PIXEL_MAP_G_TO_G_SIZE"/>
+ <enum name="GL_PIXEL_MAP_B_TO_B_SIZE"/>
+ <enum name="GL_PIXEL_MAP_A_TO_A_SIZE"/>
+ <enum name="GL_MAP_COLOR"/>
+ <enum name="GL_MAP_STENCIL"/>
+ <enum name="GL_INDEX_SHIFT"/>
+ <enum name="GL_INDEX_OFFSET"/>
+ <enum name="GL_RED_SCALE"/>
+ <enum name="GL_RED_BIAS"/>
+ <enum name="GL_ZOOM_X"/>
+ <enum name="GL_ZOOM_Y"/>
+ <enum name="GL_GREEN_SCALE"/>
+ <enum name="GL_GREEN_BIAS"/>
+ <enum name="GL_BLUE_SCALE"/>
+ <enum name="GL_BLUE_BIAS"/>
+ <enum name="GL_ALPHA_SCALE"/>
+ <enum name="GL_ALPHA_BIAS"/>
+ <enum name="GL_DEPTH_SCALE"/>
+ <enum name="GL_DEPTH_BIAS"/>
+ <enum name="GL_MAX_EVAL_ORDER"/>
+ <enum name="GL_MAX_LIGHTS"/>
+ <enum name="GL_MAX_CLIP_PLANES"/>
+ <enum name="GL_MAX_PIXEL_MAP_TABLE"/>
+ <enum name="GL_MAX_ATTRIB_STACK_DEPTH"/>
+ <enum name="GL_MAX_MODELVIEW_STACK_DEPTH"/>
+ <enum name="GL_MAX_NAME_STACK_DEPTH"/>
+ <enum name="GL_MAX_PROJECTION_STACK_DEPTH"/>
+ <enum name="GL_MAX_TEXTURE_STACK_DEPTH"/>
+ <enum name="GL_MAX_CLIENT_ATTRIB_STACK_DEPTH"/>
+ <enum name="GL_INDEX_BITS"/>
+ <enum name="GL_RED_BITS"/>
+ <enum name="GL_GREEN_BITS"/>
+ <enum name="GL_BLUE_BITS"/>
+ <enum name="GL_ALPHA_BITS"/>
+ <enum name="GL_DEPTH_BITS"/>
+ <enum name="GL_STENCIL_BITS"/>
+ <enum name="GL_ACCUM_RED_BITS"/>
+ <enum name="GL_ACCUM_GREEN_BITS"/>
+ <enum name="GL_ACCUM_BLUE_BITS"/>
+ <enum name="GL_ACCUM_ALPHA_BITS"/>
+ <enum name="GL_NAME_STACK_DEPTH"/>
+ <enum name="GL_AUTO_NORMAL"/>
+ <enum name="GL_MAP1_COLOR_4"/>
+ <enum name="GL_MAP1_INDEX"/>
+ <enum name="GL_MAP1_NORMAL"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_1"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_2"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_3"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_4"/>
+ <enum name="GL_MAP1_VERTEX_3"/>
+ <enum name="GL_MAP1_VERTEX_4"/>
+ <enum name="GL_MAP2_COLOR_4"/>
+ <enum name="GL_MAP2_INDEX"/>
+ <enum name="GL_MAP2_NORMAL"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_1"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_2"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_3"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_4"/>
+ <enum name="GL_MAP2_VERTEX_3"/>
+ <enum name="GL_MAP2_VERTEX_4"/>
+ <enum name="GL_MAP1_GRID_DOMAIN"/>
+ <enum name="GL_MAP1_GRID_SEGMENTS"/>
+ <enum name="GL_MAP2_GRID_DOMAIN"/>
+ <enum name="GL_MAP2_GRID_SEGMENTS"/>
+ <enum name="GL_FEEDBACK_BUFFER_SIZE"/>
+ <enum name="GL_FEEDBACK_BUFFER_TYPE"/>
+ <enum name="GL_SELECTION_BUFFER_SIZE"/>
+ <enum name="GL_VERTEX_ARRAY"/>
+ <enum name="GL_NORMAL_ARRAY"/>
+ <enum name="GL_COLOR_ARRAY"/>
+ <enum name="GL_INDEX_ARRAY"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY"/>
+ <enum name="GL_EDGE_FLAG_ARRAY"/>
+ <enum name="GL_VERTEX_ARRAY_SIZE"/>
+ <enum name="GL_VERTEX_ARRAY_TYPE"/>
+ <enum name="GL_VERTEX_ARRAY_STRIDE"/>
+ <enum name="GL_NORMAL_ARRAY_TYPE"/>
+ <enum name="GL_NORMAL_ARRAY_STRIDE"/>
+ <enum name="GL_COLOR_ARRAY_SIZE"/>
+ <enum name="GL_COLOR_ARRAY_TYPE"/>
+ <enum name="GL_COLOR_ARRAY_STRIDE"/>
+ <enum name="GL_INDEX_ARRAY_TYPE"/>
+ <enum name="GL_INDEX_ARRAY_STRIDE"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_SIZE"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_TYPE"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_STRIDE"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_STRIDE"/>
+ <enum name="GL_TEXTURE_COMPONENTS"/>
+ <enum name="GL_TEXTURE_BORDER"/>
+ <enum name="GL_TEXTURE_LUMINANCE_SIZE"/>
+ <enum name="GL_TEXTURE_INTENSITY_SIZE"/>
+ <enum name="GL_TEXTURE_PRIORITY"/>
+ <enum name="GL_TEXTURE_RESIDENT"/>
+ <enum name="GL_AMBIENT"/>
+ <enum name="GL_DIFFUSE"/>
+ <enum name="GL_SPECULAR"/>
+ <enum name="GL_POSITION"/>
+ <enum name="GL_SPOT_DIRECTION"/>
+ <enum name="GL_SPOT_EXPONENT"/>
+ <enum name="GL_SPOT_CUTOFF"/>
+ <enum name="GL_CONSTANT_ATTENUATION"/>
+ <enum name="GL_LINEAR_ATTENUATION"/>
+ <enum name="GL_QUADRATIC_ATTENUATION"/>
+ <enum name="GL_COMPILE"/>
+ <enum name="GL_COMPILE_AND_EXECUTE"/>
+ <enum name="GL_2_BYTES"/>
+ <enum name="GL_3_BYTES"/>
+ <enum name="GL_4_BYTES"/>
+ <enum name="GL_EMISSION"/>
+ <enum name="GL_SHININESS"/>
+ <enum name="GL_AMBIENT_AND_DIFFUSE"/>
+ <enum name="GL_COLOR_INDEXES"/>
+ <enum name="GL_MODELVIEW"/>
+ <enum name="GL_PROJECTION"/>
+ <enum name="GL_COLOR_INDEX"/>
+ <enum name="GL_LUMINANCE"/>
+ <enum name="GL_LUMINANCE_ALPHA"/>
+ <enum name="GL_BITMAP"/>
+ <enum name="GL_RENDER"/>
+ <enum name="GL_FEEDBACK"/>
+ <enum name="GL_SELECT"/>
+ <enum name="GL_FLAT"/>
+ <enum name="GL_SMOOTH"/>
+ <enum name="GL_S"/>
+ <enum name="GL_T"/>
+ <enum name="GL_R"/>
+ <enum name="GL_Q"/>
+ <enum name="GL_MODULATE"/>
+ <enum name="GL_DECAL"/>
+ <enum name="GL_TEXTURE_ENV_MODE"/>
+ <enum name="GL_TEXTURE_ENV_COLOR"/>
+ <enum name="GL_TEXTURE_ENV"/>
+ <enum name="GL_EYE_LINEAR"/>
+ <enum name="GL_OBJECT_LINEAR"/>
+ <enum name="GL_SPHERE_MAP"/>
+ <enum name="GL_TEXTURE_GEN_MODE"/>
+ <enum name="GL_OBJECT_PLANE"/>
+ <enum name="GL_EYE_PLANE"/>
+ <enum name="GL_CLAMP"/>
+ <enum name="GL_ALPHA4"/>
+ <enum name="GL_ALPHA8"/>
+ <enum name="GL_ALPHA12"/>
+ <enum name="GL_ALPHA16"/>
+ <enum name="GL_LUMINANCE4"/>
+ <enum name="GL_LUMINANCE8"/>
+ <enum name="GL_LUMINANCE12"/>
+ <enum name="GL_LUMINANCE16"/>
+ <enum name="GL_LUMINANCE4_ALPHA4"/>
+ <enum name="GL_LUMINANCE6_ALPHA2"/>
+ <enum name="GL_LUMINANCE8_ALPHA8"/>
+ <enum name="GL_LUMINANCE12_ALPHA4"/>
+ <enum name="GL_LUMINANCE12_ALPHA12"/>
+ <enum name="GL_LUMINANCE16_ALPHA16"/>
+ <enum name="GL_INTENSITY"/>
+ <enum name="GL_INTENSITY4"/>
+ <enum name="GL_INTENSITY8"/>
+ <enum name="GL_INTENSITY12"/>
+ <enum name="GL_INTENSITY16"/>
+ <enum name="GL_V2F"/>
+ <enum name="GL_V3F"/>
+ <enum name="GL_C4UB_V2F"/>
+ <enum name="GL_C4UB_V3F"/>
+ <enum name="GL_C3F_V3F"/>
+ <enum name="GL_N3F_V3F"/>
+ <enum name="GL_C4F_N3F_V3F"/>
+ <enum name="GL_T2F_V3F"/>
+ <enum name="GL_T4F_V4F"/>
+ <enum name="GL_T2F_C4UB_V3F"/>
+ <enum name="GL_T2F_C3F_V3F"/>
+ <enum name="GL_T2F_N3F_V3F"/>
+ <enum name="GL_T2F_C4F_N3F_V3F"/>
+ <enum name="GL_T4F_C4F_N3F_V4F"/>
+ <enum name="GL_CLIP_PLANE0"/>
+ <enum name="GL_CLIP_PLANE1"/>
+ <enum name="GL_CLIP_PLANE2"/>
+ <enum name="GL_CLIP_PLANE3"/>
+ <enum name="GL_CLIP_PLANE4"/>
+ <enum name="GL_CLIP_PLANE5"/>
+ <enum name="GL_LIGHT0"/>
+ <enum name="GL_LIGHT1"/>
+ <enum name="GL_LIGHT2"/>
+ <enum name="GL_LIGHT3"/>
+ <enum name="GL_LIGHT4"/>
+ <enum name="GL_LIGHT5"/>
+ <enum name="GL_LIGHT6"/>
+ <enum name="GL_LIGHT7"/>
+ <command name="glDrawArrays"/>
+ <command name="glDrawElements"/>
+ <command name="glGetPointerv"/>
+ <command name="glPolygonOffset"/>
+ <command name="glCopyTexImage1D"/>
+ <command name="glCopyTexImage2D"/>
+ <command name="glCopyTexSubImage1D"/>
+ <command name="glCopyTexSubImage2D"/>
+ <command name="glTexSubImage1D"/>
+ <command name="glTexSubImage2D"/>
+ <command name="glBindTexture"/>
+ <command name="glDeleteTextures"/>
+ <command name="glGenTextures"/>
+ <command name="glIsTexture"/>
+ <command name="glArrayElement"/>
+ <command name="glColorPointer"/>
+ <command name="glDisableClientState"/>
+ <command name="glEdgeFlagPointer"/>
+ <command name="glEnableClientState"/>
+ <command name="glIndexPointer"/>
+ <command name="glInterleavedArrays"/>
+ <command name="glNormalPointer"/>
+ <command name="glTexCoordPointer"/>
+ <command name="glVertexPointer"/>
+ <command name="glAreTexturesResident"/>
+ <command name="glPrioritizeTextures"/>
+ <command name="glIndexub"/>
+ <command name="glIndexubv"/>
+ <command name="glPopClientAttrib"/>
+ <command name="glPushClientAttrib"/>
+ </require>
+ </feature>
+ <feature api="gl" name="GL_VERSION_1_2" number="1.2">
+ <require>
+ <enum name="GL_UNSIGNED_BYTE_3_3_2"/>
+ <enum name="GL_UNSIGNED_SHORT_4_4_4_4"/>
+ <enum name="GL_UNSIGNED_SHORT_5_5_5_1"/>
+ <enum name="GL_UNSIGNED_INT_8_8_8_8"/>
+ <enum name="GL_UNSIGNED_INT_10_10_10_2"/>
+ <enum name="GL_TEXTURE_BINDING_3D"/>
+ <enum name="GL_PACK_SKIP_IMAGES"/>
+ <enum name="GL_PACK_IMAGE_HEIGHT"/>
+ <enum name="GL_UNPACK_SKIP_IMAGES"/>
+ <enum name="GL_UNPACK_IMAGE_HEIGHT"/>
+ <enum name="GL_TEXTURE_3D"/>
+ <enum name="GL_PROXY_TEXTURE_3D"/>
+ <enum name="GL_TEXTURE_DEPTH"/>
+ <enum name="GL_TEXTURE_WRAP_R"/>
+ <enum name="GL_MAX_3D_TEXTURE_SIZE"/>
+ <enum name="GL_UNSIGNED_BYTE_2_3_3_REV"/>
+ <enum name="GL_UNSIGNED_SHORT_5_6_5"/>
+ <enum name="GL_UNSIGNED_SHORT_5_6_5_REV"/>
+ <enum name="GL_UNSIGNED_SHORT_4_4_4_4_REV"/>
+ <enum name="GL_UNSIGNED_SHORT_1_5_5_5_REV"/>
+ <enum name="GL_UNSIGNED_INT_8_8_8_8_REV"/>
+ <enum name="GL_UNSIGNED_INT_2_10_10_10_REV"/>
+ <enum name="GL_BGR"/>
+ <enum name="GL_BGRA"/>
+ <enum name="GL_MAX_ELEMENTS_VERTICES"/>
+ <enum name="GL_MAX_ELEMENTS_INDICES"/>
+ <enum name="GL_CLAMP_TO_EDGE"/>
+ <enum name="GL_TEXTURE_MIN_LOD"/>
+ <enum name="GL_TEXTURE_MAX_LOD"/>
+ <enum name="GL_TEXTURE_BASE_LEVEL"/>
+ <enum name="GL_TEXTURE_MAX_LEVEL"/>
+ <enum name="GL_SMOOTH_POINT_SIZE_RANGE"/>
+ <enum name="GL_SMOOTH_POINT_SIZE_GRANULARITY"/>
+ <enum name="GL_SMOOTH_LINE_WIDTH_RANGE"/>
+ <enum name="GL_SMOOTH_LINE_WIDTH_GRANULARITY"/>
+ <enum name="GL_ALIASED_LINE_WIDTH_RANGE"/>
+ <enum name="GL_RESCALE_NORMAL"/>
+ <enum name="GL_LIGHT_MODEL_COLOR_CONTROL"/>
+ <enum name="GL_SINGLE_COLOR"/>
+ <enum name="GL_SEPARATE_SPECULAR_COLOR"/>
+ <enum name="GL_ALIASED_POINT_SIZE_RANGE"/>
+ <command name="glBlendColor"/>
+ <command name="glBlendEquation"/>
+ <command name="glDrawRangeElements"/>
+ <command name="glTexImage3D"/>
+ <command name="glTexSubImage3D"/>
+ <command name="glCopyTexSubImage3D"/>
+ </require>
+ </feature>
+ <feature api="gl" name="GL_VERSION_1_3" number="1.3">
+ <require>
+ <enum name="GL_TEXTURE0"/>
+ <enum name="GL_TEXTURE1"/>
+ <enum name="GL_TEXTURE2"/>
+ <enum name="GL_TEXTURE3"/>
+ <enum name="GL_TEXTURE4"/>
+ <enum name="GL_TEXTURE5"/>
+ <enum name="GL_TEXTURE6"/>
+ <enum name="GL_TEXTURE7"/>
+ <enum name="GL_TEXTURE8"/>
+ <enum name="GL_TEXTURE9"/>
+ <enum name="GL_TEXTURE10"/>
+ <enum name="GL_TEXTURE11"/>
+ <enum name="GL_TEXTURE12"/>
+ <enum name="GL_TEXTURE13"/>
+ <enum name="GL_TEXTURE14"/>
+ <enum name="GL_TEXTURE15"/>
+ <enum name="GL_TEXTURE16"/>
+ <enum name="GL_TEXTURE17"/>
+ <enum name="GL_TEXTURE18"/>
+ <enum name="GL_TEXTURE19"/>
+ <enum name="GL_TEXTURE20"/>
+ <enum name="GL_TEXTURE21"/>
+ <enum name="GL_TEXTURE22"/>
+ <enum name="GL_TEXTURE23"/>
+ <enum name="GL_TEXTURE24"/>
+ <enum name="GL_TEXTURE25"/>
+ <enum name="GL_TEXTURE26"/>
+ <enum name="GL_TEXTURE27"/>
+ <enum name="GL_TEXTURE28"/>
+ <enum name="GL_TEXTURE29"/>
+ <enum name="GL_TEXTURE30"/>
+ <enum name="GL_TEXTURE31"/>
+ <enum name="GL_ACTIVE_TEXTURE"/>
+ <enum name="GL_MULTISAMPLE"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_COVERAGE"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_ONE"/>
+ <enum name="GL_SAMPLE_COVERAGE"/>
+ <enum name="GL_SAMPLE_BUFFERS"/>
+ <enum name="GL_SAMPLES"/>
+ <enum name="GL_SAMPLE_COVERAGE_VALUE"/>
+ <enum name="GL_SAMPLE_COVERAGE_INVERT"/>
+ <enum name="GL_TEXTURE_CUBE_MAP"/>
+ <enum name="GL_TEXTURE_BINDING_CUBE_MAP"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_X"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z"/>
+ <enum name="GL_PROXY_TEXTURE_CUBE_MAP"/>
+ <enum name="GL_MAX_CUBE_MAP_TEXTURE_SIZE"/>
+ <enum name="GL_COMPRESSED_RGB"/>
+ <enum name="GL_COMPRESSED_RGBA"/>
+ <enum name="GL_TEXTURE_COMPRESSION_HINT"/>
+ <enum name="GL_TEXTURE_COMPRESSED_IMAGE_SIZE"/>
+ <enum name="GL_TEXTURE_COMPRESSED"/>
+ <enum name="GL_NUM_COMPRESSED_TEXTURE_FORMATS"/>
+ <enum name="GL_COMPRESSED_TEXTURE_FORMATS"/>
+ <enum name="GL_CLAMP_TO_BORDER"/>
+ <enum name="GL_CLIENT_ACTIVE_TEXTURE"/>
+ <enum name="GL_MAX_TEXTURE_UNITS"/>
+ <enum name="GL_TRANSPOSE_MODELVIEW_MATRIX"/>
+ <enum name="GL_TRANSPOSE_PROJECTION_MATRIX"/>
+ <enum name="GL_TRANSPOSE_TEXTURE_MATRIX"/>
+ <enum name="GL_TRANSPOSE_COLOR_MATRIX"/>
+ <enum name="GL_MULTISAMPLE_BIT"/>
+ <enum name="GL_NORMAL_MAP"/>
+ <enum name="GL_REFLECTION_MAP"/>
+ <enum name="GL_COMPRESSED_ALPHA"/>
+ <enum name="GL_COMPRESSED_LUMINANCE"/>
+ <enum name="GL_COMPRESSED_LUMINANCE_ALPHA"/>
+ <enum name="GL_COMPRESSED_INTENSITY"/>
+ <enum name="GL_COMBINE"/>
+ <enum name="GL_COMBINE_RGB"/>
+ <enum name="GL_COMBINE_ALPHA"/>
+ <enum name="GL_SOURCE0_RGB"/>
+ <enum name="GL_SOURCE1_RGB"/>
+ <enum name="GL_SOURCE2_RGB"/>
+ <enum name="GL_SOURCE0_ALPHA"/>
+ <enum name="GL_SOURCE1_ALPHA"/>
+ <enum name="GL_SOURCE2_ALPHA"/>
+ <enum name="GL_OPERAND0_RGB"/>
+ <enum name="GL_OPERAND1_RGB"/>
+ <enum name="GL_OPERAND2_RGB"/>
+ <enum name="GL_OPERAND0_ALPHA"/>
+ <enum name="GL_OPERAND1_ALPHA"/>
+ <enum name="GL_OPERAND2_ALPHA"/>
+ <enum name="GL_RGB_SCALE"/>
+ <enum name="GL_ADD_SIGNED"/>
+ <enum name="GL_INTERPOLATE"/>
+ <enum name="GL_SUBTRACT"/>
+ <enum name="GL_CONSTANT"/>
+ <enum name="GL_PRIMARY_COLOR"/>
+ <enum name="GL_PREVIOUS"/>
+ <enum name="GL_DOT3_RGB"/>
+ <enum name="GL_DOT3_RGBA"/>
+ <command name="glActiveTexture"/>
+ <command name="glSampleCoverage"/>
+ <command name="glCompressedTexImage3D"/>
+ <command name="glCompressedTexImage2D"/>
+ <command name="glCompressedTexImage1D"/>
+ <command name="glCompressedTexSubImage3D"/>
+ <command name="glCompressedTexSubImage2D"/>
+ <command name="glCompressedTexSubImage1D"/>
+ <command name="glGetCompressedTexImage"/>
+ <command name="glClientActiveTexture"/>
+ <command name="glMultiTexCoord1d"/>
+ <command name="glMultiTexCoord1dv"/>
+ <command name="glMultiTexCoord1f"/>
+ <command name="glMultiTexCoord1fv"/>
+ <command name="glMultiTexCoord1i"/>
+ <command name="glMultiTexCoord1iv"/>
+ <command name="glMultiTexCoord1s"/>
+ <command name="glMultiTexCoord1sv"/>
+ <command name="glMultiTexCoord2d"/>
+ <command name="glMultiTexCoord2dv"/>
+ <command name="glMultiTexCoord2f"/>
+ <command name="glMultiTexCoord2fv"/>
+ <command name="glMultiTexCoord2i"/>
+ <command name="glMultiTexCoord2iv"/>
+ <command name="glMultiTexCoord2s"/>
+ <command name="glMultiTexCoord2sv"/>
+ <command name="glMultiTexCoord3d"/>
+ <command name="glMultiTexCoord3dv"/>
+ <command name="glMultiTexCoord3f"/>
+ <command name="glMultiTexCoord3fv"/>
+ <command name="glMultiTexCoord3i"/>
+ <command name="glMultiTexCoord3iv"/>
+ <command name="glMultiTexCoord3s"/>
+ <command name="glMultiTexCoord3sv"/>
+ <command name="glMultiTexCoord4d"/>
+ <command name="glMultiTexCoord4dv"/>
+ <command name="glMultiTexCoord4f"/>
+ <command name="glMultiTexCoord4fv"/>
+ <command name="glMultiTexCoord4i"/>
+ <command name="glMultiTexCoord4iv"/>
+ <command name="glMultiTexCoord4s"/>
+ <command name="glMultiTexCoord4sv"/>
+ <command name="glLoadTransposeMatrixf"/>
+ <command name="glLoadTransposeMatrixd"/>
+ <command name="glMultTransposeMatrixf"/>
+ <command name="glMultTransposeMatrixd"/>
+ </require>
+ </feature>
+ <feature api="gl" name="GL_VERSION_1_4" number="1.4">
+ <require>
+ <enum name="GL_BLEND_DST_RGB"/>
+ <enum name="GL_BLEND_SRC_RGB"/>
+ <enum name="GL_BLEND_DST_ALPHA"/>
+ <enum name="GL_BLEND_SRC_ALPHA"/>
+ <enum name="GL_POINT_FADE_THRESHOLD_SIZE"/>
+ <enum name="GL_DEPTH_COMPONENT16"/>
+ <enum name="GL_DEPTH_COMPONENT24"/>
+ <enum name="GL_DEPTH_COMPONENT32"/>
+ <enum name="GL_MIRRORED_REPEAT"/>
+ <enum name="GL_MAX_TEXTURE_LOD_BIAS"/>
+ <enum name="GL_TEXTURE_LOD_BIAS"/>
+ <enum name="GL_INCR_WRAP"/>
+ <enum name="GL_DECR_WRAP"/>
+ <enum name="GL_TEXTURE_DEPTH_SIZE"/>
+ <enum name="GL_TEXTURE_COMPARE_MODE"/>
+ <enum name="GL_TEXTURE_COMPARE_FUNC"/>
+ <enum name="GL_POINT_SIZE_MIN"/>
+ <enum name="GL_POINT_SIZE_MAX"/>
+ <enum name="GL_POINT_DISTANCE_ATTENUATION"/>
+ <enum name="GL_GENERATE_MIPMAP"/>
+ <enum name="GL_GENERATE_MIPMAP_HINT"/>
+ <enum name="GL_FOG_COORDINATE_SOURCE"/>
+ <enum name="GL_FOG_COORDINATE"/>
+ <enum name="GL_FRAGMENT_DEPTH"/>
+ <enum name="GL_CURRENT_FOG_COORDINATE"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_TYPE"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_STRIDE"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_POINTER"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY"/>
+ <enum name="GL_COLOR_SUM"/>
+ <enum name="GL_CURRENT_SECONDARY_COLOR"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_SIZE"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_TYPE"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_STRIDE"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_POINTER"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY"/>
+ <enum name="GL_TEXTURE_FILTER_CONTROL"/>
+ <enum name="GL_DEPTH_TEXTURE_MODE"/>
+ <enum name="GL_COMPARE_R_TO_TEXTURE"/>
+ <command name="glBlendFuncSeparate"/>
+ <command name="glMultiDrawArrays"/>
+ <command name="glMultiDrawElements"/>
+ <command name="glPointParameterf"/>
+ <command name="glPointParameterfv"/>
+ <command name="glPointParameteri"/>
+ <command name="glPointParameteriv"/>
+ <command name="glFogCoordf"/>
+ <command name="glFogCoordfv"/>
+ <command name="glFogCoordd"/>
+ <command name="glFogCoorddv"/>
+ <command name="glFogCoordPointer"/>
+ <command name="glSecondaryColor3b"/>
+ <command name="glSecondaryColor3bv"/>
+ <command name="glSecondaryColor3d"/>
+ <command name="glSecondaryColor3dv"/>
+ <command name="glSecondaryColor3f"/>
+ <command name="glSecondaryColor3fv"/>
+ <command name="glSecondaryColor3i"/>
+ <command name="glSecondaryColor3iv"/>
+ <command name="glSecondaryColor3s"/>
+ <command name="glSecondaryColor3sv"/>
+ <command name="glSecondaryColor3ub"/>
+ <command name="glSecondaryColor3ubv"/>
+ <command name="glSecondaryColor3ui"/>
+ <command name="glSecondaryColor3uiv"/>
+ <command name="glSecondaryColor3us"/>
+ <command name="glSecondaryColor3usv"/>
+ <command name="glSecondaryColorPointer"/>
+ <command name="glWindowPos2d"/>
+ <command name="glWindowPos2dv"/>
+ <command name="glWindowPos2f"/>
+ <command name="glWindowPos2fv"/>
+ <command name="glWindowPos2i"/>
+ <command name="glWindowPos2iv"/>
+ <command name="glWindowPos2s"/>
+ <command name="glWindowPos2sv"/>
+ <command name="glWindowPos3d"/>
+ <command name="glWindowPos3dv"/>
+ <command name="glWindowPos3f"/>
+ <command name="glWindowPos3fv"/>
+ <command name="glWindowPos3i"/>
+ <command name="glWindowPos3iv"/>
+ <command name="glWindowPos3s"/>
+ <command name="glWindowPos3sv"/>
+ </require>
+ </feature>
+ <feature api="gl" name="GL_VERSION_1_5" number="1.5">
+ <require>
+ <enum name="GL_BUFFER_SIZE"/>
+ <enum name="GL_BUFFER_USAGE"/>
+ <enum name="GL_QUERY_COUNTER_BITS"/>
+ <enum name="GL_CURRENT_QUERY"/>
+ <enum name="GL_QUERY_RESULT"/>
+ <enum name="GL_QUERY_RESULT_AVAILABLE"/>
+ <enum name="GL_ARRAY_BUFFER"/>
+ <enum name="GL_ELEMENT_ARRAY_BUFFER"/>
+ <enum name="GL_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_ELEMENT_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_READ_ONLY"/>
+ <enum name="GL_WRITE_ONLY"/>
+ <enum name="GL_READ_WRITE"/>
+ <enum name="GL_BUFFER_ACCESS"/>
+ <enum name="GL_BUFFER_MAPPED"/>
+ <enum name="GL_BUFFER_MAP_POINTER"/>
+ <enum name="GL_STREAM_DRAW"/>
+ <enum name="GL_STREAM_READ"/>
+ <enum name="GL_STREAM_COPY"/>
+ <enum name="GL_STATIC_DRAW"/>
+ <enum name="GL_STATIC_READ"/>
+ <enum name="GL_STATIC_COPY"/>
+ <enum name="GL_DYNAMIC_DRAW"/>
+ <enum name="GL_DYNAMIC_READ"/>
+ <enum name="GL_DYNAMIC_COPY"/>
+ <enum name="GL_SAMPLES_PASSED"/>
+ <enum name="GL_SRC1_ALPHA"/>
+ <enum name="GL_VERTEX_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_NORMAL_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_COLOR_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_INDEX_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_WEIGHT_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_FOG_COORD_SRC"/>
+ <enum name="GL_FOG_COORD"/>
+ <enum name="GL_CURRENT_FOG_COORD"/>
+ <enum name="GL_FOG_COORD_ARRAY_TYPE"/>
+ <enum name="GL_FOG_COORD_ARRAY_STRIDE"/>
+ <enum name="GL_FOG_COORD_ARRAY_POINTER"/>
+ <enum name="GL_FOG_COORD_ARRAY"/>
+ <enum name="GL_FOG_COORD_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_SRC0_RGB"/>
+ <enum name="GL_SRC1_RGB"/>
+ <enum name="GL_SRC2_RGB"/>
+ <enum name="GL_SRC0_ALPHA"/>
+ <enum name="GL_SRC2_ALPHA"/>
+ <command name="glGenQueries"/>
+ <command name="glDeleteQueries"/>
+ <command name="glIsQuery"/>
+ <command name="glBeginQuery"/>
+ <command name="glEndQuery"/>
+ <command name="glGetQueryiv"/>
+ <command name="glGetQueryObjectiv"/>
+ <command name="glGetQueryObjectuiv"/>
+ <command name="glBindBuffer"/>
+ <command name="glDeleteBuffers"/>
+ <command name="glGenBuffers"/>
+ <command name="glIsBuffer"/>
+ <command name="glBufferData"/>
+ <command name="glBufferSubData"/>
+ <command name="glGetBufferSubData"/>
+ <command name="glMapBuffer"/>
+ <command name="glUnmapBuffer"/>
+ <command name="glGetBufferParameteriv"/>
+ <command name="glGetBufferPointerv"/>
+ </require>
+ </feature>
+ <feature api="gl" name="GL_VERSION_2_0" number="2.0">
+ <require>
+ <enum name="GL_BLEND_EQUATION_RGB"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_ENABLED"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_SIZE"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_STRIDE"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_TYPE"/>
+ <enum name="GL_CURRENT_VERTEX_ATTRIB"/>
+ <enum name="GL_VERTEX_PROGRAM_POINT_SIZE"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_POINTER"/>
+ <enum name="GL_STENCIL_BACK_FUNC"/>
+ <enum name="GL_STENCIL_BACK_FAIL"/>
+ <enum name="GL_STENCIL_BACK_PASS_DEPTH_FAIL"/>
+ <enum name="GL_STENCIL_BACK_PASS_DEPTH_PASS"/>
+ <enum name="GL_MAX_DRAW_BUFFERS"/>
+ <enum name="GL_DRAW_BUFFER0"/>
+ <enum name="GL_DRAW_BUFFER1"/>
+ <enum name="GL_DRAW_BUFFER2"/>
+ <enum name="GL_DRAW_BUFFER3"/>
+ <enum name="GL_DRAW_BUFFER4"/>
+ <enum name="GL_DRAW_BUFFER5"/>
+ <enum name="GL_DRAW_BUFFER6"/>
+ <enum name="GL_DRAW_BUFFER7"/>
+ <enum name="GL_DRAW_BUFFER8"/>
+ <enum name="GL_DRAW_BUFFER9"/>
+ <enum name="GL_DRAW_BUFFER10"/>
+ <enum name="GL_DRAW_BUFFER11"/>
+ <enum name="GL_DRAW_BUFFER12"/>
+ <enum name="GL_DRAW_BUFFER13"/>
+ <enum name="GL_DRAW_BUFFER14"/>
+ <enum name="GL_DRAW_BUFFER15"/>
+ <enum name="GL_BLEND_EQUATION_ALPHA"/>
+ <enum name="GL_MAX_VERTEX_ATTRIBS"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_NORMALIZED"/>
+ <enum name="GL_MAX_TEXTURE_IMAGE_UNITS"/>
+ <enum name="GL_FRAGMENT_SHADER"/>
+ <enum name="GL_VERTEX_SHADER"/>
+ <enum name="GL_MAX_FRAGMENT_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_VERTEX_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_VARYING_FLOATS"/>
+ <enum name="GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS"/>
+ <enum name="GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS"/>
+ <enum name="GL_SHADER_TYPE"/>
+ <enum name="GL_FLOAT_VEC2"/>
+ <enum name="GL_FLOAT_VEC3"/>
+ <enum name="GL_FLOAT_VEC4"/>
+ <enum name="GL_INT_VEC2"/>
+ <enum name="GL_INT_VEC3"/>
+ <enum name="GL_INT_VEC4"/>
+ <enum name="GL_BOOL"/>
+ <enum name="GL_BOOL_VEC2"/>
+ <enum name="GL_BOOL_VEC3"/>
+ <enum name="GL_BOOL_VEC4"/>
+ <enum name="GL_FLOAT_MAT2"/>
+ <enum name="GL_FLOAT_MAT3"/>
+ <enum name="GL_FLOAT_MAT4"/>
+ <enum name="GL_SAMPLER_1D"/>
+ <enum name="GL_SAMPLER_2D"/>
+ <enum name="GL_SAMPLER_3D"/>
+ <enum name="GL_SAMPLER_CUBE"/>
+ <enum name="GL_SAMPLER_1D_SHADOW"/>
+ <enum name="GL_SAMPLER_2D_SHADOW"/>
+ <enum name="GL_DELETE_STATUS"/>
+ <enum name="GL_COMPILE_STATUS"/>
+ <enum name="GL_LINK_STATUS"/>
+ <enum name="GL_VALIDATE_STATUS"/>
+ <enum name="GL_INFO_LOG_LENGTH"/>
+ <enum name="GL_ATTACHED_SHADERS"/>
+ <enum name="GL_ACTIVE_UNIFORMS"/>
+ <enum name="GL_ACTIVE_UNIFORM_MAX_LENGTH"/>
+ <enum name="GL_SHADER_SOURCE_LENGTH"/>
+ <enum name="GL_ACTIVE_ATTRIBUTES"/>
+ <enum name="GL_ACTIVE_ATTRIBUTE_MAX_LENGTH"/>
+ <enum name="GL_FRAGMENT_SHADER_DERIVATIVE_HINT"/>
+ <enum name="GL_SHADING_LANGUAGE_VERSION"/>
+ <enum name="GL_CURRENT_PROGRAM"/>
+ <enum name="GL_POINT_SPRITE_COORD_ORIGIN"/>
+ <enum name="GL_LOWER_LEFT"/>
+ <enum name="GL_UPPER_LEFT"/>
+ <enum name="GL_STENCIL_BACK_REF"/>
+ <enum name="GL_STENCIL_BACK_VALUE_MASK"/>
+ <enum name="GL_STENCIL_BACK_WRITEMASK"/>
+ <enum name="GL_VERTEX_PROGRAM_TWO_SIDE"/>
+ <enum name="GL_POINT_SPRITE"/>
+ <enum name="GL_COORD_REPLACE"/>
+ <enum name="GL_MAX_TEXTURE_COORDS"/>
+ <command name="glBlendEquationSeparate"/>
+ <command name="glDrawBuffers"/>
+ <command name="glStencilOpSeparate"/>
+ <command name="glStencilFuncSeparate"/>
+ <command name="glStencilMaskSeparate"/>
+ <command name="glAttachShader"/>
+ <command name="glBindAttribLocation"/>
+ <command name="glCompileShader"/>
+ <command name="glCreateProgram"/>
+ <command name="glCreateShader"/>
+ <command name="glDeleteProgram"/>
+ <command name="glDeleteShader"/>
+ <command name="glDetachShader"/>
+ <command name="glDisableVertexAttribArray"/>
+ <command name="glEnableVertexAttribArray"/>
+ <command name="glGetActiveAttrib"/>
+ <command name="glGetActiveUniform"/>
+ <command name="glGetAttachedShaders"/>
+ <command name="glGetAttribLocation"/>
+ <command name="glGetProgramiv"/>
+ <command name="glGetProgramInfoLog"/>
+ <command name="glGetShaderiv"/>
+ <command name="glGetShaderInfoLog"/>
+ <command name="glGetShaderSource"/>
+ <command name="glGetUniformLocation"/>
+ <command name="glGetUniformfv"/>
+ <command name="glGetUniformiv"/>
+ <command name="glGetVertexAttribdv"/>
+ <command name="glGetVertexAttribfv"/>
+ <command name="glGetVertexAttribiv"/>
+ <command name="glGetVertexAttribPointerv"/>
+ <command name="glIsProgram"/>
+ <command name="glIsShader"/>
+ <command name="glLinkProgram"/>
+ <command name="glShaderSource"/>
+ <command name="glUseProgram"/>
+ <command name="glUniform1f"/>
+ <command name="glUniform2f"/>
+ <command name="glUniform3f"/>
+ <command name="glUniform4f"/>
+ <command name="glUniform1i"/>
+ <command name="glUniform2i"/>
+ <command name="glUniform3i"/>
+ <command name="glUniform4i"/>
+ <command name="glUniform1fv"/>
+ <command name="glUniform2fv"/>
+ <command name="glUniform3fv"/>
+ <command name="glUniform4fv"/>
+ <command name="glUniform1iv"/>
+ <command name="glUniform2iv"/>
+ <command name="glUniform3iv"/>
+ <command name="glUniform4iv"/>
+ <command name="glUniformMatrix2fv"/>
+ <command name="glUniformMatrix3fv"/>
+ <command name="glUniformMatrix4fv"/>
+ <command name="glValidateProgram"/>
+ <command name="glVertexAttrib1d"/>
+ <command name="glVertexAttrib1dv"/>
+ <command name="glVertexAttrib1f"/>
+ <command name="glVertexAttrib1fv"/>
+ <command name="glVertexAttrib1s"/>
+ <command name="glVertexAttrib1sv"/>
+ <command name="glVertexAttrib2d"/>
+ <command name="glVertexAttrib2dv"/>
+ <command name="glVertexAttrib2f"/>
+ <command name="glVertexAttrib2fv"/>
+ <command name="glVertexAttrib2s"/>
+ <command name="glVertexAttrib2sv"/>
+ <command name="glVertexAttrib3d"/>
+ <command name="glVertexAttrib3dv"/>
+ <command name="glVertexAttrib3f"/>
+ <command name="glVertexAttrib3fv"/>
+ <command name="glVertexAttrib3s"/>
+ <command name="glVertexAttrib3sv"/>
+ <command name="glVertexAttrib4Nbv"/>
+ <command name="glVertexAttrib4Niv"/>
+ <command name="glVertexAttrib4Nsv"/>
+ <command name="glVertexAttrib4Nub"/>
+ <command name="glVertexAttrib4Nubv"/>
+ <command name="glVertexAttrib4Nuiv"/>
+ <command name="glVertexAttrib4Nusv"/>
+ <command name="glVertexAttrib4bv"/>
+ <command name="glVertexAttrib4d"/>
+ <command name="glVertexAttrib4dv"/>
+ <command name="glVertexAttrib4f"/>
+ <command name="glVertexAttrib4fv"/>
+ <command name="glVertexAttrib4iv"/>
+ <command name="glVertexAttrib4s"/>
+ <command name="glVertexAttrib4sv"/>
+ <command name="glVertexAttrib4ubv"/>
+ <command name="glVertexAttrib4uiv"/>
+ <command name="glVertexAttrib4usv"/>
+ <command name="glVertexAttribPointer"/>
+ </require>
+ </feature>
+ <feature api="gl" name="GL_VERSION_2_1" number="2.1">
+ <require>
+ <enum name="GL_PIXEL_PACK_BUFFER"/>
+ <enum name="GL_PIXEL_UNPACK_BUFFER"/>
+ <enum name="GL_PIXEL_PACK_BUFFER_BINDING"/>
+ <enum name="GL_PIXEL_UNPACK_BUFFER_BINDING"/>
+ <enum name="GL_FLOAT_MAT2x3"/>
+ <enum name="GL_FLOAT_MAT2x4"/>
+ <enum name="GL_FLOAT_MAT3x2"/>
+ <enum name="GL_FLOAT_MAT3x4"/>
+ <enum name="GL_FLOAT_MAT4x2"/>
+ <enum name="GL_FLOAT_MAT4x3"/>
+ <enum name="GL_SRGB"/>
+ <enum name="GL_SRGB8"/>
+ <enum name="GL_SRGB_ALPHA"/>
+ <enum name="GL_SRGB8_ALPHA8"/>
+ <enum name="GL_COMPRESSED_SRGB"/>
+ <enum name="GL_COMPRESSED_SRGB_ALPHA"/>
+ <enum name="GL_CURRENT_RASTER_SECONDARY_COLOR"/>
+ <enum name="GL_SLUMINANCE_ALPHA"/>
+ <enum name="GL_SLUMINANCE8_ALPHA8"/>
+ <enum name="GL_SLUMINANCE"/>
+ <enum name="GL_SLUMINANCE8"/>
+ <enum name="GL_COMPRESSED_SLUMINANCE"/>
+ <enum name="GL_COMPRESSED_SLUMINANCE_ALPHA"/>
+ <command name="glUniformMatrix2x3fv"/>
+ <command name="glUniformMatrix3x2fv"/>
+ <command name="glUniformMatrix2x4fv"/>
+ <command name="glUniformMatrix4x2fv"/>
+ <command name="glUniformMatrix3x4fv"/>
+ <command name="glUniformMatrix4x3fv"/>
+ </require>
+ </feature>
+ <feature api="gl" name="GL_VERSION_3_0" number="3.0">
+ <require>
+ <enum name="GL_COMPARE_REF_TO_TEXTURE"/>
+ <enum name="GL_CLIP_DISTANCE0"/>
+ <enum name="GL_CLIP_DISTANCE1"/>
+ <enum name="GL_CLIP_DISTANCE2"/>
+ <enum name="GL_CLIP_DISTANCE3"/>
+ <enum name="GL_CLIP_DISTANCE4"/>
+ <enum name="GL_CLIP_DISTANCE5"/>
+ <enum name="GL_CLIP_DISTANCE6"/>
+ <enum name="GL_CLIP_DISTANCE7"/>
+ <enum name="GL_MAX_CLIP_DISTANCES"/>
+ <enum name="GL_MAJOR_VERSION"/>
+ <enum name="GL_MINOR_VERSION"/>
+ <enum name="GL_NUM_EXTENSIONS"/>
+ <enum name="GL_CONTEXT_FLAGS"/>
+ <enum name="GL_COMPRESSED_RED"/>
+ <enum name="GL_COMPRESSED_RG"/>
+ <enum name="GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT"/>
+ <enum name="GL_RGBA32F"/>
+ <enum name="GL_RGB32F"/>
+ <enum name="GL_RGBA16F"/>
+ <enum name="GL_RGB16F"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_INTEGER"/>
+ <enum name="GL_MAX_ARRAY_TEXTURE_LAYERS"/>
+ <enum name="GL_MIN_PROGRAM_TEXEL_OFFSET"/>
+ <enum name="GL_MAX_PROGRAM_TEXEL_OFFSET"/>
+ <enum name="GL_CLAMP_READ_COLOR"/>
+ <enum name="GL_FIXED_ONLY"/>
+ <enum name="GL_MAX_VARYING_COMPONENTS"/>
+ <enum name="GL_TEXTURE_1D_ARRAY"/>
+ <enum name="GL_PROXY_TEXTURE_1D_ARRAY"/>
+ <enum name="GL_TEXTURE_2D_ARRAY"/>
+ <enum name="GL_PROXY_TEXTURE_2D_ARRAY"/>
+ <enum name="GL_TEXTURE_BINDING_1D_ARRAY"/>
+ <enum name="GL_TEXTURE_BINDING_2D_ARRAY"/>
+ <enum name="GL_R11F_G11F_B10F"/>
+ <enum name="GL_UNSIGNED_INT_10F_11F_11F_REV"/>
+ <enum name="GL_RGB9_E5"/>
+ <enum name="GL_UNSIGNED_INT_5_9_9_9_REV"/>
+ <enum name="GL_TEXTURE_SHARED_SIZE"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_MODE"/>
+ <enum name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_VARYINGS"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_START"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_SIZE"/>
+ <enum name="GL_PRIMITIVES_GENERATED"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN"/>
+ <enum name="GL_RASTERIZER_DISCARD"/>
+ <enum name="GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS"/>
+ <enum name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS"/>
+ <enum name="GL_INTERLEAVED_ATTRIBS"/>
+ <enum name="GL_SEPARATE_ATTRIBS"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_BINDING"/>
+ <enum name="GL_RGBA32UI"/>
+ <enum name="GL_RGB32UI"/>
+ <enum name="GL_RGBA16UI"/>
+ <enum name="GL_RGB16UI"/>
+ <enum name="GL_RGBA8UI"/>
+ <enum name="GL_RGB8UI"/>
+ <enum name="GL_RGBA32I"/>
+ <enum name="GL_RGB32I"/>
+ <enum name="GL_RGBA16I"/>
+ <enum name="GL_RGB16I"/>
+ <enum name="GL_RGBA8I"/>
+ <enum name="GL_RGB8I"/>
+ <enum name="GL_RED_INTEGER"/>
+ <enum name="GL_GREEN_INTEGER"/>
+ <enum name="GL_BLUE_INTEGER"/>
+ <enum name="GL_RGB_INTEGER"/>
+ <enum name="GL_RGBA_INTEGER"/>
+ <enum name="GL_BGR_INTEGER"/>
+ <enum name="GL_BGRA_INTEGER"/>
+ <enum name="GL_SAMPLER_1D_ARRAY"/>
+ <enum name="GL_SAMPLER_2D_ARRAY"/>
+ <enum name="GL_SAMPLER_1D_ARRAY_SHADOW"/>
+ <enum name="GL_SAMPLER_2D_ARRAY_SHADOW"/>
+ <enum name="GL_SAMPLER_CUBE_SHADOW"/>
+ <enum name="GL_UNSIGNED_INT_VEC2"/>
+ <enum name="GL_UNSIGNED_INT_VEC3"/>
+ <enum name="GL_UNSIGNED_INT_VEC4"/>
+ <enum name="GL_INT_SAMPLER_1D"/>
+ <enum name="GL_INT_SAMPLER_2D"/>
+ <enum name="GL_INT_SAMPLER_3D"/>
+ <enum name="GL_INT_SAMPLER_CUBE"/>
+ <enum name="GL_INT_SAMPLER_1D_ARRAY"/>
+ <enum name="GL_INT_SAMPLER_2D_ARRAY"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_1D"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_2D"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_3D"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_CUBE"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_1D_ARRAY"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_2D_ARRAY"/>
+ <enum name="GL_QUERY_WAIT"/>
+ <enum name="GL_QUERY_NO_WAIT"/>
+ <enum name="GL_QUERY_BY_REGION_WAIT"/>
+ <enum name="GL_QUERY_BY_REGION_NO_WAIT"/>
+ <enum name="GL_BUFFER_ACCESS_FLAGS"/>
+ <enum name="GL_BUFFER_MAP_LENGTH"/>
+ <enum name="GL_BUFFER_MAP_OFFSET"/>
+ <command name="glColorMaski"/>
+ <command name="glGetBooleani_v"/>
+ <command name="glGetIntegeri_v"/>
+ <command name="glEnablei"/>
+ <command name="glDisablei"/>
+ <command name="glIsEnabledi"/>
+ <command name="glBeginTransformFeedback"/>
+ <command name="glEndTransformFeedback"/>
+ <command name="glBindBufferRange"/>
+ <command name="glBindBufferBase"/>
+ <command name="glTransformFeedbackVaryings"/>
+ <command name="glGetTransformFeedbackVarying"/>
+ <command name="glClampColor"/>
+ <command name="glBeginConditionalRender"/>
+ <command name="glEndConditionalRender"/>
+ <command name="glVertexAttribIPointer"/>
+ <command name="glGetVertexAttribIiv"/>
+ <command name="glGetVertexAttribIuiv"/>
+ <command name="glVertexAttribI1i"/>
+ <command name="glVertexAttribI2i"/>
+ <command name="glVertexAttribI3i"/>
+ <command name="glVertexAttribI4i"/>
+ <command name="glVertexAttribI1ui"/>
+ <command name="glVertexAttribI2ui"/>
+ <command name="glVertexAttribI3ui"/>
+ <command name="glVertexAttribI4ui"/>
+ <command name="glVertexAttribI1iv"/>
+ <command name="glVertexAttribI2iv"/>
+ <command name="glVertexAttribI3iv"/>
+ <command name="glVertexAttribI4iv"/>
+ <command name="glVertexAttribI1uiv"/>
+ <command name="glVertexAttribI2uiv"/>
+ <command name="glVertexAttribI3uiv"/>
+ <command name="glVertexAttribI4uiv"/>
+ <command name="glVertexAttribI4bv"/>
+ <command name="glVertexAttribI4sv"/>
+ <command name="glVertexAttribI4ubv"/>
+ <command name="glVertexAttribI4usv"/>
+ <command name="glGetUniformuiv"/>
+ <command name="glBindFragDataLocation"/>
+ <command name="glGetFragDataLocation"/>
+ <command name="glUniform1ui"/>
+ <command name="glUniform2ui"/>
+ <command name="glUniform3ui"/>
+ <command name="glUniform4ui"/>
+ <command name="glUniform1uiv"/>
+ <command name="glUniform2uiv"/>
+ <command name="glUniform3uiv"/>
+ <command name="glUniform4uiv"/>
+ <command name="glTexParameterIiv"/>
+ <command name="glTexParameterIuiv"/>
+ <command name="glGetTexParameterIiv"/>
+ <command name="glGetTexParameterIuiv"/>
+ <command name="glClearBufferiv"/>
+ <command name="glClearBufferuiv"/>
+ <command name="glClearBufferfv"/>
+ <command name="glClearBufferfi"/>
+ <command name="glGetStringi"/>
+ </require>
+ <require comment="Reuse ARB_depth_buffer_float">
+ <enum name="GL_DEPTH_COMPONENT32F"/>
+ <enum name="GL_DEPTH32F_STENCIL8"/>
+ <enum name="GL_FLOAT_32_UNSIGNED_INT_24_8_REV"/>
+ </require>
+ <require comment="Reuse ARB_framebuffer_object">
+ <enum name="GL_INVALID_FRAMEBUFFER_OPERATION"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_DEFAULT"/>
+ <enum name="GL_FRAMEBUFFER_UNDEFINED"/>
+ <enum name="GL_DEPTH_STENCIL_ATTACHMENT"/>
+ <enum name="GL_MAX_RENDERBUFFER_SIZE"/>
+ <enum name="GL_DEPTH_STENCIL"/>
+ <enum name="GL_UNSIGNED_INT_24_8"/>
+ <enum name="GL_DEPTH24_STENCIL8"/>
+ <enum name="GL_TEXTURE_STENCIL_SIZE"/>
+ <enum name="GL_TEXTURE_RED_TYPE"/>
+ <enum name="GL_TEXTURE_GREEN_TYPE"/>
+ <enum name="GL_TEXTURE_BLUE_TYPE"/>
+ <enum name="GL_TEXTURE_ALPHA_TYPE"/>
+ <enum name="GL_TEXTURE_DEPTH_TYPE"/>
+ <enum name="GL_UNSIGNED_NORMALIZED"/>
+ <enum name="GL_FRAMEBUFFER_BINDING"/>
+ <enum name="GL_DRAW_FRAMEBUFFER_BINDING"/>
+ <enum name="GL_RENDERBUFFER_BINDING"/>
+ <enum name="GL_READ_FRAMEBUFFER"/>
+ <enum name="GL_DRAW_FRAMEBUFFER"/>
+ <enum name="GL_READ_FRAMEBUFFER_BINDING"/>
+ <enum name="GL_RENDERBUFFER_SAMPLES"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER"/>
+ <enum name="GL_FRAMEBUFFER_COMPLETE"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER"/>
+ <enum name="GL_FRAMEBUFFER_UNSUPPORTED"/>
+ <enum name="GL_MAX_COLOR_ATTACHMENTS"/>
+ <enum name="GL_COLOR_ATTACHMENT0"/>
+ <enum name="GL_COLOR_ATTACHMENT1"/>
+ <enum name="GL_COLOR_ATTACHMENT2"/>
+ <enum name="GL_COLOR_ATTACHMENT3"/>
+ <enum name="GL_COLOR_ATTACHMENT4"/>
+ <enum name="GL_COLOR_ATTACHMENT5"/>
+ <enum name="GL_COLOR_ATTACHMENT6"/>
+ <enum name="GL_COLOR_ATTACHMENT7"/>
+ <enum name="GL_COLOR_ATTACHMENT8"/>
+ <enum name="GL_COLOR_ATTACHMENT9"/>
+ <enum name="GL_COLOR_ATTACHMENT10"/>
+ <enum name="GL_COLOR_ATTACHMENT11"/>
+ <enum name="GL_COLOR_ATTACHMENT12"/>
+ <enum name="GL_COLOR_ATTACHMENT13"/>
+ <enum name="GL_COLOR_ATTACHMENT14"/>
+ <enum name="GL_COLOR_ATTACHMENT15"/>
+ <enum name="GL_DEPTH_ATTACHMENT"/>
+ <enum name="GL_STENCIL_ATTACHMENT"/>
+ <enum name="GL_FRAMEBUFFER"/>
+ <enum name="GL_RENDERBUFFER"/>
+ <enum name="GL_RENDERBUFFER_WIDTH"/>
+ <enum name="GL_RENDERBUFFER_HEIGHT"/>
+ <enum name="GL_RENDERBUFFER_INTERNAL_FORMAT"/>
+ <enum name="GL_STENCIL_INDEX1"/>
+ <enum name="GL_STENCIL_INDEX4"/>
+ <enum name="GL_STENCIL_INDEX8"/>
+ <enum name="GL_STENCIL_INDEX16"/>
+ <enum name="GL_RENDERBUFFER_RED_SIZE"/>
+ <enum name="GL_RENDERBUFFER_GREEN_SIZE"/>
+ <enum name="GL_RENDERBUFFER_BLUE_SIZE"/>
+ <enum name="GL_RENDERBUFFER_ALPHA_SIZE"/>
+ <enum name="GL_RENDERBUFFER_DEPTH_SIZE"/>
+ <enum name="GL_RENDERBUFFER_STENCIL_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE"/>
+ <enum name="GL_MAX_SAMPLES"/>
+ <command name="glIsRenderbuffer"/>
+ <command name="glBindRenderbuffer"/>
+ <command name="glDeleteRenderbuffers"/>
+ <command name="glGenRenderbuffers"/>
+ <command name="glRenderbufferStorage"/>
+ <command name="glGetRenderbufferParameteriv"/>
+ <command name="glIsFramebuffer"/>
+ <command name="glBindFramebuffer"/>
+ <command name="glDeleteFramebuffers"/>
+ <command name="glGenFramebuffers"/>
+ <command name="glCheckFramebufferStatus"/>
+ <command name="glFramebufferTexture1D"/>
+ <command name="glFramebufferTexture2D"/>
+ <command name="glFramebufferTexture3D"/>
+ <command name="glFramebufferRenderbuffer"/>
+ <command name="glGetFramebufferAttachmentParameteriv"/>
+ <command name="glGenerateMipmap"/>
+ <command name="glBlitFramebuffer"/>
+ <command name="glRenderbufferStorageMultisample"/>
+ <command name="glFramebufferTextureLayer"/>
+ </require>
+ <require profile="compatibility" comment="Reuse ARB_framebuffer_object compatibility profile">
+ <enum name="GL_INDEX"/>
+ <enum name="GL_TEXTURE_LUMINANCE_TYPE"/>
+ <enum name="GL_TEXTURE_INTENSITY_TYPE"/>
+ </require>
+ <require comment="Reuse ARB_framebuffer_sRGB">
+ <enum name="GL_FRAMEBUFFER_SRGB"/>
+ </require>
+ <require comment="Reuse ARB_half_float_vertex">
+ <type name="GLhalf"/>
+ <enum name="GL_HALF_FLOAT"/>
+ </require>
+ <require comment="Reuse ARB_map_buffer_range">
+ <enum name="GL_MAP_READ_BIT"/>
+ <enum name="GL_MAP_WRITE_BIT"/>
+ <enum name="GL_MAP_INVALIDATE_RANGE_BIT"/>
+ <enum name="GL_MAP_INVALIDATE_BUFFER_BIT"/>
+ <enum name="GL_MAP_FLUSH_EXPLICIT_BIT"/>
+ <enum name="GL_MAP_UNSYNCHRONIZED_BIT"/>
+ <command name="glMapBufferRange"/>
+ <command name="glFlushMappedBufferRange"/>
+ </require>
+ <require comment="Reuse ARB_texture_compression_rgtc">
+ <enum name="GL_COMPRESSED_RED_RGTC1"/>
+ <enum name="GL_COMPRESSED_SIGNED_RED_RGTC1"/>
+ <enum name="GL_COMPRESSED_RG_RGTC2"/>
+ <enum name="GL_COMPRESSED_SIGNED_RG_RGTC2"/>
+ </require>
+ <require comment="Reuse ARB_texture_rg">
+ <enum name="GL_RG"/>
+ <enum name="GL_RG_INTEGER"/>
+ <enum name="GL_R8"/>
+ <enum name="GL_R16"/>
+ <enum name="GL_RG8"/>
+ <enum name="GL_RG16"/>
+ <enum name="GL_R16F"/>
+ <enum name="GL_R32F"/>
+ <enum name="GL_RG16F"/>
+ <enum name="GL_RG32F"/>
+ <enum name="GL_R8I"/>
+ <enum name="GL_R8UI"/>
+ <enum name="GL_R16I"/>
+ <enum name="GL_R16UI"/>
+ <enum name="GL_R32I"/>
+ <enum name="GL_R32UI"/>
+ <enum name="GL_RG8I"/>
+ <enum name="GL_RG8UI"/>
+ <enum name="GL_RG16I"/>
+ <enum name="GL_RG16UI"/>
+ <enum name="GL_RG32I"/>
+ <enum name="GL_RG32UI"/>
+ </require>
+ <require comment="Reuse ARB_vertex_array_object">
+ <enum name="GL_VERTEX_ARRAY_BINDING"/>
+ <enum name="GL_CLAMP_VERTEX_COLOR"/>
+ <enum name="GL_CLAMP_FRAGMENT_COLOR"/>
+ <enum name="GL_ALPHA_INTEGER"/>
+ <command name="glBindVertexArray"/>
+ <command name="glDeleteVertexArrays"/>
+ <command name="glGenVertexArrays"/>
+ <command name="glIsVertexArray"/>
+ </require>
+ </feature>
+ <feature api="gl" name="GL_VERSION_3_1" number="3.1">
+ <require>
+ <enum name="GL_SAMPLER_2D_RECT"/>
+ <enum name="GL_SAMPLER_2D_RECT_SHADOW"/>
+ <enum name="GL_SAMPLER_BUFFER"/>
+ <enum name="GL_INT_SAMPLER_2D_RECT"/>
+ <enum name="GL_INT_SAMPLER_BUFFER"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_2D_RECT"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_BUFFER"/>
+ <enum name="GL_TEXTURE_BUFFER"/>
+ <enum name="GL_MAX_TEXTURE_BUFFER_SIZE"/>
+ <enum name="GL_TEXTURE_BINDING_BUFFER"/>
+ <enum name="GL_TEXTURE_BUFFER_DATA_STORE_BINDING"/>
+ <enum name="GL_TEXTURE_RECTANGLE"/>
+ <enum name="GL_TEXTURE_BINDING_RECTANGLE"/>
+ <enum name="GL_PROXY_TEXTURE_RECTANGLE"/>
+ <enum name="GL_MAX_RECTANGLE_TEXTURE_SIZE"/>
+ <enum name="GL_R8_SNORM"/>
+ <enum name="GL_RG8_SNORM"/>
+ <enum name="GL_RGB8_SNORM"/>
+ <enum name="GL_RGBA8_SNORM"/>
+ <enum name="GL_R16_SNORM"/>
+ <enum name="GL_RG16_SNORM"/>
+ <enum name="GL_RGB16_SNORM"/>
+ <enum name="GL_RGBA16_SNORM"/>
+ <enum name="GL_SIGNED_NORMALIZED"/>
+ <enum name="GL_PRIMITIVE_RESTART"/>
+ <enum name="GL_PRIMITIVE_RESTART_INDEX"/>
+ <command name="glDrawArraysInstanced"/>
+ <command name="glDrawElementsInstanced"/>
+ <command name="glTexBuffer"/>
+ <command name="glPrimitiveRestartIndex"/>
+ </require>
+ <require comment="Reuse ARB_copy_buffer">
+ <enum name="GL_COPY_READ_BUFFER"/>
+ <enum name="GL_COPY_WRITE_BUFFER"/>
+ <command name="glCopyBufferSubData"/>
+ </require>
+ <require comment="Reuse ARB_uniform_buffer_object">
+ <enum name="GL_UNIFORM_BUFFER"/>
+ <enum name="GL_UNIFORM_BUFFER_BINDING"/>
+ <enum name="GL_UNIFORM_BUFFER_START"/>
+ <enum name="GL_UNIFORM_BUFFER_SIZE"/>
+ <enum name="GL_MAX_VERTEX_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_FRAGMENT_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_COMBINED_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_UNIFORM_BUFFER_BINDINGS"/>
+ <enum name="GL_MAX_UNIFORM_BLOCK_SIZE"/>
+ <enum name="GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS"/>
+ <enum name="GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT"/>
+ <enum name="GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH"/>
+ <enum name="GL_ACTIVE_UNIFORM_BLOCKS"/>
+ <enum name="GL_UNIFORM_TYPE"/>
+ <enum name="GL_UNIFORM_SIZE"/>
+ <enum name="GL_UNIFORM_NAME_LENGTH"/>
+ <enum name="GL_UNIFORM_BLOCK_INDEX"/>
+ <enum name="GL_UNIFORM_OFFSET"/>
+ <enum name="GL_UNIFORM_ARRAY_STRIDE"/>
+ <enum name="GL_UNIFORM_MATRIX_STRIDE"/>
+ <enum name="GL_UNIFORM_IS_ROW_MAJOR"/>
+ <enum name="GL_UNIFORM_BLOCK_BINDING"/>
+ <enum name="GL_UNIFORM_BLOCK_DATA_SIZE"/>
+ <enum name="GL_UNIFORM_BLOCK_NAME_LENGTH"/>
+ <enum name="GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS"/>
+ <enum name="GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES"/>
+ <enum name="GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER"/>
+ <enum name="GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER"/>
+ <enum name="GL_INVALID_INDEX"/>
+ <command name="glGetUniformIndices"/>
+ <command name="glGetActiveUniformsiv"/>
+ <command name="glGetActiveUniformName"/>
+ <command name="glGetUniformBlockIndex"/>
+ <command name="glGetActiveUniformBlockiv"/>
+ <command name="glGetActiveUniformBlockName"/>
+ <command name="glUniformBlockBinding"/>
+ </require>
+ </feature>
+ <feature api="gl" name="GL_VERSION_3_2" number="3.2">
+ <require>
+ <enum name="GL_CONTEXT_CORE_PROFILE_BIT"/>
+ <enum name="GL_CONTEXT_COMPATIBILITY_PROFILE_BIT"/>
+ <enum name="GL_LINES_ADJACENCY"/>
+ <enum name="GL_LINE_STRIP_ADJACENCY"/>
+ <enum name="GL_TRIANGLES_ADJACENCY"/>
+ <enum name="GL_TRIANGLE_STRIP_ADJACENCY"/>
+ <enum name="GL_PROGRAM_POINT_SIZE"/>
+ <enum name="GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_LAYERED"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS"/>
+ <enum name="GL_GEOMETRY_SHADER"/>
+ <enum name="GL_GEOMETRY_VERTICES_OUT"/>
+ <enum name="GL_GEOMETRY_INPUT_TYPE"/>
+ <enum name="GL_GEOMETRY_OUTPUT_TYPE"/>
+ <enum name="GL_MAX_GEOMETRY_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_GEOMETRY_OUTPUT_VERTICES"/>
+ <enum name="GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS"/>
+ <enum name="GL_MAX_VERTEX_OUTPUT_COMPONENTS"/>
+ <enum name="GL_MAX_GEOMETRY_INPUT_COMPONENTS"/>
+ <enum name="GL_MAX_GEOMETRY_OUTPUT_COMPONENTS"/>
+ <enum name="GL_MAX_FRAGMENT_INPUT_COMPONENTS"/>
+ <enum name="GL_CONTEXT_PROFILE_MASK"/>
+ </require>
+ <require comment="Reuse ARB_depth_clamp">
+ <enum name="GL_DEPTH_CLAMP"/>
+ </require>
+ <require comment="Reuse ARB_draw_elements_base_vertex">
+ <command name="glDrawElementsBaseVertex"/>
+ <command name="glDrawRangeElementsBaseVertex"/>
+ <command name="glDrawElementsInstancedBaseVertex"/>
+ <command name="glMultiDrawElementsBaseVertex"/>
+ </require>
+ <require comment="Reuse ARB_fragment_coord_conventions (none)">
+ </require>
+ <require comment="Reuse ARB_provoking_vertex">
+ <enum name="GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION"/>
+ <enum name="GL_FIRST_VERTEX_CONVENTION"/>
+ <enum name="GL_LAST_VERTEX_CONVENTION"/>
+ <enum name="GL_PROVOKING_VERTEX"/>
+ <command name="glProvokingVertex"/>
+ </require>
+ <require comment="Reuse ARB_seamless_cube_map">
+ <enum name="GL_TEXTURE_CUBE_MAP_SEAMLESS"/>
+ </require>
+ <require comment="Reuse ARB_sync">
+ <enum name="GL_MAX_SERVER_WAIT_TIMEOUT"/>
+ <enum name="GL_OBJECT_TYPE"/>
+ <enum name="GL_SYNC_CONDITION"/>
+ <enum name="GL_SYNC_STATUS"/>
+ <enum name="GL_SYNC_FLAGS"/>
+ <enum name="GL_SYNC_FENCE"/>
+ <enum name="GL_SYNC_GPU_COMMANDS_COMPLETE"/>
+ <enum name="GL_UNSIGNALED"/>
+ <enum name="GL_SIGNALED"/>
+ <enum name="GL_ALREADY_SIGNALED"/>
+ <enum name="GL_TIMEOUT_EXPIRED"/>
+ <enum name="GL_CONDITION_SATISFIED"/>
+ <enum name="GL_WAIT_FAILED"/>
+ <enum name="GL_TIMEOUT_IGNORED"/>
+ <enum name="GL_SYNC_FLUSH_COMMANDS_BIT"/>
+ <enum name="GL_TIMEOUT_IGNORED"/>
+ <command name="glFenceSync"/>
+ <command name="glIsSync"/>
+ <command name="glDeleteSync"/>
+ <command name="glClientWaitSync"/>
+ <command name="glWaitSync"/>
+ <command name="glGetInteger64v"/>
+ <command name="glGetSynciv"/>
+ </require>
+ <require comment="Reuse ARB_texture_multisample">
+ <enum name="GL_SAMPLE_POSITION"/>
+ <enum name="GL_SAMPLE_MASK"/>
+ <enum name="GL_SAMPLE_MASK_VALUE"/>
+ <enum name="GL_MAX_SAMPLE_MASK_WORDS"/>
+ <enum name="GL_TEXTURE_2D_MULTISAMPLE"/>
+ <enum name="GL_PROXY_TEXTURE_2D_MULTISAMPLE"/>
+ <enum name="GL_TEXTURE_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_TEXTURE_BINDING_2D_MULTISAMPLE"/>
+ <enum name="GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_TEXTURE_SAMPLES"/>
+ <enum name="GL_TEXTURE_FIXED_SAMPLE_LOCATIONS"/>
+ <enum name="GL_SAMPLER_2D_MULTISAMPLE"/>
+ <enum name="GL_INT_SAMPLER_2D_MULTISAMPLE"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE"/>
+ <enum name="GL_SAMPLER_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_MAX_COLOR_TEXTURE_SAMPLES"/>
+ <enum name="GL_MAX_DEPTH_TEXTURE_SAMPLES"/>
+ <enum name="GL_MAX_INTEGER_SAMPLES"/>
+ <!-- /* Don't need to reuse tokens from ARB_vertex_array_bgra since they're already in 1.2 core */ -->
+ <command name="glGetInteger64i_v"/>
+ <command name="glGetBufferParameteri64v"/>
+ <command name="glFramebufferTexture"/>
+ <command name="glTexImage2DMultisample"/>
+ <command name="glTexImage3DMultisample"/>
+ <command name="glGetMultisamplefv"/>
+ <command name="glSampleMaski"/>
+ </require>
+ <!-- OpenGL 3.2 is where core and compatibility profiles were first
+ introduced, so many, many things were removed from the core
+ profile in this version. A few were reintroduced later (e.g.
+ GetPointerv / STACK_{UNDER,OVER}FLOW by OpenGL 4.3 for debug
+ functionality). -->
+ <remove profile="core" comment="Compatibility-only GL 1.0 features removed from GL 3.2">
+ <command name="glNewList"/>
+ <command name="glEndList"/>
+ <command name="glCallList"/>
+ <command name="glCallLists"/>
+ <command name="glDeleteLists"/>
+ <command name="glGenLists"/>
+ <command name="glListBase"/>
+ <command name="glBegin"/>
+ <command name="glBitmap"/>
+ <command name="glColor3b"/>
+ <command name="glColor3bv"/>
+ <command name="glColor3d"/>
+ <command name="glColor3dv"/>
+ <command name="glColor3f"/>
+ <command name="glColor3fv"/>
+ <command name="glColor3i"/>
+ <command name="glColor3iv"/>
+ <command name="glColor3s"/>
+ <command name="glColor3sv"/>
+ <command name="glColor3ub"/>
+ <command name="glColor3ubv"/>
+ <command name="glColor3ui"/>
+ <command name="glColor3uiv"/>
+ <command name="glColor3us"/>
+ <command name="glColor3usv"/>
+ <command name="glColor4b"/>
+ <command name="glColor4bv"/>
+ <command name="glColor4d"/>
+ <command name="glColor4dv"/>
+ <command name="glColor4f"/>
+ <command name="glColor4fv"/>
+ <command name="glColor4i"/>
+ <command name="glColor4iv"/>
+ <command name="glColor4s"/>
+ <command name="glColor4sv"/>
+ <command name="glColor4ub"/>
+ <command name="glColor4ubv"/>
+ <command name="glColor4ui"/>
+ <command name="glColor4uiv"/>
+ <command name="glColor4us"/>
+ <command name="glColor4usv"/>
+ <command name="glEdgeFlag"/>
+ <command name="glEdgeFlagv"/>
+ <command name="glEnd"/>
+ <command name="glIndexd"/>
+ <command name="glIndexdv"/>
+ <command name="glIndexf"/>
+ <command name="glIndexfv"/>
+ <command name="glIndexi"/>
+ <command name="glIndexiv"/>
+ <command name="glIndexs"/>
+ <command name="glIndexsv"/>
+ <command name="glNormal3b"/>
+ <command name="glNormal3bv"/>
+ <command name="glNormal3d"/>
+ <command name="glNormal3dv"/>
+ <command name="glNormal3f"/>
+ <command name="glNormal3fv"/>
+ <command name="glNormal3i"/>
+ <command name="glNormal3iv"/>
+ <command name="glNormal3s"/>
+ <command name="glNormal3sv"/>
+ <command name="glRasterPos2d"/>
+ <command name="glRasterPos2dv"/>
+ <command name="glRasterPos2f"/>
+ <command name="glRasterPos2fv"/>
+ <command name="glRasterPos2i"/>
+ <command name="glRasterPos2iv"/>
+ <command name="glRasterPos2s"/>
+ <command name="glRasterPos2sv"/>
+ <command name="glRasterPos3d"/>
+ <command name="glRasterPos3dv"/>
+ <command name="glRasterPos3f"/>
+ <command name="glRasterPos3fv"/>
+ <command name="glRasterPos3i"/>
+ <command name="glRasterPos3iv"/>
+ <command name="glRasterPos3s"/>
+ <command name="glRasterPos3sv"/>
+ <command name="glRasterPos4d"/>
+ <command name="glRasterPos4dv"/>
+ <command name="glRasterPos4f"/>
+ <command name="glRasterPos4fv"/>
+ <command name="glRasterPos4i"/>
+ <command name="glRasterPos4iv"/>
+ <command name="glRasterPos4s"/>
+ <command name="glRasterPos4sv"/>
+ <command name="glRectd"/>
+ <command name="glRectdv"/>
+ <command name="glRectf"/>
+ <command name="glRectfv"/>
+ <command name="glRecti"/>
+ <command name="glRectiv"/>
+ <command name="glRects"/>
+ <command name="glRectsv"/>
+ <command name="glTexCoord1d"/>
+ <command name="glTexCoord1dv"/>
+ <command name="glTexCoord1f"/>
+ <command name="glTexCoord1fv"/>
+ <command name="glTexCoord1i"/>
+ <command name="glTexCoord1iv"/>
+ <command name="glTexCoord1s"/>
+ <command name="glTexCoord1sv"/>
+ <command name="glTexCoord2d"/>
+ <command name="glTexCoord2dv"/>
+ <command name="glTexCoord2f"/>
+ <command name="glTexCoord2fv"/>
+ <command name="glTexCoord2i"/>
+ <command name="glTexCoord2iv"/>
+ <command name="glTexCoord2s"/>
+ <command name="glTexCoord2sv"/>
+ <command name="glTexCoord3d"/>
+ <command name="glTexCoord3dv"/>
+ <command name="glTexCoord3f"/>
+ <command name="glTexCoord3fv"/>
+ <command name="glTexCoord3i"/>
+ <command name="glTexCoord3iv"/>
+ <command name="glTexCoord3s"/>
+ <command name="glTexCoord3sv"/>
+ <command name="glTexCoord4d"/>
+ <command name="glTexCoord4dv"/>
+ <command name="glTexCoord4f"/>
+ <command name="glTexCoord4fv"/>
+ <command name="glTexCoord4i"/>
+ <command name="glTexCoord4iv"/>
+ <command name="glTexCoord4s"/>
+ <command name="glTexCoord4sv"/>
+ <command name="glVertex2d"/>
+ <command name="glVertex2dv"/>
+ <command name="glVertex2f"/>
+ <command name="glVertex2fv"/>
+ <command name="glVertex2i"/>
+ <command name="glVertex2iv"/>
+ <command name="glVertex2s"/>
+ <command name="glVertex2sv"/>
+ <command name="glVertex3d"/>
+ <command name="glVertex3dv"/>
+ <command name="glVertex3f"/>
+ <command name="glVertex3fv"/>
+ <command name="glVertex3i"/>
+ <command name="glVertex3iv"/>
+ <command name="glVertex3s"/>
+ <command name="glVertex3sv"/>
+ <command name="glVertex4d"/>
+ <command name="glVertex4dv"/>
+ <command name="glVertex4f"/>
+ <command name="glVertex4fv"/>
+ <command name="glVertex4i"/>
+ <command name="glVertex4iv"/>
+ <command name="glVertex4s"/>
+ <command name="glVertex4sv"/>
+ <command name="glClipPlane"/>
+ <command name="glColorMaterial"/>
+ <command name="glFogf"/>
+ <command name="glFogfv"/>
+ <command name="glFogi"/>
+ <command name="glFogiv"/>
+ <command name="glLightf"/>
+ <command name="glLightfv"/>
+ <command name="glLighti"/>
+ <command name="glLightiv"/>
+ <command name="glLightModelf"/>
+ <command name="glLightModelfv"/>
+ <command name="glLightModeli"/>
+ <command name="glLightModeliv"/>
+ <command name="glLineStipple"/>
+ <command name="glMaterialf"/>
+ <command name="glMaterialfv"/>
+ <command name="glMateriali"/>
+ <command name="glMaterialiv"/>
+ <command name="glPolygonStipple"/>
+ <command name="glShadeModel"/>
+ <command name="glTexEnvf"/>
+ <command name="glTexEnvfv"/>
+ <command name="glTexEnvi"/>
+ <command name="glTexEnviv"/>
+ <command name="glTexGend"/>
+ <command name="glTexGendv"/>
+ <command name="glTexGenf"/>
+ <command name="glTexGenfv"/>
+ <command name="glTexGeni"/>
+ <command name="glTexGeniv"/>
+ <command name="glFeedbackBuffer"/>
+ <command name="glSelectBuffer"/>
+ <command name="glRenderMode"/>
+ <command name="glInitNames"/>
+ <command name="glLoadName"/>
+ <command name="glPassThrough"/>
+ <command name="glPopName"/>
+ <command name="glPushName"/>
+ <command name="glClearAccum"/>
+ <command name="glClearIndex"/>
+ <command name="glIndexMask"/>
+ <command name="glAccum"/>
+ <command name="glPopAttrib"/>
+ <command name="glPushAttrib"/>
+ <command name="glMap1d"/>
+ <command name="glMap1f"/>
+ <command name="glMap2d"/>
+ <command name="glMap2f"/>
+ <command name="glMapGrid1d"/>
+ <command name="glMapGrid1f"/>
+ <command name="glMapGrid2d"/>
+ <command name="glMapGrid2f"/>
+ <command name="glEvalCoord1d"/>
+ <command name="glEvalCoord1dv"/>
+ <command name="glEvalCoord1f"/>
+ <command name="glEvalCoord1fv"/>
+ <command name="glEvalCoord2d"/>
+ <command name="glEvalCoord2dv"/>
+ <command name="glEvalCoord2f"/>
+ <command name="glEvalCoord2fv"/>
+ <command name="glEvalMesh1"/>
+ <command name="glEvalPoint1"/>
+ <command name="glEvalMesh2"/>
+ <command name="glEvalPoint2"/>
+ <command name="glAlphaFunc"/>
+ <command name="glPixelZoom"/>
+ <command name="glPixelTransferf"/>
+ <command name="glPixelTransferi"/>
+ <command name="glPixelMapfv"/>
+ <command name="glPixelMapuiv"/>
+ <command name="glPixelMapusv"/>
+ <command name="glCopyPixels"/>
+ <command name="glDrawPixels"/>
+ <command name="glGetClipPlane"/>
+ <command name="glGetLightfv"/>
+ <command name="glGetLightiv"/>
+ <command name="glGetMapdv"/>
+ <command name="glGetMapfv"/>
+ <command name="glGetMapiv"/>
+ <command name="glGetMaterialfv"/>
+ <command name="glGetMaterialiv"/>
+ <command name="glGetPixelMapfv"/>
+ <command name="glGetPixelMapuiv"/>
+ <command name="glGetPixelMapusv"/>
+ <command name="glGetPolygonStipple"/>
+ <command name="glGetTexEnvfv"/>
+ <command name="glGetTexEnviv"/>
+ <command name="glGetTexGendv"/>
+ <command name="glGetTexGenfv"/>
+ <command name="glGetTexGeniv"/>
+ <command name="glIsList"/>
+ <command name="glFrustum"/>
+ <command name="glLoadIdentity"/>
+ <command name="glLoadMatrixf"/>
+ <command name="glLoadMatrixd"/>
+ <command name="glMatrixMode"/>
+ <command name="glMultMatrixf"/>
+ <command name="glMultMatrixd"/>
+ <command name="glOrtho"/>
+ <command name="glPopMatrix"/>
+ <command name="glPushMatrix"/>
+ <command name="glRotated"/>
+ <command name="glRotatef"/>
+ <command name="glScaled"/>
+ <command name="glScalef"/>
+ <command name="glTranslated"/>
+ <command name="glTranslatef"/>
+ </remove>
+ <remove profile="core" comment="Compatibility-only GL 1.1 features removed from GL 3.2">
+ <enum name="GL_CURRENT_BIT"/>
+ <enum name="GL_POINT_BIT"/>
+ <enum name="GL_LINE_BIT"/>
+ <enum name="GL_POLYGON_BIT"/>
+ <enum name="GL_POLYGON_STIPPLE_BIT"/>
+ <enum name="GL_PIXEL_MODE_BIT"/>
+ <enum name="GL_LIGHTING_BIT"/>
+ <enum name="GL_FOG_BIT"/>
+ <enum name="GL_ACCUM_BUFFER_BIT"/>
+ <enum name="GL_VIEWPORT_BIT"/>
+ <enum name="GL_TRANSFORM_BIT"/>
+ <enum name="GL_ENABLE_BIT"/>
+ <enum name="GL_HINT_BIT"/>
+ <enum name="GL_EVAL_BIT"/>
+ <enum name="GL_LIST_BIT"/>
+ <enum name="GL_TEXTURE_BIT"/>
+ <enum name="GL_SCISSOR_BIT"/>
+ <enum name="GL_ALL_ATTRIB_BITS"/>
+ <enum name="GL_CLIENT_PIXEL_STORE_BIT"/>
+ <enum name="GL_CLIENT_VERTEX_ARRAY_BIT"/>
+ <enum name="GL_CLIENT_ALL_ATTRIB_BITS"/>
+ <enum name="GL_QUAD_STRIP"/>
+ <enum name="GL_POLYGON"/>
+ <enum name="GL_ACCUM"/>
+ <enum name="GL_LOAD"/>
+ <enum name="GL_RETURN"/>
+ <enum name="GL_MULT"/>
+ <enum name="GL_ADD"/>
+ <enum name="GL_STACK_OVERFLOW"/>
+ <enum name="GL_STACK_UNDERFLOW"/>
+ <enum name="GL_AUX0"/>
+ <enum name="GL_AUX1"/>
+ <enum name="GL_AUX2"/>
+ <enum name="GL_AUX3"/>
+ <enum name="GL_2D"/>
+ <enum name="GL_3D"/>
+ <enum name="GL_3D_COLOR"/>
+ <enum name="GL_3D_COLOR_TEXTURE"/>
+ <enum name="GL_4D_COLOR_TEXTURE"/>
+ <enum name="GL_PASS_THROUGH_TOKEN"/>
+ <enum name="GL_POINT_TOKEN"/>
+ <enum name="GL_LINE_TOKEN"/>
+ <enum name="GL_POLYGON_TOKEN"/>
+ <enum name="GL_BITMAP_TOKEN"/>
+ <enum name="GL_DRAW_PIXEL_TOKEN"/>
+ <enum name="GL_COPY_PIXEL_TOKEN"/>
+ <enum name="GL_LINE_RESET_TOKEN"/>
+ <enum name="GL_EXP"/>
+ <enum name="GL_EXP2"/>
+ <enum name="GL_COEFF"/>
+ <enum name="GL_ORDER"/>
+ <enum name="GL_DOMAIN"/>
+ <enum name="GL_PIXEL_MAP_I_TO_I"/>
+ <enum name="GL_PIXEL_MAP_S_TO_S"/>
+ <enum name="GL_PIXEL_MAP_I_TO_R"/>
+ <enum name="GL_PIXEL_MAP_I_TO_G"/>
+ <enum name="GL_PIXEL_MAP_I_TO_B"/>
+ <enum name="GL_PIXEL_MAP_I_TO_A"/>
+ <enum name="GL_PIXEL_MAP_R_TO_R"/>
+ <enum name="GL_PIXEL_MAP_G_TO_G"/>
+ <enum name="GL_PIXEL_MAP_B_TO_B"/>
+ <enum name="GL_PIXEL_MAP_A_TO_A"/>
+ <enum name="GL_VERTEX_ARRAY_POINTER"/>
+ <enum name="GL_NORMAL_ARRAY_POINTER"/>
+ <enum name="GL_COLOR_ARRAY_POINTER"/>
+ <enum name="GL_INDEX_ARRAY_POINTER"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_POINTER"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_POINTER"/>
+ <enum name="GL_FEEDBACK_BUFFER_POINTER"/>
+ <enum name="GL_SELECTION_BUFFER_POINTER"/>
+ <enum name="GL_CURRENT_COLOR"/>
+ <enum name="GL_CURRENT_INDEX"/>
+ <enum name="GL_CURRENT_NORMAL"/>
+ <enum name="GL_CURRENT_TEXTURE_COORDS"/>
+ <enum name="GL_CURRENT_RASTER_COLOR"/>
+ <enum name="GL_CURRENT_RASTER_INDEX"/>
+ <enum name="GL_CURRENT_RASTER_TEXTURE_COORDS"/>
+ <enum name="GL_CURRENT_RASTER_POSITION"/>
+ <enum name="GL_CURRENT_RASTER_POSITION_VALID"/>
+ <enum name="GL_CURRENT_RASTER_DISTANCE"/>
+ <enum name="GL_POINT_SMOOTH"/>
+ <enum name="GL_LINE_STIPPLE"/>
+ <enum name="GL_LINE_STIPPLE_PATTERN"/>
+ <enum name="GL_LINE_STIPPLE_REPEAT"/>
+ <enum name="GL_LIST_MODE"/>
+ <enum name="GL_MAX_LIST_NESTING"/>
+ <enum name="GL_LIST_BASE"/>
+ <enum name="GL_LIST_INDEX"/>
+ <enum name="GL_POLYGON_STIPPLE"/>
+ <enum name="GL_EDGE_FLAG"/>
+ <enum name="GL_LIGHTING"/>
+ <enum name="GL_LIGHT_MODEL_LOCAL_VIEWER"/>
+ <enum name="GL_LIGHT_MODEL_TWO_SIDE"/>
+ <enum name="GL_LIGHT_MODEL_AMBIENT"/>
+ <enum name="GL_SHADE_MODEL"/>
+ <enum name="GL_COLOR_MATERIAL_FACE"/>
+ <enum name="GL_COLOR_MATERIAL_PARAMETER"/>
+ <enum name="GL_COLOR_MATERIAL"/>
+ <enum name="GL_FOG"/>
+ <enum name="GL_FOG_INDEX"/>
+ <enum name="GL_FOG_DENSITY"/>
+ <enum name="GL_FOG_START"/>
+ <enum name="GL_FOG_END"/>
+ <enum name="GL_FOG_MODE"/>
+ <enum name="GL_FOG_COLOR"/>
+ <enum name="GL_ACCUM_CLEAR_VALUE"/>
+ <enum name="GL_MATRIX_MODE"/>
+ <enum name="GL_NORMALIZE"/>
+ <enum name="GL_MODELVIEW_STACK_DEPTH"/>
+ <enum name="GL_PROJECTION_STACK_DEPTH"/>
+ <enum name="GL_TEXTURE_STACK_DEPTH"/>
+ <enum name="GL_MODELVIEW_MATRIX"/>
+ <enum name="GL_PROJECTION_MATRIX"/>
+ <enum name="GL_TEXTURE_MATRIX"/>
+ <enum name="GL_ATTRIB_STACK_DEPTH"/>
+ <enum name="GL_CLIENT_ATTRIB_STACK_DEPTH"/>
+ <enum name="GL_ALPHA_TEST"/>
+ <enum name="GL_ALPHA_TEST_FUNC"/>
+ <enum name="GL_ALPHA_TEST_REF"/>
+ <enum name="GL_INDEX_LOGIC_OP"/>
+ <enum name="GL_LOGIC_OP"/>
+ <enum name="GL_AUX_BUFFERS"/>
+ <enum name="GL_INDEX_CLEAR_VALUE"/>
+ <enum name="GL_INDEX_WRITEMASK"/>
+ <enum name="GL_INDEX_MODE"/>
+ <enum name="GL_RGBA_MODE"/>
+ <enum name="GL_RENDER_MODE"/>
+ <enum name="GL_PERSPECTIVE_CORRECTION_HINT"/>
+ <enum name="GL_POINT_SMOOTH_HINT"/>
+ <enum name="GL_FOG_HINT"/>
+ <enum name="GL_TEXTURE_GEN_S"/>
+ <enum name="GL_TEXTURE_GEN_T"/>
+ <enum name="GL_TEXTURE_GEN_R"/>
+ <enum name="GL_TEXTURE_GEN_Q"/>
+ <enum name="GL_PIXEL_MAP_I_TO_I_SIZE"/>
+ <enum name="GL_PIXEL_MAP_S_TO_S_SIZE"/>
+ <enum name="GL_PIXEL_MAP_I_TO_R_SIZE"/>
+ <enum name="GL_PIXEL_MAP_I_TO_G_SIZE"/>
+ <enum name="GL_PIXEL_MAP_I_TO_B_SIZE"/>
+ <enum name="GL_PIXEL_MAP_I_TO_A_SIZE"/>
+ <enum name="GL_PIXEL_MAP_R_TO_R_SIZE"/>
+ <enum name="GL_PIXEL_MAP_G_TO_G_SIZE"/>
+ <enum name="GL_PIXEL_MAP_B_TO_B_SIZE"/>
+ <enum name="GL_PIXEL_MAP_A_TO_A_SIZE"/>
+ <enum name="GL_MAP_COLOR"/>
+ <enum name="GL_MAP_STENCIL"/>
+ <enum name="GL_INDEX_SHIFT"/>
+ <enum name="GL_INDEX_OFFSET"/>
+ <enum name="GL_RED_SCALE"/>
+ <enum name="GL_RED_BIAS"/>
+ <enum name="GL_ZOOM_X"/>
+ <enum name="GL_ZOOM_Y"/>
+ <enum name="GL_GREEN_SCALE"/>
+ <enum name="GL_GREEN_BIAS"/>
+ <enum name="GL_BLUE_SCALE"/>
+ <enum name="GL_BLUE_BIAS"/>
+ <enum name="GL_ALPHA_SCALE"/>
+ <enum name="GL_ALPHA_BIAS"/>
+ <enum name="GL_DEPTH_SCALE"/>
+ <enum name="GL_DEPTH_BIAS"/>
+ <enum name="GL_MAX_EVAL_ORDER"/>
+ <enum name="GL_MAX_LIGHTS"/>
+ <enum name="GL_MAX_CLIP_PLANES"/>
+ <enum name="GL_MAX_PIXEL_MAP_TABLE"/>
+ <enum name="GL_MAX_ATTRIB_STACK_DEPTH"/>
+ <enum name="GL_MAX_MODELVIEW_STACK_DEPTH"/>
+ <enum name="GL_MAX_NAME_STACK_DEPTH"/>
+ <enum name="GL_MAX_PROJECTION_STACK_DEPTH"/>
+ <enum name="GL_MAX_TEXTURE_STACK_DEPTH"/>
+ <enum name="GL_MAX_CLIENT_ATTRIB_STACK_DEPTH"/>
+ <enum name="GL_INDEX_BITS"/>
+ <enum name="GL_RED_BITS"/>
+ <enum name="GL_GREEN_BITS"/>
+ <enum name="GL_BLUE_BITS"/>
+ <enum name="GL_ALPHA_BITS"/>
+ <enum name="GL_DEPTH_BITS"/>
+ <enum name="GL_STENCIL_BITS"/>
+ <enum name="GL_ACCUM_RED_BITS"/>
+ <enum name="GL_ACCUM_GREEN_BITS"/>
+ <enum name="GL_ACCUM_BLUE_BITS"/>
+ <enum name="GL_ACCUM_ALPHA_BITS"/>
+ <enum name="GL_NAME_STACK_DEPTH"/>
+ <enum name="GL_AUTO_NORMAL"/>
+ <enum name="GL_MAP1_COLOR_4"/>
+ <enum name="GL_MAP1_INDEX"/>
+ <enum name="GL_MAP1_NORMAL"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_1"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_2"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_3"/>
+ <enum name="GL_MAP1_TEXTURE_COORD_4"/>
+ <enum name="GL_MAP1_VERTEX_3"/>
+ <enum name="GL_MAP1_VERTEX_4"/>
+ <enum name="GL_MAP2_COLOR_4"/>
+ <enum name="GL_MAP2_INDEX"/>
+ <enum name="GL_MAP2_NORMAL"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_1"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_2"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_3"/>
+ <enum name="GL_MAP2_TEXTURE_COORD_4"/>
+ <enum name="GL_MAP2_VERTEX_3"/>
+ <enum name="GL_MAP2_VERTEX_4"/>
+ <enum name="GL_MAP1_GRID_DOMAIN"/>
+ <enum name="GL_MAP1_GRID_SEGMENTS"/>
+ <enum name="GL_MAP2_GRID_DOMAIN"/>
+ <enum name="GL_MAP2_GRID_SEGMENTS"/>
+ <enum name="GL_FEEDBACK_BUFFER_SIZE"/>
+ <enum name="GL_FEEDBACK_BUFFER_TYPE"/>
+ <enum name="GL_SELECTION_BUFFER_SIZE"/>
+ <enum name="GL_VERTEX_ARRAY"/>
+ <enum name="GL_NORMAL_ARRAY"/>
+ <enum name="GL_COLOR_ARRAY"/>
+ <enum name="GL_INDEX_ARRAY"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY"/>
+ <enum name="GL_EDGE_FLAG_ARRAY"/>
+ <enum name="GL_VERTEX_ARRAY_SIZE"/>
+ <enum name="GL_VERTEX_ARRAY_TYPE"/>
+ <enum name="GL_VERTEX_ARRAY_STRIDE"/>
+ <enum name="GL_NORMAL_ARRAY_TYPE"/>
+ <enum name="GL_NORMAL_ARRAY_STRIDE"/>
+ <enum name="GL_COLOR_ARRAY_SIZE"/>
+ <enum name="GL_COLOR_ARRAY_TYPE"/>
+ <enum name="GL_COLOR_ARRAY_STRIDE"/>
+ <enum name="GL_INDEX_ARRAY_TYPE"/>
+ <enum name="GL_INDEX_ARRAY_STRIDE"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_SIZE"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_TYPE"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_STRIDE"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_STRIDE"/>
+ <enum name="GL_TEXTURE_COMPONENTS"/>
+ <enum name="GL_TEXTURE_BORDER"/>
+ <enum name="GL_TEXTURE_LUMINANCE_SIZE"/>
+ <enum name="GL_TEXTURE_INTENSITY_SIZE"/>
+ <enum name="GL_TEXTURE_PRIORITY"/>
+ <enum name="GL_TEXTURE_RESIDENT"/>
+ <enum name="GL_AMBIENT"/>
+ <enum name="GL_DIFFUSE"/>
+ <enum name="GL_SPECULAR"/>
+ <enum name="GL_POSITION"/>
+ <enum name="GL_SPOT_DIRECTION"/>
+ <enum name="GL_SPOT_EXPONENT"/>
+ <enum name="GL_SPOT_CUTOFF"/>
+ <enum name="GL_CONSTANT_ATTENUATION"/>
+ <enum name="GL_LINEAR_ATTENUATION"/>
+ <enum name="GL_QUADRATIC_ATTENUATION"/>
+ <enum name="GL_COMPILE"/>
+ <enum name="GL_COMPILE_AND_EXECUTE"/>
+ <enum name="GL_2_BYTES"/>
+ <enum name="GL_3_BYTES"/>
+ <enum name="GL_4_BYTES"/>
+ <enum name="GL_EMISSION"/>
+ <enum name="GL_SHININESS"/>
+ <enum name="GL_AMBIENT_AND_DIFFUSE"/>
+ <enum name="GL_COLOR_INDEXES"/>
+ <enum name="GL_MODELVIEW"/>
+ <enum name="GL_PROJECTION"/>
+ <enum name="GL_COLOR_INDEX"/>
+ <enum name="GL_LUMINANCE"/>
+ <enum name="GL_LUMINANCE_ALPHA"/>
+ <enum name="GL_BITMAP"/>
+ <enum name="GL_RENDER"/>
+ <enum name="GL_FEEDBACK"/>
+ <enum name="GL_SELECT"/>
+ <enum name="GL_FLAT"/>
+ <enum name="GL_SMOOTH"/>
+ <enum name="GL_S"/>
+ <enum name="GL_T"/>
+ <enum name="GL_R"/>
+ <enum name="GL_Q"/>
+ <enum name="GL_MODULATE"/>
+ <enum name="GL_DECAL"/>
+ <enum name="GL_TEXTURE_ENV_MODE"/>
+ <enum name="GL_TEXTURE_ENV_COLOR"/>
+ <enum name="GL_TEXTURE_ENV"/>
+ <enum name="GL_EYE_LINEAR"/>
+ <enum name="GL_OBJECT_LINEAR"/>
+ <enum name="GL_SPHERE_MAP"/>
+ <enum name="GL_TEXTURE_GEN_MODE"/>
+ <enum name="GL_OBJECT_PLANE"/>
+ <enum name="GL_EYE_PLANE"/>
+ <enum name="GL_CLAMP"/>
+ <enum name="GL_ALPHA4"/>
+ <enum name="GL_ALPHA8"/>
+ <enum name="GL_ALPHA12"/>
+ <enum name="GL_ALPHA16"/>
+ <enum name="GL_LUMINANCE4"/>
+ <enum name="GL_LUMINANCE8"/>
+ <enum name="GL_LUMINANCE12"/>
+ <enum name="GL_LUMINANCE16"/>
+ <enum name="GL_LUMINANCE4_ALPHA4"/>
+ <enum name="GL_LUMINANCE6_ALPHA2"/>
+ <enum name="GL_LUMINANCE8_ALPHA8"/>
+ <enum name="GL_LUMINANCE12_ALPHA4"/>
+ <enum name="GL_LUMINANCE12_ALPHA12"/>
+ <enum name="GL_LUMINANCE16_ALPHA16"/>
+ <enum name="GL_INTENSITY"/>
+ <enum name="GL_INTENSITY4"/>
+ <enum name="GL_INTENSITY8"/>
+ <enum name="GL_INTENSITY12"/>
+ <enum name="GL_INTENSITY16"/>
+ <enum name="GL_V2F"/>
+ <enum name="GL_V3F"/>
+ <enum name="GL_C4UB_V2F"/>
+ <enum name="GL_C4UB_V3F"/>
+ <enum name="GL_C3F_V3F"/>
+ <enum name="GL_N3F_V3F"/>
+ <enum name="GL_C4F_N3F_V3F"/>
+ <enum name="GL_T2F_V3F"/>
+ <enum name="GL_T4F_V4F"/>
+ <enum name="GL_T2F_C4UB_V3F"/>
+ <enum name="GL_T2F_C3F_V3F"/>
+ <enum name="GL_T2F_N3F_V3F"/>
+ <enum name="GL_T2F_C4F_N3F_V3F"/>
+ <enum name="GL_T4F_C4F_N3F_V4F"/>
+ <enum name="GL_CLIP_PLANE0"/>
+ <enum name="GL_CLIP_PLANE1"/>
+ <enum name="GL_CLIP_PLANE2"/>
+ <enum name="GL_CLIP_PLANE3"/>
+ <enum name="GL_CLIP_PLANE4"/>
+ <enum name="GL_CLIP_PLANE5"/>
+ <enum name="GL_LIGHT0"/>
+ <enum name="GL_LIGHT1"/>
+ <enum name="GL_LIGHT2"/>
+ <enum name="GL_LIGHT3"/>
+ <enum name="GL_LIGHT4"/>
+ <enum name="GL_LIGHT5"/>
+ <enum name="GL_LIGHT6"/>
+ <enum name="GL_LIGHT7"/>
+ <command name="glArrayElement"/>
+ <command name="glColorPointer"/>
+ <command name="glDisableClientState"/>
+ <command name="glEdgeFlagPointer"/>
+ <command name="glEnableClientState"/>
+ <command name="glIndexPointer"/>
+ <command name="glGetPointerv"/>
+ <command name="glInterleavedArrays"/>
+ <command name="glNormalPointer"/>
+ <command name="glTexCoordPointer"/>
+ <command name="glVertexPointer"/>
+ <command name="glAreTexturesResident"/>
+ <command name="glPrioritizeTextures"/>
+ <command name="glIndexub"/>
+ <command name="glIndexubv"/>
+ <command name="glPopClientAttrib"/>
+ <command name="glPushClientAttrib"/>
+ </remove>
+ <remove profile="core" comment="Compatibility-only GL 1.2 features removed from GL 3.2">
+ <enum name="GL_RESCALE_NORMAL"/>
+ <enum name="GL_LIGHT_MODEL_COLOR_CONTROL"/>
+ <enum name="GL_SINGLE_COLOR"/>
+ <enum name="GL_SEPARATE_SPECULAR_COLOR"/>
+ <enum name="GL_ALIASED_POINT_SIZE_RANGE"/>
+ </remove>
+ <remove profile="core" comment="Compatibility-only GL 1.3 features removed from GL 3.2">
+ <enum name="GL_CLIENT_ACTIVE_TEXTURE"/>
+ <enum name="GL_MAX_TEXTURE_UNITS"/>
+ <enum name="GL_TRANSPOSE_MODELVIEW_MATRIX"/>
+ <enum name="GL_TRANSPOSE_PROJECTION_MATRIX"/>
+ <enum name="GL_TRANSPOSE_TEXTURE_MATRIX"/>
+ <enum name="GL_TRANSPOSE_COLOR_MATRIX"/>
+ <enum name="GL_MULTISAMPLE_BIT"/>
+ <enum name="GL_NORMAL_MAP"/>
+ <enum name="GL_REFLECTION_MAP"/>
+ <enum name="GL_COMPRESSED_ALPHA"/>
+ <enum name="GL_COMPRESSED_LUMINANCE"/>
+ <enum name="GL_COMPRESSED_LUMINANCE_ALPHA"/>
+ <enum name="GL_COMPRESSED_INTENSITY"/>
+ <enum name="GL_COMBINE"/>
+ <enum name="GL_COMBINE_RGB"/>
+ <enum name="GL_COMBINE_ALPHA"/>
+ <enum name="GL_SOURCE0_RGB"/>
+ <enum name="GL_SOURCE1_RGB"/>
+ <enum name="GL_SOURCE2_RGB"/>
+ <enum name="GL_SOURCE0_ALPHA"/>
+ <enum name="GL_SOURCE1_ALPHA"/>
+ <enum name="GL_SOURCE2_ALPHA"/>
+ <enum name="GL_OPERAND0_RGB"/>
+ <enum name="GL_OPERAND1_RGB"/>
+ <enum name="GL_OPERAND2_RGB"/>
+ <enum name="GL_OPERAND0_ALPHA"/>
+ <enum name="GL_OPERAND1_ALPHA"/>
+ <enum name="GL_OPERAND2_ALPHA"/>
+ <enum name="GL_RGB_SCALE"/>
+ <enum name="GL_ADD_SIGNED"/>
+ <enum name="GL_INTERPOLATE"/>
+ <enum name="GL_SUBTRACT"/>
+ <enum name="GL_CONSTANT"/>
+ <enum name="GL_PRIMARY_COLOR"/>
+ <enum name="GL_PREVIOUS"/>
+ <enum name="GL_DOT3_RGB"/>
+ <enum name="GL_DOT3_RGBA"/>
+ <command name="glClientActiveTexture"/>
+ <command name="glMultiTexCoord1d"/>
+ <command name="glMultiTexCoord1dv"/>
+ <command name="glMultiTexCoord1f"/>
+ <command name="glMultiTexCoord1fv"/>
+ <command name="glMultiTexCoord1i"/>
+ <command name="glMultiTexCoord1iv"/>
+ <command name="glMultiTexCoord1s"/>
+ <command name="glMultiTexCoord1sv"/>
+ <command name="glMultiTexCoord2d"/>
+ <command name="glMultiTexCoord2dv"/>
+ <command name="glMultiTexCoord2f"/>
+ <command name="glMultiTexCoord2fv"/>
+ <command name="glMultiTexCoord2i"/>
+ <command name="glMultiTexCoord2iv"/>
+ <command name="glMultiTexCoord2s"/>
+ <command name="glMultiTexCoord2sv"/>
+ <command name="glMultiTexCoord3d"/>
+ <command name="glMultiTexCoord3dv"/>
+ <command name="glMultiTexCoord3f"/>
+ <command name="glMultiTexCoord3fv"/>
+ <command name="glMultiTexCoord3i"/>
+ <command name="glMultiTexCoord3iv"/>
+ <command name="glMultiTexCoord3s"/>
+ <command name="glMultiTexCoord3sv"/>
+ <command name="glMultiTexCoord4d"/>
+ <command name="glMultiTexCoord4dv"/>
+ <command name="glMultiTexCoord4f"/>
+ <command name="glMultiTexCoord4fv"/>
+ <command name="glMultiTexCoord4i"/>
+ <command name="glMultiTexCoord4iv"/>
+ <command name="glMultiTexCoord4s"/>
+ <command name="glMultiTexCoord4sv"/>
+ <command name="glLoadTransposeMatrixf"/>
+ <command name="glLoadTransposeMatrixd"/>
+ <command name="glMultTransposeMatrixf"/>
+ <command name="glMultTransposeMatrixd"/>
+ </remove>
+ <remove profile="core" comment="Compatibility-only GL 1.4 features removed from GL 3.2">
+ <enum name="GL_POINT_SIZE_MIN"/>
+ <enum name="GL_POINT_SIZE_MAX"/>
+ <enum name="GL_POINT_DISTANCE_ATTENUATION"/>
+ <enum name="GL_GENERATE_MIPMAP"/>
+ <enum name="GL_GENERATE_MIPMAP_HINT"/>
+ <enum name="GL_FOG_COORDINATE_SOURCE"/>
+ <enum name="GL_FOG_COORDINATE"/>
+ <enum name="GL_FRAGMENT_DEPTH"/>
+ <enum name="GL_CURRENT_FOG_COORDINATE"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_TYPE"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_STRIDE"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_POINTER"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY"/>
+ <enum name="GL_COLOR_SUM"/>
+ <enum name="GL_CURRENT_SECONDARY_COLOR"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_SIZE"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_TYPE"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_STRIDE"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_POINTER"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY"/>
+ <enum name="GL_TEXTURE_FILTER_CONTROL"/>
+ <enum name="GL_DEPTH_TEXTURE_MODE"/>
+ <enum name="GL_COMPARE_R_TO_TEXTURE"/>
+ <command name="glFogCoordf"/>
+ <command name="glFogCoordfv"/>
+ <command name="glFogCoordd"/>
+ <command name="glFogCoorddv"/>
+ <command name="glFogCoordPointer"/>
+ <command name="glSecondaryColor3b"/>
+ <command name="glSecondaryColor3bv"/>
+ <command name="glSecondaryColor3d"/>
+ <command name="glSecondaryColor3dv"/>
+ <command name="glSecondaryColor3f"/>
+ <command name="glSecondaryColor3fv"/>
+ <command name="glSecondaryColor3i"/>
+ <command name="glSecondaryColor3iv"/>
+ <command name="glSecondaryColor3s"/>
+ <command name="glSecondaryColor3sv"/>
+ <command name="glSecondaryColor3ub"/>
+ <command name="glSecondaryColor3ubv"/>
+ <command name="glSecondaryColor3ui"/>
+ <command name="glSecondaryColor3uiv"/>
+ <command name="glSecondaryColor3us"/>
+ <command name="glSecondaryColor3usv"/>
+ <command name="glSecondaryColorPointer"/>
+ <command name="glWindowPos2d"/>
+ <command name="glWindowPos2dv"/>
+ <command name="glWindowPos2f"/>
+ <command name="glWindowPos2fv"/>
+ <command name="glWindowPos2i"/>
+ <command name="glWindowPos2iv"/>
+ <command name="glWindowPos2s"/>
+ <command name="glWindowPos2sv"/>
+ <command name="glWindowPos3d"/>
+ <command name="glWindowPos3dv"/>
+ <command name="glWindowPos3f"/>
+ <command name="glWindowPos3fv"/>
+ <command name="glWindowPos3i"/>
+ <command name="glWindowPos3iv"/>
+ <command name="glWindowPos3s"/>
+ <command name="glWindowPos3sv"/>
+ </remove>
+ <remove profile="core" comment="Compatibility-only GL 1.5 features removed from GL 3.2">
+ <enum name="GL_VERTEX_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_NORMAL_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_COLOR_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_INDEX_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_WEIGHT_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_FOG_COORD_SRC"/>
+ <enum name="GL_FOG_COORD"/>
+ <enum name="GL_CURRENT_FOG_COORD"/>
+ <enum name="GL_FOG_COORD_ARRAY_TYPE"/>
+ <enum name="GL_FOG_COORD_ARRAY_STRIDE"/>
+ <enum name="GL_FOG_COORD_ARRAY_POINTER"/>
+ <enum name="GL_FOG_COORD_ARRAY"/>
+ <enum name="GL_FOG_COORD_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_SRC0_RGB"/>
+ <enum name="GL_SRC1_RGB"/>
+ <enum name="GL_SRC2_RGB"/>
+ <enum name="GL_SRC0_ALPHA"/>
+ <enum name="GL_SRC2_ALPHA"/>
+ </remove>
+ <remove profile="core" comment="Compatibility-only GL 2.0 features removed from GL 3.2">
+ <enum name="GL_VERTEX_PROGRAM_TWO_SIDE"/>
+ <enum name="GL_POINT_SPRITE"/>
+ <enum name="GL_COORD_REPLACE"/>
+ <enum name="GL_MAX_TEXTURE_COORDS"/>
+ </remove>
+ <remove profile="core" comment="Compatibility-only GL 2.1 features removed from GL 3.2">
+ <enum name="GL_CURRENT_RASTER_SECONDARY_COLOR"/>
+ <enum name="GL_SLUMINANCE_ALPHA"/>
+ <enum name="GL_SLUMINANCE8_ALPHA8"/>
+ <enum name="GL_SLUMINANCE"/>
+ <enum name="GL_SLUMINANCE8"/>
+ <enum name="GL_COMPRESSED_SLUMINANCE"/>
+ <enum name="GL_COMPRESSED_SLUMINANCE_ALPHA"/>
+ </remove>
+ <remove profile="core" comment="Compatibility-only GL 3.0 features removed from GL 3.2">
+ <enum name="GL_CLAMP_VERTEX_COLOR"/>
+ <enum name="GL_CLAMP_FRAGMENT_COLOR"/>
+ <enum name="GL_ALPHA_INTEGER"/>
+ <enum name="GL_TEXTURE_LUMINANCE_TYPE"/>
+ <enum name="GL_TEXTURE_INTENSITY_TYPE"/>
+ </remove>
+ <!-- Deprecated (not removed) in OpenGL 3.2 core;
+ deprecate tag not defined/supported yet
+ <deprecate profile="core">
+ <enum name="GL_MAX_VARYING_FLOATS"/>
+ <enum name="GL_MAX_VARYING_COMPONENTS"/>
+ </deprecate>
+ -->
+ </feature>
+ <feature api="gl" name="GL_VERSION_3_3" number="3.3">
+ <require>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_DIVISOR"/>
+ </require>
+ <require comment="Reuse ARB_blend_func_extended">
+ <enum name="GL_SRC1_COLOR"/>
+ <enum name="GL_ONE_MINUS_SRC1_COLOR"/>
+ <enum name="GL_ONE_MINUS_SRC1_ALPHA"/>
+ <enum name="GL_MAX_DUAL_SOURCE_DRAW_BUFFERS"/>
+ <command name="glBindFragDataLocationIndexed"/>
+ <command name="glGetFragDataIndex"/>
+ </require>
+ <require comment="Reuse ARB_explicit_attrib_location (none)">
+ </require>
+ <require comment="Reuse ARB_occlusion_query2">
+ <enum name="GL_ANY_SAMPLES_PASSED"/>
+ </require>
+ <require comment="Reuse ARB_sampler_objects">
+ <enum name="GL_SAMPLER_BINDING"/>
+ <command name="glGenSamplers"/>
+ <command name="glDeleteSamplers"/>
+ <command name="glIsSampler"/>
+ <command name="glBindSampler"/>
+ <command name="glSamplerParameteri"/>
+ <command name="glSamplerParameteriv"/>
+ <command name="glSamplerParameterf"/>
+ <command name="glSamplerParameterfv"/>
+ <command name="glSamplerParameterIiv"/>
+ <command name="glSamplerParameterIuiv"/>
+ <command name="glGetSamplerParameteriv"/>
+ <command name="glGetSamplerParameterIiv"/>
+ <command name="glGetSamplerParameterfv"/>
+ <command name="glGetSamplerParameterIuiv"/>
+ </require>
+ <require comment="Reuse ARB_shader_bit_encoding (none)">
+ </require>
+ <require comment="Reuse ARB_texture_rgb10_a2ui">
+ <enum name="GL_RGB10_A2UI"/>
+ </require>
+ <require comment="Reuse ARB_texture_swizzle">
+ <enum name="GL_TEXTURE_SWIZZLE_R"/>
+ <enum name="GL_TEXTURE_SWIZZLE_G"/>
+ <enum name="GL_TEXTURE_SWIZZLE_B"/>
+ <enum name="GL_TEXTURE_SWIZZLE_A"/>
+ <enum name="GL_TEXTURE_SWIZZLE_RGBA"/>
+ </require>
+ <require comment="Reuse ARB_timer_query">
+ <enum name="GL_TIME_ELAPSED"/>
+ <enum name="GL_TIMESTAMP"/>
+ <command name="glQueryCounter"/>
+ <command name="glGetQueryObjecti64v"/>
+ <command name="glGetQueryObjectui64v"/>
+ </require>
+ <require comment="Reuse ARB_vertex_type_2_10_10_10_rev">
+ <enum name="GL_INT_2_10_10_10_REV"/>
+ <command name="glVertexAttribDivisor"/>
+ <command name="glVertexAttribP1ui"/>
+ <command name="glVertexAttribP1uiv"/>
+ <command name="glVertexAttribP2ui"/>
+ <command name="glVertexAttribP2uiv"/>
+ <command name="glVertexAttribP3ui"/>
+ <command name="glVertexAttribP3uiv"/>
+ <command name="glVertexAttribP4ui"/>
+ <command name="glVertexAttribP4uiv"/>
+ </require>
+ <require profile="compatibility" comment="Reuse ARB_vertex_type_2_10_10_10_rev compatibility profile">
+ <command name="glVertexP2ui"/>
+ <command name="glVertexP2uiv"/>
+ <command name="glVertexP3ui"/>
+ <command name="glVertexP3uiv"/>
+ <command name="glVertexP4ui"/>
+ <command name="glVertexP4uiv"/>
+ <command name="glTexCoordP1ui"/>
+ <command name="glTexCoordP1uiv"/>
+ <command name="glTexCoordP2ui"/>
+ <command name="glTexCoordP2uiv"/>
+ <command name="glTexCoordP3ui"/>
+ <command name="glTexCoordP3uiv"/>
+ <command name="glTexCoordP4ui"/>
+ <command name="glTexCoordP4uiv"/>
+ <command name="glMultiTexCoordP1ui"/>
+ <command name="glMultiTexCoordP1uiv"/>
+ <command name="glMultiTexCoordP2ui"/>
+ <command name="glMultiTexCoordP2uiv"/>
+ <command name="glMultiTexCoordP3ui"/>
+ <command name="glMultiTexCoordP3uiv"/>
+ <command name="glMultiTexCoordP4ui"/>
+ <command name="glMultiTexCoordP4uiv"/>
+ <command name="glNormalP3ui"/>
+ <command name="glNormalP3uiv"/>
+ <command name="glColorP3ui"/>
+ <command name="glColorP3uiv"/>
+ <command name="glColorP4ui"/>
+ <command name="glColorP4uiv"/>
+ <command name="glSecondaryColorP3ui"/>
+ <command name="glSecondaryColorP3uiv"/>
+ </require>
+ </feature>
+ <feature api="gl" name="GL_VERSION_4_0" number="4.0">
+ <require>
+ <enum name="GL_SAMPLE_SHADING"/>
+ <enum name="GL_MIN_SAMPLE_SHADING_VALUE"/>
+ <enum name="GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET"/>
+ <enum name="GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_ARRAY"/>
+ <enum name="GL_TEXTURE_BINDING_CUBE_MAP_ARRAY"/>
+ <enum name="GL_PROXY_TEXTURE_CUBE_MAP_ARRAY"/>
+ <enum name="GL_SAMPLER_CUBE_MAP_ARRAY"/>
+ <enum name="GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW"/>
+ <enum name="GL_INT_SAMPLER_CUBE_MAP_ARRAY"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY"/>
+ <command name="glMinSampleShading"/>
+ <command name="glBlendEquationi"/>
+ <command name="glBlendEquationSeparatei"/>
+ <command name="glBlendFunci"/>
+ <command name="glBlendFuncSeparatei"/>
+ </require>
+ <require comment="Reuse ARB_draw_buffers_blend (none)">
+ </require>
+ <require comment="Reuse ARB_draw_indirect">
+ <enum name="GL_DRAW_INDIRECT_BUFFER"/>
+ <enum name="GL_DRAW_INDIRECT_BUFFER_BINDING"/>
+ <command name="glDrawArraysIndirect"/>
+ <command name="glDrawElementsIndirect"/>
+ </require>
+ <require comment="Reuse ARB_gpu_shader5">
+ <enum name="GL_GEOMETRY_SHADER_INVOCATIONS"/>
+ <enum name="GL_MAX_GEOMETRY_SHADER_INVOCATIONS"/>
+ <enum name="GL_MIN_FRAGMENT_INTERPOLATION_OFFSET"/>
+ <enum name="GL_MAX_FRAGMENT_INTERPOLATION_OFFSET"/>
+ <enum name="GL_FRAGMENT_INTERPOLATION_OFFSET_BITS"/>
+ <enum name="GL_MAX_VERTEX_STREAMS"/>
+ </require>
+ <require comment="Reuse ARB_gpu_shader_fp64">
+ <enum name="GL_DOUBLE_VEC2"/>
+ <enum name="GL_DOUBLE_VEC3"/>
+ <enum name="GL_DOUBLE_VEC4"/>
+ <enum name="GL_DOUBLE_MAT2"/>
+ <enum name="GL_DOUBLE_MAT3"/>
+ <enum name="GL_DOUBLE_MAT4"/>
+ <enum name="GL_DOUBLE_MAT2x3"/>
+ <enum name="GL_DOUBLE_MAT2x4"/>
+ <enum name="GL_DOUBLE_MAT3x2"/>
+ <enum name="GL_DOUBLE_MAT3x4"/>
+ <enum name="GL_DOUBLE_MAT4x2"/>
+ <enum name="GL_DOUBLE_MAT4x3"/>
+ <command name="glUniform1d"/>
+ <command name="glUniform2d"/>
+ <command name="glUniform3d"/>
+ <command name="glUniform4d"/>
+ <command name="glUniform1dv"/>
+ <command name="glUniform2dv"/>
+ <command name="glUniform3dv"/>
+ <command name="glUniform4dv"/>
+ <command name="glUniformMatrix2dv"/>
+ <command name="glUniformMatrix3dv"/>
+ <command name="glUniformMatrix4dv"/>
+ <command name="glUniformMatrix2x3dv"/>
+ <command name="glUniformMatrix2x4dv"/>
+ <command name="glUniformMatrix3x2dv"/>
+ <command name="glUniformMatrix3x4dv"/>
+ <command name="glUniformMatrix4x2dv"/>
+ <command name="glUniformMatrix4x3dv"/>
+ <command name="glGetUniformdv"/>
+ </require>
+ <require comment="Reuse ARB_shader_subroutine">
+ <enum name="GL_ACTIVE_SUBROUTINES"/>
+ <enum name="GL_ACTIVE_SUBROUTINE_UNIFORMS"/>
+ <enum name="GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS"/>
+ <enum name="GL_ACTIVE_SUBROUTINE_MAX_LENGTH"/>
+ <enum name="GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH"/>
+ <enum name="GL_MAX_SUBROUTINES"/>
+ <enum name="GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS"/>
+ <enum name="GL_NUM_COMPATIBLE_SUBROUTINES"/>
+ <enum name="GL_COMPATIBLE_SUBROUTINES"/>
+ <command name="glGetSubroutineUniformLocation"/>
+ <command name="glGetSubroutineIndex"/>
+ <command name="glGetActiveSubroutineUniformiv"/>
+ <command name="glGetActiveSubroutineUniformName"/>
+ <command name="glGetActiveSubroutineName"/>
+ <command name="glUniformSubroutinesuiv"/>
+ <command name="glGetUniformSubroutineuiv"/>
+ <command name="glGetProgramStageiv"/>
+ </require>
+ <require comment="Reuse ARB_tessellation_shader">
+ <enum name="GL_PATCHES"/>
+ <enum name="GL_PATCH_VERTICES"/>
+ <enum name="GL_PATCH_DEFAULT_INNER_LEVEL"/>
+ <enum name="GL_PATCH_DEFAULT_OUTER_LEVEL"/>
+ <enum name="GL_TESS_CONTROL_OUTPUT_VERTICES"/>
+ <enum name="GL_TESS_GEN_MODE"/>
+ <enum name="GL_TESS_GEN_SPACING"/>
+ <enum name="GL_TESS_GEN_VERTEX_ORDER"/>
+ <enum name="GL_TESS_GEN_POINT_MODE"/>
+ <enum name="GL_ISOLINES"/>
+ <enum name="GL_FRACTIONAL_ODD"/>
+ <enum name="GL_FRACTIONAL_EVEN"/>
+ <enum name="GL_MAX_PATCH_VERTICES"/>
+ <enum name="GL_MAX_TESS_GEN_LEVEL"/>
+ <enum name="GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS"/>
+ <enum name="GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS"/>
+ <enum name="GL_MAX_TESS_PATCH_COMPONENTS"/>
+ <enum name="GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS"/>
+ <enum name="GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_TESS_CONTROL_INPUT_COMPONENTS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS"/>
+ <enum name="GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS"/>
+ <enum name="GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER"/>
+ <enum name="GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER"/>
+ <enum name="GL_TESS_EVALUATION_SHADER"/>
+ <enum name="GL_TESS_CONTROL_SHADER"/>
+ <command name="glPatchParameteri"/>
+ <command name="glPatchParameterfv"/>
+ </require>
+ <require comment="Reuse ARB_texture_buffer_object_rgb32 (none)">
+ </require>
+ <require comment="Reuse ARB_texture_cube_map_array (none)">
+ </require>
+ <require comment="Reuse ARB_texture_gather (none)">
+ </require>
+ <require comment="Reuse ARB_texture_query_lod (none)">
+ </require>
+ <require comment="Reuse ARB_transform_feedback2">
+ <enum name="GL_TRANSFORM_FEEDBACK"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BINDING"/>
+ <command name="glBindTransformFeedback"/>
+ <command name="glDeleteTransformFeedbacks"/>
+ <command name="glGenTransformFeedbacks"/>
+ <command name="glIsTransformFeedback"/>
+ <command name="glPauseTransformFeedback"/>
+ <command name="glResumeTransformFeedback"/>
+ <command name="glDrawTransformFeedback"/>
+ </require>
+ <require comment="Reuse ARB_transform_feedback3">
+ <enum name="GL_MAX_TRANSFORM_FEEDBACK_BUFFERS"/>
+ <enum name="GL_MAX_VERTEX_STREAMS"/>
+ <command name="glDrawTransformFeedbackStream"/>
+ <command name="glBeginQueryIndexed"/>
+ <command name="glEndQueryIndexed"/>
+ <command name="glGetQueryIndexediv"/>
+ </require>
+ </feature>
+ <feature api="gl" name="GL_VERSION_4_1" number="4.1">
+ <require comment="Reuse tokens from ARB_ES2_compatibility">
+ <enum name="GL_FIXED"/>
+ <enum name="GL_IMPLEMENTATION_COLOR_READ_TYPE"/>
+ <enum name="GL_IMPLEMENTATION_COLOR_READ_FORMAT"/>
+ <enum name="GL_LOW_FLOAT"/>
+ <enum name="GL_MEDIUM_FLOAT"/>
+ <enum name="GL_HIGH_FLOAT"/>
+ <enum name="GL_LOW_INT"/>
+ <enum name="GL_MEDIUM_INT"/>
+ <enum name="GL_HIGH_INT"/>
+ <enum name="GL_SHADER_COMPILER"/>
+ <enum name="GL_SHADER_BINARY_FORMATS"/>
+ <enum name="GL_NUM_SHADER_BINARY_FORMATS"/>
+ <enum name="GL_MAX_VERTEX_UNIFORM_VECTORS"/>
+ <enum name="GL_MAX_VARYING_VECTORS"/>
+ <enum name="GL_MAX_FRAGMENT_UNIFORM_VECTORS"/>
+ <enum name="GL_RGB565"/>
+ </require>
+ <require comment="Reuse tokens from ARB_get_program_binary">
+ <enum name="GL_PROGRAM_BINARY_RETRIEVABLE_HINT"/>
+ <enum name="GL_PROGRAM_BINARY_LENGTH"/>
+ <enum name="GL_NUM_PROGRAM_BINARY_FORMATS"/>
+ <enum name="GL_PROGRAM_BINARY_FORMATS"/>
+ </require>
+ <require comment="Reuse tokens from ARB_separate_shader_objects">
+ <enum name="GL_VERTEX_SHADER_BIT"/>
+ <enum name="GL_FRAGMENT_SHADER_BIT"/>
+ <enum name="GL_GEOMETRY_SHADER_BIT"/>
+ <enum name="GL_TESS_CONTROL_SHADER_BIT"/>
+ <enum name="GL_TESS_EVALUATION_SHADER_BIT"/>
+ <enum name="GL_ALL_SHADER_BITS"/>
+ <enum name="GL_PROGRAM_SEPARABLE"/>
+ <enum name="GL_ACTIVE_PROGRAM"/>
+ <enum name="GL_PROGRAM_PIPELINE_BINDING"/>
+ </require>
+ <require comment="Reuse tokens from ARB_shader_precision (none)">
+ </require>
+ <require comment="Reuse tokens from ARB_vertex_attrib_64bit - all are in GL 3.0 and 4.0 already">
+ </require>
+ <require comment="Reuse tokens from ARB_viewport_array - some are in GL 1.1 and ARB_provoking_vertex already">
+ <enum name="GL_MAX_VIEWPORTS"/>
+ <enum name="GL_VIEWPORT_SUBPIXEL_BITS"/>
+ <enum name="GL_VIEWPORT_BOUNDS_RANGE"/>
+ <enum name="GL_LAYER_PROVOKING_VERTEX"/>
+ <enum name="GL_VIEWPORT_INDEX_PROVOKING_VERTEX"/>
+ <enum name="GL_UNDEFINED_VERTEX"/>
+ </require>
+ <require comment="Reuse commands from ARB_ES2_compatibility">
+ <command name="glReleaseShaderCompiler"/>
+ <command name="glShaderBinary"/>
+ <command name="glGetShaderPrecisionFormat"/>
+ <command name="glDepthRangef"/>
+ <command name="glClearDepthf"/>
+ </require>
+ <require comment="Reuse commands from ARB_get_program_binary">
+ <command name="glGetProgramBinary"/>
+ <command name="glProgramBinary"/>
+ <command name="glProgramParameteri"/>
+ </require>
+ <require comment="Reuse commands from ARB_separate_shader_objects">
+ <command name="glUseProgramStages"/>
+ <command name="glActiveShaderProgram"/>
+ <command name="glCreateShaderProgramv"/>
+ <command name="glBindProgramPipeline"/>
+ <command name="glDeleteProgramPipelines"/>
+ <command name="glGenProgramPipelines"/>
+ <command name="glIsProgramPipeline"/>
+ <command name="glGetProgramPipelineiv"/>
+ <command name="glProgramUniform1i"/>
+ <command name="glProgramUniform1iv"/>
+ <command name="glProgramUniform1f"/>
+ <command name="glProgramUniform1fv"/>
+ <command name="glProgramUniform1d"/>
+ <command name="glProgramUniform1dv"/>
+ <command name="glProgramUniform1ui"/>
+ <command name="glProgramUniform1uiv"/>
+ <command name="glProgramUniform2i"/>
+ <command name="glProgramUniform2iv"/>
+ <command name="glProgramUniform2f"/>
+ <command name="glProgramUniform2fv"/>
+ <command name="glProgramUniform2d"/>
+ <command name="glProgramUniform2dv"/>
+ <command name="glProgramUniform2ui"/>
+ <command name="glProgramUniform2uiv"/>
+ <command name="glProgramUniform3i"/>
+ <command name="glProgramUniform3iv"/>
+ <command name="glProgramUniform3f"/>
+ <command name="glProgramUniform3fv"/>
+ <command name="glProgramUniform3d"/>
+ <command name="glProgramUniform3dv"/>
+ <command name="glProgramUniform3ui"/>
+ <command name="glProgramUniform3uiv"/>
+ <command name="glProgramUniform4i"/>
+ <command name="glProgramUniform4iv"/>
+ <command name="glProgramUniform4f"/>
+ <command name="glProgramUniform4fv"/>
+ <command name="glProgramUniform4d"/>
+ <command name="glProgramUniform4dv"/>
+ <command name="glProgramUniform4ui"/>
+ <command name="glProgramUniform4uiv"/>
+ <command name="glProgramUniformMatrix2fv"/>
+ <command name="glProgramUniformMatrix3fv"/>
+ <command name="glProgramUniformMatrix4fv"/>
+ <command name="glProgramUniformMatrix2dv"/>
+ <command name="glProgramUniformMatrix3dv"/>
+ <command name="glProgramUniformMatrix4dv"/>
+ <command name="glProgramUniformMatrix2x3fv"/>
+ <command name="glProgramUniformMatrix3x2fv"/>
+ <command name="glProgramUniformMatrix2x4fv"/>
+ <command name="glProgramUniformMatrix4x2fv"/>
+ <command name="glProgramUniformMatrix3x4fv"/>
+ <command name="glProgramUniformMatrix4x3fv"/>
+ <command name="glProgramUniformMatrix2x3dv"/>
+ <command name="glProgramUniformMatrix3x2dv"/>
+ <command name="glProgramUniformMatrix2x4dv"/>
+ <command name="glProgramUniformMatrix4x2dv"/>
+ <command name="glProgramUniformMatrix3x4dv"/>
+ <command name="glProgramUniformMatrix4x3dv"/>
+ <command name="glValidateProgramPipeline"/>
+ <command name="glGetProgramPipelineInfoLog"/>
+ </require>
+ <require comment="Reuse commands from ARB_shader_precision (none)">
+ </require>
+ <require comment="Reuse commands from ARB_vertex_attrib_64bit">
+ <command name="glVertexAttribL1d"/>
+ <command name="glVertexAttribL2d"/>
+ <command name="glVertexAttribL3d"/>
+ <command name="glVertexAttribL4d"/>
+ <command name="glVertexAttribL1dv"/>
+ <command name="glVertexAttribL2dv"/>
+ <command name="glVertexAttribL3dv"/>
+ <command name="glVertexAttribL4dv"/>
+ <command name="glVertexAttribLPointer"/>
+ <command name="glGetVertexAttribLdv"/>
+ </require>
+ <require comment="Reuse commands from ARB_viewport_array">
+ <command name="glViewportArrayv"/>
+ <command name="glViewportIndexedf"/>
+ <command name="glViewportIndexedfv"/>
+ <command name="glScissorArrayv"/>
+ <command name="glScissorIndexed"/>
+ <command name="glScissorIndexedv"/>
+ <command name="glDepthRangeArrayv"/>
+ <command name="glDepthRangeIndexed"/>
+ <command name="glGetFloati_v"/>
+ <command name="glGetDoublei_v"/>
+ </require>
+ </feature>
+ <feature api="gl" name="GL_VERSION_4_2" number="4.2">
+ <require>
+ </require>
+ <require comment="Reuse tokens from ARB_base_instance (none)">
+ </require>
+ <require comment="Reuse tokens from ARB_shading_language_420pack (none)">
+ </require>
+ <require comment="Reuse tokens from ARB_transform_feedback_instanced (none)">
+ </require>
+ <require comment="Reuse tokens from ARB_compressed_texture_pixel_storage">
+ <enum name="GL_UNPACK_COMPRESSED_BLOCK_WIDTH"/>
+ <enum name="GL_UNPACK_COMPRESSED_BLOCK_HEIGHT"/>
+ <enum name="GL_UNPACK_COMPRESSED_BLOCK_DEPTH"/>
+ <enum name="GL_UNPACK_COMPRESSED_BLOCK_SIZE"/>
+ <enum name="GL_PACK_COMPRESSED_BLOCK_WIDTH"/>
+ <enum name="GL_PACK_COMPRESSED_BLOCK_HEIGHT"/>
+ <enum name="GL_PACK_COMPRESSED_BLOCK_DEPTH"/>
+ <enum name="GL_PACK_COMPRESSED_BLOCK_SIZE"/>
+ </require>
+ <require comment="Reuse tokens from ARB_conservative_depth (none)">
+ </require>
+ <require comment="Reuse tokens from ARB_internalformat_query">
+ <enum name="GL_NUM_SAMPLE_COUNTS"/>
+ </require>
+ <require comment="Reuse tokens from ARB_map_buffer_alignment">
+ <enum name="GL_MIN_MAP_BUFFER_ALIGNMENT"/>
+ </require>
+ <require comment="Reuse tokens from ARB_shader_atomic_counters">
+ <enum name="GL_ATOMIC_COUNTER_BUFFER"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_BINDING"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_START"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_SIZE"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER"/>
+ <enum name="GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_VERTEX_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_GEOMETRY_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_FRAGMENT_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_COMBINED_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE"/>
+ <enum name="GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS"/>
+ <enum name="GL_ACTIVE_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX"/>
+ <enum name="GL_UNSIGNED_INT_ATOMIC_COUNTER"/>
+ </require>
+ <require comment="Reuse tokens from ARB_shader_image_load_store">
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT"/>
+ <enum name="GL_ELEMENT_ARRAY_BARRIER_BIT"/>
+ <enum name="GL_UNIFORM_BARRIER_BIT"/>
+ <enum name="GL_TEXTURE_FETCH_BARRIER_BIT"/>
+ <enum name="GL_SHADER_IMAGE_ACCESS_BARRIER_BIT"/>
+ <enum name="GL_COMMAND_BARRIER_BIT"/>
+ <enum name="GL_PIXEL_BUFFER_BARRIER_BIT"/>
+ <enum name="GL_TEXTURE_UPDATE_BARRIER_BIT"/>
+ <enum name="GL_BUFFER_UPDATE_BARRIER_BIT"/>
+ <enum name="GL_FRAMEBUFFER_BARRIER_BIT"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BARRIER_BIT"/>
+ <enum name="GL_ATOMIC_COUNTER_BARRIER_BIT"/>
+ <enum name="GL_ALL_BARRIER_BITS"/>
+ <enum name="GL_MAX_IMAGE_UNITS"/>
+ <enum name="GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS"/>
+ <enum name="GL_IMAGE_BINDING_NAME"/>
+ <enum name="GL_IMAGE_BINDING_LEVEL"/>
+ <enum name="GL_IMAGE_BINDING_LAYERED"/>
+ <enum name="GL_IMAGE_BINDING_LAYER"/>
+ <enum name="GL_IMAGE_BINDING_ACCESS"/>
+ <enum name="GL_IMAGE_1D"/>
+ <enum name="GL_IMAGE_2D"/>
+ <enum name="GL_IMAGE_3D"/>
+ <enum name="GL_IMAGE_2D_RECT"/>
+ <enum name="GL_IMAGE_CUBE"/>
+ <enum name="GL_IMAGE_BUFFER"/>
+ <enum name="GL_IMAGE_1D_ARRAY"/>
+ <enum name="GL_IMAGE_2D_ARRAY"/>
+ <enum name="GL_IMAGE_CUBE_MAP_ARRAY"/>
+ <enum name="GL_IMAGE_2D_MULTISAMPLE"/>
+ <enum name="GL_IMAGE_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_INT_IMAGE_1D"/>
+ <enum name="GL_INT_IMAGE_2D"/>
+ <enum name="GL_INT_IMAGE_3D"/>
+ <enum name="GL_INT_IMAGE_2D_RECT"/>
+ <enum name="GL_INT_IMAGE_CUBE"/>
+ <enum name="GL_INT_IMAGE_BUFFER"/>
+ <enum name="GL_INT_IMAGE_1D_ARRAY"/>
+ <enum name="GL_INT_IMAGE_2D_ARRAY"/>
+ <enum name="GL_INT_IMAGE_CUBE_MAP_ARRAY"/>
+ <enum name="GL_INT_IMAGE_2D_MULTISAMPLE"/>
+ <enum name="GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_1D"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_3D"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D_RECT"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_CUBE"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_BUFFER"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_1D_ARRAY"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D_ARRAY"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_MAX_IMAGE_SAMPLES"/>
+ <enum name="GL_IMAGE_BINDING_FORMAT"/>
+ <enum name="GL_IMAGE_FORMAT_COMPATIBILITY_TYPE"/>
+ <enum name="GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE"/>
+ <enum name="GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS"/>
+ <enum name="GL_MAX_VERTEX_IMAGE_UNIFORMS"/>
+ <enum name="GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS"/>
+ <enum name="GL_MAX_GEOMETRY_IMAGE_UNIFORMS"/>
+ <enum name="GL_MAX_FRAGMENT_IMAGE_UNIFORMS"/>
+ <enum name="GL_MAX_COMBINED_IMAGE_UNIFORMS"/>
+ </require>
+ <require comment="Reuse tokens from ARB_shading_language_packing (none)">
+ </require>
+ <require comment="Reuse tokens from ARB_texture_storage">
+ <enum name="GL_TEXTURE_IMMUTABLE_FORMAT"/>
+ </require>
+ <require comment="Reuse commands from ARB_base_instance">
+ <command name="glDrawArraysInstancedBaseInstance"/>
+ <command name="glDrawElementsInstancedBaseInstance"/>
+ <command name="glDrawElementsInstancedBaseVertexBaseInstance"/>
+ </require>
+ <require comment="Reuse commands from ARB_compressed_texture_pixel_storage (none)">
+ </require>
+ <require comment="Reuse commands from ARB_conservative_depth (none)">
+ </require>
+ <require comment="Reuse commands from ARB_internalformat_query">
+ <command name="glGetInternalformati64v"/>
+ </require>
+ <require comment="Reuse commands from ARB_map_buffer_alignment (none)">
+ </require>
+ <require comment="Reuse commands from ARB_shader_atomic_counters">
+ <command name="glGetActiveAtomicCounterBufferiv"/>
+ </require>
+ <require comment="Reuse commands from ARB_shader_image_load_store">
+ <command name="glBindImageTexture"/>
+ <command name="glMemoryBarrier"/>
+ </require>
+ <require comment="Reuse commands from ARB_shading_language_420pack (none)">
+ </require>
+ <require comment="Reuse commands from ARB_shading_language_packing (none)">
+ </require>
+ <require comment="Reuse commands from ARB_texture_storage">
+ <command name="glTexStorage1D"/>
+ <command name="glTexStorage2D"/>
+ <command name="glTexStorage3D"/>
+ </require>
+ <require comment="Reuse commands from ARB_transform_feedback_instanced">
+ <command name="glDrawTransformFeedbackInstanced"/>
+ <command name="glDrawTransformFeedbackStreamInstanced"/>
+ </require>
+ <!-- Deprecated in OpenGL 4.2 core;
+ deprecate tag not defined/supported yet
+ <deprecate profile="core">
+ <enum name="GL_NUM_COMPRESSED_TEXTURE_FORMATS"/>
+ <enum name="GL_COMPRESSED_TEXTURE_FORMATS"/>
+ </deprecate>
+ -->
+ </feature>
+ <feature api="gl" name="GL_VERSION_4_3" number="4.3">
+ <require>
+ <enum name="GL_NUM_SHADING_LANGUAGE_VERSIONS"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_LONG"/>
+ </require>
+ <require comment="Reuse tokens from ARB_arrays_of_arrays (none, GLSL only)">
+ </require>
+ <require comment="Reuse tokens from ARB_fragment_layer_viewport (none, GLSL only)">
+ </require>
+ <require comment="Reuse tokens from ARB_shader_image_size (none, GLSL only)">
+ </require>
+ <require comment="Reuse tokens from ARB_ES3_compatibility">
+ <enum name="GL_COMPRESSED_RGB8_ETC2"/>
+ <enum name="GL_COMPRESSED_SRGB8_ETC2"/>
+ <enum name="GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2"/>
+ <enum name="GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2"/>
+ <enum name="GL_COMPRESSED_RGBA8_ETC2_EAC"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC"/>
+ <enum name="GL_COMPRESSED_R11_EAC"/>
+ <enum name="GL_COMPRESSED_SIGNED_R11_EAC"/>
+ <enum name="GL_COMPRESSED_RG11_EAC"/>
+ <enum name="GL_COMPRESSED_SIGNED_RG11_EAC"/>
+ <enum name="GL_PRIMITIVE_RESTART_FIXED_INDEX"/>
+ <enum name="GL_ANY_SAMPLES_PASSED_CONSERVATIVE"/>
+ <enum name="GL_MAX_ELEMENT_INDEX"/>
+ </require>
+ <require comment="Reuse tokens from ARB_clear_buffer_object (none)">
+ </require>
+ <require comment="Reuse tokens from ARB_compute_shader">
+ <enum name="GL_COMPUTE_SHADER"/>
+ <enum name="GL_MAX_COMPUTE_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS"/>
+ <enum name="GL_MAX_COMPUTE_IMAGE_UNIFORMS"/>
+ <enum name="GL_MAX_COMPUTE_SHARED_MEMORY_SIZE"/>
+ <enum name="GL_MAX_COMPUTE_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_COMPUTE_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_COMPUTE_LOCAL_INVOCATIONS"/>
+ <enum name="GL_MAX_COMPUTE_WORK_GROUP_COUNT"/>
+ <enum name="GL_MAX_COMPUTE_WORK_GROUP_SIZE"/>
+ <enum name="GL_COMPUTE_LOCAL_WORK_SIZE"/>
+ <enum name="GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER"/>
+ <enum name="GL_DISPATCH_INDIRECT_BUFFER"/>
+ <enum name="GL_DISPATCH_INDIRECT_BUFFER_BINDING"/>
+ </require>
+ <require comment="Reuse tokens from ARB_copy_image (none)">
+ </require>
+ <require comment="Reuse tokens from KHR_debug">
+ <enum name="GL_DEBUG_OUTPUT_SYNCHRONOUS"/>
+ <enum name="GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH"/>
+ <enum name="GL_DEBUG_CALLBACK_FUNCTION"/>
+ <enum name="GL_DEBUG_CALLBACK_USER_PARAM"/>
+ <enum name="GL_DEBUG_SOURCE_API"/>
+ <enum name="GL_DEBUG_SOURCE_WINDOW_SYSTEM"/>
+ <enum name="GL_DEBUG_SOURCE_SHADER_COMPILER"/>
+ <enum name="GL_DEBUG_SOURCE_THIRD_PARTY"/>
+ <enum name="GL_DEBUG_SOURCE_APPLICATION"/>
+ <enum name="GL_DEBUG_SOURCE_OTHER"/>
+ <enum name="GL_DEBUG_TYPE_ERROR"/>
+ <enum name="GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR"/>
+ <enum name="GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR"/>
+ <enum name="GL_DEBUG_TYPE_PORTABILITY"/>
+ <enum name="GL_DEBUG_TYPE_PERFORMANCE"/>
+ <enum name="GL_DEBUG_TYPE_OTHER"/>
+ <enum name="GL_MAX_DEBUG_MESSAGE_LENGTH"/>
+ <enum name="GL_MAX_DEBUG_LOGGED_MESSAGES"/>
+ <enum name="GL_DEBUG_LOGGED_MESSAGES"/>
+ <enum name="GL_DEBUG_SEVERITY_HIGH"/>
+ <enum name="GL_DEBUG_SEVERITY_MEDIUM"/>
+ <enum name="GL_DEBUG_SEVERITY_LOW"/>
+ <enum name="GL_DEBUG_TYPE_MARKER"/>
+ <enum name="GL_DEBUG_TYPE_PUSH_GROUP"/>
+ <enum name="GL_DEBUG_TYPE_POP_GROUP"/>
+ <enum name="GL_DEBUG_SEVERITY_NOTIFICATION"/>
+ <enum name="GL_MAX_DEBUG_GROUP_STACK_DEPTH"/>
+ <enum name="GL_DEBUG_GROUP_STACK_DEPTH"/>
+ <enum name="GL_BUFFER"/>
+ <enum name="GL_SHADER"/>
+ <enum name="GL_PROGRAM"/>
+ <enum name="GL_QUERY"/>
+ <enum name="GL_PROGRAM_PIPELINE"/>
+ <enum name="GL_SAMPLER"/>
+ <enum name="GL_MAX_LABEL_LENGTH"/>
+ <enum name="GL_DEBUG_OUTPUT"/>
+ <enum name="GL_CONTEXT_FLAG_DEBUG_BIT"/>
+ </require>
+ <require comment="Reuse tokens from ARB_explicit_uniform_location">
+ <enum name="GL_MAX_UNIFORM_LOCATIONS"/>
+ </require>
+ <require comment="Reuse tokens from ARB_framebuffer_no_attachments">
+ <enum name="GL_FRAMEBUFFER_DEFAULT_WIDTH"/>
+ <enum name="GL_FRAMEBUFFER_DEFAULT_HEIGHT"/>
+ <enum name="GL_FRAMEBUFFER_DEFAULT_LAYERS"/>
+ <enum name="GL_FRAMEBUFFER_DEFAULT_SAMPLES"/>
+ <enum name="GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS"/>
+ <enum name="GL_MAX_FRAMEBUFFER_WIDTH"/>
+ <enum name="GL_MAX_FRAMEBUFFER_HEIGHT"/>
+ <enum name="GL_MAX_FRAMEBUFFER_LAYERS"/>
+ <enum name="GL_MAX_FRAMEBUFFER_SAMPLES"/>
+ </require>
+ <require comment="Reuse tokens from ARB_internalformat_query2">
+ <enum name="GL_INTERNALFORMAT_SUPPORTED"/>
+ <enum name="GL_INTERNALFORMAT_PREFERRED"/>
+ <enum name="GL_INTERNALFORMAT_RED_SIZE"/>
+ <enum name="GL_INTERNALFORMAT_GREEN_SIZE"/>
+ <enum name="GL_INTERNALFORMAT_BLUE_SIZE"/>
+ <enum name="GL_INTERNALFORMAT_ALPHA_SIZE"/>
+ <enum name="GL_INTERNALFORMAT_DEPTH_SIZE"/>
+ <enum name="GL_INTERNALFORMAT_STENCIL_SIZE"/>
+ <enum name="GL_INTERNALFORMAT_SHARED_SIZE"/>
+ <enum name="GL_INTERNALFORMAT_RED_TYPE"/>
+ <enum name="GL_INTERNALFORMAT_GREEN_TYPE"/>
+ <enum name="GL_INTERNALFORMAT_BLUE_TYPE"/>
+ <enum name="GL_INTERNALFORMAT_ALPHA_TYPE"/>
+ <enum name="GL_INTERNALFORMAT_DEPTH_TYPE"/>
+ <enum name="GL_INTERNALFORMAT_STENCIL_TYPE"/>
+ <enum name="GL_MAX_WIDTH"/>
+ <enum name="GL_MAX_HEIGHT"/>
+ <enum name="GL_MAX_DEPTH"/>
+ <enum name="GL_MAX_LAYERS"/>
+ <enum name="GL_MAX_COMBINED_DIMENSIONS"/>
+ <enum name="GL_COLOR_COMPONENTS"/>
+ <enum name="GL_DEPTH_COMPONENTS"/>
+ <enum name="GL_STENCIL_COMPONENTS"/>
+ <enum name="GL_COLOR_RENDERABLE"/>
+ <enum name="GL_DEPTH_RENDERABLE"/>
+ <enum name="GL_STENCIL_RENDERABLE"/>
+ <enum name="GL_FRAMEBUFFER_RENDERABLE"/>
+ <enum name="GL_FRAMEBUFFER_RENDERABLE_LAYERED"/>
+ <enum name="GL_FRAMEBUFFER_BLEND"/>
+ <enum name="GL_READ_PIXELS"/>
+ <enum name="GL_READ_PIXELS_FORMAT"/>
+ <enum name="GL_READ_PIXELS_TYPE"/>
+ <enum name="GL_TEXTURE_IMAGE_FORMAT"/>
+ <enum name="GL_TEXTURE_IMAGE_TYPE"/>
+ <enum name="GL_GET_TEXTURE_IMAGE_FORMAT"/>
+ <enum name="GL_GET_TEXTURE_IMAGE_TYPE"/>
+ <enum name="GL_MIPMAP"/>
+ <enum name="GL_MANUAL_GENERATE_MIPMAP"/>
+ <enum name="GL_AUTO_GENERATE_MIPMAP"/>
+ <enum name="GL_COLOR_ENCODING"/>
+ <enum name="GL_SRGB_READ"/>
+ <enum name="GL_SRGB_WRITE"/>
+ <enum name="GL_FILTER"/>
+ <enum name="GL_VERTEX_TEXTURE"/>
+ <enum name="GL_TESS_CONTROL_TEXTURE"/>
+ <enum name="GL_TESS_EVALUATION_TEXTURE"/>
+ <enum name="GL_GEOMETRY_TEXTURE"/>
+ <enum name="GL_FRAGMENT_TEXTURE"/>
+ <enum name="GL_COMPUTE_TEXTURE"/>
+ <enum name="GL_TEXTURE_SHADOW"/>
+ <enum name="GL_TEXTURE_GATHER"/>
+ <enum name="GL_TEXTURE_GATHER_SHADOW"/>
+ <enum name="GL_SHADER_IMAGE_LOAD"/>
+ <enum name="GL_SHADER_IMAGE_STORE"/>
+ <enum name="GL_SHADER_IMAGE_ATOMIC"/>
+ <enum name="GL_IMAGE_TEXEL_SIZE"/>
+ <enum name="GL_IMAGE_COMPATIBILITY_CLASS"/>
+ <enum name="GL_IMAGE_PIXEL_FORMAT"/>
+ <enum name="GL_IMAGE_PIXEL_TYPE"/>
+ <enum name="GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST"/>
+ <enum name="GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST"/>
+ <enum name="GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE"/>
+ <enum name="GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE"/>
+ <enum name="GL_TEXTURE_COMPRESSED_BLOCK_WIDTH"/>
+ <enum name="GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT"/>
+ <enum name="GL_TEXTURE_COMPRESSED_BLOCK_SIZE"/>
+ <enum name="GL_CLEAR_BUFFER"/>
+ <enum name="GL_TEXTURE_VIEW"/>
+ <enum name="GL_VIEW_COMPATIBILITY_CLASS"/>
+ <enum name="GL_FULL_SUPPORT"/>
+ <enum name="GL_CAVEAT_SUPPORT"/>
+ <enum name="GL_IMAGE_CLASS_4_X_32"/>
+ <enum name="GL_IMAGE_CLASS_2_X_32"/>
+ <enum name="GL_IMAGE_CLASS_1_X_32"/>
+ <enum name="GL_IMAGE_CLASS_4_X_16"/>
+ <enum name="GL_IMAGE_CLASS_2_X_16"/>
+ <enum name="GL_IMAGE_CLASS_1_X_16"/>
+ <enum name="GL_IMAGE_CLASS_4_X_8"/>
+ <enum name="GL_IMAGE_CLASS_2_X_8"/>
+ <enum name="GL_IMAGE_CLASS_1_X_8"/>
+ <enum name="GL_IMAGE_CLASS_11_11_10"/>
+ <enum name="GL_IMAGE_CLASS_10_10_10_2"/>
+ <enum name="GL_VIEW_CLASS_128_BITS"/>
+ <enum name="GL_VIEW_CLASS_96_BITS"/>
+ <enum name="GL_VIEW_CLASS_64_BITS"/>
+ <enum name="GL_VIEW_CLASS_48_BITS"/>
+ <enum name="GL_VIEW_CLASS_32_BITS"/>
+ <enum name="GL_VIEW_CLASS_24_BITS"/>
+ <enum name="GL_VIEW_CLASS_16_BITS"/>
+ <enum name="GL_VIEW_CLASS_8_BITS"/>
+ <enum name="GL_VIEW_CLASS_S3TC_DXT1_RGB"/>
+ <enum name="GL_VIEW_CLASS_S3TC_DXT1_RGBA"/>
+ <enum name="GL_VIEW_CLASS_S3TC_DXT3_RGBA"/>
+ <enum name="GL_VIEW_CLASS_S3TC_DXT5_RGBA"/>
+ <enum name="GL_VIEW_CLASS_RGTC1_RED"/>
+ <enum name="GL_VIEW_CLASS_RGTC2_RG"/>
+ <enum name="GL_VIEW_CLASS_BPTC_UNORM"/>
+ <enum name="GL_VIEW_CLASS_BPTC_FLOAT"/>
+ </require>
+ <require comment="Reuse tokens from ARB_invalidate_subdata (none)">
+ </require>
+ <require comment="Reuse tokens from ARB_multi_draw_indirect (none)">
+ </require>
+ <require comment="Reuse tokens from ARB_program_interface_query">
+ <enum name="GL_UNIFORM"/>
+ <enum name="GL_UNIFORM_BLOCK"/>
+ <enum name="GL_PROGRAM_INPUT"/>
+ <enum name="GL_PROGRAM_OUTPUT"/>
+ <enum name="GL_BUFFER_VARIABLE"/>
+ <enum name="GL_SHADER_STORAGE_BLOCK"/>
+ <enum name="GL_VERTEX_SUBROUTINE"/>
+ <enum name="GL_TESS_CONTROL_SUBROUTINE"/>
+ <enum name="GL_TESS_EVALUATION_SUBROUTINE"/>
+ <enum name="GL_GEOMETRY_SUBROUTINE"/>
+ <enum name="GL_FRAGMENT_SUBROUTINE"/>
+ <enum name="GL_COMPUTE_SUBROUTINE"/>
+ <enum name="GL_VERTEX_SUBROUTINE_UNIFORM"/>
+ <enum name="GL_TESS_CONTROL_SUBROUTINE_UNIFORM"/>
+ <enum name="GL_TESS_EVALUATION_SUBROUTINE_UNIFORM"/>
+ <enum name="GL_GEOMETRY_SUBROUTINE_UNIFORM"/>
+ <enum name="GL_FRAGMENT_SUBROUTINE_UNIFORM"/>
+ <enum name="GL_COMPUTE_SUBROUTINE_UNIFORM"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_VARYING"/>
+ <enum name="GL_ACTIVE_RESOURCES"/>
+ <enum name="GL_MAX_NAME_LENGTH"/>
+ <enum name="GL_MAX_NUM_ACTIVE_VARIABLES"/>
+ <enum name="GL_MAX_NUM_COMPATIBLE_SUBROUTINES"/>
+ <enum name="GL_NAME_LENGTH"/>
+ <enum name="GL_TYPE"/>
+ <enum name="GL_ARRAY_SIZE"/>
+ <enum name="GL_OFFSET"/>
+ <enum name="GL_BLOCK_INDEX"/>
+ <enum name="GL_ARRAY_STRIDE"/>
+ <enum name="GL_MATRIX_STRIDE"/>
+ <enum name="GL_IS_ROW_MAJOR"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_INDEX"/>
+ <enum name="GL_BUFFER_BINDING"/>
+ <enum name="GL_BUFFER_DATA_SIZE"/>
+ <enum name="GL_NUM_ACTIVE_VARIABLES"/>
+ <enum name="GL_ACTIVE_VARIABLES"/>
+ <enum name="GL_REFERENCED_BY_VERTEX_SHADER"/>
+ <enum name="GL_REFERENCED_BY_TESS_CONTROL_SHADER"/>
+ <enum name="GL_REFERENCED_BY_TESS_EVALUATION_SHADER"/>
+ <enum name="GL_REFERENCED_BY_GEOMETRY_SHADER"/>
+ <enum name="GL_REFERENCED_BY_FRAGMENT_SHADER"/>
+ <enum name="GL_REFERENCED_BY_COMPUTE_SHADER"/>
+ <enum name="GL_TOP_LEVEL_ARRAY_SIZE"/>
+ <enum name="GL_TOP_LEVEL_ARRAY_STRIDE"/>
+ <enum name="GL_LOCATION"/>
+ <enum name="GL_LOCATION_INDEX"/>
+ <enum name="GL_IS_PER_PATCH"/>
+ </require>
+ <require comment="Reuse tokens from ARB_robust_buffer_access_behavior (none)">
+ </require>
+ <require comment="Reuse tokens from ARB_shader_storage_buffer_object">
+ <enum name="GL_SHADER_STORAGE_BUFFER"/>
+ <enum name="GL_SHADER_STORAGE_BUFFER_BINDING"/>
+ <enum name="GL_SHADER_STORAGE_BUFFER_START"/>
+ <enum name="GL_SHADER_STORAGE_BUFFER_SIZE"/>
+ <enum name="GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS"/>
+ <enum name="GL_MAX_SHADER_STORAGE_BLOCK_SIZE"/>
+ <enum name="GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT"/>
+ <enum name="GL_SHADER_STORAGE_BARRIER_BIT"/>
+ <enum name="GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES"/>
+ </require>
+ <require comment="Reuse tokens from ARB_stencil_texturing">
+ <enum name="GL_DEPTH_STENCIL_TEXTURE_MODE"/>
+ </require>
+ <require comment="Reuse tokens from ARB_texture_buffer_range">
+ <enum name="GL_TEXTURE_BUFFER_OFFSET"/>
+ <enum name="GL_TEXTURE_BUFFER_SIZE"/>
+ <enum name="GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT"/>
+ </require>
+ <require comment="Reuse tokens from ARB_texture_query_levels (none)">
+ </require>
+ <require comment="Reuse tokens from ARB_texture_storage_multisample (none)">
+ </require>
+ <require comment="Reuse tokens from ARB_texture_view">
+ <enum name="GL_TEXTURE_VIEW_MIN_LEVEL"/>
+ <enum name="GL_TEXTURE_VIEW_NUM_LEVELS"/>
+ <enum name="GL_TEXTURE_VIEW_MIN_LAYER"/>
+ <enum name="GL_TEXTURE_VIEW_NUM_LAYERS"/>
+ <enum name="GL_TEXTURE_IMMUTABLE_LEVELS"/>
+ </require>
+ <require comment="Reuse tokens from ARB_vertex_attrib_binding">
+ <enum name="GL_VERTEX_ATTRIB_BINDING"/>
+ <enum name="GL_VERTEX_ATTRIB_RELATIVE_OFFSET"/>
+ <enum name="GL_VERTEX_BINDING_DIVISOR"/>
+ <enum name="GL_VERTEX_BINDING_OFFSET"/>
+ <enum name="GL_VERTEX_BINDING_STRIDE"/>
+ <enum name="GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET"/>
+ <enum name="GL_MAX_VERTEX_ATTRIB_BINDINGS"/>
+ </require>
+ <require comment="Reuse commands from ARB_arrays_of_arrays (none, GLSL only)">
+ </require>
+ <require comment="Reuse commands from ARB_clear_buffer_object">
+ <command name="glClearBufferData"/>
+ <command name="glClearBufferSubData"/>
+ </require>
+ <require comment="Reuse commands from ARB_compute_shader">
+ <command name="glDispatchCompute"/>
+ <command name="glDispatchComputeIndirect"/>
+ </require>
+ <require comment="Reuse commands from ARB_copy_image">
+ <command name="glCopyImageSubData"/>
+ </require>
+ <require comment="Reuse commands from ARB_ES3_compatibility (none)">
+ </require>
+ <require comment="Reuse commands from ARB_explicit_uniform_location (none)">
+ </require>
+ <require comment="Reuse commands from ARB_fragment_layer_viewport (none, GLSL only)">
+ </require>
+ <require comment="Reuse commands from ARB_framebuffer_no_attachments">
+ <command name="glFramebufferParameteri"/>
+ <command name="glGetFramebufferParameteriv"/>
+ </require>
+ <require comment="Reuse commands from ARB_internalformat_query2">
+ <command name="glGetInternalformati64v"/>
+ </require>
+ <require comment="Reuse commands from ARB_invalidate_subdata">
+ <command name="glInvalidateTexSubImage"/>
+ <command name="glInvalidateTexImage"/>
+ <command name="glInvalidateBufferSubData"/>
+ <command name="glInvalidateBufferData"/>
+ <command name="glInvalidateFramebuffer"/>
+ <command name="glInvalidateSubFramebuffer"/>
+ </require>
+ <require comment="Reuse commands from ARB_multi_draw_indirect">
+ <command name="glMultiDrawArraysIndirect"/>
+ <command name="glMultiDrawElementsIndirect"/>
+ </require>
+ <require comment="Reuse commands from ARB_program_interface_query">
+ <command name="glGetProgramInterfaceiv"/>
+ <command name="glGetProgramResourceIndex"/>
+ <command name="glGetProgramResourceName"/>
+ <command name="glGetProgramResourceiv"/>
+ <command name="glGetProgramResourceLocation"/>
+ <command name="glGetProgramResourceLocationIndex"/>
+ </require>
+ <require comment="Reuse commands from ARB_robust_buffer_access_behavior (none)">
+ </require>
+ <require comment="Reuse commands from ARB_shader_image_size (none, GLSL only)">
+ </require>
+ <require comment="Reuse commands from ARB_shader_storage_buffer_object">
+ <command name="glShaderStorageBlockBinding"/>
+ </require>
+ <require comment="Reuse commands from ARB_stencil_texturing (none)">
+ </require>
+ <require comment="Reuse commands from ARB_texture_buffer_range">
+ <command name="glTexBufferRange"/>
+ </require>
+ <require comment="Reuse commands from ARB_texture_query_levels (none)">
+ </require>
+ <require comment="Reuse commands from ARB_texture_storage_multisample">
+ <command name="glTexStorage2DMultisample"/>
+ <command name="glTexStorage3DMultisample"/>
+ </require>
+ <require comment="Reuse commands from ARB_texture_view">
+ <command name="glTextureView"/>
+ </require>
+ <require comment="Reuse commands from ARB_vertex_attrib_binding">
+ <command name="glBindVertexBuffer"/>
+ <command name="glVertexAttribFormat"/>
+ <command name="glVertexAttribIFormat"/>
+ <command name="glVertexAttribLFormat"/>
+ <command name="glVertexAttribBinding"/>
+ <command name="glVertexBindingDivisor"/>
+ </require>
+ <require comment="Reuse commands from KHR_debug (includes ARB_debug_output commands promoted to KHR without suffixes)">
+ <command name="glDebugMessageControl"/>
+ <command name="glDebugMessageInsert"/>
+ <command name="glDebugMessageCallback"/>
+ <command name="glGetDebugMessageLog"/>
+ <command name="glPushDebugGroup"/>
+ <command name="glPopDebugGroup"/>
+ <command name="glObjectLabel"/>
+ <command name="glGetObjectLabel"/>
+ <command name="glObjectPtrLabel"/>
+ <command name="glGetObjectPtrLabel"/>
+ <command name="glGetPointerv"/>
+ </require>
+ <require profile="compatibility" comment="KHR_debug functionality not supported in core profile">
+ <enum name="GL_DISPLAY_LIST"/>
+ </require>
+ <require profile="core" comment="Restore functionality removed in GL 3.2 core to GL 4.3. Needed for debug interface.">
+ <enum name="GL_STACK_UNDERFLOW"/>
+ <enum name="GL_STACK_OVERFLOW"/>
+ <command name="glGetPointerv"/>
+ </require>
+ <!-- Deprecated in OpenGL 4.3 core;
+ deprecate tag not defined/supported yet
+ <deprecate profile="core">
+ <enum name="GL_UNPACK_LSB_FIRST"/>
+ <enum name="GL_PACK_LSB_FIRST"/>
+ </deprecate>
+ -->
+ </feature>
+
+ <!-- SECTION: OpenGL ES 1.0/1.1 API interface definitions. -->
+ <feature api="gles1" name="GL_VERSION_ES_CM_1_0" number="1.0">
+ <require>
+ <!-- Additional API definition macros - ES 1.0/1.1, common/common-lite all in one header -->
+ <enum name="GL_VERSION_ES_CL_1_0"/>
+ <enum name="GL_VERSION_ES_CM_1_1"/>
+ <enum name="GL_VERSION_ES_CL_1_1"/>
+ <enum name="GL_DEPTH_BUFFER_BIT"/>
+ <enum name="GL_STENCIL_BUFFER_BIT"/>
+ <enum name="GL_COLOR_BUFFER_BIT"/>
+ <enum name="GL_FALSE"/>
+ <enum name="GL_TRUE"/>
+ <enum name="GL_POINTS"/>
+ <enum name="GL_LINES"/>
+ <enum name="GL_LINE_LOOP"/>
+ <enum name="GL_LINE_STRIP"/>
+ <enum name="GL_TRIANGLES"/>
+ <enum name="GL_TRIANGLE_STRIP"/>
+ <enum name="GL_TRIANGLE_FAN"/>
+ <enum name="GL_NEVER"/>
+ <enum name="GL_LESS"/>
+ <enum name="GL_EQUAL"/>
+ <enum name="GL_LEQUAL"/>
+ <enum name="GL_GREATER"/>
+ <enum name="GL_NOTEQUAL"/>
+ <enum name="GL_GEQUAL"/>
+ <enum name="GL_ALWAYS"/>
+ <enum name="GL_ZERO"/>
+ <enum name="GL_ONE"/>
+ <enum name="GL_SRC_COLOR"/>
+ <enum name="GL_ONE_MINUS_SRC_COLOR"/>
+ <enum name="GL_SRC_ALPHA"/>
+ <enum name="GL_ONE_MINUS_SRC_ALPHA"/>
+ <enum name="GL_DST_ALPHA"/>
+ <enum name="GL_ONE_MINUS_DST_ALPHA"/>
+ <enum name="GL_DST_COLOR"/>
+ <enum name="GL_ONE_MINUS_DST_COLOR"/>
+ <enum name="GL_SRC_ALPHA_SATURATE"/>
+ <enum name="GL_CLIP_PLANE0"/>
+ <enum name="GL_CLIP_PLANE1"/>
+ <enum name="GL_CLIP_PLANE2"/>
+ <enum name="GL_CLIP_PLANE3"/>
+ <enum name="GL_CLIP_PLANE4"/>
+ <enum name="GL_CLIP_PLANE5"/>
+ <enum name="GL_FRONT"/>
+ <enum name="GL_BACK"/>
+ <enum name="GL_FRONT_AND_BACK"/>
+ <enum name="GL_FOG"/>
+ <enum name="GL_LIGHTING"/>
+ <enum name="GL_TEXTURE_2D"/>
+ <enum name="GL_CULL_FACE"/>
+ <enum name="GL_ALPHA_TEST"/>
+ <enum name="GL_BLEND"/>
+ <enum name="GL_COLOR_LOGIC_OP"/>
+ <enum name="GL_DITHER"/>
+ <enum name="GL_STENCIL_TEST"/>
+ <enum name="GL_DEPTH_TEST"/>
+ <enum name="GL_POINT_SMOOTH"/>
+ <enum name="GL_LINE_SMOOTH"/>
+ <enum name="GL_SCISSOR_TEST"/>
+ <enum name="GL_COLOR_MATERIAL"/>
+ <enum name="GL_NORMALIZE"/>
+ <enum name="GL_RESCALE_NORMAL"/>
+ <enum name="GL_VERTEX_ARRAY"/>
+ <enum name="GL_NORMAL_ARRAY"/>
+ <enum name="GL_COLOR_ARRAY"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY"/>
+ <enum name="GL_MULTISAMPLE"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_COVERAGE"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_ONE"/>
+ <enum name="GL_SAMPLE_COVERAGE"/>
+ <enum name="GL_NO_ERROR"/>
+ <enum name="GL_INVALID_ENUM"/>
+ <enum name="GL_INVALID_VALUE"/>
+ <enum name="GL_INVALID_OPERATION"/>
+ <enum name="GL_STACK_OVERFLOW"/>
+ <enum name="GL_STACK_UNDERFLOW"/>
+ <enum name="GL_OUT_OF_MEMORY"/>
+ <enum name="GL_EXP"/>
+ <enum name="GL_EXP2"/>
+ <enum name="GL_FOG_DENSITY"/>
+ <enum name="GL_FOG_START"/>
+ <enum name="GL_FOG_END"/>
+ <enum name="GL_FOG_MODE"/>
+ <enum name="GL_FOG_COLOR"/>
+ <enum name="GL_CW"/>
+ <enum name="GL_CCW"/>
+ <enum name="GL_CURRENT_COLOR"/>
+ <enum name="GL_CURRENT_NORMAL"/>
+ <enum name="GL_CURRENT_TEXTURE_COORDS"/>
+ <enum name="GL_POINT_SIZE"/>
+ <enum name="GL_POINT_SIZE_MIN"/>
+ <enum name="GL_POINT_SIZE_MAX"/>
+ <enum name="GL_POINT_FADE_THRESHOLD_SIZE"/>
+ <enum name="GL_POINT_DISTANCE_ATTENUATION"/>
+ <enum name="GL_SMOOTH_POINT_SIZE_RANGE"/>
+ <enum name="GL_LINE_WIDTH"/>
+ <enum name="GL_SMOOTH_LINE_WIDTH_RANGE"/>
+ <enum name="GL_ALIASED_POINT_SIZE_RANGE"/>
+ <enum name="GL_ALIASED_LINE_WIDTH_RANGE"/>
+ <enum name="GL_CULL_FACE_MODE"/>
+ <enum name="GL_FRONT_FACE"/>
+ <enum name="GL_SHADE_MODEL"/>
+ <enum name="GL_DEPTH_RANGE"/>
+ <enum name="GL_DEPTH_WRITEMASK"/>
+ <enum name="GL_DEPTH_CLEAR_VALUE"/>
+ <enum name="GL_DEPTH_FUNC"/>
+ <enum name="GL_STENCIL_CLEAR_VALUE"/>
+ <enum name="GL_STENCIL_FUNC"/>
+ <enum name="GL_STENCIL_VALUE_MASK"/>
+ <enum name="GL_STENCIL_FAIL"/>
+ <enum name="GL_STENCIL_PASS_DEPTH_FAIL"/>
+ <enum name="GL_STENCIL_PASS_DEPTH_PASS"/>
+ <enum name="GL_STENCIL_REF"/>
+ <enum name="GL_STENCIL_WRITEMASK"/>
+ <enum name="GL_MATRIX_MODE"/>
+ <enum name="GL_VIEWPORT"/>
+ <enum name="GL_MODELVIEW_STACK_DEPTH"/>
+ <enum name="GL_PROJECTION_STACK_DEPTH"/>
+ <enum name="GL_TEXTURE_STACK_DEPTH"/>
+ <enum name="GL_MODELVIEW_MATRIX"/>
+ <enum name="GL_PROJECTION_MATRIX"/>
+ <enum name="GL_TEXTURE_MATRIX"/>
+ <enum name="GL_ALPHA_TEST_FUNC"/>
+ <enum name="GL_ALPHA_TEST_REF"/>
+ <enum name="GL_BLEND_DST"/>
+ <enum name="GL_BLEND_SRC"/>
+ <enum name="GL_LOGIC_OP_MODE"/>
+ <enum name="GL_SCISSOR_BOX"/>
+ <enum name="GL_COLOR_CLEAR_VALUE"/>
+ <enum name="GL_COLOR_WRITEMASK"/>
+ <enum name="GL_MAX_LIGHTS"/>
+ <enum name="GL_MAX_CLIP_PLANES"/>
+ <enum name="GL_MAX_TEXTURE_SIZE"/>
+ <enum name="GL_MAX_MODELVIEW_STACK_DEPTH"/>
+ <enum name="GL_MAX_PROJECTION_STACK_DEPTH"/>
+ <enum name="GL_MAX_TEXTURE_STACK_DEPTH"/>
+ <enum name="GL_MAX_VIEWPORT_DIMS"/>
+ <enum name="GL_MAX_TEXTURE_UNITS"/>
+ <enum name="GL_SUBPIXEL_BITS"/>
+ <enum name="GL_RED_BITS"/>
+ <enum name="GL_GREEN_BITS"/>
+ <enum name="GL_BLUE_BITS"/>
+ <enum name="GL_ALPHA_BITS"/>
+ <enum name="GL_DEPTH_BITS"/>
+ <enum name="GL_STENCIL_BITS"/>
+ <enum name="GL_POLYGON_OFFSET_UNITS"/>
+ <enum name="GL_POLYGON_OFFSET_FILL"/>
+ <enum name="GL_POLYGON_OFFSET_FACTOR"/>
+ <enum name="GL_TEXTURE_BINDING_2D"/>
+ <enum name="GL_VERTEX_ARRAY_SIZE"/>
+ <enum name="GL_VERTEX_ARRAY_TYPE"/>
+ <enum name="GL_VERTEX_ARRAY_STRIDE"/>
+ <enum name="GL_NORMAL_ARRAY_TYPE"/>
+ <enum name="GL_NORMAL_ARRAY_STRIDE"/>
+ <enum name="GL_COLOR_ARRAY_SIZE"/>
+ <enum name="GL_COLOR_ARRAY_TYPE"/>
+ <enum name="GL_COLOR_ARRAY_STRIDE"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_SIZE"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_TYPE"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_STRIDE"/>
+ <enum name="GL_VERTEX_ARRAY_POINTER"/>
+ <enum name="GL_NORMAL_ARRAY_POINTER"/>
+ <enum name="GL_COLOR_ARRAY_POINTER"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_POINTER"/>
+ <enum name="GL_SAMPLE_BUFFERS"/>
+ <enum name="GL_SAMPLES"/>
+ <enum name="GL_SAMPLE_COVERAGE_VALUE"/>
+ <enum name="GL_SAMPLE_COVERAGE_INVERT"/>
+ <enum name="GL_NUM_COMPRESSED_TEXTURE_FORMATS"/>
+ <enum name="GL_COMPRESSED_TEXTURE_FORMATS"/>
+ <enum name="GL_DONT_CARE"/>
+ <enum name="GL_FASTEST"/>
+ <enum name="GL_NICEST"/>
+ <enum name="GL_PERSPECTIVE_CORRECTION_HINT"/>
+ <enum name="GL_POINT_SMOOTH_HINT"/>
+ <enum name="GL_LINE_SMOOTH_HINT"/>
+ <enum name="GL_FOG_HINT"/>
+ <enum name="GL_GENERATE_MIPMAP_HINT"/>
+ <enum name="GL_LIGHT_MODEL_AMBIENT"/>
+ <enum name="GL_LIGHT_MODEL_TWO_SIDE"/>
+ <enum name="GL_AMBIENT"/>
+ <enum name="GL_DIFFUSE"/>
+ <enum name="GL_SPECULAR"/>
+ <enum name="GL_POSITION"/>
+ <enum name="GL_SPOT_DIRECTION"/>
+ <enum name="GL_SPOT_EXPONENT"/>
+ <enum name="GL_SPOT_CUTOFF"/>
+ <enum name="GL_CONSTANT_ATTENUATION"/>
+ <enum name="GL_LINEAR_ATTENUATION"/>
+ <enum name="GL_QUADRATIC_ATTENUATION"/>
+ <enum name="GL_BYTE"/>
+ <enum name="GL_UNSIGNED_BYTE"/>
+ <enum name="GL_SHORT"/>
+ <enum name="GL_UNSIGNED_SHORT"/>
+ <enum name="GL_FLOAT"/>
+ <enum name="GL_FIXED"/>
+ <enum name="GL_CLEAR"/>
+ <enum name="GL_AND"/>
+ <enum name="GL_AND_REVERSE"/>
+ <enum name="GL_COPY"/>
+ <enum name="GL_AND_INVERTED"/>
+ <enum name="GL_NOOP"/>
+ <enum name="GL_XOR"/>
+ <enum name="GL_OR"/>
+ <enum name="GL_NOR"/>
+ <enum name="GL_EQUIV"/>
+ <enum name="GL_INVERT"/>
+ <enum name="GL_OR_REVERSE"/>
+ <enum name="GL_COPY_INVERTED"/>
+ <enum name="GL_OR_INVERTED"/>
+ <enum name="GL_NAND"/>
+ <enum name="GL_SET"/>
+ <enum name="GL_EMISSION"/>
+ <enum name="GL_SHININESS"/>
+ <enum name="GL_AMBIENT_AND_DIFFUSE"/>
+ <enum name="GL_MODELVIEW"/>
+ <enum name="GL_PROJECTION"/>
+ <enum name="GL_TEXTURE"/>
+ <enum name="GL_ALPHA"/>
+ <enum name="GL_RGB"/>
+ <enum name="GL_RGBA"/>
+ <enum name="GL_LUMINANCE"/>
+ <enum name="GL_LUMINANCE_ALPHA"/>
+ <enum name="GL_UNPACK_ALIGNMENT"/>
+ <enum name="GL_PACK_ALIGNMENT"/>
+ <enum name="GL_UNSIGNED_SHORT_4_4_4_4"/>
+ <enum name="GL_UNSIGNED_SHORT_5_5_5_1"/>
+ <enum name="GL_UNSIGNED_SHORT_5_6_5"/>
+ <enum name="GL_FLAT"/>
+ <enum name="GL_SMOOTH"/>
+ <enum name="GL_KEEP"/>
+ <enum name="GL_REPLACE"/>
+ <enum name="GL_INCR"/>
+ <enum name="GL_DECR"/>
+ <enum name="GL_VENDOR"/>
+ <enum name="GL_RENDERER"/>
+ <enum name="GL_VERSION"/>
+ <enum name="GL_EXTENSIONS"/>
+ <enum name="GL_MODULATE"/>
+ <enum name="GL_DECAL"/>
+ <enum name="GL_ADD"/>
+ <enum name="GL_TEXTURE_ENV_MODE"/>
+ <enum name="GL_TEXTURE_ENV_COLOR"/>
+ <enum name="GL_TEXTURE_ENV"/>
+ <enum name="GL_NEAREST"/>
+ <enum name="GL_LINEAR"/>
+ <enum name="GL_NEAREST_MIPMAP_NEAREST"/>
+ <enum name="GL_LINEAR_MIPMAP_NEAREST"/>
+ <enum name="GL_NEAREST_MIPMAP_LINEAR"/>
+ <enum name="GL_LINEAR_MIPMAP_LINEAR"/>
+ <enum name="GL_TEXTURE_MAG_FILTER"/>
+ <enum name="GL_TEXTURE_MIN_FILTER"/>
+ <enum name="GL_TEXTURE_WRAP_S"/>
+ <enum name="GL_TEXTURE_WRAP_T"/>
+ <enum name="GL_GENERATE_MIPMAP"/>
+ <enum name="GL_TEXTURE0"/>
+ <enum name="GL_TEXTURE1"/>
+ <enum name="GL_TEXTURE2"/>
+ <enum name="GL_TEXTURE3"/>
+ <enum name="GL_TEXTURE4"/>
+ <enum name="GL_TEXTURE5"/>
+ <enum name="GL_TEXTURE6"/>
+ <enum name="GL_TEXTURE7"/>
+ <enum name="GL_TEXTURE8"/>
+ <enum name="GL_TEXTURE9"/>
+ <enum name="GL_TEXTURE10"/>
+ <enum name="GL_TEXTURE11"/>
+ <enum name="GL_TEXTURE12"/>
+ <enum name="GL_TEXTURE13"/>
+ <enum name="GL_TEXTURE14"/>
+ <enum name="GL_TEXTURE15"/>
+ <enum name="GL_TEXTURE16"/>
+ <enum name="GL_TEXTURE17"/>
+ <enum name="GL_TEXTURE18"/>
+ <enum name="GL_TEXTURE19"/>
+ <enum name="GL_TEXTURE20"/>
+ <enum name="GL_TEXTURE21"/>
+ <enum name="GL_TEXTURE22"/>
+ <enum name="GL_TEXTURE23"/>
+ <enum name="GL_TEXTURE24"/>
+ <enum name="GL_TEXTURE25"/>
+ <enum name="GL_TEXTURE26"/>
+ <enum name="GL_TEXTURE27"/>
+ <enum name="GL_TEXTURE28"/>
+ <enum name="GL_TEXTURE29"/>
+ <enum name="GL_TEXTURE30"/>
+ <enum name="GL_TEXTURE31"/>
+ <enum name="GL_ACTIVE_TEXTURE"/>
+ <enum name="GL_CLIENT_ACTIVE_TEXTURE"/>
+ <enum name="GL_REPEAT"/>
+ <enum name="GL_CLAMP_TO_EDGE"/>
+ <enum name="GL_LIGHT0"/>
+ <enum name="GL_LIGHT1"/>
+ <enum name="GL_LIGHT2"/>
+ <enum name="GL_LIGHT3"/>
+ <enum name="GL_LIGHT4"/>
+ <enum name="GL_LIGHT5"/>
+ <enum name="GL_LIGHT6"/>
+ <enum name="GL_LIGHT7"/>
+ <enum name="GL_ARRAY_BUFFER"/>
+ <enum name="GL_ELEMENT_ARRAY_BUFFER"/>
+ <enum name="GL_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_ELEMENT_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_VERTEX_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_NORMAL_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_COLOR_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_STATIC_DRAW"/>
+ <enum name="GL_DYNAMIC_DRAW"/>
+ <enum name="GL_BUFFER_SIZE"/>
+ <enum name="GL_BUFFER_USAGE"/>
+ <enum name="GL_SUBTRACT"/>
+ <enum name="GL_COMBINE"/>
+ <enum name="GL_COMBINE_RGB"/>
+ <enum name="GL_COMBINE_ALPHA"/>
+ <enum name="GL_RGB_SCALE"/>
+ <enum name="GL_ADD_SIGNED"/>
+ <enum name="GL_INTERPOLATE"/>
+ <enum name="GL_CONSTANT"/>
+ <enum name="GL_PRIMARY_COLOR"/>
+ <enum name="GL_PREVIOUS"/>
+ <enum name="GL_OPERAND0_RGB"/>
+ <enum name="GL_OPERAND1_RGB"/>
+ <enum name="GL_OPERAND2_RGB"/>
+ <enum name="GL_OPERAND0_ALPHA"/>
+ <enum name="GL_OPERAND1_ALPHA"/>
+ <enum name="GL_OPERAND2_ALPHA"/>
+ <enum name="GL_ALPHA_SCALE"/>
+ <enum name="GL_SRC0_RGB"/>
+ <enum name="GL_SRC1_RGB"/>
+ <enum name="GL_SRC2_RGB"/>
+ <enum name="GL_SRC0_ALPHA"/>
+ <enum name="GL_SRC1_ALPHA"/>
+ <enum name="GL_SRC2_ALPHA"/>
+ <enum name="GL_DOT3_RGB"/>
+ <enum name="GL_DOT3_RGBA"/>
+ </require>
+ <require profile="common">
+ <command name="glAlphaFunc"/>
+ <command name="glClearColor"/>
+ <command name="glClearDepthf"/>
+ <command name="glClipPlanef"/>
+ <command name="glColor4f"/>
+ <command name="glDepthRangef"/>
+ <command name="glFogf"/>
+ <command name="glFogfv"/>
+ <command name="glFrustumf"/>
+ <command name="glGetClipPlanef"/>
+ <command name="glGetFloatv"/>
+ <command name="glGetLightfv"/>
+ <command name="glGetMaterialfv"/>
+ <command name="glGetTexEnvfv"/>
+ <command name="glGetTexParameterfv"/>
+ <command name="glLightModelf"/>
+ <command name="glLightModelfv"/>
+ <command name="glLightf"/>
+ <command name="glLightfv"/>
+ <command name="glLineWidth"/>
+ <command name="glLoadMatrixf"/>
+ <command name="glMaterialf"/>
+ <command name="glMaterialfv"/>
+ <command name="glMultMatrixf"/>
+ <command name="glMultiTexCoord4f"/>
+ <command name="glNormal3f"/>
+ <command name="glOrthof"/>
+ <command name="glPointParameterf"/>
+ <command name="glPointParameterfv"/>
+ <command name="glPointSize"/>
+ <command name="glPolygonOffset"/>
+ <command name="glRotatef"/>
+ <command name="glScalef"/>
+ <command name="glTexEnvf"/>
+ <command name="glTexEnvfv"/>
+ <command name="glTexParameterf"/>
+ <command name="glTexParameterfv"/>
+ <command name="glTranslatef"/>
+ </require>
+ <require>
+ <command name="glActiveTexture"/>
+ <command name="glAlphaFuncx"/>
+ <command name="glBindBuffer"/>
+ <command name="glBindTexture"/>
+ <command name="glBlendFunc"/>
+ <command name="glBufferData"/>
+ <command name="glBufferSubData"/>
+ <command name="glClear"/>
+ <command name="glClearColorx"/>
+ <command name="glClearDepthx"/>
+ <command name="glClearStencil"/>
+ <command name="glClientActiveTexture"/>
+ <command name="glClipPlanex"/>
+ <command name="glColor4ub"/>
+ <command name="glColor4x"/>
+ <command name="glColorMask"/>
+ <command name="glColorPointer"/>
+ <command name="glCompressedTexImage2D"/>
+ <command name="glCompressedTexSubImage2D"/>
+ <command name="glCopyTexImage2D"/>
+ <command name="glCopyTexSubImage2D"/>
+ <command name="glCullFace"/>
+ <command name="glDeleteBuffers"/>
+ <command name="glDeleteTextures"/>
+ <command name="glDepthFunc"/>
+ <command name="glDepthMask"/>
+ <command name="glDepthRangex"/>
+ <command name="glDisable"/>
+ <command name="glDisableClientState"/>
+ <command name="glDrawArrays"/>
+ <command name="glDrawElements"/>
+ <command name="glEnable"/>
+ <command name="glEnableClientState"/>
+ <command name="glFinish"/>
+ <command name="glFlush"/>
+ <command name="glFogx"/>
+ <command name="glFogxv"/>
+ <command name="glFrontFace"/>
+ <command name="glFrustumx"/>
+ <command name="glGetBooleanv"/>
+ <command name="glGetBufferParameteriv"/>
+ <command name="glGetClipPlanex"/>
+ <command name="glGenBuffers"/>
+ <command name="glGenTextures"/>
+ <command name="glGetError"/>
+ <command name="glGetFixedv"/>
+ <command name="glGetIntegerv"/>
+ <command name="glGetLightxv"/>
+ <command name="glGetMaterialxv"/>
+ <command name="glGetPointerv"/>
+ <command name="glGetString"/>
+ <command name="glGetTexEnviv"/>
+ <command name="glGetTexEnvxv"/>
+ <command name="glGetTexParameteriv"/>
+ <command name="glGetTexParameterxv"/>
+ <command name="glHint"/>
+ <command name="glIsBuffer"/>
+ <command name="glIsEnabled"/>
+ <command name="glIsTexture"/>
+ <command name="glLightModelx"/>
+ <command name="glLightModelxv"/>
+ <command name="glLightx"/>
+ <command name="glLightxv"/>
+ <command name="glLineWidthx"/>
+ <command name="glLoadIdentity"/>
+ <command name="glLoadMatrixx"/>
+ <command name="glLogicOp"/>
+ <command name="glMaterialx"/>
+ <command name="glMaterialxv"/>
+ <command name="glMatrixMode"/>
+ <command name="glMultMatrixx"/>
+ <command name="glMultiTexCoord4x"/>
+ <command name="glNormal3x"/>
+ <command name="glNormalPointer"/>
+ <command name="glOrthox"/>
+ <command name="glPixelStorei"/>
+ <command name="glPointParameterx"/>
+ <command name="glPointParameterxv"/>
+ <command name="glPointSizex"/>
+ <command name="glPolygonOffsetx"/>
+ <command name="glPopMatrix"/>
+ <command name="glPushMatrix"/>
+ <command name="glReadPixels"/>
+ <command name="glRotatex"/>
+ <command name="glSampleCoverage"/>
+ <command name="glSampleCoveragex"/>
+ <command name="glScalex"/>
+ <command name="glScissor"/>
+ <command name="glShadeModel"/>
+ <command name="glStencilFunc"/>
+ <command name="glStencilMask"/>
+ <command name="glStencilOp"/>
+ <command name="glTexCoordPointer"/>
+ <command name="glTexEnvi"/>
+ <command name="glTexEnvx"/>
+ <command name="glTexEnviv"/>
+ <command name="glTexEnvxv"/>
+ <command name="glTexImage2D"/>
+ <command name="glTexParameteri"/>
+ <command name="glTexParameterx"/>
+ <command name="glTexParameteriv"/>
+ <command name="glTexParameterxv"/>
+ <command name="glTexSubImage2D"/>
+ <command name="glTranslatex"/>
+ <command name="glVertexPointer"/>
+ <command name="glViewport"/>
+ </require>
+ </feature>
+ <feature api="gles2" name="GL_ES_VERSION_2_0" number="2.0">
+ <require>
+ <enum name="GL_DEPTH_BUFFER_BIT"/>
+ <enum name="GL_STENCIL_BUFFER_BIT"/>
+ <enum name="GL_COLOR_BUFFER_BIT"/>
+ <enum name="GL_FALSE"/>
+ <enum name="GL_TRUE"/>
+ <enum name="GL_POINTS"/>
+ <enum name="GL_LINES"/>
+ <enum name="GL_LINE_LOOP"/>
+ <enum name="GL_LINE_STRIP"/>
+ <enum name="GL_TRIANGLES"/>
+ <enum name="GL_TRIANGLE_STRIP"/>
+ <enum name="GL_TRIANGLE_FAN"/>
+ <enum name="GL_ZERO"/>
+ <enum name="GL_ONE"/>
+ <enum name="GL_SRC_COLOR"/>
+ <enum name="GL_ONE_MINUS_SRC_COLOR"/>
+ <enum name="GL_SRC_ALPHA"/>
+ <enum name="GL_ONE_MINUS_SRC_ALPHA"/>
+ <enum name="GL_DST_ALPHA"/>
+ <enum name="GL_ONE_MINUS_DST_ALPHA"/>
+ <enum name="GL_DST_COLOR"/>
+ <enum name="GL_ONE_MINUS_DST_COLOR"/>
+ <enum name="GL_SRC_ALPHA_SATURATE"/>
+ <enum name="GL_FUNC_ADD"/>
+ <enum name="GL_BLEND_EQUATION"/>
+ <enum name="GL_BLEND_EQUATION_RGB"/>
+ <enum name="GL_BLEND_EQUATION_ALPHA"/>
+ <enum name="GL_FUNC_SUBTRACT"/>
+ <enum name="GL_FUNC_REVERSE_SUBTRACT"/>
+ <enum name="GL_BLEND_DST_RGB"/>
+ <enum name="GL_BLEND_SRC_RGB"/>
+ <enum name="GL_BLEND_DST_ALPHA"/>
+ <enum name="GL_BLEND_SRC_ALPHA"/>
+ <enum name="GL_CONSTANT_COLOR"/>
+ <enum name="GL_ONE_MINUS_CONSTANT_COLOR"/>
+ <enum name="GL_CONSTANT_ALPHA"/>
+ <enum name="GL_ONE_MINUS_CONSTANT_ALPHA"/>
+ <enum name="GL_BLEND_COLOR"/>
+ <enum name="GL_ARRAY_BUFFER"/>
+ <enum name="GL_ELEMENT_ARRAY_BUFFER"/>
+ <enum name="GL_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_ELEMENT_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_STREAM_DRAW"/>
+ <enum name="GL_STATIC_DRAW"/>
+ <enum name="GL_DYNAMIC_DRAW"/>
+ <enum name="GL_BUFFER_SIZE"/>
+ <enum name="GL_BUFFER_USAGE"/>
+ <enum name="GL_CURRENT_VERTEX_ATTRIB"/>
+ <enum name="GL_FRONT"/>
+ <enum name="GL_BACK"/>
+ <enum name="GL_FRONT_AND_BACK"/>
+ <enum name="GL_TEXTURE_2D"/>
+ <enum name="GL_CULL_FACE"/>
+ <enum name="GL_BLEND"/>
+ <enum name="GL_DITHER"/>
+ <enum name="GL_STENCIL_TEST"/>
+ <enum name="GL_DEPTH_TEST"/>
+ <enum name="GL_SCISSOR_TEST"/>
+ <enum name="GL_POLYGON_OFFSET_FILL"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_COVERAGE"/>
+ <enum name="GL_SAMPLE_COVERAGE"/>
+ <enum name="GL_NO_ERROR"/>
+ <enum name="GL_INVALID_ENUM"/>
+ <enum name="GL_INVALID_VALUE"/>
+ <enum name="GL_INVALID_OPERATION"/>
+ <enum name="GL_OUT_OF_MEMORY"/>
+ <enum name="GL_CW"/>
+ <enum name="GL_CCW"/>
+ <enum name="GL_LINE_WIDTH"/>
+ <enum name="GL_ALIASED_POINT_SIZE_RANGE"/>
+ <enum name="GL_ALIASED_LINE_WIDTH_RANGE"/>
+ <enum name="GL_CULL_FACE_MODE"/>
+ <enum name="GL_FRONT_FACE"/>
+ <enum name="GL_DEPTH_RANGE"/>
+ <enum name="GL_DEPTH_WRITEMASK"/>
+ <enum name="GL_DEPTH_CLEAR_VALUE"/>
+ <enum name="GL_DEPTH_FUNC"/>
+ <enum name="GL_STENCIL_CLEAR_VALUE"/>
+ <enum name="GL_STENCIL_FUNC"/>
+ <enum name="GL_STENCIL_FAIL"/>
+ <enum name="GL_STENCIL_PASS_DEPTH_FAIL"/>
+ <enum name="GL_STENCIL_PASS_DEPTH_PASS"/>
+ <enum name="GL_STENCIL_REF"/>
+ <enum name="GL_STENCIL_VALUE_MASK"/>
+ <enum name="GL_STENCIL_WRITEMASK"/>
+ <enum name="GL_STENCIL_BACK_FUNC"/>
+ <enum name="GL_STENCIL_BACK_FAIL"/>
+ <enum name="GL_STENCIL_BACK_PASS_DEPTH_FAIL"/>
+ <enum name="GL_STENCIL_BACK_PASS_DEPTH_PASS"/>
+ <enum name="GL_STENCIL_BACK_REF"/>
+ <enum name="GL_STENCIL_BACK_VALUE_MASK"/>
+ <enum name="GL_STENCIL_BACK_WRITEMASK"/>
+ <enum name="GL_VIEWPORT"/>
+ <enum name="GL_SCISSOR_BOX"/>
+ <enum name="GL_COLOR_CLEAR_VALUE"/>
+ <enum name="GL_COLOR_WRITEMASK"/>
+ <enum name="GL_UNPACK_ALIGNMENT"/>
+ <enum name="GL_PACK_ALIGNMENT"/>
+ <enum name="GL_MAX_TEXTURE_SIZE"/>
+ <enum name="GL_MAX_VIEWPORT_DIMS"/>
+ <enum name="GL_SUBPIXEL_BITS"/>
+ <enum name="GL_RED_BITS"/>
+ <enum name="GL_GREEN_BITS"/>
+ <enum name="GL_BLUE_BITS"/>
+ <enum name="GL_ALPHA_BITS"/>
+ <enum name="GL_DEPTH_BITS"/>
+ <enum name="GL_STENCIL_BITS"/>
+ <enum name="GL_POLYGON_OFFSET_UNITS"/>
+ <enum name="GL_POLYGON_OFFSET_FACTOR"/>
+ <enum name="GL_TEXTURE_BINDING_2D"/>
+ <enum name="GL_SAMPLE_BUFFERS"/>
+ <enum name="GL_SAMPLES"/>
+ <enum name="GL_SAMPLE_COVERAGE_VALUE"/>
+ <enum name="GL_SAMPLE_COVERAGE_INVERT"/>
+ <enum name="GL_NUM_COMPRESSED_TEXTURE_FORMATS"/>
+ <enum name="GL_COMPRESSED_TEXTURE_FORMATS"/>
+ <enum name="GL_DONT_CARE"/>
+ <enum name="GL_FASTEST"/>
+ <enum name="GL_NICEST"/>
+ <enum name="GL_GENERATE_MIPMAP_HINT"/>
+ <enum name="GL_BYTE"/>
+ <enum name="GL_UNSIGNED_BYTE"/>
+ <enum name="GL_SHORT"/>
+ <enum name="GL_UNSIGNED_SHORT"/>
+ <enum name="GL_INT"/>
+ <enum name="GL_UNSIGNED_INT"/>
+ <enum name="GL_FLOAT"/>
+ <enum name="GL_FIXED"/>
+ <enum name="GL_DEPTH_COMPONENT"/>
+ <enum name="GL_ALPHA"/>
+ <enum name="GL_RGB"/>
+ <enum name="GL_RGBA"/>
+ <enum name="GL_LUMINANCE"/>
+ <enum name="GL_LUMINANCE_ALPHA"/>
+ <enum name="GL_UNSIGNED_SHORT_4_4_4_4"/>
+ <enum name="GL_UNSIGNED_SHORT_5_5_5_1"/>
+ <enum name="GL_UNSIGNED_SHORT_5_6_5"/>
+ <enum name="GL_FRAGMENT_SHADER"/>
+ <enum name="GL_VERTEX_SHADER"/>
+ <enum name="GL_MAX_VERTEX_ATTRIBS"/>
+ <enum name="GL_MAX_VERTEX_UNIFORM_VECTORS"/>
+ <enum name="GL_MAX_VARYING_VECTORS"/>
+ <enum name="GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS"/>
+ <enum name="GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS"/>
+ <enum name="GL_MAX_TEXTURE_IMAGE_UNITS"/>
+ <enum name="GL_MAX_FRAGMENT_UNIFORM_VECTORS"/>
+ <enum name="GL_SHADER_TYPE"/>
+ <enum name="GL_DELETE_STATUS"/>
+ <enum name="GL_LINK_STATUS"/>
+ <enum name="GL_VALIDATE_STATUS"/>
+ <enum name="GL_ATTACHED_SHADERS"/>
+ <enum name="GL_ACTIVE_UNIFORMS"/>
+ <enum name="GL_ACTIVE_UNIFORM_MAX_LENGTH"/>
+ <enum name="GL_ACTIVE_ATTRIBUTES"/>
+ <enum name="GL_ACTIVE_ATTRIBUTE_MAX_LENGTH"/>
+ <enum name="GL_SHADING_LANGUAGE_VERSION"/>
+ <enum name="GL_CURRENT_PROGRAM"/>
+ <enum name="GL_NEVER"/>
+ <enum name="GL_LESS"/>
+ <enum name="GL_EQUAL"/>
+ <enum name="GL_LEQUAL"/>
+ <enum name="GL_GREATER"/>
+ <enum name="GL_NOTEQUAL"/>
+ <enum name="GL_GEQUAL"/>
+ <enum name="GL_ALWAYS"/>
+ <enum name="GL_KEEP"/>
+ <enum name="GL_REPLACE"/>
+ <enum name="GL_INCR"/>
+ <enum name="GL_DECR"/>
+ <enum name="GL_INVERT"/>
+ <enum name="GL_INCR_WRAP"/>
+ <enum name="GL_DECR_WRAP"/>
+ <enum name="GL_VENDOR"/>
+ <enum name="GL_RENDERER"/>
+ <enum name="GL_VERSION"/>
+ <enum name="GL_EXTENSIONS"/>
+ <enum name="GL_NEAREST"/>
+ <enum name="GL_LINEAR"/>
+ <enum name="GL_NEAREST_MIPMAP_NEAREST"/>
+ <enum name="GL_LINEAR_MIPMAP_NEAREST"/>
+ <enum name="GL_NEAREST_MIPMAP_LINEAR"/>
+ <enum name="GL_LINEAR_MIPMAP_LINEAR"/>
+ <enum name="GL_TEXTURE_MAG_FILTER"/>
+ <enum name="GL_TEXTURE_MIN_FILTER"/>
+ <enum name="GL_TEXTURE_WRAP_S"/>
+ <enum name="GL_TEXTURE_WRAP_T"/>
+ <enum name="GL_TEXTURE"/>
+ <enum name="GL_TEXTURE_CUBE_MAP"/>
+ <enum name="GL_TEXTURE_BINDING_CUBE_MAP"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_X"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z"/>
+ <enum name="GL_MAX_CUBE_MAP_TEXTURE_SIZE"/>
+ <enum name="GL_TEXTURE0"/>
+ <enum name="GL_TEXTURE1"/>
+ <enum name="GL_TEXTURE2"/>
+ <enum name="GL_TEXTURE3"/>
+ <enum name="GL_TEXTURE4"/>
+ <enum name="GL_TEXTURE5"/>
+ <enum name="GL_TEXTURE6"/>
+ <enum name="GL_TEXTURE7"/>
+ <enum name="GL_TEXTURE8"/>
+ <enum name="GL_TEXTURE9"/>
+ <enum name="GL_TEXTURE10"/>
+ <enum name="GL_TEXTURE11"/>
+ <enum name="GL_TEXTURE12"/>
+ <enum name="GL_TEXTURE13"/>
+ <enum name="GL_TEXTURE14"/>
+ <enum name="GL_TEXTURE15"/>
+ <enum name="GL_TEXTURE16"/>
+ <enum name="GL_TEXTURE17"/>
+ <enum name="GL_TEXTURE18"/>
+ <enum name="GL_TEXTURE19"/>
+ <enum name="GL_TEXTURE20"/>
+ <enum name="GL_TEXTURE21"/>
+ <enum name="GL_TEXTURE22"/>
+ <enum name="GL_TEXTURE23"/>
+ <enum name="GL_TEXTURE24"/>
+ <enum name="GL_TEXTURE25"/>
+ <enum name="GL_TEXTURE26"/>
+ <enum name="GL_TEXTURE27"/>
+ <enum name="GL_TEXTURE28"/>
+ <enum name="GL_TEXTURE29"/>
+ <enum name="GL_TEXTURE30"/>
+ <enum name="GL_TEXTURE31"/>
+ <enum name="GL_ACTIVE_TEXTURE"/>
+ <enum name="GL_REPEAT"/>
+ <enum name="GL_CLAMP_TO_EDGE"/>
+ <enum name="GL_MIRRORED_REPEAT"/>
+ <enum name="GL_FLOAT_VEC2"/>
+ <enum name="GL_FLOAT_VEC3"/>
+ <enum name="GL_FLOAT_VEC4"/>
+ <enum name="GL_INT_VEC2"/>
+ <enum name="GL_INT_VEC3"/>
+ <enum name="GL_INT_VEC4"/>
+ <enum name="GL_BOOL"/>
+ <enum name="GL_BOOL_VEC2"/>
+ <enum name="GL_BOOL_VEC3"/>
+ <enum name="GL_BOOL_VEC4"/>
+ <enum name="GL_FLOAT_MAT2"/>
+ <enum name="GL_FLOAT_MAT3"/>
+ <enum name="GL_FLOAT_MAT4"/>
+ <enum name="GL_SAMPLER_2D"/>
+ <enum name="GL_SAMPLER_CUBE"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_ENABLED"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_SIZE"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_STRIDE"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_TYPE"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_NORMALIZED"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_POINTER"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING"/>
+ <enum name="GL_IMPLEMENTATION_COLOR_READ_TYPE"/>
+ <enum name="GL_IMPLEMENTATION_COLOR_READ_FORMAT"/>
+ <enum name="GL_COMPILE_STATUS"/>
+ <enum name="GL_INFO_LOG_LENGTH"/>
+ <enum name="GL_SHADER_SOURCE_LENGTH"/>
+ <enum name="GL_SHADER_COMPILER"/>
+ <enum name="GL_SHADER_BINARY_FORMATS"/>
+ <enum name="GL_NUM_SHADER_BINARY_FORMATS"/>
+ <enum name="GL_LOW_FLOAT"/>
+ <enum name="GL_MEDIUM_FLOAT"/>
+ <enum name="GL_HIGH_FLOAT"/>
+ <enum name="GL_LOW_INT"/>
+ <enum name="GL_MEDIUM_INT"/>
+ <enum name="GL_HIGH_INT"/>
+ <enum name="GL_FRAMEBUFFER"/>
+ <enum name="GL_RENDERBUFFER"/>
+ <enum name="GL_RGBA4"/>
+ <enum name="GL_RGB5_A1"/>
+ <enum name="GL_RGB565"/>
+ <enum name="GL_DEPTH_COMPONENT16"/>
+ <enum name="GL_STENCIL_INDEX8"/>
+ <enum name="GL_RENDERBUFFER_WIDTH"/>
+ <enum name="GL_RENDERBUFFER_HEIGHT"/>
+ <enum name="GL_RENDERBUFFER_INTERNAL_FORMAT"/>
+ <enum name="GL_RENDERBUFFER_RED_SIZE"/>
+ <enum name="GL_RENDERBUFFER_GREEN_SIZE"/>
+ <enum name="GL_RENDERBUFFER_BLUE_SIZE"/>
+ <enum name="GL_RENDERBUFFER_ALPHA_SIZE"/>
+ <enum name="GL_RENDERBUFFER_DEPTH_SIZE"/>
+ <enum name="GL_RENDERBUFFER_STENCIL_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE"/>
+ <enum name="GL_COLOR_ATTACHMENT0"/>
+ <enum name="GL_DEPTH_ATTACHMENT"/>
+ <enum name="GL_STENCIL_ATTACHMENT"/>
+ <enum name="GL_NONE"/>
+ <enum name="GL_FRAMEBUFFER_COMPLETE"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS"/>
+ <enum name="GL_FRAMEBUFFER_UNSUPPORTED"/>
+ <enum name="GL_FRAMEBUFFER_BINDING"/>
+ <enum name="GL_RENDERBUFFER_BINDING"/>
+ <enum name="GL_MAX_RENDERBUFFER_SIZE"/>
+ <enum name="GL_INVALID_FRAMEBUFFER_OPERATION"/>
+ <command name="glActiveTexture"/>
+ <command name="glAttachShader"/>
+ <command name="glBindAttribLocation"/>
+ <command name="glBindBuffer"/>
+ <command name="glBindFramebuffer"/>
+ <command name="glBindRenderbuffer"/>
+ <command name="glBindTexture"/>
+ <command name="glBlendColor"/>
+ <command name="glBlendEquation"/>
+ <command name="glBlendEquationSeparate"/>
+ <command name="glBlendFunc"/>
+ <command name="glBlendFuncSeparate"/>
+ <command name="glBufferData"/>
+ <command name="glBufferSubData"/>
+ <command name="glCheckFramebufferStatus"/>
+ <command name="glClear"/>
+ <command name="glClearColor"/>
+ <command name="glClearDepthf"/>
+ <command name="glClearStencil"/>
+ <command name="glColorMask"/>
+ <command name="glCompileShader"/>
+ <command name="glCompressedTexImage2D"/>
+ <command name="glCompressedTexSubImage2D"/>
+ <command name="glCopyTexImage2D"/>
+ <command name="glCopyTexSubImage2D"/>
+ <command name="glCreateProgram"/>
+ <command name="glCreateShader"/>
+ <command name="glCullFace"/>
+ <command name="glDeleteBuffers"/>
+ <command name="glDeleteFramebuffers"/>
+ <command name="glDeleteProgram"/>
+ <command name="glDeleteRenderbuffers"/>
+ <command name="glDeleteShader"/>
+ <command name="glDeleteTextures"/>
+ <command name="glDepthFunc"/>
+ <command name="glDepthMask"/>
+ <command name="glDepthRangef"/>
+ <command name="glDetachShader"/>
+ <command name="glDisable"/>
+ <command name="glDisableVertexAttribArray"/>
+ <command name="glDrawArrays"/>
+ <command name="glDrawElements"/>
+ <command name="glEnable"/>
+ <command name="glEnableVertexAttribArray"/>
+ <command name="glFinish"/>
+ <command name="glFlush"/>
+ <command name="glFramebufferRenderbuffer"/>
+ <command name="glFramebufferTexture2D"/>
+ <command name="glFrontFace"/>
+ <command name="glGenBuffers"/>
+ <command name="glGenerateMipmap"/>
+ <command name="glGenFramebuffers"/>
+ <command name="glGenRenderbuffers"/>
+ <command name="glGenTextures"/>
+ <command name="glGetActiveAttrib"/>
+ <command name="glGetActiveUniform"/>
+ <command name="glGetAttachedShaders"/>
+ <command name="glGetAttribLocation"/>
+ <command name="glGetBooleanv"/>
+ <command name="glGetBufferParameteriv"/>
+ <command name="glGetError"/>
+ <command name="glGetFloatv"/>
+ <command name="glGetFramebufferAttachmentParameteriv"/>
+ <command name="glGetIntegerv"/>
+ <command name="glGetProgramiv"/>
+ <command name="glGetProgramInfoLog"/>
+ <command name="glGetRenderbufferParameteriv"/>
+ <command name="glGetShaderiv"/>
+ <command name="glGetShaderInfoLog"/>
+ <command name="glGetShaderPrecisionFormat"/>
+ <command name="glGetShaderSource"/>
+ <command name="glGetString"/>
+ <command name="glGetTexParameterfv"/>
+ <command name="glGetTexParameteriv"/>
+ <command name="glGetUniformfv"/>
+ <command name="glGetUniformiv"/>
+ <command name="glGetUniformLocation"/>
+ <command name="glGetVertexAttribfv"/>
+ <command name="glGetVertexAttribiv"/>
+ <command name="glGetVertexAttribPointerv"/>
+ <command name="glHint"/>
+ <command name="glIsBuffer"/>
+ <command name="glIsEnabled"/>
+ <command name="glIsFramebuffer"/>
+ <command name="glIsProgram"/>
+ <command name="glIsRenderbuffer"/>
+ <command name="glIsShader"/>
+ <command name="glIsTexture"/>
+ <command name="glLineWidth"/>
+ <command name="glLinkProgram"/>
+ <command name="glPixelStorei"/>
+ <command name="glPolygonOffset"/>
+ <command name="glReadPixels"/>
+ <command name="glReleaseShaderCompiler"/>
+ <command name="glRenderbufferStorage"/>
+ <command name="glSampleCoverage"/>
+ <command name="glScissor"/>
+ <command name="glShaderBinary"/>
+ <command name="glShaderSource"/>
+ <command name="glStencilFunc"/>
+ <command name="glStencilFuncSeparate"/>
+ <command name="glStencilMask"/>
+ <command name="glStencilMaskSeparate"/>
+ <command name="glStencilOp"/>
+ <command name="glStencilOpSeparate"/>
+ <command name="glTexImage2D"/>
+ <command name="glTexParameterf"/>
+ <command name="glTexParameterfv"/>
+ <command name="glTexParameteri"/>
+ <command name="glTexParameteriv"/>
+ <command name="glTexSubImage2D"/>
+ <command name="glUniform1f"/>
+ <command name="glUniform1fv"/>
+ <command name="glUniform1i"/>
+ <command name="glUniform1iv"/>
+ <command name="glUniform2f"/>
+ <command name="glUniform2fv"/>
+ <command name="glUniform2i"/>
+ <command name="glUniform2iv"/>
+ <command name="glUniform3f"/>
+ <command name="glUniform3fv"/>
+ <command name="glUniform3i"/>
+ <command name="glUniform3iv"/>
+ <command name="glUniform4f"/>
+ <command name="glUniform4fv"/>
+ <command name="glUniform4i"/>
+ <command name="glUniform4iv"/>
+ <command name="glUniformMatrix2fv"/>
+ <command name="glUniformMatrix3fv"/>
+ <command name="glUniformMatrix4fv"/>
+ <command name="glUseProgram"/>
+ <command name="glValidateProgram"/>
+ <command name="glVertexAttrib1f"/>
+ <command name="glVertexAttrib1fv"/>
+ <command name="glVertexAttrib2f"/>
+ <command name="glVertexAttrib2fv"/>
+ <command name="glVertexAttrib3f"/>
+ <command name="glVertexAttrib3fv"/>
+ <command name="glVertexAttrib4f"/>
+ <command name="glVertexAttrib4fv"/>
+ <command name="glVertexAttribPointer"/>
+ <command name="glViewport"/>
+ </require>
+ </feature>
+ <feature api="gles2" name="GL_ES_VERSION_3_0" number="3.0">
+ <require>
+ <enum name="GL_READ_BUFFER"/>
+ <enum name="GL_UNPACK_ROW_LENGTH"/>
+ <enum name="GL_UNPACK_SKIP_ROWS"/>
+ <enum name="GL_UNPACK_SKIP_PIXELS"/>
+ <enum name="GL_PACK_ROW_LENGTH"/>
+ <enum name="GL_PACK_SKIP_ROWS"/>
+ <enum name="GL_PACK_SKIP_PIXELS"/>
+ <enum name="GL_COLOR"/>
+ <enum name="GL_DEPTH"/>
+ <enum name="GL_STENCIL"/>
+ <enum name="GL_RED"/>
+ <enum name="GL_RGB8"/>
+ <enum name="GL_RGBA8"/>
+ <enum name="GL_RGB10_A2"/>
+ <enum name="GL_TEXTURE_BINDING_3D"/>
+ <enum name="GL_UNPACK_SKIP_IMAGES"/>
+ <enum name="GL_UNPACK_IMAGE_HEIGHT"/>
+ <enum name="GL_TEXTURE_3D"/>
+ <enum name="GL_TEXTURE_WRAP_R"/>
+ <enum name="GL_MAX_3D_TEXTURE_SIZE"/>
+ <enum name="GL_UNSIGNED_INT_2_10_10_10_REV"/>
+ <enum name="GL_MAX_ELEMENTS_VERTICES"/>
+ <enum name="GL_MAX_ELEMENTS_INDICES"/>
+ <enum name="GL_TEXTURE_MIN_LOD"/>
+ <enum name="GL_TEXTURE_MAX_LOD"/>
+ <enum name="GL_TEXTURE_BASE_LEVEL"/>
+ <enum name="GL_TEXTURE_MAX_LEVEL"/>
+ <enum name="GL_MIN"/>
+ <enum name="GL_MAX"/>
+ <enum name="GL_DEPTH_COMPONENT24"/>
+ <enum name="GL_MAX_TEXTURE_LOD_BIAS"/>
+ <enum name="GL_TEXTURE_COMPARE_MODE"/>
+ <enum name="GL_TEXTURE_COMPARE_FUNC"/>
+ <enum name="GL_CURRENT_QUERY"/>
+ <enum name="GL_QUERY_RESULT"/>
+ <enum name="GL_QUERY_RESULT_AVAILABLE"/>
+ <enum name="GL_BUFFER_MAPPED"/>
+ <enum name="GL_BUFFER_MAP_POINTER"/>
+ <enum name="GL_STREAM_READ"/>
+ <enum name="GL_STREAM_COPY"/>
+ <enum name="GL_STATIC_READ"/>
+ <enum name="GL_STATIC_COPY"/>
+ <enum name="GL_DYNAMIC_READ"/>
+ <enum name="GL_DYNAMIC_COPY"/>
+ <enum name="GL_MAX_DRAW_BUFFERS"/>
+ <enum name="GL_DRAW_BUFFER0"/>
+ <enum name="GL_DRAW_BUFFER1"/>
+ <enum name="GL_DRAW_BUFFER2"/>
+ <enum name="GL_DRAW_BUFFER3"/>
+ <enum name="GL_DRAW_BUFFER4"/>
+ <enum name="GL_DRAW_BUFFER5"/>
+ <enum name="GL_DRAW_BUFFER6"/>
+ <enum name="GL_DRAW_BUFFER7"/>
+ <enum name="GL_DRAW_BUFFER8"/>
+ <enum name="GL_DRAW_BUFFER9"/>
+ <enum name="GL_DRAW_BUFFER10"/>
+ <enum name="GL_DRAW_BUFFER11"/>
+ <enum name="GL_DRAW_BUFFER12"/>
+ <enum name="GL_DRAW_BUFFER13"/>
+ <enum name="GL_DRAW_BUFFER14"/>
+ <enum name="GL_DRAW_BUFFER15"/>
+ <enum name="GL_MAX_FRAGMENT_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_VERTEX_UNIFORM_COMPONENTS"/>
+ <enum name="GL_SAMPLER_3D"/>
+ <enum name="GL_SAMPLER_2D_SHADOW"/>
+ <enum name="GL_FRAGMENT_SHADER_DERIVATIVE_HINT"/>
+ <enum name="GL_PIXEL_PACK_BUFFER"/>
+ <enum name="GL_PIXEL_UNPACK_BUFFER"/>
+ <enum name="GL_PIXEL_PACK_BUFFER_BINDING"/>
+ <enum name="GL_PIXEL_UNPACK_BUFFER_BINDING"/>
+ <enum name="GL_FLOAT_MAT2x3"/>
+ <enum name="GL_FLOAT_MAT2x4"/>
+ <enum name="GL_FLOAT_MAT3x2"/>
+ <enum name="GL_FLOAT_MAT3x4"/>
+ <enum name="GL_FLOAT_MAT4x2"/>
+ <enum name="GL_FLOAT_MAT4x3"/>
+ <enum name="GL_SRGB"/>
+ <enum name="GL_SRGB8"/>
+ <enum name="GL_SRGB8_ALPHA8"/>
+ <enum name="GL_COMPARE_REF_TO_TEXTURE"/>
+ <enum name="GL_MAJOR_VERSION"/>
+ <enum name="GL_MINOR_VERSION"/>
+ <enum name="GL_NUM_EXTENSIONS"/>
+ <enum name="GL_RGBA32F"/>
+ <enum name="GL_RGB32F"/>
+ <enum name="GL_RGBA16F"/>
+ <enum name="GL_RGB16F"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_INTEGER"/>
+ <enum name="GL_MAX_ARRAY_TEXTURE_LAYERS"/>
+ <enum name="GL_MIN_PROGRAM_TEXEL_OFFSET"/>
+ <enum name="GL_MAX_PROGRAM_TEXEL_OFFSET"/>
+ <enum name="GL_MAX_VARYING_COMPONENTS"/>
+ <enum name="GL_TEXTURE_2D_ARRAY"/>
+ <enum name="GL_TEXTURE_BINDING_2D_ARRAY"/>
+ <enum name="GL_R11F_G11F_B10F"/>
+ <enum name="GL_UNSIGNED_INT_10F_11F_11F_REV"/>
+ <enum name="GL_RGB9_E5"/>
+ <enum name="GL_UNSIGNED_INT_5_9_9_9_REV"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_MODE"/>
+ <enum name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_VARYINGS"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_START"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_SIZE"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN"/>
+ <enum name="GL_RASTERIZER_DISCARD"/>
+ <enum name="GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS"/>
+ <enum name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS"/>
+ <enum name="GL_INTERLEAVED_ATTRIBS"/>
+ <enum name="GL_SEPARATE_ATTRIBS"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_BINDING"/>
+ <enum name="GL_RGBA32UI"/>
+ <enum name="GL_RGB32UI"/>
+ <enum name="GL_RGBA16UI"/>
+ <enum name="GL_RGB16UI"/>
+ <enum name="GL_RGBA8UI"/>
+ <enum name="GL_RGB8UI"/>
+ <enum name="GL_RGBA32I"/>
+ <enum name="GL_RGB32I"/>
+ <enum name="GL_RGBA16I"/>
+ <enum name="GL_RGB16I"/>
+ <enum name="GL_RGBA8I"/>
+ <enum name="GL_RGB8I"/>
+ <enum name="GL_RED_INTEGER"/>
+ <enum name="GL_RGB_INTEGER"/>
+ <enum name="GL_RGBA_INTEGER"/>
+ <enum name="GL_SAMPLER_2D_ARRAY"/>
+ <enum name="GL_SAMPLER_2D_ARRAY_SHADOW"/>
+ <enum name="GL_SAMPLER_CUBE_SHADOW"/>
+ <enum name="GL_UNSIGNED_INT_VEC2"/>
+ <enum name="GL_UNSIGNED_INT_VEC3"/>
+ <enum name="GL_UNSIGNED_INT_VEC4"/>
+ <enum name="GL_INT_SAMPLER_2D"/>
+ <enum name="GL_INT_SAMPLER_3D"/>
+ <enum name="GL_INT_SAMPLER_CUBE"/>
+ <enum name="GL_INT_SAMPLER_2D_ARRAY"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_2D"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_3D"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_CUBE"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_2D_ARRAY"/>
+ <enum name="GL_BUFFER_ACCESS_FLAGS"/>
+ <enum name="GL_BUFFER_MAP_LENGTH"/>
+ <enum name="GL_BUFFER_MAP_OFFSET"/>
+ <enum name="GL_DEPTH_COMPONENT32F"/>
+ <enum name="GL_DEPTH32F_STENCIL8"/>
+ <enum name="GL_FLOAT_32_UNSIGNED_INT_24_8_REV"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_DEFAULT"/>
+ <enum name="GL_FRAMEBUFFER_UNDEFINED"/>
+ <enum name="GL_DEPTH_STENCIL_ATTACHMENT"/>
+ <enum name="GL_DEPTH_STENCIL"/>
+ <enum name="GL_UNSIGNED_INT_24_8"/>
+ <enum name="GL_DEPTH24_STENCIL8"/>
+ <enum name="GL_UNSIGNED_NORMALIZED"/>
+ <enum name="GL_DRAW_FRAMEBUFFER_BINDING"/>
+ <enum name="GL_READ_FRAMEBUFFER"/>
+ <enum name="GL_DRAW_FRAMEBUFFER"/>
+ <enum name="GL_READ_FRAMEBUFFER_BINDING"/>
+ <enum name="GL_RENDERBUFFER_SAMPLES"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER"/>
+ <enum name="GL_MAX_COLOR_ATTACHMENTS"/>
+ <enum name="GL_COLOR_ATTACHMENT1"/>
+ <enum name="GL_COLOR_ATTACHMENT2"/>
+ <enum name="GL_COLOR_ATTACHMENT3"/>
+ <enum name="GL_COLOR_ATTACHMENT4"/>
+ <enum name="GL_COLOR_ATTACHMENT5"/>
+ <enum name="GL_COLOR_ATTACHMENT6"/>
+ <enum name="GL_COLOR_ATTACHMENT7"/>
+ <enum name="GL_COLOR_ATTACHMENT8"/>
+ <enum name="GL_COLOR_ATTACHMENT9"/>
+ <enum name="GL_COLOR_ATTACHMENT10"/>
+ <enum name="GL_COLOR_ATTACHMENT11"/>
+ <enum name="GL_COLOR_ATTACHMENT12"/>
+ <enum name="GL_COLOR_ATTACHMENT13"/>
+ <enum name="GL_COLOR_ATTACHMENT14"/>
+ <enum name="GL_COLOR_ATTACHMENT15"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE"/>
+ <enum name="GL_MAX_SAMPLES"/>
+ <enum name="GL_HALF_FLOAT"/>
+ <enum name="GL_MAP_READ_BIT"/>
+ <enum name="GL_MAP_WRITE_BIT"/>
+ <enum name="GL_MAP_INVALIDATE_RANGE_BIT"/>
+ <enum name="GL_MAP_INVALIDATE_BUFFER_BIT"/>
+ <enum name="GL_MAP_FLUSH_EXPLICIT_BIT"/>
+ <enum name="GL_MAP_UNSYNCHRONIZED_BIT"/>
+ <enum name="GL_RG"/>
+ <enum name="GL_RG_INTEGER"/>
+ <enum name="GL_R8"/>
+ <enum name="GL_RG8"/>
+ <enum name="GL_R16F"/>
+ <enum name="GL_R32F"/>
+ <enum name="GL_RG16F"/>
+ <enum name="GL_RG32F"/>
+ <enum name="GL_R8I"/>
+ <enum name="GL_R8UI"/>
+ <enum name="GL_R16I"/>
+ <enum name="GL_R16UI"/>
+ <enum name="GL_R32I"/>
+ <enum name="GL_R32UI"/>
+ <enum name="GL_RG8I"/>
+ <enum name="GL_RG8UI"/>
+ <enum name="GL_RG16I"/>
+ <enum name="GL_RG16UI"/>
+ <enum name="GL_RG32I"/>
+ <enum name="GL_RG32UI"/>
+ <enum name="GL_VERTEX_ARRAY_BINDING"/>
+ <enum name="GL_R8_SNORM"/>
+ <enum name="GL_RG8_SNORM"/>
+ <enum name="GL_RGB8_SNORM"/>
+ <enum name="GL_RGBA8_SNORM"/>
+ <enum name="GL_SIGNED_NORMALIZED"/>
+ <enum name="GL_PRIMITIVE_RESTART_FIXED_INDEX"/>
+ <enum name="GL_COPY_READ_BUFFER"/>
+ <enum name="GL_COPY_WRITE_BUFFER"/>
+ <enum name="GL_COPY_READ_BUFFER_BINDING"/>
+ <enum name="GL_COPY_WRITE_BUFFER_BINDING"/>
+ <enum name="GL_UNIFORM_BUFFER"/>
+ <enum name="GL_UNIFORM_BUFFER_BINDING"/>
+ <enum name="GL_UNIFORM_BUFFER_START"/>
+ <enum name="GL_UNIFORM_BUFFER_SIZE"/>
+ <enum name="GL_MAX_VERTEX_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_FRAGMENT_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_COMBINED_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_UNIFORM_BUFFER_BINDINGS"/>
+ <enum name="GL_MAX_UNIFORM_BLOCK_SIZE"/>
+ <enum name="GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS"/>
+ <enum name="GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT"/>
+ <enum name="GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH"/>
+ <enum name="GL_ACTIVE_UNIFORM_BLOCKS"/>
+ <enum name="GL_UNIFORM_TYPE"/>
+ <enum name="GL_UNIFORM_SIZE"/>
+ <enum name="GL_UNIFORM_NAME_LENGTH"/>
+ <enum name="GL_UNIFORM_BLOCK_INDEX"/>
+ <enum name="GL_UNIFORM_OFFSET"/>
+ <enum name="GL_UNIFORM_ARRAY_STRIDE"/>
+ <enum name="GL_UNIFORM_MATRIX_STRIDE"/>
+ <enum name="GL_UNIFORM_IS_ROW_MAJOR"/>
+ <enum name="GL_UNIFORM_BLOCK_BINDING"/>
+ <enum name="GL_UNIFORM_BLOCK_DATA_SIZE"/>
+ <enum name="GL_UNIFORM_BLOCK_NAME_LENGTH"/>
+ <enum name="GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS"/>
+ <enum name="GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES"/>
+ <enum name="GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER"/>
+ <enum name="GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER"/>
+ <enum name="GL_INVALID_INDEX"/>
+ <enum name="GL_MAX_VERTEX_OUTPUT_COMPONENTS"/>
+ <enum name="GL_MAX_FRAGMENT_INPUT_COMPONENTS"/>
+ <enum name="GL_MAX_SERVER_WAIT_TIMEOUT"/>
+ <enum name="GL_OBJECT_TYPE"/>
+ <enum name="GL_SYNC_CONDITION"/>
+ <enum name="GL_SYNC_STATUS"/>
+ <enum name="GL_SYNC_FLAGS"/>
+ <enum name="GL_SYNC_FENCE"/>
+ <enum name="GL_SYNC_GPU_COMMANDS_COMPLETE"/>
+ <enum name="GL_UNSIGNALED"/>
+ <enum name="GL_SIGNALED"/>
+ <enum name="GL_ALREADY_SIGNALED"/>
+ <enum name="GL_TIMEOUT_EXPIRED"/>
+ <enum name="GL_CONDITION_SATISFIED"/>
+ <enum name="GL_WAIT_FAILED"/>
+ <enum name="GL_SYNC_FLUSH_COMMANDS_BIT"/>
+ <enum name="GL_TIMEOUT_IGNORED"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_DIVISOR"/>
+ <enum name="GL_ANY_SAMPLES_PASSED"/>
+ <enum name="GL_ANY_SAMPLES_PASSED_CONSERVATIVE"/>
+ <enum name="GL_SAMPLER_BINDING"/>
+ <enum name="GL_RGB10_A2UI"/>
+ <enum name="GL_TEXTURE_SWIZZLE_R"/>
+ <enum name="GL_TEXTURE_SWIZZLE_G"/>
+ <enum name="GL_TEXTURE_SWIZZLE_B"/>
+ <enum name="GL_TEXTURE_SWIZZLE_A"/>
+ <enum name="GL_GREEN"/>
+ <enum name="GL_BLUE"/>
+ <enum name="GL_INT_2_10_10_10_REV"/>
+ <enum name="GL_TRANSFORM_FEEDBACK"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_PAUSED"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_ACTIVE"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BINDING"/>
+ <enum name="GL_PROGRAM_BINARY_RETRIEVABLE_HINT"/>
+ <enum name="GL_PROGRAM_BINARY_LENGTH"/>
+ <enum name="GL_NUM_PROGRAM_BINARY_FORMATS"/>
+ <enum name="GL_PROGRAM_BINARY_FORMATS"/>
+ <enum name="GL_COMPRESSED_R11_EAC"/>
+ <enum name="GL_COMPRESSED_SIGNED_R11_EAC"/>
+ <enum name="GL_COMPRESSED_RG11_EAC"/>
+ <enum name="GL_COMPRESSED_SIGNED_RG11_EAC"/>
+ <enum name="GL_COMPRESSED_RGB8_ETC2"/>
+ <enum name="GL_COMPRESSED_SRGB8_ETC2"/>
+ <enum name="GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2"/>
+ <enum name="GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2"/>
+ <enum name="GL_COMPRESSED_RGBA8_ETC2_EAC"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC"/>
+ <enum name="GL_TEXTURE_IMMUTABLE_FORMAT"/>
+ <enum name="GL_MAX_ELEMENT_INDEX"/>
+ <enum name="GL_NUM_SAMPLE_COUNTS"/>
+ <enum name="GL_TEXTURE_IMMUTABLE_LEVELS"/>
+ <command name="glReadBuffer"/>
+ <command name="glDrawRangeElements"/>
+ <command name="glTexImage3D"/>
+ <command name="glTexSubImage3D"/>
+ <command name="glCopyTexSubImage3D"/>
+ <command name="glCompressedTexImage3D"/>
+ <command name="glCompressedTexSubImage3D"/>
+ <command name="glGenQueries"/>
+ <command name="glDeleteQueries"/>
+ <command name="glIsQuery"/>
+ <command name="glBeginQuery"/>
+ <command name="glEndQuery"/>
+ <command name="glGetQueryiv"/>
+ <command name="glGetQueryObjectuiv"/>
+ <command name="glUnmapBuffer"/>
+ <command name="glGetBufferPointerv"/>
+ <command name="glDrawBuffers"/>
+ <command name="glUniformMatrix2x3fv"/>
+ <command name="glUniformMatrix3x2fv"/>
+ <command name="glUniformMatrix2x4fv"/>
+ <command name="glUniformMatrix4x2fv"/>
+ <command name="glUniformMatrix3x4fv"/>
+ <command name="glUniformMatrix4x3fv"/>
+ <command name="glBlitFramebuffer"/>
+ <command name="glRenderbufferStorageMultisample"/>
+ <command name="glFramebufferTextureLayer"/>
+ <command name="glMapBufferRange"/>
+ <command name="glFlushMappedBufferRange"/>
+ <command name="glBindVertexArray"/>
+ <command name="glDeleteVertexArrays"/>
+ <command name="glGenVertexArrays"/>
+ <command name="glIsVertexArray"/>
+ <command name="glGetIntegeri_v"/>
+ <command name="glBeginTransformFeedback"/>
+ <command name="glEndTransformFeedback"/>
+ <command name="glBindBufferRange"/>
+ <command name="glBindBufferBase"/>
+ <command name="glTransformFeedbackVaryings"/>
+ <command name="glGetTransformFeedbackVarying"/>
+ <command name="glVertexAttribIPointer"/>
+ <command name="glGetVertexAttribIiv"/>
+ <command name="glGetVertexAttribIuiv"/>
+ <command name="glVertexAttribI4i"/>
+ <command name="glVertexAttribI4ui"/>
+ <command name="glVertexAttribI4iv"/>
+ <command name="glVertexAttribI4uiv"/>
+ <command name="glGetUniformuiv"/>
+ <command name="glGetFragDataLocation"/>
+ <command name="glUniform1ui"/>
+ <command name="glUniform2ui"/>
+ <command name="glUniform3ui"/>
+ <command name="glUniform4ui"/>
+ <command name="glUniform1uiv"/>
+ <command name="glUniform2uiv"/>
+ <command name="glUniform3uiv"/>
+ <command name="glUniform4uiv"/>
+ <command name="glClearBufferiv"/>
+ <command name="glClearBufferuiv"/>
+ <command name="glClearBufferfv"/>
+ <command name="glClearBufferfi"/>
+ <command name="glGetStringi"/>
+ <command name="glCopyBufferSubData"/>
+ <command name="glGetUniformIndices"/>
+ <command name="glGetActiveUniformsiv"/>
+ <command name="glGetUniformBlockIndex"/>
+ <command name="glGetActiveUniformBlockiv"/>
+ <command name="glGetActiveUniformBlockName"/>
+ <command name="glUniformBlockBinding"/>
+ <command name="glDrawArraysInstanced"/>
+ <command name="glDrawElementsInstanced"/>
+ <command name="glFenceSync"/>
+ <command name="glIsSync"/>
+ <command name="glDeleteSync"/>
+ <command name="glClientWaitSync"/>
+ <command name="glWaitSync"/>
+ <command name="glGetInteger64v"/>
+ <command name="glGetSynciv"/>
+ <command name="glGetInteger64i_v"/>
+ <command name="glGetBufferParameteri64v"/>
+ <command name="glGenSamplers"/>
+ <command name="glDeleteSamplers"/>
+ <command name="glIsSampler"/>
+ <command name="glBindSampler"/>
+ <command name="glSamplerParameteri"/>
+ <command name="glSamplerParameteriv"/>
+ <command name="glSamplerParameterf"/>
+ <command name="glSamplerParameterfv"/>
+ <command name="glGetSamplerParameteriv"/>
+ <command name="glGetSamplerParameterfv"/>
+ <command name="glVertexAttribDivisor"/>
+ <command name="glBindTransformFeedback"/>
+ <command name="glDeleteTransformFeedbacks"/>
+ <command name="glGenTransformFeedbacks"/>
+ <command name="glIsTransformFeedback"/>
+ <command name="glPauseTransformFeedback"/>
+ <command name="glResumeTransformFeedback"/>
+ <command name="glGetProgramBinary"/>
+ <command name="glProgramBinary"/>
+ <command name="glProgramParameteri"/>
+ <command name="glInvalidateFramebuffer"/>
+ <command name="glInvalidateSubFramebuffer"/>
+ <command name="glTexStorage2D"/>
+ <command name="glTexStorage3D"/>
+ <command name="glGetInternalformativ"/>
+ </require>
+ </feature>
+
+ <!-- SECTION: OpenGL / OpenGL ES extension interface definitions -->
+ <extensions>
+ <extension name="GL_3DFX_multisample" supported="gl">
+ <require>
+ <enum name="GL_MULTISAMPLE_3DFX"/>
+ <enum name="GL_SAMPLE_BUFFERS_3DFX"/>
+ <enum name="GL_SAMPLES_3DFX"/>
+ <enum name="GL_MULTISAMPLE_BIT_3DFX"/>
+ </require>
+ </extension>
+ <extension name="GL_3DFX_tbuffer" supported="gl">
+ <require>
+ <command name="glTbufferMask3DFX"/>
+ </require>
+ </extension>
+ <extension name="GL_3DFX_texture_compression_FXT1" supported="gl">
+ <require>
+ <enum name="GL_COMPRESSED_RGB_FXT1_3DFX"/>
+ <enum name="GL_COMPRESSED_RGBA_FXT1_3DFX"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_blend_minmax_factor" supported="gl">
+ <require>
+ <enum name="GL_FACTOR_MIN_AMD"/>
+ <enum name="GL_FACTOR_MAX_AMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_compressed_3DC_texture" supported="gles1|gles2">
+ <require>
+ <enum name="GL_3DC_X_AMD"/>
+ <enum name="GL_3DC_XY_AMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_compressed_ATC_texture" supported="gles1|gles2">
+ <require>
+ <enum name="GL_ATC_RGB_AMD"/>
+ <enum name="GL_ATC_RGBA_EXPLICIT_ALPHA_AMD"/>
+ <enum name="GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_conservative_depth" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_AMD_debug_output" supported="gl">
+ <require>
+ <enum name="GL_MAX_DEBUG_MESSAGE_LENGTH_AMD"/>
+ <enum name="GL_MAX_DEBUG_LOGGED_MESSAGES_AMD"/>
+ <enum name="GL_DEBUG_LOGGED_MESSAGES_AMD"/>
+ <enum name="GL_DEBUG_SEVERITY_HIGH_AMD"/>
+ <enum name="GL_DEBUG_SEVERITY_MEDIUM_AMD"/>
+ <enum name="GL_DEBUG_SEVERITY_LOW_AMD"/>
+ <enum name="GL_DEBUG_CATEGORY_API_ERROR_AMD"/>
+ <enum name="GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD"/>
+ <enum name="GL_DEBUG_CATEGORY_DEPRECATION_AMD"/>
+ <enum name="GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD"/>
+ <enum name="GL_DEBUG_CATEGORY_PERFORMANCE_AMD"/>
+ <enum name="GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD"/>
+ <enum name="GL_DEBUG_CATEGORY_APPLICATION_AMD"/>
+ <enum name="GL_DEBUG_CATEGORY_OTHER_AMD"/>
+ <command name="glDebugMessageEnableAMD"/>
+ <command name="glDebugMessageInsertAMD"/>
+ <command name="glDebugMessageCallbackAMD"/>
+ <command name="glGetDebugMessageLogAMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_depth_clamp_separate" supported="gl">
+ <require>
+ <enum name="GL_DEPTH_CLAMP_NEAR_AMD"/>
+ <enum name="GL_DEPTH_CLAMP_FAR_AMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_draw_buffers_blend" supported="gl">
+ <require>
+ <command name="glBlendFuncIndexedAMD"/>
+ <command name="glBlendFuncSeparateIndexedAMD"/>
+ <command name="glBlendEquationIndexedAMD"/>
+ <command name="glBlendEquationSeparateIndexedAMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_interleaved_elements" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_ELEMENT_SWIZZLE_AMD"/>
+ <enum name="GL_VERTEX_ID_SWIZZLE_AMD"/>
+ <enum name="GL_RED"/>
+ <enum name="GL_GREEN"/>
+ <enum name="GL_BLUE"/>
+ <enum name="GL_ALPHA"/>
+ <enum name="GL_RG8UI"/>
+ <enum name="GL_RG16UI"/>
+ <enum name="GL_RGBA8UI"/>
+ <command name="glVertexAttribParameteriAMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_multi_draw_indirect" supported="gl">
+ <require>
+ <command name="glMultiDrawArraysIndirectAMD"/>
+ <command name="glMultiDrawElementsIndirectAMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_name_gen_delete" supported="gl">
+ <require>
+ <enum name="GL_DATA_BUFFER_AMD"/>
+ <enum name="GL_PERFORMANCE_MONITOR_AMD"/>
+ <enum name="GL_QUERY_OBJECT_AMD"/>
+ <enum name="GL_VERTEX_ARRAY_OBJECT_AMD"/>
+ <enum name="GL_SAMPLER_OBJECT_AMD"/>
+ <command name="glGenNamesAMD"/>
+ <command name="glDeleteNamesAMD"/>
+ <command name="glIsNameAMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_performance_monitor" supported="gl|gles2">
+ <require>
+ <enum name="GL_COUNTER_TYPE_AMD"/>
+ <enum name="GL_COUNTER_RANGE_AMD"/>
+ <enum name="GL_UNSIGNED_INT64_AMD"/>
+ <enum name="GL_PERCENTAGE_AMD"/>
+ <enum name="GL_PERFMON_RESULT_AVAILABLE_AMD"/>
+ <enum name="GL_PERFMON_RESULT_SIZE_AMD"/>
+ <enum name="GL_PERFMON_RESULT_AMD"/>
+ <command name="glGetPerfMonitorGroupsAMD"/>
+ <command name="glGetPerfMonitorCountersAMD"/>
+ <command name="glGetPerfMonitorGroupStringAMD"/>
+ <command name="glGetPerfMonitorCounterStringAMD"/>
+ <command name="glGetPerfMonitorCounterInfoAMD"/>
+ <command name="glGenPerfMonitorsAMD"/>
+ <command name="glDeletePerfMonitorsAMD"/>
+ <command name="glSelectPerfMonitorCountersAMD"/>
+ <command name="glBeginPerfMonitorAMD"/>
+ <command name="glEndPerfMonitorAMD"/>
+ <command name="glGetPerfMonitorCounterDataAMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_pinned_memory" supported="gl">
+ <require>
+ <enum name="GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_program_binary_Z400" supported="gles2">
+ <require>
+ <enum name="GL_Z400_BINARY_AMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_query_buffer_object" supported="gl">
+ <require>
+ <enum name="GL_QUERY_BUFFER_AMD"/>
+ <enum name="GL_QUERY_BUFFER_BINDING_AMD"/>
+ <enum name="GL_QUERY_RESULT_NO_WAIT_AMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_sample_positions" supported="gl">
+ <require>
+ <enum name="GL_SUBSAMPLE_DISTANCE_AMD"/>
+ <command name="glSetMultisamplefvAMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_seamless_cubemap_per_texture" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_CUBE_MAP_SEAMLESS"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_shader_stencil_export" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_AMD_shader_trinary_minmax" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_AMD_sparse_texture" supported="gl">
+ <require>
+ <enum name="GL_VIRTUAL_PAGE_SIZE_X_AMD"/>
+ <enum name="GL_VIRTUAL_PAGE_SIZE_Y_AMD"/>
+ <enum name="GL_VIRTUAL_PAGE_SIZE_Z_AMD"/>
+ <enum name="GL_MAX_SPARSE_TEXTURE_SIZE_AMD"/>
+ <enum name="GL_MAX_SPARSE_3D_TEXTURE_SIZE_AMD"/>
+ <enum name="GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS"/>
+ <enum name="GL_MIN_SPARSE_LEVEL_AMD"/>
+ <enum name="GL_MIN_LOD_WARNING_AMD"/>
+ <enum name="GL_TEXTURE_STORAGE_SPARSE_BIT_AMD"/>
+ <command name="glTexStorageSparseAMD"/>
+ <command name="glTextureStorageSparseAMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_stencil_operation_extended" supported="gl">
+ <require>
+ <enum name="GL_SET_AMD"/>
+ <enum name="GL_REPLACE_VALUE_AMD"/>
+ <enum name="GL_STENCIL_OP_VALUE_AMD"/>
+ <enum name="GL_STENCIL_BACK_OP_VALUE_AMD"/>
+ <command name="glStencilOpValueAMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_texture_texture4" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_AMD_transform_feedback3_lines_triangles" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_AMD_vertex_shader_layer" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_AMD_vertex_shader_tessellator" supported="gl">
+ <require>
+ <enum name="GL_SAMPLER_BUFFER_AMD"/>
+ <enum name="GL_INT_SAMPLER_BUFFER_AMD"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD"/>
+ <enum name="GL_TESSELLATION_MODE_AMD"/>
+ <enum name="GL_TESSELLATION_FACTOR_AMD"/>
+ <enum name="GL_DISCRETE_AMD"/>
+ <enum name="GL_CONTINUOUS_AMD"/>
+ <command name="glTessellationFactorAMD"/>
+ <command name="glTessellationModeAMD"/>
+ </require>
+ </extension>
+ <extension name="GL_AMD_vertex_shader_viewport_index" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ANGLE_depth_texture" supported="gles2">
+ <require>
+ <enum name="GL_DEPTH_COMPONENT"/>
+ <enum name="GL_DEPTH_STENCIL_OES"/>
+ <enum name="GL_UNSIGNED_SHORT"/>
+ <enum name="GL_UNSIGNED_INT"/>
+ <enum name="GL_UNSIGNED_INT_24_8_OES"/>
+ <enum name="GL_DEPTH_COMPONENT16"/>
+ <enum name="GL_DEPTH_COMPONENT32_OES"/>
+ <enum name="GL_DEPTH24_STENCIL8_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_ANGLE_framebuffer_blit" supported="gles2">
+ <require>
+ <enum name="GL_READ_FRAMEBUFFER_ANGLE"/>
+ <enum name="GL_DRAW_FRAMEBUFFER_ANGLE"/>
+ <enum name="GL_DRAW_FRAMEBUFFER_BINDING_ANGLE"/>
+ <enum name="GL_READ_FRAMEBUFFER_BINDING_ANGLE"/>
+ <command name="glBlitFramebufferANGLE"/>
+ </require>
+ </extension>
+ <extension name="GL_ANGLE_framebuffer_multisample" supported="gles2">
+ <require>
+ <enum name="GL_RENDERBUFFER_SAMPLES_ANGLE"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE"/>
+ <enum name="GL_MAX_SAMPLES_ANGLE"/>
+ <command name="glRenderbufferStorageMultisampleANGLE"/>
+ </require>
+ </extension>
+ <extension name="GL_ANGLE_instanced_arrays" supported="gles2">
+ <require>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE"/>
+ <command name="glDrawArraysInstancedANGLE"/>
+ <command name="glDrawElementsInstancedANGLE"/>
+ <command name="glVertexAttribDivisorANGLE"/>
+ </require>
+ </extension>
+ <extension name="GL_ANGLE_pack_reverse_row_order" supported="gles2">
+ <require>
+ <enum name="GL_PACK_REVERSE_ROW_ORDER_ANGLE"/>
+ </require>
+ </extension>
+ <extension name="GL_ANGLE_program_binary" supported="gles2">
+ <require>
+ <enum name="GL_PROGRAM_BINARY_ANGLE"/>
+ </require>
+ </extension>
+ <extension name="GL_ANGLE_texture_compression_dxt3" supported="gles2">
+ <require>
+ <enum name="GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE"/>
+ </require>
+ </extension>
+ <extension name="GL_ANGLE_texture_compression_dxt5" supported="gles2">
+ <require>
+ <enum name="GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE"/>
+ </require>
+ </extension>
+ <extension name="GL_ANGLE_texture_usage" supported="gles2">
+ <require>
+ <enum name="GL_TEXTURE_USAGE_ANGLE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_ANGLE"/>
+ </require>
+ </extension>
+ <extension name="GL_ANGLE_translated_shader_source" supported="gles2">
+ <require>
+ <enum name="GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE"/>
+ <command name="glGetTranslatedShaderSourceANGLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_aux_depth_stencil" supported="gl">
+ <require>
+ <enum name="GL_AUX_DEPTH_STENCIL_APPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_client_storage" supported="gl">
+ <require>
+ <enum name="GL_UNPACK_CLIENT_STORAGE_APPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_copy_texture_levels" supported="gles1|gles2">
+ <require>
+ <command name="glCopyTextureLevelsAPPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_element_array" supported="gl">
+ <require>
+ <enum name="GL_ELEMENT_ARRAY_APPLE"/>
+ <enum name="GL_ELEMENT_ARRAY_TYPE_APPLE"/>
+ <enum name="GL_ELEMENT_ARRAY_POINTER_APPLE"/>
+ <command name="glElementPointerAPPLE"/>
+ <command name="glDrawElementArrayAPPLE"/>
+ <command name="glDrawRangeElementArrayAPPLE"/>
+ <command name="glMultiDrawElementArrayAPPLE"/>
+ <command name="glMultiDrawRangeElementArrayAPPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_fence" supported="gl">
+ <require>
+ <enum name="GL_DRAW_PIXELS_APPLE"/>
+ <enum name="GL_FENCE_APPLE"/>
+ <command name="glGenFencesAPPLE"/>
+ <command name="glDeleteFencesAPPLE"/>
+ <command name="glSetFenceAPPLE"/>
+ <command name="glIsFenceAPPLE"/>
+ <command name="glTestFenceAPPLE"/>
+ <command name="glFinishFenceAPPLE"/>
+ <command name="glTestObjectAPPLE"/>
+ <command name="glFinishObjectAPPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_float_pixels" supported="gl">
+ <require>
+ <enum name="GL_HALF_APPLE"/>
+ <enum name="GL_RGBA_FLOAT32_APPLE"/>
+ <enum name="GL_RGB_FLOAT32_APPLE"/>
+ <enum name="GL_ALPHA_FLOAT32_APPLE"/>
+ <enum name="GL_INTENSITY_FLOAT32_APPLE"/>
+ <enum name="GL_LUMINANCE_FLOAT32_APPLE"/>
+ <enum name="GL_LUMINANCE_ALPHA_FLOAT32_APPLE"/>
+ <enum name="GL_RGBA_FLOAT16_APPLE"/>
+ <enum name="GL_RGB_FLOAT16_APPLE"/>
+ <enum name="GL_ALPHA_FLOAT16_APPLE"/>
+ <enum name="GL_INTENSITY_FLOAT16_APPLE"/>
+ <enum name="GL_LUMINANCE_FLOAT16_APPLE"/>
+ <enum name="GL_LUMINANCE_ALPHA_FLOAT16_APPLE"/>
+ <enum name="GL_COLOR_FLOAT_APPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_flush_buffer_range" supported="gl">
+ <require>
+ <enum name="GL_BUFFER_SERIALIZED_MODIFY_APPLE"/>
+ <enum name="GL_BUFFER_FLUSHING_UNMAP_APPLE"/>
+ <command name="glBufferParameteriAPPLE"/>
+ <command name="glFlushMappedBufferRangeAPPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_framebuffer_multisample" supported="gles1|gles2">
+ <require>
+ <enum name="GL_RENDERBUFFER_SAMPLES_APPLE"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE"/>
+ <enum name="GL_MAX_SAMPLES_APPLE"/>
+ <enum name="GL_READ_FRAMEBUFFER_APPLE"/>
+ <enum name="GL_DRAW_FRAMEBUFFER_APPLE"/>
+ <enum name="GL_DRAW_FRAMEBUFFER_BINDING_APPLE"/>
+ <enum name="GL_READ_FRAMEBUFFER_BINDING_APPLE"/>
+ <command name="glRenderbufferStorageMultisampleAPPLE"/>
+ <command name="glResolveMultisampleFramebufferAPPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_object_purgeable" supported="gl">
+ <require>
+ <enum name="GL_BUFFER_OBJECT_APPLE"/>
+ <enum name="GL_RELEASED_APPLE"/>
+ <enum name="GL_VOLATILE_APPLE"/>
+ <enum name="GL_RETAINED_APPLE"/>
+ <enum name="GL_UNDEFINED_APPLE"/>
+ <enum name="GL_PURGEABLE_APPLE"/>
+ <command name="glObjectPurgeableAPPLE"/>
+ <command name="glObjectUnpurgeableAPPLE"/>
+ <command name="glGetObjectParameterivAPPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_rgb_422" supported="gl|gles2">
+ <require>
+ <enum name="GL_RGB_422_APPLE"/>
+ <enum name="GL_UNSIGNED_SHORT_8_8_APPLE"/>
+ <enum name="GL_UNSIGNED_SHORT_8_8_REV_APPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_row_bytes" supported="gl">
+ <require>
+ <enum name="GL_PACK_ROW_BYTES_APPLE"/>
+ <enum name="GL_UNPACK_ROW_BYTES_APPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_specular_vector" supported="gl">
+ <require>
+ <enum name="GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_sync" supported="gles1|gles2">
+ <require>
+ <enum name="GL_SYNC_OBJECT_APPLE"/>
+ <enum name="GL_MAX_SERVER_WAIT_TIMEOUT_APPLE"/>
+ <enum name="GL_OBJECT_TYPE_APPLE"/>
+ <enum name="GL_SYNC_CONDITION_APPLE"/>
+ <enum name="GL_SYNC_STATUS_APPLE"/>
+ <enum name="GL_SYNC_FLAGS_APPLE"/>
+ <enum name="GL_SYNC_FENCE_APPLE"/>
+ <enum name="GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE"/>
+ <enum name="GL_UNSIGNALED_APPLE"/>
+ <enum name="GL_SIGNALED_APPLE"/>
+ <enum name="GL_ALREADY_SIGNALED_APPLE"/>
+ <enum name="GL_TIMEOUT_EXPIRED_APPLE"/>
+ <enum name="GL_CONDITION_SATISFIED_APPLE"/>
+ <enum name="GL_WAIT_FAILED_APPLE"/>
+ <enum name="GL_SYNC_FLUSH_COMMANDS_BIT_APPLE"/>
+ <enum name="GL_TIMEOUT_IGNORED_APPLE"/>
+ <command name="glFenceSyncAPPLE"/>
+ <command name="glIsSyncAPPLE"/>
+ <command name="glDeleteSyncAPPLE"/>
+ <command name="glClientWaitSyncAPPLE"/>
+ <command name="glWaitSyncAPPLE"/>
+ <command name="glGetInteger64vAPPLE"/>
+ <command name="glGetSyncivAPPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_texture_2D_limited_npot" supported="gles1">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_texture_format_BGRA8888" supported="gles1|gles2">
+ <require>
+ <enum name="GL_BGRA_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_texture_max_level" supported="gles1|gles2">
+ <require>
+ <enum name="GL_TEXTURE_MAX_LEVEL_APPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_texture_range" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_RANGE_LENGTH_APPLE"/>
+ <enum name="GL_TEXTURE_RANGE_POINTER_APPLE"/>
+ <enum name="GL_TEXTURE_STORAGE_HINT_APPLE"/>
+ <enum name="GL_STORAGE_PRIVATE_APPLE"/>
+ <enum name="GL_STORAGE_CACHED_APPLE"/>
+ <enum name="GL_STORAGE_SHARED_APPLE"/>
+ <command name="glTextureRangeAPPLE"/>
+ <command name="glGetTexParameterPointervAPPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_transform_hint" supported="gl">
+ <require>
+ <enum name="GL_TRANSFORM_HINT_APPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_vertex_array_object" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_ARRAY_BINDING_APPLE"/>
+ <command name="glBindVertexArrayAPPLE"/>
+ <command name="glDeleteVertexArraysAPPLE"/>
+ <command name="glGenVertexArraysAPPLE"/>
+ <command name="glIsVertexArrayAPPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_vertex_array_range" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_ARRAY_RANGE_APPLE"/>
+ <enum name="GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE"/>
+ <enum name="GL_VERTEX_ARRAY_STORAGE_HINT_APPLE"/>
+ <enum name="GL_VERTEX_ARRAY_RANGE_POINTER_APPLE"/>
+ <enum name="GL_STORAGE_CLIENT_APPLE"/>
+ <enum name="GL_STORAGE_CACHED_APPLE"/>
+ <enum name="GL_STORAGE_SHARED_APPLE"/>
+ <command name="glVertexArrayRangeAPPLE"/>
+ <command name="glFlushVertexArrayRangeAPPLE"/>
+ <command name="glVertexArrayParameteriAPPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_vertex_program_evaluators" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_ATTRIB_MAP1_APPLE"/>
+ <enum name="GL_VERTEX_ATTRIB_MAP2_APPLE"/>
+ <enum name="GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE"/>
+ <enum name="GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE"/>
+ <enum name="GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE"/>
+ <enum name="GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE"/>
+ <enum name="GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE"/>
+ <enum name="GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE"/>
+ <enum name="GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE"/>
+ <enum name="GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE"/>
+ <command name="glEnableVertexAttribAPPLE"/>
+ <command name="glDisableVertexAttribAPPLE"/>
+ <command name="glIsVertexAttribEnabledAPPLE"/>
+ <command name="glMapVertexAttrib1dAPPLE"/>
+ <command name="glMapVertexAttrib1fAPPLE"/>
+ <command name="glMapVertexAttrib2dAPPLE"/>
+ <command name="glMapVertexAttrib2fAPPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_APPLE_ycbcr_422" supported="gl">
+ <require>
+ <enum name="GL_YCBCR_422_APPLE"/>
+ <enum name="GL_UNSIGNED_SHORT_8_8_APPLE"/>
+ <enum name="GL_UNSIGNED_SHORT_8_8_REV_APPLE"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_ES2_compatibility" supported="gl|glcore">
+ <require>
+ <enum name="GL_FIXED"/>
+ <enum name="GL_IMPLEMENTATION_COLOR_READ_TYPE"/>
+ <enum name="GL_IMPLEMENTATION_COLOR_READ_FORMAT"/>
+ <enum name="GL_LOW_FLOAT"/>
+ <enum name="GL_MEDIUM_FLOAT"/>
+ <enum name="GL_HIGH_FLOAT"/>
+ <enum name="GL_LOW_INT"/>
+ <enum name="GL_MEDIUM_INT"/>
+ <enum name="GL_HIGH_INT"/>
+ <enum name="GL_SHADER_COMPILER"/>
+ <enum name="GL_SHADER_BINARY_FORMATS"/>
+ <enum name="GL_NUM_SHADER_BINARY_FORMATS"/>
+ <enum name="GL_MAX_VERTEX_UNIFORM_VECTORS"/>
+ <enum name="GL_MAX_VARYING_VECTORS"/>
+ <enum name="GL_MAX_FRAGMENT_UNIFORM_VECTORS"/>
+ <enum name="GL_RGB565"/>
+ <command name="glReleaseShaderCompiler"/>
+ <command name="glShaderBinary"/>
+ <command name="glGetShaderPrecisionFormat"/>
+ <command name="glDepthRangef"/>
+ <command name="glClearDepthf"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_ES3_compatibility" supported="gl|glcore">
+ <require>
+ <enum name="GL_COMPRESSED_RGB8_ETC2"/>
+ <enum name="GL_COMPRESSED_SRGB8_ETC2"/>
+ <enum name="GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2"/>
+ <enum name="GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2"/>
+ <enum name="GL_COMPRESSED_RGBA8_ETC2_EAC"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC"/>
+ <enum name="GL_COMPRESSED_R11_EAC"/>
+ <enum name="GL_COMPRESSED_SIGNED_R11_EAC"/>
+ <enum name="GL_COMPRESSED_RG11_EAC"/>
+ <enum name="GL_COMPRESSED_SIGNED_RG11_EAC"/>
+ <enum name="GL_PRIMITIVE_RESTART_FIXED_INDEX"/>
+ <enum name="GL_ANY_SAMPLES_PASSED_CONSERVATIVE"/>
+ <enum name="GL_MAX_ELEMENT_INDEX"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_arrays_of_arrays" supported="gl|glcore">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ARB_base_instance" supported="gl|glcore">
+ <require>
+ <command name="glDrawArraysInstancedBaseInstance"/>
+ <command name="glDrawElementsInstancedBaseInstance"/>
+ <command name="glDrawElementsInstancedBaseVertexBaseInstance"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_blend_func_extended" supported="gl|glcore">
+ <require>
+ <enum name="GL_SRC1_COLOR"/>
+ <enum name="GL_SRC1_ALPHA"/>
+ <enum name="GL_ONE_MINUS_SRC1_COLOR"/>
+ <enum name="GL_ONE_MINUS_SRC1_ALPHA"/>
+ <enum name="GL_MAX_DUAL_SOURCE_DRAW_BUFFERS"/>
+ <command name="glBindFragDataLocationIndexed"/>
+ <command name="glGetFragDataIndex"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_cl_event" supported="gl|glcore">
+ <require>
+ <enum name="GL_SYNC_CL_EVENT_ARB"/>
+ <enum name="GL_SYNC_CL_EVENT_COMPLETE_ARB"/>
+ <command name="glCreateSyncFromCLeventARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_clear_buffer_object" supported="gl|glcore">
+ <require>
+ <command name="glClearBufferData"/>
+ <command name="glClearBufferSubData"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_color_buffer_float" supported="gl">
+ <require>
+ <enum name="GL_RGBA_FLOAT_MODE_ARB"/>
+ <enum name="GL_CLAMP_VERTEX_COLOR_ARB"/>
+ <enum name="GL_CLAMP_FRAGMENT_COLOR_ARB"/>
+ <enum name="GL_CLAMP_READ_COLOR_ARB"/>
+ <enum name="GL_FIXED_ONLY_ARB"/>
+ <command name="glClampColorARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_compatibility" supported="gl">
+ <require comment="Defines features from OpenGL 3.0 that were removed in OpenGL 3.1 - not enumerated here yet">
+ </require>
+ </extension>
+ <extension name="GL_ARB_compressed_texture_pixel_storage" supported="gl|glcore">
+ <require>
+ <enum name="GL_UNPACK_COMPRESSED_BLOCK_WIDTH"/>
+ <enum name="GL_UNPACK_COMPRESSED_BLOCK_HEIGHT"/>
+ <enum name="GL_UNPACK_COMPRESSED_BLOCK_DEPTH"/>
+ <enum name="GL_UNPACK_COMPRESSED_BLOCK_SIZE"/>
+ <enum name="GL_PACK_COMPRESSED_BLOCK_WIDTH"/>
+ <enum name="GL_PACK_COMPRESSED_BLOCK_HEIGHT"/>
+ <enum name="GL_PACK_COMPRESSED_BLOCK_DEPTH"/>
+ <enum name="GL_PACK_COMPRESSED_BLOCK_SIZE"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_compute_shader" supported="gl|glcore">
+ <require>
+ <enum name="GL_COMPUTE_SHADER"/>
+ <enum name="GL_MAX_COMPUTE_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS"/>
+ <enum name="GL_MAX_COMPUTE_IMAGE_UNIFORMS"/>
+ <enum name="GL_MAX_COMPUTE_SHARED_MEMORY_SIZE"/>
+ <enum name="GL_MAX_COMPUTE_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_COMPUTE_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_COMPUTE_LOCAL_INVOCATIONS"/>
+ <enum name="GL_MAX_COMPUTE_WORK_GROUP_COUNT"/>
+ <enum name="GL_MAX_COMPUTE_WORK_GROUP_SIZE"/>
+ <enum name="GL_COMPUTE_LOCAL_WORK_SIZE"/>
+ <enum name="GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER"/>
+ <enum name="GL_DISPATCH_INDIRECT_BUFFER"/>
+ <enum name="GL_DISPATCH_INDIRECT_BUFFER_BINDING"/>
+ <enum name="GL_COMPUTE_SHADER_BIT"/>
+ <command name="glDispatchCompute"/>
+ <command name="glDispatchComputeIndirect"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_conservative_depth" supported="gl|glcore">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ARB_copy_buffer" supported="gl|glcore">
+ <require>
+ <enum name="GL_COPY_READ_BUFFER_BINDING"/>
+ <enum name="GL_COPY_READ_BUFFER"/>
+ <enum name="GL_COPY_WRITE_BUFFER_BINDING"/>
+ <enum name="GL_COPY_WRITE_BUFFER"/>
+ <command name="glCopyBufferSubData"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_copy_image" supported="gl|glcore">
+ <require>
+ <command name="glCopyImageSubData"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_debug_output" supported="gl|glcore">
+ <require>
+ <enum name="GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB"/>
+ <enum name="GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB"/>
+ <enum name="GL_DEBUG_CALLBACK_FUNCTION_ARB"/>
+ <enum name="GL_DEBUG_CALLBACK_USER_PARAM_ARB"/>
+ <enum name="GL_DEBUG_SOURCE_API_ARB"/>
+ <enum name="GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB"/>
+ <enum name="GL_DEBUG_SOURCE_SHADER_COMPILER_ARB"/>
+ <enum name="GL_DEBUG_SOURCE_THIRD_PARTY_ARB"/>
+ <enum name="GL_DEBUG_SOURCE_APPLICATION_ARB"/>
+ <enum name="GL_DEBUG_SOURCE_OTHER_ARB"/>
+ <enum name="GL_DEBUG_TYPE_ERROR_ARB"/>
+ <enum name="GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB"/>
+ <enum name="GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB"/>
+ <enum name="GL_DEBUG_TYPE_PORTABILITY_ARB"/>
+ <enum name="GL_DEBUG_TYPE_PERFORMANCE_ARB"/>
+ <enum name="GL_DEBUG_TYPE_OTHER_ARB"/>
+ <enum name="GL_MAX_DEBUG_MESSAGE_LENGTH_ARB"/>
+ <enum name="GL_MAX_DEBUG_LOGGED_MESSAGES_ARB"/>
+ <enum name="GL_DEBUG_LOGGED_MESSAGES_ARB"/>
+ <enum name="GL_DEBUG_SEVERITY_HIGH_ARB"/>
+ <enum name="GL_DEBUG_SEVERITY_MEDIUM_ARB"/>
+ <enum name="GL_DEBUG_SEVERITY_LOW_ARB"/>
+ <command name="glDebugMessageControlARB"/>
+ <command name="glDebugMessageInsertARB"/>
+ <command name="glDebugMessageCallbackARB"/>
+ <command name="glGetDebugMessageLogARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_depth_buffer_float" supported="gl|glcore">
+ <require>
+ <enum name="GL_DEPTH_COMPONENT32F"/>
+ <enum name="GL_DEPTH32F_STENCIL8"/>
+ <enum name="GL_FLOAT_32_UNSIGNED_INT_24_8_REV"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_depth_clamp" supported="gl|glcore">
+ <require>
+ <enum name="GL_DEPTH_CLAMP"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_depth_texture" supported="gl">
+ <require>
+ <enum name="GL_DEPTH_COMPONENT16_ARB"/>
+ <enum name="GL_DEPTH_COMPONENT24_ARB"/>
+ <enum name="GL_DEPTH_COMPONENT32_ARB"/>
+ <enum name="GL_TEXTURE_DEPTH_SIZE_ARB"/>
+ <enum name="GL_DEPTH_TEXTURE_MODE_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_draw_buffers" supported="gl">
+ <require>
+ <enum name="GL_MAX_DRAW_BUFFERS_ARB"/>
+ <enum name="GL_DRAW_BUFFER0_ARB"/>
+ <enum name="GL_DRAW_BUFFER1_ARB"/>
+ <enum name="GL_DRAW_BUFFER2_ARB"/>
+ <enum name="GL_DRAW_BUFFER3_ARB"/>
+ <enum name="GL_DRAW_BUFFER4_ARB"/>
+ <enum name="GL_DRAW_BUFFER5_ARB"/>
+ <enum name="GL_DRAW_BUFFER6_ARB"/>
+ <enum name="GL_DRAW_BUFFER7_ARB"/>
+ <enum name="GL_DRAW_BUFFER8_ARB"/>
+ <enum name="GL_DRAW_BUFFER9_ARB"/>
+ <enum name="GL_DRAW_BUFFER10_ARB"/>
+ <enum name="GL_DRAW_BUFFER11_ARB"/>
+ <enum name="GL_DRAW_BUFFER12_ARB"/>
+ <enum name="GL_DRAW_BUFFER13_ARB"/>
+ <enum name="GL_DRAW_BUFFER14_ARB"/>
+ <enum name="GL_DRAW_BUFFER15_ARB"/>
+ <command name="glDrawBuffersARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_draw_buffers_blend" supported="gl|glcore">
+ <require>
+ <command name="glBlendEquationiARB"/>
+ <command name="glBlendEquationSeparateiARB"/>
+ <command name="glBlendFunciARB"/>
+ <command name="glBlendFuncSeparateiARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_draw_elements_base_vertex" supported="gl|glcore">
+ <require>
+ <command name="glDrawElementsBaseVertex"/>
+ <command name="glDrawRangeElementsBaseVertex"/>
+ <command name="glDrawElementsInstancedBaseVertex"/>
+ <command name="glMultiDrawElementsBaseVertex"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_draw_indirect" supported="gl|glcore">
+ <require>
+ <enum name="GL_DRAW_INDIRECT_BUFFER"/>
+ <enum name="GL_DRAW_INDIRECT_BUFFER_BINDING"/>
+ <command name="glDrawArraysIndirect"/>
+ <command name="glDrawElementsIndirect"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_draw_instanced" supported="gl">
+ <require>
+ <command name="glDrawArraysInstancedARB"/>
+ <command name="glDrawElementsInstancedARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_explicit_attrib_location" supported="gl|glcore">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ARB_explicit_uniform_location" supported="gl|glcore">
+ <require>
+ <enum name="GL_MAX_UNIFORM_LOCATIONS"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_fragment_coord_conventions" supported="gl|glcore">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ARB_fragment_layer_viewport" supported="gl|glcore">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ARB_fragment_program" supported="gl">
+ <require>
+ <enum name="GL_FRAGMENT_PROGRAM_ARB"/>
+ <enum name="GL_PROGRAM_FORMAT_ASCII_ARB"/>
+ <enum name="GL_PROGRAM_LENGTH_ARB"/>
+ <enum name="GL_PROGRAM_FORMAT_ARB"/>
+ <enum name="GL_PROGRAM_BINDING_ARB"/>
+ <enum name="GL_PROGRAM_INSTRUCTIONS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_INSTRUCTIONS_ARB"/>
+ <enum name="GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB"/>
+ <enum name="GL_PROGRAM_TEMPORARIES_ARB"/>
+ <enum name="GL_MAX_PROGRAM_TEMPORARIES_ARB"/>
+ <enum name="GL_PROGRAM_NATIVE_TEMPORARIES_ARB"/>
+ <enum name="GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB"/>
+ <enum name="GL_PROGRAM_PARAMETERS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_PARAMETERS_ARB"/>
+ <enum name="GL_PROGRAM_NATIVE_PARAMETERS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB"/>
+ <enum name="GL_PROGRAM_ATTRIBS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_ATTRIBS_ARB"/>
+ <enum name="GL_PROGRAM_NATIVE_ATTRIBS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_ENV_PARAMETERS_ARB"/>
+ <enum name="GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB"/>
+ <enum name="GL_PROGRAM_ALU_INSTRUCTIONS_ARB"/>
+ <enum name="GL_PROGRAM_TEX_INSTRUCTIONS_ARB"/>
+ <enum name="GL_PROGRAM_TEX_INDIRECTIONS_ARB"/>
+ <enum name="GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB"/>
+ <enum name="GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB"/>
+ <enum name="GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB"/>
+ <enum name="GL_PROGRAM_STRING_ARB"/>
+ <enum name="GL_PROGRAM_ERROR_POSITION_ARB"/>
+ <enum name="GL_CURRENT_MATRIX_ARB"/>
+ <enum name="GL_TRANSPOSE_CURRENT_MATRIX_ARB"/>
+ <enum name="GL_CURRENT_MATRIX_STACK_DEPTH_ARB"/>
+ <enum name="GL_MAX_PROGRAM_MATRICES_ARB"/>
+ <enum name="GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB"/>
+ <enum name="GL_MAX_TEXTURE_COORDS_ARB"/>
+ <enum name="GL_MAX_TEXTURE_IMAGE_UNITS_ARB"/>
+ <enum name="GL_PROGRAM_ERROR_STRING_ARB"/>
+ <enum name="GL_MATRIX0_ARB"/>
+ <enum name="GL_MATRIX1_ARB"/>
+ <enum name="GL_MATRIX2_ARB"/>
+ <enum name="GL_MATRIX3_ARB"/>
+ <enum name="GL_MATRIX4_ARB"/>
+ <enum name="GL_MATRIX5_ARB"/>
+ <enum name="GL_MATRIX6_ARB"/>
+ <enum name="GL_MATRIX7_ARB"/>
+ <enum name="GL_MATRIX8_ARB"/>
+ <enum name="GL_MATRIX9_ARB"/>
+ <enum name="GL_MATRIX10_ARB"/>
+ <enum name="GL_MATRIX11_ARB"/>
+ <enum name="GL_MATRIX12_ARB"/>
+ <enum name="GL_MATRIX13_ARB"/>
+ <enum name="GL_MATRIX14_ARB"/>
+ <enum name="GL_MATRIX15_ARB"/>
+ <enum name="GL_MATRIX16_ARB"/>
+ <enum name="GL_MATRIX17_ARB"/>
+ <enum name="GL_MATRIX18_ARB"/>
+ <enum name="GL_MATRIX19_ARB"/>
+ <enum name="GL_MATRIX20_ARB"/>
+ <enum name="GL_MATRIX21_ARB"/>
+ <enum name="GL_MATRIX22_ARB"/>
+ <enum name="GL_MATRIX23_ARB"/>
+ <enum name="GL_MATRIX24_ARB"/>
+ <enum name="GL_MATRIX25_ARB"/>
+ <enum name="GL_MATRIX26_ARB"/>
+ <enum name="GL_MATRIX27_ARB"/>
+ <enum name="GL_MATRIX28_ARB"/>
+ <enum name="GL_MATRIX29_ARB"/>
+ <enum name="GL_MATRIX30_ARB"/>
+ <enum name="GL_MATRIX31_ARB"/>
+ </require>
+ <require comment="Shared with ARB_vertex_program">
+ <command name="glProgramStringARB"/>
+ <command name="glBindProgramARB"/>
+ <command name="glDeleteProgramsARB"/>
+ <command name="glGenProgramsARB"/>
+ <command name="glProgramEnvParameter4dARB"/>
+ <command name="glProgramEnvParameter4dvARB"/>
+ <command name="glProgramEnvParameter4fARB"/>
+ <command name="glProgramEnvParameter4fvARB"/>
+ <command name="glProgramLocalParameter4dARB"/>
+ <command name="glProgramLocalParameter4dvARB"/>
+ <command name="glProgramLocalParameter4fARB"/>
+ <command name="glProgramLocalParameter4fvARB"/>
+ <command name="glGetProgramEnvParameterdvARB"/>
+ <command name="glGetProgramEnvParameterfvARB"/>
+ <command name="glGetProgramLocalParameterdvARB"/>
+ <command name="glGetProgramLocalParameterfvARB"/>
+ <command name="glGetProgramivARB"/>
+ <command name="glGetProgramStringARB"/>
+ <command name="glIsProgramARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_fragment_program_shadow" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ARB_fragment_shader" supported="gl">
+ <require>
+ <enum name="GL_FRAGMENT_SHADER_ARB"/>
+ <enum name="GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB"/>
+ <enum name="GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_framebuffer_no_attachments" supported="gl|glcore">
+ <require>
+ <enum name="GL_FRAMEBUFFER_DEFAULT_WIDTH"/>
+ <enum name="GL_FRAMEBUFFER_DEFAULT_HEIGHT"/>
+ <enum name="GL_FRAMEBUFFER_DEFAULT_LAYERS"/>
+ <enum name="GL_FRAMEBUFFER_DEFAULT_SAMPLES"/>
+ <enum name="GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS"/>
+ <enum name="GL_MAX_FRAMEBUFFER_WIDTH"/>
+ <enum name="GL_MAX_FRAMEBUFFER_HEIGHT"/>
+ <enum name="GL_MAX_FRAMEBUFFER_LAYERS"/>
+ <enum name="GL_MAX_FRAMEBUFFER_SAMPLES"/>
+ <command name="glFramebufferParameteri"/>
+ <command name="glGetFramebufferParameteriv"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_framebuffer_object" supported="gl|glcore">
+ <require>
+ <enum name="GL_INVALID_FRAMEBUFFER_OPERATION"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_DEFAULT"/>
+ <enum name="GL_FRAMEBUFFER_UNDEFINED"/>
+ <enum name="GL_DEPTH_STENCIL_ATTACHMENT"/>
+ <enum name="GL_MAX_RENDERBUFFER_SIZE"/>
+ <enum name="GL_DEPTH_STENCIL"/>
+ <enum name="GL_UNSIGNED_INT_24_8"/>
+ <enum name="GL_DEPTH24_STENCIL8"/>
+ <enum name="GL_TEXTURE_STENCIL_SIZE"/>
+ <enum name="GL_TEXTURE_RED_TYPE"/>
+ <enum name="GL_TEXTURE_GREEN_TYPE"/>
+ <enum name="GL_TEXTURE_BLUE_TYPE"/>
+ <enum name="GL_TEXTURE_ALPHA_TYPE"/>
+ <enum name="GL_TEXTURE_DEPTH_TYPE"/>
+ <enum name="GL_UNSIGNED_NORMALIZED"/>
+ <enum name="GL_FRAMEBUFFER_BINDING"/>
+ <enum name="GL_DRAW_FRAMEBUFFER_BINDING"/>
+ <enum name="GL_RENDERBUFFER_BINDING"/>
+ <enum name="GL_READ_FRAMEBUFFER"/>
+ <enum name="GL_DRAW_FRAMEBUFFER"/>
+ <enum name="GL_READ_FRAMEBUFFER_BINDING"/>
+ <enum name="GL_RENDERBUFFER_SAMPLES"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER"/>
+ <enum name="GL_FRAMEBUFFER_COMPLETE"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER"/>
+ <enum name="GL_FRAMEBUFFER_UNSUPPORTED"/>
+ <enum name="GL_MAX_COLOR_ATTACHMENTS"/>
+ <enum name="GL_COLOR_ATTACHMENT0"/>
+ <enum name="GL_COLOR_ATTACHMENT1"/>
+ <enum name="GL_COLOR_ATTACHMENT2"/>
+ <enum name="GL_COLOR_ATTACHMENT3"/>
+ <enum name="GL_COLOR_ATTACHMENT4"/>
+ <enum name="GL_COLOR_ATTACHMENT5"/>
+ <enum name="GL_COLOR_ATTACHMENT6"/>
+ <enum name="GL_COLOR_ATTACHMENT7"/>
+ <enum name="GL_COLOR_ATTACHMENT8"/>
+ <enum name="GL_COLOR_ATTACHMENT9"/>
+ <enum name="GL_COLOR_ATTACHMENT10"/>
+ <enum name="GL_COLOR_ATTACHMENT11"/>
+ <enum name="GL_COLOR_ATTACHMENT12"/>
+ <enum name="GL_COLOR_ATTACHMENT13"/>
+ <enum name="GL_COLOR_ATTACHMENT14"/>
+ <enum name="GL_COLOR_ATTACHMENT15"/>
+ <enum name="GL_DEPTH_ATTACHMENT"/>
+ <enum name="GL_STENCIL_ATTACHMENT"/>
+ <enum name="GL_FRAMEBUFFER"/>
+ <enum name="GL_RENDERBUFFER"/>
+ <enum name="GL_RENDERBUFFER_WIDTH"/>
+ <enum name="GL_RENDERBUFFER_HEIGHT"/>
+ <enum name="GL_RENDERBUFFER_INTERNAL_FORMAT"/>
+ <enum name="GL_STENCIL_INDEX1"/>
+ <enum name="GL_STENCIL_INDEX4"/>
+ <enum name="GL_STENCIL_INDEX8"/>
+ <enum name="GL_STENCIL_INDEX16"/>
+ <enum name="GL_RENDERBUFFER_RED_SIZE"/>
+ <enum name="GL_RENDERBUFFER_GREEN_SIZE"/>
+ <enum name="GL_RENDERBUFFER_BLUE_SIZE"/>
+ <enum name="GL_RENDERBUFFER_ALPHA_SIZE"/>
+ <enum name="GL_RENDERBUFFER_DEPTH_SIZE"/>
+ <enum name="GL_RENDERBUFFER_STENCIL_SIZE"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE"/>
+ <enum name="GL_MAX_SAMPLES"/>
+ <command name="glIsRenderbuffer"/>
+ <command name="glBindRenderbuffer"/>
+ <command name="glDeleteRenderbuffers"/>
+ <command name="glGenRenderbuffers"/>
+ <command name="glRenderbufferStorage"/>
+ <command name="glGetRenderbufferParameteriv"/>
+ <command name="glIsFramebuffer"/>
+ <command name="glBindFramebuffer"/>
+ <command name="glDeleteFramebuffers"/>
+ <command name="glGenFramebuffers"/>
+ <command name="glCheckFramebufferStatus"/>
+ <command name="glFramebufferTexture1D"/>
+ <command name="glFramebufferTexture2D"/>
+ <command name="glFramebufferTexture3D"/>
+ <command name="glFramebufferRenderbuffer"/>
+ <command name="glGetFramebufferAttachmentParameteriv"/>
+ <command name="glGenerateMipmap"/>
+ <command name="glBlitFramebuffer"/>
+ <command name="glRenderbufferStorageMultisample"/>
+ <command name="glFramebufferTextureLayer"/>
+ </require>
+ <require api="gl" profile="compatibility">
+ <enum name="GL_INDEX"/>
+ <enum name="GL_TEXTURE_LUMINANCE_TYPE"/>
+ <enum name="GL_TEXTURE_INTENSITY_TYPE"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_framebuffer_sRGB" supported="gl|glcore">
+ <require>
+ <enum name="GL_FRAMEBUFFER_SRGB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_geometry_shader4" supported="gl">
+ <require>
+ <enum name="GL_LINES_ADJACENCY_ARB"/>
+ <enum name="GL_LINE_STRIP_ADJACENCY_ARB"/>
+ <enum name="GL_TRIANGLES_ADJACENCY_ARB"/>
+ <enum name="GL_TRIANGLE_STRIP_ADJACENCY_ARB"/>
+ <enum name="GL_PROGRAM_POINT_SIZE_ARB"/>
+ <enum name="GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB"/>
+ <enum name="GL_GEOMETRY_SHADER_ARB"/>
+ <enum name="GL_GEOMETRY_VERTICES_OUT_ARB"/>
+ <enum name="GL_GEOMETRY_INPUT_TYPE_ARB"/>
+ <enum name="GL_GEOMETRY_OUTPUT_TYPE_ARB"/>
+ <enum name="GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB"/>
+ <enum name="GL_MAX_VERTEX_VARYING_COMPONENTS_ARB"/>
+ <enum name="GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB"/>
+ <enum name="GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB"/>
+ <enum name="GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB"/>
+ <enum name="GL_MAX_VARYING_COMPONENTS"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER"/>
+ <command name="glProgramParameteriARB"/>
+ <command name="glFramebufferTextureARB"/>
+ <command name="glFramebufferTextureLayerARB"/>
+ <command name="glFramebufferTextureFaceARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_get_program_binary" supported="gl|glcore">
+ <require>
+ <enum name="GL_PROGRAM_BINARY_RETRIEVABLE_HINT"/>
+ <enum name="GL_PROGRAM_BINARY_LENGTH"/>
+ <enum name="GL_NUM_PROGRAM_BINARY_FORMATS"/>
+ <enum name="GL_PROGRAM_BINARY_FORMATS"/>
+ <command name="glGetProgramBinary"/>
+ <command name="glProgramBinary"/>
+ <command name="glProgramParameteri"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_gpu_shader5" supported="gl|glcore">
+ <require>
+ <enum name="GL_GEOMETRY_SHADER_INVOCATIONS"/>
+ <enum name="GL_MAX_GEOMETRY_SHADER_INVOCATIONS"/>
+ <enum name="GL_MIN_FRAGMENT_INTERPOLATION_OFFSET"/>
+ <enum name="GL_MAX_FRAGMENT_INTERPOLATION_OFFSET"/>
+ <enum name="GL_FRAGMENT_INTERPOLATION_OFFSET_BITS"/>
+ <enum name="GL_MAX_VERTEX_STREAMS"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_gpu_shader_fp64" supported="gl|glcore">
+ <require>
+ <enum name="GL_DOUBLE"/>
+ <enum name="GL_DOUBLE_VEC2"/>
+ <enum name="GL_DOUBLE_VEC3"/>
+ <enum name="GL_DOUBLE_VEC4"/>
+ <enum name="GL_DOUBLE_MAT2"/>
+ <enum name="GL_DOUBLE_MAT3"/>
+ <enum name="GL_DOUBLE_MAT4"/>
+ <enum name="GL_DOUBLE_MAT2x3"/>
+ <enum name="GL_DOUBLE_MAT2x4"/>
+ <enum name="GL_DOUBLE_MAT3x2"/>
+ <enum name="GL_DOUBLE_MAT3x4"/>
+ <enum name="GL_DOUBLE_MAT4x2"/>
+ <enum name="GL_DOUBLE_MAT4x3"/>
+ <command name="glUniform1d"/>
+ <command name="glUniform2d"/>
+ <command name="glUniform3d"/>
+ <command name="glUniform4d"/>
+ <command name="glUniform1dv"/>
+ <command name="glUniform2dv"/>
+ <command name="glUniform3dv"/>
+ <command name="glUniform4dv"/>
+ <command name="glUniformMatrix2dv"/>
+ <command name="glUniformMatrix3dv"/>
+ <command name="glUniformMatrix4dv"/>
+ <command name="glUniformMatrix2x3dv"/>
+ <command name="glUniformMatrix2x4dv"/>
+ <command name="glUniformMatrix3x2dv"/>
+ <command name="glUniformMatrix3x4dv"/>
+ <command name="glUniformMatrix4x2dv"/>
+ <command name="glUniformMatrix4x3dv"/>
+ <command name="glGetUniformdv"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_half_float_pixel" supported="gl">
+ <require>
+ <type name="GLhalfARB"/>
+ <enum name="GL_HALF_FLOAT_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_half_float_vertex" supported="gl|glcore">
+ <require>
+ <type name="GLhalf"/>
+ <enum name="GL_HALF_FLOAT"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_imaging" supported="gl|glcore" comment="Now treating ARB_imaging as an extension, not a GL API version">
+ <require>
+ <enum name="GL_CONSTANT_COLOR"/>
+ <enum name="GL_ONE_MINUS_CONSTANT_COLOR"/>
+ <enum name="GL_CONSTANT_ALPHA"/>
+ <enum name="GL_ONE_MINUS_CONSTANT_ALPHA"/>
+ <enum name="GL_BLEND_COLOR"/>
+ <enum name="GL_FUNC_ADD"/>
+ <enum name="GL_MIN"/>
+ <enum name="GL_MAX"/>
+ <enum name="GL_BLEND_EQUATION"/>
+ <enum name="GL_FUNC_SUBTRACT"/>
+ <enum name="GL_FUNC_REVERSE_SUBTRACT"/>
+ </require>
+ <require api="gl" profile="compatibility">
+ <enum name="GL_CONVOLUTION_1D"/>
+ <enum name="GL_CONVOLUTION_2D"/>
+ <enum name="GL_SEPARABLE_2D"/>
+ <enum name="GL_CONVOLUTION_BORDER_MODE"/>
+ <enum name="GL_CONVOLUTION_FILTER_SCALE"/>
+ <enum name="GL_CONVOLUTION_FILTER_BIAS"/>
+ <enum name="GL_REDUCE"/>
+ <enum name="GL_CONVOLUTION_FORMAT"/>
+ <enum name="GL_CONVOLUTION_WIDTH"/>
+ <enum name="GL_CONVOLUTION_HEIGHT"/>
+ <enum name="GL_MAX_CONVOLUTION_WIDTH"/>
+ <enum name="GL_MAX_CONVOLUTION_HEIGHT"/>
+ <enum name="GL_POST_CONVOLUTION_RED_SCALE"/>
+ <enum name="GL_POST_CONVOLUTION_GREEN_SCALE"/>
+ <enum name="GL_POST_CONVOLUTION_BLUE_SCALE"/>
+ <enum name="GL_POST_CONVOLUTION_ALPHA_SCALE"/>
+ <enum name="GL_POST_CONVOLUTION_RED_BIAS"/>
+ <enum name="GL_POST_CONVOLUTION_GREEN_BIAS"/>
+ <enum name="GL_POST_CONVOLUTION_BLUE_BIAS"/>
+ <enum name="GL_POST_CONVOLUTION_ALPHA_BIAS"/>
+ <enum name="GL_HISTOGRAM"/>
+ <enum name="GL_PROXY_HISTOGRAM"/>
+ <enum name="GL_HISTOGRAM_WIDTH"/>
+ <enum name="GL_HISTOGRAM_FORMAT"/>
+ <enum name="GL_HISTOGRAM_RED_SIZE"/>
+ <enum name="GL_HISTOGRAM_GREEN_SIZE"/>
+ <enum name="GL_HISTOGRAM_BLUE_SIZE"/>
+ <enum name="GL_HISTOGRAM_ALPHA_SIZE"/>
+ <enum name="GL_HISTOGRAM_LUMINANCE_SIZE"/>
+ <enum name="GL_HISTOGRAM_SINK"/>
+ <enum name="GL_MINMAX"/>
+ <enum name="GL_MINMAX_FORMAT"/>
+ <enum name="GL_MINMAX_SINK"/>
+ <enum name="GL_TABLE_TOO_LARGE"/>
+ <enum name="GL_COLOR_MATRIX"/>
+ <enum name="GL_COLOR_MATRIX_STACK_DEPTH"/>
+ <enum name="GL_MAX_COLOR_MATRIX_STACK_DEPTH"/>
+ <enum name="GL_POST_COLOR_MATRIX_RED_SCALE"/>
+ <enum name="GL_POST_COLOR_MATRIX_GREEN_SCALE"/>
+ <enum name="GL_POST_COLOR_MATRIX_BLUE_SCALE"/>
+ <enum name="GL_POST_COLOR_MATRIX_ALPHA_SCALE"/>
+ <enum name="GL_POST_COLOR_MATRIX_RED_BIAS"/>
+ <enum name="GL_POST_COLOR_MATRIX_GREEN_BIAS"/>
+ <enum name="GL_POST_COLOR_MATRIX_BLUE_BIAS"/>
+ <enum name="GL_POST_COLOR_MATRIX_ALPHA_BIAS"/>
+ <enum name="GL_COLOR_TABLE"/>
+ <enum name="GL_POST_CONVOLUTION_COLOR_TABLE"/>
+ <enum name="GL_POST_COLOR_MATRIX_COLOR_TABLE"/>
+ <enum name="GL_PROXY_COLOR_TABLE"/>
+ <enum name="GL_PROXY_POST_CONVOLUTION_COLOR_TABLE"/>
+ <enum name="GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE"/>
+ <enum name="GL_COLOR_TABLE_SCALE"/>
+ <enum name="GL_COLOR_TABLE_BIAS"/>
+ <enum name="GL_COLOR_TABLE_FORMAT"/>
+ <enum name="GL_COLOR_TABLE_WIDTH"/>
+ <enum name="GL_COLOR_TABLE_RED_SIZE"/>
+ <enum name="GL_COLOR_TABLE_GREEN_SIZE"/>
+ <enum name="GL_COLOR_TABLE_BLUE_SIZE"/>
+ <enum name="GL_COLOR_TABLE_ALPHA_SIZE"/>
+ <enum name="GL_COLOR_TABLE_LUMINANCE_SIZE"/>
+ <enum name="GL_COLOR_TABLE_INTENSITY_SIZE"/>
+ <enum name="GL_CONSTANT_BORDER"/>
+ <enum name="GL_REPLICATE_BORDER"/>
+ <enum name="GL_CONVOLUTION_BORDER_COLOR"/>
+ <command name="glColorTable"/>
+ <command name="glColorTableParameterfv"/>
+ <command name="glColorTableParameteriv"/>
+ <command name="glCopyColorTable"/>
+ <command name="glGetColorTable"/>
+ <command name="glGetColorTableParameterfv"/>
+ <command name="glGetColorTableParameteriv"/>
+ <command name="glColorSubTable"/>
+ <command name="glCopyColorSubTable"/>
+ <command name="glConvolutionFilter1D"/>
+ <command name="glConvolutionFilter2D"/>
+ <command name="glConvolutionParameterf"/>
+ <command name="glConvolutionParameterfv"/>
+ <command name="glConvolutionParameteri"/>
+ <command name="glConvolutionParameteriv"/>
+ <command name="glCopyConvolutionFilter1D"/>
+ <command name="glCopyConvolutionFilter2D"/>
+ <command name="glGetConvolutionFilter"/>
+ <command name="glGetConvolutionParameterfv"/>
+ <command name="glGetConvolutionParameteriv"/>
+ <command name="glGetSeparableFilter"/>
+ <command name="glSeparableFilter2D"/>
+ <command name="glGetHistogram"/>
+ <command name="glGetHistogramParameterfv"/>
+ <command name="glGetHistogramParameteriv"/>
+ <command name="glGetMinmax"/>
+ <command name="glGetMinmaxParameterfv"/>
+ <command name="glGetMinmaxParameteriv"/>
+ <command name="glHistogram"/>
+ <command name="glMinmax"/>
+ <command name="glResetHistogram"/>
+ <command name="glResetMinmax"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_instanced_arrays" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB"/>
+ <command name="glVertexAttribDivisorARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_internalformat_query" supported="gl|glcore">
+ <require>
+ <enum name="GL_NUM_SAMPLE_COUNTS"/>
+ <command name="glGetInternalformativ"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_internalformat_query2" supported="gl|glcore">
+ <require>
+ <enum name="GL_IMAGE_FORMAT_COMPATIBILITY_TYPE"/>
+ <enum name="GL_NUM_SAMPLE_COUNTS"/>
+ <enum name="GL_RENDERBUFFER"/>
+ <enum name="GL_SAMPLES"/>
+ <enum name="GL_TEXTURE_1D"/>
+ <enum name="GL_TEXTURE_1D_ARRAY"/>
+ <enum name="GL_TEXTURE_2D"/>
+ <enum name="GL_TEXTURE_2D_ARRAY"/>
+ <enum name="GL_TEXTURE_3D"/>
+ <enum name="GL_TEXTURE_CUBE_MAP"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_ARRAY"/>
+ <enum name="GL_TEXTURE_RECTANGLE"/>
+ <enum name="GL_TEXTURE_BUFFER"/>
+ <enum name="GL_TEXTURE_2D_MULTISAMPLE"/>
+ <enum name="GL_TEXTURE_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_TEXTURE_COMPRESSED"/>
+ <enum name="GL_INTERNALFORMAT_SUPPORTED"/>
+ <enum name="GL_INTERNALFORMAT_PREFERRED"/>
+ <enum name="GL_INTERNALFORMAT_RED_SIZE"/>
+ <enum name="GL_INTERNALFORMAT_GREEN_SIZE"/>
+ <enum name="GL_INTERNALFORMAT_BLUE_SIZE"/>
+ <enum name="GL_INTERNALFORMAT_ALPHA_SIZE"/>
+ <enum name="GL_INTERNALFORMAT_DEPTH_SIZE"/>
+ <enum name="GL_INTERNALFORMAT_STENCIL_SIZE"/>
+ <enum name="GL_INTERNALFORMAT_SHARED_SIZE"/>
+ <enum name="GL_INTERNALFORMAT_RED_TYPE"/>
+ <enum name="GL_INTERNALFORMAT_GREEN_TYPE"/>
+ <enum name="GL_INTERNALFORMAT_BLUE_TYPE"/>
+ <enum name="GL_INTERNALFORMAT_ALPHA_TYPE"/>
+ <enum name="GL_INTERNALFORMAT_DEPTH_TYPE"/>
+ <enum name="GL_INTERNALFORMAT_STENCIL_TYPE"/>
+ <enum name="GL_MAX_WIDTH"/>
+ <enum name="GL_MAX_HEIGHT"/>
+ <enum name="GL_MAX_DEPTH"/>
+ <enum name="GL_MAX_LAYERS"/>
+ <enum name="GL_MAX_COMBINED_DIMENSIONS"/>
+ <enum name="GL_COLOR_COMPONENTS"/>
+ <enum name="GL_DEPTH_COMPONENTS"/>
+ <enum name="GL_STENCIL_COMPONENTS"/>
+ <enum name="GL_COLOR_RENDERABLE"/>
+ <enum name="GL_DEPTH_RENDERABLE"/>
+ <enum name="GL_STENCIL_RENDERABLE"/>
+ <enum name="GL_FRAMEBUFFER_RENDERABLE"/>
+ <enum name="GL_FRAMEBUFFER_RENDERABLE_LAYERED"/>
+ <enum name="GL_FRAMEBUFFER_BLEND"/>
+ <enum name="GL_READ_PIXELS"/>
+ <enum name="GL_READ_PIXELS_FORMAT"/>
+ <enum name="GL_READ_PIXELS_TYPE"/>
+ <enum name="GL_TEXTURE_IMAGE_FORMAT"/>
+ <enum name="GL_TEXTURE_IMAGE_TYPE"/>
+ <enum name="GL_GET_TEXTURE_IMAGE_FORMAT"/>
+ <enum name="GL_GET_TEXTURE_IMAGE_TYPE"/>
+ <enum name="GL_MIPMAP"/>
+ <enum name="GL_MANUAL_GENERATE_MIPMAP"/>
+ <enum name="GL_AUTO_GENERATE_MIPMAP"/>
+ <enum name="GL_COLOR_ENCODING"/>
+ <enum name="GL_SRGB_READ"/>
+ <enum name="GL_SRGB_WRITE"/>
+ <enum name="GL_SRGB_DECODE_ARB"/>
+ <enum name="GL_FILTER"/>
+ <enum name="GL_VERTEX_TEXTURE"/>
+ <enum name="GL_TESS_CONTROL_TEXTURE"/>
+ <enum name="GL_TESS_EVALUATION_TEXTURE"/>
+ <enum name="GL_GEOMETRY_TEXTURE"/>
+ <enum name="GL_FRAGMENT_TEXTURE"/>
+ <enum name="GL_COMPUTE_TEXTURE"/>
+ <enum name="GL_TEXTURE_SHADOW"/>
+ <enum name="GL_TEXTURE_GATHER"/>
+ <enum name="GL_TEXTURE_GATHER_SHADOW"/>
+ <enum name="GL_SHADER_IMAGE_LOAD"/>
+ <enum name="GL_SHADER_IMAGE_STORE"/>
+ <enum name="GL_SHADER_IMAGE_ATOMIC"/>
+ <enum name="GL_IMAGE_TEXEL_SIZE"/>
+ <enum name="GL_IMAGE_COMPATIBILITY_CLASS"/>
+ <enum name="GL_IMAGE_PIXEL_FORMAT"/>
+ <enum name="GL_IMAGE_PIXEL_TYPE"/>
+ <enum name="GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST"/>
+ <enum name="GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST"/>
+ <enum name="GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE"/>
+ <enum name="GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE"/>
+ <enum name="GL_TEXTURE_COMPRESSED_BLOCK_WIDTH"/>
+ <enum name="GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT"/>
+ <enum name="GL_TEXTURE_COMPRESSED_BLOCK_SIZE"/>
+ <enum name="GL_CLEAR_BUFFER"/>
+ <enum name="GL_TEXTURE_VIEW"/>
+ <enum name="GL_VIEW_COMPATIBILITY_CLASS"/>
+ <enum name="GL_FULL_SUPPORT"/>
+ <enum name="GL_CAVEAT_SUPPORT"/>
+ <enum name="GL_IMAGE_CLASS_4_X_32"/>
+ <enum name="GL_IMAGE_CLASS_2_X_32"/>
+ <enum name="GL_IMAGE_CLASS_1_X_32"/>
+ <enum name="GL_IMAGE_CLASS_4_X_16"/>
+ <enum name="GL_IMAGE_CLASS_2_X_16"/>
+ <enum name="GL_IMAGE_CLASS_1_X_16"/>
+ <enum name="GL_IMAGE_CLASS_4_X_8"/>
+ <enum name="GL_IMAGE_CLASS_2_X_8"/>
+ <enum name="GL_IMAGE_CLASS_1_X_8"/>
+ <enum name="GL_IMAGE_CLASS_11_11_10"/>
+ <enum name="GL_IMAGE_CLASS_10_10_10_2"/>
+ <enum name="GL_VIEW_CLASS_128_BITS"/>
+ <enum name="GL_VIEW_CLASS_96_BITS"/>
+ <enum name="GL_VIEW_CLASS_64_BITS"/>
+ <enum name="GL_VIEW_CLASS_48_BITS"/>
+ <enum name="GL_VIEW_CLASS_32_BITS"/>
+ <enum name="GL_VIEW_CLASS_24_BITS"/>
+ <enum name="GL_VIEW_CLASS_16_BITS"/>
+ <enum name="GL_VIEW_CLASS_8_BITS"/>
+ <enum name="GL_VIEW_CLASS_S3TC_DXT1_RGB"/>
+ <enum name="GL_VIEW_CLASS_S3TC_DXT1_RGBA"/>
+ <enum name="GL_VIEW_CLASS_S3TC_DXT3_RGBA"/>
+ <enum name="GL_VIEW_CLASS_S3TC_DXT5_RGBA"/>
+ <enum name="GL_VIEW_CLASS_RGTC1_RED"/>
+ <enum name="GL_VIEW_CLASS_RGTC2_RG"/>
+ <enum name="GL_VIEW_CLASS_BPTC_UNORM"/>
+ <enum name="GL_VIEW_CLASS_BPTC_FLOAT"/>
+ <command name="glGetInternalformati64v"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_invalidate_subdata" supported="gl|glcore">
+ <require>
+ <command name="glInvalidateTexSubImage"/>
+ <command name="glInvalidateTexImage"/>
+ <command name="glInvalidateBufferSubData"/>
+ <command name="glInvalidateBufferData"/>
+ <command name="glInvalidateFramebuffer"/>
+ <command name="glInvalidateSubFramebuffer"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_map_buffer_alignment" supported="gl|glcore">
+ <require>
+ <enum name="GL_MIN_MAP_BUFFER_ALIGNMENT"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_map_buffer_range" supported="gl|glcore">
+ <require>
+ <enum name="GL_MAP_READ_BIT"/>
+ <enum name="GL_MAP_WRITE_BIT"/>
+ <enum name="GL_MAP_INVALIDATE_RANGE_BIT"/>
+ <enum name="GL_MAP_INVALIDATE_BUFFER_BIT"/>
+ <enum name="GL_MAP_FLUSH_EXPLICIT_BIT"/>
+ <enum name="GL_MAP_UNSYNCHRONIZED_BIT"/>
+ <command name="glMapBufferRange"/>
+ <command name="glFlushMappedBufferRange"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_matrix_palette" supported="gl">
+ <require>
+ <enum name="GL_MATRIX_PALETTE_ARB"/>
+ <enum name="GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB"/>
+ <enum name="GL_MAX_PALETTE_MATRICES_ARB"/>
+ <enum name="GL_CURRENT_PALETTE_MATRIX_ARB"/>
+ <enum name="GL_MATRIX_INDEX_ARRAY_ARB"/>
+ <enum name="GL_CURRENT_MATRIX_INDEX_ARB"/>
+ <enum name="GL_MATRIX_INDEX_ARRAY_SIZE_ARB"/>
+ <enum name="GL_MATRIX_INDEX_ARRAY_TYPE_ARB"/>
+ <enum name="GL_MATRIX_INDEX_ARRAY_STRIDE_ARB"/>
+ <enum name="GL_MATRIX_INDEX_ARRAY_POINTER_ARB"/>
+ <command name="glCurrentPaletteMatrixARB"/>
+ <command name="glMatrixIndexubvARB"/>
+ <command name="glMatrixIndexusvARB"/>
+ <command name="glMatrixIndexuivARB"/>
+ <command name="glMatrixIndexPointerARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_multi_draw_indirect" supported="gl|glcore">
+ <require>
+ <command name="glMultiDrawArraysIndirect"/>
+ <command name="glMultiDrawElementsIndirect"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_multisample" supported="gl">
+ <require>
+ <enum name="GL_MULTISAMPLE_ARB"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_COVERAGE_ARB"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_ONE_ARB"/>
+ <enum name="GL_SAMPLE_COVERAGE_ARB"/>
+ <enum name="GL_SAMPLE_BUFFERS_ARB"/>
+ <enum name="GL_SAMPLES_ARB"/>
+ <enum name="GL_SAMPLE_COVERAGE_VALUE_ARB"/>
+ <enum name="GL_SAMPLE_COVERAGE_INVERT_ARB"/>
+ <enum name="GL_MULTISAMPLE_BIT_ARB"/>
+ <command name="glSampleCoverageARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_multitexture" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE0_ARB"/>
+ <enum name="GL_TEXTURE1_ARB"/>
+ <enum name="GL_TEXTURE2_ARB"/>
+ <enum name="GL_TEXTURE3_ARB"/>
+ <enum name="GL_TEXTURE4_ARB"/>
+ <enum name="GL_TEXTURE5_ARB"/>
+ <enum name="GL_TEXTURE6_ARB"/>
+ <enum name="GL_TEXTURE7_ARB"/>
+ <enum name="GL_TEXTURE8_ARB"/>
+ <enum name="GL_TEXTURE9_ARB"/>
+ <enum name="GL_TEXTURE10_ARB"/>
+ <enum name="GL_TEXTURE11_ARB"/>
+ <enum name="GL_TEXTURE12_ARB"/>
+ <enum name="GL_TEXTURE13_ARB"/>
+ <enum name="GL_TEXTURE14_ARB"/>
+ <enum name="GL_TEXTURE15_ARB"/>
+ <enum name="GL_TEXTURE16_ARB"/>
+ <enum name="GL_TEXTURE17_ARB"/>
+ <enum name="GL_TEXTURE18_ARB"/>
+ <enum name="GL_TEXTURE19_ARB"/>
+ <enum name="GL_TEXTURE20_ARB"/>
+ <enum name="GL_TEXTURE21_ARB"/>
+ <enum name="GL_TEXTURE22_ARB"/>
+ <enum name="GL_TEXTURE23_ARB"/>
+ <enum name="GL_TEXTURE24_ARB"/>
+ <enum name="GL_TEXTURE25_ARB"/>
+ <enum name="GL_TEXTURE26_ARB"/>
+ <enum name="GL_TEXTURE27_ARB"/>
+ <enum name="GL_TEXTURE28_ARB"/>
+ <enum name="GL_TEXTURE29_ARB"/>
+ <enum name="GL_TEXTURE30_ARB"/>
+ <enum name="GL_TEXTURE31_ARB"/>
+ <enum name="GL_ACTIVE_TEXTURE_ARB"/>
+ <enum name="GL_CLIENT_ACTIVE_TEXTURE_ARB"/>
+ <enum name="GL_MAX_TEXTURE_UNITS_ARB"/>
+ <command name="glActiveTextureARB"/>
+ <command name="glClientActiveTextureARB"/>
+ <command name="glMultiTexCoord1dARB"/>
+ <command name="glMultiTexCoord1dvARB"/>
+ <command name="glMultiTexCoord1fARB"/>
+ <command name="glMultiTexCoord1fvARB"/>
+ <command name="glMultiTexCoord1iARB"/>
+ <command name="glMultiTexCoord1ivARB"/>
+ <command name="glMultiTexCoord1sARB"/>
+ <command name="glMultiTexCoord1svARB"/>
+ <command name="glMultiTexCoord2dARB"/>
+ <command name="glMultiTexCoord2dvARB"/>
+ <command name="glMultiTexCoord2fARB"/>
+ <command name="glMultiTexCoord2fvARB"/>
+ <command name="glMultiTexCoord2iARB"/>
+ <command name="glMultiTexCoord2ivARB"/>
+ <command name="glMultiTexCoord2sARB"/>
+ <command name="glMultiTexCoord2svARB"/>
+ <command name="glMultiTexCoord3dARB"/>
+ <command name="glMultiTexCoord3dvARB"/>
+ <command name="glMultiTexCoord3fARB"/>
+ <command name="glMultiTexCoord3fvARB"/>
+ <command name="glMultiTexCoord3iARB"/>
+ <command name="glMultiTexCoord3ivARB"/>
+ <command name="glMultiTexCoord3sARB"/>
+ <command name="glMultiTexCoord3svARB"/>
+ <command name="glMultiTexCoord4dARB"/>
+ <command name="glMultiTexCoord4dvARB"/>
+ <command name="glMultiTexCoord4fARB"/>
+ <command name="glMultiTexCoord4fvARB"/>
+ <command name="glMultiTexCoord4iARB"/>
+ <command name="glMultiTexCoord4ivARB"/>
+ <command name="glMultiTexCoord4sARB"/>
+ <command name="glMultiTexCoord4svARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_occlusion_query" supported="gl">
+ <require>
+ <enum name="GL_QUERY_COUNTER_BITS_ARB"/>
+ <enum name="GL_CURRENT_QUERY_ARB"/>
+ <enum name="GL_QUERY_RESULT_ARB"/>
+ <enum name="GL_QUERY_RESULT_AVAILABLE_ARB"/>
+ <enum name="GL_SAMPLES_PASSED_ARB"/>
+ <command name="glGenQueriesARB"/>
+ <command name="glDeleteQueriesARB"/>
+ <command name="glIsQueryARB"/>
+ <command name="glBeginQueryARB"/>
+ <command name="glEndQueryARB"/>
+ <command name="glGetQueryivARB"/>
+ <command name="glGetQueryObjectivARB"/>
+ <command name="glGetQueryObjectuivARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_occlusion_query2" supported="gl|glcore">
+ <require>
+ <enum name="GL_ANY_SAMPLES_PASSED"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_pixel_buffer_object" supported="gl">
+ <require>
+ <enum name="GL_PIXEL_PACK_BUFFER_ARB"/>
+ <enum name="GL_PIXEL_UNPACK_BUFFER_ARB"/>
+ <enum name="GL_PIXEL_PACK_BUFFER_BINDING_ARB"/>
+ <enum name="GL_PIXEL_UNPACK_BUFFER_BINDING_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_point_parameters" supported="gl">
+ <require>
+ <enum name="GL_POINT_SIZE_MIN_ARB"/>
+ <enum name="GL_POINT_SIZE_MAX_ARB"/>
+ <enum name="GL_POINT_FADE_THRESHOLD_SIZE_ARB"/>
+ <enum name="GL_POINT_DISTANCE_ATTENUATION_ARB"/>
+ <command name="glPointParameterfARB"/>
+ <command name="glPointParameterfvARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_point_sprite" supported="gl">
+ <require>
+ <enum name="GL_POINT_SPRITE_ARB"/>
+ <enum name="GL_COORD_REPLACE_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_program_interface_query" supported="gl|glcore">
+ <require>
+ <enum name="GL_UNIFORM"/>
+ <enum name="GL_UNIFORM_BLOCK"/>
+ <enum name="GL_PROGRAM_INPUT"/>
+ <enum name="GL_PROGRAM_OUTPUT"/>
+ <enum name="GL_BUFFER_VARIABLE"/>
+ <enum name="GL_SHADER_STORAGE_BLOCK"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER"/>
+ <enum name="GL_VERTEX_SUBROUTINE"/>
+ <enum name="GL_TESS_CONTROL_SUBROUTINE"/>
+ <enum name="GL_TESS_EVALUATION_SUBROUTINE"/>
+ <enum name="GL_GEOMETRY_SUBROUTINE"/>
+ <enum name="GL_FRAGMENT_SUBROUTINE"/>
+ <enum name="GL_COMPUTE_SUBROUTINE"/>
+ <enum name="GL_VERTEX_SUBROUTINE_UNIFORM"/>
+ <enum name="GL_TESS_CONTROL_SUBROUTINE_UNIFORM"/>
+ <enum name="GL_TESS_EVALUATION_SUBROUTINE_UNIFORM"/>
+ <enum name="GL_GEOMETRY_SUBROUTINE_UNIFORM"/>
+ <enum name="GL_FRAGMENT_SUBROUTINE_UNIFORM"/>
+ <enum name="GL_COMPUTE_SUBROUTINE_UNIFORM"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_VARYING"/>
+ <enum name="GL_ACTIVE_RESOURCES"/>
+ <enum name="GL_MAX_NAME_LENGTH"/>
+ <enum name="GL_MAX_NUM_ACTIVE_VARIABLES"/>
+ <enum name="GL_MAX_NUM_COMPATIBLE_SUBROUTINES"/>
+ <enum name="GL_NAME_LENGTH"/>
+ <enum name="GL_TYPE"/>
+ <enum name="GL_ARRAY_SIZE"/>
+ <enum name="GL_OFFSET"/>
+ <enum name="GL_BLOCK_INDEX"/>
+ <enum name="GL_ARRAY_STRIDE"/>
+ <enum name="GL_MATRIX_STRIDE"/>
+ <enum name="GL_IS_ROW_MAJOR"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_INDEX"/>
+ <enum name="GL_BUFFER_BINDING"/>
+ <enum name="GL_BUFFER_DATA_SIZE"/>
+ <enum name="GL_NUM_ACTIVE_VARIABLES"/>
+ <enum name="GL_ACTIVE_VARIABLES"/>
+ <enum name="GL_REFERENCED_BY_VERTEX_SHADER"/>
+ <enum name="GL_REFERENCED_BY_TESS_CONTROL_SHADER"/>
+ <enum name="GL_REFERENCED_BY_TESS_EVALUATION_SHADER"/>
+ <enum name="GL_REFERENCED_BY_GEOMETRY_SHADER"/>
+ <enum name="GL_REFERENCED_BY_FRAGMENT_SHADER"/>
+ <enum name="GL_REFERENCED_BY_COMPUTE_SHADER"/>
+ <enum name="GL_TOP_LEVEL_ARRAY_SIZE"/>
+ <enum name="GL_TOP_LEVEL_ARRAY_STRIDE"/>
+ <enum name="GL_LOCATION"/>
+ <enum name="GL_LOCATION_INDEX"/>
+ <enum name="GL_IS_PER_PATCH"/>
+ <enum name="GL_NUM_COMPATIBLE_SUBROUTINES"/>
+ <enum name="GL_COMPATIBLE_SUBROUTINES"/>
+ <command name="glGetProgramInterfaceiv"/>
+ <command name="glGetProgramResourceIndex"/>
+ <command name="glGetProgramResourceName"/>
+ <command name="glGetProgramResourceiv"/>
+ <command name="glGetProgramResourceLocation"/>
+ <command name="glGetProgramResourceLocationIndex"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_provoking_vertex" supported="gl|glcore">
+ <require>
+ <enum name="GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION"/>
+ <enum name="GL_FIRST_VERTEX_CONVENTION"/>
+ <enum name="GL_LAST_VERTEX_CONVENTION"/>
+ <enum name="GL_PROVOKING_VERTEX"/>
+ <command name="glProvokingVertex"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_robust_buffer_access_behavior" supported="gl|glcore">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ARB_robustness" supported="gl|glcore">
+ <require>
+ <enum name="GL_NO_ERROR"/>
+ <enum name="GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB"/>
+ <enum name="GL_LOSE_CONTEXT_ON_RESET_ARB"/>
+ <enum name="GL_GUILTY_CONTEXT_RESET_ARB"/>
+ <enum name="GL_INNOCENT_CONTEXT_RESET_ARB"/>
+ <enum name="GL_UNKNOWN_CONTEXT_RESET_ARB"/>
+ <enum name="GL_RESET_NOTIFICATION_STRATEGY_ARB"/>
+ <enum name="GL_NO_RESET_NOTIFICATION_ARB"/>
+ <command name="glGetGraphicsResetStatusARB"/>
+ <command name="glGetnTexImageARB"/>
+ <command name="glReadnPixelsARB"/>
+ <command name="glGetnCompressedTexImageARB"/>
+ <command name="glGetnUniformfvARB"/>
+ <command name="glGetnUniformivARB"/>
+ <command name="glGetnUniformuivARB"/>
+ <command name="glGetnUniformdvARB"/>
+ </require>
+ <require api="gl" profile="compatibility">
+ <command name="glGetnMapdvARB"/>
+ <command name="glGetnMapfvARB"/>
+ <command name="glGetnMapivARB"/>
+ <command name="glGetnPixelMapfvARB"/>
+ <command name="glGetnPixelMapuivARB"/>
+ <command name="glGetnPixelMapusvARB"/>
+ <command name="glGetnPolygonStippleARB"/>
+ <command name="glGetnColorTableARB"/>
+ <command name="glGetnConvolutionFilterARB"/>
+ <command name="glGetnSeparableFilterARB"/>
+ <command name="glGetnHistogramARB"/>
+ <command name="glGetnMinmaxARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_robustness_isolation" supported="gl|glcore">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ARB_sample_shading" supported="gl|glcore">
+ <require>
+ <enum name="GL_SAMPLE_SHADING_ARB"/>
+ <enum name="GL_MIN_SAMPLE_SHADING_VALUE_ARB"/>
+ <command name="glMinSampleShadingARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_sampler_objects" supported="gl|glcore">
+ <require>
+ <enum name="GL_SAMPLER_BINDING"/>
+ <command name="glGenSamplers"/>
+ <command name="glDeleteSamplers"/>
+ <command name="glIsSampler"/>
+ <command name="glBindSampler"/>
+ <command name="glSamplerParameteri"/>
+ <command name="glSamplerParameteriv"/>
+ <command name="glSamplerParameterf"/>
+ <command name="glSamplerParameterfv"/>
+ <command name="glSamplerParameterIiv"/>
+ <command name="glSamplerParameterIuiv"/>
+ <command name="glGetSamplerParameteriv"/>
+ <command name="glGetSamplerParameterIiv"/>
+ <command name="glGetSamplerParameterfv"/>
+ <command name="glGetSamplerParameterIuiv"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_seamless_cube_map" supported="gl|glcore">
+ <require>
+ <enum name="GL_TEXTURE_CUBE_MAP_SEAMLESS"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_separate_shader_objects" supported="gl|glcore">
+ <require>
+ <enum name="GL_VERTEX_SHADER_BIT"/>
+ <enum name="GL_FRAGMENT_SHADER_BIT"/>
+ <enum name="GL_GEOMETRY_SHADER_BIT"/>
+ <enum name="GL_TESS_CONTROL_SHADER_BIT"/>
+ <enum name="GL_TESS_EVALUATION_SHADER_BIT"/>
+ <enum name="GL_ALL_SHADER_BITS"/>
+ <enum name="GL_PROGRAM_SEPARABLE"/>
+ <enum name="GL_ACTIVE_PROGRAM"/>
+ <enum name="GL_PROGRAM_PIPELINE_BINDING"/>
+ <command name="glUseProgramStages"/>
+ <command name="glActiveShaderProgram"/>
+ <command name="glCreateShaderProgramv"/>
+ <command name="glBindProgramPipeline"/>
+ <command name="glDeleteProgramPipelines"/>
+ <command name="glGenProgramPipelines"/>
+ <command name="glIsProgramPipeline"/>
+ <command name="glGetProgramPipelineiv"/>
+ <command name="glProgramUniform1i"/>
+ <command name="glProgramUniform1iv"/>
+ <command name="glProgramUniform1f"/>
+ <command name="glProgramUniform1fv"/>
+ <command name="glProgramUniform1d"/>
+ <command name="glProgramUniform1dv"/>
+ <command name="glProgramUniform1ui"/>
+ <command name="glProgramUniform1uiv"/>
+ <command name="glProgramUniform2i"/>
+ <command name="glProgramUniform2iv"/>
+ <command name="glProgramUniform2f"/>
+ <command name="glProgramUniform2fv"/>
+ <command name="glProgramUniform2d"/>
+ <command name="glProgramUniform2dv"/>
+ <command name="glProgramUniform2ui"/>
+ <command name="glProgramUniform2uiv"/>
+ <command name="glProgramUniform3i"/>
+ <command name="glProgramUniform3iv"/>
+ <command name="glProgramUniform3f"/>
+ <command name="glProgramUniform3fv"/>
+ <command name="glProgramUniform3d"/>
+ <command name="glProgramUniform3dv"/>
+ <command name="glProgramUniform3ui"/>
+ <command name="glProgramUniform3uiv"/>
+ <command name="glProgramUniform4i"/>
+ <command name="glProgramUniform4iv"/>
+ <command name="glProgramUniform4f"/>
+ <command name="glProgramUniform4fv"/>
+ <command name="glProgramUniform4d"/>
+ <command name="glProgramUniform4dv"/>
+ <command name="glProgramUniform4ui"/>
+ <command name="glProgramUniform4uiv"/>
+ <command name="glProgramUniformMatrix2fv"/>
+ <command name="glProgramUniformMatrix3fv"/>
+ <command name="glProgramUniformMatrix4fv"/>
+ <command name="glProgramUniformMatrix2dv"/>
+ <command name="glProgramUniformMatrix3dv"/>
+ <command name="glProgramUniformMatrix4dv"/>
+ <command name="glProgramUniformMatrix2x3fv"/>
+ <command name="glProgramUniformMatrix3x2fv"/>
+ <command name="glProgramUniformMatrix2x4fv"/>
+ <command name="glProgramUniformMatrix4x2fv"/>
+ <command name="glProgramUniformMatrix3x4fv"/>
+ <command name="glProgramUniformMatrix4x3fv"/>
+ <command name="glProgramUniformMatrix2x3dv"/>
+ <command name="glProgramUniformMatrix3x2dv"/>
+ <command name="glProgramUniformMatrix2x4dv"/>
+ <command name="glProgramUniformMatrix4x2dv"/>
+ <command name="glProgramUniformMatrix3x4dv"/>
+ <command name="glProgramUniformMatrix4x3dv"/>
+ <command name="glValidateProgramPipeline"/>
+ <command name="glGetProgramPipelineInfoLog"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_shader_atomic_counters" supported="gl|glcore">
+ <require>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_BINDING"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_START"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_SIZE"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER"/>
+ <enum name="GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER"/>
+ <enum name="GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_MAX_VERTEX_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_GEOMETRY_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_FRAGMENT_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_COMBINED_ATOMIC_COUNTERS"/>
+ <enum name="GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE"/>
+ <enum name="GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS"/>
+ <enum name="GL_ACTIVE_ATOMIC_COUNTER_BUFFERS"/>
+ <enum name="GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX"/>
+ <enum name="GL_UNSIGNED_INT_ATOMIC_COUNTER"/>
+ <command name="glGetActiveAtomicCounterBufferiv"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_shader_bit_encoding" supported="gl|glcore">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ARB_shader_image_load_store" supported="gl|glcore">
+ <require>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT"/>
+ <enum name="GL_ELEMENT_ARRAY_BARRIER_BIT"/>
+ <enum name="GL_UNIFORM_BARRIER_BIT"/>
+ <enum name="GL_TEXTURE_FETCH_BARRIER_BIT"/>
+ <enum name="GL_SHADER_IMAGE_ACCESS_BARRIER_BIT"/>
+ <enum name="GL_COMMAND_BARRIER_BIT"/>
+ <enum name="GL_PIXEL_BUFFER_BARRIER_BIT"/>
+ <enum name="GL_TEXTURE_UPDATE_BARRIER_BIT"/>
+ <enum name="GL_BUFFER_UPDATE_BARRIER_BIT"/>
+ <enum name="GL_FRAMEBUFFER_BARRIER_BIT"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BARRIER_BIT"/>
+ <enum name="GL_ATOMIC_COUNTER_BARRIER_BIT"/>
+ <enum name="GL_ALL_BARRIER_BITS"/>
+ <enum name="GL_MAX_IMAGE_UNITS"/>
+ <enum name="GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS"/>
+ <enum name="GL_IMAGE_BINDING_NAME"/>
+ <enum name="GL_IMAGE_BINDING_LEVEL"/>
+ <enum name="GL_IMAGE_BINDING_LAYERED"/>
+ <enum name="GL_IMAGE_BINDING_LAYER"/>
+ <enum name="GL_IMAGE_BINDING_ACCESS"/>
+ <enum name="GL_IMAGE_1D"/>
+ <enum name="GL_IMAGE_2D"/>
+ <enum name="GL_IMAGE_3D"/>
+ <enum name="GL_IMAGE_2D_RECT"/>
+ <enum name="GL_IMAGE_CUBE"/>
+ <enum name="GL_IMAGE_BUFFER"/>
+ <enum name="GL_IMAGE_1D_ARRAY"/>
+ <enum name="GL_IMAGE_2D_ARRAY"/>
+ <enum name="GL_IMAGE_CUBE_MAP_ARRAY"/>
+ <enum name="GL_IMAGE_2D_MULTISAMPLE"/>
+ <enum name="GL_IMAGE_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_INT_IMAGE_1D"/>
+ <enum name="GL_INT_IMAGE_2D"/>
+ <enum name="GL_INT_IMAGE_3D"/>
+ <enum name="GL_INT_IMAGE_2D_RECT"/>
+ <enum name="GL_INT_IMAGE_CUBE"/>
+ <enum name="GL_INT_IMAGE_BUFFER"/>
+ <enum name="GL_INT_IMAGE_1D_ARRAY"/>
+ <enum name="GL_INT_IMAGE_2D_ARRAY"/>
+ <enum name="GL_INT_IMAGE_CUBE_MAP_ARRAY"/>
+ <enum name="GL_INT_IMAGE_2D_MULTISAMPLE"/>
+ <enum name="GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_1D"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_3D"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D_RECT"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_CUBE"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_BUFFER"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_1D_ARRAY"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D_ARRAY"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_MAX_IMAGE_SAMPLES"/>
+ <enum name="GL_IMAGE_BINDING_FORMAT"/>
+ <enum name="GL_IMAGE_FORMAT_COMPATIBILITY_TYPE"/>
+ <enum name="GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE"/>
+ <enum name="GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS"/>
+ <enum name="GL_MAX_VERTEX_IMAGE_UNIFORMS"/>
+ <enum name="GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS"/>
+ <enum name="GL_MAX_GEOMETRY_IMAGE_UNIFORMS"/>
+ <enum name="GL_MAX_FRAGMENT_IMAGE_UNIFORMS"/>
+ <enum name="GL_MAX_COMBINED_IMAGE_UNIFORMS"/>
+ <command name="glBindImageTexture"/>
+ <command name="glMemoryBarrier"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_shader_image_size" supported="gl|glcore">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ARB_shader_objects" supported="gl">
+ <require>
+ <enum name="GL_PROGRAM_OBJECT_ARB"/>
+ <enum name="GL_SHADER_OBJECT_ARB"/>
+ <enum name="GL_OBJECT_TYPE_ARB"/>
+ <enum name="GL_OBJECT_SUBTYPE_ARB"/>
+ <enum name="GL_FLOAT_VEC2_ARB"/>
+ <enum name="GL_FLOAT_VEC3_ARB"/>
+ <enum name="GL_FLOAT_VEC4_ARB"/>
+ <enum name="GL_INT_VEC2_ARB"/>
+ <enum name="GL_INT_VEC3_ARB"/>
+ <enum name="GL_INT_VEC4_ARB"/>
+ <enum name="GL_BOOL_ARB"/>
+ <enum name="GL_BOOL_VEC2_ARB"/>
+ <enum name="GL_BOOL_VEC3_ARB"/>
+ <enum name="GL_BOOL_VEC4_ARB"/>
+ <enum name="GL_FLOAT_MAT2_ARB"/>
+ <enum name="GL_FLOAT_MAT3_ARB"/>
+ <enum name="GL_FLOAT_MAT4_ARB"/>
+ <enum name="GL_SAMPLER_1D_ARB"/>
+ <enum name="GL_SAMPLER_2D_ARB"/>
+ <enum name="GL_SAMPLER_3D_ARB"/>
+ <enum name="GL_SAMPLER_CUBE_ARB"/>
+ <enum name="GL_SAMPLER_1D_SHADOW_ARB"/>
+ <enum name="GL_SAMPLER_2D_SHADOW_ARB"/>
+ <enum name="GL_SAMPLER_2D_RECT_ARB"/>
+ <enum name="GL_SAMPLER_2D_RECT_SHADOW_ARB"/>
+ <enum name="GL_OBJECT_DELETE_STATUS_ARB"/>
+ <enum name="GL_OBJECT_COMPILE_STATUS_ARB"/>
+ <enum name="GL_OBJECT_LINK_STATUS_ARB"/>
+ <enum name="GL_OBJECT_VALIDATE_STATUS_ARB"/>
+ <enum name="GL_OBJECT_INFO_LOG_LENGTH_ARB"/>
+ <enum name="GL_OBJECT_ATTACHED_OBJECTS_ARB"/>
+ <enum name="GL_OBJECT_ACTIVE_UNIFORMS_ARB"/>
+ <enum name="GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB"/>
+ <enum name="GL_OBJECT_SHADER_SOURCE_LENGTH_ARB"/>
+ <command name="glDeleteObjectARB"/>
+ <command name="glGetHandleARB"/>
+ <command name="glDetachObjectARB"/>
+ <command name="glCreateShaderObjectARB"/>
+ <command name="glShaderSourceARB"/>
+ <command name="glCompileShaderARB"/>
+ <command name="glCreateProgramObjectARB"/>
+ <command name="glAttachObjectARB"/>
+ <command name="glLinkProgramARB"/>
+ <command name="glUseProgramObjectARB"/>
+ <command name="glValidateProgramARB"/>
+ <command name="glUniform1fARB"/>
+ <command name="glUniform2fARB"/>
+ <command name="glUniform3fARB"/>
+ <command name="glUniform4fARB"/>
+ <command name="glUniform1iARB"/>
+ <command name="glUniform2iARB"/>
+ <command name="glUniform3iARB"/>
+ <command name="glUniform4iARB"/>
+ <command name="glUniform1fvARB"/>
+ <command name="glUniform2fvARB"/>
+ <command name="glUniform3fvARB"/>
+ <command name="glUniform4fvARB"/>
+ <command name="glUniform1ivARB"/>
+ <command name="glUniform2ivARB"/>
+ <command name="glUniform3ivARB"/>
+ <command name="glUniform4ivARB"/>
+ <command name="glUniformMatrix2fvARB"/>
+ <command name="glUniformMatrix3fvARB"/>
+ <command name="glUniformMatrix4fvARB"/>
+ <command name="glGetObjectParameterfvARB"/>
+ <command name="glGetObjectParameterivARB"/>
+ <command name="glGetInfoLogARB"/>
+ <command name="glGetAttachedObjectsARB"/>
+ <command name="glGetUniformLocationARB"/>
+ <command name="glGetActiveUniformARB"/>
+ <command name="glGetUniformfvARB"/>
+ <command name="glGetUniformivARB"/>
+ <command name="glGetShaderSourceARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_shader_precision" supported="gl|glcore">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ARB_shader_stencil_export" supported="gl|glcore">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ARB_shader_storage_buffer_object" supported="gl|glcore">
+ <require>
+ <enum name="GL_SHADER_STORAGE_BUFFER"/>
+ <enum name="GL_SHADER_STORAGE_BUFFER_BINDING"/>
+ <enum name="GL_SHADER_STORAGE_BUFFER_START"/>
+ <enum name="GL_SHADER_STORAGE_BUFFER_SIZE"/>
+ <enum name="GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS"/>
+ <enum name="GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS"/>
+ <enum name="GL_MAX_SHADER_STORAGE_BLOCK_SIZE"/>
+ <enum name="GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT"/>
+ <enum name="GL_SHADER_STORAGE_BARRIER_BIT"/>
+ <enum name="GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES"/>
+ <enum name="GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS"/>
+ <command name="glShaderStorageBlockBinding"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_shader_subroutine" supported="gl|glcore">
+ <require>
+ <enum name="GL_ACTIVE_SUBROUTINES"/>
+ <enum name="GL_ACTIVE_SUBROUTINE_UNIFORMS"/>
+ <enum name="GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS"/>
+ <enum name="GL_ACTIVE_SUBROUTINE_MAX_LENGTH"/>
+ <enum name="GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH"/>
+ <enum name="GL_MAX_SUBROUTINES"/>
+ <enum name="GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS"/>
+ <enum name="GL_NUM_COMPATIBLE_SUBROUTINES"/>
+ <enum name="GL_COMPATIBLE_SUBROUTINES"/>
+ <enum name="GL_UNIFORM_SIZE"/>
+ <enum name="GL_UNIFORM_NAME_LENGTH"/>
+ <command name="glGetSubroutineUniformLocation"/>
+ <command name="glGetSubroutineIndex"/>
+ <command name="glGetActiveSubroutineUniformiv"/>
+ <command name="glGetActiveSubroutineUniformName"/>
+ <command name="glGetActiveSubroutineName"/>
+ <command name="glUniformSubroutinesuiv"/>
+ <command name="glGetUniformSubroutineuiv"/>
+ <command name="glGetProgramStageiv"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_shader_texture_lod" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ARB_shading_language_100" supported="gl">
+ <require>
+ <enum name="GL_SHADING_LANGUAGE_VERSION_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_shading_language_420pack" supported="gl|glcore">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ARB_shading_language_include" supported="gl|glcore">
+ <require>
+ <enum name="GL_SHADER_INCLUDE_ARB"/>
+ <enum name="GL_NAMED_STRING_LENGTH_ARB"/>
+ <enum name="GL_NAMED_STRING_TYPE_ARB"/>
+ <command name="glNamedStringARB"/>
+ <command name="glDeleteNamedStringARB"/>
+ <command name="glCompileShaderIncludeARB"/>
+ <command name="glIsNamedStringARB"/>
+ <command name="glGetNamedStringARB"/>
+ <command name="glGetNamedStringivARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_shading_language_packing" supported="gl|glcore">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ARB_shadow" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_COMPARE_MODE_ARB"/>
+ <enum name="GL_TEXTURE_COMPARE_FUNC_ARB"/>
+ <enum name="GL_COMPARE_R_TO_TEXTURE_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_shadow_ambient" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_COMPARE_FAIL_VALUE_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_stencil_texturing" supported="gl|glcore">
+ <require>
+ <enum name="GL_DEPTH_STENCIL_TEXTURE_MODE"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_sync" supported="gl|glcore">
+ <require>
+ <enum name="GL_MAX_SERVER_WAIT_TIMEOUT"/>
+ <enum name="GL_OBJECT_TYPE"/>
+ <enum name="GL_SYNC_CONDITION"/>
+ <enum name="GL_SYNC_STATUS"/>
+ <enum name="GL_SYNC_FLAGS"/>
+ <enum name="GL_SYNC_FENCE"/>
+ <enum name="GL_SYNC_GPU_COMMANDS_COMPLETE"/>
+ <enum name="GL_UNSIGNALED"/>
+ <enum name="GL_SIGNALED"/>
+ <enum name="GL_ALREADY_SIGNALED"/>
+ <enum name="GL_TIMEOUT_EXPIRED"/>
+ <enum name="GL_CONDITION_SATISFIED"/>
+ <enum name="GL_WAIT_FAILED"/>
+ <enum name="GL_SYNC_FLUSH_COMMANDS_BIT"/>
+ <enum name="GL_TIMEOUT_IGNORED"/>
+ <command name="glFenceSync"/>
+ <command name="glIsSync"/>
+ <command name="glDeleteSync"/>
+ <command name="glClientWaitSync"/>
+ <command name="glWaitSync"/>
+ <command name="glGetInteger64v"/>
+ <command name="glGetSynciv"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_tessellation_shader" supported="gl|glcore">
+ <require>
+ <enum name="GL_PATCHES"/>
+ <enum name="GL_PATCH_VERTICES"/>
+ <enum name="GL_PATCH_DEFAULT_INNER_LEVEL"/>
+ <enum name="GL_PATCH_DEFAULT_OUTER_LEVEL"/>
+ <enum name="GL_TESS_CONTROL_OUTPUT_VERTICES"/>
+ <enum name="GL_TESS_GEN_MODE"/>
+ <enum name="GL_TESS_GEN_SPACING"/>
+ <enum name="GL_TESS_GEN_VERTEX_ORDER"/>
+ <enum name="GL_TESS_GEN_POINT_MODE"/>
+ <enum name="GL_TRIANGLES"/>
+ <enum name="GL_ISOLINES"/>
+ <enum name="GL_EQUAL"/>
+ <enum name="GL_FRACTIONAL_ODD"/>
+ <enum name="GL_FRACTIONAL_EVEN"/>
+ <enum name="GL_CCW"/>
+ <enum name="GL_CW"/>
+ <enum name="GL_MAX_PATCH_VERTICES"/>
+ <enum name="GL_MAX_TESS_GEN_LEVEL"/>
+ <enum name="GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS"/>
+ <enum name="GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS"/>
+ <enum name="GL_MAX_TESS_PATCH_COMPONENTS"/>
+ <enum name="GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS"/>
+ <enum name="GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_TESS_CONTROL_INPUT_COMPONENTS"/>
+ <enum name="GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS"/>
+ <enum name="GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS"/>
+ <enum name="GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER"/>
+ <enum name="GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER"/>
+ <enum name="GL_TESS_EVALUATION_SHADER"/>
+ <enum name="GL_TESS_CONTROL_SHADER"/>
+ <command name="glPatchParameteri"/>
+ <command name="glPatchParameterfv"/>
+ </require>
+ <require api="gl" profile="compatibility">
+ <enum name="GL_QUADS"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_border_clamp" supported="gl">
+ <require>
+ <enum name="GL_CLAMP_TO_BORDER_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_buffer_object" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_BUFFER_ARB"/>
+ <enum name="GL_MAX_TEXTURE_BUFFER_SIZE_ARB"/>
+ <enum name="GL_TEXTURE_BINDING_BUFFER_ARB"/>
+ <enum name="GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB"/>
+ <enum name="GL_TEXTURE_BUFFER_FORMAT_ARB"/>
+ <command name="glTexBufferARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_buffer_object_rgb32" supported="gl|glcore">
+ <require>
+ <enum name="GL_RGB32F"/>
+ <enum name="GL_RGB32UI"/>
+ <enum name="GL_RGB32I"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_buffer_range" supported="gl|glcore">
+ <require>
+ <enum name="GL_TEXTURE_BUFFER_OFFSET"/>
+ <enum name="GL_TEXTURE_BUFFER_SIZE"/>
+ <enum name="GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT"/>
+ <command name="glTexBufferRange"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_compression" supported="gl">
+ <require>
+ <enum name="GL_COMPRESSED_ALPHA_ARB"/>
+ <enum name="GL_COMPRESSED_LUMINANCE_ARB"/>
+ <enum name="GL_COMPRESSED_LUMINANCE_ALPHA_ARB"/>
+ <enum name="GL_COMPRESSED_INTENSITY_ARB"/>
+ <enum name="GL_COMPRESSED_RGB_ARB"/>
+ <enum name="GL_COMPRESSED_RGBA_ARB"/>
+ <enum name="GL_TEXTURE_COMPRESSION_HINT_ARB"/>
+ <enum name="GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB"/>
+ <enum name="GL_TEXTURE_COMPRESSED_ARB"/>
+ <enum name="GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB"/>
+ <enum name="GL_COMPRESSED_TEXTURE_FORMATS_ARB"/>
+ <command name="glCompressedTexImage3DARB"/>
+ <command name="glCompressedTexImage2DARB"/>
+ <command name="glCompressedTexImage1DARB"/>
+ <command name="glCompressedTexSubImage3DARB"/>
+ <command name="glCompressedTexSubImage2DARB"/>
+ <command name="glCompressedTexSubImage1DARB"/>
+ <command name="glGetCompressedTexImageARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_compression_bptc" supported="gl|glcore">
+ <require>
+ <enum name="GL_COMPRESSED_RGBA_BPTC_UNORM_ARB"/>
+ <enum name="GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB"/>
+ <enum name="GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB"/>
+ <enum name="GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_compression_rgtc" supported="gl|glcore">
+ <require>
+ <enum name="GL_COMPRESSED_RED_RGTC1"/>
+ <enum name="GL_COMPRESSED_SIGNED_RED_RGTC1"/>
+ <enum name="GL_COMPRESSED_RG_RGTC2"/>
+ <enum name="GL_COMPRESSED_SIGNED_RG_RGTC2"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_cube_map" supported="gl">
+ <require>
+ <enum name="GL_NORMAL_MAP_ARB"/>
+ <enum name="GL_REFLECTION_MAP_ARB"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_ARB"/>
+ <enum name="GL_TEXTURE_BINDING_CUBE_MAP_ARB"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB"/>
+ <enum name="GL_PROXY_TEXTURE_CUBE_MAP_ARB"/>
+ <enum name="GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_cube_map_array" supported="gl|glcore">
+ <require>
+ <enum name="GL_TEXTURE_CUBE_MAP_ARRAY_ARB"/>
+ <enum name="GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB"/>
+ <enum name="GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB"/>
+ <enum name="GL_SAMPLER_CUBE_MAP_ARRAY_ARB"/>
+ <enum name="GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB"/>
+ <enum name="GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_env_add" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_env_combine" supported="gl">
+ <require>
+ <enum name="GL_COMBINE_ARB"/>
+ <enum name="GL_COMBINE_RGB_ARB"/>
+ <enum name="GL_COMBINE_ALPHA_ARB"/>
+ <enum name="GL_SOURCE0_RGB_ARB"/>
+ <enum name="GL_SOURCE1_RGB_ARB"/>
+ <enum name="GL_SOURCE2_RGB_ARB"/>
+ <enum name="GL_SOURCE0_ALPHA_ARB"/>
+ <enum name="GL_SOURCE1_ALPHA_ARB"/>
+ <enum name="GL_SOURCE2_ALPHA_ARB"/>
+ <enum name="GL_OPERAND0_RGB_ARB"/>
+ <enum name="GL_OPERAND1_RGB_ARB"/>
+ <enum name="GL_OPERAND2_RGB_ARB"/>
+ <enum name="GL_OPERAND0_ALPHA_ARB"/>
+ <enum name="GL_OPERAND1_ALPHA_ARB"/>
+ <enum name="GL_OPERAND2_ALPHA_ARB"/>
+ <enum name="GL_RGB_SCALE_ARB"/>
+ <enum name="GL_ADD_SIGNED_ARB"/>
+ <enum name="GL_INTERPOLATE_ARB"/>
+ <enum name="GL_SUBTRACT_ARB"/>
+ <enum name="GL_CONSTANT_ARB"/>
+ <enum name="GL_PRIMARY_COLOR_ARB"/>
+ <enum name="GL_PREVIOUS_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_env_crossbar" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_env_dot3" supported="gl">
+ <require>
+ <enum name="GL_DOT3_RGB_ARB"/>
+ <enum name="GL_DOT3_RGBA_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_float" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_RED_TYPE_ARB"/>
+ <enum name="GL_TEXTURE_GREEN_TYPE_ARB"/>
+ <enum name="GL_TEXTURE_BLUE_TYPE_ARB"/>
+ <enum name="GL_TEXTURE_ALPHA_TYPE_ARB"/>
+ <enum name="GL_TEXTURE_LUMINANCE_TYPE_ARB"/>
+ <enum name="GL_TEXTURE_INTENSITY_TYPE_ARB"/>
+ <enum name="GL_TEXTURE_DEPTH_TYPE_ARB"/>
+ <enum name="GL_UNSIGNED_NORMALIZED_ARB"/>
+ <enum name="GL_RGBA32F_ARB"/>
+ <enum name="GL_RGB32F_ARB"/>
+ <enum name="GL_ALPHA32F_ARB"/>
+ <enum name="GL_INTENSITY32F_ARB"/>
+ <enum name="GL_LUMINANCE32F_ARB"/>
+ <enum name="GL_LUMINANCE_ALPHA32F_ARB"/>
+ <enum name="GL_RGBA16F_ARB"/>
+ <enum name="GL_RGB16F_ARB"/>
+ <enum name="GL_ALPHA16F_ARB"/>
+ <enum name="GL_INTENSITY16F_ARB"/>
+ <enum name="GL_LUMINANCE16F_ARB"/>
+ <enum name="GL_LUMINANCE_ALPHA16F_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_gather" supported="gl|glcore">
+ <require>
+ <enum name="GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB"/>
+ <enum name="GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB"/>
+ <enum name="GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_mirrored_repeat" supported="gl">
+ <require>
+ <enum name="GL_MIRRORED_REPEAT_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_multisample" supported="gl|glcore">
+ <require>
+ <enum name="GL_SAMPLE_POSITION"/>
+ <enum name="GL_SAMPLE_MASK"/>
+ <enum name="GL_SAMPLE_MASK_VALUE"/>
+ <enum name="GL_MAX_SAMPLE_MASK_WORDS"/>
+ <enum name="GL_TEXTURE_2D_MULTISAMPLE"/>
+ <enum name="GL_PROXY_TEXTURE_2D_MULTISAMPLE"/>
+ <enum name="GL_TEXTURE_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_TEXTURE_BINDING_2D_MULTISAMPLE"/>
+ <enum name="GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_TEXTURE_SAMPLES"/>
+ <enum name="GL_TEXTURE_FIXED_SAMPLE_LOCATIONS"/>
+ <enum name="GL_SAMPLER_2D_MULTISAMPLE"/>
+ <enum name="GL_INT_SAMPLER_2D_MULTISAMPLE"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE"/>
+ <enum name="GL_SAMPLER_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY"/>
+ <enum name="GL_MAX_COLOR_TEXTURE_SAMPLES"/>
+ <enum name="GL_MAX_DEPTH_TEXTURE_SAMPLES"/>
+ <enum name="GL_MAX_INTEGER_SAMPLES"/>
+ <command name="glTexImage2DMultisample"/>
+ <command name="glTexImage3DMultisample"/>
+ <command name="glGetMultisamplefv"/>
+ <command name="glSampleMaski"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_non_power_of_two" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_query_levels" supported="gl|glcore">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_query_lod" supported="gl|glcore">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_rectangle" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_RECTANGLE_ARB"/>
+ <enum name="GL_TEXTURE_BINDING_RECTANGLE_ARB"/>
+ <enum name="GL_PROXY_TEXTURE_RECTANGLE_ARB"/>
+ <enum name="GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_rg" supported="gl|glcore">
+ <require>
+ <enum name="GL_RG"/>
+ <enum name="GL_RG_INTEGER"/>
+ <enum name="GL_R8"/>
+ <enum name="GL_R16"/>
+ <enum name="GL_RG8"/>
+ <enum name="GL_RG16"/>
+ <enum name="GL_R16F"/>
+ <enum name="GL_R32F"/>
+ <enum name="GL_RG16F"/>
+ <enum name="GL_RG32F"/>
+ <enum name="GL_R8I"/>
+ <enum name="GL_R8UI"/>
+ <enum name="GL_R16I"/>
+ <enum name="GL_R16UI"/>
+ <enum name="GL_R32I"/>
+ <enum name="GL_R32UI"/>
+ <enum name="GL_RG8I"/>
+ <enum name="GL_RG8UI"/>
+ <enum name="GL_RG16I"/>
+ <enum name="GL_RG16UI"/>
+ <enum name="GL_RG32I"/>
+ <enum name="GL_RG32UI"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_rgb10_a2ui" supported="gl|glcore">
+ <require>
+ <enum name="GL_RGB10_A2UI"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_storage" supported="gl|glcore">
+ <require>
+ <enum name="GL_TEXTURE_IMMUTABLE_FORMAT"/>
+ <command name="glTexStorage1D"/>
+ <command name="glTexStorage2D"/>
+ <command name="glTexStorage3D"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_storage_multisample" supported="gl|glcore">
+ <require>
+ <command name="glTexStorage2DMultisample"/>
+ <command name="glTexStorage3DMultisample"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_swizzle" supported="gl|glcore">
+ <require>
+ <enum name="GL_TEXTURE_SWIZZLE_R"/>
+ <enum name="GL_TEXTURE_SWIZZLE_G"/>
+ <enum name="GL_TEXTURE_SWIZZLE_B"/>
+ <enum name="GL_TEXTURE_SWIZZLE_A"/>
+ <enum name="GL_TEXTURE_SWIZZLE_RGBA"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_texture_view" supported="gl|glcore">
+ <require>
+ <enum name="GL_TEXTURE_VIEW_MIN_LEVEL"/>
+ <enum name="GL_TEXTURE_VIEW_NUM_LEVELS"/>
+ <enum name="GL_TEXTURE_VIEW_MIN_LAYER"/>
+ <enum name="GL_TEXTURE_VIEW_NUM_LAYERS"/>
+ <enum name="GL_TEXTURE_IMMUTABLE_LEVELS"/>
+ <command name="glTextureView"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_timer_query" supported="gl|glcore">
+ <require>
+ <enum name="GL_TIME_ELAPSED"/>
+ <enum name="GL_TIMESTAMP"/>
+ <command name="glQueryCounter"/>
+ <command name="glGetQueryObjecti64v"/>
+ <command name="glGetQueryObjectui64v"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_transform_feedback2" supported="gl|glcore">
+ <require>
+ <enum name="GL_TRANSFORM_FEEDBACK"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_PAUSED"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_ACTIVE"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BINDING"/>
+ <command name="glBindTransformFeedback"/>
+ <command name="glDeleteTransformFeedbacks"/>
+ <command name="glGenTransformFeedbacks"/>
+ <command name="glIsTransformFeedback"/>
+ <command name="glPauseTransformFeedback"/>
+ <command name="glResumeTransformFeedback"/>
+ <command name="glDrawTransformFeedback"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_transform_feedback3" supported="gl|glcore">
+ <require>
+ <enum name="GL_MAX_TRANSFORM_FEEDBACK_BUFFERS"/>
+ <enum name="GL_MAX_VERTEX_STREAMS"/>
+ <command name="glDrawTransformFeedbackStream"/>
+ <command name="glBeginQueryIndexed"/>
+ <command name="glEndQueryIndexed"/>
+ <command name="glGetQueryIndexediv"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_transform_feedback_instanced" supported="gl|glcore">
+ <require>
+ <command name="glDrawTransformFeedbackInstanced"/>
+ <command name="glDrawTransformFeedbackStreamInstanced"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_transpose_matrix" supported="gl">
+ <require>
+ <enum name="GL_TRANSPOSE_MODELVIEW_MATRIX_ARB"/>
+ <enum name="GL_TRANSPOSE_PROJECTION_MATRIX_ARB"/>
+ <enum name="GL_TRANSPOSE_TEXTURE_MATRIX_ARB"/>
+ <enum name="GL_TRANSPOSE_COLOR_MATRIX_ARB"/>
+ <command name="glLoadTransposeMatrixfARB"/>
+ <command name="glLoadTransposeMatrixdARB"/>
+ <command name="glMultTransposeMatrixfARB"/>
+ <command name="glMultTransposeMatrixdARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_uniform_buffer_object" supported="gl|glcore">
+ <require>
+ <enum name="GL_UNIFORM_BUFFER"/>
+ <enum name="GL_UNIFORM_BUFFER_BINDING"/>
+ <enum name="GL_UNIFORM_BUFFER_START"/>
+ <enum name="GL_UNIFORM_BUFFER_SIZE"/>
+ <enum name="GL_MAX_VERTEX_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_GEOMETRY_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_FRAGMENT_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_COMBINED_UNIFORM_BLOCKS"/>
+ <enum name="GL_MAX_UNIFORM_BUFFER_BINDINGS"/>
+ <enum name="GL_MAX_UNIFORM_BLOCK_SIZE"/>
+ <enum name="GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS"/>
+ <enum name="GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS"/>
+ <enum name="GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT"/>
+ <enum name="GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH"/>
+ <enum name="GL_ACTIVE_UNIFORM_BLOCKS"/>
+ <enum name="GL_UNIFORM_TYPE"/>
+ <enum name="GL_UNIFORM_SIZE"/>
+ <enum name="GL_UNIFORM_NAME_LENGTH"/>
+ <enum name="GL_UNIFORM_BLOCK_INDEX"/>
+ <enum name="GL_UNIFORM_OFFSET"/>
+ <enum name="GL_UNIFORM_ARRAY_STRIDE"/>
+ <enum name="GL_UNIFORM_MATRIX_STRIDE"/>
+ <enum name="GL_UNIFORM_IS_ROW_MAJOR"/>
+ <enum name="GL_UNIFORM_BLOCK_BINDING"/>
+ <enum name="GL_UNIFORM_BLOCK_DATA_SIZE"/>
+ <enum name="GL_UNIFORM_BLOCK_NAME_LENGTH"/>
+ <enum name="GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS"/>
+ <enum name="GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES"/>
+ <enum name="GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER"/>
+ <enum name="GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER"/>
+ <enum name="GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER"/>
+ <enum name="GL_INVALID_INDEX"/>
+ <command name="glGetUniformIndices"/>
+ <command name="glGetActiveUniformsiv"/>
+ <command name="glGetActiveUniformName"/>
+ <command name="glGetUniformBlockIndex"/>
+ <command name="glGetActiveUniformBlockiv"/>
+ <command name="glGetActiveUniformBlockName"/>
+ <command name="glUniformBlockBinding"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_vertex_array_bgra" supported="gl|glcore">
+ <require>
+ <enum name="GL_BGRA"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_vertex_array_object" supported="gl|glcore">
+ <require>
+ <enum name="GL_VERTEX_ARRAY_BINDING"/>
+ <command name="glBindVertexArray"/>
+ <command name="glDeleteVertexArrays"/>
+ <command name="glGenVertexArrays"/>
+ <command name="glIsVertexArray"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_vertex_attrib_64bit" supported="gl|glcore">
+ <require>
+ <enum name="GL_RGB32I"/>
+ <enum name="GL_DOUBLE_VEC2"/>
+ <enum name="GL_DOUBLE_VEC3"/>
+ <enum name="GL_DOUBLE_VEC4"/>
+ <enum name="GL_DOUBLE_MAT2"/>
+ <enum name="GL_DOUBLE_MAT3"/>
+ <enum name="GL_DOUBLE_MAT4"/>
+ <enum name="GL_DOUBLE_MAT2x3"/>
+ <enum name="GL_DOUBLE_MAT2x4"/>
+ <enum name="GL_DOUBLE_MAT3x2"/>
+ <enum name="GL_DOUBLE_MAT3x4"/>
+ <enum name="GL_DOUBLE_MAT4x2"/>
+ <enum name="GL_DOUBLE_MAT4x3"/>
+ <command name="glVertexAttribL1d"/>
+ <command name="glVertexAttribL2d"/>
+ <command name="glVertexAttribL3d"/>
+ <command name="glVertexAttribL4d"/>
+ <command name="glVertexAttribL1dv"/>
+ <command name="glVertexAttribL2dv"/>
+ <command name="glVertexAttribL3dv"/>
+ <command name="glVertexAttribL4dv"/>
+ <command name="glVertexAttribLPointer"/>
+ <command name="glGetVertexAttribLdv"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_vertex_attrib_binding" supported="gl|glcore">
+ <require>
+ <enum name="GL_VERTEX_ATTRIB_BINDING"/>
+ <enum name="GL_VERTEX_ATTRIB_RELATIVE_OFFSET"/>
+ <enum name="GL_VERTEX_BINDING_DIVISOR"/>
+ <enum name="GL_VERTEX_BINDING_OFFSET"/>
+ <enum name="GL_VERTEX_BINDING_STRIDE"/>
+ <enum name="GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET"/>
+ <enum name="GL_MAX_VERTEX_ATTRIB_BINDINGS"/>
+ <command name="glBindVertexBuffer"/>
+ <command name="glVertexAttribFormat"/>
+ <command name="glVertexAttribIFormat"/>
+ <command name="glVertexAttribLFormat"/>
+ <command name="glVertexAttribBinding"/>
+ <command name="glVertexBindingDivisor"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_vertex_blend" supported="gl">
+ <require>
+ <enum name="GL_MAX_VERTEX_UNITS_ARB"/>
+ <enum name="GL_ACTIVE_VERTEX_UNITS_ARB"/>
+ <enum name="GL_WEIGHT_SUM_UNITY_ARB"/>
+ <enum name="GL_VERTEX_BLEND_ARB"/>
+ <enum name="GL_CURRENT_WEIGHT_ARB"/>
+ <enum name="GL_WEIGHT_ARRAY_TYPE_ARB"/>
+ <enum name="GL_WEIGHT_ARRAY_STRIDE_ARB"/>
+ <enum name="GL_WEIGHT_ARRAY_SIZE_ARB"/>
+ <enum name="GL_WEIGHT_ARRAY_POINTER_ARB"/>
+ <enum name="GL_WEIGHT_ARRAY_ARB"/>
+ <enum name="GL_MODELVIEW0_ARB"/>
+ <enum name="GL_MODELVIEW1_ARB"/>
+ <enum name="GL_MODELVIEW2_ARB"/>
+ <enum name="GL_MODELVIEW3_ARB"/>
+ <enum name="GL_MODELVIEW4_ARB"/>
+ <enum name="GL_MODELVIEW5_ARB"/>
+ <enum name="GL_MODELVIEW6_ARB"/>
+ <enum name="GL_MODELVIEW7_ARB"/>
+ <enum name="GL_MODELVIEW8_ARB"/>
+ <enum name="GL_MODELVIEW9_ARB"/>
+ <enum name="GL_MODELVIEW10_ARB"/>
+ <enum name="GL_MODELVIEW11_ARB"/>
+ <enum name="GL_MODELVIEW12_ARB"/>
+ <enum name="GL_MODELVIEW13_ARB"/>
+ <enum name="GL_MODELVIEW14_ARB"/>
+ <enum name="GL_MODELVIEW15_ARB"/>
+ <enum name="GL_MODELVIEW16_ARB"/>
+ <enum name="GL_MODELVIEW17_ARB"/>
+ <enum name="GL_MODELVIEW18_ARB"/>
+ <enum name="GL_MODELVIEW19_ARB"/>
+ <enum name="GL_MODELVIEW20_ARB"/>
+ <enum name="GL_MODELVIEW21_ARB"/>
+ <enum name="GL_MODELVIEW22_ARB"/>
+ <enum name="GL_MODELVIEW23_ARB"/>
+ <enum name="GL_MODELVIEW24_ARB"/>
+ <enum name="GL_MODELVIEW25_ARB"/>
+ <enum name="GL_MODELVIEW26_ARB"/>
+ <enum name="GL_MODELVIEW27_ARB"/>
+ <enum name="GL_MODELVIEW28_ARB"/>
+ <enum name="GL_MODELVIEW29_ARB"/>
+ <enum name="GL_MODELVIEW30_ARB"/>
+ <enum name="GL_MODELVIEW31_ARB"/>
+ <command name="glWeightbvARB"/>
+ <command name="glWeightsvARB"/>
+ <command name="glWeightivARB"/>
+ <command name="glWeightfvARB"/>
+ <command name="glWeightdvARB"/>
+ <command name="glWeightubvARB"/>
+ <command name="glWeightusvARB"/>
+ <command name="glWeightuivARB"/>
+ <command name="glWeightPointerARB"/>
+ <command name="glVertexBlendARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_vertex_buffer_object" supported="gl">
+ <require>
+ <enum name="GL_BUFFER_SIZE_ARB"/>
+ <enum name="GL_BUFFER_USAGE_ARB"/>
+ <enum name="GL_ARRAY_BUFFER_ARB"/>
+ <enum name="GL_ELEMENT_ARRAY_BUFFER_ARB"/>
+ <enum name="GL_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum name="GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum name="GL_VERTEX_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum name="GL_NORMAL_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum name="GL_COLOR_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum name="GL_INDEX_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum name="GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB"/>
+ <enum name="GL_READ_ONLY_ARB"/>
+ <enum name="GL_WRITE_ONLY_ARB"/>
+ <enum name="GL_READ_WRITE_ARB"/>
+ <enum name="GL_BUFFER_ACCESS_ARB"/>
+ <enum name="GL_BUFFER_MAPPED_ARB"/>
+ <enum name="GL_BUFFER_MAP_POINTER_ARB"/>
+ <enum name="GL_STREAM_DRAW_ARB"/>
+ <enum name="GL_STREAM_READ_ARB"/>
+ <enum name="GL_STREAM_COPY_ARB"/>
+ <enum name="GL_STATIC_DRAW_ARB"/>
+ <enum name="GL_STATIC_READ_ARB"/>
+ <enum name="GL_STATIC_COPY_ARB"/>
+ <enum name="GL_DYNAMIC_DRAW_ARB"/>
+ <enum name="GL_DYNAMIC_READ_ARB"/>
+ <enum name="GL_DYNAMIC_COPY_ARB"/>
+ <command name="glBindBufferARB"/>
+ <command name="glDeleteBuffersARB"/>
+ <command name="glGenBuffersARB"/>
+ <command name="glIsBufferARB"/>
+ <command name="glBufferDataARB"/>
+ <command name="glBufferSubDataARB"/>
+ <command name="glGetBufferSubDataARB"/>
+ <command name="glMapBufferARB"/>
+ <command name="glUnmapBufferARB"/>
+ <command name="glGetBufferParameterivARB"/>
+ <command name="glGetBufferPointervARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_vertex_program" supported="gl">
+ <require>
+ <enum name="GL_COLOR_SUM_ARB"/>
+ <enum name="GL_VERTEX_PROGRAM_ARB"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB"/>
+ <enum name="GL_CURRENT_VERTEX_ATTRIB_ARB"/>
+ <enum name="GL_PROGRAM_LENGTH_ARB"/>
+ <enum name="GL_PROGRAM_STRING_ARB"/>
+ <enum name="GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB"/>
+ <enum name="GL_MAX_PROGRAM_MATRICES_ARB"/>
+ <enum name="GL_CURRENT_MATRIX_STACK_DEPTH_ARB"/>
+ <enum name="GL_CURRENT_MATRIX_ARB"/>
+ <enum name="GL_VERTEX_PROGRAM_POINT_SIZE_ARB"/>
+ <enum name="GL_VERTEX_PROGRAM_TWO_SIDE_ARB"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB"/>
+ <enum name="GL_PROGRAM_ERROR_POSITION_ARB"/>
+ <enum name="GL_PROGRAM_BINDING_ARB"/>
+ <enum name="GL_MAX_VERTEX_ATTRIBS_ARB"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB"/>
+ <enum name="GL_PROGRAM_ERROR_STRING_ARB"/>
+ <enum name="GL_PROGRAM_FORMAT_ASCII_ARB"/>
+ <enum name="GL_PROGRAM_FORMAT_ARB"/>
+ <enum name="GL_PROGRAM_INSTRUCTIONS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_INSTRUCTIONS_ARB"/>
+ <enum name="GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB"/>
+ <enum name="GL_PROGRAM_TEMPORARIES_ARB"/>
+ <enum name="GL_MAX_PROGRAM_TEMPORARIES_ARB"/>
+ <enum name="GL_PROGRAM_NATIVE_TEMPORARIES_ARB"/>
+ <enum name="GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB"/>
+ <enum name="GL_PROGRAM_PARAMETERS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_PARAMETERS_ARB"/>
+ <enum name="GL_PROGRAM_NATIVE_PARAMETERS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB"/>
+ <enum name="GL_PROGRAM_ATTRIBS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_ATTRIBS_ARB"/>
+ <enum name="GL_PROGRAM_NATIVE_ATTRIBS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB"/>
+ <enum name="GL_PROGRAM_ADDRESS_REGISTERS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB"/>
+ <enum name="GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB"/>
+ <enum name="GL_MAX_PROGRAM_ENV_PARAMETERS_ARB"/>
+ <enum name="GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB"/>
+ <enum name="GL_TRANSPOSE_CURRENT_MATRIX_ARB"/>
+ <enum name="GL_MATRIX0_ARB"/>
+ <enum name="GL_MATRIX1_ARB"/>
+ <enum name="GL_MATRIX2_ARB"/>
+ <enum name="GL_MATRIX3_ARB"/>
+ <enum name="GL_MATRIX4_ARB"/>
+ <enum name="GL_MATRIX5_ARB"/>
+ <enum name="GL_MATRIX6_ARB"/>
+ <enum name="GL_MATRIX7_ARB"/>
+ <enum name="GL_MATRIX8_ARB"/>
+ <enum name="GL_MATRIX9_ARB"/>
+ <enum name="GL_MATRIX10_ARB"/>
+ <enum name="GL_MATRIX11_ARB"/>
+ <enum name="GL_MATRIX12_ARB"/>
+ <enum name="GL_MATRIX13_ARB"/>
+ <enum name="GL_MATRIX14_ARB"/>
+ <enum name="GL_MATRIX15_ARB"/>
+ <enum name="GL_MATRIX16_ARB"/>
+ <enum name="GL_MATRIX17_ARB"/>
+ <enum name="GL_MATRIX18_ARB"/>
+ <enum name="GL_MATRIX19_ARB"/>
+ <enum name="GL_MATRIX20_ARB"/>
+ <enum name="GL_MATRIX21_ARB"/>
+ <enum name="GL_MATRIX22_ARB"/>
+ <enum name="GL_MATRIX23_ARB"/>
+ <enum name="GL_MATRIX24_ARB"/>
+ <enum name="GL_MATRIX25_ARB"/>
+ <enum name="GL_MATRIX26_ARB"/>
+ <enum name="GL_MATRIX27_ARB"/>
+ <enum name="GL_MATRIX28_ARB"/>
+ <enum name="GL_MATRIX29_ARB"/>
+ <enum name="GL_MATRIX30_ARB"/>
+ <enum name="GL_MATRIX31_ARB"/>
+ <command name="glVertexAttrib1dARB"/>
+ <command name="glVertexAttrib1dvARB"/>
+ <command name="glVertexAttrib1fARB"/>
+ <command name="glVertexAttrib1fvARB"/>
+ <command name="glVertexAttrib1sARB"/>
+ <command name="glVertexAttrib1svARB"/>
+ <command name="glVertexAttrib2dARB"/>
+ <command name="glVertexAttrib2dvARB"/>
+ <command name="glVertexAttrib2fARB"/>
+ <command name="glVertexAttrib2fvARB"/>
+ <command name="glVertexAttrib2sARB"/>
+ <command name="glVertexAttrib2svARB"/>
+ <command name="glVertexAttrib3dARB"/>
+ <command name="glVertexAttrib3dvARB"/>
+ <command name="glVertexAttrib3fARB"/>
+ <command name="glVertexAttrib3fvARB"/>
+ <command name="glVertexAttrib3sARB"/>
+ <command name="glVertexAttrib3svARB"/>
+ <command name="glVertexAttrib4NbvARB"/>
+ <command name="glVertexAttrib4NivARB"/>
+ <command name="glVertexAttrib4NsvARB"/>
+ <command name="glVertexAttrib4NubARB"/>
+ <command name="glVertexAttrib4NubvARB"/>
+ <command name="glVertexAttrib4NuivARB"/>
+ <command name="glVertexAttrib4NusvARB"/>
+ <command name="glVertexAttrib4bvARB"/>
+ <command name="glVertexAttrib4dARB"/>
+ <command name="glVertexAttrib4dvARB"/>
+ <command name="glVertexAttrib4fARB"/>
+ <command name="glVertexAttrib4fvARB"/>
+ <command name="glVertexAttrib4ivARB"/>
+ <command name="glVertexAttrib4sARB"/>
+ <command name="glVertexAttrib4svARB"/>
+ <command name="glVertexAttrib4ubvARB"/>
+ <command name="glVertexAttrib4uivARB"/>
+ <command name="glVertexAttrib4usvARB"/>
+ <command name="glVertexAttribPointerARB"/>
+ <command name="glEnableVertexAttribArrayARB"/>
+ <command name="glDisableVertexAttribArrayARB"/>
+ <command name="glProgramStringARB"/>
+ <command name="glBindProgramARB"/>
+ <command name="glDeleteProgramsARB"/>
+ <command name="glGenProgramsARB"/>
+ <command name="glProgramEnvParameter4dARB"/>
+ <command name="glProgramEnvParameter4dvARB"/>
+ <command name="glProgramEnvParameter4fARB"/>
+ <command name="glProgramEnvParameter4fvARB"/>
+ <command name="glProgramLocalParameter4dARB"/>
+ <command name="glProgramLocalParameter4dvARB"/>
+ <command name="glProgramLocalParameter4fARB"/>
+ <command name="glProgramLocalParameter4fvARB"/>
+ <command name="glGetProgramEnvParameterdvARB"/>
+ <command name="glGetProgramEnvParameterfvARB"/>
+ <command name="glGetProgramLocalParameterdvARB"/>
+ <command name="glGetProgramLocalParameterfvARB"/>
+ <command name="glGetProgramivARB"/>
+ <command name="glGetProgramStringARB"/>
+ <command name="glGetVertexAttribdvARB"/>
+ <command name="glGetVertexAttribfvARB"/>
+ <command name="glGetVertexAttribivARB"/>
+ <command name="glGetVertexAttribPointervARB"/>
+ <command name="glIsProgramARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_vertex_shader" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_SHADER_ARB"/>
+ <enum name="GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB"/>
+ <enum name="GL_MAX_VARYING_FLOATS_ARB"/>
+ <enum name="GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB"/>
+ <enum name="GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB"/>
+ <enum name="GL_OBJECT_ACTIVE_ATTRIBUTES_ARB"/>
+ <enum name="GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB"/>
+ <command name="glBindAttribLocationARB"/>
+ <command name="glGetActiveAttribARB"/>
+ <command name="glGetAttribLocationARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_vertex_type_2_10_10_10_rev" supported="gl|glcore">
+ <require>
+ <enum name="GL_UNSIGNED_INT_2_10_10_10_REV"/>
+ <enum name="GL_INT_2_10_10_10_REV"/>
+ <command name="glVertexAttribP1ui"/>
+ <command name="glVertexAttribP1uiv"/>
+ <command name="glVertexAttribP2ui"/>
+ <command name="glVertexAttribP2uiv"/>
+ <command name="glVertexAttribP3ui"/>
+ <command name="glVertexAttribP3uiv"/>
+ <command name="glVertexAttribP4ui"/>
+ <command name="glVertexAttribP4uiv"/>
+ </require>
+ <require api="gl" profile="compatibility">
+ <command name="glVertexP2ui"/>
+ <command name="glVertexP2uiv"/>
+ <command name="glVertexP3ui"/>
+ <command name="glVertexP3uiv"/>
+ <command name="glVertexP4ui"/>
+ <command name="glVertexP4uiv"/>
+ <command name="glTexCoordP1ui"/>
+ <command name="glTexCoordP1uiv"/>
+ <command name="glTexCoordP2ui"/>
+ <command name="glTexCoordP2uiv"/>
+ <command name="glTexCoordP3ui"/>
+ <command name="glTexCoordP3uiv"/>
+ <command name="glTexCoordP4ui"/>
+ <command name="glTexCoordP4uiv"/>
+ <command name="glMultiTexCoordP1ui"/>
+ <command name="glMultiTexCoordP1uiv"/>
+ <command name="glMultiTexCoordP2ui"/>
+ <command name="glMultiTexCoordP2uiv"/>
+ <command name="glMultiTexCoordP3ui"/>
+ <command name="glMultiTexCoordP3uiv"/>
+ <command name="glMultiTexCoordP4ui"/>
+ <command name="glMultiTexCoordP4uiv"/>
+ <command name="glNormalP3ui"/>
+ <command name="glNormalP3uiv"/>
+ <command name="glColorP3ui"/>
+ <command name="glColorP3uiv"/>
+ <command name="glColorP4ui"/>
+ <command name="glColorP4uiv"/>
+ <command name="glSecondaryColorP3ui"/>
+ <command name="glSecondaryColorP3uiv"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_viewport_array" supported="gl|glcore">
+ <require>
+ <enum name="GL_SCISSOR_BOX"/>
+ <enum name="GL_VIEWPORT"/>
+ <enum name="GL_DEPTH_RANGE"/>
+ <enum name="GL_SCISSOR_TEST"/>
+ <enum name="GL_MAX_VIEWPORTS"/>
+ <enum name="GL_VIEWPORT_SUBPIXEL_BITS"/>
+ <enum name="GL_VIEWPORT_BOUNDS_RANGE"/>
+ <enum name="GL_LAYER_PROVOKING_VERTEX"/>
+ <enum name="GL_VIEWPORT_INDEX_PROVOKING_VERTEX"/>
+ <enum name="GL_UNDEFINED_VERTEX"/>
+ <enum name="GL_FIRST_VERTEX_CONVENTION"/>
+ <enum name="GL_LAST_VERTEX_CONVENTION"/>
+ <enum name="GL_PROVOKING_VERTEX"/>
+ <command name="glViewportArrayv"/>
+ <command name="glViewportIndexedf"/>
+ <command name="glViewportIndexedfv"/>
+ <command name="glScissorArrayv"/>
+ <command name="glScissorIndexed"/>
+ <command name="glScissorIndexedv"/>
+ <command name="glDepthRangeArrayv"/>
+ <command name="glDepthRangeIndexed"/>
+ <command name="glGetFloati_v"/>
+ <command name="glGetDoublei_v"/>
+ </require>
+ </extension>
+ <extension name="GL_ARB_window_pos" supported="gl">
+ <require>
+ <command name="glWindowPos2dARB"/>
+ <command name="glWindowPos2dvARB"/>
+ <command name="glWindowPos2fARB"/>
+ <command name="glWindowPos2fvARB"/>
+ <command name="glWindowPos2iARB"/>
+ <command name="glWindowPos2ivARB"/>
+ <command name="glWindowPos2sARB"/>
+ <command name="glWindowPos2svARB"/>
+ <command name="glWindowPos3dARB"/>
+ <command name="glWindowPos3dvARB"/>
+ <command name="glWindowPos3fARB"/>
+ <command name="glWindowPos3fvARB"/>
+ <command name="glWindowPos3iARB"/>
+ <command name="glWindowPos3ivARB"/>
+ <command name="glWindowPos3sARB"/>
+ <command name="glWindowPos3svARB"/>
+ </require>
+ </extension>
+ <extension name="GL_ARM_mali_program_binary" supported="gles2">
+ <require>
+ <enum name="GL_MALI_PROGRAM_BINARY_ARM"/>
+ </require>
+ </extension>
+ <extension name="GL_ARM_mali_shader_binary" supported="gles2">
+ <require>
+ <enum name="GL_MALI_SHADER_BINARY_ARM"/>
+ </require>
+ </extension>
+ <extension name="GL_ARM_rgba8" supported="gles1|gles2">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_ATI_draw_buffers" supported="gl">
+ <require>
+ <enum name="GL_MAX_DRAW_BUFFERS_ATI"/>
+ <enum name="GL_DRAW_BUFFER0_ATI"/>
+ <enum name="GL_DRAW_BUFFER1_ATI"/>
+ <enum name="GL_DRAW_BUFFER2_ATI"/>
+ <enum name="GL_DRAW_BUFFER3_ATI"/>
+ <enum name="GL_DRAW_BUFFER4_ATI"/>
+ <enum name="GL_DRAW_BUFFER5_ATI"/>
+ <enum name="GL_DRAW_BUFFER6_ATI"/>
+ <enum name="GL_DRAW_BUFFER7_ATI"/>
+ <enum name="GL_DRAW_BUFFER8_ATI"/>
+ <enum name="GL_DRAW_BUFFER9_ATI"/>
+ <enum name="GL_DRAW_BUFFER10_ATI"/>
+ <enum name="GL_DRAW_BUFFER11_ATI"/>
+ <enum name="GL_DRAW_BUFFER12_ATI"/>
+ <enum name="GL_DRAW_BUFFER13_ATI"/>
+ <enum name="GL_DRAW_BUFFER14_ATI"/>
+ <enum name="GL_DRAW_BUFFER15_ATI"/>
+ <command name="glDrawBuffersATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_element_array" supported="gl">
+ <require>
+ <enum name="GL_ELEMENT_ARRAY_ATI"/>
+ <enum name="GL_ELEMENT_ARRAY_TYPE_ATI"/>
+ <enum name="GL_ELEMENT_ARRAY_POINTER_ATI"/>
+ <command name="glElementPointerATI"/>
+ <command name="glDrawElementArrayATI"/>
+ <command name="glDrawRangeElementArrayATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_envmap_bumpmap" supported="gl">
+ <require>
+ <enum name="GL_BUMP_ROT_MATRIX_ATI"/>
+ <enum name="GL_BUMP_ROT_MATRIX_SIZE_ATI"/>
+ <enum name="GL_BUMP_NUM_TEX_UNITS_ATI"/>
+ <enum name="GL_BUMP_TEX_UNITS_ATI"/>
+ <enum name="GL_DUDV_ATI"/>
+ <enum name="GL_DU8DV8_ATI"/>
+ <enum name="GL_BUMP_ENVMAP_ATI"/>
+ <enum name="GL_BUMP_TARGET_ATI"/>
+ <command name="glTexBumpParameterivATI"/>
+ <command name="glTexBumpParameterfvATI"/>
+ <command name="glGetTexBumpParameterivATI"/>
+ <command name="glGetTexBumpParameterfvATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_fragment_shader" supported="gl">
+ <require>
+ <enum name="GL_FRAGMENT_SHADER_ATI"/>
+ <enum name="GL_REG_0_ATI"/>
+ <enum name="GL_REG_1_ATI"/>
+ <enum name="GL_REG_2_ATI"/>
+ <enum name="GL_REG_3_ATI"/>
+ <enum name="GL_REG_4_ATI"/>
+ <enum name="GL_REG_5_ATI"/>
+ <enum name="GL_REG_6_ATI"/>
+ <enum name="GL_REG_7_ATI"/>
+ <enum name="GL_REG_8_ATI"/>
+ <enum name="GL_REG_9_ATI"/>
+ <enum name="GL_REG_10_ATI"/>
+ <enum name="GL_REG_11_ATI"/>
+ <enum name="GL_REG_12_ATI"/>
+ <enum name="GL_REG_13_ATI"/>
+ <enum name="GL_REG_14_ATI"/>
+ <enum name="GL_REG_15_ATI"/>
+ <enum name="GL_REG_16_ATI"/>
+ <enum name="GL_REG_17_ATI"/>
+ <enum name="GL_REG_18_ATI"/>
+ <enum name="GL_REG_19_ATI"/>
+ <enum name="GL_REG_20_ATI"/>
+ <enum name="GL_REG_21_ATI"/>
+ <enum name="GL_REG_22_ATI"/>
+ <enum name="GL_REG_23_ATI"/>
+ <enum name="GL_REG_24_ATI"/>
+ <enum name="GL_REG_25_ATI"/>
+ <enum name="GL_REG_26_ATI"/>
+ <enum name="GL_REG_27_ATI"/>
+ <enum name="GL_REG_28_ATI"/>
+ <enum name="GL_REG_29_ATI"/>
+ <enum name="GL_REG_30_ATI"/>
+ <enum name="GL_REG_31_ATI"/>
+ <enum name="GL_CON_0_ATI"/>
+ <enum name="GL_CON_1_ATI"/>
+ <enum name="GL_CON_2_ATI"/>
+ <enum name="GL_CON_3_ATI"/>
+ <enum name="GL_CON_4_ATI"/>
+ <enum name="GL_CON_5_ATI"/>
+ <enum name="GL_CON_6_ATI"/>
+ <enum name="GL_CON_7_ATI"/>
+ <enum name="GL_CON_8_ATI"/>
+ <enum name="GL_CON_9_ATI"/>
+ <enum name="GL_CON_10_ATI"/>
+ <enum name="GL_CON_11_ATI"/>
+ <enum name="GL_CON_12_ATI"/>
+ <enum name="GL_CON_13_ATI"/>
+ <enum name="GL_CON_14_ATI"/>
+ <enum name="GL_CON_15_ATI"/>
+ <enum name="GL_CON_16_ATI"/>
+ <enum name="GL_CON_17_ATI"/>
+ <enum name="GL_CON_18_ATI"/>
+ <enum name="GL_CON_19_ATI"/>
+ <enum name="GL_CON_20_ATI"/>
+ <enum name="GL_CON_21_ATI"/>
+ <enum name="GL_CON_22_ATI"/>
+ <enum name="GL_CON_23_ATI"/>
+ <enum name="GL_CON_24_ATI"/>
+ <enum name="GL_CON_25_ATI"/>
+ <enum name="GL_CON_26_ATI"/>
+ <enum name="GL_CON_27_ATI"/>
+ <enum name="GL_CON_28_ATI"/>
+ <enum name="GL_CON_29_ATI"/>
+ <enum name="GL_CON_30_ATI"/>
+ <enum name="GL_CON_31_ATI"/>
+ <enum name="GL_MOV_ATI"/>
+ <enum name="GL_ADD_ATI"/>
+ <enum name="GL_MUL_ATI"/>
+ <enum name="GL_SUB_ATI"/>
+ <enum name="GL_DOT3_ATI"/>
+ <enum name="GL_DOT4_ATI"/>
+ <enum name="GL_MAD_ATI"/>
+ <enum name="GL_LERP_ATI"/>
+ <enum name="GL_CND_ATI"/>
+ <enum name="GL_CND0_ATI"/>
+ <enum name="GL_DOT2_ADD_ATI"/>
+ <enum name="GL_SECONDARY_INTERPOLATOR_ATI"/>
+ <enum name="GL_NUM_FRAGMENT_REGISTERS_ATI"/>
+ <enum name="GL_NUM_FRAGMENT_CONSTANTS_ATI"/>
+ <enum name="GL_NUM_PASSES_ATI"/>
+ <enum name="GL_NUM_INSTRUCTIONS_PER_PASS_ATI"/>
+ <enum name="GL_NUM_INSTRUCTIONS_TOTAL_ATI"/>
+ <enum name="GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI"/>
+ <enum name="GL_NUM_LOOPBACK_COMPONENTS_ATI"/>
+ <enum name="GL_COLOR_ALPHA_PAIRING_ATI"/>
+ <enum name="GL_SWIZZLE_STR_ATI"/>
+ <enum name="GL_SWIZZLE_STQ_ATI"/>
+ <enum name="GL_SWIZZLE_STR_DR_ATI"/>
+ <enum name="GL_SWIZZLE_STQ_DQ_ATI"/>
+ <enum name="GL_SWIZZLE_STRQ_ATI"/>
+ <enum name="GL_SWIZZLE_STRQ_DQ_ATI"/>
+ <enum name="GL_RED_BIT_ATI"/>
+ <enum name="GL_GREEN_BIT_ATI"/>
+ <enum name="GL_BLUE_BIT_ATI"/>
+ <enum name="GL_2X_BIT_ATI"/>
+ <enum name="GL_4X_BIT_ATI"/>
+ <enum name="GL_8X_BIT_ATI"/>
+ <enum name="GL_HALF_BIT_ATI"/>
+ <enum name="GL_QUARTER_BIT_ATI"/>
+ <enum name="GL_EIGHTH_BIT_ATI"/>
+ <enum name="GL_SATURATE_BIT_ATI"/>
+ <enum name="GL_COMP_BIT_ATI"/>
+ <enum name="GL_NEGATE_BIT_ATI"/>
+ <enum name="GL_BIAS_BIT_ATI"/>
+ <command name="glGenFragmentShadersATI"/>
+ <command name="glBindFragmentShaderATI"/>
+ <command name="glDeleteFragmentShaderATI"/>
+ <command name="glBeginFragmentShaderATI"/>
+ <command name="glEndFragmentShaderATI"/>
+ <command name="glPassTexCoordATI"/>
+ <command name="glSampleMapATI"/>
+ <command name="glColorFragmentOp1ATI"/>
+ <command name="glColorFragmentOp2ATI"/>
+ <command name="glColorFragmentOp3ATI"/>
+ <command name="glAlphaFragmentOp1ATI"/>
+ <command name="glAlphaFragmentOp2ATI"/>
+ <command name="glAlphaFragmentOp3ATI"/>
+ <command name="glSetFragmentShaderConstantATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_map_object_buffer" supported="gl">
+ <require>
+ <command name="glMapObjectBufferATI"/>
+ <command name="glUnmapObjectBufferATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_meminfo" supported="gl">
+ <require>
+ <enum name="GL_VBO_FREE_MEMORY_ATI"/>
+ <enum name="GL_TEXTURE_FREE_MEMORY_ATI"/>
+ <enum name="GL_RENDERBUFFER_FREE_MEMORY_ATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_pixel_format_float" supported="gl" comment="WGL extension defining some associated GL enums. ATI does not export this extension.">
+ <require>
+ <enum name="GL_RGBA_FLOAT_MODE_ATI"/>
+ <enum name="GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_pn_triangles" supported="gl">
+ <require>
+ <enum name="GL_PN_TRIANGLES_ATI"/>
+ <enum name="GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI"/>
+ <enum name="GL_PN_TRIANGLES_POINT_MODE_ATI"/>
+ <enum name="GL_PN_TRIANGLES_NORMAL_MODE_ATI"/>
+ <enum name="GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI"/>
+ <enum name="GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI"/>
+ <enum name="GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI"/>
+ <enum name="GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI"/>
+ <enum name="GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI"/>
+ <command name="glPNTrianglesiATI"/>
+ <command name="glPNTrianglesfATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_separate_stencil" supported="gl">
+ <require>
+ <enum name="GL_STENCIL_BACK_FUNC_ATI"/>
+ <enum name="GL_STENCIL_BACK_FAIL_ATI"/>
+ <enum name="GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI"/>
+ <enum name="GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI"/>
+ <command name="glStencilOpSeparateATI"/>
+ <command name="glStencilFuncSeparateATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_text_fragment_shader" supported="gl">
+ <require>
+ <enum name="GL_TEXT_FRAGMENT_SHADER_ATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_texture_env_combine3" supported="gl">
+ <require>
+ <enum name="GL_MODULATE_ADD_ATI"/>
+ <enum name="GL_MODULATE_SIGNED_ADD_ATI"/>
+ <enum name="GL_MODULATE_SUBTRACT_ATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_texture_float" supported="gl">
+ <require>
+ <enum name="GL_RGBA_FLOAT32_ATI"/>
+ <enum name="GL_RGB_FLOAT32_ATI"/>
+ <enum name="GL_ALPHA_FLOAT32_ATI"/>
+ <enum name="GL_INTENSITY_FLOAT32_ATI"/>
+ <enum name="GL_LUMINANCE_FLOAT32_ATI"/>
+ <enum name="GL_LUMINANCE_ALPHA_FLOAT32_ATI"/>
+ <enum name="GL_RGBA_FLOAT16_ATI"/>
+ <enum name="GL_RGB_FLOAT16_ATI"/>
+ <enum name="GL_ALPHA_FLOAT16_ATI"/>
+ <enum name="GL_INTENSITY_FLOAT16_ATI"/>
+ <enum name="GL_LUMINANCE_FLOAT16_ATI"/>
+ <enum name="GL_LUMINANCE_ALPHA_FLOAT16_ATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_texture_mirror_once" supported="gl">
+ <require>
+ <enum name="GL_MIRROR_CLAMP_ATI"/>
+ <enum name="GL_MIRROR_CLAMP_TO_EDGE_ATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_vertex_array_object" supported="gl">
+ <require>
+ <enum name="GL_STATIC_ATI"/>
+ <enum name="GL_DYNAMIC_ATI"/>
+ <enum name="GL_PRESERVE_ATI"/>
+ <enum name="GL_DISCARD_ATI"/>
+ <enum name="GL_OBJECT_BUFFER_SIZE_ATI"/>
+ <enum name="GL_OBJECT_BUFFER_USAGE_ATI"/>
+ <enum name="GL_ARRAY_OBJECT_BUFFER_ATI"/>
+ <enum name="GL_ARRAY_OBJECT_OFFSET_ATI"/>
+ <command name="glNewObjectBufferATI"/>
+ <command name="glIsObjectBufferATI"/>
+ <command name="glUpdateObjectBufferATI"/>
+ <command name="glGetObjectBufferfvATI"/>
+ <command name="glGetObjectBufferivATI"/>
+ <command name="glFreeObjectBufferATI"/>
+ <command name="glArrayObjectATI"/>
+ <command name="glGetArrayObjectfvATI"/>
+ <command name="glGetArrayObjectivATI"/>
+ <command name="glVariantArrayObjectATI"/>
+ <command name="glGetVariantArrayObjectfvATI"/>
+ <command name="glGetVariantArrayObjectivATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_vertex_attrib_array_object" supported="gl">
+ <require>
+ <command name="glVertexAttribArrayObjectATI"/>
+ <command name="glGetVertexAttribArrayObjectfvATI"/>
+ <command name="glGetVertexAttribArrayObjectivATI"/>
+ </require>
+ </extension>
+ <extension name="GL_ATI_vertex_streams" supported="gl">
+ <require>
+ <enum name="GL_MAX_VERTEX_STREAMS_ATI"/>
+ <enum name="GL_VERTEX_STREAM0_ATI"/>
+ <enum name="GL_VERTEX_STREAM1_ATI"/>
+ <enum name="GL_VERTEX_STREAM2_ATI"/>
+ <enum name="GL_VERTEX_STREAM3_ATI"/>
+ <enum name="GL_VERTEX_STREAM4_ATI"/>
+ <enum name="GL_VERTEX_STREAM5_ATI"/>
+ <enum name="GL_VERTEX_STREAM6_ATI"/>
+ <enum name="GL_VERTEX_STREAM7_ATI"/>
+ <enum name="GL_VERTEX_SOURCE_ATI"/>
+ <command name="glVertexStream1sATI"/>
+ <command name="glVertexStream1svATI"/>
+ <command name="glVertexStream1iATI"/>
+ <command name="glVertexStream1ivATI"/>
+ <command name="glVertexStream1fATI"/>
+ <command name="glVertexStream1fvATI"/>
+ <command name="glVertexStream1dATI"/>
+ <command name="glVertexStream1dvATI"/>
+ <command name="glVertexStream2sATI"/>
+ <command name="glVertexStream2svATI"/>
+ <command name="glVertexStream2iATI"/>
+ <command name="glVertexStream2ivATI"/>
+ <command name="glVertexStream2fATI"/>
+ <command name="glVertexStream2fvATI"/>
+ <command name="glVertexStream2dATI"/>
+ <command name="glVertexStream2dvATI"/>
+ <command name="glVertexStream3sATI"/>
+ <command name="glVertexStream3svATI"/>
+ <command name="glVertexStream3iATI"/>
+ <command name="glVertexStream3ivATI"/>
+ <command name="glVertexStream3fATI"/>
+ <command name="glVertexStream3fvATI"/>
+ <command name="glVertexStream3dATI"/>
+ <command name="glVertexStream3dvATI"/>
+ <command name="glVertexStream4sATI"/>
+ <command name="glVertexStream4svATI"/>
+ <command name="glVertexStream4iATI"/>
+ <command name="glVertexStream4ivATI"/>
+ <command name="glVertexStream4fATI"/>
+ <command name="glVertexStream4fvATI"/>
+ <command name="glVertexStream4dATI"/>
+ <command name="glVertexStream4dvATI"/>
+ <command name="glNormalStream3bATI"/>
+ <command name="glNormalStream3bvATI"/>
+ <command name="glNormalStream3sATI"/>
+ <command name="glNormalStream3svATI"/>
+ <command name="glNormalStream3iATI"/>
+ <command name="glNormalStream3ivATI"/>
+ <command name="glNormalStream3fATI"/>
+ <command name="glNormalStream3fvATI"/>
+ <command name="glNormalStream3dATI"/>
+ <command name="glNormalStream3dvATI"/>
+ <command name="glClientActiveVertexStreamATI"/>
+ <command name="glVertexBlendEnviATI"/>
+ <command name="glVertexBlendEnvfATI"/>
+ </require>
+ </extension>
+ <extension name="GL_DMP_shader_binary" supported="gles2">
+ <require>
+ <enum name="GL_SHADER_BINARY_DMP"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_422_pixels" supported="gl">
+ <require>
+ <enum name="GL_422_EXT"/>
+ <enum name="GL_422_REV_EXT"/>
+ <enum name="GL_422_AVERAGE_EXT"/>
+ <enum name="GL_422_REV_AVERAGE_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_abgr" supported="gl">
+ <require>
+ <enum name="GL_ABGR_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_bgra" supported="gl">
+ <require>
+ <enum name="GL_BGR_EXT"/>
+ <enum name="GL_BGRA_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_bindable_uniform" supported="gl">
+ <require>
+ <enum name="GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT"/>
+ <enum name="GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT"/>
+ <enum name="GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT"/>
+ <enum name="GL_MAX_BINDABLE_UNIFORM_SIZE_EXT"/>
+ <enum name="GL_UNIFORM_BUFFER_EXT"/>
+ <enum name="GL_UNIFORM_BUFFER_BINDING_EXT"/>
+ <command name="glUniformBufferEXT"/>
+ <command name="glGetUniformBufferSizeEXT"/>
+ <command name="glGetUniformOffsetEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_blend_color" supported="gl">
+ <require>
+ <enum name="GL_CONSTANT_COLOR_EXT"/>
+ <enum name="GL_ONE_MINUS_CONSTANT_COLOR_EXT"/>
+ <enum name="GL_CONSTANT_ALPHA_EXT"/>
+ <enum name="GL_ONE_MINUS_CONSTANT_ALPHA_EXT"/>
+ <enum name="GL_BLEND_COLOR_EXT"/>
+ <command name="glBlendColorEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_blend_equation_separate" supported="gl">
+ <require>
+ <enum name="GL_BLEND_EQUATION_RGB_EXT"/>
+ <enum name="GL_BLEND_EQUATION_ALPHA_EXT"/>
+ <command name="glBlendEquationSeparateEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_blend_func_separate" supported="gl">
+ <require>
+ <enum name="GL_BLEND_DST_RGB_EXT"/>
+ <enum name="GL_BLEND_SRC_RGB_EXT"/>
+ <enum name="GL_BLEND_DST_ALPHA_EXT"/>
+ <enum name="GL_BLEND_SRC_ALPHA_EXT"/>
+ <command name="glBlendFuncSeparateEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_blend_logic_op" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_EXT_blend_minmax" supported="gl|gles1|gles2">
+ <require>
+ <enum name="GL_MIN_EXT"/>
+ <enum name="GL_MAX_EXT"/>
+ </require>
+ <require api="gl">
+ <enum name="GL_FUNC_ADD_EXT"/>
+ <enum name="GL_BLEND_EQUATION_EXT"/>
+ <command name="glBlendEquationEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_blend_subtract" supported="gl">
+ <require>
+ <enum name="GL_FUNC_SUBTRACT_EXT"/>
+ <enum name="GL_FUNC_REVERSE_SUBTRACT_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_clip_volume_hint" supported="gl">
+ <require>
+ <enum name="GL_CLIP_VOLUME_CLIPPING_HINT_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_cmyka" supported="gl">
+ <require>
+ <enum name="GL_CMYK_EXT"/>
+ <enum name="GL_CMYKA_EXT"/>
+ <enum name="GL_PACK_CMYK_HINT_EXT"/>
+ <enum name="GL_UNPACK_CMYK_HINT_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_color_buffer_half_float" supported="gles2">
+ <require>
+ <enum name="GL_RGBA16F_EXT"/>
+ <enum name="GL_RGB16F_EXT"/>
+ <enum name="GL_RG16F_EXT"/>
+ <enum name="GL_R16F_EXT"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT"/>
+ <enum name="GL_UNSIGNED_NORMALIZED_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_color_subtable" supported="gl">
+ <require>
+ <command name="glColorSubTableEXT"/>
+ <command name="glCopyColorSubTableEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_compiled_vertex_array" supported="gl">
+ <require>
+ <enum name="GL_ARRAY_ELEMENT_LOCK_FIRST_EXT"/>
+ <enum name="GL_ARRAY_ELEMENT_LOCK_COUNT_EXT"/>
+ <command name="glLockArraysEXT"/>
+ <command name="glUnlockArraysEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_convolution" supported="gl">
+ <require>
+ <enum name="GL_CONVOLUTION_1D_EXT"/>
+ <enum name="GL_CONVOLUTION_2D_EXT"/>
+ <enum name="GL_SEPARABLE_2D_EXT"/>
+ <enum name="GL_CONVOLUTION_BORDER_MODE_EXT"/>
+ <enum name="GL_CONVOLUTION_FILTER_SCALE_EXT"/>
+ <enum name="GL_CONVOLUTION_FILTER_BIAS_EXT"/>
+ <enum name="GL_REDUCE_EXT"/>
+ <enum name="GL_CONVOLUTION_FORMAT_EXT"/>
+ <enum name="GL_CONVOLUTION_WIDTH_EXT"/>
+ <enum name="GL_CONVOLUTION_HEIGHT_EXT"/>
+ <enum name="GL_MAX_CONVOLUTION_WIDTH_EXT"/>
+ <enum name="GL_MAX_CONVOLUTION_HEIGHT_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_RED_SCALE_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_GREEN_SCALE_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_BLUE_SCALE_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_ALPHA_SCALE_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_RED_BIAS_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_GREEN_BIAS_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_BLUE_BIAS_EXT"/>
+ <enum name="GL_POST_CONVOLUTION_ALPHA_BIAS_EXT"/>
+ <command name="glConvolutionFilter1DEXT"/>
+ <command name="glConvolutionFilter2DEXT"/>
+ <command name="glConvolutionParameterfEXT"/>
+ <command name="glConvolutionParameterfvEXT"/>
+ <command name="glConvolutionParameteriEXT"/>
+ <command name="glConvolutionParameterivEXT"/>
+ <command name="glCopyConvolutionFilter1DEXT"/>
+ <command name="glCopyConvolutionFilter2DEXT"/>
+ <command name="glGetConvolutionFilterEXT"/>
+ <command name="glGetConvolutionParameterfvEXT"/>
+ <command name="glGetConvolutionParameterivEXT"/>
+ <command name="glGetSeparableFilterEXT"/>
+ <command name="glSeparableFilter2DEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_coordinate_frame" supported="gl">
+ <require>
+ <enum name="GL_TANGENT_ARRAY_EXT"/>
+ <enum name="GL_BINORMAL_ARRAY_EXT"/>
+ <enum name="GL_CURRENT_TANGENT_EXT"/>
+ <enum name="GL_CURRENT_BINORMAL_EXT"/>
+ <enum name="GL_TANGENT_ARRAY_TYPE_EXT"/>
+ <enum name="GL_TANGENT_ARRAY_STRIDE_EXT"/>
+ <enum name="GL_BINORMAL_ARRAY_TYPE_EXT"/>
+ <enum name="GL_BINORMAL_ARRAY_STRIDE_EXT"/>
+ <enum name="GL_TANGENT_ARRAY_POINTER_EXT"/>
+ <enum name="GL_BINORMAL_ARRAY_POINTER_EXT"/>
+ <enum name="GL_MAP1_TANGENT_EXT"/>
+ <enum name="GL_MAP2_TANGENT_EXT"/>
+ <enum name="GL_MAP1_BINORMAL_EXT"/>
+ <enum name="GL_MAP2_BINORMAL_EXT"/>
+ <command name="glTangent3bEXT"/>
+ <command name="glTangent3bvEXT"/>
+ <command name="glTangent3dEXT"/>
+ <command name="glTangent3dvEXT"/>
+ <command name="glTangent3fEXT"/>
+ <command name="glTangent3fvEXT"/>
+ <command name="glTangent3iEXT"/>
+ <command name="glTangent3ivEXT"/>
+ <command name="glTangent3sEXT"/>
+ <command name="glTangent3svEXT"/>
+ <command name="glBinormal3bEXT"/>
+ <command name="glBinormal3bvEXT"/>
+ <command name="glBinormal3dEXT"/>
+ <command name="glBinormal3dvEXT"/>
+ <command name="glBinormal3fEXT"/>
+ <command name="glBinormal3fvEXT"/>
+ <command name="glBinormal3iEXT"/>
+ <command name="glBinormal3ivEXT"/>
+ <command name="glBinormal3sEXT"/>
+ <command name="glBinormal3svEXT"/>
+ <command name="glTangentPointerEXT"/>
+ <command name="glBinormalPointerEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_copy_texture" supported="gl">
+ <require>
+ <command name="glCopyTexImage1DEXT"/>
+ <command name="glCopyTexImage2DEXT"/>
+ <command name="glCopyTexSubImage1DEXT"/>
+ <command name="glCopyTexSubImage2DEXT"/>
+ <command name="glCopyTexSubImage3DEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_cull_vertex" supported="gl">
+ <require>
+ <enum name="GL_CULL_VERTEX_EXT"/>
+ <enum name="GL_CULL_VERTEX_EYE_POSITION_EXT"/>
+ <enum name="GL_CULL_VERTEX_OBJECT_POSITION_EXT"/>
+ <command name="glCullParameterdvEXT"/>
+ <command name="glCullParameterfvEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_debug_label" supported="gles2">
+ <require>
+ <enum name="GL_PROGRAM_PIPELINE_OBJECT_EXT"/>
+ <enum name="GL_PROGRAM_OBJECT_EXT"/>
+ <enum name="GL_SHADER_OBJECT_EXT"/>
+ <enum name="GL_BUFFER_OBJECT_EXT"/>
+ <enum name="GL_QUERY_OBJECT_EXT"/>
+ <enum name="GL_VERTEX_ARRAY_OBJECT_EXT"/>
+ <command name="glLabelObjectEXT"/>
+ <command name="glGetObjectLabelEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_debug_marker" supported="gles2">
+ <require>
+ <command name="glInsertEventMarkerEXT"/>
+ <command name="glPushGroupMarkerEXT"/>
+ <command name="glPopGroupMarkerEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_depth_bounds_test" supported="gl">
+ <require>
+ <enum name="GL_DEPTH_BOUNDS_TEST_EXT"/>
+ <enum name="GL_DEPTH_BOUNDS_EXT"/>
+ <command name="glDepthBoundsEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_direct_state_access" supported="gl" comment="DSA extension doesn't identify which interfaces are core profile and keeps getting expanded. This is in sync with revision 34, 2010/09/07">
+ <require>
+ <enum name="GL_PROGRAM_MATRIX_EXT"/>
+ <enum name="GL_TRANSPOSE_PROGRAM_MATRIX_EXT"/>
+ <enum name="GL_PROGRAM_MATRIX_STACK_DEPTH_EXT"/>
+ </require>
+ <require comment="OpenGL 1.0: New matrix commands">
+ <command name="glMatrixLoadfEXT"/>
+ <command name="glMatrixLoaddEXT"/>
+ <command name="glMatrixMultfEXT"/>
+ <command name="glMatrixMultdEXT"/>
+ <command name="glMatrixLoadIdentityEXT"/>
+ <command name="glMatrixRotatefEXT"/>
+ <command name="glMatrixRotatedEXT"/>
+ <command name="glMatrixScalefEXT"/>
+ <command name="glMatrixScaledEXT"/>
+ <command name="glMatrixTranslatefEXT"/>
+ <command name="glMatrixTranslatedEXT"/>
+ <command name="glMatrixFrustumEXT"/>
+ <command name="glMatrixOrthoEXT"/>
+ <command name="glMatrixPopEXT"/>
+ <command name="glMatrixPushEXT"/>
+ </require>
+ <require comment="OpenGL 1.1: New client commands">
+ <command name="glClientAttribDefaultEXT"/>
+ <command name="glPushClientAttribDefaultEXT"/>
+ </require>
+ <require comment="OpenGL 1.1: New texture object commands">
+ <command name="glTextureParameterfEXT"/>
+ <command name="glTextureParameterfvEXT"/>
+ <command name="glTextureParameteriEXT"/>
+ <command name="glTextureParameterivEXT"/>
+ <command name="glTextureImage1DEXT"/>
+ <command name="glTextureImage2DEXT"/>
+ <command name="glTextureSubImage1DEXT"/>
+ <command name="glTextureSubImage2DEXT"/>
+ <command name="glCopyTextureImage1DEXT"/>
+ <command name="glCopyTextureImage2DEXT"/>
+ <command name="glCopyTextureSubImage1DEXT"/>
+ <command name="glCopyTextureSubImage2DEXT"/>
+ <command name="glGetTextureImageEXT"/>
+ <command name="glGetTextureParameterfvEXT"/>
+ <command name="glGetTextureParameterivEXT"/>
+ <command name="glGetTextureLevelParameterfvEXT"/>
+ <command name="glGetTextureLevelParameterivEXT"/>
+ </require>
+ <require comment="OpenGL 1.2: New 3D texture object commands">
+ <command name="glTextureImage3DEXT"/>
+ <command name="glTextureSubImage3DEXT"/>
+ <command name="glCopyTextureSubImage3DEXT"/>
+ </require>
+ <require comment="OpenGL 1.2.1: New multitexture commands">
+ <command name="glBindMultiTextureEXT"/>
+ <command name="glMultiTexCoordPointerEXT"/>
+ <command name="glMultiTexEnvfEXT"/>
+ <command name="glMultiTexEnvfvEXT"/>
+ <command name="glMultiTexEnviEXT"/>
+ <command name="glMultiTexEnvivEXT"/>
+ <command name="glMultiTexGendEXT"/>
+ <command name="glMultiTexGendvEXT"/>
+ <command name="glMultiTexGenfEXT"/>
+ <command name="glMultiTexGenfvEXT"/>
+ <command name="glMultiTexGeniEXT"/>
+ <command name="glMultiTexGenivEXT"/>
+ <command name="glGetMultiTexEnvfvEXT"/>
+ <command name="glGetMultiTexEnvivEXT"/>
+ <command name="glGetMultiTexGendvEXT"/>
+ <command name="glGetMultiTexGenfvEXT"/>
+ <command name="glGetMultiTexGenivEXT"/>
+ <command name="glMultiTexParameteriEXT"/>
+ <command name="glMultiTexParameterivEXT"/>
+ <command name="glMultiTexParameterfEXT"/>
+ <command name="glMultiTexParameterfvEXT"/>
+ <command name="glMultiTexImage1DEXT"/>
+ <command name="glMultiTexImage2DEXT"/>
+ <command name="glMultiTexSubImage1DEXT"/>
+ <command name="glMultiTexSubImage2DEXT"/>
+ <command name="glCopyMultiTexImage1DEXT"/>
+ <command name="glCopyMultiTexImage2DEXT"/>
+ <command name="glCopyMultiTexSubImage1DEXT"/>
+ <command name="glCopyMultiTexSubImage2DEXT"/>
+ <command name="glGetMultiTexImageEXT"/>
+ <command name="glGetMultiTexParameterfvEXT"/>
+ <command name="glGetMultiTexParameterivEXT"/>
+ <command name="glGetMultiTexLevelParameterfvEXT"/>
+ <command name="glGetMultiTexLevelParameterivEXT"/>
+ <command name="glMultiTexImage3DEXT"/>
+ <command name="glMultiTexSubImage3DEXT"/>
+ <command name="glCopyMultiTexSubImage3DEXT"/>
+ </require>
+ <require comment="OpenGL 1.2.1: New indexed texture commands">
+ <command name="glEnableClientStateIndexedEXT"/>
+ <command name="glDisableClientStateIndexedEXT"/>
+ </require>
+ <require comment="OpenGL 1.2.1: New indexed generic queries">
+ <command name="glGetFloatIndexedvEXT"/>
+ <command name="glGetDoubleIndexedvEXT"/>
+ <command name="glGetPointerIndexedvEXT"/>
+ </require>
+ <require comment="OpenGL 1.2.1: Extend EXT_draw_buffers2 commands">
+ <command name="glEnableIndexedEXT"/>
+ <command name="glDisableIndexedEXT"/>
+ <command name="glIsEnabledIndexedEXT"/>
+ <command name="glGetIntegerIndexedvEXT"/>
+ <command name="glGetBooleanIndexedvEXT"/>
+ </require>
+ <require comment="OpenGL 1.3: New compressed texture object commands">
+ <command name="glCompressedTextureImage3DEXT"/>
+ <command name="glCompressedTextureImage2DEXT"/>
+ <command name="glCompressedTextureImage1DEXT"/>
+ <command name="glCompressedTextureSubImage3DEXT"/>
+ <command name="glCompressedTextureSubImage2DEXT"/>
+ <command name="glCompressedTextureSubImage1DEXT"/>
+ <command name="glGetCompressedTextureImageEXT"/>
+ </require>
+ <require comment="OpenGL 1.3: New multitexture compressed texture commands">
+ <command name="glCompressedMultiTexImage3DEXT"/>
+ <command name="glCompressedMultiTexImage2DEXT"/>
+ <command name="glCompressedMultiTexImage1DEXT"/>
+ <command name="glCompressedMultiTexSubImage3DEXT"/>
+ <command name="glCompressedMultiTexSubImage2DEXT"/>
+ <command name="glCompressedMultiTexSubImage1DEXT"/>
+ <command name="glGetCompressedMultiTexImageEXT"/>
+ </require>
+ <require comment="OpenGL 1.3: New transpose matrix commands">
+ <command name="glMatrixLoadTransposefEXT"/>
+ <command name="glMatrixLoadTransposedEXT"/>
+ <command name="glMatrixMultTransposefEXT"/>
+ <command name="glMatrixMultTransposedEXT"/>
+ </require>
+ <require comment="OpenGL 1.5: New buffer commands">
+ <command name="glNamedBufferDataEXT"/>
+ <command name="glNamedBufferSubDataEXT"/>
+ <command name="glMapNamedBufferEXT"/>
+ <command name="glUnmapNamedBufferEXT"/>
+ <command name="glGetNamedBufferParameterivEXT"/>
+ <command name="glGetNamedBufferPointervEXT"/>
+ <command name="glGetNamedBufferSubDataEXT"/>
+ </require>
+ <require comment="OpenGL 2.0: New uniform commands">
+ <command name="glProgramUniform1fEXT"/>
+ <command name="glProgramUniform2fEXT"/>
+ <command name="glProgramUniform3fEXT"/>
+ <command name="glProgramUniform4fEXT"/>
+ <command name="glProgramUniform1iEXT"/>
+ <command name="glProgramUniform2iEXT"/>
+ <command name="glProgramUniform3iEXT"/>
+ <command name="glProgramUniform4iEXT"/>
+ <command name="glProgramUniform1fvEXT"/>
+ <command name="glProgramUniform2fvEXT"/>
+ <command name="glProgramUniform3fvEXT"/>
+ <command name="glProgramUniform4fvEXT"/>
+ <command name="glProgramUniform1ivEXT"/>
+ <command name="glProgramUniform2ivEXT"/>
+ <command name="glProgramUniform3ivEXT"/>
+ <command name="glProgramUniform4ivEXT"/>
+ <command name="glProgramUniformMatrix2fvEXT"/>
+ <command name="glProgramUniformMatrix3fvEXT"/>
+ <command name="glProgramUniformMatrix4fvEXT"/>
+ </require>
+ <require comment="OpenGL 2.1: New uniform matrix commands">
+ <command name="glProgramUniformMatrix2x3fvEXT"/>
+ <command name="glProgramUniformMatrix3x2fvEXT"/>
+ <command name="glProgramUniformMatrix2x4fvEXT"/>
+ <command name="glProgramUniformMatrix4x2fvEXT"/>
+ <command name="glProgramUniformMatrix3x4fvEXT"/>
+ <command name="glProgramUniformMatrix4x3fvEXT"/>
+ </require>
+ <require comment="Extend EXT_texture_buffer_object commands">
+ <command name="glTextureBufferEXT"/>
+ <command name="glMultiTexBufferEXT"/>
+ </require>
+ <require comment="Extend EXT_texture_integer commands">
+ <command name="glTextureParameterIivEXT"/>
+ <command name="glTextureParameterIuivEXT"/>
+ <command name="glGetTextureParameterIivEXT"/>
+ <command name="glGetTextureParameterIuivEXT"/>
+ <command name="glMultiTexParameterIivEXT"/>
+ <command name="glMultiTexParameterIuivEXT"/>
+ <command name="glGetMultiTexParameterIivEXT"/>
+ <command name="glGetMultiTexParameterIuivEXT"/>
+ </require>
+ <require comment="Extend EXT_gpu_shader4 commands">
+ <command name="glProgramUniform1uiEXT"/>
+ <command name="glProgramUniform2uiEXT"/>
+ <command name="glProgramUniform3uiEXT"/>
+ <command name="glProgramUniform4uiEXT"/>
+ <command name="glProgramUniform1uivEXT"/>
+ <command name="glProgramUniform2uivEXT"/>
+ <command name="glProgramUniform3uivEXT"/>
+ <command name="glProgramUniform4uivEXT"/>
+ </require>
+ <require comment="Extend EXT_gpu_program_parameters commands">
+ <command name="glNamedProgramLocalParameters4fvEXT"/>
+ </require>
+ <require comment="Extend NV_gpu_program4 commands">
+ <command name="glNamedProgramLocalParameterI4iEXT"/>
+ <command name="glNamedProgramLocalParameterI4ivEXT"/>
+ <command name="glNamedProgramLocalParametersI4ivEXT"/>
+ <command name="glNamedProgramLocalParameterI4uiEXT"/>
+ <command name="glNamedProgramLocalParameterI4uivEXT"/>
+ <command name="glNamedProgramLocalParametersI4uivEXT"/>
+ <command name="glGetNamedProgramLocalParameterIivEXT"/>
+ <command name="glGetNamedProgramLocalParameterIuivEXT"/>
+ </require>
+ <require comment="OpenGL 3.0: New indexed texture commands">
+ <command name="glEnableClientStateiEXT"/>
+ <command name="glDisableClientStateiEXT"/>
+ </require>
+ <require comment="OpenGL 3.0: New indexed generic queries">
+ <command name="glGetFloati_vEXT"/>
+ <command name="glGetDoublei_vEXT"/>
+ <command name="glGetPointeri_vEXT"/>
+ </require>
+ <require comment="Extend ARB_vertex_program commands">
+ <command name="glNamedProgramStringEXT"/>
+ <command name="glNamedProgramLocalParameter4dEXT"/>
+ <command name="glNamedProgramLocalParameter4dvEXT"/>
+ <command name="glNamedProgramLocalParameter4fEXT"/>
+ <command name="glNamedProgramLocalParameter4fvEXT"/>
+ <command name="glGetNamedProgramLocalParameterdvEXT"/>
+ <command name="glGetNamedProgramLocalParameterfvEXT"/>
+ <command name="glGetNamedProgramivEXT"/>
+ <command name="glGetNamedProgramStringEXT"/>
+ </require>
+ <require comment="OpenGL 3.0: New renderbuffer commands">
+ <command name="glNamedRenderbufferStorageEXT"/>
+ <command name="glGetNamedRenderbufferParameterivEXT"/>
+ <command name="glNamedRenderbufferStorageMultisampleEXT"/>
+ </require>
+ <require comment="Extend NV_framebuffer_multisample_coverage">
+ <command name="glNamedRenderbufferStorageMultisampleCoverageEXT"/>
+ </require>
+ <require comment="OpenGL 3.0: New framebuffer commands">
+ <command name="glCheckNamedFramebufferStatusEXT"/>
+ <command name="glNamedFramebufferTexture1DEXT"/>
+ <command name="glNamedFramebufferTexture2DEXT"/>
+ <command name="glNamedFramebufferTexture3DEXT"/>
+ <command name="glNamedFramebufferRenderbufferEXT"/>
+ <command name="glGetNamedFramebufferAttachmentParameterivEXT"/>
+ </require>
+ <require comment="OpenGL 3.0: New texture commands">
+ <command name="glGenerateTextureMipmapEXT"/>
+ <command name="glGenerateMultiTexMipmapEXT"/>
+ </require>
+ <require comment="OpenGL 3.0: New framebuffer commands">
+ <command name="glFramebufferDrawBufferEXT"/>
+ <command name="glFramebufferDrawBuffersEXT"/>
+ <command name="glFramebufferReadBufferEXT"/>
+ <command name="glGetFramebufferParameterivEXT"/>
+ </require>
+ <require comment="OpenGL 3.0: New buffer data copy command">
+ <command name="glNamedCopyBufferSubDataEXT"/>
+ </require>
+ <require comment="Extend EXT_geometry_shader4 or NV_gpu_program4">
+ <command name="glNamedFramebufferTextureEXT"/>
+ <command name="glNamedFramebufferTextureLayerEXT"/>
+ <command name="glNamedFramebufferTextureFaceEXT"/>
+ </require>
+ <require comment="Extend NV_explicit_multisample">
+ <command name="glTextureRenderbufferEXT"/>
+ <command name="glMultiTexRenderbufferEXT"/>
+ </require>
+ <require comment="OpenGL 3.0: New vertex array specification commands for VAO">
+ <command name="glVertexArrayVertexOffsetEXT"/>
+ <command name="glVertexArrayColorOffsetEXT"/>
+ <command name="glVertexArrayEdgeFlagOffsetEXT"/>
+ <command name="glVertexArrayIndexOffsetEXT"/>
+ <command name="glVertexArrayNormalOffsetEXT"/>
+ <command name="glVertexArrayTexCoordOffsetEXT"/>
+ <command name="glVertexArrayMultiTexCoordOffsetEXT"/>
+ <command name="glVertexArrayFogCoordOffsetEXT"/>
+ <command name="glVertexArraySecondaryColorOffsetEXT"/>
+ <command name="glVertexArrayVertexAttribOffsetEXT"/>
+ <command name="glVertexArrayVertexAttribIOffsetEXT"/>
+ </require>
+ <require comment="OpenGL 3.0: New vertex array enable commands for VAO">
+ <command name="glEnableVertexArrayEXT"/>
+ <command name="glDisableVertexArrayEXT"/>
+ </require>
+ <require comment="OpenGL 3.0: New vertex attrib array enable commands for VAO">
+ <command name="glEnableVertexArrayAttribEXT"/>
+ <command name="glDisableVertexArrayAttribEXT"/>
+ </require>
+ <require comment="OpenGL 3.0: New queries for VAO">
+ <command name="glGetVertexArrayIntegervEXT"/>
+ <command name="glGetVertexArrayPointervEXT"/>
+ <command name="glGetVertexArrayIntegeri_vEXT"/>
+ <command name="glGetVertexArrayPointeri_vEXT"/>
+ </require>
+ <require comment="OpenGL 3.0: New buffer commands">
+ <command name="glMapNamedBufferRangeEXT"/>
+ <command name="glFlushMappedNamedBufferRangeEXT"/>
+ </require>
+ <require comment="Extend GL_ARB_clear_buffer_object">
+ <command name="glClearNamedBufferDataEXT"/>
+ <command name="glClearNamedBufferSubDataEXT"/>
+ </require>
+ <require comment="Extend GL_ARB_framebuffer_no_attachments">
+ <command name="glNamedFramebufferParameteriEXT"/>
+ <command name="glGetNamedFramebufferParameterivEXT"/>
+ </require>
+ <require comment="Extend GL_ARB_gpu_shader_fp64">
+ <command name="glProgramUniform1dEXT"/>
+ <command name="glProgramUniform2dEXT"/>
+ <command name="glProgramUniform3dEXT"/>
+ <command name="glProgramUniform4dEXT"/>
+ <command name="glProgramUniform1dvEXT"/>
+ <command name="glProgramUniform2dvEXT"/>
+ <command name="glProgramUniform3dvEXT"/>
+ <command name="glProgramUniform4dvEXT"/>
+ <command name="glProgramUniformMatrix2dvEXT"/>
+ <command name="glProgramUniformMatrix3dvEXT"/>
+ <command name="glProgramUniformMatrix4dvEXT"/>
+ <command name="glProgramUniformMatrix2x3dvEXT"/>
+ <command name="glProgramUniformMatrix2x4dvEXT"/>
+ <command name="glProgramUniformMatrix3x2dvEXT"/>
+ <command name="glProgramUniformMatrix3x4dvEXT"/>
+ <command name="glProgramUniformMatrix4x2dvEXT"/>
+ <command name="glProgramUniformMatrix4x3dvEXT"/>
+ </require>
+ <require comment="Extend GL_ARB_texture_buffer_range">
+ <command name="glTextureBufferRangeEXT"/>
+ </require>
+ <require comment="Extend GL_ARB_texture_storage">
+ <command name="glTextureStorage1DEXT"/>
+ <command name="glTextureStorage2DEXT"/>
+ <command name="glTextureStorage3DEXT"/>
+ </require>
+ <require comment="Extend GL_ARB_texture_storage_multisample">
+ <command name="glTextureStorage2DMultisampleEXT"/>
+ <command name="glTextureStorage3DMultisampleEXT"/>
+ </require>
+ <require comment="Extend GL_ARB_vertex_attrib_binding">
+ <command name="glVertexArrayBindVertexBufferEXT"/>
+ <command name="glVertexArrayVertexAttribFormatEXT"/>
+ <command name="glVertexArrayVertexAttribIFormatEXT"/>
+ <command name="glVertexArrayVertexAttribLFormatEXT"/>
+ <command name="glVertexArrayVertexAttribBindingEXT"/>
+ <command name="glVertexArrayVertexBindingDivisorEXT"/>
+ </require>
+ <require comment="Extend GL_EXT_vertex_attrib_64bit">
+ <command name="glVertexArrayVertexAttribLOffsetEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_discard_framebuffer" supported="gles1|gles2">
+ <require>
+ <enum name="GL_COLOR_EXT"/>
+ <enum name="GL_DEPTH_EXT"/>
+ <enum name="GL_STENCIL_EXT"/>
+ <command name="glDiscardFramebufferEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_disjoint_timer_query" supported="gles2">
+ <require>
+ <enum name="GL_QUERY_COUNTER_BITS_EXT"/>
+ <enum name="GL_CURRENT_QUERY_EXT"/>
+ <enum name="GL_QUERY_RESULT_EXT"/>
+ <enum name="GL_QUERY_RESULT_AVAILABLE_EXT"/>
+ <enum name="GL_TIME_ELAPSED_EXT"/>
+ <enum name="GL_TIMESTAMP_EXT"/>
+ <enum name="GL_GPU_DISJOINT_EXT"/>
+ <command name="glDiscardFramebufferEXT"/>
+ <command name="glGenQueriesEXT"/>
+ <command name="glDeleteQueriesEXT"/>
+ <command name="glIsQueryEXT"/>
+ <command name="glBeginQueryEXT"/>
+ <command name="glEndQueryEXT"/>
+ <command name="glQueryCounterEXT"/>
+ <command name="glGetQueryivEXT"/>
+ <command name="glGetQueryObjectivEXT"/>
+ <command name="glGetQueryObjectuivEXT"/>
+ <command name="glGetQueryObjecti64vEXT"/>
+ <command name="glGetQueryObjectui64vEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_draw_buffers" supported="gles2">
+ <require>
+ <enum name="GL_MAX_COLOR_ATTACHMENTS_EXT"/>
+ <enum name="GL_MAX_DRAW_BUFFERS_EXT"/>
+ <enum name="GL_DRAW_BUFFER0_EXT"/>
+ <enum name="GL_DRAW_BUFFER1_EXT"/>
+ <enum name="GL_DRAW_BUFFER2_EXT"/>
+ <enum name="GL_DRAW_BUFFER3_EXT"/>
+ <enum name="GL_DRAW_BUFFER4_EXT"/>
+ <enum name="GL_DRAW_BUFFER5_EXT"/>
+ <enum name="GL_DRAW_BUFFER6_EXT"/>
+ <enum name="GL_DRAW_BUFFER7_EXT"/>
+ <enum name="GL_DRAW_BUFFER8_EXT"/>
+ <enum name="GL_DRAW_BUFFER9_EXT"/>
+ <enum name="GL_DRAW_BUFFER10_EXT"/>
+ <enum name="GL_DRAW_BUFFER11_EXT"/>
+ <enum name="GL_DRAW_BUFFER12_EXT"/>
+ <enum name="GL_DRAW_BUFFER13_EXT"/>
+ <enum name="GL_DRAW_BUFFER14_EXT"/>
+ <enum name="GL_DRAW_BUFFER15_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT0_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT1_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT2_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT3_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT4_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT5_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT6_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT7_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT8_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT9_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT10_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT11_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT12_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT13_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT14_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT15_EXT"/>
+ <command name="glDrawBuffersEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_draw_buffers2" supported="gl">
+ <require>
+ <command name="glColorMaskIndexedEXT"/>
+ <command name="glGetBooleanIndexedvEXT"/>
+ <command name="glGetIntegerIndexedvEXT"/>
+ <command name="glEnableIndexedEXT"/>
+ <command name="glDisableIndexedEXT"/>
+ <command name="glIsEnabledIndexedEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_draw_instanced" supported="gl">
+ <require>
+ <command name="glDrawArraysInstancedEXT"/>
+ <command name="glDrawElementsInstancedEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_draw_range_elements" supported="gl">
+ <require>
+ <enum name="GL_MAX_ELEMENTS_VERTICES_EXT"/>
+ <enum name="GL_MAX_ELEMENTS_INDICES_EXT"/>
+ <command name="glDrawRangeElementsEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_fog_coord" supported="gl">
+ <require>
+ <enum name="GL_FOG_COORDINATE_SOURCE_EXT"/>
+ <enum name="GL_FOG_COORDINATE_EXT"/>
+ <enum name="GL_FRAGMENT_DEPTH_EXT"/>
+ <enum name="GL_CURRENT_FOG_COORDINATE_EXT"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_TYPE_EXT"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_STRIDE_EXT"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_POINTER_EXT"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_EXT"/>
+ <command name="glFogCoordfEXT"/>
+ <command name="glFogCoordfvEXT"/>
+ <command name="glFogCoorddEXT"/>
+ <command name="glFogCoorddvEXT"/>
+ <command name="glFogCoordPointerEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_framebuffer_blit" supported="gl">
+ <require>
+ <enum name="GL_READ_FRAMEBUFFER_EXT"/>
+ <enum name="GL_DRAW_FRAMEBUFFER_EXT"/>
+ <enum name="GL_DRAW_FRAMEBUFFER_BINDING_EXT"/>
+ <enum name="GL_READ_FRAMEBUFFER_BINDING_EXT"/>
+ <command name="glBlitFramebufferEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_framebuffer_multisample" supported="gl">
+ <require>
+ <enum name="GL_RENDERBUFFER_SAMPLES_EXT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT"/>
+ <enum name="GL_MAX_SAMPLES_EXT"/>
+ <command name="glRenderbufferStorageMultisampleEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_framebuffer_multisample_blit_scaled" supported="gl">
+ <require>
+ <enum name="GL_SCALED_RESOLVE_FASTEST_EXT"/>
+ <enum name="GL_SCALED_RESOLVE_NICEST_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_framebuffer_object" supported="gl">
+ <require>
+ <enum name="GL_INVALID_FRAMEBUFFER_OPERATION_EXT"/>
+ <enum name="GL_MAX_RENDERBUFFER_SIZE_EXT"/>
+ <enum name="GL_FRAMEBUFFER_BINDING_EXT"/>
+ <enum name="GL_RENDERBUFFER_BINDING_EXT"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT"/>
+ <enum name="GL_FRAMEBUFFER_COMPLETE_EXT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT"/>
+ <enum name="GL_FRAMEBUFFER_UNSUPPORTED_EXT"/>
+ <enum name="GL_MAX_COLOR_ATTACHMENTS_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT0_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT1_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT2_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT3_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT4_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT5_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT6_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT7_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT8_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT9_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT10_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT11_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT12_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT13_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT14_EXT"/>
+ <enum name="GL_COLOR_ATTACHMENT15_EXT"/>
+ <enum name="GL_DEPTH_ATTACHMENT_EXT"/>
+ <enum name="GL_STENCIL_ATTACHMENT_EXT"/>
+ <enum name="GL_FRAMEBUFFER_EXT"/>
+ <enum name="GL_RENDERBUFFER_EXT"/>
+ <enum name="GL_RENDERBUFFER_WIDTH_EXT"/>
+ <enum name="GL_RENDERBUFFER_HEIGHT_EXT"/>
+ <enum name="GL_RENDERBUFFER_INTERNAL_FORMAT_EXT"/>
+ <enum name="GL_STENCIL_INDEX1_EXT"/>
+ <enum name="GL_STENCIL_INDEX4_EXT"/>
+ <enum name="GL_STENCIL_INDEX8_EXT"/>
+ <enum name="GL_STENCIL_INDEX16_EXT"/>
+ <enum name="GL_RENDERBUFFER_RED_SIZE_EXT"/>
+ <enum name="GL_RENDERBUFFER_GREEN_SIZE_EXT"/>
+ <enum name="GL_RENDERBUFFER_BLUE_SIZE_EXT"/>
+ <enum name="GL_RENDERBUFFER_ALPHA_SIZE_EXT"/>
+ <enum name="GL_RENDERBUFFER_DEPTH_SIZE_EXT"/>
+ <enum name="GL_RENDERBUFFER_STENCIL_SIZE_EXT"/>
+ <command name="glIsRenderbufferEXT"/>
+ <command name="glBindRenderbufferEXT"/>
+ <command name="glDeleteRenderbuffersEXT"/>
+ <command name="glGenRenderbuffersEXT"/>
+ <command name="glRenderbufferStorageEXT"/>
+ <command name="glGetRenderbufferParameterivEXT"/>
+ <command name="glIsFramebufferEXT"/>
+ <command name="glBindFramebufferEXT"/>
+ <command name="glDeleteFramebuffersEXT"/>
+ <command name="glGenFramebuffersEXT"/>
+ <command name="glCheckFramebufferStatusEXT"/>
+ <command name="glFramebufferTexture1DEXT"/>
+ <command name="glFramebufferTexture2DEXT"/>
+ <command name="glFramebufferTexture3DEXT"/>
+ <command name="glFramebufferRenderbufferEXT"/>
+ <command name="glGetFramebufferAttachmentParameterivEXT"/>
+ <command name="glGenerateMipmapEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_framebuffer_sRGB" supported="gl">
+ <require>
+ <enum name="GL_FRAMEBUFFER_SRGB_EXT"/>
+ <enum name="GL_FRAMEBUFFER_SRGB_CAPABLE_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_geometry_shader4" supported="gl">
+ <require>
+ <enum name="GL_GEOMETRY_SHADER_EXT"/>
+ <enum name="GL_GEOMETRY_VERTICES_OUT_EXT"/>
+ <enum name="GL_GEOMETRY_INPUT_TYPE_EXT"/>
+ <enum name="GL_GEOMETRY_OUTPUT_TYPE_EXT"/>
+ <enum name="GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT"/>
+ <enum name="GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT"/>
+ <enum name="GL_MAX_VERTEX_VARYING_COMPONENTS_EXT"/>
+ <enum name="GL_MAX_VARYING_COMPONENTS_EXT"/>
+ <enum name="GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT"/>
+ <enum name="GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT"/>
+ <enum name="GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT"/>
+ <enum name="GL_LINES_ADJACENCY_EXT"/>
+ <enum name="GL_LINE_STRIP_ADJACENCY_EXT"/>
+ <enum name="GL_TRIANGLES_ADJACENCY_EXT"/>
+ <enum name="GL_TRIANGLE_STRIP_ADJACENCY_EXT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT"/>
+ <enum name="GL_PROGRAM_POINT_SIZE_EXT"/>
+ <command name="glProgramParameteriEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_gpu_program_parameters" supported="gl">
+ <require>
+ <command name="glProgramEnvParameters4fvEXT"/>
+ <command name="glProgramLocalParameters4fvEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_gpu_shader4" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT"/>
+ <enum name="GL_SAMPLER_1D_ARRAY_EXT"/>
+ <enum name="GL_SAMPLER_2D_ARRAY_EXT"/>
+ <enum name="GL_SAMPLER_BUFFER_EXT"/>
+ <enum name="GL_SAMPLER_1D_ARRAY_SHADOW_EXT"/>
+ <enum name="GL_SAMPLER_2D_ARRAY_SHADOW_EXT"/>
+ <enum name="GL_SAMPLER_CUBE_SHADOW_EXT"/>
+ <enum name="GL_UNSIGNED_INT_VEC2_EXT"/>
+ <enum name="GL_UNSIGNED_INT_VEC3_EXT"/>
+ <enum name="GL_UNSIGNED_INT_VEC4_EXT"/>
+ <enum name="GL_INT_SAMPLER_1D_EXT"/>
+ <enum name="GL_INT_SAMPLER_2D_EXT"/>
+ <enum name="GL_INT_SAMPLER_3D_EXT"/>
+ <enum name="GL_INT_SAMPLER_CUBE_EXT"/>
+ <enum name="GL_INT_SAMPLER_2D_RECT_EXT"/>
+ <enum name="GL_INT_SAMPLER_1D_ARRAY_EXT"/>
+ <enum name="GL_INT_SAMPLER_2D_ARRAY_EXT"/>
+ <enum name="GL_INT_SAMPLER_BUFFER_EXT"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_1D_EXT"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_2D_EXT"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_3D_EXT"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_CUBE_EXT"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT"/>
+ <enum name="GL_MIN_PROGRAM_TEXEL_OFFSET_EXT"/>
+ <enum name="GL_MAX_PROGRAM_TEXEL_OFFSET_EXT"/>
+ <command name="glGetUniformuivEXT"/>
+ <command name="glBindFragDataLocationEXT"/>
+ <command name="glGetFragDataLocationEXT"/>
+ <command name="glUniform1uiEXT"/>
+ <command name="glUniform2uiEXT"/>
+ <command name="glUniform3uiEXT"/>
+ <command name="glUniform4uiEXT"/>
+ <command name="glUniform1uivEXT"/>
+ <command name="glUniform2uivEXT"/>
+ <command name="glUniform3uivEXT"/>
+ <command name="glUniform4uivEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_histogram" supported="gl">
+ <require>
+ <enum name="GL_HISTOGRAM_EXT"/>
+ <enum name="GL_PROXY_HISTOGRAM_EXT"/>
+ <enum name="GL_HISTOGRAM_WIDTH_EXT"/>
+ <enum name="GL_HISTOGRAM_FORMAT_EXT"/>
+ <enum name="GL_HISTOGRAM_RED_SIZE_EXT"/>
+ <enum name="GL_HISTOGRAM_GREEN_SIZE_EXT"/>
+ <enum name="GL_HISTOGRAM_BLUE_SIZE_EXT"/>
+ <enum name="GL_HISTOGRAM_ALPHA_SIZE_EXT"/>
+ <enum name="GL_HISTOGRAM_LUMINANCE_SIZE_EXT"/>
+ <enum name="GL_HISTOGRAM_SINK_EXT"/>
+ <enum name="GL_MINMAX_EXT"/>
+ <enum name="GL_MINMAX_FORMAT_EXT"/>
+ <enum name="GL_MINMAX_SINK_EXT"/>
+ <enum name="GL_TABLE_TOO_LARGE_EXT"/>
+ <command name="glGetHistogramEXT"/>
+ <command name="glGetHistogramParameterfvEXT"/>
+ <command name="glGetHistogramParameterivEXT"/>
+ <command name="glGetMinmaxEXT"/>
+ <command name="glGetMinmaxParameterfvEXT"/>
+ <command name="glGetMinmaxParameterivEXT"/>
+ <command name="glHistogramEXT"/>
+ <command name="glMinmaxEXT"/>
+ <command name="glResetHistogramEXT"/>
+ <command name="glResetMinmaxEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_index_array_formats" supported="gl">
+ <require>
+ <enum name="GL_IUI_V2F_EXT"/>
+ <enum name="GL_IUI_V3F_EXT"/>
+ <enum name="GL_IUI_N3F_V2F_EXT"/>
+ <enum name="GL_IUI_N3F_V3F_EXT"/>
+ <enum name="GL_T2F_IUI_V2F_EXT"/>
+ <enum name="GL_T2F_IUI_V3F_EXT"/>
+ <enum name="GL_T2F_IUI_N3F_V2F_EXT"/>
+ <enum name="GL_T2F_IUI_N3F_V3F_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_index_func" supported="gl">
+ <require>
+ <enum name="GL_INDEX_TEST_EXT"/>
+ <enum name="GL_INDEX_TEST_FUNC_EXT"/>
+ <enum name="GL_INDEX_TEST_REF_EXT"/>
+ <command name="glIndexFuncEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_index_material" supported="gl">
+ <require>
+ <enum name="GL_INDEX_MATERIAL_EXT"/>
+ <enum name="GL_INDEX_MATERIAL_PARAMETER_EXT"/>
+ <enum name="GL_INDEX_MATERIAL_FACE_EXT"/>
+ <command name="glIndexMaterialEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_index_texture" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_EXT_light_texture" supported="gl">
+ <require>
+ <enum name="GL_FRAGMENT_MATERIAL_EXT"/>
+ <enum name="GL_FRAGMENT_NORMAL_EXT"/>
+ <enum name="GL_FRAGMENT_COLOR_EXT"/>
+ <enum name="GL_ATTENUATION_EXT"/>
+ <enum name="GL_SHADOW_ATTENUATION_EXT"/>
+ <enum name="GL_TEXTURE_APPLICATION_MODE_EXT"/>
+ <enum name="GL_TEXTURE_LIGHT_EXT"/>
+ <enum name="GL_TEXTURE_MATERIAL_FACE_EXT"/>
+ <enum name="GL_TEXTURE_MATERIAL_PARAMETER_EXT"/>
+ <enum name="GL_FRAGMENT_DEPTH_EXT"/>
+ <command name="glApplyTextureEXT"/>
+ <command name="glTextureLightEXT"/>
+ <command name="glTextureMaterialEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_map_buffer_range" supported="gles1|gles2">
+ <require>
+ <enum name="GL_MAP_READ_BIT_EXT"/>
+ <enum name="GL_MAP_WRITE_BIT_EXT"/>
+ <enum name="GL_MAP_INVALIDATE_RANGE_BIT_EXT"/>
+ <enum name="GL_MAP_INVALIDATE_BUFFER_BIT_EXT"/>
+ <enum name="GL_MAP_FLUSH_EXPLICIT_BIT_EXT"/>
+ <enum name="GL_MAP_UNSYNCHRONIZED_BIT_EXT"/>
+ <command name="glMapBufferRangeEXT"/>
+ <command name="glFlushMappedBufferRangeEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_misc_attribute" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_EXT_multi_draw_arrays" supported="gl|gles1|gles2">
+ <require>
+ <command name="glMultiDrawArraysEXT"/>
+ <command name="glMultiDrawElementsEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_multisample" supported="gl">
+ <require>
+ <enum name="GL_MULTISAMPLE_EXT"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_MASK_EXT"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_ONE_EXT"/>
+ <enum name="GL_SAMPLE_MASK_EXT"/>
+ <enum name="GL_1PASS_EXT"/>
+ <enum name="GL_2PASS_0_EXT"/>
+ <enum name="GL_2PASS_1_EXT"/>
+ <enum name="GL_4PASS_0_EXT"/>
+ <enum name="GL_4PASS_1_EXT"/>
+ <enum name="GL_4PASS_2_EXT"/>
+ <enum name="GL_4PASS_3_EXT"/>
+ <enum name="GL_SAMPLE_BUFFERS_EXT"/>
+ <enum name="GL_SAMPLES_EXT"/>
+ <enum name="GL_SAMPLE_MASK_VALUE_EXT"/>
+ <enum name="GL_SAMPLE_MASK_INVERT_EXT"/>
+ <enum name="GL_SAMPLE_PATTERN_EXT"/>
+ <enum name="GL_MULTISAMPLE_BIT_EXT"/>
+ <command name="glSampleMaskEXT"/>
+ <command name="glSamplePatternEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_multisampled_render_to_texture" supported="gles1|gles2">
+ <require>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT"/>
+ <enum name="GL_RENDERBUFFER_SAMPLES_EXT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT"/>
+ <enum name="GL_MAX_SAMPLES_EXT"/>
+ <command name="glRenderbufferStorageMultisampleEXT"/>
+ <command name="glFramebufferTexture2DMultisampleEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_multiview_draw_buffers" supported="gles2">
+ <require>
+ <enum name="GL_COLOR_ATTACHMENT_EXT"/>
+ <enum name="GL_MULTIVIEW_EXT"/>
+ <enum name="GL_DRAW_BUFFER_EXT"/>
+ <enum name="GL_READ_BUFFER_EXT"/>
+ <enum name="GL_MAX_MULTIVIEW_BUFFERS_EXT"/>
+ <command name="glReadBufferIndexedEXT"/>
+ <command name="glDrawBuffersIndexedEXT"/>
+ <command name="glGetIntegeri_vEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_occlusion_query_boolean" supported="gles2">
+ <require>
+ <enum name="GL_ANY_SAMPLES_PASSED_EXT"/>
+ <enum name="GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT"/>
+ <enum name="GL_CURRENT_QUERY_EXT"/>
+ <enum name="GL_QUERY_RESULT_EXT"/>
+ <enum name="GL_QUERY_RESULT_AVAILABLE_EXT"/>
+ <command name="glGenQueriesEXT"/>
+ <command name="glDeleteQueriesEXT"/>
+ <command name="glIsQueryEXT"/>
+ <command name="glBeginQueryEXT"/>
+ <command name="glEndQueryEXT"/>
+ <command name="glGetQueryivEXT"/>
+ <command name="glGetQueryObjectuivEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_packed_depth_stencil" supported="gl">
+ <require>
+ <enum name="GL_DEPTH_STENCIL_EXT"/>
+ <enum name="GL_UNSIGNED_INT_24_8_EXT"/>
+ <enum name="GL_DEPTH24_STENCIL8_EXT"/>
+ <enum name="GL_TEXTURE_STENCIL_SIZE_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_packed_float" supported="gl">
+ <require>
+ <enum name="GL_R11F_G11F_B10F_EXT"/>
+ <enum name="GL_UNSIGNED_INT_10F_11F_11F_REV_EXT"/>
+ <enum name="GL_RGBA_SIGNED_COMPONENTS_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_packed_pixels" supported="gl">
+ <require>
+ <enum name="GL_UNSIGNED_BYTE_3_3_2_EXT"/>
+ <enum name="GL_UNSIGNED_SHORT_4_4_4_4_EXT"/>
+ <enum name="GL_UNSIGNED_SHORT_5_5_5_1_EXT"/>
+ <enum name="GL_UNSIGNED_INT_8_8_8_8_EXT"/>
+ <enum name="GL_UNSIGNED_INT_10_10_10_2_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_paletted_texture" supported="gl">
+ <require>
+ <enum name="GL_COLOR_INDEX1_EXT"/>
+ <enum name="GL_COLOR_INDEX2_EXT"/>
+ <enum name="GL_COLOR_INDEX4_EXT"/>
+ <enum name="GL_COLOR_INDEX8_EXT"/>
+ <enum name="GL_COLOR_INDEX12_EXT"/>
+ <enum name="GL_COLOR_INDEX16_EXT"/>
+ <enum name="GL_TEXTURE_INDEX_SIZE_EXT"/>
+ <command name="glColorTableEXT"/>
+ <command name="glGetColorTableEXT"/>
+ <command name="glGetColorTableParameterivEXT"/>
+ <command name="glGetColorTableParameterfvEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_pixel_buffer_object" supported="gl">
+ <require>
+ <enum name="GL_PIXEL_PACK_BUFFER_EXT"/>
+ <enum name="GL_PIXEL_UNPACK_BUFFER_EXT"/>
+ <enum name="GL_PIXEL_PACK_BUFFER_BINDING_EXT"/>
+ <enum name="GL_PIXEL_UNPACK_BUFFER_BINDING_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_pixel_transform" supported="gl">
+ <require>
+ <enum name="GL_PIXEL_TRANSFORM_2D_EXT"/>
+ <enum name="GL_PIXEL_MAG_FILTER_EXT"/>
+ <enum name="GL_PIXEL_MIN_FILTER_EXT"/>
+ <enum name="GL_PIXEL_CUBIC_WEIGHT_EXT"/>
+ <enum name="GL_CUBIC_EXT"/>
+ <enum name="GL_AVERAGE_EXT"/>
+ <enum name="GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT"/>
+ <enum name="GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT"/>
+ <enum name="GL_PIXEL_TRANSFORM_2D_MATRIX_EXT"/>
+ <command name="glPixelTransformParameteriEXT"/>
+ <command name="glPixelTransformParameterfEXT"/>
+ <command name="glPixelTransformParameterivEXT"/>
+ <command name="glPixelTransformParameterfvEXT"/>
+ <command name="glGetPixelTransformParameterivEXT"/>
+ <command name="glGetPixelTransformParameterfvEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_pixel_transform_color_table" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_EXT_point_parameters" supported="gl">
+ <require>
+ <enum name="GL_POINT_SIZE_MIN_EXT"/>
+ <enum name="GL_POINT_SIZE_MAX_EXT"/>
+ <enum name="GL_POINT_FADE_THRESHOLD_SIZE_EXT"/>
+ <enum name="GL_DISTANCE_ATTENUATION_EXT"/>
+ <command name="glPointParameterfEXT"/>
+ <command name="glPointParameterfvEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_polygon_offset" supported="gl">
+ <require>
+ <enum name="GL_POLYGON_OFFSET_EXT"/>
+ <enum name="GL_POLYGON_OFFSET_FACTOR_EXT"/>
+ <enum name="GL_POLYGON_OFFSET_BIAS_EXT"/>
+ <command name="glPolygonOffsetEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_provoking_vertex" supported="gl">
+ <require>
+ <enum name="GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT"/>
+ <enum name="GL_FIRST_VERTEX_CONVENTION_EXT"/>
+ <enum name="GL_LAST_VERTEX_CONVENTION_EXT"/>
+ <enum name="GL_PROVOKING_VERTEX_EXT"/>
+ <command name="glProvokingVertexEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_read_format_bgra" supported="gles1|gles2">
+ <require>
+ <enum name="GL_BGRA_EXT"/>
+ <enum name="GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT"/>
+ <enum name="GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_rescale_normal" supported="gl">
+ <require>
+ <enum name="GL_RESCALE_NORMAL_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_robustness" supported="gles1|gles2">
+ <require>
+ <enum name="GL_NO_ERROR"/>
+ <enum name="GL_GUILTY_CONTEXT_RESET_EXT"/>
+ <enum name="GL_INNOCENT_CONTEXT_RESET_EXT"/>
+ <enum name="GL_UNKNOWN_CONTEXT_RESET_EXT"/>
+ <enum name="GL_CONTEXT_ROBUST_ACCESS_EXT"/>
+ <enum name="GL_RESET_NOTIFICATION_STRATEGY_EXT"/>
+ <enum name="GL_LOSE_CONTEXT_ON_RESET_EXT"/>
+ <enum name="GL_NO_RESET_NOTIFICATION_EXT"/>
+ <command name="glGetGraphicsResetStatusEXT"/>
+ <command name="glReadnPixelsEXT"/>
+ <command name="glGetnUniformfvEXT"/>
+ <command name="glGetnUniformivEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_sRGB" supported="gles1|gles2">
+ <require>
+ <enum name="GL_SRGB_EXT"/>
+ <enum name="GL_SRGB_ALPHA_EXT"/>
+ <enum name="GL_SRGB8_ALPHA8_EXT"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_secondary_color" supported="gl">
+ <require>
+ <enum name="GL_COLOR_SUM_EXT"/>
+ <enum name="GL_CURRENT_SECONDARY_COLOR_EXT"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_SIZE_EXT"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_TYPE_EXT"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_POINTER_EXT"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_EXT"/>
+ <command name="glSecondaryColor3bEXT"/>
+ <command name="glSecondaryColor3bvEXT"/>
+ <command name="glSecondaryColor3dEXT"/>
+ <command name="glSecondaryColor3dvEXT"/>
+ <command name="glSecondaryColor3fEXT"/>
+ <command name="glSecondaryColor3fvEXT"/>
+ <command name="glSecondaryColor3iEXT"/>
+ <command name="glSecondaryColor3ivEXT"/>
+ <command name="glSecondaryColor3sEXT"/>
+ <command name="glSecondaryColor3svEXT"/>
+ <command name="glSecondaryColor3ubEXT"/>
+ <command name="glSecondaryColor3ubvEXT"/>
+ <command name="glSecondaryColor3uiEXT"/>
+ <command name="glSecondaryColor3uivEXT"/>
+ <command name="glSecondaryColor3usEXT"/>
+ <command name="glSecondaryColor3usvEXT"/>
+ <command name="glSecondaryColorPointerEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_separate_shader_objects" supported="gl|gles2">
+ <require api="gl" comment="The OpenGL version of this extension is completely unrelated to the OpenGL ES version">
+ <enum name="GL_ACTIVE_PROGRAM_EXT"/>
+ <command name="glUseShaderProgramEXT"/>
+ <command name="glActiveProgramEXT"/>
+ <command name="glCreateShaderProgramEXT"/>
+ </require>
+ <require api="gles2" comment="The OpenGL ES version of this extension is completely unrelated to the OpenGL version">
+ <enum name="GL_VERTEX_SHADER_BIT_EXT"/>
+ <enum name="GL_FRAGMENT_SHADER_BIT_EXT"/>
+ <enum name="GL_ALL_SHADER_BITS_EXT"/>
+ <enum name="GL_PROGRAM_SEPARABLE_EXT"/>
+ <enum name="GL_ACTIVE_PROGRAM_EXT"/>
+ <enum name="GL_PROGRAM_PIPELINE_BINDING_EXT"/>
+ <command name="glActiveShaderProgramEXT"/>
+ <command name="glBindProgramPipelineEXT"/>
+ <command name="glCreateShaderProgramvEXT"/>
+ <command name="glDeleteProgramPipelinesEXT"/>
+ <command name="glGenProgramPipelinesEXT"/>
+ <command name="glGetProgramPipelineInfoLogEXT"/>
+ <command name="glGetProgramPipelineivEXT"/>
+ <command name="glIsProgramPipelineEXT"/>
+ <command name="glProgramParameteriEXT"/>
+ <command name="glProgramUniform1fEXT"/>
+ <command name="glProgramUniform1fvEXT"/>
+ <command name="glProgramUniform1iEXT"/>
+ <command name="glProgramUniform1ivEXT"/>
+ <command name="glProgramUniform2fEXT"/>
+ <command name="glProgramUniform2fvEXT"/>
+ <command name="glProgramUniform2iEXT"/>
+ <command name="glProgramUniform2ivEXT"/>
+ <command name="glProgramUniform3fEXT"/>
+ <command name="glProgramUniform3fvEXT"/>
+ <command name="glProgramUniform3iEXT"/>
+ <command name="glProgramUniform3ivEXT"/>
+ <command name="glProgramUniform4fEXT"/>
+ <command name="glProgramUniform4fvEXT"/>
+ <command name="glProgramUniform4iEXT"/>
+ <command name="glProgramUniform4ivEXT"/>
+ <command name="glProgramUniformMatrix2fvEXT"/>
+ <command name="glProgramUniformMatrix3fvEXT"/>
+ <command name="glProgramUniformMatrix4fvEXT"/>
+ <command name="glUseProgramStagesEXT"/>
+ <command name="glValidateProgramPipelineEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_separate_specular_color" supported="gl">
+ <require>
+ <enum name="GL_LIGHT_MODEL_COLOR_CONTROL_EXT"/>
+ <enum name="GL_SINGLE_COLOR_EXT"/>
+ <enum name="GL_SEPARATE_SPECULAR_COLOR_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_shader_framebuffer_fetch" supported="gles2">
+ <require>
+ <enum name="GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_shader_image_load_store" supported="gl">
+ <require>
+ <enum name="GL_MAX_IMAGE_UNITS_EXT"/>
+ <enum name="GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT"/>
+ <enum name="GL_IMAGE_BINDING_NAME_EXT"/>
+ <enum name="GL_IMAGE_BINDING_LEVEL_EXT"/>
+ <enum name="GL_IMAGE_BINDING_LAYERED_EXT"/>
+ <enum name="GL_IMAGE_BINDING_LAYER_EXT"/>
+ <enum name="GL_IMAGE_BINDING_ACCESS_EXT"/>
+ <enum name="GL_IMAGE_1D_EXT"/>
+ <enum name="GL_IMAGE_2D_EXT"/>
+ <enum name="GL_IMAGE_3D_EXT"/>
+ <enum name="GL_IMAGE_2D_RECT_EXT"/>
+ <enum name="GL_IMAGE_CUBE_EXT"/>
+ <enum name="GL_IMAGE_BUFFER_EXT"/>
+ <enum name="GL_IMAGE_1D_ARRAY_EXT"/>
+ <enum name="GL_IMAGE_2D_ARRAY_EXT"/>
+ <enum name="GL_IMAGE_CUBE_MAP_ARRAY_EXT"/>
+ <enum name="GL_IMAGE_2D_MULTISAMPLE_EXT"/>
+ <enum name="GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT"/>
+ <enum name="GL_INT_IMAGE_1D_EXT"/>
+ <enum name="GL_INT_IMAGE_2D_EXT"/>
+ <enum name="GL_INT_IMAGE_3D_EXT"/>
+ <enum name="GL_INT_IMAGE_2D_RECT_EXT"/>
+ <enum name="GL_INT_IMAGE_CUBE_EXT"/>
+ <enum name="GL_INT_IMAGE_BUFFER_EXT"/>
+ <enum name="GL_INT_IMAGE_1D_ARRAY_EXT"/>
+ <enum name="GL_INT_IMAGE_2D_ARRAY_EXT"/>
+ <enum name="GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT"/>
+ <enum name="GL_INT_IMAGE_2D_MULTISAMPLE_EXT"/>
+ <enum name="GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_1D_EXT"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D_EXT"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_3D_EXT"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_CUBE_EXT"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_BUFFER_EXT"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT"/>
+ <enum name="GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT"/>
+ <enum name="GL_MAX_IMAGE_SAMPLES_EXT"/>
+ <enum name="GL_IMAGE_BINDING_FORMAT_EXT"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT"/>
+ <enum name="GL_ELEMENT_ARRAY_BARRIER_BIT_EXT"/>
+ <enum name="GL_UNIFORM_BARRIER_BIT_EXT"/>
+ <enum name="GL_TEXTURE_FETCH_BARRIER_BIT_EXT"/>
+ <enum name="GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT"/>
+ <enum name="GL_COMMAND_BARRIER_BIT_EXT"/>
+ <enum name="GL_PIXEL_BUFFER_BARRIER_BIT_EXT"/>
+ <enum name="GL_TEXTURE_UPDATE_BARRIER_BIT_EXT"/>
+ <enum name="GL_BUFFER_UPDATE_BARRIER_BIT_EXT"/>
+ <enum name="GL_FRAMEBUFFER_BARRIER_BIT_EXT"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT"/>
+ <enum name="GL_ATOMIC_COUNTER_BARRIER_BIT_EXT"/>
+ <enum name="GL_ALL_BARRIER_BITS_EXT"/>
+ <command name="glBindImageTextureEXT"/>
+ <command name="glMemoryBarrierEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_shader_texture_lod" supported="gles2">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_EXT_shadow_funcs" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_EXT_shadow_samplers" supported="gles2">
+ <require>
+ <enum name="GL_TEXTURE_COMPARE_MODE_EXT"/>
+ <enum name="GL_TEXTURE_COMPARE_FUNC_EXT"/>
+ <enum name="GL_COMPARE_REF_TO_TEXTURE_EXT"/>
+ <enum name="GL_SAMPLER_2D_SHADOW_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_shared_texture_palette" supported="gl">
+ <require>
+ <enum name="GL_SHARED_TEXTURE_PALETTE_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_stencil_clear_tag" supported="gl">
+ <require>
+ <enum name="GL_STENCIL_TAG_BITS_EXT"/>
+ <enum name="GL_STENCIL_CLEAR_TAG_VALUE_EXT"/>
+ <command name="glStencilClearTagEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_stencil_two_side" supported="gl">
+ <require>
+ <enum name="GL_STENCIL_TEST_TWO_SIDE_EXT"/>
+ <enum name="GL_ACTIVE_STENCIL_FACE_EXT"/>
+ <command name="glActiveStencilFaceEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_stencil_wrap" supported="gl">
+ <require>
+ <enum name="GL_INCR_WRAP_EXT"/>
+ <enum name="GL_DECR_WRAP_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_subtexture" supported="gl">
+ <require>
+ <command name="glTexSubImage1DEXT"/>
+ <command name="glTexSubImage2DEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture" supported="gl">
+ <require>
+ <enum name="GL_ALPHA4_EXT"/>
+ <enum name="GL_ALPHA8_EXT"/>
+ <enum name="GL_ALPHA12_EXT"/>
+ <enum name="GL_ALPHA16_EXT"/>
+ <enum name="GL_LUMINANCE4_EXT"/>
+ <enum name="GL_LUMINANCE8_EXT"/>
+ <enum name="GL_LUMINANCE12_EXT"/>
+ <enum name="GL_LUMINANCE16_EXT"/>
+ <enum name="GL_LUMINANCE4_ALPHA4_EXT"/>
+ <enum name="GL_LUMINANCE6_ALPHA2_EXT"/>
+ <enum name="GL_LUMINANCE8_ALPHA8_EXT"/>
+ <enum name="GL_LUMINANCE12_ALPHA4_EXT"/>
+ <enum name="GL_LUMINANCE12_ALPHA12_EXT"/>
+ <enum name="GL_LUMINANCE16_ALPHA16_EXT"/>
+ <enum name="GL_INTENSITY_EXT"/>
+ <enum name="GL_INTENSITY4_EXT"/>
+ <enum name="GL_INTENSITY8_EXT"/>
+ <enum name="GL_INTENSITY12_EXT"/>
+ <enum name="GL_INTENSITY16_EXT"/>
+ <enum name="GL_RGB2_EXT"/>
+ <enum name="GL_RGB4_EXT"/>
+ <enum name="GL_RGB5_EXT"/>
+ <enum name="GL_RGB8_EXT"/>
+ <enum name="GL_RGB10_EXT"/>
+ <enum name="GL_RGB12_EXT"/>
+ <enum name="GL_RGB16_EXT"/>
+ <enum name="GL_RGBA2_EXT"/>
+ <enum name="GL_RGBA4_EXT"/>
+ <enum name="GL_RGB5_A1_EXT"/>
+ <enum name="GL_RGBA8_EXT"/>
+ <enum name="GL_RGB10_A2_EXT"/>
+ <enum name="GL_RGBA12_EXT"/>
+ <enum name="GL_RGBA16_EXT"/>
+ <enum name="GL_TEXTURE_RED_SIZE_EXT"/>
+ <enum name="GL_TEXTURE_GREEN_SIZE_EXT"/>
+ <enum name="GL_TEXTURE_BLUE_SIZE_EXT"/>
+ <enum name="GL_TEXTURE_ALPHA_SIZE_EXT"/>
+ <enum name="GL_TEXTURE_LUMINANCE_SIZE_EXT"/>
+ <enum name="GL_TEXTURE_INTENSITY_SIZE_EXT"/>
+ <enum name="GL_REPLACE_EXT"/>
+ <enum name="GL_PROXY_TEXTURE_1D_EXT"/>
+ <enum name="GL_PROXY_TEXTURE_2D_EXT"/>
+ <enum name="GL_TEXTURE_TOO_LARGE_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture3D" supported="gl">
+ <require>
+ <enum name="GL_PACK_SKIP_IMAGES_EXT"/>
+ <enum name="GL_PACK_IMAGE_HEIGHT_EXT"/>
+ <enum name="GL_UNPACK_SKIP_IMAGES_EXT"/>
+ <enum name="GL_UNPACK_IMAGE_HEIGHT_EXT"/>
+ <enum name="GL_TEXTURE_3D_EXT"/>
+ <enum name="GL_PROXY_TEXTURE_3D_EXT"/>
+ <enum name="GL_TEXTURE_DEPTH_EXT"/>
+ <enum name="GL_TEXTURE_WRAP_R_EXT"/>
+ <enum name="GL_MAX_3D_TEXTURE_SIZE_EXT"/>
+ <command name="glTexImage3DEXT"/>
+ <command name="glTexSubImage3DEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_array" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_1D_ARRAY_EXT"/>
+ <enum name="GL_PROXY_TEXTURE_1D_ARRAY_EXT"/>
+ <enum name="GL_TEXTURE_2D_ARRAY_EXT"/>
+ <enum name="GL_PROXY_TEXTURE_2D_ARRAY_EXT"/>
+ <enum name="GL_TEXTURE_BINDING_1D_ARRAY_EXT"/>
+ <enum name="GL_TEXTURE_BINDING_2D_ARRAY_EXT"/>
+ <enum name="GL_MAX_ARRAY_TEXTURE_LAYERS_EXT"/>
+ <enum name="GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_buffer_object" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_BUFFER_EXT"/>
+ <enum name="GL_MAX_TEXTURE_BUFFER_SIZE_EXT"/>
+ <enum name="GL_TEXTURE_BINDING_BUFFER_EXT"/>
+ <enum name="GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT"/>
+ <enum name="GL_TEXTURE_BUFFER_FORMAT_EXT"/>
+ <command name="glTexBufferEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_compression_dxt1" supported="gles1|gles2">
+ <require>
+ <enum name="GL_COMPRESSED_RGB_S3TC_DXT1_EXT"/>
+ <enum name="GL_COMPRESSED_RGBA_S3TC_DXT1_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_compression_latc" supported="gl">
+ <require>
+ <enum name="GL_COMPRESSED_LUMINANCE_LATC1_EXT"/>
+ <enum name="GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT"/>
+ <enum name="GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT"/>
+ <enum name="GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_compression_rgtc" supported="gl">
+ <require>
+ <enum name="GL_COMPRESSED_RED_RGTC1_EXT"/>
+ <enum name="GL_COMPRESSED_SIGNED_RED_RGTC1_EXT"/>
+ <enum name="GL_COMPRESSED_RED_GREEN_RGTC2_EXT"/>
+ <enum name="GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_compression_s3tc" supported="gl">
+ <require>
+ <enum name="GL_COMPRESSED_RGB_S3TC_DXT1_EXT"/>
+ <enum name="GL_COMPRESSED_RGBA_S3TC_DXT1_EXT"/>
+ <enum name="GL_COMPRESSED_RGBA_S3TC_DXT3_EXT"/>
+ <enum name="GL_COMPRESSED_RGBA_S3TC_DXT5_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_cube_map" supported="gl" comment="Replaced by ARB_texture_cube_map, but was apparently shipped anyway?">
+ <require>
+ <enum name="GL_NORMAL_MAP_EXT"/>
+ <enum name="GL_REFLECTION_MAP_EXT"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_EXT"/>
+ <enum name="GL_TEXTURE_BINDING_CUBE_MAP_EXT"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT"/>
+ <enum name="GL_PROXY_TEXTURE_CUBE_MAP_EXT"/>
+ <enum name="GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_env_add" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_env_combine" supported="gl">
+ <require>
+ <enum name="GL_COMBINE_EXT"/>
+ <enum name="GL_COMBINE_RGB_EXT"/>
+ <enum name="GL_COMBINE_ALPHA_EXT"/>
+ <enum name="GL_RGB_SCALE_EXT"/>
+ <enum name="GL_ADD_SIGNED_EXT"/>
+ <enum name="GL_INTERPOLATE_EXT"/>
+ <enum name="GL_CONSTANT_EXT"/>
+ <enum name="GL_PRIMARY_COLOR_EXT"/>
+ <enum name="GL_PREVIOUS_EXT"/>
+ <enum name="GL_SOURCE0_RGB_EXT"/>
+ <enum name="GL_SOURCE1_RGB_EXT"/>
+ <enum name="GL_SOURCE2_RGB_EXT"/>
+ <enum name="GL_SOURCE0_ALPHA_EXT"/>
+ <enum name="GL_SOURCE1_ALPHA_EXT"/>
+ <enum name="GL_SOURCE2_ALPHA_EXT"/>
+ <enum name="GL_OPERAND0_RGB_EXT"/>
+ <enum name="GL_OPERAND1_RGB_EXT"/>
+ <enum name="GL_OPERAND2_RGB_EXT"/>
+ <enum name="GL_OPERAND0_ALPHA_EXT"/>
+ <enum name="GL_OPERAND1_ALPHA_EXT"/>
+ <enum name="GL_OPERAND2_ALPHA_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_env_dot3" supported="gl">
+ <require>
+ <enum name="GL_DOT3_RGB_EXT"/>
+ <enum name="GL_DOT3_RGBA_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_filter_anisotropic" supported="gl|gles1|gles2">
+ <require>
+ <enum name="GL_TEXTURE_MAX_ANISOTROPY_EXT"/>
+ <enum name="GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_format_BGRA8888" supported="gles1|gles2">
+ <require>
+ <enum name="GL_BGRA_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_integer" supported="gl">
+ <require>
+ <enum name="GL_RGBA32UI_EXT"/>
+ <enum name="GL_RGB32UI_EXT"/>
+ <enum name="GL_ALPHA32UI_EXT"/>
+ <enum name="GL_INTENSITY32UI_EXT"/>
+ <enum name="GL_LUMINANCE32UI_EXT"/>
+ <enum name="GL_LUMINANCE_ALPHA32UI_EXT"/>
+ <enum name="GL_RGBA16UI_EXT"/>
+ <enum name="GL_RGB16UI_EXT"/>
+ <enum name="GL_ALPHA16UI_EXT"/>
+ <enum name="GL_INTENSITY16UI_EXT"/>
+ <enum name="GL_LUMINANCE16UI_EXT"/>
+ <enum name="GL_LUMINANCE_ALPHA16UI_EXT"/>
+ <enum name="GL_RGBA8UI_EXT"/>
+ <enum name="GL_RGB8UI_EXT"/>
+ <enum name="GL_ALPHA8UI_EXT"/>
+ <enum name="GL_INTENSITY8UI_EXT"/>
+ <enum name="GL_LUMINANCE8UI_EXT"/>
+ <enum name="GL_LUMINANCE_ALPHA8UI_EXT"/>
+ <enum name="GL_RGBA32I_EXT"/>
+ <enum name="GL_RGB32I_EXT"/>
+ <enum name="GL_ALPHA32I_EXT"/>
+ <enum name="GL_INTENSITY32I_EXT"/>
+ <enum name="GL_LUMINANCE32I_EXT"/>
+ <enum name="GL_LUMINANCE_ALPHA32I_EXT"/>
+ <enum name="GL_RGBA16I_EXT"/>
+ <enum name="GL_RGB16I_EXT"/>
+ <enum name="GL_ALPHA16I_EXT"/>
+ <enum name="GL_INTENSITY16I_EXT"/>
+ <enum name="GL_LUMINANCE16I_EXT"/>
+ <enum name="GL_LUMINANCE_ALPHA16I_EXT"/>
+ <enum name="GL_RGBA8I_EXT"/>
+ <enum name="GL_RGB8I_EXT"/>
+ <enum name="GL_ALPHA8I_EXT"/>
+ <enum name="GL_INTENSITY8I_EXT"/>
+ <enum name="GL_LUMINANCE8I_EXT"/>
+ <enum name="GL_LUMINANCE_ALPHA8I_EXT"/>
+ <enum name="GL_RED_INTEGER_EXT"/>
+ <enum name="GL_GREEN_INTEGER_EXT"/>
+ <enum name="GL_BLUE_INTEGER_EXT"/>
+ <enum name="GL_ALPHA_INTEGER_EXT"/>
+ <enum name="GL_RGB_INTEGER_EXT"/>
+ <enum name="GL_RGBA_INTEGER_EXT"/>
+ <enum name="GL_BGR_INTEGER_EXT"/>
+ <enum name="GL_BGRA_INTEGER_EXT"/>
+ <enum name="GL_LUMINANCE_INTEGER_EXT"/>
+ <enum name="GL_LUMINANCE_ALPHA_INTEGER_EXT"/>
+ <enum name="GL_RGBA_INTEGER_MODE_EXT"/>
+ <command name="glTexParameterIivEXT"/>
+ <command name="glTexParameterIuivEXT"/>
+ <command name="glGetTexParameterIivEXT"/>
+ <command name="glGetTexParameterIuivEXT"/>
+ <command name="glClearColorIiEXT"/>
+ <command name="glClearColorIuiEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_lod_bias" supported="gl|gles1">
+ <require>
+ <enum name="GL_MAX_TEXTURE_LOD_BIAS_EXT"/>
+ <enum name="GL_TEXTURE_FILTER_CONTROL_EXT"/>
+ <enum name="GL_TEXTURE_LOD_BIAS_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_mirror_clamp" supported="gl">
+ <require>
+ <enum name="GL_MIRROR_CLAMP_EXT"/>
+ <enum name="GL_MIRROR_CLAMP_TO_EDGE_EXT"/>
+ <enum name="GL_MIRROR_CLAMP_TO_BORDER_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_object" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_PRIORITY_EXT"/>
+ <enum name="GL_TEXTURE_RESIDENT_EXT"/>
+ <enum name="GL_TEXTURE_1D_BINDING_EXT"/>
+ <enum name="GL_TEXTURE_2D_BINDING_EXT"/>
+ <enum name="GL_TEXTURE_3D_BINDING_EXT"/>
+ <command name="glAreTexturesResidentEXT"/>
+ <command name="glBindTextureEXT"/>
+ <command name="glDeleteTexturesEXT"/>
+ <command name="glGenTexturesEXT"/>
+ <command name="glIsTextureEXT"/>
+ <command name="glPrioritizeTexturesEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_perturb_normal" supported="gl">
+ <require>
+ <enum name="GL_PERTURB_EXT"/>
+ <enum name="GL_TEXTURE_NORMAL_EXT"/>
+ <command name="glTextureNormalEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_rg" supported="gles2">
+ <require>
+ <enum name="GL_RED_EXT"/>
+ <enum name="GL_RG_EXT"/>
+ <enum name="GL_R8_EXT"/>
+ <enum name="GL_RG8_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_sRGB" supported="gl">
+ <require>
+ <enum name="GL_SRGB_EXT"/>
+ <enum name="GL_SRGB8_EXT"/>
+ <enum name="GL_SRGB_ALPHA_EXT"/>
+ <enum name="GL_SRGB8_ALPHA8_EXT"/>
+ <enum name="GL_SLUMINANCE_ALPHA_EXT"/>
+ <enum name="GL_SLUMINANCE8_ALPHA8_EXT"/>
+ <enum name="GL_SLUMINANCE_EXT"/>
+ <enum name="GL_SLUMINANCE8_EXT"/>
+ <enum name="GL_COMPRESSED_SRGB_EXT"/>
+ <enum name="GL_COMPRESSED_SRGB_ALPHA_EXT"/>
+ <enum name="GL_COMPRESSED_SLUMINANCE_EXT"/>
+ <enum name="GL_COMPRESSED_SLUMINANCE_ALPHA_EXT"/>
+ <enum name="GL_COMPRESSED_SRGB_S3TC_DXT1_EXT"/>
+ <enum name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT"/>
+ <enum name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT"/>
+ <enum name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_sRGB_decode" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_SRGB_DECODE_EXT"/>
+ <enum name="GL_DECODE_EXT"/>
+ <enum name="GL_SKIP_DECODE_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_shared_exponent" supported="gl">
+ <require>
+ <enum name="GL_RGB9_E5_EXT"/>
+ <enum name="GL_UNSIGNED_INT_5_9_9_9_REV_EXT"/>
+ <enum name="GL_TEXTURE_SHARED_SIZE_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_snorm" supported="gl">
+ <require>
+ <enum name="GL_ALPHA_SNORM"/>
+ <enum name="GL_LUMINANCE_SNORM"/>
+ <enum name="GL_LUMINANCE_ALPHA_SNORM"/>
+ <enum name="GL_INTENSITY_SNORM"/>
+ <enum name="GL_ALPHA8_SNORM"/>
+ <enum name="GL_LUMINANCE8_SNORM"/>
+ <enum name="GL_LUMINANCE8_ALPHA8_SNORM"/>
+ <enum name="GL_INTENSITY8_SNORM"/>
+ <enum name="GL_ALPHA16_SNORM"/>
+ <enum name="GL_LUMINANCE16_SNORM"/>
+ <enum name="GL_LUMINANCE16_ALPHA16_SNORM"/>
+ <enum name="GL_INTENSITY16_SNORM"/>
+ <enum name="GL_RED_SNORM"/>
+ <enum name="GL_RG_SNORM"/>
+ <enum name="GL_RGB_SNORM"/>
+ <enum name="GL_RGBA_SNORM"/>
+ <enum name="GL_R8_SNORM"/>
+ <enum name="GL_RG8_SNORM"/>
+ <enum name="GL_RGB8_SNORM"/>
+ <enum name="GL_RGBA8_SNORM"/>
+ <enum name="GL_R16_SNORM"/>
+ <enum name="GL_RG16_SNORM"/>
+ <enum name="GL_RGB16_SNORM"/>
+ <enum name="GL_RGBA16_SNORM"/>
+ <enum name="GL_SIGNED_NORMALIZED"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_storage" supported="gles1|gles2">
+ <require comment="Not clear all of these enums should be here for OpenGL ES. Many are only defined if other extensions also requiring them are supported">
+ <enum name="GL_TEXTURE_IMMUTABLE_FORMAT_EXT"/>
+ <enum name="GL_ALPHA8_EXT"/>
+ <enum name="GL_LUMINANCE8_EXT"/>
+ <enum name="GL_LUMINANCE8_ALPHA8_EXT"/>
+ <enum name="GL_RGBA32F_EXT"/>
+ <enum name="GL_RGB32F_EXT"/>
+ <enum name="GL_ALPHA32F_EXT"/>
+ <enum name="GL_LUMINANCE32F_EXT"/>
+ <enum name="GL_LUMINANCE_ALPHA32F_EXT"/>
+ <enum name="GL_RGBA16F_EXT"/>
+ <enum name="GL_RGB16F_EXT"/>
+ <enum name="GL_ALPHA16F_EXT"/>
+ <enum name="GL_LUMINANCE16F_EXT"/>
+ <enum name="GL_LUMINANCE_ALPHA16F_EXT"/>
+ <enum name="GL_RGB10_A2_EXT"/>
+ <enum name="GL_RGB10_EXT"/>
+ <enum name="GL_BGRA8_EXT"/>
+ <enum name="GL_R8_EXT"/>
+ <enum name="GL_RG8_EXT"/>
+ <enum name="GL_R32F_EXT"/>
+ <enum name="GL_RG32F_EXT"/>
+ <enum name="GL_R16F_EXT"/>
+ <enum name="GL_RG16F_EXT"/>
+ <command name="glTexStorage1DEXT"/>
+ <command name="glTexStorage2DEXT"/>
+ <command name="glTexStorage3DEXT"/>
+ <command name="glTextureStorage1DEXT"/>
+ <command name="glTextureStorage2DEXT"/>
+ <command name="glTextureStorage3DEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_swizzle" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_SWIZZLE_R_EXT"/>
+ <enum name="GL_TEXTURE_SWIZZLE_G_EXT"/>
+ <enum name="GL_TEXTURE_SWIZZLE_B_EXT"/>
+ <enum name="GL_TEXTURE_SWIZZLE_A_EXT"/>
+ <enum name="GL_TEXTURE_SWIZZLE_RGBA_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_texture_type_2_10_10_10_REV" supported="gles2">
+ <require>
+ <enum name="GL_UNSIGNED_INT_2_10_10_10_REV_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_timer_query" supported="gl">
+ <require>
+ <enum name="GL_TIME_ELAPSED_EXT"/>
+ <command name="glGetQueryObjecti64vEXT"/>
+ <command name="glGetQueryObjectui64vEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_transform_feedback" supported="gl">
+ <require>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_EXT"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT"/>
+ <enum name="GL_INTERLEAVED_ATTRIBS_EXT"/>
+ <enum name="GL_SEPARATE_ATTRIBS_EXT"/>
+ <enum name="GL_PRIMITIVES_GENERATED_EXT"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT"/>
+ <enum name="GL_RASTERIZER_DISCARD_EXT"/>
+ <enum name="GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT"/>
+ <enum name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT"/>
+ <enum name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_VARYINGS_EXT"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT"/>
+ <command name="glBeginTransformFeedbackEXT"/>
+ <command name="glEndTransformFeedbackEXT"/>
+ <command name="glBindBufferRangeEXT"/>
+ <command name="glBindBufferOffsetEXT"/>
+ <command name="glBindBufferBaseEXT"/>
+ <command name="glTransformFeedbackVaryingsEXT"/>
+ <command name="glGetTransformFeedbackVaryingEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_unpack_subimage" supported="gles2">
+ <require>
+ <enum name="GL_UNPACK_ROW_LENGTH_EXT"/>
+ <enum name="GL_UNPACK_SKIP_ROWS_EXT"/>
+ <enum name="GL_UNPACK_SKIP_PIXELS_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_vertex_array" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_ARRAY_EXT"/>
+ <enum name="GL_NORMAL_ARRAY_EXT"/>
+ <enum name="GL_COLOR_ARRAY_EXT"/>
+ <enum name="GL_INDEX_ARRAY_EXT"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_EXT"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_EXT"/>
+ <enum name="GL_VERTEX_ARRAY_SIZE_EXT"/>
+ <enum name="GL_VERTEX_ARRAY_TYPE_EXT"/>
+ <enum name="GL_VERTEX_ARRAY_STRIDE_EXT"/>
+ <enum name="GL_VERTEX_ARRAY_COUNT_EXT"/>
+ <enum name="GL_NORMAL_ARRAY_TYPE_EXT"/>
+ <enum name="GL_NORMAL_ARRAY_STRIDE_EXT"/>
+ <enum name="GL_NORMAL_ARRAY_COUNT_EXT"/>
+ <enum name="GL_COLOR_ARRAY_SIZE_EXT"/>
+ <enum name="GL_COLOR_ARRAY_TYPE_EXT"/>
+ <enum name="GL_COLOR_ARRAY_STRIDE_EXT"/>
+ <enum name="GL_COLOR_ARRAY_COUNT_EXT"/>
+ <enum name="GL_INDEX_ARRAY_TYPE_EXT"/>
+ <enum name="GL_INDEX_ARRAY_STRIDE_EXT"/>
+ <enum name="GL_INDEX_ARRAY_COUNT_EXT"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_SIZE_EXT"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_TYPE_EXT"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_STRIDE_EXT"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_COUNT_EXT"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_STRIDE_EXT"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_COUNT_EXT"/>
+ <enum name="GL_VERTEX_ARRAY_POINTER_EXT"/>
+ <enum name="GL_NORMAL_ARRAY_POINTER_EXT"/>
+ <enum name="GL_COLOR_ARRAY_POINTER_EXT"/>
+ <enum name="GL_INDEX_ARRAY_POINTER_EXT"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_POINTER_EXT"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_POINTER_EXT"/>
+ <command name="glArrayElementEXT"/>
+ <command name="glColorPointerEXT"/>
+ <command name="glDrawArraysEXT"/>
+ <command name="glEdgeFlagPointerEXT"/>
+ <command name="glGetPointervEXT"/>
+ <command name="glIndexPointerEXT"/>
+ <command name="glNormalPointerEXT"/>
+ <command name="glTexCoordPointerEXT"/>
+ <command name="glVertexPointerEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_vertex_array_bgra" supported="gl">
+ <require>
+ <enum name="GL_BGRA"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_vertex_attrib_64bit" supported="gl">
+ <require>
+ <enum name="GL_DOUBLE"/>
+ <enum name="GL_DOUBLE_VEC2_EXT"/>
+ <enum name="GL_DOUBLE_VEC3_EXT"/>
+ <enum name="GL_DOUBLE_VEC4_EXT"/>
+ <enum name="GL_DOUBLE_MAT2_EXT"/>
+ <enum name="GL_DOUBLE_MAT3_EXT"/>
+ <enum name="GL_DOUBLE_MAT4_EXT"/>
+ <enum name="GL_DOUBLE_MAT2x3_EXT"/>
+ <enum name="GL_DOUBLE_MAT2x4_EXT"/>
+ <enum name="GL_DOUBLE_MAT3x2_EXT"/>
+ <enum name="GL_DOUBLE_MAT3x4_EXT"/>
+ <enum name="GL_DOUBLE_MAT4x2_EXT"/>
+ <enum name="GL_DOUBLE_MAT4x3_EXT"/>
+ <command name="glVertexAttribL1dEXT"/>
+ <command name="glVertexAttribL2dEXT"/>
+ <command name="glVertexAttribL3dEXT"/>
+ <command name="glVertexAttribL4dEXT"/>
+ <command name="glVertexAttribL1dvEXT"/>
+ <command name="glVertexAttribL2dvEXT"/>
+ <command name="glVertexAttribL3dvEXT"/>
+ <command name="glVertexAttribL4dvEXT"/>
+ <command name="glVertexAttribLPointerEXT"/>
+ <command name="glGetVertexAttribLdvEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_vertex_shader" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_SHADER_EXT"/>
+ <enum name="GL_VERTEX_SHADER_BINDING_EXT"/>
+ <enum name="GL_OP_INDEX_EXT"/>
+ <enum name="GL_OP_NEGATE_EXT"/>
+ <enum name="GL_OP_DOT3_EXT"/>
+ <enum name="GL_OP_DOT4_EXT"/>
+ <enum name="GL_OP_MUL_EXT"/>
+ <enum name="GL_OP_ADD_EXT"/>
+ <enum name="GL_OP_MADD_EXT"/>
+ <enum name="GL_OP_FRAC_EXT"/>
+ <enum name="GL_OP_MAX_EXT"/>
+ <enum name="GL_OP_MIN_EXT"/>
+ <enum name="GL_OP_SET_GE_EXT"/>
+ <enum name="GL_OP_SET_LT_EXT"/>
+ <enum name="GL_OP_CLAMP_EXT"/>
+ <enum name="GL_OP_FLOOR_EXT"/>
+ <enum name="GL_OP_ROUND_EXT"/>
+ <enum name="GL_OP_EXP_BASE_2_EXT"/>
+ <enum name="GL_OP_LOG_BASE_2_EXT"/>
+ <enum name="GL_OP_POWER_EXT"/>
+ <enum name="GL_OP_RECIP_EXT"/>
+ <enum name="GL_OP_RECIP_SQRT_EXT"/>
+ <enum name="GL_OP_SUB_EXT"/>
+ <enum name="GL_OP_CROSS_PRODUCT_EXT"/>
+ <enum name="GL_OP_MULTIPLY_MATRIX_EXT"/>
+ <enum name="GL_OP_MOV_EXT"/>
+ <enum name="GL_OUTPUT_VERTEX_EXT"/>
+ <enum name="GL_OUTPUT_COLOR0_EXT"/>
+ <enum name="GL_OUTPUT_COLOR1_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD0_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD1_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD2_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD3_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD4_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD5_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD6_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD7_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD8_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD9_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD10_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD11_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD12_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD13_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD14_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD15_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD16_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD17_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD18_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD19_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD20_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD21_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD22_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD23_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD24_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD25_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD26_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD27_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD28_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD29_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD30_EXT"/>
+ <enum name="GL_OUTPUT_TEXTURE_COORD31_EXT"/>
+ <enum name="GL_OUTPUT_FOG_EXT"/>
+ <enum name="GL_SCALAR_EXT"/>
+ <enum name="GL_VECTOR_EXT"/>
+ <enum name="GL_MATRIX_EXT"/>
+ <enum name="GL_VARIANT_EXT"/>
+ <enum name="GL_INVARIANT_EXT"/>
+ <enum name="GL_LOCAL_CONSTANT_EXT"/>
+ <enum name="GL_LOCAL_EXT"/>
+ <enum name="GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT"/>
+ <enum name="GL_MAX_VERTEX_SHADER_VARIANTS_EXT"/>
+ <enum name="GL_MAX_VERTEX_SHADER_INVARIANTS_EXT"/>
+ <enum name="GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT"/>
+ <enum name="GL_MAX_VERTEX_SHADER_LOCALS_EXT"/>
+ <enum name="GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT"/>
+ <enum name="GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT"/>
+ <enum name="GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT"/>
+ <enum name="GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT"/>
+ <enum name="GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT"/>
+ <enum name="GL_VERTEX_SHADER_INSTRUCTIONS_EXT"/>
+ <enum name="GL_VERTEX_SHADER_VARIANTS_EXT"/>
+ <enum name="GL_VERTEX_SHADER_INVARIANTS_EXT"/>
+ <enum name="GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT"/>
+ <enum name="GL_VERTEX_SHADER_LOCALS_EXT"/>
+ <enum name="GL_VERTEX_SHADER_OPTIMIZED_EXT"/>
+ <enum name="GL_X_EXT"/>
+ <enum name="GL_Y_EXT"/>
+ <enum name="GL_Z_EXT"/>
+ <enum name="GL_W_EXT"/>
+ <enum name="GL_NEGATIVE_X_EXT"/>
+ <enum name="GL_NEGATIVE_Y_EXT"/>
+ <enum name="GL_NEGATIVE_Z_EXT"/>
+ <enum name="GL_NEGATIVE_W_EXT"/>
+ <enum name="GL_ZERO_EXT"/>
+ <enum name="GL_ONE_EXT"/>
+ <enum name="GL_NEGATIVE_ONE_EXT"/>
+ <enum name="GL_NORMALIZED_RANGE_EXT"/>
+ <enum name="GL_FULL_RANGE_EXT"/>
+ <enum name="GL_CURRENT_VERTEX_EXT"/>
+ <enum name="GL_MVP_MATRIX_EXT"/>
+ <enum name="GL_VARIANT_VALUE_EXT"/>
+ <enum name="GL_VARIANT_DATATYPE_EXT"/>
+ <enum name="GL_VARIANT_ARRAY_STRIDE_EXT"/>
+ <enum name="GL_VARIANT_ARRAY_TYPE_EXT"/>
+ <enum name="GL_VARIANT_ARRAY_EXT"/>
+ <enum name="GL_VARIANT_ARRAY_POINTER_EXT"/>
+ <enum name="GL_INVARIANT_VALUE_EXT"/>
+ <enum name="GL_INVARIANT_DATATYPE_EXT"/>
+ <enum name="GL_LOCAL_CONSTANT_VALUE_EXT"/>
+ <enum name="GL_LOCAL_CONSTANT_DATATYPE_EXT"/>
+ <command name="glBeginVertexShaderEXT"/>
+ <command name="glEndVertexShaderEXT"/>
+ <command name="glBindVertexShaderEXT"/>
+ <command name="glGenVertexShadersEXT"/>
+ <command name="glDeleteVertexShaderEXT"/>
+ <command name="glShaderOp1EXT"/>
+ <command name="glShaderOp2EXT"/>
+ <command name="glShaderOp3EXT"/>
+ <command name="glSwizzleEXT"/>
+ <command name="glWriteMaskEXT"/>
+ <command name="glInsertComponentEXT"/>
+ <command name="glExtractComponentEXT"/>
+ <command name="glGenSymbolsEXT"/>
+ <command name="glSetInvariantEXT"/>
+ <command name="glSetLocalConstantEXT"/>
+ <command name="glVariantbvEXT"/>
+ <command name="glVariantsvEXT"/>
+ <command name="glVariantivEXT"/>
+ <command name="glVariantfvEXT"/>
+ <command name="glVariantdvEXT"/>
+ <command name="glVariantubvEXT"/>
+ <command name="glVariantusvEXT"/>
+ <command name="glVariantuivEXT"/>
+ <command name="glVariantPointerEXT"/>
+ <command name="glEnableVariantClientStateEXT"/>
+ <command name="glDisableVariantClientStateEXT"/>
+ <command name="glBindLightParameterEXT"/>
+ <command name="glBindMaterialParameterEXT"/>
+ <command name="glBindTexGenParameterEXT"/>
+ <command name="glBindTextureUnitParameterEXT"/>
+ <command name="glBindParameterEXT"/>
+ <command name="glIsVariantEnabledEXT"/>
+ <command name="glGetVariantBooleanvEXT"/>
+ <command name="glGetVariantIntegervEXT"/>
+ <command name="glGetVariantFloatvEXT"/>
+ <command name="glGetVariantPointervEXT"/>
+ <command name="glGetInvariantBooleanvEXT"/>
+ <command name="glGetInvariantIntegervEXT"/>
+ <command name="glGetInvariantFloatvEXT"/>
+ <command name="glGetLocalConstantBooleanvEXT"/>
+ <command name="glGetLocalConstantIntegervEXT"/>
+ <command name="glGetLocalConstantFloatvEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_vertex_weighting" supported="gl">
+ <require>
+ <enum name="GL_MODELVIEW0_STACK_DEPTH_EXT"/>
+ <enum name="GL_MODELVIEW1_STACK_DEPTH_EXT"/>
+ <enum name="GL_MODELVIEW0_MATRIX_EXT"/>
+ <enum name="GL_MODELVIEW1_MATRIX_EXT"/>
+ <enum name="GL_VERTEX_WEIGHTING_EXT"/>
+ <enum name="GL_MODELVIEW0_EXT"/>
+ <enum name="GL_MODELVIEW1_EXT"/>
+ <enum name="GL_CURRENT_VERTEX_WEIGHT_EXT"/>
+ <enum name="GL_VERTEX_WEIGHT_ARRAY_EXT"/>
+ <enum name="GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT"/>
+ <enum name="GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT"/>
+ <enum name="GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT"/>
+ <enum name="GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT"/>
+ <command name="glVertexWeightfEXT"/>
+ <command name="glVertexWeightfvEXT"/>
+ <command name="glVertexWeightPointerEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_EXT_x11_sync_object" supported="gl">
+ <require>
+ <enum name="GL_SYNC_X11_FENCE_EXT"/>
+ <command name="glImportSyncEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_FJ_shader_binary_GCCSO" supported="gles2">
+ <require>
+ <enum name="GL_GCCSO_SHADER_BINARY_FJ"/>
+ </require>
+ </extension>
+ <extension name="GL_GREMEDY_frame_terminator" supported="gl">
+ <require>
+ <command name="glFrameTerminatorGREMEDY"/>
+ </require>
+ </extension>
+ <extension name="GL_GREMEDY_string_marker" supported="gl">
+ <require>
+ <command name="glStringMarkerGREMEDY"/>
+ </require>
+ </extension>
+ <extension name="GL_HP_convolution_border_modes" supported="gl">
+ <require>
+ <enum name="GL_IGNORE_BORDER_HP"/>
+ <enum name="GL_CONSTANT_BORDER_HP"/>
+ <enum name="GL_REPLICATE_BORDER_HP"/>
+ <enum name="GL_CONVOLUTION_BORDER_COLOR_HP"/>
+ </require>
+ </extension>
+ <extension name="GL_HP_image_transform" supported="gl">
+ <require>
+ <enum name="GL_IMAGE_SCALE_X_HP"/>
+ <enum name="GL_IMAGE_SCALE_Y_HP"/>
+ <enum name="GL_IMAGE_TRANSLATE_X_HP"/>
+ <enum name="GL_IMAGE_TRANSLATE_Y_HP"/>
+ <enum name="GL_IMAGE_ROTATE_ANGLE_HP"/>
+ <enum name="GL_IMAGE_ROTATE_ORIGIN_X_HP"/>
+ <enum name="GL_IMAGE_ROTATE_ORIGIN_Y_HP"/>
+ <enum name="GL_IMAGE_MAG_FILTER_HP"/>
+ <enum name="GL_IMAGE_MIN_FILTER_HP"/>
+ <enum name="GL_IMAGE_CUBIC_WEIGHT_HP"/>
+ <enum name="GL_CUBIC_HP"/>
+ <enum name="GL_AVERAGE_HP"/>
+ <enum name="GL_IMAGE_TRANSFORM_2D_HP"/>
+ <enum name="GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP"/>
+ <enum name="GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP"/>
+ <command name="glImageTransformParameteriHP"/>
+ <command name="glImageTransformParameterfHP"/>
+ <command name="glImageTransformParameterivHP"/>
+ <command name="glImageTransformParameterfvHP"/>
+ <command name="glGetImageTransformParameterivHP"/>
+ <command name="glGetImageTransformParameterfvHP"/>
+ </require>
+ </extension>
+ <extension name="GL_HP_occlusion_test" supported="gl">
+ <require>
+ <enum name="GL_OCCLUSION_TEST_HP"/>
+ <enum name="GL_OCCLUSION_TEST_RESULT_HP"/>
+ </require>
+ </extension>
+ <extension name="GL_HP_texture_lighting" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_LIGHTING_MODE_HP"/>
+ <enum name="GL_TEXTURE_POST_SPECULAR_HP"/>
+ <enum name="GL_TEXTURE_PRE_SPECULAR_HP"/>
+ </require>
+ </extension>
+ <extension name="GL_IBM_cull_vertex" supported="gl">
+ <require>
+ <enum name="GL_CULL_VERTEX_IBM"/>
+ </require>
+ </extension>
+ <extension name="GL_IBM_multimode_draw_arrays" supported="gl">
+ <require>
+ <command name="glMultiModeDrawArraysIBM"/>
+ <command name="glMultiModeDrawElementsIBM"/>
+ </require>
+ </extension>
+ <extension name="GL_IBM_rasterpos_clip" supported="gl">
+ <require>
+ <enum name="GL_RASTER_POSITION_UNCLIPPED_IBM"/>
+ </require>
+ </extension>
+ <extension name="GL_IBM_static_data" supported="gl">
+ <require>
+ <enum name="GL_ALL_STATIC_DATA_IBM"/>
+ <enum name="GL_STATIC_VERTEX_ARRAY_IBM"/>
+ <command name="glFlushStaticDataIBM"/>
+ </require>
+ </extension>
+ <extension name="GL_IBM_texture_mirrored_repeat" supported="gl">
+ <require>
+ <enum name="GL_MIRRORED_REPEAT_IBM"/>
+ </require>
+ </extension>
+ <extension name="GL_IBM_vertex_array_lists" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_ARRAY_LIST_IBM"/>
+ <enum name="GL_NORMAL_ARRAY_LIST_IBM"/>
+ <enum name="GL_COLOR_ARRAY_LIST_IBM"/>
+ <enum name="GL_INDEX_ARRAY_LIST_IBM"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_LIST_IBM"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_LIST_IBM"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_LIST_IBM"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_LIST_IBM"/>
+ <enum name="GL_VERTEX_ARRAY_LIST_STRIDE_IBM"/>
+ <enum name="GL_NORMAL_ARRAY_LIST_STRIDE_IBM"/>
+ <enum name="GL_COLOR_ARRAY_LIST_STRIDE_IBM"/>
+ <enum name="GL_INDEX_ARRAY_LIST_STRIDE_IBM"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM"/>
+ <enum name="GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM"/>
+ <command name="glColorPointerListIBM"/>
+ <command name="glSecondaryColorPointerListIBM"/>
+ <command name="glEdgeFlagPointerListIBM"/>
+ <command name="glFogCoordPointerListIBM"/>
+ <command name="glIndexPointerListIBM"/>
+ <command name="glNormalPointerListIBM"/>
+ <command name="glTexCoordPointerListIBM"/>
+ <command name="glVertexPointerListIBM"/>
+ </require>
+ </extension>
+ <extension name="GL_IMG_multisampled_render_to_texture" supported="gles1|gles2">
+ <require>
+ <enum name="GL_RENDERBUFFER_SAMPLES_IMG"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG"/>
+ <enum name="GL_MAX_SAMPLES_IMG"/>
+ <enum name="GL_TEXTURE_SAMPLES_IMG"/>
+ <command name="glRenderbufferStorageMultisampleIMG"/>
+ <command name="glFramebufferTexture2DMultisampleIMG"/>
+ </require>
+ </extension>
+ <extension name="GL_IMG_program_binary" supported="gles2">
+ <require>
+ <enum name="GL_SGX_PROGRAM_BINARY_IMG"/>
+ </require>
+ </extension>
+ <extension name="GL_IMG_read_format" supported="gles1|gles2">
+ <require>
+ <enum name="GL_BGRA_IMG"/>
+ <enum name="GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG"/>
+ </require>
+ </extension>
+ <extension name="GL_IMG_shader_binary" supported="gles2">
+ <require>
+ <enum name="GL_SGX_BINARY_IMG"/>
+ </require>
+ </extension>
+ <extension name="GL_IMG_texture_compression_pvrtc" supported="gles1|gles2">
+ <require>
+ <enum name="GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG"/>
+ <enum name="GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG"/>
+ <enum name="GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG"/>
+ <enum name="GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG"/>
+ </require>
+ </extension>
+ <extension name="GL_IMG_texture_compression_pvrtc2" supported="gles2">
+ <require>
+ <enum name="GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG"/>
+ <enum name="GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG"/>
+ </require>
+ </extension>
+ <extension name="GL_IMG_texture_env_enhanced_fixed_function" supported="gles1">
+ <require>
+ <enum name="GL_MODULATE_COLOR_IMG"/>
+ <enum name="GL_RECIP_ADD_SIGNED_ALPHA_IMG"/>
+ <enum name="GL_TEXTURE_ALPHA_MODULATE_IMG"/>
+ <enum name="GL_FACTOR_ALPHA_MODULATE_IMG"/>
+ <enum name="GL_FRAGMENT_ALPHA_MODULATE_IMG"/>
+ <enum name="GL_ADD_BLEND_IMG"/>
+ <enum name="GL_DOT3_RGBA_IMG"/>
+ </require>
+ </extension>
+ <extension name="GL_IMG_user_clip_plane" supported="gles1">
+ <require>
+ <enum name="GL_CLIP_PLANE0_IMG"/>
+ <enum name="GL_CLIP_PLANE1_IMG"/>
+ <enum name="GL_CLIP_PLANE2_IMG"/>
+ <enum name="GL_CLIP_PLANE3_IMG"/>
+ <enum name="GL_CLIP_PLANE4_IMG"/>
+ <enum name="GL_CLIP_PLANE5_IMG"/>
+ <enum name="GL_MAX_CLIP_PLANES_IMG"/>
+ <command name="glClipPlanefIMG"/>
+ <command name="glClipPlanexIMG"/>
+ </require>
+ </extension>
+ <extension name="GL_INGR_blend_func_separate" supported="gl">
+ <require>
+ <command name="glBlendFuncSeparateINGR"/>
+ </require>
+ </extension>
+ <extension name="GL_INGR_color_clamp" supported="gl">
+ <require>
+ <enum name="GL_RED_MIN_CLAMP_INGR"/>
+ <enum name="GL_GREEN_MIN_CLAMP_INGR"/>
+ <enum name="GL_BLUE_MIN_CLAMP_INGR"/>
+ <enum name="GL_ALPHA_MIN_CLAMP_INGR"/>
+ <enum name="GL_RED_MAX_CLAMP_INGR"/>
+ <enum name="GL_GREEN_MAX_CLAMP_INGR"/>
+ <enum name="GL_BLUE_MAX_CLAMP_INGR"/>
+ <enum name="GL_ALPHA_MAX_CLAMP_INGR"/>
+ </require>
+ </extension>
+ <extension name="GL_INGR_interlace_read" supported="gl">
+ <require>
+ <enum name="GL_INTERLACE_READ_INGR"/>
+ </require>
+ </extension>
+ <extension name="GL_INTEL_map_texture" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_MEMORY_LAYOUT_INTEL"/>
+ <enum name="GL_LAYOUT_DEFAULT_INTEL"/>
+ <enum name="GL_LAYOUT_LINEAR_INTEL"/>
+ <enum name="GL_LAYOUT_LINEAR_CPU_CACHED_INTEL"/>
+ <command name="glSyncTextureINTEL"/>
+ <command name="glUnmapTexture2DINTEL"/>
+ <command name="glMapTexture2DINTEL"/>
+ </require>
+ </extension>
+ <extension name="GL_INTEL_parallel_arrays" supported="gl">
+ <require>
+ <enum name="GL_PARALLEL_ARRAYS_INTEL"/>
+ <enum name="GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL"/>
+ <enum name="GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL"/>
+ <enum name="GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL"/>
+ <command name="glVertexPointervINTEL"/>
+ <command name="glNormalPointervINTEL"/>
+ <command name="glColorPointervINTEL"/>
+ <command name="glTexCoordPointervINTEL"/>
+ </require>
+ </extension>
+ <extension name="GL_KHR_debug" supported="gl|glcore|gles2">
+ <require api="gl" comment="KHR extensions *mandate* suffixes for ES, unlike for GL">
+ <enum name="GL_DEBUG_OUTPUT_SYNCHRONOUS"/>
+ <enum name="GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH"/>
+ <enum name="GL_DEBUG_CALLBACK_FUNCTION"/>
+ <enum name="GL_DEBUG_CALLBACK_USER_PARAM"/>
+ <enum name="GL_DEBUG_SOURCE_API"/>
+ <enum name="GL_DEBUG_SOURCE_WINDOW_SYSTEM"/>
+ <enum name="GL_DEBUG_SOURCE_SHADER_COMPILER"/>
+ <enum name="GL_DEBUG_SOURCE_THIRD_PARTY"/>
+ <enum name="GL_DEBUG_SOURCE_APPLICATION"/>
+ <enum name="GL_DEBUG_SOURCE_OTHER"/>
+ <enum name="GL_DEBUG_TYPE_ERROR"/>
+ <enum name="GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR"/>
+ <enum name="GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR"/>
+ <enum name="GL_DEBUG_TYPE_PORTABILITY"/>
+ <enum name="GL_DEBUG_TYPE_PERFORMANCE"/>
+ <enum name="GL_DEBUG_TYPE_OTHER"/>
+ <enum name="GL_DEBUG_TYPE_MARKER"/>
+ <enum name="GL_DEBUG_TYPE_PUSH_GROUP"/>
+ <enum name="GL_DEBUG_TYPE_POP_GROUP"/>
+ <enum name="GL_DEBUG_SEVERITY_NOTIFICATION"/>
+ <enum name="GL_MAX_DEBUG_GROUP_STACK_DEPTH"/>
+ <enum name="GL_DEBUG_GROUP_STACK_DEPTH"/>
+ <enum name="GL_BUFFER"/>
+ <enum name="GL_SHADER"/>
+ <enum name="GL_PROGRAM"/>
+ <enum name="GL_QUERY"/>
+ <enum name="GL_SAMPLER"/>
+ <enum name="GL_MAX_LABEL_LENGTH"/>
+ <enum name="GL_MAX_DEBUG_MESSAGE_LENGTH"/>
+ <enum name="GL_MAX_DEBUG_LOGGED_MESSAGES"/>
+ <enum name="GL_DEBUG_LOGGED_MESSAGES"/>
+ <enum name="GL_DEBUG_SEVERITY_HIGH"/>
+ <enum name="GL_DEBUG_SEVERITY_MEDIUM"/>
+ <enum name="GL_DEBUG_SEVERITY_LOW"/>
+ <enum name="GL_DEBUG_OUTPUT"/>
+ <enum name="GL_CONTEXT_FLAG_DEBUG_BIT"/>
+ <enum name="GL_STACK_OVERFLOW"/>
+ <enum name="GL_STACK_UNDERFLOW"/>
+ <command name="glDebugMessageControl"/>
+ <command name="glDebugMessageInsert"/>
+ <command name="glDebugMessageCallback"/>
+ <command name="glGetDebugMessageLog"/>
+ <command name="glPushDebugGroup"/>
+ <command name="glPopDebugGroup"/>
+ <command name="glObjectLabel"/>
+ <command name="glGetObjectLabel"/>
+ <command name="glObjectPtrLabel"/>
+ <command name="glGetObjectPtrLabel"/>
+ <command name="glGetPointerv"/>
+ </require>
+ <require api="gles2">
+ <enum name="GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR"/>
+ <enum name="GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR"/>
+ <enum name="GL_DEBUG_CALLBACK_FUNCTION_KHR"/>
+ <enum name="GL_DEBUG_CALLBACK_USER_PARAM_KHR"/>
+ <enum name="GL_DEBUG_SOURCE_API_KHR"/>
+ <enum name="GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR"/>
+ <enum name="GL_DEBUG_SOURCE_SHADER_COMPILER_KHR"/>
+ <enum name="GL_DEBUG_SOURCE_THIRD_PARTY_KHR"/>
+ <enum name="GL_DEBUG_SOURCE_APPLICATION_KHR"/>
+ <enum name="GL_DEBUG_SOURCE_OTHER_KHR"/>
+ <enum name="GL_DEBUG_TYPE_ERROR_KHR"/>
+ <enum name="GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR"/>
+ <enum name="GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR"/>
+ <enum name="GL_DEBUG_TYPE_PORTABILITY_KHR"/>
+ <enum name="GL_DEBUG_TYPE_PERFORMANCE_KHR"/>
+ <enum name="GL_DEBUG_TYPE_OTHER_KHR"/>
+ <enum name="GL_DEBUG_TYPE_MARKER_KHR"/>
+ <enum name="GL_DEBUG_TYPE_PUSH_GROUP_KHR"/>
+ <enum name="GL_DEBUG_TYPE_POP_GROUP_KHR"/>
+ <enum name="GL_DEBUG_SEVERITY_NOTIFICATION_KHR"/>
+ <enum name="GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR"/>
+ <enum name="GL_DEBUG_GROUP_STACK_DEPTH_KHR"/>
+ <enum name="GL_BUFFER_KHR"/>
+ <enum name="GL_SHADER_KHR"/>
+ <enum name="GL_PROGRAM_KHR"/>
+ <enum name="GL_QUERY_KHR"/>
+ <enum name="GL_SAMPLER_KHR"/>
+ <enum name="GL_MAX_LABEL_LENGTH_KHR"/>
+ <enum name="GL_MAX_DEBUG_MESSAGE_LENGTH_KHR"/>
+ <enum name="GL_MAX_DEBUG_LOGGED_MESSAGES_KHR"/>
+ <enum name="GL_DEBUG_LOGGED_MESSAGES_KHR"/>
+ <enum name="GL_DEBUG_SEVERITY_HIGH_KHR"/>
+ <enum name="GL_DEBUG_SEVERITY_MEDIUM_KHR"/>
+ <enum name="GL_DEBUG_SEVERITY_LOW_KHR"/>
+ <enum name="GL_DEBUG_OUTPUT_KHR"/>
+ <enum name="GL_CONTEXT_FLAG_DEBUG_BIT_KHR"/>
+ <enum name="GL_STACK_OVERFLOW_KHR"/>
+ <enum name="GL_STACK_UNDERFLOW_KHR"/>
+ <command name="glDebugMessageControlKHR"/>
+ <command name="glDebugMessageInsertKHR"/>
+ <command name="glDebugMessageCallbackKHR"/>
+ <command name="glGetDebugMessageLogKHR"/>
+ <command name="glPushDebugGroupKHR"/>
+ <command name="glPopDebugGroupKHR"/>
+ <command name="glObjectLabelKHR"/>
+ <command name="glGetObjectLabelKHR"/>
+ <command name="glObjectPtrLabelKHR"/>
+ <command name="glGetObjectPtrLabelKHR"/>
+ <command name="glGetPointervKHR"/>
+ </require>
+ <require api="gl" comment="Could benefit from api/profile attributes at enum tag level">
+ <enum name="GL_PROGRAM_PIPELINE"/>
+ </require>
+ <require api="gl" profile="compatibility">
+ <enum name="GL_DISPLAY_LIST"/>
+ </require>
+ </extension>
+ <extension name="GL_KHR_texture_compression_astc_ldr" supported="gl|glcore|gles2">
+ <require>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_4x4_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_5x4_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_5x5_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_6x5_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_6x6_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_8x5_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_8x6_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_8x8_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_10x5_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_10x6_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_10x8_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_10x10_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_12x10_KHR"/>
+ <enum name="GL_COMPRESSED_RGBA_ASTC_12x12_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR"/>
+ <enum name="GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR"/>
+ </require>
+ </extension>
+ <extension name="GL_MESAX_texture_stack" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_1D_STACK_MESAX"/>
+ <enum name="GL_TEXTURE_2D_STACK_MESAX"/>
+ <enum name="GL_PROXY_TEXTURE_1D_STACK_MESAX"/>
+ <enum name="GL_PROXY_TEXTURE_2D_STACK_MESAX"/>
+ <enum name="GL_TEXTURE_1D_STACK_BINDING_MESAX"/>
+ <enum name="GL_TEXTURE_2D_STACK_BINDING_MESAX"/>
+ </require>
+ </extension>
+ <extension name="GL_MESA_pack_invert" supported="gl">
+ <require>
+ <enum name="GL_PACK_INVERT_MESA"/>
+ </require>
+ </extension>
+ <extension name="GL_MESA_resize_buffers" supported="gl">
+ <require>
+ <command name="glResizeBuffersMESA"/>
+ </require>
+ </extension>
+ <extension name="GL_MESA_window_pos" supported="gl">
+ <require>
+ <command name="glWindowPos2dMESA"/>
+ <command name="glWindowPos2dvMESA"/>
+ <command name="glWindowPos2fMESA"/>
+ <command name="glWindowPos2fvMESA"/>
+ <command name="glWindowPos2iMESA"/>
+ <command name="glWindowPos2ivMESA"/>
+ <command name="glWindowPos2sMESA"/>
+ <command name="glWindowPos2svMESA"/>
+ <command name="glWindowPos3dMESA"/>
+ <command name="glWindowPos3dvMESA"/>
+ <command name="glWindowPos3fMESA"/>
+ <command name="glWindowPos3fvMESA"/>
+ <command name="glWindowPos3iMESA"/>
+ <command name="glWindowPos3ivMESA"/>
+ <command name="glWindowPos3sMESA"/>
+ <command name="glWindowPos3svMESA"/>
+ <command name="glWindowPos4dMESA"/>
+ <command name="glWindowPos4dvMESA"/>
+ <command name="glWindowPos4fMESA"/>
+ <command name="glWindowPos4fvMESA"/>
+ <command name="glWindowPos4iMESA"/>
+ <command name="glWindowPos4ivMESA"/>
+ <command name="glWindowPos4sMESA"/>
+ <command name="glWindowPos4svMESA"/>
+ </require>
+ </extension>
+ <extension name="GL_MESA_ycbcr_texture" supported="gl">
+ <require>
+ <enum name="GL_UNSIGNED_SHORT_8_8_MESA"/>
+ <enum name="GL_UNSIGNED_SHORT_8_8_REV_MESA"/>
+ <enum name="GL_YCBCR_MESA"/>
+ </require>
+ </extension>
+ <extension name="GL_NVX_conditional_render" supported="gl">
+ <require>
+ <command name="glBeginConditionalRenderNVX"/>
+ <command name="glEndConditionalRenderNVX"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_bindless_texture" supported="gl">
+ <require>
+ <command name="glGetTextureHandleNV"/>
+ <command name="glGetTextureSamplerHandleNV"/>
+ <command name="glMakeTextureHandleResidentNV"/>
+ <command name="glMakeTextureHandleNonResidentNV"/>
+ <command name="glGetImageHandleNV"/>
+ <command name="glMakeImageHandleResidentNV"/>
+ <command name="glMakeImageHandleNonResidentNV"/>
+ <command name="glUniformHandleui64NV"/>
+ <command name="glUniformHandleui64vNV"/>
+ <command name="glProgramUniformHandleui64NV"/>
+ <command name="glProgramUniformHandleui64vNV"/>
+ <command name="glIsTextureHandleResidentNV"/>
+ <command name="glIsImageHandleResidentNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_blend_square" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_NV_compute_program5" supported="gl">
+ <require>
+ <enum name="GL_COMPUTE_PROGRAM_NV"/>
+ <enum name="GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_conditional_render" supported="gl">
+ <require>
+ <enum name="GL_QUERY_WAIT_NV"/>
+ <enum name="GL_QUERY_NO_WAIT_NV"/>
+ <enum name="GL_QUERY_BY_REGION_WAIT_NV"/>
+ <enum name="GL_QUERY_BY_REGION_NO_WAIT_NV"/>
+ <command name="glBeginConditionalRenderNV"/>
+ <command name="glEndConditionalRenderNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_copy_depth_to_color" supported="gl">
+ <require>
+ <enum name="GL_DEPTH_STENCIL_TO_RGBA_NV"/>
+ <enum name="GL_DEPTH_STENCIL_TO_BGRA_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_copy_image" supported="gl">
+ <require>
+ <command name="glCopyImageSubDataNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_coverage_sample" supported="gles2">
+ <require>
+ <enum name="GL_COVERAGE_COMPONENT_NV"/>
+ <enum name="GL_COVERAGE_COMPONENT4_NV"/>
+ <enum name="GL_COVERAGE_ATTACHMENT_NV"/>
+ <enum name="GL_COVERAGE_BUFFERS_NV"/>
+ <enum name="GL_COVERAGE_SAMPLES_NV"/>
+ <enum name="GL_COVERAGE_ALL_FRAGMENTS_NV"/>
+ <enum name="GL_COVERAGE_EDGE_FRAGMENTS_NV"/>
+ <enum name="GL_COVERAGE_AUTOMATIC_NV"/>
+ <enum name="GL_COVERAGE_BUFFER_BIT_NV"/>
+ <command name="glCoverageMaskNV"/>
+ <command name="glCoverageOperationNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_deep_texture3D" supported="gl">
+ <require>
+ <enum name="GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV"/>
+ <enum name="GL_MAX_DEEP_3D_TEXTURE_DEPTH_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_depth_buffer_float" supported="gl">
+ <require>
+ <enum name="GL_DEPTH_COMPONENT32F_NV"/>
+ <enum name="GL_DEPTH32F_STENCIL8_NV"/>
+ <enum name="GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV"/>
+ <enum name="GL_DEPTH_BUFFER_FLOAT_MODE_NV"/>
+ <command name="glDepthRangedNV"/>
+ <command name="glClearDepthdNV"/>
+ <command name="glDepthBoundsdNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_depth_clamp" supported="gl">
+ <require>
+ <enum name="GL_DEPTH_CLAMP_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_depth_nonlinear" supported="gles2">
+ <require>
+ <enum name="GL_DEPTH_COMPONENT16_NONLINEAR_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_draw_buffers" supported="gles2">
+ <require>
+ <enum name="GL_MAX_DRAW_BUFFERS_NV"/>
+ <enum name="GL_DRAW_BUFFER0_NV"/>
+ <enum name="GL_DRAW_BUFFER1_NV"/>
+ <enum name="GL_DRAW_BUFFER2_NV"/>
+ <enum name="GL_DRAW_BUFFER3_NV"/>
+ <enum name="GL_DRAW_BUFFER4_NV"/>
+ <enum name="GL_DRAW_BUFFER5_NV"/>
+ <enum name="GL_DRAW_BUFFER6_NV"/>
+ <enum name="GL_DRAW_BUFFER7_NV"/>
+ <enum name="GL_DRAW_BUFFER8_NV"/>
+ <enum name="GL_DRAW_BUFFER9_NV"/>
+ <enum name="GL_DRAW_BUFFER10_NV"/>
+ <enum name="GL_DRAW_BUFFER11_NV"/>
+ <enum name="GL_DRAW_BUFFER12_NV"/>
+ <enum name="GL_DRAW_BUFFER13_NV"/>
+ <enum name="GL_DRAW_BUFFER14_NV"/>
+ <enum name="GL_DRAW_BUFFER15_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT0_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT1_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT2_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT3_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT4_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT5_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT6_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT7_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT8_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT9_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT10_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT11_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT12_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT13_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT14_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT15_NV"/>
+ <command name="glDrawBuffersNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_draw_instanced" supported="gles2">
+ <require>
+ <command name="glDrawArraysInstancedNV"/>
+ <command name="glDrawElementsInstancedNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_draw_texture" supported="gl">
+ <require>
+ <command name="glDrawTextureNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_evaluators" supported="gl">
+ <require>
+ <enum name="GL_EVAL_2D_NV"/>
+ <enum name="GL_EVAL_TRIANGULAR_2D_NV"/>
+ <enum name="GL_MAP_TESSELLATION_NV"/>
+ <enum name="GL_MAP_ATTRIB_U_ORDER_NV"/>
+ <enum name="GL_MAP_ATTRIB_V_ORDER_NV"/>
+ <enum name="GL_EVAL_FRACTIONAL_TESSELLATION_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB0_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB1_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB2_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB3_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB4_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB5_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB6_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB7_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB8_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB9_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB10_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB11_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB12_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB13_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB14_NV"/>
+ <enum name="GL_EVAL_VERTEX_ATTRIB15_NV"/>
+ <enum name="GL_MAX_MAP_TESSELLATION_NV"/>
+ <enum name="GL_MAX_RATIONAL_EVAL_ORDER_NV"/>
+ <command name="glMapControlPointsNV"/>
+ <command name="glMapParameterivNV"/>
+ <command name="glMapParameterfvNV"/>
+ <command name="glGetMapControlPointsNV"/>
+ <command name="glGetMapParameterivNV"/>
+ <command name="glGetMapParameterfvNV"/>
+ <command name="glGetMapAttribParameterivNV"/>
+ <command name="glGetMapAttribParameterfvNV"/>
+ <command name="glEvalMapsNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_explicit_multisample" supported="gl">
+ <require>
+ <enum name="GL_SAMPLE_POSITION_NV"/>
+ <enum name="GL_SAMPLE_MASK_NV"/>
+ <enum name="GL_SAMPLE_MASK_VALUE_NV"/>
+ <enum name="GL_TEXTURE_BINDING_RENDERBUFFER_NV"/>
+ <enum name="GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV"/>
+ <enum name="GL_TEXTURE_RENDERBUFFER_NV"/>
+ <enum name="GL_SAMPLER_RENDERBUFFER_NV"/>
+ <enum name="GL_INT_SAMPLER_RENDERBUFFER_NV"/>
+ <enum name="GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV"/>
+ <enum name="GL_MAX_SAMPLE_MASK_WORDS_NV"/>
+ <command name="glGetMultisamplefvNV"/>
+ <command name="glSampleMaskIndexedNV"/>
+ <command name="glTexRenderbufferNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_fbo_color_attachments" supported="gles2">
+ <require>
+ <enum name="GL_MAX_COLOR_ATTACHMENTS_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT0_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT1_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT2_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT3_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT4_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT5_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT6_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT7_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT8_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT9_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT10_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT11_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT12_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT13_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT14_NV"/>
+ <enum name="GL_COLOR_ATTACHMENT15_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_fence" supported="gl|gles1|gles2">
+ <require>
+ <enum name="GL_ALL_COMPLETED_NV"/>
+ <enum name="GL_FENCE_STATUS_NV"/>
+ <enum name="GL_FENCE_CONDITION_NV"/>
+ <command name="glDeleteFencesNV"/>
+ <command name="glGenFencesNV"/>
+ <command name="glIsFenceNV"/>
+ <command name="glTestFenceNV"/>
+ <command name="glGetFenceivNV"/>
+ <command name="glFinishFenceNV"/>
+ <command name="glSetFenceNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_float_buffer" supported="gl">
+ <require>
+ <enum name="GL_FLOAT_R_NV"/>
+ <enum name="GL_FLOAT_RG_NV"/>
+ <enum name="GL_FLOAT_RGB_NV"/>
+ <enum name="GL_FLOAT_RGBA_NV"/>
+ <enum name="GL_FLOAT_R16_NV"/>
+ <enum name="GL_FLOAT_R32_NV"/>
+ <enum name="GL_FLOAT_RG16_NV"/>
+ <enum name="GL_FLOAT_RG32_NV"/>
+ <enum name="GL_FLOAT_RGB16_NV"/>
+ <enum name="GL_FLOAT_RGB32_NV"/>
+ <enum name="GL_FLOAT_RGBA16_NV"/>
+ <enum name="GL_FLOAT_RGBA32_NV"/>
+ <enum name="GL_TEXTURE_FLOAT_COMPONENTS_NV"/>
+ <enum name="GL_FLOAT_CLEAR_COLOR_VALUE_NV"/>
+ <enum name="GL_FLOAT_RGBA_MODE_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_fog_distance" supported="gl">
+ <require>
+ <enum name="GL_FOG_DISTANCE_MODE_NV"/>
+ <enum name="GL_EYE_RADIAL_NV"/>
+ <enum name="GL_EYE_PLANE_ABSOLUTE_NV"/>
+ <enum name="GL_EYE_PLANE"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_fragment_program" supported="gl">
+ <require>
+ <enum name="GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV"/>
+ <enum name="GL_FRAGMENT_PROGRAM_NV"/>
+ <enum name="GL_MAX_TEXTURE_COORDS_NV"/>
+ <enum name="GL_MAX_TEXTURE_IMAGE_UNITS_NV"/>
+ <enum name="GL_FRAGMENT_PROGRAM_BINDING_NV"/>
+ <enum name="GL_PROGRAM_ERROR_STRING_NV"/>
+ </require>
+ <require comment="Some NV_fragment_program entry points are shared with ARB_vertex_program">
+ <command name="glProgramNamedParameter4fNV"/>
+ <command name="glProgramNamedParameter4fvNV"/>
+ <command name="glProgramNamedParameter4dNV"/>
+ <command name="glProgramNamedParameter4dvNV"/>
+ <command name="glGetProgramNamedParameterfvNV"/>
+ <command name="glGetProgramNamedParameterdvNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_fragment_program2" supported="gl">
+ <require>
+ <enum name="GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV"/>
+ <enum name="GL_MAX_PROGRAM_CALL_DEPTH_NV"/>
+ <enum name="GL_MAX_PROGRAM_IF_DEPTH_NV"/>
+ <enum name="GL_MAX_PROGRAM_LOOP_DEPTH_NV"/>
+ <enum name="GL_MAX_PROGRAM_LOOP_COUNT_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_fragment_program4" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_NV_fragment_program_option" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_NV_framebuffer_blit" supported="gles2">
+ <require>
+ <enum name="GL_READ_FRAMEBUFFER_NV"/>
+ <enum name="GL_DRAW_FRAMEBUFFER_NV"/>
+ <enum name="GL_DRAW_FRAMEBUFFER_BINDING_NV"/>
+ <enum name="GL_READ_FRAMEBUFFER_BINDING_NV"/>
+ <command name="glBlitFramebufferNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_framebuffer_multisample" supported="gles2">
+ <require>
+ <enum name="GL_RENDERBUFFER_SAMPLES_NV"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV"/>
+ <enum name="GL_MAX_SAMPLES_NV"/>
+ <command name="glRenderbufferStorageMultisampleNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_framebuffer_multisample_coverage" supported="gl">
+ <require>
+ <enum name="GL_RENDERBUFFER_COVERAGE_SAMPLES_NV"/>
+ <enum name="GL_RENDERBUFFER_COLOR_SAMPLES_NV"/>
+ <enum name="GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV"/>
+ <enum name="GL_MULTISAMPLE_COVERAGE_MODES_NV"/>
+ <command name="glRenderbufferStorageMultisampleCoverageNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_generate_mipmap_sRGB" supported="gles2">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_NV_geometry_program4" supported="gl">
+ <require>
+ <enum name="GL_LINES_ADJACENCY_EXT"/>
+ <enum name="GL_LINE_STRIP_ADJACENCY_EXT"/>
+ <enum name="GL_TRIANGLES_ADJACENCY_EXT"/>
+ <enum name="GL_TRIANGLE_STRIP_ADJACENCY_EXT"/>
+ <enum name="GL_GEOMETRY_PROGRAM_NV"/>
+ <enum name="GL_MAX_PROGRAM_OUTPUT_VERTICES_NV"/>
+ <enum name="GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV"/>
+ <enum name="GL_GEOMETRY_VERTICES_OUT_EXT"/>
+ <enum name="GL_GEOMETRY_INPUT_TYPE_EXT"/>
+ <enum name="GL_GEOMETRY_OUTPUT_TYPE_EXT"/>
+ <enum name="GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT"/>
+ <enum name="GL_PROGRAM_POINT_SIZE_EXT"/>
+ <command name="glProgramVertexLimitNV"/>
+ <command name="glFramebufferTextureEXT"/>
+ <command name="glFramebufferTextureLayerEXT"/>
+ <command name="glFramebufferTextureFaceEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_geometry_shader4" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_NV_gpu_program4" supported="gl">
+ <require>
+ <enum name="GL_MIN_PROGRAM_TEXEL_OFFSET_NV"/>
+ <enum name="GL_MAX_PROGRAM_TEXEL_OFFSET_NV"/>
+ <enum name="GL_PROGRAM_ATTRIB_COMPONENTS_NV"/>
+ <enum name="GL_PROGRAM_RESULT_COMPONENTS_NV"/>
+ <enum name="GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV"/>
+ <enum name="GL_MAX_PROGRAM_RESULT_COMPONENTS_NV"/>
+ <enum name="GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV"/>
+ <enum name="GL_MAX_PROGRAM_GENERIC_RESULTS_NV"/>
+ <command name="glProgramLocalParameterI4iNV"/>
+ <command name="glProgramLocalParameterI4ivNV"/>
+ <command name="glProgramLocalParametersI4ivNV"/>
+ <command name="glProgramLocalParameterI4uiNV"/>
+ <command name="glProgramLocalParameterI4uivNV"/>
+ <command name="glProgramLocalParametersI4uivNV"/>
+ <command name="glProgramEnvParameterI4iNV"/>
+ <command name="glProgramEnvParameterI4ivNV"/>
+ <command name="glProgramEnvParametersI4ivNV"/>
+ <command name="glProgramEnvParameterI4uiNV"/>
+ <command name="glProgramEnvParameterI4uivNV"/>
+ <command name="glProgramEnvParametersI4uivNV"/>
+ <command name="glGetProgramLocalParameterIivNV"/>
+ <command name="glGetProgramLocalParameterIuivNV"/>
+ <command name="glGetProgramEnvParameterIivNV"/>
+ <command name="glGetProgramEnvParameterIuivNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_gpu_program5" supported="gl">
+ <require>
+ <enum name="GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV"/>
+ <enum name="GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV"/>
+ <enum name="GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV"/>
+ <enum name="GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV"/>
+ <enum name="GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV"/>
+ <enum name="GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV"/>
+ <enum name="GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV"/>
+ <enum name="GL_MAX_PROGRAM_SUBROUTINE_NUM_NV"/>
+ <command name="glProgramSubroutineParametersuivNV"/>
+ <command name="glGetProgramSubroutineParameteruivNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_gpu_shader5" supported="gl">
+ <require>
+ <enum name="GL_INT64_NV"/>
+ <enum name="GL_UNSIGNED_INT64_NV"/>
+ <enum name="GL_INT8_NV"/>
+ <enum name="GL_INT8_VEC2_NV"/>
+ <enum name="GL_INT8_VEC3_NV"/>
+ <enum name="GL_INT8_VEC4_NV"/>
+ <enum name="GL_INT16_NV"/>
+ <enum name="GL_INT16_VEC2_NV"/>
+ <enum name="GL_INT16_VEC3_NV"/>
+ <enum name="GL_INT16_VEC4_NV"/>
+ <enum name="GL_INT64_VEC2_NV"/>
+ <enum name="GL_INT64_VEC3_NV"/>
+ <enum name="GL_INT64_VEC4_NV"/>
+ <enum name="GL_UNSIGNED_INT8_NV"/>
+ <enum name="GL_UNSIGNED_INT8_VEC2_NV"/>
+ <enum name="GL_UNSIGNED_INT8_VEC3_NV"/>
+ <enum name="GL_UNSIGNED_INT8_VEC4_NV"/>
+ <enum name="GL_UNSIGNED_INT16_NV"/>
+ <enum name="GL_UNSIGNED_INT16_VEC2_NV"/>
+ <enum name="GL_UNSIGNED_INT16_VEC3_NV"/>
+ <enum name="GL_UNSIGNED_INT16_VEC4_NV"/>
+ <enum name="GL_UNSIGNED_INT64_VEC2_NV"/>
+ <enum name="GL_UNSIGNED_INT64_VEC3_NV"/>
+ <enum name="GL_UNSIGNED_INT64_VEC4_NV"/>
+ <enum name="GL_FLOAT16_NV"/>
+ <enum name="GL_FLOAT16_VEC2_NV"/>
+ <enum name="GL_FLOAT16_VEC3_NV"/>
+ <enum name="GL_FLOAT16_VEC4_NV"/>
+ <enum name="GL_PATCHES"/>
+ <command name="glUniform1i64NV"/>
+ <command name="glUniform2i64NV"/>
+ <command name="glUniform3i64NV"/>
+ <command name="glUniform4i64NV"/>
+ <command name="glUniform1i64vNV"/>
+ <command name="glUniform2i64vNV"/>
+ <command name="glUniform3i64vNV"/>
+ <command name="glUniform4i64vNV"/>
+ <command name="glUniform1ui64NV"/>
+ <command name="glUniform2ui64NV"/>
+ <command name="glUniform3ui64NV"/>
+ <command name="glUniform4ui64NV"/>
+ <command name="glUniform1ui64vNV"/>
+ <command name="glUniform2ui64vNV"/>
+ <command name="glUniform3ui64vNV"/>
+ <command name="glUniform4ui64vNV"/>
+ <command name="glGetUniformi64vNV"/>
+ </require>
+ <require comment="Supported only if GL_EXT_direct_state_access is supported">
+ <command name="glProgramUniform1i64NV"/>
+ <command name="glProgramUniform2i64NV"/>
+ <command name="glProgramUniform3i64NV"/>
+ <command name="glProgramUniform4i64NV"/>
+ <command name="glProgramUniform1i64vNV"/>
+ <command name="glProgramUniform2i64vNV"/>
+ <command name="glProgramUniform3i64vNV"/>
+ <command name="glProgramUniform4i64vNV"/>
+ <command name="glProgramUniform1ui64NV"/>
+ <command name="glProgramUniform2ui64NV"/>
+ <command name="glProgramUniform3ui64NV"/>
+ <command name="glProgramUniform4ui64NV"/>
+ <command name="glProgramUniform1ui64vNV"/>
+ <command name="glProgramUniform2ui64vNV"/>
+ <command name="glProgramUniform3ui64vNV"/>
+ <command name="glProgramUniform4ui64vNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_half_float" supported="gl">
+ <require>
+ <enum name="GL_HALF_FLOAT_NV"/>
+ <command name="glVertex2hNV"/>
+ <command name="glVertex2hvNV"/>
+ <command name="glVertex3hNV"/>
+ <command name="glVertex3hvNV"/>
+ <command name="glVertex4hNV"/>
+ <command name="glVertex4hvNV"/>
+ <command name="glNormal3hNV"/>
+ <command name="glNormal3hvNV"/>
+ <command name="glColor3hNV"/>
+ <command name="glColor3hvNV"/>
+ <command name="glColor4hNV"/>
+ <command name="glColor4hvNV"/>
+ <command name="glTexCoord1hNV"/>
+ <command name="glTexCoord1hvNV"/>
+ <command name="glTexCoord2hNV"/>
+ <command name="glTexCoord2hvNV"/>
+ <command name="glTexCoord3hNV"/>
+ <command name="glTexCoord3hvNV"/>
+ <command name="glTexCoord4hNV"/>
+ <command name="glTexCoord4hvNV"/>
+ <command name="glMultiTexCoord1hNV"/>
+ <command name="glMultiTexCoord1hvNV"/>
+ <command name="glMultiTexCoord2hNV"/>
+ <command name="glMultiTexCoord2hvNV"/>
+ <command name="glMultiTexCoord3hNV"/>
+ <command name="glMultiTexCoord3hvNV"/>
+ <command name="glMultiTexCoord4hNV"/>
+ <command name="glMultiTexCoord4hvNV"/>
+ <command name="glFogCoordhNV"/>
+ <command name="glFogCoordhvNV"/>
+ <command name="glSecondaryColor3hNV"/>
+ <command name="glSecondaryColor3hvNV"/>
+ <command name="glVertexWeighthNV"/>
+ <command name="glVertexWeighthvNV"/>
+ <command name="glVertexAttrib1hNV"/>
+ <command name="glVertexAttrib1hvNV"/>
+ <command name="glVertexAttrib2hNV"/>
+ <command name="glVertexAttrib2hvNV"/>
+ <command name="glVertexAttrib3hNV"/>
+ <command name="glVertexAttrib3hvNV"/>
+ <command name="glVertexAttrib4hNV"/>
+ <command name="glVertexAttrib4hvNV"/>
+ <command name="glVertexAttribs1hvNV"/>
+ <command name="glVertexAttribs2hvNV"/>
+ <command name="glVertexAttribs3hvNV"/>
+ <command name="glVertexAttribs4hvNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_instanced_arrays" supported="gles2">
+ <require>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_DIVISOR_NV"/>
+ <command name="glVertexAttribDivisorNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_light_max_exponent" supported="gl">
+ <require>
+ <enum name="GL_MAX_SHININESS_NV"/>
+ <enum name="GL_MAX_SPOT_EXPONENT_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_multisample_coverage" supported="gl">
+ <require>
+ <enum name="GL_SAMPLES_ARB"/>
+ <enum name="GL_COLOR_SAMPLES_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_multisample_filter_hint" supported="gl">
+ <require>
+ <enum name="GL_MULTISAMPLE_FILTER_HINT_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_occlusion_query" supported="gl">
+ <require>
+ <enum name="GL_PIXEL_COUNTER_BITS_NV"/>
+ <enum name="GL_CURRENT_OCCLUSION_QUERY_ID_NV"/>
+ <enum name="GL_PIXEL_COUNT_NV"/>
+ <enum name="GL_PIXEL_COUNT_AVAILABLE_NV"/>
+ <command name="glGenOcclusionQueriesNV"/>
+ <command name="glDeleteOcclusionQueriesNV"/>
+ <command name="glIsOcclusionQueryNV"/>
+ <command name="glBeginOcclusionQueryNV"/>
+ <command name="glEndOcclusionQueryNV"/>
+ <command name="glGetOcclusionQueryivNV"/>
+ <command name="glGetOcclusionQueryuivNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_packed_depth_stencil" supported="gl">
+ <require>
+ <enum name="GL_DEPTH_STENCIL_NV"/>
+ <enum name="GL_UNSIGNED_INT_24_8_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_parameter_buffer_object" supported="gl">
+ <require>
+ <enum name="GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV"/>
+ <enum name="GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV"/>
+ <enum name="GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV"/>
+ <enum name="GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV"/>
+ <enum name="GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV"/>
+ <command name="glProgramBufferParametersfvNV"/>
+ <command name="glProgramBufferParametersIivNV"/>
+ <command name="glProgramBufferParametersIuivNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_parameter_buffer_object2" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_NV_path_rendering" supported="gl">
+ <require>
+ <enum name="GL_PATH_FORMAT_SVG_NV"/>
+ <enum name="GL_PATH_FORMAT_PS_NV"/>
+ <enum name="GL_STANDARD_FONT_NAME_NV"/>
+ <enum name="GL_SYSTEM_FONT_NAME_NV"/>
+ <enum name="GL_FILE_NAME_NV"/>
+ <enum name="GL_PATH_STROKE_WIDTH_NV"/>
+ <enum name="GL_PATH_END_CAPS_NV"/>
+ <enum name="GL_PATH_INITIAL_END_CAP_NV"/>
+ <enum name="GL_PATH_TERMINAL_END_CAP_NV"/>
+ <enum name="GL_PATH_JOIN_STYLE_NV"/>
+ <enum name="GL_PATH_MITER_LIMIT_NV"/>
+ <enum name="GL_PATH_DASH_CAPS_NV"/>
+ <enum name="GL_PATH_INITIAL_DASH_CAP_NV"/>
+ <enum name="GL_PATH_TERMINAL_DASH_CAP_NV"/>
+ <enum name="GL_PATH_DASH_OFFSET_NV"/>
+ <enum name="GL_PATH_CLIENT_LENGTH_NV"/>
+ <enum name="GL_PATH_FILL_MODE_NV"/>
+ <enum name="GL_PATH_FILL_MASK_NV"/>
+ <enum name="GL_PATH_FILL_COVER_MODE_NV"/>
+ <enum name="GL_PATH_STROKE_COVER_MODE_NV"/>
+ <enum name="GL_PATH_STROKE_MASK_NV"/>
+ <enum name="GL_COUNT_UP_NV"/>
+ <enum name="GL_COUNT_DOWN_NV"/>
+ <enum name="GL_PATH_OBJECT_BOUNDING_BOX_NV"/>
+ <enum name="GL_CONVEX_HULL_NV"/>
+ <enum name="GL_BOUNDING_BOX_NV"/>
+ <enum name="GL_TRANSLATE_X_NV"/>
+ <enum name="GL_TRANSLATE_Y_NV"/>
+ <enum name="GL_TRANSLATE_2D_NV"/>
+ <enum name="GL_TRANSLATE_3D_NV"/>
+ <enum name="GL_AFFINE_2D_NV"/>
+ <enum name="GL_AFFINE_3D_NV"/>
+ <enum name="GL_TRANSPOSE_AFFINE_2D_NV"/>
+ <enum name="GL_TRANSPOSE_AFFINE_3D_NV"/>
+ <enum name="GL_UTF8_NV"/>
+ <enum name="GL_UTF16_NV"/>
+ <enum name="GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV"/>
+ <enum name="GL_PATH_COMMAND_COUNT_NV"/>
+ <enum name="GL_PATH_COORD_COUNT_NV"/>
+ <enum name="GL_PATH_DASH_ARRAY_COUNT_NV"/>
+ <enum name="GL_PATH_COMPUTED_LENGTH_NV"/>
+ <enum name="GL_PATH_FILL_BOUNDING_BOX_NV"/>
+ <enum name="GL_PATH_STROKE_BOUNDING_BOX_NV"/>
+ <enum name="GL_SQUARE_NV"/>
+ <enum name="GL_ROUND_NV"/>
+ <enum name="GL_TRIANGULAR_NV"/>
+ <enum name="GL_BEVEL_NV"/>
+ <enum name="GL_MITER_REVERT_NV"/>
+ <enum name="GL_MITER_TRUNCATE_NV"/>
+ <enum name="GL_SKIP_MISSING_GLYPH_NV"/>
+ <enum name="GL_USE_MISSING_GLYPH_NV"/>
+ <enum name="GL_PATH_ERROR_POSITION_NV"/>
+ <enum name="GL_PATH_FOG_GEN_MODE_NV"/>
+ <enum name="GL_ACCUM_ADJACENT_PAIRS_NV"/>
+ <enum name="GL_ADJACENT_PAIRS_NV"/>
+ <enum name="GL_FIRST_TO_REST_NV"/>
+ <enum name="GL_PATH_GEN_MODE_NV"/>
+ <enum name="GL_PATH_GEN_COEFF_NV"/>
+ <enum name="GL_PATH_GEN_COLOR_FORMAT_NV"/>
+ <enum name="GL_PATH_GEN_COMPONENTS_NV"/>
+ <enum name="GL_PATH_STENCIL_FUNC_NV"/>
+ <enum name="GL_PATH_STENCIL_REF_NV"/>
+ <enum name="GL_PATH_STENCIL_VALUE_MASK_NV"/>
+ <enum name="GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV"/>
+ <enum name="GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV"/>
+ <enum name="GL_PATH_COVER_DEPTH_FUNC_NV"/>
+ <enum name="GL_PATH_DASH_OFFSET_RESET_NV"/>
+ <enum name="GL_MOVE_TO_RESETS_NV"/>
+ <enum name="GL_MOVE_TO_CONTINUES_NV"/>
+ <enum name="GL_CLOSE_PATH_NV"/>
+ <enum name="GL_MOVE_TO_NV"/>
+ <enum name="GL_RELATIVE_MOVE_TO_NV"/>
+ <enum name="GL_LINE_TO_NV"/>
+ <enum name="GL_RELATIVE_LINE_TO_NV"/>
+ <enum name="GL_HORIZONTAL_LINE_TO_NV"/>
+ <enum name="GL_RELATIVE_HORIZONTAL_LINE_TO_NV"/>
+ <enum name="GL_VERTICAL_LINE_TO_NV"/>
+ <enum name="GL_RELATIVE_VERTICAL_LINE_TO_NV"/>
+ <enum name="GL_QUADRATIC_CURVE_TO_NV"/>
+ <enum name="GL_RELATIVE_QUADRATIC_CURVE_TO_NV"/>
+ <enum name="GL_CUBIC_CURVE_TO_NV"/>
+ <enum name="GL_RELATIVE_CUBIC_CURVE_TO_NV"/>
+ <enum name="GL_SMOOTH_QUADRATIC_CURVE_TO_NV"/>
+ <enum name="GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV"/>
+ <enum name="GL_SMOOTH_CUBIC_CURVE_TO_NV"/>
+ <enum name="GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV"/>
+ <enum name="GL_SMALL_CCW_ARC_TO_NV"/>
+ <enum name="GL_RELATIVE_SMALL_CCW_ARC_TO_NV"/>
+ <enum name="GL_SMALL_CW_ARC_TO_NV"/>
+ <enum name="GL_RELATIVE_SMALL_CW_ARC_TO_NV"/>
+ <enum name="GL_LARGE_CCW_ARC_TO_NV"/>
+ <enum name="GL_RELATIVE_LARGE_CCW_ARC_TO_NV"/>
+ <enum name="GL_LARGE_CW_ARC_TO_NV"/>
+ <enum name="GL_RELATIVE_LARGE_CW_ARC_TO_NV"/>
+ <enum name="GL_RESTART_PATH_NV"/>
+ <enum name="GL_DUP_FIRST_CUBIC_CURVE_TO_NV"/>
+ <enum name="GL_DUP_LAST_CUBIC_CURVE_TO_NV"/>
+ <enum name="GL_RECT_NV"/>
+ <enum name="GL_CIRCULAR_CCW_ARC_TO_NV"/>
+ <enum name="GL_CIRCULAR_CW_ARC_TO_NV"/>
+ <enum name="GL_CIRCULAR_TANGENT_ARC_TO_NV"/>
+ <enum name="GL_ARC_TO_NV"/>
+ <enum name="GL_RELATIVE_ARC_TO_NV"/>
+ <enum name="GL_BOLD_BIT_NV"/>
+ <enum name="GL_ITALIC_BIT_NV"/>
+ <enum name="GL_GLYPH_WIDTH_BIT_NV"/>
+ <enum name="GL_GLYPH_HEIGHT_BIT_NV"/>
+ <enum name="GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV"/>
+ <enum name="GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV"/>
+ <enum name="GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV"/>
+ <enum name="GL_GLYPH_VERTICAL_BEARING_X_BIT_NV"/>
+ <enum name="GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV"/>
+ <enum name="GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV"/>
+ <enum name="GL_GLYPH_HAS_KERNING_BIT_NV"/>
+ <enum name="GL_FONT_X_MIN_BOUNDS_BIT_NV"/>
+ <enum name="GL_FONT_Y_MIN_BOUNDS_BIT_NV"/>
+ <enum name="GL_FONT_X_MAX_BOUNDS_BIT_NV"/>
+ <enum name="GL_FONT_Y_MAX_BOUNDS_BIT_NV"/>
+ <enum name="GL_FONT_UNITS_PER_EM_BIT_NV"/>
+ <enum name="GL_FONT_ASCENDER_BIT_NV"/>
+ <enum name="GL_FONT_DESCENDER_BIT_NV"/>
+ <enum name="GL_FONT_HEIGHT_BIT_NV"/>
+ <enum name="GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV"/>
+ <enum name="GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV"/>
+ <enum name="GL_FONT_UNDERLINE_POSITION_BIT_NV"/>
+ <enum name="GL_FONT_UNDERLINE_THICKNESS_BIT_NV"/>
+ <enum name="GL_FONT_HAS_KERNING_BIT_NV"/>
+ <enum name="GL_PRIMARY_COLOR"/>
+ <enum name="GL_PRIMARY_COLOR_NV"/>
+ <enum name="GL_SECONDARY_COLOR_NV"/>
+ <command name="glGenPathsNV"/>
+ <command name="glDeletePathsNV"/>
+ <command name="glIsPathNV"/>
+ <command name="glPathCommandsNV"/>
+ <command name="glPathCoordsNV"/>
+ <command name="glPathSubCommandsNV"/>
+ <command name="glPathSubCoordsNV"/>
+ <command name="glPathStringNV"/>
+ <command name="glPathGlyphsNV"/>
+ <command name="glPathGlyphRangeNV"/>
+ <command name="glWeightPathsNV"/>
+ <command name="glCopyPathNV"/>
+ <command name="glInterpolatePathsNV"/>
+ <command name="glTransformPathNV"/>
+ <command name="glPathParameterivNV"/>
+ <command name="glPathParameteriNV"/>
+ <command name="glPathParameterfvNV"/>
+ <command name="glPathParameterfNV"/>
+ <command name="glPathDashArrayNV"/>
+ <command name="glPathStencilFuncNV"/>
+ <command name="glPathStencilDepthOffsetNV"/>
+ <command name="glStencilFillPathNV"/>
+ <command name="glStencilStrokePathNV"/>
+ <command name="glStencilFillPathInstancedNV"/>
+ <command name="glStencilStrokePathInstancedNV"/>
+ <command name="glPathCoverDepthFuncNV"/>
+ <command name="glPathColorGenNV"/>
+ <command name="glPathTexGenNV"/>
+ <command name="glPathFogGenNV"/>
+ <command name="glCoverFillPathNV"/>
+ <command name="glCoverStrokePathNV"/>
+ <command name="glCoverFillPathInstancedNV"/>
+ <command name="glCoverStrokePathInstancedNV"/>
+ <command name="glGetPathParameterivNV"/>
+ <command name="glGetPathParameterfvNV"/>
+ <command name="glGetPathCommandsNV"/>
+ <command name="glGetPathCoordsNV"/>
+ <command name="glGetPathDashArrayNV"/>
+ <command name="glGetPathMetricsNV"/>
+ <command name="glGetPathMetricRangeNV"/>
+ <command name="glGetPathSpacingNV"/>
+ <command name="glGetPathColorGenivNV"/>
+ <command name="glGetPathColorGenfvNV"/>
+ <command name="glGetPathTexGenivNV"/>
+ <command name="glGetPathTexGenfvNV"/>
+ <command name="glIsPointInFillPathNV"/>
+ <command name="glIsPointInStrokePathNV"/>
+ <command name="glGetPathLengthNV"/>
+ <command name="glPointAlongPathNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_pixel_data_range" supported="gl">
+ <require>
+ <enum name="GL_WRITE_PIXEL_DATA_RANGE_NV"/>
+ <enum name="GL_READ_PIXEL_DATA_RANGE_NV"/>
+ <enum name="GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV"/>
+ <enum name="GL_READ_PIXEL_DATA_RANGE_LENGTH_NV"/>
+ <enum name="GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV"/>
+ <enum name="GL_READ_PIXEL_DATA_RANGE_POINTER_NV"/>
+ <command name="glPixelDataRangeNV"/>
+ <command name="glFlushPixelDataRangeNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_point_sprite" supported="gl">
+ <require>
+ <enum name="GL_POINT_SPRITE_NV"/>
+ <enum name="GL_COORD_REPLACE_NV"/>
+ <enum name="GL_POINT_SPRITE_R_MODE_NV"/>
+ <command name="glPointParameteriNV"/>
+ <command name="glPointParameterivNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_present_video" supported="gl">
+ <require>
+ <enum name="GL_FRAME_NV"/>
+ <enum name="GL_FIELDS_NV"/>
+ <enum name="GL_CURRENT_TIME_NV"/>
+ <enum name="GL_NUM_FILL_STREAMS_NV"/>
+ <enum name="GL_PRESENT_TIME_NV"/>
+ <enum name="GL_PRESENT_DURATION_NV"/>
+ <command name="glPresentFrameKeyedNV"/>
+ <command name="glPresentFrameDualFillNV"/>
+ <command name="glGetVideoivNV"/>
+ <command name="glGetVideouivNV"/>
+ <command name="glGetVideoi64vNV"/>
+ <command name="glGetVideoui64vNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_primitive_restart" supported="gl">
+ <require>
+ <enum name="GL_PRIMITIVE_RESTART_NV"/>
+ <enum name="GL_PRIMITIVE_RESTART_INDEX_NV"/>
+ <command name="glPrimitiveRestartNV"/>
+ <command name="glPrimitiveRestartIndexNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_read_buffer" supported="gles2">
+ <require>
+ <enum name="GL_READ_BUFFER_NV"/>
+ <command name="glReadBufferNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_read_buffer_front" supported="gles2">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_NV_read_depth" supported="gles2">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_NV_read_depth_stencil" supported="gles2">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_NV_read_stencil" supported="gles2">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_NV_register_combiners" supported="gl">
+ <require>
+ <enum name="GL_REGISTER_COMBINERS_NV"/>
+ <enum name="GL_VARIABLE_A_NV"/>
+ <enum name="GL_VARIABLE_B_NV"/>
+ <enum name="GL_VARIABLE_C_NV"/>
+ <enum name="GL_VARIABLE_D_NV"/>
+ <enum name="GL_VARIABLE_E_NV"/>
+ <enum name="GL_VARIABLE_F_NV"/>
+ <enum name="GL_VARIABLE_G_NV"/>
+ <enum name="GL_CONSTANT_COLOR0_NV"/>
+ <enum name="GL_CONSTANT_COLOR1_NV"/>
+ <enum name="GL_PRIMARY_COLOR_NV"/>
+ <enum name="GL_SECONDARY_COLOR_NV"/>
+ <enum name="GL_SPARE0_NV"/>
+ <enum name="GL_SPARE1_NV"/>
+ <enum name="GL_DISCARD_NV"/>
+ <enum name="GL_E_TIMES_F_NV"/>
+ <enum name="GL_SPARE0_PLUS_SECONDARY_COLOR_NV"/>
+ <enum name="GL_UNSIGNED_IDENTITY_NV"/>
+ <enum name="GL_UNSIGNED_INVERT_NV"/>
+ <enum name="GL_EXPAND_NORMAL_NV"/>
+ <enum name="GL_EXPAND_NEGATE_NV"/>
+ <enum name="GL_HALF_BIAS_NORMAL_NV"/>
+ <enum name="GL_HALF_BIAS_NEGATE_NV"/>
+ <enum name="GL_SIGNED_IDENTITY_NV"/>
+ <enum name="GL_SIGNED_NEGATE_NV"/>
+ <enum name="GL_SCALE_BY_TWO_NV"/>
+ <enum name="GL_SCALE_BY_FOUR_NV"/>
+ <enum name="GL_SCALE_BY_ONE_HALF_NV"/>
+ <enum name="GL_BIAS_BY_NEGATIVE_ONE_HALF_NV"/>
+ <enum name="GL_COMBINER_INPUT_NV"/>
+ <enum name="GL_COMBINER_MAPPING_NV"/>
+ <enum name="GL_COMBINER_COMPONENT_USAGE_NV"/>
+ <enum name="GL_COMBINER_AB_DOT_PRODUCT_NV"/>
+ <enum name="GL_COMBINER_CD_DOT_PRODUCT_NV"/>
+ <enum name="GL_COMBINER_MUX_SUM_NV"/>
+ <enum name="GL_COMBINER_SCALE_NV"/>
+ <enum name="GL_COMBINER_BIAS_NV"/>
+ <enum name="GL_COMBINER_AB_OUTPUT_NV"/>
+ <enum name="GL_COMBINER_CD_OUTPUT_NV"/>
+ <enum name="GL_COMBINER_SUM_OUTPUT_NV"/>
+ <enum name="GL_MAX_GENERAL_COMBINERS_NV"/>
+ <enum name="GL_NUM_GENERAL_COMBINERS_NV"/>
+ <enum name="GL_COLOR_SUM_CLAMP_NV"/>
+ <enum name="GL_COMBINER0_NV"/>
+ <enum name="GL_COMBINER1_NV"/>
+ <enum name="GL_COMBINER2_NV"/>
+ <enum name="GL_COMBINER3_NV"/>
+ <enum name="GL_COMBINER4_NV"/>
+ <enum name="GL_COMBINER5_NV"/>
+ <enum name="GL_COMBINER6_NV"/>
+ <enum name="GL_COMBINER7_NV"/>
+ <enum name="GL_TEXTURE0_ARB"/>
+ <enum name="GL_TEXTURE1_ARB"/>
+ <enum name="GL_ZERO"/>
+ <enum name="GL_NONE"/>
+ <enum name="GL_FOG"/>
+ <command name="glCombinerParameterfvNV"/>
+ <command name="glCombinerParameterfNV"/>
+ <command name="glCombinerParameterivNV"/>
+ <command name="glCombinerParameteriNV"/>
+ <command name="glCombinerInputNV"/>
+ <command name="glCombinerOutputNV"/>
+ <command name="glFinalCombinerInputNV"/>
+ <command name="glGetCombinerInputParameterfvNV"/>
+ <command name="glGetCombinerInputParameterivNV"/>
+ <command name="glGetCombinerOutputParameterfvNV"/>
+ <command name="glGetCombinerOutputParameterivNV"/>
+ <command name="glGetFinalCombinerInputParameterfvNV"/>
+ <command name="glGetFinalCombinerInputParameterivNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_register_combiners2" supported="gl">
+ <require>
+ <enum name="GL_PER_STAGE_CONSTANTS_NV"/>
+ <command name="glCombinerStageParameterfvNV"/>
+ <command name="glGetCombinerStageParameterfvNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_sRGB_formats" supported="gles2">
+ <require>
+ <enum name="GL_SLUMINANCE_NV"/>
+ <enum name="GL_SLUMINANCE_ALPHA_NV"/>
+ <enum name="GL_SRGB8_NV"/>
+ <enum name="GL_SLUMINANCE8_NV"/>
+ <enum name="GL_SLUMINANCE8_ALPHA8_NV"/>
+ <enum name="GL_COMPRESSED_SRGB_S3TC_DXT1_NV"/>
+ <enum name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV"/>
+ <enum name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV"/>
+ <enum name="GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV"/>
+ <enum name="GL_ETC1_SRGB8_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_shader_atomic_counters" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_NV_shader_atomic_float" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_NV_shader_buffer_load" supported="gl">
+ <require>
+ <enum name="GL_BUFFER_GPU_ADDRESS_NV"/>
+ <enum name="GL_GPU_ADDRESS_NV"/>
+ <enum name="GL_MAX_SHADER_BUFFER_ADDRESS_NV"/>
+ <command name="glMakeBufferResidentNV"/>
+ <command name="glMakeBufferNonResidentNV"/>
+ <command name="glIsBufferResidentNV"/>
+ <command name="glMakeNamedBufferResidentNV"/>
+ <command name="glMakeNamedBufferNonResidentNV"/>
+ <command name="glIsNamedBufferResidentNV"/>
+ <command name="glGetBufferParameterui64vNV"/>
+ <command name="glGetNamedBufferParameterui64vNV"/>
+ <command name="glGetIntegerui64vNV"/>
+ <command name="glUniformui64NV"/>
+ <command name="glUniformui64vNV"/>
+ <command name="glGetUniformui64vNV"/>
+ <command name="glProgramUniformui64NV"/>
+ <command name="glProgramUniformui64vNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_shader_buffer_store" supported="gl">
+ <require>
+ <enum name="GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV"/>
+ <enum name="GL_READ_WRITE"/>
+ <enum name="GL_WRITE_ONLY"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_shader_storage_buffer_object" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_NV_shadow_samplers_array" supported="gles2">
+ <require>
+ <enum name="GL_SAMPLER_2D_ARRAY_SHADOW_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_shadow_samplers_cube" supported="gles2">
+ <require>
+ <enum name="GL_SAMPLER_CUBE_SHADOW_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_tessellation_program5" supported="gl">
+ <require>
+ <enum name="GL_MAX_PROGRAM_PATCH_ATTRIBS_NV"/>
+ <enum name="GL_TESS_CONTROL_PROGRAM_NV"/>
+ <enum name="GL_TESS_EVALUATION_PROGRAM_NV"/>
+ <enum name="GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV"/>
+ <enum name="GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_texgen_emboss" supported="gl">
+ <require>
+ <enum name="GL_EMBOSS_LIGHT_NV"/>
+ <enum name="GL_EMBOSS_CONSTANT_NV"/>
+ <enum name="GL_EMBOSS_MAP_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_texgen_reflection" supported="gl">
+ <require>
+ <enum name="GL_NORMAL_MAP_NV"/>
+ <enum name="GL_REFLECTION_MAP_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_texture_barrier" supported="gl">
+ <require>
+ <command name="glTextureBarrierNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_texture_border_clamp" supported="gles2">
+ <require>
+ <enum name="GL_TEXTURE_BORDER_COLOR_NV"/>
+ <enum name="GL_CLAMP_TO_BORDER_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_texture_compression_s3tc_update" supported="gles2">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_NV_texture_compression_vtc" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_NV_texture_env_combine4" supported="gl">
+ <require>
+ <enum name="GL_COMBINE4_NV"/>
+ <enum name="GL_SOURCE3_RGB_NV"/>
+ <enum name="GL_SOURCE3_ALPHA_NV"/>
+ <enum name="GL_OPERAND3_RGB_NV"/>
+ <enum name="GL_OPERAND3_ALPHA_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_texture_expand_normal" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_UNSIGNED_REMAP_MODE_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_texture_multisample" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_COVERAGE_SAMPLES_NV"/>
+ <enum name="GL_TEXTURE_COLOR_SAMPLES_NV"/>
+ <command name="glTexImage2DMultisampleCoverageNV"/>
+ <command name="glTexImage3DMultisampleCoverageNV"/>
+ </require>
+ <require comment="Supported only if GL_EXT_direct_state_access is supported">
+ <command name="glTextureImage2DMultisampleNV"/>
+ <command name="glTextureImage3DMultisampleNV"/>
+ <command name="glTextureImage2DMultisampleCoverageNV"/>
+ <command name="glTextureImage3DMultisampleCoverageNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_texture_npot_2D_mipmap" supported="gles2">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_NV_texture_rectangle" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_RECTANGLE_NV"/>
+ <enum name="GL_TEXTURE_BINDING_RECTANGLE_NV"/>
+ <enum name="GL_PROXY_TEXTURE_RECTANGLE_NV"/>
+ <enum name="GL_MAX_RECTANGLE_TEXTURE_SIZE_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_texture_shader" supported="gl">
+ <require>
+ <enum name="GL_OFFSET_TEXTURE_RECTANGLE_NV"/>
+ <enum name="GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV"/>
+ <enum name="GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV"/>
+ <enum name="GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV"/>
+ <enum name="GL_UNSIGNED_INT_S8_S8_8_8_NV"/>
+ <enum name="GL_UNSIGNED_INT_8_8_S8_S8_REV_NV"/>
+ <enum name="GL_DSDT_MAG_INTENSITY_NV"/>
+ <enum name="GL_SHADER_CONSISTENT_NV"/>
+ <enum name="GL_TEXTURE_SHADER_NV"/>
+ <enum name="GL_SHADER_OPERATION_NV"/>
+ <enum name="GL_CULL_MODES_NV"/>
+ <enum name="GL_OFFSET_TEXTURE_MATRIX_NV"/>
+ <enum name="GL_OFFSET_TEXTURE_SCALE_NV"/>
+ <enum name="GL_OFFSET_TEXTURE_BIAS_NV"/>
+ <enum name="GL_OFFSET_TEXTURE_2D_MATRIX_NV"/>
+ <enum name="GL_OFFSET_TEXTURE_2D_SCALE_NV"/>
+ <enum name="GL_OFFSET_TEXTURE_2D_BIAS_NV"/>
+ <enum name="GL_PREVIOUS_TEXTURE_INPUT_NV"/>
+ <enum name="GL_CONST_EYE_NV"/>
+ <enum name="GL_PASS_THROUGH_NV"/>
+ <enum name="GL_CULL_FRAGMENT_NV"/>
+ <enum name="GL_OFFSET_TEXTURE_2D_NV"/>
+ <enum name="GL_DEPENDENT_AR_TEXTURE_2D_NV"/>
+ <enum name="GL_DEPENDENT_GB_TEXTURE_2D_NV"/>
+ <enum name="GL_DOT_PRODUCT_NV"/>
+ <enum name="GL_DOT_PRODUCT_DEPTH_REPLACE_NV"/>
+ <enum name="GL_DOT_PRODUCT_TEXTURE_2D_NV"/>
+ <enum name="GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV"/>
+ <enum name="GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV"/>
+ <enum name="GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV"/>
+ <enum name="GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV"/>
+ <enum name="GL_HILO_NV"/>
+ <enum name="GL_DSDT_NV"/>
+ <enum name="GL_DSDT_MAG_NV"/>
+ <enum name="GL_DSDT_MAG_VIB_NV"/>
+ <enum name="GL_HILO16_NV"/>
+ <enum name="GL_SIGNED_HILO_NV"/>
+ <enum name="GL_SIGNED_HILO16_NV"/>
+ <enum name="GL_SIGNED_RGBA_NV"/>
+ <enum name="GL_SIGNED_RGBA8_NV"/>
+ <enum name="GL_SIGNED_RGB_NV"/>
+ <enum name="GL_SIGNED_RGB8_NV"/>
+ <enum name="GL_SIGNED_LUMINANCE_NV"/>
+ <enum name="GL_SIGNED_LUMINANCE8_NV"/>
+ <enum name="GL_SIGNED_LUMINANCE_ALPHA_NV"/>
+ <enum name="GL_SIGNED_LUMINANCE8_ALPHA8_NV"/>
+ <enum name="GL_SIGNED_ALPHA_NV"/>
+ <enum name="GL_SIGNED_ALPHA8_NV"/>
+ <enum name="GL_SIGNED_INTENSITY_NV"/>
+ <enum name="GL_SIGNED_INTENSITY8_NV"/>
+ <enum name="GL_DSDT8_NV"/>
+ <enum name="GL_DSDT8_MAG8_NV"/>
+ <enum name="GL_DSDT8_MAG8_INTENSITY8_NV"/>
+ <enum name="GL_SIGNED_RGB_UNSIGNED_ALPHA_NV"/>
+ <enum name="GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV"/>
+ <enum name="GL_HI_SCALE_NV"/>
+ <enum name="GL_LO_SCALE_NV"/>
+ <enum name="GL_DS_SCALE_NV"/>
+ <enum name="GL_DT_SCALE_NV"/>
+ <enum name="GL_MAGNITUDE_SCALE_NV"/>
+ <enum name="GL_VIBRANCE_SCALE_NV"/>
+ <enum name="GL_HI_BIAS_NV"/>
+ <enum name="GL_LO_BIAS_NV"/>
+ <enum name="GL_DS_BIAS_NV"/>
+ <enum name="GL_DT_BIAS_NV"/>
+ <enum name="GL_MAGNITUDE_BIAS_NV"/>
+ <enum name="GL_VIBRANCE_BIAS_NV"/>
+ <enum name="GL_TEXTURE_BORDER_VALUES_NV"/>
+ <enum name="GL_TEXTURE_HI_SIZE_NV"/>
+ <enum name="GL_TEXTURE_LO_SIZE_NV"/>
+ <enum name="GL_TEXTURE_DS_SIZE_NV"/>
+ <enum name="GL_TEXTURE_DT_SIZE_NV"/>
+ <enum name="GL_TEXTURE_MAG_SIZE_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_texture_shader2" supported="gl">
+ <require>
+ <enum name="GL_DOT_PRODUCT_TEXTURE_3D_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_texture_shader3" supported="gl">
+ <require>
+ <enum name="GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV"/>
+ <enum name="GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV"/>
+ <enum name="GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV"/>
+ <enum name="GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV"/>
+ <enum name="GL_OFFSET_HILO_TEXTURE_2D_NV"/>
+ <enum name="GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV"/>
+ <enum name="GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV"/>
+ <enum name="GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV"/>
+ <enum name="GL_DEPENDENT_HILO_TEXTURE_2D_NV"/>
+ <enum name="GL_DEPENDENT_RGB_TEXTURE_3D_NV"/>
+ <enum name="GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV"/>
+ <enum name="GL_DOT_PRODUCT_PASS_THROUGH_NV"/>
+ <enum name="GL_DOT_PRODUCT_TEXTURE_1D_NV"/>
+ <enum name="GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV"/>
+ <enum name="GL_HILO8_NV"/>
+ <enum name="GL_SIGNED_HILO8_NV"/>
+ <enum name="GL_FORCE_BLUE_TO_ONE_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_transform_feedback" supported="gl">
+ <require>
+ <enum name="GL_BACK_PRIMARY_COLOR_NV"/>
+ <enum name="GL_BACK_SECONDARY_COLOR_NV"/>
+ <enum name="GL_TEXTURE_COORD_NV"/>
+ <enum name="GL_CLIP_DISTANCE_NV"/>
+ <enum name="GL_VERTEX_ID_NV"/>
+ <enum name="GL_PRIMITIVE_ID_NV"/>
+ <enum name="GL_GENERIC_ATTRIB_NV"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_ATTRIBS_NV"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV"/>
+ <enum name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV"/>
+ <enum name="GL_ACTIVE_VARYINGS_NV"/>
+ <enum name="GL_ACTIVE_VARYING_MAX_LENGTH_NV"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_VARYINGS_NV"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_START_NV"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_RECORD_NV"/>
+ <enum name="GL_PRIMITIVES_GENERATED_NV"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV"/>
+ <enum name="GL_RASTERIZER_DISCARD_NV"/>
+ <enum name="GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV"/>
+ <enum name="GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV"/>
+ <enum name="GL_INTERLEAVED_ATTRIBS_NV"/>
+ <enum name="GL_SEPARATE_ATTRIBS_NV"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_NV"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV"/>
+ <enum name="GL_LAYER_NV"/>
+ <enum name="GL_NEXT_BUFFER_NV"/>
+ <enum name="GL_SKIP_COMPONENTS4_NV"/>
+ <enum name="GL_SKIP_COMPONENTS3_NV"/>
+ <enum name="GL_SKIP_COMPONENTS2_NV"/>
+ <enum name="GL_SKIP_COMPONENTS1_NV"/>
+ <command name="glBeginTransformFeedbackNV"/>
+ <command name="glEndTransformFeedbackNV"/>
+ <command name="glTransformFeedbackAttribsNV"/>
+ <command name="glBindBufferRangeNV"/>
+ <command name="glBindBufferOffsetNV"/>
+ <command name="glBindBufferBaseNV"/>
+ <command name="glTransformFeedbackVaryingsNV"/>
+ <command name="glActiveVaryingNV"/>
+ <command name="glGetVaryingLocationNV"/>
+ <command name="glGetActiveVaryingNV"/>
+ <command name="glGetTransformFeedbackVaryingNV"/>
+ <command name="glTransformFeedbackStreamAttribsNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_transform_feedback2" supported="gl">
+ <require>
+ <enum name="GL_TRANSFORM_FEEDBACK_NV"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV"/>
+ <enum name="GL_TRANSFORM_FEEDBACK_BINDING_NV"/>
+ <command name="glBindTransformFeedbackNV"/>
+ <command name="glDeleteTransformFeedbacksNV"/>
+ <command name="glGenTransformFeedbacksNV"/>
+ <command name="glIsTransformFeedbackNV"/>
+ <command name="glPauseTransformFeedbackNV"/>
+ <command name="glResumeTransformFeedbackNV"/>
+ <command name="glDrawTransformFeedbackNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_vdpau_interop" supported="gl">
+ <require>
+ <enum name="GL_SURFACE_STATE_NV"/>
+ <enum name="GL_SURFACE_REGISTERED_NV"/>
+ <enum name="GL_SURFACE_MAPPED_NV"/>
+ <enum name="GL_WRITE_DISCARD_NV"/>
+ <command name="glVDPAUInitNV"/>
+ <command name="glVDPAUFiniNV"/>
+ <command name="glVDPAURegisterVideoSurfaceNV"/>
+ <command name="glVDPAURegisterOutputSurfaceNV"/>
+ <command name="glVDPAUIsSurfaceNV"/>
+ <command name="glVDPAUUnregisterSurfaceNV"/>
+ <command name="glVDPAUGetSurfaceivNV"/>
+ <command name="glVDPAUSurfaceAccessNV"/>
+ <command name="glVDPAUMapSurfacesNV"/>
+ <command name="glVDPAUUnmapSurfacesNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_vertex_array_range" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_ARRAY_RANGE_NV"/>
+ <enum name="GL_VERTEX_ARRAY_RANGE_LENGTH_NV"/>
+ <enum name="GL_VERTEX_ARRAY_RANGE_VALID_NV"/>
+ <enum name="GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV"/>
+ <enum name="GL_VERTEX_ARRAY_RANGE_POINTER_NV"/>
+ <command name="glFlushVertexArrayRangeNV"/>
+ <command name="glVertexArrayRangeNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_vertex_array_range2" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_vertex_attrib_integer_64bit" supported="gl">
+ <require>
+ <enum name="GL_INT64_NV"/>
+ <enum name="GL_UNSIGNED_INT64_NV"/>
+ <command name="glVertexAttribL1i64NV"/>
+ <command name="glVertexAttribL2i64NV"/>
+ <command name="glVertexAttribL3i64NV"/>
+ <command name="glVertexAttribL4i64NV"/>
+ <command name="glVertexAttribL1i64vNV"/>
+ <command name="glVertexAttribL2i64vNV"/>
+ <command name="glVertexAttribL3i64vNV"/>
+ <command name="glVertexAttribL4i64vNV"/>
+ <command name="glVertexAttribL1ui64NV"/>
+ <command name="glVertexAttribL2ui64NV"/>
+ <command name="glVertexAttribL3ui64NV"/>
+ <command name="glVertexAttribL4ui64NV"/>
+ <command name="glVertexAttribL1ui64vNV"/>
+ <command name="glVertexAttribL2ui64vNV"/>
+ <command name="glVertexAttribL3ui64vNV"/>
+ <command name="glVertexAttribL4ui64vNV"/>
+ <command name="glGetVertexAttribLi64vNV"/>
+ <command name="glGetVertexAttribLui64vNV"/>
+ <command name="glVertexAttribLFormatNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_vertex_buffer_unified_memory" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV"/>
+ <enum name="GL_ELEMENT_ARRAY_UNIFIED_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV"/>
+ <enum name="GL_VERTEX_ARRAY_ADDRESS_NV"/>
+ <enum name="GL_NORMAL_ARRAY_ADDRESS_NV"/>
+ <enum name="GL_COLOR_ARRAY_ADDRESS_NV"/>
+ <enum name="GL_INDEX_ARRAY_ADDRESS_NV"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_ADDRESS_NV"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_ADDRESS_NV"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV"/>
+ <enum name="GL_FOG_COORD_ARRAY_ADDRESS_NV"/>
+ <enum name="GL_ELEMENT_ARRAY_ADDRESS_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV"/>
+ <enum name="GL_VERTEX_ARRAY_LENGTH_NV"/>
+ <enum name="GL_NORMAL_ARRAY_LENGTH_NV"/>
+ <enum name="GL_COLOR_ARRAY_LENGTH_NV"/>
+ <enum name="GL_INDEX_ARRAY_LENGTH_NV"/>
+ <enum name="GL_TEXTURE_COORD_ARRAY_LENGTH_NV"/>
+ <enum name="GL_EDGE_FLAG_ARRAY_LENGTH_NV"/>
+ <enum name="GL_SECONDARY_COLOR_ARRAY_LENGTH_NV"/>
+ <enum name="GL_FOG_COORD_ARRAY_LENGTH_NV"/>
+ <enum name="GL_ELEMENT_ARRAY_LENGTH_NV"/>
+ <enum name="GL_DRAW_INDIRECT_UNIFIED_NV"/>
+ <enum name="GL_DRAW_INDIRECT_ADDRESS_NV"/>
+ <enum name="GL_DRAW_INDIRECT_LENGTH_NV"/>
+ <command name="glBufferAddressRangeNV"/>
+ <command name="glVertexFormatNV"/>
+ <command name="glNormalFormatNV"/>
+ <command name="glColorFormatNV"/>
+ <command name="glIndexFormatNV"/>
+ <command name="glTexCoordFormatNV"/>
+ <command name="glEdgeFlagFormatNV"/>
+ <command name="glSecondaryColorFormatNV"/>
+ <command name="glFogCoordFormatNV"/>
+ <command name="glVertexAttribFormatNV"/>
+ <command name="glVertexAttribIFormatNV"/>
+ <command name="glGetIntegerui64i_vNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_vertex_program" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_PROGRAM_NV"/>
+ <enum name="GL_VERTEX_STATE_PROGRAM_NV"/>
+ <enum name="GL_ATTRIB_ARRAY_SIZE_NV"/>
+ <enum name="GL_ATTRIB_ARRAY_STRIDE_NV"/>
+ <enum name="GL_ATTRIB_ARRAY_TYPE_NV"/>
+ <enum name="GL_CURRENT_ATTRIB_NV"/>
+ <enum name="GL_PROGRAM_LENGTH_NV"/>
+ <enum name="GL_PROGRAM_STRING_NV"/>
+ <enum name="GL_MODELVIEW_PROJECTION_NV"/>
+ <enum name="GL_IDENTITY_NV"/>
+ <enum name="GL_INVERSE_NV"/>
+ <enum name="GL_TRANSPOSE_NV"/>
+ <enum name="GL_INVERSE_TRANSPOSE_NV"/>
+ <enum name="GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV"/>
+ <enum name="GL_MAX_TRACK_MATRICES_NV"/>
+ <enum name="GL_MATRIX0_NV"/>
+ <enum name="GL_MATRIX1_NV"/>
+ <enum name="GL_MATRIX2_NV"/>
+ <enum name="GL_MATRIX3_NV"/>
+ <enum name="GL_MATRIX4_NV"/>
+ <enum name="GL_MATRIX5_NV"/>
+ <enum name="GL_MATRIX6_NV"/>
+ <enum name="GL_MATRIX7_NV"/>
+ <enum name="GL_CURRENT_MATRIX_STACK_DEPTH_NV"/>
+ <enum name="GL_CURRENT_MATRIX_NV"/>
+ <enum name="GL_VERTEX_PROGRAM_POINT_SIZE_NV"/>
+ <enum name="GL_VERTEX_PROGRAM_TWO_SIDE_NV"/>
+ <enum name="GL_PROGRAM_PARAMETER_NV"/>
+ <enum name="GL_ATTRIB_ARRAY_POINTER_NV"/>
+ <enum name="GL_PROGRAM_TARGET_NV"/>
+ <enum name="GL_PROGRAM_RESIDENT_NV"/>
+ <enum name="GL_TRACK_MATRIX_NV"/>
+ <enum name="GL_TRACK_MATRIX_TRANSFORM_NV"/>
+ <enum name="GL_VERTEX_PROGRAM_BINDING_NV"/>
+ <enum name="GL_PROGRAM_ERROR_POSITION_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY0_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY1_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY2_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY3_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY4_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY5_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY6_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY7_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY8_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY9_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY10_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY11_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY12_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY13_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY14_NV"/>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY15_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB0_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB1_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB2_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB3_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB4_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB5_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB6_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB7_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB8_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB9_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB10_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB11_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB12_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB13_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB14_4_NV"/>
+ <enum name="GL_MAP1_VERTEX_ATTRIB15_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB0_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB1_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB2_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB3_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB4_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB5_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB6_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB7_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB8_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB9_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB10_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB11_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB12_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB13_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB14_4_NV"/>
+ <enum name="GL_MAP2_VERTEX_ATTRIB15_4_NV"/>
+ <command name="glAreProgramsResidentNV"/>
+ <command name="glBindProgramNV"/>
+ <command name="glDeleteProgramsNV"/>
+ <command name="glExecuteProgramNV"/>
+ <command name="glGenProgramsNV"/>
+ <command name="glGetProgramParameterdvNV"/>
+ <command name="glGetProgramParameterfvNV"/>
+ <command name="glGetProgramivNV"/>
+ <command name="glGetProgramStringNV"/>
+ <command name="glGetTrackMatrixivNV"/>
+ <command name="glGetVertexAttribdvNV"/>
+ <command name="glGetVertexAttribfvNV"/>
+ <command name="glGetVertexAttribivNV"/>
+ <command name="glGetVertexAttribPointervNV"/>
+ <command name="glIsProgramNV"/>
+ <command name="glLoadProgramNV"/>
+ <command name="glProgramParameter4dNV"/>
+ <command name="glProgramParameter4dvNV"/>
+ <command name="glProgramParameter4fNV"/>
+ <command name="glProgramParameter4fvNV"/>
+ <command name="glProgramParameters4dvNV"/>
+ <command name="glProgramParameters4fvNV"/>
+ <command name="glRequestResidentProgramsNV"/>
+ <command name="glTrackMatrixNV"/>
+ <command name="glVertexAttribPointerNV"/>
+ <command name="glVertexAttrib1dNV"/>
+ <command name="glVertexAttrib1dvNV"/>
+ <command name="glVertexAttrib1fNV"/>
+ <command name="glVertexAttrib1fvNV"/>
+ <command name="glVertexAttrib1sNV"/>
+ <command name="glVertexAttrib1svNV"/>
+ <command name="glVertexAttrib2dNV"/>
+ <command name="glVertexAttrib2dvNV"/>
+ <command name="glVertexAttrib2fNV"/>
+ <command name="glVertexAttrib2fvNV"/>
+ <command name="glVertexAttrib2sNV"/>
+ <command name="glVertexAttrib2svNV"/>
+ <command name="glVertexAttrib3dNV"/>
+ <command name="glVertexAttrib3dvNV"/>
+ <command name="glVertexAttrib3fNV"/>
+ <command name="glVertexAttrib3fvNV"/>
+ <command name="glVertexAttrib3sNV"/>
+ <command name="glVertexAttrib3svNV"/>
+ <command name="glVertexAttrib4dNV"/>
+ <command name="glVertexAttrib4dvNV"/>
+ <command name="glVertexAttrib4fNV"/>
+ <command name="glVertexAttrib4fvNV"/>
+ <command name="glVertexAttrib4sNV"/>
+ <command name="glVertexAttrib4svNV"/>
+ <command name="glVertexAttrib4ubNV"/>
+ <command name="glVertexAttrib4ubvNV"/>
+ <command name="glVertexAttribs1dvNV"/>
+ <command name="glVertexAttribs1fvNV"/>
+ <command name="glVertexAttribs1svNV"/>
+ <command name="glVertexAttribs2dvNV"/>
+ <command name="glVertexAttribs2fvNV"/>
+ <command name="glVertexAttribs2svNV"/>
+ <command name="glVertexAttribs3dvNV"/>
+ <command name="glVertexAttribs3fvNV"/>
+ <command name="glVertexAttribs3svNV"/>
+ <command name="glVertexAttribs4dvNV"/>
+ <command name="glVertexAttribs4fvNV"/>
+ <command name="glVertexAttribs4svNV"/>
+ <command name="glVertexAttribs4ubvNV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_vertex_program1_1" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_NV_vertex_program2" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_NV_vertex_program2_option" supported="gl">
+ <require>
+ <enum name="GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV"/>
+ <enum name="GL_MAX_PROGRAM_CALL_DEPTH_NV"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_vertex_program3" supported="gl">
+ <require>
+ <enum name="GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_vertex_program4" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV"/>
+ <command name="glVertexAttribI1iEXT"/>
+ <command name="glVertexAttribI2iEXT"/>
+ <command name="glVertexAttribI3iEXT"/>
+ <command name="glVertexAttribI4iEXT"/>
+ <command name="glVertexAttribI1uiEXT"/>
+ <command name="glVertexAttribI2uiEXT"/>
+ <command name="glVertexAttribI3uiEXT"/>
+ <command name="glVertexAttribI4uiEXT"/>
+ <command name="glVertexAttribI1ivEXT"/>
+ <command name="glVertexAttribI2ivEXT"/>
+ <command name="glVertexAttribI3ivEXT"/>
+ <command name="glVertexAttribI4ivEXT"/>
+ <command name="glVertexAttribI1uivEXT"/>
+ <command name="glVertexAttribI2uivEXT"/>
+ <command name="glVertexAttribI3uivEXT"/>
+ <command name="glVertexAttribI4uivEXT"/>
+ <command name="glVertexAttribI4bvEXT"/>
+ <command name="glVertexAttribI4svEXT"/>
+ <command name="glVertexAttribI4ubvEXT"/>
+ <command name="glVertexAttribI4usvEXT"/>
+ <command name="glVertexAttribIPointerEXT"/>
+ <command name="glGetVertexAttribIivEXT"/>
+ <command name="glGetVertexAttribIuivEXT"/>
+ </require>
+ </extension>
+ <extension name="GL_NV_video_capture" supported="gl">
+ <require>
+ <enum name="GL_VIDEO_BUFFER_NV"/>
+ <enum name="GL_VIDEO_BUFFER_BINDING_NV"/>
+ <enum name="GL_FIELD_UPPER_NV"/>
+ <enum name="GL_FIELD_LOWER_NV"/>
+ <enum name="GL_NUM_VIDEO_CAPTURE_STREAMS_NV"/>
+ <enum name="GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV"/>
+ <enum name="GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV"/>
+ <enum name="GL_LAST_VIDEO_CAPTURE_STATUS_NV"/>
+ <enum name="GL_VIDEO_BUFFER_PITCH_NV"/>
+ <enum name="GL_VIDEO_COLOR_CONVERSION_MATRIX_NV"/>
+ <enum name="GL_VIDEO_COLOR_CONVERSION_MAX_NV"/>
+ <enum name="GL_VIDEO_COLOR_CONVERSION_MIN_NV"/>
+ <enum name="GL_VIDEO_COLOR_CONVERSION_OFFSET_NV"/>
+ <enum name="GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV"/>
+ <enum name="GL_PARTIAL_SUCCESS_NV"/>
+ <enum name="GL_SUCCESS_NV"/>
+ <enum name="GL_FAILURE_NV"/>
+ <enum name="GL_YCBYCR8_422_NV"/>
+ <enum name="GL_YCBAYCR8A_4224_NV"/>
+ <enum name="GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV"/>
+ <enum name="GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV"/>
+ <enum name="GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV"/>
+ <enum name="GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV"/>
+ <enum name="GL_Z4Y12Z4CB12Z4CR12_444_NV"/>
+ <enum name="GL_VIDEO_CAPTURE_FRAME_WIDTH_NV"/>
+ <enum name="GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV"/>
+ <enum name="GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV"/>
+ <enum name="GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV"/>
+ <enum name="GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV"/>
+ <command name="glBeginVideoCaptureNV"/>
+ <command name="glBindVideoCaptureStreamBufferNV"/>
+ <command name="glBindVideoCaptureStreamTextureNV"/>
+ <command name="glEndVideoCaptureNV"/>
+ <command name="glGetVideoCaptureivNV"/>
+ <command name="glGetVideoCaptureStreamivNV"/>
+ <command name="glGetVideoCaptureStreamfvNV"/>
+ <command name="glGetVideoCaptureStreamdvNV"/>
+ <command name="glVideoCaptureNV"/>
+ <command name="glVideoCaptureStreamParameterivNV"/>
+ <command name="glVideoCaptureStreamParameterfvNV"/>
+ <command name="glVideoCaptureStreamParameterdvNV"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_EGL_image" supported="gles1|gles2">
+ <require>
+ <type name="GLeglImageOES"/>
+ <command name="glEGLImageTargetTexture2DOES"/>
+ <command name="glEGLImageTargetRenderbufferStorageOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_EGL_image_external" supported="gles1|gles2">
+ <require>
+ <type name="GLeglImageOES"/>
+ <enum name="GL_TEXTURE_EXTERNAL_OES"/>
+ <enum name="GL_TEXTURE_BINDING_EXTERNAL_OES"/>
+ <enum name="GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES"/>
+ </require>
+ <require api="gles2">
+ <enum name="GL_SAMPLER_EXTERNAL_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_blend_equation_separate" supported="gles1">
+ <require>
+ <enum name="GL_BLEND_EQUATION_RGB_OES"/>
+ <enum name="GL_BLEND_EQUATION_ALPHA_OES"/>
+ <command name="glBlendEquationSeparateOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_blend_func_separate" supported="gles1">
+ <require>
+ <enum name="GL_BLEND_DST_RGB_OES"/>
+ <enum name="GL_BLEND_SRC_RGB_OES"/>
+ <enum name="GL_BLEND_DST_ALPHA_OES"/>
+ <enum name="GL_BLEND_SRC_ALPHA_OES"/>
+ <command name="glBlendFuncSeparateOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_blend_subtract" supported="gles1">
+ <require>
+ <enum name="GL_BLEND_EQUATION_OES"/>
+ <enum name="GL_FUNC_ADD_OES"/>
+ <enum name="GL_FUNC_SUBTRACT_OES"/>
+ <enum name="GL_FUNC_REVERSE_SUBTRACT_OES"/>
+ <command name="glBlendEquationOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_byte_coordinates" supported="gl|gles1">
+ <require>
+ <command name="glMultiTexCoord1bOES"/>
+ <command name="glMultiTexCoord1bvOES"/>
+ <command name="glMultiTexCoord2bOES"/>
+ <command name="glMultiTexCoord2bvOES"/>
+ <command name="glMultiTexCoord3bOES"/>
+ <command name="glMultiTexCoord3bvOES"/>
+ <command name="glMultiTexCoord4bOES"/>
+ <command name="glMultiTexCoord4bvOES"/>
+ <command name="glTexCoord1bOES"/>
+ <command name="glTexCoord1bvOES"/>
+ <command name="glTexCoord2bOES"/>
+ <command name="glTexCoord2bvOES"/>
+ <command name="glTexCoord3bOES"/>
+ <command name="glTexCoord3bvOES"/>
+ <command name="glTexCoord4bOES"/>
+ <command name="glTexCoord4bvOES"/>
+ <command name="glVertex2bOES"/>
+ <command name="glVertex2bvOES"/>
+ <command name="glVertex3bOES"/>
+ <command name="glVertex3bvOES"/>
+ <command name="glVertex4bOES"/>
+ <command name="glVertex4bvOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_compressed_ETC1_RGB8_texture" supported="gles1|gles2">
+ <require>
+ <enum name="GL_ETC1_RGB8_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_compressed_paletted_texture" supported="gl|gles1|gles2">
+ <require>
+ <enum name="GL_PALETTE4_RGB8_OES"/>
+ <enum name="GL_PALETTE4_RGBA8_OES"/>
+ <enum name="GL_PALETTE4_R5_G6_B5_OES"/>
+ <enum name="GL_PALETTE4_RGBA4_OES"/>
+ <enum name="GL_PALETTE4_RGB5_A1_OES"/>
+ <enum name="GL_PALETTE8_RGB8_OES"/>
+ <enum name="GL_PALETTE8_RGBA8_OES"/>
+ <enum name="GL_PALETTE8_R5_G6_B5_OES"/>
+ <enum name="GL_PALETTE8_RGBA4_OES"/>
+ <enum name="GL_PALETTE8_RGB5_A1_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_depth24" supported="gles1|gles2">
+ <require>
+ <enum name="GL_DEPTH_COMPONENT24_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_depth32" supported="gles1|gles2">
+ <require>
+ <enum name="GL_DEPTH_COMPONENT32_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_depth_texture" supported="gles2">
+ <require>
+ <enum name="GL_DEPTH_COMPONENT"/>
+ <enum name="GL_UNSIGNED_SHORT"/>
+ <enum name="GL_UNSIGNED_INT"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_draw_texture" supported="gles1">
+ <require>
+ <enum name="GL_TEXTURE_CROP_RECT_OES"/>
+ <command name="glDrawTexsOES"/>
+ <command name="glDrawTexiOES"/>
+ <command name="glDrawTexxOES"/>
+ <command name="glDrawTexsvOES"/>
+ <command name="glDrawTexivOES"/>
+ <command name="glDrawTexxvOES"/>
+ <command name="glDrawTexfOES"/>
+ <command name="glDrawTexfvOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_element_index_uint" supported="gles1|gles2">
+ <require>
+ <enum name="GL_UNSIGNED_INT"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_extended_matrix_palette" supported="gles1">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_OES_fbo_render_mipmap" supported="gles1|gles2">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_OES_fixed_point" supported="gl|gles1">
+ <require>
+ <enum name="GL_FIXED_OES"/>
+ <command name="glAlphaFuncxOES"/>
+ <command name="glClearColorxOES"/>
+ <command name="glClearDepthxOES"/>
+ <command name="glClipPlanexOES"/>
+ <command name="glColor4xOES"/>
+ <command name="glDepthRangexOES"/>
+ <command name="glFogxOES"/>
+ <command name="glFogxvOES"/>
+ <command name="glFrustumxOES"/>
+ <command name="glGetClipPlanexOES"/>
+ <command name="glGetFixedvOES"/>
+ <command name="glGetTexEnvxvOES"/>
+ <command name="glGetTexParameterxvOES"/>
+ <command name="glLightModelxOES"/>
+ <command name="glLightModelxvOES"/>
+ <command name="glLightxOES"/>
+ <command name="glLightxvOES"/>
+ <command name="glLineWidthxOES"/>
+ <command name="glLoadMatrixxOES"/>
+ <command name="glMaterialxOES"/>
+ <command name="glMaterialxvOES"/>
+ <command name="glMultMatrixxOES"/>
+ <command name="glMultiTexCoord4xOES"/>
+ <command name="glNormal3xOES"/>
+ <command name="glOrthoxOES"/>
+ <command name="glPointParameterxvOES"/>
+ <command name="glPointSizexOES"/>
+ <command name="glPolygonOffsetxOES"/>
+ <command name="glRotatexOES"/>
+ <command name="glSampleCoverageOES"/>
+ <command name="glScalexOES"/>
+ <command name="glTexEnvxOES"/>
+ <command name="glTexEnvxvOES"/>
+ <command name="glTexParameterxOES"/>
+ <command name="glTexParameterxvOES"/>
+ <command name="glTranslatexOES"/>
+ </require>
+ <require api="gles1" comment="Entry points not in the extension spec, but in the Khronos glext.h. Included for backward compatibility.">
+ <command name="glGetLightxvOES"/>
+ <command name="glGetMaterialxvOES"/>
+ <command name="glPointParameterxOES"/>
+ <command name="glSampleCoveragexOES"/>
+ </require>
+ <require api="gl" comment="Entry points in the extension spec, but not the Khronos glext.h. Correspond to GL-only features it's unlikely were ever implemented against ES 1.x.">
+ <command name="glAccumxOES"/>
+ <command name="glBitmapxOES"/>
+ <command name="glBlendColorxOES"/>
+ <command name="glClearAccumxOES"/>
+ <command name="glColor3xOES"/>
+ <command name="glColor3xvOES"/>
+ <command name="glColor4xvOES"/>
+ <command name="glConvolutionParameterxOES"/>
+ <command name="glConvolutionParameterxvOES"/>
+ <command name="glEvalCoord1xOES"/>
+ <command name="glEvalCoord1xvOES"/>
+ <command name="glEvalCoord2xOES"/>
+ <command name="glEvalCoord2xvOES"/>
+ <command name="glFeedbackBufferxOES"/>
+ <command name="glGetConvolutionParameterxvOES"/>
+ <command name="glGetHistogramParameterxvOES"/>
+ <command name="glGetLightxOES"/>
+ <command name="glGetMapxvOES"/>
+ <command name="glGetMaterialxOES"/>
+ <command name="glGetPixelMapxv"/>
+ <command name="glGetTexGenxvOES"/>
+ <command name="glGetTexLevelParameterxvOES"/>
+ <command name="glIndexxOES"/>
+ <command name="glIndexxvOES"/>
+ <command name="glLoadTransposeMatrixxOES"/>
+ <command name="glMap1xOES"/>
+ <command name="glMap2xOES"/>
+ <command name="glMapGrid1xOES"/>
+ <command name="glMapGrid2xOES"/>
+ <command name="glMultTransposeMatrixxOES"/>
+ <command name="glMultiTexCoord1xOES"/>
+ <command name="glMultiTexCoord1xvOES"/>
+ <command name="glMultiTexCoord2xOES"/>
+ <command name="glMultiTexCoord2xvOES"/>
+ <command name="glMultiTexCoord3xOES"/>
+ <command name="glMultiTexCoord3xvOES"/>
+ <command name="glMultiTexCoord4xvOES"/>
+ <command name="glNormal3xvOES"/>
+ <command name="glPassThroughxOES"/>
+ <command name="glPixelMapx"/>
+ <command name="glPixelStorex"/>
+ <command name="glPixelTransferxOES"/>
+ <command name="glPixelZoomxOES"/>
+ <command name="glPrioritizeTexturesxOES"/>
+ <command name="glRasterPos2xOES"/>
+ <command name="glRasterPos2xvOES"/>
+ <command name="glRasterPos3xOES"/>
+ <command name="glRasterPos3xvOES"/>
+ <command name="glRasterPos4xOES"/>
+ <command name="glRasterPos4xvOES"/>
+ <command name="glRectxOES"/>
+ <command name="glRectxvOES"/>
+ <command name="glTexCoord1xOES"/>
+ <command name="glTexCoord1xvOES"/>
+ <command name="glTexCoord2xOES"/>
+ <command name="glTexCoord2xvOES"/>
+ <command name="glTexCoord3xOES"/>
+ <command name="glTexCoord3xvOES"/>
+ <command name="glTexCoord4xOES"/>
+ <command name="glTexCoord4xvOES"/>
+ <command name="glTexGenxOES"/>
+ <command name="glTexGenxvOES"/>
+ <command name="glVertex2xOES"/>
+ <command name="glVertex2xvOES"/>
+ <command name="glVertex3xOES"/>
+ <command name="glVertex3xvOES"/>
+ <command name="glVertex4xOES"/>
+ <command name="glVertex4xvOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_fragment_precision_high" supported="gles2">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_OES_framebuffer_object" supported="gles1">
+ <require>
+ <enum name="GL_NONE_OES"/>
+ <enum name="GL_FRAMEBUFFER_OES"/>
+ <enum name="GL_RENDERBUFFER_OES"/>
+ <enum name="GL_RGBA4_OES"/>
+ <enum name="GL_RGB5_A1_OES"/>
+ <enum name="GL_RGB565_OES"/>
+ <enum name="GL_DEPTH_COMPONENT16_OES"/>
+ <enum name="GL_RENDERBUFFER_WIDTH_OES"/>
+ <enum name="GL_RENDERBUFFER_HEIGHT_OES"/>
+ <enum name="GL_RENDERBUFFER_INTERNAL_FORMAT_OES"/>
+ <enum name="GL_RENDERBUFFER_RED_SIZE_OES"/>
+ <enum name="GL_RENDERBUFFER_GREEN_SIZE_OES"/>
+ <enum name="GL_RENDERBUFFER_BLUE_SIZE_OES"/>
+ <enum name="GL_RENDERBUFFER_ALPHA_SIZE_OES"/>
+ <enum name="GL_RENDERBUFFER_DEPTH_SIZE_OES"/>
+ <enum name="GL_RENDERBUFFER_STENCIL_SIZE_OES"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES"/>
+ <enum name="GL_COLOR_ATTACHMENT0_OES"/>
+ <enum name="GL_DEPTH_ATTACHMENT_OES"/>
+ <enum name="GL_STENCIL_ATTACHMENT_OES"/>
+ <enum name="GL_FRAMEBUFFER_COMPLETE_OES"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES"/>
+ <enum name="GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES"/>
+ <enum name="GL_FRAMEBUFFER_UNSUPPORTED_OES"/>
+ <enum name="GL_FRAMEBUFFER_BINDING_OES"/>
+ <enum name="GL_RENDERBUFFER_BINDING_OES"/>
+ <enum name="GL_MAX_RENDERBUFFER_SIZE_OES"/>
+ <enum name="GL_INVALID_FRAMEBUFFER_OPERATION_OES"/>
+ <command name="glIsRenderbufferOES"/>
+ <command name="glBindRenderbufferOES"/>
+ <command name="glDeleteRenderbuffersOES"/>
+ <command name="glGenRenderbuffersOES"/>
+ <command name="glRenderbufferStorageOES"/>
+ <command name="glGetRenderbufferParameterivOES"/>
+ <command name="glIsFramebufferOES"/>
+ <command name="glBindFramebufferOES"/>
+ <command name="glDeleteFramebuffersOES"/>
+ <command name="glGenFramebuffersOES"/>
+ <command name="glCheckFramebufferStatusOES"/>
+ <command name="glFramebufferRenderbufferOES"/>
+ <command name="glFramebufferTexture2DOES"/>
+ <command name="glGetFramebufferAttachmentParameterivOES"/>
+ <command name="glGenerateMipmapOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_get_program_binary" supported="gles2">
+ <require>
+ <enum name="GL_PROGRAM_BINARY_LENGTH_OES"/>
+ <enum name="GL_NUM_PROGRAM_BINARY_FORMATS_OES"/>
+ <enum name="GL_PROGRAM_BINARY_FORMATS_OES"/>
+ <command name="glGetProgramBinaryOES"/>
+ <command name="glProgramBinaryOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_mapbuffer" supported="gles1|gles2">
+ <require>
+ <enum name="GL_WRITE_ONLY_OES"/>
+ <enum name="GL_BUFFER_ACCESS_OES"/>
+ <enum name="GL_BUFFER_MAPPED_OES"/>
+ <enum name="GL_BUFFER_MAP_POINTER_OES"/>
+ <command name="glMapBufferOES"/>
+ <command name="glUnmapBufferOES"/>
+ <command name="glGetBufferPointervOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_matrix_get" supported="gles1">
+ <require>
+ <enum name="GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES"/>
+ <enum name="GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES"/>
+ <enum name="GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_matrix_palette" supported="gles1">
+ <require>
+ <enum name="GL_MAX_VERTEX_UNITS_OES"/>
+ <enum name="GL_MAX_PALETTE_MATRICES_OES"/>
+ <enum name="GL_MATRIX_PALETTE_OES"/>
+ <enum name="GL_MATRIX_INDEX_ARRAY_OES"/>
+ <enum name="GL_WEIGHT_ARRAY_OES"/>
+ <enum name="GL_CURRENT_PALETTE_MATRIX_OES"/>
+ <enum name="GL_MATRIX_INDEX_ARRAY_SIZE_OES"/>
+ <enum name="GL_MATRIX_INDEX_ARRAY_TYPE_OES"/>
+ <enum name="GL_MATRIX_INDEX_ARRAY_STRIDE_OES"/>
+ <enum name="GL_MATRIX_INDEX_ARRAY_POINTER_OES"/>
+ <enum name="GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES"/>
+ <enum name="GL_WEIGHT_ARRAY_SIZE_OES"/>
+ <enum name="GL_WEIGHT_ARRAY_TYPE_OES"/>
+ <enum name="GL_WEIGHT_ARRAY_STRIDE_OES"/>
+ <enum name="GL_WEIGHT_ARRAY_POINTER_OES"/>
+ <enum name="GL_WEIGHT_ARRAY_BUFFER_BINDING_OES"/>
+ <command name="glCurrentPaletteMatrixOES"/>
+ <command name="glLoadPaletteFromModelViewMatrixOES"/>
+ <command name="glMatrixIndexPointerOES"/>
+ <command name="glWeightPointerOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_packed_depth_stencil" supported="gles1|gles2">
+ <require>
+ <enum name="GL_DEPTH_STENCIL_OES"/>
+ <enum name="GL_UNSIGNED_INT_24_8_OES"/>
+ <enum name="GL_DEPTH24_STENCIL8_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_point_size_array" supported="gles1">
+ <require>
+ <enum name="GL_POINT_SIZE_ARRAY_OES"/>
+ <enum name="GL_POINT_SIZE_ARRAY_TYPE_OES"/>
+ <enum name="GL_POINT_SIZE_ARRAY_STRIDE_OES"/>
+ <enum name="GL_POINT_SIZE_ARRAY_POINTER_OES"/>
+ <enum name="GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES"/>
+ <command name="glPointSizePointerOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_point_sprite" supported="gles1">
+ <require>
+ <enum name="GL_POINT_SPRITE_OES"/>
+ <enum name="GL_COORD_REPLACE_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_query_matrix" supported="gl|gles1">
+ <require>
+ <command name="glQueryMatrixxOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_read_format" supported="gl|gles1">
+ <require>
+ <enum name="GL_IMPLEMENTATION_COLOR_READ_TYPE_OES"/>
+ <enum name="GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_required_internalformat" supported="gles1|gles2">
+ <require>
+ <enum name="GL_ALPHA8_OES"/>
+ <enum name="GL_DEPTH_COMPONENT16_OES"/>
+ <enum name="GL_DEPTH_COMPONENT24_OES"/>
+ <enum name="GL_DEPTH24_STENCIL8_OES"/>
+ <enum name="GL_DEPTH_COMPONENT32_OES"/>
+ <enum name="GL_LUMINANCE4_ALPHA4_OES"/>
+ <enum name="GL_LUMINANCE8_ALPHA8_OES"/>
+ <enum name="GL_LUMINANCE8_OES"/>
+ <enum name="GL_RGBA4_OES"/>
+ <enum name="GL_RGB5_A1_OES"/>
+ <enum name="GL_RGB565_OES"/>
+ <enum name="GL_RGB8_OES"/>
+ <enum name="GL_RGBA8_OES"/>
+ <enum name="GL_RGB10_EXT"/>
+ <enum name="GL_RGB10_A2_EXT"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_rgb8_rgba8" supported="gles1|gles2">
+ <require>
+ <enum name="GL_RGB8_OES"/>
+ <enum name="GL_RGBA8_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_single_precision" supported="gl|gles1">
+ <require>
+ <command name="glClearDepthfOES"/>
+ <command name="glClipPlanefOES"/>
+ <command name="glDepthRangefOES"/>
+ <command name="glFrustumfOES"/>
+ <command name="glGetClipPlanefOES"/>
+ <command name="glOrthofOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_standard_derivatives" supported="gles2">
+ <require>
+ <enum name="GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_stencil1" supported="gles1|gles2">
+ <require>
+ <enum name="GL_STENCIL_INDEX1_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_stencil4" supported="gles1|gles2">
+ <require>
+ <enum name="GL_STENCIL_INDEX4_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_stencil8" supported="gles1">
+ <require>
+ <enum name="GL_STENCIL_INDEX8_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_stencil_wrap" supported="gles1">
+ <require>
+ <enum name="GL_INCR_WRAP_OES"/>
+ <enum name="GL_DECR_WRAP_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_surfaceless_context" supported="gles2">
+ <require>
+ <enum name="GL_FRAMEBUFFER_UNDEFINED_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_texture_3D" supported="gles2">
+ <require>
+ <enum name="GL_TEXTURE_WRAP_R_OES"/>
+ <enum name="GL_TEXTURE_3D_OES"/>
+ <enum name="GL_TEXTURE_BINDING_3D_OES"/>
+ <enum name="GL_MAX_3D_TEXTURE_SIZE_OES"/>
+ <enum name="GL_SAMPLER_3D_OES"/>
+ <enum name="GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES"/>
+ <command name="glTexImage3DOES"/>
+ <command name="glTexSubImage3DOES"/>
+ <command name="glCopyTexSubImage3DOES"/>
+ <command name="glCompressedTexImage3DOES"/>
+ <command name="glCompressedTexSubImage3DOES"/>
+ <command name="glFramebufferTexture3DOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_texture_cube_map" supported="gles1">
+ <require>
+ <enum name="GL_NORMAL_MAP_OES"/>
+ <enum name="GL_REFLECTION_MAP_OES"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_OES"/>
+ <enum name="GL_TEXTURE_BINDING_CUBE_MAP_OES"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES"/>
+ <enum name="GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES"/>
+ <enum name="GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES"/>
+ <enum name="GL_TEXTURE_GEN_MODE_OES"/>
+ <enum name="GL_TEXTURE_GEN_STR_OES"/>
+ <command name="glTexGenfOES"/>
+ <command name="glTexGenfvOES"/>
+ <command name="glTexGeniOES"/>
+ <command name="glTexGenivOES"/>
+ <command name="glTexGenxOES"/>
+ <command name="glTexGenxvOES"/>
+ <command name="glGetTexGenfvOES"/>
+ <command name="glGetTexGenivOES"/>
+ <command name="glGetTexGenxvOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_texture_env_crossbar" supported="gles1">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_OES_texture_float" supported="gles2">
+ <require>
+ <enum name="GL_FLOAT"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_texture_float_linear" supported="gles2">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_OES_texture_half_float" supported="gles2">
+ <require>
+ <enum name="GL_HALF_FLOAT_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_texture_half_float_linear" supported="gles2">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_OES_texture_mirrored_repeat" supported="gles1">
+ <require>
+ <enum name="GL_MIRRORED_REPEAT_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_texture_npot" supported="gles2">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_OES_vertex_array_object" supported="gles1|gles2">
+ <require>
+ <enum name="GL_VERTEX_ARRAY_BINDING_OES"/>
+ <command name="glBindVertexArrayOES"/>
+ <command name="glDeleteVertexArraysOES"/>
+ <command name="glGenVertexArraysOES"/>
+ <command name="glIsVertexArrayOES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_vertex_half_float" supported="gles2">
+ <require>
+ <enum name="GL_HALF_FLOAT_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OES_vertex_type_10_10_10_2" supported="gles2">
+ <require>
+ <enum name="GL_UNSIGNED_INT_10_10_10_2_OES"/>
+ <enum name="GL_INT_10_10_10_2_OES"/>
+ </require>
+ </extension>
+ <extension name="GL_OML_interlace" supported="gl">
+ <require>
+ <enum name="GL_INTERLACE_OML"/>
+ <enum name="GL_INTERLACE_READ_OML"/>
+ </require>
+ </extension>
+ <extension name="GL_OML_resample" supported="gl">
+ <require>
+ <enum name="GL_PACK_RESAMPLE_OML"/>
+ <enum name="GL_UNPACK_RESAMPLE_OML"/>
+ <enum name="GL_RESAMPLE_REPLICATE_OML"/>
+ <enum name="GL_RESAMPLE_ZERO_FILL_OML"/>
+ <enum name="GL_RESAMPLE_AVERAGE_OML"/>
+ <enum name="GL_RESAMPLE_DECIMATE_OML"/>
+ </require>
+ </extension>
+ <extension name="GL_OML_subsample" supported="gl">
+ <require>
+ <enum name="GL_FORMAT_SUBSAMPLE_24_24_OML"/>
+ <enum name="GL_FORMAT_SUBSAMPLE_244_244_OML"/>
+ </require>
+ </extension>
+ <extension name="GL_PGI_misc_hints" supported="gl">
+ <require>
+ <enum name="GL_PREFER_DOUBLEBUFFER_HINT_PGI"/>
+ <enum name="GL_CONSERVE_MEMORY_HINT_PGI"/>
+ <enum name="GL_RECLAIM_MEMORY_HINT_PGI"/>
+ <enum name="GL_NATIVE_GRAPHICS_HANDLE_PGI"/>
+ <enum name="GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI"/>
+ <enum name="GL_NATIVE_GRAPHICS_END_HINT_PGI"/>
+ <enum name="GL_ALWAYS_FAST_HINT_PGI"/>
+ <enum name="GL_ALWAYS_SOFT_HINT_PGI"/>
+ <enum name="GL_ALLOW_DRAW_OBJ_HINT_PGI"/>
+ <enum name="GL_ALLOW_DRAW_WIN_HINT_PGI"/>
+ <enum name="GL_ALLOW_DRAW_FRG_HINT_PGI"/>
+ <enum name="GL_ALLOW_DRAW_MEM_HINT_PGI"/>
+ <enum name="GL_STRICT_DEPTHFUNC_HINT_PGI"/>
+ <enum name="GL_STRICT_LIGHTING_HINT_PGI"/>
+ <enum name="GL_STRICT_SCISSOR_HINT_PGI"/>
+ <enum name="GL_FULL_STIPPLE_HINT_PGI"/>
+ <enum name="GL_CLIP_NEAR_HINT_PGI"/>
+ <enum name="GL_CLIP_FAR_HINT_PGI"/>
+ <enum name="GL_WIDE_LINE_HINT_PGI"/>
+ <enum name="GL_BACK_NORMALS_HINT_PGI"/>
+ <command name="glHintPGI"/>
+ </require>
+ </extension>
+ <extension name="GL_PGI_vertex_hints" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_DATA_HINT_PGI"/>
+ <enum name="GL_VERTEX_CONSISTENT_HINT_PGI"/>
+ <enum name="GL_MATERIAL_SIDE_HINT_PGI"/>
+ <enum name="GL_MAX_VERTEX_HINT_PGI"/>
+ <enum name="GL_COLOR3_BIT_PGI"/>
+ <enum name="GL_COLOR4_BIT_PGI"/>
+ <enum name="GL_EDGEFLAG_BIT_PGI"/>
+ <enum name="GL_INDEX_BIT_PGI"/>
+ <enum name="GL_MAT_AMBIENT_BIT_PGI"/>
+ <enum name="GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI"/>
+ <enum name="GL_MAT_DIFFUSE_BIT_PGI"/>
+ <enum name="GL_MAT_EMISSION_BIT_PGI"/>
+ <enum name="GL_MAT_COLOR_INDEXES_BIT_PGI"/>
+ <enum name="GL_MAT_SHININESS_BIT_PGI"/>
+ <enum name="GL_MAT_SPECULAR_BIT_PGI"/>
+ <enum name="GL_NORMAL_BIT_PGI"/>
+ <enum name="GL_TEXCOORD1_BIT_PGI"/>
+ <enum name="GL_TEXCOORD2_BIT_PGI"/>
+ <enum name="GL_TEXCOORD3_BIT_PGI"/>
+ <enum name="GL_TEXCOORD4_BIT_PGI"/>
+ <enum name="GL_VERTEX23_BIT_PGI"/>
+ <enum name="GL_VERTEX4_BIT_PGI"/>
+ </require>
+ </extension>
+ <extension name="GL_QCOM_alpha_test" supported="gles2">
+ <require>
+ <enum name="GL_ALPHA_TEST_QCOM"/>
+ <enum name="GL_ALPHA_TEST_FUNC_QCOM"/>
+ <enum name="GL_ALPHA_TEST_REF_QCOM"/>
+ <command name="glAlphaFuncQCOM"/>
+ </require>
+ </extension>
+ <extension name="GL_QCOM_binning_control" supported="gles2">
+ <require>
+ <enum name="GL_BINNING_CONTROL_HINT_QCOM"/>
+ <enum name="GL_CPU_OPTIMIZED_QCOM"/>
+ <enum name="GL_GPU_OPTIMIZED_QCOM"/>
+ <enum name="GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM"/>
+ </require>
+ </extension>
+ <extension name="GL_QCOM_driver_control" supported="gles1|gles2">
+ <require>
+ <command name="glGetDriverControlsQCOM"/>
+ <command name="glGetDriverControlStringQCOM"/>
+ <command name="glEnableDriverControlQCOM"/>
+ <command name="glDisableDriverControlQCOM"/>
+ </require>
+ </extension>
+ <extension name="GL_QCOM_extended_get" supported="gles1|gles2">
+ <require>
+ <enum name="GL_TEXTURE_WIDTH_QCOM"/>
+ <enum name="GL_TEXTURE_HEIGHT_QCOM"/>
+ <enum name="GL_TEXTURE_DEPTH_QCOM"/>
+ <enum name="GL_TEXTURE_INTERNAL_FORMAT_QCOM"/>
+ <enum name="GL_TEXTURE_FORMAT_QCOM"/>
+ <enum name="GL_TEXTURE_TYPE_QCOM"/>
+ <enum name="GL_TEXTURE_IMAGE_VALID_QCOM"/>
+ <enum name="GL_TEXTURE_NUM_LEVELS_QCOM"/>
+ <enum name="GL_TEXTURE_TARGET_QCOM"/>
+ <enum name="GL_TEXTURE_OBJECT_VALID_QCOM"/>
+ <enum name="GL_STATE_RESTORE"/>
+ <command name="glExtGetTexturesQCOM"/>
+ <command name="glExtGetBuffersQCOM"/>
+ <command name="glExtGetRenderbuffersQCOM"/>
+ <command name="glExtGetFramebuffersQCOM"/>
+ <command name="glExtGetTexLevelParameterivQCOM"/>
+ <command name="glExtTexObjectStateOverrideiQCOM"/>
+ <command name="glExtGetTexSubImageQCOM"/>
+ <command name="glExtGetBufferPointervQCOM"/>
+ </require>
+ </extension>
+ <extension name="GL_QCOM_extended_get2" supported="gles1|gles2">
+ <require>
+ <command name="glExtGetShadersQCOM"/>
+ <command name="glExtGetProgramsQCOM"/>
+ <command name="glExtIsProgramBinaryQCOM"/>
+ <command name="glExtGetProgramBinarySourceQCOM"/>
+ </require>
+ </extension>
+ <extension name="GL_QCOM_perfmon_global_mode" supported="gles1|gles2">
+ <require>
+ <enum name="GL_PERFMON_GLOBAL_MODE_QCOM"/>
+ </require>
+ </extension>
+ <extension name="GL_QCOM_tiled_rendering" supported="gles1|gles2">
+ <require>
+ <enum name="GL_COLOR_BUFFER_BIT0_QCOM"/>
+ <enum name="GL_COLOR_BUFFER_BIT1_QCOM"/>
+ <enum name="GL_COLOR_BUFFER_BIT2_QCOM"/>
+ <enum name="GL_COLOR_BUFFER_BIT3_QCOM"/>
+ <enum name="GL_COLOR_BUFFER_BIT4_QCOM"/>
+ <enum name="GL_COLOR_BUFFER_BIT5_QCOM"/>
+ <enum name="GL_COLOR_BUFFER_BIT6_QCOM"/>
+ <enum name="GL_COLOR_BUFFER_BIT7_QCOM"/>
+ <enum name="GL_DEPTH_BUFFER_BIT0_QCOM"/>
+ <enum name="GL_DEPTH_BUFFER_BIT1_QCOM"/>
+ <enum name="GL_DEPTH_BUFFER_BIT2_QCOM"/>
+ <enum name="GL_DEPTH_BUFFER_BIT3_QCOM"/>
+ <enum name="GL_DEPTH_BUFFER_BIT4_QCOM"/>
+ <enum name="GL_DEPTH_BUFFER_BIT5_QCOM"/>
+ <enum name="GL_DEPTH_BUFFER_BIT6_QCOM"/>
+ <enum name="GL_DEPTH_BUFFER_BIT7_QCOM"/>
+ <enum name="GL_STENCIL_BUFFER_BIT0_QCOM"/>
+ <enum name="GL_STENCIL_BUFFER_BIT1_QCOM"/>
+ <enum name="GL_STENCIL_BUFFER_BIT2_QCOM"/>
+ <enum name="GL_STENCIL_BUFFER_BIT3_QCOM"/>
+ <enum name="GL_STENCIL_BUFFER_BIT4_QCOM"/>
+ <enum name="GL_STENCIL_BUFFER_BIT5_QCOM"/>
+ <enum name="GL_STENCIL_BUFFER_BIT6_QCOM"/>
+ <enum name="GL_STENCIL_BUFFER_BIT7_QCOM"/>
+ <enum name="GL_MULTISAMPLE_BUFFER_BIT0_QCOM"/>
+ <enum name="GL_MULTISAMPLE_BUFFER_BIT1_QCOM"/>
+ <enum name="GL_MULTISAMPLE_BUFFER_BIT2_QCOM"/>
+ <enum name="GL_MULTISAMPLE_BUFFER_BIT3_QCOM"/>
+ <enum name="GL_MULTISAMPLE_BUFFER_BIT4_QCOM"/>
+ <enum name="GL_MULTISAMPLE_BUFFER_BIT5_QCOM"/>
+ <enum name="GL_MULTISAMPLE_BUFFER_BIT6_QCOM"/>
+ <enum name="GL_MULTISAMPLE_BUFFER_BIT7_QCOM"/>
+ <command name="glStartTilingQCOM"/>
+ <command name="glEndTilingQCOM"/>
+ </require>
+ </extension>
+ <extension name="GL_QCOM_writeonly_rendering" supported="gles1|gles2">
+ <require>
+ <enum name="GL_WRITEONLY_RENDERING_QCOM"/>
+ </require>
+ </extension>
+ <extension name="GL_REND_screen_coordinates" supported="gl">
+ <require>
+ <enum name="GL_SCREEN_COORDINATES_REND"/>
+ <enum name="GL_INVERTED_SCREEN_W_REND"/>
+ </require>
+ </extension>
+ <extension name="GL_S3_s3tc" supported="gl">
+ <require>
+ <enum name="GL_RGB_S3TC"/>
+ <enum name="GL_RGB4_S3TC"/>
+ <enum name="GL_RGBA_S3TC"/>
+ <enum name="GL_RGBA4_S3TC"/>
+ <enum name="GL_RGBA_DXT5_S3TC"/>
+ <enum name="GL_RGBA4_DXT5_S3TC"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_detail_texture" supported="gl">
+ <require>
+ <enum name="GL_DETAIL_TEXTURE_2D_SGIS"/>
+ <enum name="GL_DETAIL_TEXTURE_2D_BINDING_SGIS"/>
+ <enum name="GL_LINEAR_DETAIL_SGIS"/>
+ <enum name="GL_LINEAR_DETAIL_ALPHA_SGIS"/>
+ <enum name="GL_LINEAR_DETAIL_COLOR_SGIS"/>
+ <enum name="GL_DETAIL_TEXTURE_LEVEL_SGIS"/>
+ <enum name="GL_DETAIL_TEXTURE_MODE_SGIS"/>
+ <enum name="GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS"/>
+ <command name="glDetailTexFuncSGIS"/>
+ <command name="glGetDetailTexFuncSGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_fog_function" supported="gl">
+ <require>
+ <enum name="GL_FOG_FUNC_SGIS"/>
+ <enum name="GL_FOG_FUNC_POINTS_SGIS"/>
+ <enum name="GL_MAX_FOG_FUNC_POINTS_SGIS"/>
+ <command name="glFogFuncSGIS"/>
+ <command name="glGetFogFuncSGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_generate_mipmap" supported="gl">
+ <require>
+ <enum name="GL_GENERATE_MIPMAP_SGIS"/>
+ <enum name="GL_GENERATE_MIPMAP_HINT_SGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_multisample" supported="gl">
+ <require>
+ <enum name="GL_MULTISAMPLE_SGIS"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_MASK_SGIS"/>
+ <enum name="GL_SAMPLE_ALPHA_TO_ONE_SGIS"/>
+ <enum name="GL_SAMPLE_MASK_SGIS"/>
+ <enum name="GL_1PASS_SGIS"/>
+ <enum name="GL_2PASS_0_SGIS"/>
+ <enum name="GL_2PASS_1_SGIS"/>
+ <enum name="GL_4PASS_0_SGIS"/>
+ <enum name="GL_4PASS_1_SGIS"/>
+ <enum name="GL_4PASS_2_SGIS"/>
+ <enum name="GL_4PASS_3_SGIS"/>
+ <enum name="GL_SAMPLE_BUFFERS_SGIS"/>
+ <enum name="GL_SAMPLES_SGIS"/>
+ <enum name="GL_SAMPLE_MASK_VALUE_SGIS"/>
+ <enum name="GL_SAMPLE_MASK_INVERT_SGIS"/>
+ <enum name="GL_SAMPLE_PATTERN_SGIS"/>
+ <command name="glSampleMaskSGIS"/>
+ <command name="glSamplePatternSGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_pixel_texture" supported="gl">
+ <require>
+ <enum name="GL_PIXEL_TEXTURE_SGIS"/>
+ <enum name="GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS"/>
+ <enum name="GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS"/>
+ <enum name="GL_PIXEL_GROUP_COLOR_SGIS"/>
+ <command name="glPixelTexGenParameteriSGIS"/>
+ <command name="glPixelTexGenParameterivSGIS"/>
+ <command name="glPixelTexGenParameterfSGIS"/>
+ <command name="glPixelTexGenParameterfvSGIS"/>
+ <command name="glGetPixelTexGenParameterivSGIS"/>
+ <command name="glGetPixelTexGenParameterfvSGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_point_line_texgen" supported="gl">
+ <require>
+ <enum name="GL_EYE_DISTANCE_TO_POINT_SGIS"/>
+ <enum name="GL_OBJECT_DISTANCE_TO_POINT_SGIS"/>
+ <enum name="GL_EYE_DISTANCE_TO_LINE_SGIS"/>
+ <enum name="GL_OBJECT_DISTANCE_TO_LINE_SGIS"/>
+ <enum name="GL_EYE_POINT_SGIS"/>
+ <enum name="GL_OBJECT_POINT_SGIS"/>
+ <enum name="GL_EYE_LINE_SGIS"/>
+ <enum name="GL_OBJECT_LINE_SGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_point_parameters" supported="gl">
+ <require>
+ <enum name="GL_POINT_SIZE_MIN_SGIS"/>
+ <enum name="GL_POINT_SIZE_MAX_SGIS"/>
+ <enum name="GL_POINT_FADE_THRESHOLD_SIZE_SGIS"/>
+ <enum name="GL_DISTANCE_ATTENUATION_SGIS"/>
+ <command name="glPointParameterfSGIS"/>
+ <command name="glPointParameterfvSGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_sharpen_texture" supported="gl">
+ <require>
+ <enum name="GL_LINEAR_SHARPEN_SGIS"/>
+ <enum name="GL_LINEAR_SHARPEN_ALPHA_SGIS"/>
+ <enum name="GL_LINEAR_SHARPEN_COLOR_SGIS"/>
+ <enum name="GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS"/>
+ <command name="glSharpenTexFuncSGIS"/>
+ <command name="glGetSharpenTexFuncSGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_texture4D" supported="gl">
+ <require>
+ <enum name="GL_PACK_SKIP_VOLUMES_SGIS"/>
+ <enum name="GL_PACK_IMAGE_DEPTH_SGIS"/>
+ <enum name="GL_UNPACK_SKIP_VOLUMES_SGIS"/>
+ <enum name="GL_UNPACK_IMAGE_DEPTH_SGIS"/>
+ <enum name="GL_TEXTURE_4D_SGIS"/>
+ <enum name="GL_PROXY_TEXTURE_4D_SGIS"/>
+ <enum name="GL_TEXTURE_4DSIZE_SGIS"/>
+ <enum name="GL_TEXTURE_WRAP_Q_SGIS"/>
+ <enum name="GL_MAX_4D_TEXTURE_SIZE_SGIS"/>
+ <enum name="GL_TEXTURE_4D_BINDING_SGIS"/>
+ <command name="glTexImage4DSGIS"/>
+ <command name="glTexSubImage4DSGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_texture_border_clamp" supported="gl">
+ <require>
+ <enum name="GL_CLAMP_TO_BORDER_SGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_texture_color_mask" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_COLOR_WRITEMASK_SGIS"/>
+ <command name="glTextureColorMaskSGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_texture_edge_clamp" supported="gl">
+ <require>
+ <enum name="GL_CLAMP_TO_EDGE_SGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_texture_filter4" supported="gl">
+ <require>
+ <enum name="GL_FILTER4_SGIS"/>
+ <enum name="GL_TEXTURE_FILTER4_SIZE_SGIS"/>
+ <command name="glGetTexFilterFuncSGIS"/>
+ <command name="glTexFilterFuncSGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_texture_lod" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_MIN_LOD_SGIS"/>
+ <enum name="GL_TEXTURE_MAX_LOD_SGIS"/>
+ <enum name="GL_TEXTURE_BASE_LEVEL_SGIS"/>
+ <enum name="GL_TEXTURE_MAX_LEVEL_SGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIS_texture_select" supported="gl">
+ <require>
+ <enum name="GL_DUAL_ALPHA4_SGIS"/>
+ <enum name="GL_DUAL_ALPHA8_SGIS"/>
+ <enum name="GL_DUAL_ALPHA12_SGIS"/>
+ <enum name="GL_DUAL_ALPHA16_SGIS"/>
+ <enum name="GL_DUAL_LUMINANCE4_SGIS"/>
+ <enum name="GL_DUAL_LUMINANCE8_SGIS"/>
+ <enum name="GL_DUAL_LUMINANCE12_SGIS"/>
+ <enum name="GL_DUAL_LUMINANCE16_SGIS"/>
+ <enum name="GL_DUAL_INTENSITY4_SGIS"/>
+ <enum name="GL_DUAL_INTENSITY8_SGIS"/>
+ <enum name="GL_DUAL_INTENSITY12_SGIS"/>
+ <enum name="GL_DUAL_INTENSITY16_SGIS"/>
+ <enum name="GL_DUAL_LUMINANCE_ALPHA4_SGIS"/>
+ <enum name="GL_DUAL_LUMINANCE_ALPHA8_SGIS"/>
+ <enum name="GL_QUAD_ALPHA4_SGIS"/>
+ <enum name="GL_QUAD_ALPHA8_SGIS"/>
+ <enum name="GL_QUAD_LUMINANCE4_SGIS"/>
+ <enum name="GL_QUAD_LUMINANCE8_SGIS"/>
+ <enum name="GL_QUAD_INTENSITY4_SGIS"/>
+ <enum name="GL_QUAD_INTENSITY8_SGIS"/>
+ <enum name="GL_DUAL_TEXTURE_SELECT_SGIS"/>
+ <enum name="GL_QUAD_TEXTURE_SELECT_SGIS"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_async" supported="gl">
+ <require>
+ <enum name="GL_ASYNC_MARKER_SGIX"/>
+ <command name="glAsyncMarkerSGIX"/>
+ <command name="glFinishAsyncSGIX"/>
+ <command name="glPollAsyncSGIX"/>
+ <command name="glGenAsyncMarkersSGIX"/>
+ <command name="glDeleteAsyncMarkersSGIX"/>
+ <command name="glIsAsyncMarkerSGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_async_histogram" supported="gl">
+ <require>
+ <enum name="GL_ASYNC_HISTOGRAM_SGIX"/>
+ <enum name="GL_MAX_ASYNC_HISTOGRAM_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_async_pixel" supported="gl">
+ <require>
+ <enum name="GL_ASYNC_TEX_IMAGE_SGIX"/>
+ <enum name="GL_ASYNC_DRAW_PIXELS_SGIX"/>
+ <enum name="GL_ASYNC_READ_PIXELS_SGIX"/>
+ <enum name="GL_MAX_ASYNC_TEX_IMAGE_SGIX"/>
+ <enum name="GL_MAX_ASYNC_DRAW_PIXELS_SGIX"/>
+ <enum name="GL_MAX_ASYNC_READ_PIXELS_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_blend_alpha_minmax" supported="gl">
+ <require>
+ <enum name="GL_ALPHA_MIN_SGIX"/>
+ <enum name="GL_ALPHA_MAX_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_calligraphic_fragment" supported="gl">
+ <require>
+ <enum name="GL_CALLIGRAPHIC_FRAGMENT_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_clipmap" supported="gl">
+ <require>
+ <enum name="GL_LINEAR_CLIPMAP_LINEAR_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_CENTER_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_FRAME_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_OFFSET_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX"/>
+ <enum name="GL_TEXTURE_CLIPMAP_DEPTH_SGIX"/>
+ <enum name="GL_MAX_CLIPMAP_DEPTH_SGIX"/>
+ <enum name="GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX"/>
+ <enum name="GL_NEAREST_CLIPMAP_NEAREST_SGIX"/>
+ <enum name="GL_NEAREST_CLIPMAP_LINEAR_SGIX"/>
+ <enum name="GL_LINEAR_CLIPMAP_NEAREST_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_convolution_accuracy" supported="gl">
+ <require>
+ <enum name="GL_CONVOLUTION_HINT_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_depth_pass_instrument" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_depth_texture" supported="gl">
+ <require>
+ <enum name="GL_DEPTH_COMPONENT16_SGIX"/>
+ <enum name="GL_DEPTH_COMPONENT24_SGIX"/>
+ <enum name="GL_DEPTH_COMPONENT32_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_flush_raster" supported="gl">
+ <require>
+ <command name="glFlushRasterSGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_fog_offset" supported="gl">
+ <require>
+ <enum name="GL_FOG_OFFSET_SGIX"/>
+ <enum name="GL_FOG_OFFSET_VALUE_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_fragment_lighting" supported="gl" comment="Incomplete extension">
+ <require>
+ <enum name="GL_FRAGMENT_LIGHTING_SGIX"/>
+ <enum name="GL_FRAGMENT_COLOR_MATERIAL_SGIX"/>
+ <enum name="GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX"/>
+ <enum name="GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX"/>
+ <enum name="GL_MAX_FRAGMENT_LIGHTS_SGIX"/>
+ <enum name="GL_MAX_ACTIVE_LIGHTS_SGIX"/>
+ <enum name="GL_CURRENT_RASTER_NORMAL_SGIX"/>
+ <enum name="GL_LIGHT_ENV_MODE_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT0_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT1_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT2_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT3_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT4_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT5_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT6_SGIX"/>
+ <enum name="GL_FRAGMENT_LIGHT7_SGIX"/>
+ <command name="glFragmentColorMaterialSGIX"/>
+ <command name="glFragmentLightfSGIX"/>
+ <command name="glFragmentLightfvSGIX"/>
+ <command name="glFragmentLightiSGIX"/>
+ <command name="glFragmentLightivSGIX"/>
+ <command name="glFragmentLightModelfSGIX"/>
+ <command name="glFragmentLightModelfvSGIX"/>
+ <command name="glFragmentLightModeliSGIX"/>
+ <command name="glFragmentLightModelivSGIX"/>
+ <command name="glFragmentMaterialfSGIX"/>
+ <command name="glFragmentMaterialfvSGIX"/>
+ <command name="glFragmentMaterialiSGIX"/>
+ <command name="glFragmentMaterialivSGIX"/>
+ <command name="glGetFragmentLightfvSGIX"/>
+ <command name="glGetFragmentLightivSGIX"/>
+ <command name="glGetFragmentMaterialfvSGIX"/>
+ <command name="glGetFragmentMaterialivSGIX"/>
+ <command name="glLightEnviSGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_framezoom" supported="gl">
+ <require>
+ <enum name="GL_FRAMEZOOM_SGIX"/>
+ <enum name="GL_FRAMEZOOM_FACTOR_SGIX"/>
+ <enum name="GL_MAX_FRAMEZOOM_FACTOR_SGIX"/>
+ <command name="glFrameZoomSGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_igloo_interface" supported="gl">
+ <require>
+ <command name="glIglooInterfaceSGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_instruments" supported="gl">
+ <require>
+ <enum name="GL_INSTRUMENT_BUFFER_POINTER_SGIX"/>
+ <enum name="GL_INSTRUMENT_MEASUREMENTS_SGIX"/>
+ <command name="glGetInstrumentsSGIX"/>
+ <command name="glInstrumentsBufferSGIX"/>
+ <command name="glPollInstrumentsSGIX"/>
+ <command name="glReadInstrumentsSGIX"/>
+ <command name="glStartInstrumentsSGIX"/>
+ <command name="glStopInstrumentsSGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_interlace" supported="gl">
+ <require>
+ <enum name="GL_INTERLACE_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_ir_instrument1" supported="gl">
+ <require>
+ <enum name="GL_IR_INSTRUMENT1_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_list_priority" supported="gl">
+ <require>
+ <enum name="GL_LIST_PRIORITY_SGIX"/>
+ <command name="glGetListParameterfvSGIX"/>
+ <command name="glGetListParameterivSGIX"/>
+ <command name="glListParameterfSGIX"/>
+ <command name="glListParameterfvSGIX"/>
+ <command name="glListParameteriSGIX"/>
+ <command name="glListParameterivSGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_pixel_texture" supported="gl">
+ <require>
+ <enum name="GL_PIXEL_TEX_GEN_SGIX"/>
+ <enum name="GL_PIXEL_TEX_GEN_MODE_SGIX"/>
+ <command name="glPixelTexGenSGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_pixel_tiles" supported="gl">
+ <require>
+ <enum name="GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX"/>
+ <enum name="GL_PIXEL_TILE_CACHE_INCREMENT_SGIX"/>
+ <enum name="GL_PIXEL_TILE_WIDTH_SGIX"/>
+ <enum name="GL_PIXEL_TILE_HEIGHT_SGIX"/>
+ <enum name="GL_PIXEL_TILE_GRID_WIDTH_SGIX"/>
+ <enum name="GL_PIXEL_TILE_GRID_HEIGHT_SGIX"/>
+ <enum name="GL_PIXEL_TILE_GRID_DEPTH_SGIX"/>
+ <enum name="GL_PIXEL_TILE_CACHE_SIZE_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_polynomial_ffd" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_DEFORMATION_BIT_SGIX"/>
+ <enum name="GL_GEOMETRY_DEFORMATION_BIT_SGIX"/>
+ <enum name="GL_GEOMETRY_DEFORMATION_SGIX"/>
+ <enum name="GL_TEXTURE_DEFORMATION_SGIX"/>
+ <enum name="GL_DEFORMATIONS_MASK_SGIX"/>
+ <enum name="GL_MAX_DEFORMATION_ORDER_SGIX"/>
+ <command name="glDeformationMap3dSGIX"/>
+ <command name="glDeformationMap3fSGIX"/>
+ <command name="glDeformSGIX"/>
+ <command name="glLoadIdentityDeformationMapSGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_reference_plane" supported="gl">
+ <require>
+ <enum name="GL_REFERENCE_PLANE_SGIX"/>
+ <enum name="GL_REFERENCE_PLANE_EQUATION_SGIX"/>
+ <command name="glReferencePlaneSGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_resample" supported="gl">
+ <require>
+ <enum name="GL_PACK_RESAMPLE_SGIX"/>
+ <enum name="GL_UNPACK_RESAMPLE_SGIX"/>
+ <enum name="GL_RESAMPLE_REPLICATE_SGIX"/>
+ <enum name="GL_RESAMPLE_ZERO_FILL_SGIX"/>
+ <enum name="GL_RESAMPLE_DECIMATE_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_scalebias_hint" supported="gl">
+ <require>
+ <enum name="GL_SCALEBIAS_HINT_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_shadow" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_COMPARE_SGIX"/>
+ <enum name="GL_TEXTURE_COMPARE_OPERATOR_SGIX"/>
+ <enum name="GL_TEXTURE_LEQUAL_R_SGIX"/>
+ <enum name="GL_TEXTURE_GEQUAL_R_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_shadow_ambient" supported="gl">
+ <require>
+ <enum name="GL_SHADOW_AMBIENT_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_sprite" supported="gl">
+ <require>
+ <enum name="GL_SPRITE_SGIX"/>
+ <enum name="GL_SPRITE_MODE_SGIX"/>
+ <enum name="GL_SPRITE_AXIS_SGIX"/>
+ <enum name="GL_SPRITE_TRANSLATION_SGIX"/>
+ <enum name="GL_SPRITE_AXIAL_SGIX"/>
+ <enum name="GL_SPRITE_OBJECT_ALIGNED_SGIX"/>
+ <enum name="GL_SPRITE_EYE_ALIGNED_SGIX"/>
+ <command name="glSpriteParameterfSGIX"/>
+ <command name="glSpriteParameterfvSGIX"/>
+ <command name="glSpriteParameteriSGIX"/>
+ <command name="glSpriteParameterivSGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_subsample" supported="gl">
+ <require>
+ <enum name="GL_PACK_SUBSAMPLE_RATE_SGIX"/>
+ <enum name="GL_UNPACK_SUBSAMPLE_RATE_SGIX"/>
+ <enum name="GL_PIXEL_SUBSAMPLE_4444_SGIX"/>
+ <enum name="GL_PIXEL_SUBSAMPLE_2424_SGIX"/>
+ <enum name="GL_PIXEL_SUBSAMPLE_4242_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_tag_sample_buffer" supported="gl">
+ <require>
+ <command name="glTagSampleBufferSGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_texture_add_env" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_ENV_BIAS_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_texture_coordinate_clamp" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_MAX_CLAMP_S_SGIX"/>
+ <enum name="GL_TEXTURE_MAX_CLAMP_T_SGIX"/>
+ <enum name="GL_TEXTURE_MAX_CLAMP_R_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_texture_lod_bias" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_LOD_BIAS_S_SGIX"/>
+ <enum name="GL_TEXTURE_LOD_BIAS_T_SGIX"/>
+ <enum name="GL_TEXTURE_LOD_BIAS_R_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_texture_multi_buffer" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_MULTI_BUFFER_HINT_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_texture_scale_bias" supported="gl">
+ <require>
+ <enum name="GL_POST_TEXTURE_FILTER_BIAS_SGIX"/>
+ <enum name="GL_POST_TEXTURE_FILTER_SCALE_SGIX"/>
+ <enum name="GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX"/>
+ <enum name="GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_vertex_preclip" supported="gl">
+ <require>
+ <enum name="GL_VERTEX_PRECLIP_SGIX"/>
+ <enum name="GL_VERTEX_PRECLIP_HINT_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_ycrcb" supported="gl">
+ <require>
+ <enum name="GL_YCRCB_422_SGIX"/>
+ <enum name="GL_YCRCB_444_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_ycrcb_subsample" supported="gl">
+ <require>
+ </require>
+ </extension>
+ <extension name="GL_SGIX_ycrcba" supported="gl">
+ <require>
+ <enum name="GL_YCRCB_SGIX"/>
+ <enum name="GL_YCRCBA_SGIX"/>
+ </require>
+ </extension>
+ <extension name="GL_SGI_color_matrix" supported="gl">
+ <require>
+ <enum name="GL_COLOR_MATRIX_SGI"/>
+ <enum name="GL_COLOR_MATRIX_STACK_DEPTH_SGI"/>
+ <enum name="GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_RED_SCALE_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_RED_BIAS_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI"/>
+ </require>
+ </extension>
+ <extension name="GL_SGI_color_table" supported="gl">
+ <require>
+ <enum name="GL_COLOR_TABLE_SGI"/>
+ <enum name="GL_POST_CONVOLUTION_COLOR_TABLE_SGI"/>
+ <enum name="GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI"/>
+ <enum name="GL_PROXY_COLOR_TABLE_SGI"/>
+ <enum name="GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI"/>
+ <enum name="GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI"/>
+ <enum name="GL_COLOR_TABLE_SCALE_SGI"/>
+ <enum name="GL_COLOR_TABLE_BIAS_SGI"/>
+ <enum name="GL_COLOR_TABLE_FORMAT_SGI"/>
+ <enum name="GL_COLOR_TABLE_WIDTH_SGI"/>
+ <enum name="GL_COLOR_TABLE_RED_SIZE_SGI"/>
+ <enum name="GL_COLOR_TABLE_GREEN_SIZE_SGI"/>
+ <enum name="GL_COLOR_TABLE_BLUE_SIZE_SGI"/>
+ <enum name="GL_COLOR_TABLE_ALPHA_SIZE_SGI"/>
+ <enum name="GL_COLOR_TABLE_LUMINANCE_SIZE_SGI"/>
+ <enum name="GL_COLOR_TABLE_INTENSITY_SIZE_SGI"/>
+ <command name="glColorTableSGI"/>
+ <command name="glColorTableParameterfvSGI"/>
+ <command name="glColorTableParameterivSGI"/>
+ <command name="glCopyColorTableSGI"/>
+ <command name="glGetColorTableSGI"/>
+ <command name="glGetColorTableParameterfvSGI"/>
+ <command name="glGetColorTableParameterivSGI"/>
+ </require>
+ </extension>
+ <extension name="GL_SGI_texture_color_table" supported="gl">
+ <require>
+ <enum name="GL_TEXTURE_COLOR_TABLE_SGI"/>
+ <enum name="GL_PROXY_TEXTURE_COLOR_TABLE_SGI"/>
+ </require>
+ </extension>
+ <extension name="GL_SUNX_constant_data" supported="gl">
+ <require>
+ <enum name="GL_UNPACK_CONSTANT_DATA_SUNX"/>
+ <enum name="GL_TEXTURE_CONSTANT_DATA_SUNX"/>
+ <command name="glFinishTextureSUNX"/>
+ </require>
+ </extension>
+ <extension name="GL_SUN_convolution_border_modes" supported="gl">
+ <require>
+ <enum name="GL_WRAP_BORDER_SUN"/>
+ </require>
+ </extension>
+ <extension name="GL_SUN_global_alpha" supported="gl">
+ <require>
+ <enum name="GL_GLOBAL_ALPHA_SUN"/>
+ <enum name="GL_GLOBAL_ALPHA_FACTOR_SUN"/>
+ <command name="glGlobalAlphaFactorbSUN"/>
+ <command name="glGlobalAlphaFactorsSUN"/>
+ <command name="glGlobalAlphaFactoriSUN"/>
+ <command name="glGlobalAlphaFactorfSUN"/>
+ <command name="glGlobalAlphaFactordSUN"/>
+ <command name="glGlobalAlphaFactorubSUN"/>
+ <command name="glGlobalAlphaFactorusSUN"/>
+ <command name="glGlobalAlphaFactoruiSUN"/>
+ </require>
+ </extension>
+ <extension name="GL_SUN_mesh_array" supported="gl">
+ <require>
+ <enum name="GL_QUAD_MESH_SUN"/>
+ <enum name="GL_TRIANGLE_MESH_SUN"/>
+ <command name="glDrawMeshArraysSUN"/>
+ </require>
+ </extension>
+ <extension name="GL_SUN_slice_accum" supported="gl">
+ <require>
+ <enum name="GL_SLICE_ACCUM_SUN"/>
+ </require>
+ </extension>
+ <extension name="GL_SUN_triangle_list" supported="gl">
+ <require>
+ <enum name="GL_RESTART_SUN"/>
+ <enum name="GL_REPLACE_MIDDLE_SUN"/>
+ <enum name="GL_REPLACE_OLDEST_SUN"/>
+ <enum name="GL_TRIANGLE_LIST_SUN"/>
+ <enum name="GL_REPLACEMENT_CODE_SUN"/>
+ <enum name="GL_REPLACEMENT_CODE_ARRAY_SUN"/>
+ <enum name="GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN"/>
+ <enum name="GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN"/>
+ <enum name="GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN"/>
+ <enum name="GL_R1UI_V3F_SUN"/>
+ <enum name="GL_R1UI_C4UB_V3F_SUN"/>
+ <enum name="GL_R1UI_C3F_V3F_SUN"/>
+ <enum name="GL_R1UI_N3F_V3F_SUN"/>
+ <enum name="GL_R1UI_C4F_N3F_V3F_SUN"/>
+ <enum name="GL_R1UI_T2F_V3F_SUN"/>
+ <enum name="GL_R1UI_T2F_N3F_V3F_SUN"/>
+ <enum name="GL_R1UI_T2F_C4F_N3F_V3F_SUN"/>
+ <command name="glReplacementCodeuiSUN"/>
+ <command name="glReplacementCodeusSUN"/>
+ <command name="glReplacementCodeubSUN"/>
+ <command name="glReplacementCodeuivSUN"/>
+ <command name="glReplacementCodeusvSUN"/>
+ <command name="glReplacementCodeubvSUN"/>
+ <command name="glReplacementCodePointerSUN"/>
+ </require>
+ </extension>
+ <extension name="GL_SUN_vertex" supported="gl">
+ <require>
+ <command name="glColor4ubVertex2fSUN"/>
+ <command name="glColor4ubVertex2fvSUN"/>
+ <command name="glColor4ubVertex3fSUN"/>
+ <command name="glColor4ubVertex3fvSUN"/>
+ <command name="glColor3fVertex3fSUN"/>
+ <command name="glColor3fVertex3fvSUN"/>
+ <command name="glNormal3fVertex3fSUN"/>
+ <command name="glNormal3fVertex3fvSUN"/>
+ <command name="glColor4fNormal3fVertex3fSUN"/>
+ <command name="glColor4fNormal3fVertex3fvSUN"/>
+ <command name="glTexCoord2fVertex3fSUN"/>
+ <command name="glTexCoord2fVertex3fvSUN"/>
+ <command name="glTexCoord4fVertex4fSUN"/>
+ <command name="glTexCoord4fVertex4fvSUN"/>
+ <command name="glTexCoord2fColor4ubVertex3fSUN"/>
+ <command name="glTexCoord2fColor4ubVertex3fvSUN"/>
+ <command name="glTexCoord2fColor3fVertex3fSUN"/>
+ <command name="glTexCoord2fColor3fVertex3fvSUN"/>
+ <command name="glTexCoord2fNormal3fVertex3fSUN"/>
+ <command name="glTexCoord2fNormal3fVertex3fvSUN"/>
+ <command name="glTexCoord2fColor4fNormal3fVertex3fSUN"/>
+ <command name="glTexCoord2fColor4fNormal3fVertex3fvSUN"/>
+ <command name="glTexCoord4fColor4fNormal3fVertex4fSUN"/>
+ <command name="glTexCoord4fColor4fNormal3fVertex4fvSUN"/>
+ <command name="glReplacementCodeuiVertex3fSUN"/>
+ <command name="glReplacementCodeuiVertex3fvSUN"/>
+ <command name="glReplacementCodeuiColor4ubVertex3fSUN"/>
+ <command name="glReplacementCodeuiColor4ubVertex3fvSUN"/>
+ <command name="glReplacementCodeuiColor3fVertex3fSUN"/>
+ <command name="glReplacementCodeuiColor3fVertex3fvSUN"/>
+ <command name="glReplacementCodeuiNormal3fVertex3fSUN"/>
+ <command name="glReplacementCodeuiNormal3fVertex3fvSUN"/>
+ <command name="glReplacementCodeuiColor4fNormal3fVertex3fSUN"/>
+ <command name="glReplacementCodeuiColor4fNormal3fVertex3fvSUN"/>
+ <command name="glReplacementCodeuiTexCoord2fVertex3fSUN"/>
+ <command name="glReplacementCodeuiTexCoord2fVertex3fvSUN"/>
+ <command name="glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN"/>
+ <command name="glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN"/>
+ <command name="glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN"/>
+ <command name="glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN"/>
+ </require>
+ </extension>
+ <extension name="GL_VIV_shader_binary" supported="gles2">
+ <require>
+ <enum name="GL_SHADER_BINARY_VIV"/>
+ </require>
+ </extension>
+ <extension name="GL_WIN_phong_shading" supported="gl">
+ <require>
+ <enum name="GL_PHONG_WIN"/>
+ <enum name="GL_PHONG_HINT_WIN"/>
+ </require>
+ </extension>
+ <extension name="GL_WIN_specular_fog" supported="gl">
+ <require>
+ <enum name="GL_FOG_SPECULAR_TEXTURE_WIN"/>
+ </require>
+ </extension>
+ </extensions>
+</registry>
diff --git a/xorg-server/hw/xwin/glx/glwindows.h b/xorg-server/hw/xwin/glx/glwindows.h
index ec1d1f51b..42adc5b60 100644
--- a/xorg-server/hw/xwin/glx/glwindows.h
+++ b/xorg-server/hw/xwin/glx/glwindows.h
@@ -49,9 +49,15 @@ void glAddSwapHintRectWINWrapperNonstatic(GLint x, GLint y, GLsizei width,
GLsizei height);
void glWinSetupDispatchTable(void);
-#if 1
+#ifdef _DEBUG
+#ifdef _MSC_VER
+#define GLWIN_TRACE_MSG(msg, ...) if (glxWinDebugSettings.enableTrace) ErrorF(msg " [%s:%d]\n" , __VA_ARGS__ , __FUNCTION__, __LINE__ )
+#define GLWIN_DEBUG_MSG(msg, ...) if (glxWinDebugSettings.enableDebug) ErrorF(msg " [%s:%d]\n" , __VA_ARGS__ , __FUNCTION__, __LINE__ )
+#else
#define GLWIN_TRACE_MSG(msg, args...) if (glxWinDebugSettings.enableTrace) ErrorF(msg " [%s:%d]\n" , ##args , __FUNCTION__, __LINE__ )
#define GLWIN_DEBUG_MSG(msg, args...) if (glxWinDebugSettings.enableDebug) ErrorF(msg " [%s:%d]\n" , ##args , __FUNCTION__, __LINE__ )
+#endif
+
#else
#define GLWIN_TRACE_MSG(a, ...)
#define GLWIN_DEBUG_MSG(a, ...)
diff --git a/xorg-server/hw/xwin/glx/glwrap.c b/xorg-server/hw/xwin/glx/glwrap.c
index 73cff3cc1..9733e7526 100644
--- a/xorg-server/hw/xwin/glx/glwrap.c
+++ b/xorg-server/hw/xwin/glx/glwrap.c
@@ -39,12 +39,15 @@
#include <X11/Xwindows.h>
#include <GL/gl.h>
#include <GL/glext.h>
+#include <glx/glheader.h>
#include <glx/glxserver.h>
#include <glx/glxext.h>
#include <glx/glapi.h>
#include <glx/dispatch.h>
#include <glwindows.h>
+#include <winmsg.h>
+#ifdef _DEBUG
static unsigned int glWinIndirectProcCalls = 0;
static unsigned int glWinDirectProcCalls = 0;
@@ -65,6 +68,7 @@ glWinCallDelta(void)
glWinIndirectProcCallsLast = glWinIndirectProcCalls;
}
}
+#endif
static PROC
glWinResolveHelper(PROC * cache, const char *symbol)
@@ -75,11 +79,11 @@ glWinResolveHelper(PROC * cache, const char *symbol)
if ((*cache) == NULL) {
proc = wglGetProcAddress(symbol);
if (proc == NULL) {
- ErrorF("glwrap: Can't resolve \"%s\"\n", symbol);
+ winDebug("glwrap: Can't resolve \"%s\"\n", symbol);
(*cache) = (PROC) - 1;
}
else {
- ErrorF("glwrap: Resolved \"%s\"\n", symbol);
+ winDebug("glwrap: Resolved \"%s\"\n", symbol);
(*cache) = proc;
}
}
@@ -95,14 +99,20 @@ glWinResolveHelper(PROC * cache, const char *symbol)
return proc;
}
+#ifdef _DEBUG
+#define INCPROCCALLS glWinIndirectProcCalls++;
+#else
+#define INCPROCCALLS
+#endif
+
#define RESOLVE_RET(proctype, symbol, retval) \
static PROC cache = NULL; \
- __stdcall proctype proc = (proctype)glWinResolveHelper(&cache, symbol); \
+ proctype proc = (proctype)glWinResolveHelper(&cache, symbol); \
if (proc == NULL) { \
__glXErrorCallBack(0); \
return retval; \
} \
- glWinIndirectProcCalls++;
+ INCPROCCALLS
#define RESOLVE(proctype, symbol) RESOLVE_RET(proctype, symbol,)
diff --git a/xorg-server/hw/xwin/glx/indirect.c b/xorg-server/hw/xwin/glx/indirect.c
index 14a47110a..082c5ad3e 100644
--- a/xorg-server/hw/xwin/glx/indirect.c
+++ b/xorg-server/hw/xwin/glx/indirect.c
@@ -79,13 +79,18 @@
#endif
#include "glwindows.h"
+#include <glx/glheader.h>
#include <glx/glxserver.h>
#include <glx/glxutil.h>
#include <glx/extension_string.h>
#include <GL/glxtokens.h>
+#include <glx/glapitable.h>
+#include <glx/glapi.h>
#include <winpriv.h>
#include <wgl_ext_api.h>
+#include "win.h"
+#include <winmsg.h>
#include <winglobals.h>
#define NUM_ELEMENTS(x) (sizeof(x)/ sizeof(x[1]))
@@ -114,14 +119,17 @@ typedef struct __GLXWinConfig GLXWinConfig;
struct __GLXWinContext {
__GLXcontext base;
HGLRC ctx; /* Windows GL Context */
+ HDC hDC; /* Windows device context */
+ HDC hreadDC; /* Windows device read context */
__GLXWinContext *shareContext; /* Context with which we will share display lists and textures */
HWND hwnd; /* For detecting when HWND has changed */
+ HWND hreadwnd;
+ struct _glapi_table *Dispatch;
};
struct __GLXWinDrawable {
__GLXdrawable base;
__GLXWinContext *drawContext;
- __GLXWinContext *readContext;
/* If this drawable is GLX_DRAWABLE_PBUFFER */
HPBUFFERARB hPbuffer;
@@ -147,7 +155,9 @@ struct __GLXWinScreen {
/* wrapped screen functions */
RealizeWindowProcPtr RealizeWindow;
UnrealizeWindowProcPtr UnrealizeWindow;
+ DestroyWindowProcPtr DestroyWindow;
CopyWindowProcPtr CopyWindow;
+ PositionWindowProcPtr PositionWindow;
};
struct __GLXWinConfig {
@@ -160,12 +170,33 @@ struct __GLXWinConfig {
* Various debug helpers
*/
-#define GLWIN_DEBUG_HWND(hwnd) \
- if (glxWinDebugSettings.dumpHWND) { \
- char buffer[1024]; \
- if (GetWindowText(hwnd, buffer, sizeof(buffer))==0) *buffer=0; \
- GLWIN_DEBUG_MSG("Got HWND %p for window '%s'", hwnd, buffer); \
+#ifdef _DEBUG
+void GLWIN_DEBUG_HWND(HWND hwnd)
+{
+ if (glxWinDebugSettings.dumpHWND) {
+ char buffer[1024];
+ RECT Rect;
+ HDC hDc=GetDC(hwnd);
+
+ if (GetWindowText(hwnd, buffer, sizeof(buffer))==0) *buffer=0;
+ GetWindowRect(hwnd,&Rect);
+
+ GLWIN_DEBUG_MSG("Got HWND %p (hdc %p) for window '%s' (%d,%d,%d,%d)", hwnd, hDc, buffer, Rect.left, Rect.top, Rect.right, Rect.bottom);
+ ReleaseDC(hwnd,hDc);
}
+}
+
+void GLWIN_HDC_DEBUG_MSG(const char *Message, HDC hDc, HWND hwnd)
+{
+ char buffer[1024];
+ RECT Rect;
+
+ if (GetWindowText(hwnd, buffer, sizeof(buffer))==0) *buffer=0;
+ GetWindowRect(hwnd,&Rect);
+
+ GLWIN_DEBUG_MSG("Got HDC %p (hwnd %p) for window '%s' (%d,%d,%d,%d)", hDc, hwnd, buffer, Rect.left, Rect.top, Rect.right, Rect.bottom);
+
+}
glxWinDebugSettingsRec glxWinDebugSettings = { 0, 0, 0, 0, 0, 0 };
@@ -213,6 +244,7 @@ glxWinInitDebugSettings(void)
glxWinDebugSettings.enableWGLcallTrace = 1;
}
}
+#endif
static
const char *
@@ -239,6 +271,8 @@ glxWinErrorMessage(void)
static void pfdOut(const PIXELFORMATDESCRIPTOR * pfd);
+#ifdef _DEBUG
+
#define DUMP_PFD_FLAG(flag) \
if (pfd->dwFlags & flag) { \
ErrorF("%s%s", pipesym, #flag); \
@@ -394,6 +428,7 @@ fbConfigsDump(unsigned int n, __GLXconfig * c)
c = c->next;
}
}
+#endif
/* ---------------------------------------------------------------------- */
/*
@@ -415,11 +450,13 @@ static __GLXdrawable *glxWinCreateDrawable(ClientPtr client,
static Bool glxWinRealizeWindow(WindowPtr pWin);
static Bool glxWinUnrealizeWindow(WindowPtr pWin);
+static Bool glxWinDestroyWindow(WindowPtr pWin);
static void glxWinCopyWindow(WindowPtr pWindow, DDXPointRec ptOldOrg,
RegionPtr prgnSrc);
+static Bool glxWinPositionWindow(WindowPtr pWindow, int x, int y);
static HDC glxWinMakeDC(__GLXWinContext * gc, __GLXWinDrawable * draw,
- HDC * hdc, HWND * hwnd);
+ HWND * hwnd);
static void glxWinReleaseDC(HWND hwnd, HDC hdc, __GLXWinDrawable * draw);
static void glxWinCreateConfigs(HDC dc, glxWinScreen * screen);
@@ -445,7 +482,8 @@ __GLXprovider __glXWGLProvider = {
void
glxWinPushNativeProvider(void)
{
- GlxPushProvider(&__glXWGLProvider);
+ if (g_fNativeGl)
+ GlxPushProvider(&__glXWGLProvider);
}
/* ---------------------------------------------------------------------- */
@@ -473,6 +511,15 @@ glxWinScreenSwapInterval(__GLXdrawable * drawable, int interval)
return ret;
}
+static LRESULT CALLBACK GlxWindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+ if (uMsg== WM_NCHITTEST) {
+ return HTTRANSPARENT;
+ }
+ else
+ return DefWindowProc(hwnd, uMsg, wParam, lParam);
+}
+
/*
Report the extensions split and formatted to avoid overflowing a line
*/
@@ -491,7 +538,8 @@ glxLogExtensions(const char *prefix, const char *extensions)
strl = strtok(str, " ");
if (strl == NULL)
strl = "";
- ErrorF("%s%s", prefix, strl);
+ winDebug("%s%s", prefix, strl);
+
length = strlen(prefix) + strlen(strl);
while (1) {
@@ -500,20 +548,20 @@ glxLogExtensions(const char *prefix, const char *extensions)
break;
if (length + strlen(strl) + 1 > 120) {
- ErrorF("\n");
- ErrorF("%s", prefix);
+ winDebug("\n");
+ winDebug("%s", prefix);
length = strlen(prefix);
}
else {
- ErrorF(" ");
+ winDebug(" ");
length++;
}
- ErrorF("%s", strl);
+ winDebug("%s", strl);
length = length + strlen(strl);
}
- ErrorF("\n");
+ winDebug("\n");
free(str);
}
@@ -532,7 +580,9 @@ glxWinScreenProbe(ScreenPtr pScreen)
GLWIN_DEBUG_MSG("glxWinScreenProbe");
+#ifdef _DEBUG
glxWinInitDebugSettings();
+#endif
if (pScreen == NULL)
return NULL;
@@ -551,24 +601,23 @@ glxWinScreenProbe(ScreenPtr pScreen)
/* Dump out some useful information about the native renderer */
// create window class
-#define WIN_GL_TEST_WINDOW_CLASS "XWinGLTest"
{
static wATOM glTestWndClass = 0;
if (glTestWndClass == 0) {
WNDCLASSEX wc;
-
+ glTestWndClass=1;
wc.cbSize = sizeof(WNDCLASSEX);
- wc.style = CS_HREDRAW | CS_VREDRAW;
- wc.lpfnWndProc = DefWindowProc;
+ wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC ;
+ wc.lpfnWndProc = GlxWindowProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
- wc.hInstance = GetModuleHandle(NULL);
+ wc.hInstance = g_hInstance;
wc.hIcon = 0;
wc.hCursor = 0;
- wc.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
+ wc.hbrBackground = 0;
wc.lpszMenuName = NULL;
- wc.lpszClassName = WIN_GL_TEST_WINDOW_CLASS;
+ wc.lpszClassName = WIN_GL_WINDOW_CLASS;
wc.hIconSm = 0;
RegisterClassEx(&wc);
}
@@ -576,9 +625,9 @@ glxWinScreenProbe(ScreenPtr pScreen)
// create an invisible window for a scratch DC
hwnd = CreateWindowExA(0,
- WIN_GL_TEST_WINDOW_CLASS,
+ WIN_GL_WINDOW_CLASS,
"XWin GL Renderer Capabilities Test Window",
- 0, 0, 0, 0, 0, NULL, NULL, GetModuleHandle(NULL),
+ 0, 0, 0, 0, 0, NULL, NULL, g_hInstance,
NULL);
if (hwnd == NULL)
LogMessage(X_ERROR,
@@ -589,16 +638,19 @@ glxWinScreenProbe(ScreenPtr pScreen)
// we must set a pixel format before we can create a context, just use the first one...
SetPixelFormat(hdc, 1, NULL);
hglrc = wglCreateContext(hdc);
- wglMakeCurrent(hdc, hglrc);
+ if (!wglMakeCurrent(hdc, hglrc)) {
+ DWORD ErrorCode=GetLastError();
+ ErrorF("wglMakeCurrent error: %x dc %p ctx %p\n", ErrorCode,hdc,hglrc);
+ }
// initialize wgl extension proc pointers (don't call them before here...)
// (but we need to have a current context for them to be resolvable)
wglResolveExtensionProcs();
- ErrorF("GL_VERSION: %s\n", glGetStringWrapperNonstatic(GL_VERSION));
- ErrorF("GL_VENDOR: %s\n", glGetStringWrapperNonstatic(GL_VENDOR));
+ winDebug("GL_VERSION: %s\n", glGetStringWrapperNonstatic(GL_VERSION));
+ winDebug("GL_VENDOR: %s\n", glGetStringWrapperNonstatic(GL_VENDOR));
gl_renderer = (const char *) glGetStringWrapperNonstatic(GL_RENDERER);
- ErrorF("GL_RENDERER: %s\n", gl_renderer);
+ winDebug("GL_RENDERER: %s\n", gl_renderer);
gl_extensions = (const char *) glGetStringWrapperNonstatic(GL_EXTENSIONS);
wgl_extensions = wglGetExtensionsStringARBWrapper(hdc);
if (!wgl_extensions)
@@ -775,8 +827,10 @@ glxWinScreenProbe(ScreenPtr pScreen)
ReleaseDC(hwnd, hdc);
DestroyWindow(hwnd);
+#ifdef _DEBUG
// dump out fbConfigs now fbConfigIds and visualIDs have been assigned
fbConfigsDump(screen->base.numFBConfigs, screen->base.fbconfigs);
+#endif
/* Wrap RealizeWindow, UnrealizeWindow and CopyWindow on this screen */
screen->RealizeWindow = pScreen->RealizeWindow;
@@ -785,6 +839,10 @@ glxWinScreenProbe(ScreenPtr pScreen)
pScreen->UnrealizeWindow = glxWinUnrealizeWindow;
screen->CopyWindow = pScreen->CopyWindow;
pScreen->CopyWindow = glxWinCopyWindow;
+ screen->PositionWindow = pScreen->PositionWindow;
+ pScreen->PositionWindow = glxWinPositionWindow;
+ screen->DestroyWindow = pScreen->DestroyWindow;
+ pScreen->DestroyWindow = glxWinDestroyWindow;
return &screen->base;
}
@@ -800,6 +858,7 @@ glxWinRealizeWindow(WindowPtr pWin)
Bool result;
ScreenPtr pScreen = pWin->drawable.pScreen;
glxWinScreen *screenPriv = (glxWinScreen *) glxGetScreen(pScreen);
+ winWindowPriv(pWin);
GLWIN_DEBUG_MSG("glxWinRealizeWindow");
@@ -807,7 +866,11 @@ glxWinRealizeWindow(WindowPtr pWin)
pScreen->RealizeWindow = screenPriv->RealizeWindow;
result = pScreen->RealizeWindow(pWin);
pScreen->RealizeWindow = glxWinRealizeWindow;
-
+
+ // Check if ze need to move the window\n
+ if (pWinPriv->fWglUsed && pWinPriv->hWnd) {
+ ShowWindow(pWinPriv->hWnd,SW_SHOWNOACTIVATE);
+ }
return result;
}
@@ -843,17 +906,88 @@ glxWinCopyWindow(WindowPtr pWindow, DDXPointRec ptOldOrg, RegionPtr prgnSrc)
}
static Bool
+glxWinPositionWindow(WindowPtr pWin, int x, int y)
+{
+ Bool result;
+ ScreenPtr pScreen = pWin->drawable.pScreen;
+ glxWinScreen *screenPriv = (glxWinScreen *) glxGetScreen(pScreen);
+ winWindowPriv(pWin);
+
+ pScreen->PositionWindow = screenPriv->PositionWindow;
+ result = pScreen->PositionWindow(pWin, x, y);
+ pScreen->PositionWindow = glxWinPositionWindow;
+
+ if (pWinPriv->fWglUsed && pWinPriv->hWnd)
+ {
+ MoveWindow(pWinPriv->hWnd,
+ pWin->drawable.x,
+ pWin->drawable.y,
+ pWin->drawable.width,
+ pWin->drawable.height,
+ FALSE);
+ winDebug("Move window %x, %x, %d, %d, %d, %d\n",pWinPriv->hWnd,GetParent(pWinPriv->hWnd), pWin->drawable.x, pWin->drawable.y, pWin->drawable.width, pWin->drawable.height);
+ }
+ return result;
+}
+
+
+static Bool
glxWinUnrealizeWindow(WindowPtr pWin)
{
Bool result;
ScreenPtr pScreen = pWin->drawable.pScreen;
glxWinScreen *screenPriv = (glxWinScreen *) glxGetScreen(pScreen);
+ winWindowPriv(pWin);
GLWIN_DEBUG_MSG("glxWinUnrealizeWindow");
- pScreen->UnrealizeWindow = screenPriv->UnrealizeWindow;
- result = pScreen->UnrealizeWindow(pWin);
- pScreen->UnrealizeWindow = glxWinUnrealizeWindow;
+ if (pWinPriv->fWglUsed && pWinPriv->hWnd)
+ {
+ ShowWindow(pWinPriv->hWnd,SW_HIDE);
+ result = TRUE;
+ }
+ else
+ {
+ pScreen->UnrealizeWindow = screenPriv->UnrealizeWindow;
+ result = pScreen->UnrealizeWindow(pWin);
+ pScreen->UnrealizeWindow = glxWinUnrealizeWindow;
+ }
+
+
+ return result;
+}
+
+static Bool
+glxWinDestroyWindow(WindowPtr pWin)
+{
+ Bool result;
+ ScreenPtr pScreen = pWin->drawable.pScreen;
+ glxWinScreen *screenPriv = (glxWinScreen *)glxGetScreen(pScreen);
+ __GLXWinDrawable *pGlxDraw;
+ winWindowPriv(pWin);
+
+ GLWIN_DEBUG_MSG("glxWinDestroyWindow");
+
+ dixLookupResourceByType((pointer) &pGlxDraw, pWin->drawable.id, __glXDrawableRes, NullClient, DixUnknownAccess);
+
+ if (pGlxDraw && pGlxDraw->drawContext)
+ {
+ if (pGlxDraw->drawContext->hwnd!=pWinPriv->hWnd)
+ ErrorF("Wrong assumption\n");
+ glxWinReleaseDC(pGlxDraw->drawContext->hwnd, pGlxDraw->drawContext->hDC, pGlxDraw);
+ pGlxDraw->drawContext->hDC=NULL;
+ pGlxDraw->drawContext->hwnd=NULL;
+ }
+ if (pWinPriv->fWglUsed && pWinPriv->hWnd)
+ {
+ DestroyWindow(pWinPriv->hWnd);
+ pWinPriv->hWnd=NULL;
+ pWinPriv->fWglUsed=0;
+ }
+
+ pScreen->DestroyWindow = screenPriv->DestroyWindow;
+ result = pScreen->DestroyWindow(pWin);
+ pScreen->DestroyWindow = glxWinDestroyWindow;
return result;
}
@@ -866,8 +1000,6 @@ glxWinUnrealizeWindow(WindowPtr pWin)
static GLboolean
glxWinDrawableSwapBuffers(ClientPtr client, __GLXdrawable * base)
{
- HDC dc;
- HWND hwnd;
BOOL ret;
__GLXWinDrawable *draw = (__GLXWinDrawable *) base;
@@ -888,13 +1020,7 @@ glxWinDrawableSwapBuffers(ClientPtr client, __GLXdrawable * base)
assert((draw->drawContext->base.drawPriv == NULL) ||
(draw->drawContext->base.drawPriv == base));
- dc = glxWinMakeDC(draw->drawContext, draw, &dc, &hwnd);
- if (dc == NULL)
- return GL_FALSE;
-
- ret = wglSwapLayerBuffers(dc, WGL_SWAP_MAIN_PLANE);
-
- glxWinReleaseDC(hwnd, dc, draw);
+ ret = SwapBuffers(draw->drawContext->hDC);
if (!ret) {
ErrorF("wglSwapBuffers failed: %s\n", glxWinErrorMessage());
@@ -948,6 +1074,7 @@ glxWinDrawableDestroy(__GLXdrawable * base)
}
((PixmapPtr) glxPriv->base.pDraw)->devPrivate.ptr = glxPriv->pOldBits;
+ glxPriv->base.pDraw->pScreen->DestroyPixmap((PixmapPtr)glxPriv->base.pDraw); /* Decrement reference count since we do not use it any more */
}
GLWIN_DEBUG_MSG("glxWinDestroyDrawable");
@@ -962,13 +1089,11 @@ glxWinCreateDrawable(ClientPtr client,
{
__GLXWinDrawable *glxPriv;
- glxPriv = malloc(sizeof *glxPriv);
+ glxPriv = calloc(1, sizeof *glxPriv);
if (glxPriv == NULL)
return NULL;
- memset(glxPriv, 0, sizeof *glxPriv);
-
if (!__glXDrawableInit
(&glxPriv->base, screen, pDraw, type, glxDrawId, conf)) {
free(glxPriv);
@@ -1038,28 +1163,25 @@ glxWinSetPixelFormat(__GLXWinContext * gc, HDC hdc, int bppOverride,
__GLXconfig *config = gc->base.config;
GLXWinConfig *winConfig = (GLXWinConfig *) config;
- GLWIN_DEBUG_MSG("glxWinSetPixelFormat: pixelFormatIndex %d",
- winConfig->pixelFormatIndex);
- /*
- Normally, we can just use the the pixelFormatIndex corresponding
- to the fbconfig which has been specified by the client
- */
-
- if (!
- ((bppOverride &&
- (bppOverride !=
- (config->redBits + config->greenBits + config->blueBits)))
- || ((config->drawableType & drawableTypeOverride) == 0))) {
- if (!SetPixelFormat(hdc, winConfig->pixelFormatIndex, NULL)) {
- ErrorF("SetPixelFormat error: %s\n", glxWinErrorMessage());
- return FALSE;
+ WindowPtr pWin;
+ __GLXWinDrawable *drawPriv = (__GLXWinDrawable *)gc->base.drawPriv;
+ pWin = (WindowPtr) drawPriv->base.pDraw;
+ {
+ winWindowPriv(pWin);
+ if (pWinPriv->OpenGlWindow)
+ {
+ ErrorF("Not Setting pixel format to %d on hdc %x for window %x (not allowed on windows)\n",winConfig->pixelFormatIndex,hdc,pWinPriv->hWnd);
+ return TRUE; /* Pixel format is already set on this window so it cannot be changed anymore */
}
-
- return TRUE;
}
+ GLWIN_DEBUG_MSG("glxWinSetPixelFormat: pixelFormatIndex %d", winConfig->pixelFormatIndex);
/*
+ Normally, we can just use the the pixelFormatIndex corresponding
+ to the fbconfig which has been specified by the client
+ */
+ /*
However, in certain special cases this pixel format will be incompatible with the
use we are going to put it to, so we need to re-evaluate the pixel format to use:
@@ -1091,8 +1213,10 @@ glxWinSetPixelFormat(__GLXWinContext * gc, HDC hdc, int bppOverride,
return FALSE;
}
+#ifdef _DEBUG
if (glxWinDebugSettings.dumpPFD)
pfdOut(&pfd);
+#endif
if (bppOverride) {
GLWIN_DEBUG_MSG("glxWinSetPixelFormat: Forcing bpp from %d to %d\n",
@@ -1112,6 +1236,7 @@ glxWinSetPixelFormat(__GLXWinContext * gc, HDC hdc, int bppOverride,
("ChoosePixelFormat: chose pixelFormatIndex %d (rather than %d as originally planned)\n",
pixelFormat, winConfig->pixelFormatIndex);
+ ErrorF("Setting pixel format 2 to %d on hdc %x\n",pixelFormat,hdc);
if (!SetPixelFormat(hdc, pixelFormat, &pfd)) {
ErrorF("SetPixelFormat error: %s\n", glxWinErrorMessage());
return FALSE;
@@ -1121,31 +1246,58 @@ glxWinSetPixelFormat(__GLXWinContext * gc, HDC hdc, int bppOverride,
int pixelFormat =
fbConfigToPixelFormatIndex(hdc, gc->base.config,
drawableTypeOverride, winScreen);
- if (pixelFormat == 0) {
- ErrorF("wglChoosePixelFormat error: %s\n", glxWinErrorMessage());
- return FALSE;
- }
+ if (pixelFormat != 0) {
+ GLWIN_DEBUG_MSG("wglChoosePixelFormat: chose pixelFormatIndex %d", pixelFormat);
- GLWIN_DEBUG_MSG("wglChoosePixelFormat: chose pixelFormatIndex %d",
- pixelFormat);
- ErrorF
- ("wglChoosePixelFormat: chose pixelFormatIndex %d (rather than %d as originally planned)\n",
- pixelFormat, winConfig->pixelFormatIndex);
-
- if (!SetPixelFormat(hdc, pixelFormat, NULL)) {
- ErrorF("SetPixelFormat error: %s\n", glxWinErrorMessage());
- return FALSE;
+ ErrorF("Setting pixel format 3 to %d on hdc %x\n",pixelFormat,hdc);
+ if (!SetPixelFormat(hdc, pixelFormat, NULL)) {
+ ErrorF("SetPixelFormat error: %s\n", glxWinErrorMessage());
+ return FALSE;
+ }
+ return TRUE;
+ }
+ else {
+ /* There was an error choose some default for the moment */
+ PIXELFORMATDESCRIPTOR pfd = {
+ sizeof(PIXELFORMATDESCRIPTOR), // size of this pfd
+ 1, // version number
+ PFD_DRAW_TO_WINDOW | // support window
+ PFD_SUPPORT_OPENGL | // support OpenGL
+ PFD_DOUBLEBUFFER, // double buffered
+ PFD_TYPE_RGBA, // RGBA type
+ 24, // 24-bit color depth
+ 0, 0, 0, 0, 0, 0, // color bits ignored
+ 0, // no alpha buffer
+ 0, // shift bit ignored
+ 0, // no accumulation buffer
+ 0, 0, 0, 0, // accum bits ignored
+ 32, // 32-bit z-buffer
+ 0, // no stencil buffer
+ 0, // no auxiliary buffer
+ PFD_MAIN_PLANE, // main layer
+ 0, // reserved
+ 0, 0, 0 // layer masks ignored
+ };
+ int iPixelFormat;
+
+ // get the best available match of pixel format for the device context
+ iPixelFormat = ChoosePixelFormat(hdc, &pfd);
+
+ ErrorF("Setting pixel format 4 to %d on hdc %x\n",iPixelFormat,hdc);
+ // make that the pixel format of the device context
+ if (!SetPixelFormat(hdc, iPixelFormat, &pfd)) {
+ ErrorF("SetPixelFormat error: %s\n", glxWinErrorMessage());
+ return FALSE;
+ }
}
}
-
return TRUE;
}
static HDC
-glxWinMakeDC(__GLXWinContext * gc, __GLXWinDrawable * draw, HDC * hdc,
- HWND * hwnd)
+glxWinMakeDC(__GLXWinContext *gc, __GLXWinDrawable *draw, HWND *hwnd)
{
- *hdc = NULL;
+ HDC hdc = NULL;
*hwnd = NULL;
if (draw == NULL) {
@@ -1172,45 +1324,52 @@ glxWinMakeDC(__GLXWinContext * gc, __GLXWinDrawable * draw, HDC * hdc,
return NULL;
}
- *hdc = GetDC(*hwnd);
-
- if (*hdc == NULL)
- ErrorF("GetDC error: %s\n", glxWinErrorMessage());
+ if (!gc->hDC) {
+ winWindowPriv(pWin);
- /* Check if the hwnd has changed... */
- if (*hwnd != gc->hwnd) {
- if (glxWinDebugSettings.enableTrace)
- GLWIN_DEBUG_HWND(*hwnd);
+ hdc = GetDC(*hwnd);
- GLWIN_TRACE_MSG
- ("for context %p (native ctx %p), hWnd changed from %p to %p",
- gc, gc->ctx, gc->hwnd, *hwnd);
- gc->hwnd = *hwnd;
+ if (hdc == NULL)
+ ErrorF("GetDC error: %s: hwnd %x, gc %p, gc->ctx %p ,gc->hwnd %p\n", glxWinErrorMessage(), *hwnd, gc, gc->ctx, gc->hwnd);
- /* We must select a pixelformat, but SetPixelFormat can only be called once for a window... */
- if (!glxWinSetPixelFormat(gc, *hdc, 0, GLX_WINDOW_BIT)) {
- ErrorF("glxWinSetPixelFormat error: %s\n",
- glxWinErrorMessage());
- ReleaseDC(*hwnd, *hdc);
- *hdc = NULL;
- return NULL;
- }
+ glxWinSetPixelFormat(gc, hdc, 0, GLX_WINDOW_BIT);
+ pWinPriv->OpenGlWindow=TRUE; /* Identify it as an opengl window, also used to check if the pixel format is already set */
+ gc->ctx = wglCreateContext(hdc);
}
+
+#ifdef _DEBUG
+ if (glxWinDebugSettings.enableTrace)
+ GLWIN_DEBUG_HWND(*hwnd);
+
+ GLWIN_TRACE_MSG
+ ("for context %p (native ctx %p), hWnd changed from %p to %p",
+ gc, gc->ctx, gc->hwnd, *hwnd);
+#endif
+ if (gc->hwnd!=*hwnd)
+ ErrorF("Window changed handle from %x to %x\n", gc->hwnd, *hwnd);
+
+ gc->hwnd = *hwnd;
}
break;
case GLX_DRAWABLE_PBUFFER:
{
- *hdc = wglGetPbufferDCARBWrapper(draw->hPbuffer);
+ hdc = wglGetPbufferDCARBWrapper(draw->hPbuffer);
- if (*hdc == NULL)
+ if (hdc == NULL)
ErrorF("GetDC (pbuffer) error: %s\n", glxWinErrorMessage());
+
+ gc->ctx = wglCreateContext(hdc);
}
break;
case GLX_DRAWABLE_PIXMAP:
{
- *hdc = draw->dibDC;
+ hdc = draw->dibDC;
+#ifdef _DEBUG
+ if (glxWinDebugSettings.dumpDC)
+ GLWIN_DEBUG_MSG("Got PIXMAP HDC %p for window %p", hdc, *hwnd);
+#endif
}
break;
@@ -1221,10 +1380,12 @@ glxWinMakeDC(__GLXWinContext * gc, __GLXWinDrawable * draw, HDC * hdc,
}
}
+#ifdef _DEBUG
if (glxWinDebugSettings.dumpDC)
- GLWIN_DEBUG_MSG("Got HDC %p", *hdc);
+ GLWIN_HDC_DEBUG_MSG("Got HDC %p for window %p", hdc, *hwnd);
+#endif
- return *hdc;
+ return hdc;
}
static void
@@ -1267,7 +1428,6 @@ glxWinReleaseDC(HWND hwnd, HDC hdc, __GLXWinDrawable * draw)
static void
glxWinDeferredCreateContext(__GLXWinContext * gc, __GLXWinDrawable * draw)
{
- HDC dc;
HWND hwnd;
GLWIN_DEBUG_MSG
@@ -1300,13 +1460,16 @@ glxWinDeferredCreateContext(__GLXWinContext * gc, __GLXWinDrawable * draw)
case GLX_DRAWABLE_PBUFFER:
{
+ WindowPtr pWin = (WindowPtr) draw->base.pDraw;
if (draw->hPbuffer == NULL) {
__GLXscreen *screen;
glxWinScreen *winScreen;
int pixelFormat;
// XXX: which DC are supposed to use???
- HDC screenDC = GetDC(NULL);
+ ScreenPtr pScreen = pWin->drawable.pScreen;
+ winPrivScreenPtr pWinScreen = winGetScreenPriv(pScreen);
+ HDC screenDC=pWinScreen->hdcScreen;
if (!(gc->base.config->drawableType & GLX_PBUFFER_BIT)) {
ErrorF
@@ -1318,7 +1481,7 @@ glxWinDeferredCreateContext(__GLXWinContext * gc, __GLXWinDrawable * draw)
pixelFormat =
fbConfigToPixelFormatIndex(screenDC, gc->base.config,
- GLX_DRAWABLE_PBUFFER, winScreen);
+ GLX_PBUFFER_BIT, winScreen);
if (pixelFormat == 0) {
ErrorF("wglChoosePixelFormat error: %s\n",
glxWinErrorMessage());
@@ -1329,7 +1492,6 @@ glxWinDeferredCreateContext(__GLXWinContext * gc, __GLXWinDrawable * draw)
wglCreatePbufferARBWrapper(screenDC, pixelFormat,
draw->base.pDraw->width,
draw->base.pDraw->height, NULL);
- ReleaseDC(NULL, screenDC);
if (draw->hPbuffer == NULL) {
ErrorF("wglCreatePbufferARBWrapper error: %s\n",
@@ -1384,6 +1546,8 @@ glxWinDeferredCreateContext(__GLXWinContext * gc, __GLXWinDrawable * draw)
draw->pOldBits = ((PixmapPtr) draw->base.pDraw)->devPrivate.ptr;
((PixmapPtr) draw->base.pDraw)->devPrivate.ptr = pBits;
+ ((PixmapPtr)draw->base.pDraw)->refcnt++; /* Increment reference count to be sure it is not freed before the glxdrawable is destroyed */
+
// Select the DIB into the DC
draw->hOldDIB = SelectObject(draw->dibDC, draw->hDIB);
if (!draw->hOldDIB) {
@@ -1411,11 +1575,12 @@ glxWinDeferredCreateContext(__GLXWinContext * gc, __GLXWinDrawable * draw)
}
}
- dc = glxWinMakeDC(gc, draw, &dc, &hwnd);
- gc->ctx = wglCreateContext(dc);
- glxWinReleaseDC(hwnd, dc, draw);
+ gc->hDC = glxWinMakeDC(gc, draw, &hwnd);
if (gc->ctx == NULL) {
+ glxWinReleaseDC(hwnd, gc->hDC, draw);
+ gc->hDC=0;
+
ErrorF("wglCreateContext error: %s\n", glxWinErrorMessage());
return;
}
@@ -1425,7 +1590,7 @@ glxWinDeferredCreateContext(__GLXWinContext * gc, __GLXWinDrawable * draw)
gc, gc->ctx, draw);
// if the native context was created successfully, shareLists if needed
- if (gc->ctx && gc->shareContext) {
+ if (gc->ctx && gc->shareContext && gc->shareContext->ctx) {
GLWIN_DEBUG_MSG
("glxWinCreateContextReal shareLists with context %p (native ctx %p)",
gc->shareContext, gc->shareContext->ctx);
@@ -1447,34 +1612,25 @@ glxWinContextMakeCurrent(__GLXcontext * base)
{
__GLXWinContext *gc = (__GLXWinContext *) base;
BOOL ret;
- HDC drawDC;
- HDC readDC = NULL;
- __GLXdrawable *drawPriv;
- __GLXdrawable *readPriv = NULL;
- HWND hDrawWnd;
- HWND hReadWnd;
-
- GLWIN_TRACE_MSG("glxWinContextMakeCurrent context %p (native ctx %p)", gc,
- gc->ctx);
+ __GLXWinDrawable *drawPriv;
+
+#ifdef _DEBUG
+ GLWIN_TRACE_MSG("glxWinContextMakeCurrent context %p (native ctx %p)", gc, gc->ctx);
glWinCallDelta();
+#endif
/* Keep a note of the last active context in the drawable */
- drawPriv = gc->base.drawPriv;
- ((__GLXWinDrawable *) drawPriv)->drawContext = gc;
+ drawPriv = (__GLXWinDrawable *)gc->base.drawPriv;
+ drawPriv->drawContext = gc;
if (gc->ctx == NULL) {
- glxWinDeferredCreateContext(gc, (__GLXWinDrawable *) drawPriv);
+ glxWinDeferredCreateContext(gc, drawPriv);
}
+ _glapi_set_dispatch(gc->Dispatch);
if (gc->ctx == NULL) {
ErrorF("glxWinContextMakeCurrent: Native context is NULL\n");
- return FALSE;
- }
-
- drawDC =
- glxWinMakeDC(gc, (__GLXWinDrawable *) drawPriv, &drawDC, &hDrawWnd);
- if (drawDC == NULL) {
- ErrorF("glxWinMakeDC failed for drawDC\n");
+ drawPriv->drawContext = NULL; /* clear last active context because we return error */
return FALSE;
}
@@ -1485,16 +1641,14 @@ glxWinContextMakeCurrent(__GLXcontext * base)
use the wglMakeContextCurrent extension to make the context current drawing
to one DC and reading from the other
*/
- readPriv = gc->base.readPriv;
- readDC =
- glxWinMakeDC(gc, (__GLXWinDrawable *) readPriv, &readDC, &hReadWnd);
- if (readDC == NULL) {
+ gc->hreadDC = glxWinMakeDC(gc, (__GLXWinDrawable *)gc->base.readPriv, &gc->hreadwnd);
+ if (gc->hreadDC == NULL) {
ErrorF("glxWinMakeDC failed for readDC\n");
- glxWinReleaseDC(hDrawWnd, drawDC, (__GLXWinDrawable *) drawPriv);
+ drawPriv->drawContext = NULL; /* clear last active context because we return error */
return FALSE;
}
- ret = wglMakeContextCurrentARBWrapper(drawDC, readDC, gc->ctx);
+ ret = wglMakeContextCurrentARBWrapper(gc->hDC, gc->hreadDC, gc->ctx);
if (!ret) {
ErrorF("wglMakeContextCurrentARBWrapper error: %s\n",
glxWinErrorMessage());
@@ -1502,18 +1656,25 @@ glxWinContextMakeCurrent(__GLXcontext * base)
}
else {
/* Otherwise, just use wglMakeCurrent */
- ret = wglMakeCurrent(drawDC, gc->ctx);
+ if (!gc->hDC) {
+ /* It probably has been release by loseCurrent, so create it again */
+ gc->hDC = glxWinMakeDC(gc, drawPriv, &gc->hwnd);
+ }
+ ret = wglMakeCurrent(gc->hDC, gc->ctx);
if (!ret) {
- ErrorF("wglMakeCurrent error: %s\n", glxWinErrorMessage());
+ DWORD ErrorCode=GetLastError();
+ ErrorF("wglMakeCurrent error: %x dc %p ctx %p\n", ErrorCode,gc->hDC,gc->ctx);
+ if (!ErrorCode) {
+ ErrorF("Error code was 0, assuming no error.\n");
+ ret=TRUE;
+ }
}
}
// apparently make current could fail if the context is current in a different thread,
// but that shouldn't be able to happen in the current server...
-
- glxWinReleaseDC(hDrawWnd, drawDC, (__GLXWinDrawable *) drawPriv);
- if (readDC)
- glxWinReleaseDC(hReadWnd, readDC, (__GLXWinDrawable *) readPriv);
+ if (!ret)
+ drawPriv->drawContext = NULL; /* clear last active context because we return error */
return ret;
}
@@ -1521,25 +1682,34 @@ glxWinContextMakeCurrent(__GLXcontext * base)
static int
glxWinContextLoseCurrent(__GLXcontext * base)
{
- BOOL ret;
+ BOOL ret=TRUE;
__GLXWinContext *gc = (__GLXWinContext *) base;
+ __GLXWinDrawable *drawPriv = (__GLXWinDrawable *)gc->base.drawPriv;
- GLWIN_TRACE_MSG("glxWinContextLoseCurrent context %p (native ctx %p)", gc,
- gc->ctx);
+#ifdef _DEBUG
+ GLWIN_TRACE_MSG("glxWinContextLoseCurrent context %p (native ctx %p)", gc, gc->ctx);
glWinCallDelta();
+#endif
- /*
- An error seems to be reported if we try to make no context current
- if there is already no current context, so avoid doing that...
- */
- if (__glXLastContext != NULL) {
- ret = wglMakeCurrent(NULL, NULL); /* We don't need a DC when setting no current context */
- if (!ret)
- ErrorF("glxWinContextLoseCurrent error: %s\n",
- glxWinErrorMessage());
+ /* Clear the last active context in the drawable */
+ if (drawPriv) drawPriv->drawContext = NULL;
+
+ if (wglGetCurrentContext()==gc->ctx)
+ {
+ /* Only do this when we are sure we are currently the active, otherwise we are deactivating the wrong one (this is happening!!!) */
+ ret = wglMakeCurrent(NULL, NULL);
+ if (!ret)
+ ErrorF("glxWinContextLoseCurrent error: %s\n", glxWinErrorMessage());
+ }
+ else
+ {
+ return FALSE;
}
- return TRUE;
+ base->isCurrent=FALSE; /* It looks like glx is not doing this */
+ _glapi_set_dispatch(NULL);
+
+ return ret;
}
static int
@@ -1566,27 +1736,35 @@ glxWinContextDestroy(__GLXcontext * base)
__GLXWinContext *gc = (__GLXWinContext *) base;
if (gc != NULL) {
+ __GLXWinDrawable *drawPriv = (__GLXWinDrawable *)gc->base.drawPriv;
+
GLWIN_DEBUG_MSG("GLXcontext %p destroyed (native ctx %p)", base,
gc->ctx);
if (gc->ctx) {
+ BOOL ret;
/* It's bad style to delete the context while it's still current */
if (wglGetCurrentContext() == gc->ctx) {
wglMakeCurrent(NULL, NULL);
}
- {
- BOOL ret = wglDeleteContext(gc->ctx);
-
- if (!ret)
- ErrorF("wglDeleteContext error: %s\n",
- glxWinErrorMessage());
- }
+ ret = wglDeleteContext(gc->ctx);
+ if (!ret)
+ ErrorF("wglDeleteContext error: %s\n", glxWinErrorMessage());
+ if (drawPriv && gc->hDC) glxWinReleaseDC(gc->hwnd, gc->hDC, drawPriv);
+ if (gc->base.readPriv && gc->hreadDC) glxWinReleaseDC(gc->hreadwnd, gc->hreadDC, (__GLXWinDrawable *)gc->base.readPriv);
+ gc->hDC=NULL;
+ gc->hreadDC=NULL;
gc->ctx = NULL;
}
+ /* Clear the last active context in the drawable */
+ if (drawPriv) drawPriv->drawContext = NULL;
+
+ free(gc->Dispatch);
free(gc);
+ _glapi_set_dispatch(NULL);
}
}
@@ -1618,9 +1796,12 @@ glxWinCreateContext(__GLXscreen * screen,
context->base.pGlxScreen = screen;
// actual native GL context creation is deferred until attach()
- context->ctx = NULL;
+ //context->ctx = NULL; already done with memset
context->shareContext = shareContext;
+ context->Dispatch=calloc(sizeof(void*), (sizeof(struct _glapi_table) / sizeof(void *) + MAX_EXTENSION_FUNCS));
+ _glapi_set_dispatch(context->Dispatch);
+
glWinSetupDispatchTable();
GLWIN_DEBUG_MSG("GLXcontext %p created", context);
@@ -1873,8 +2054,10 @@ glxWinCreateConfigs(HDC hdc, glxWinScreen * screen)
break;
}
+#ifdef _DEBUG
if (glxWinDebugSettings.dumpPFD)
pfdOut(&pfd);
+#endif
if (!(pfd.dwFlags & (PFD_DRAW_TO_WINDOW | PFD_DRAW_TO_BITMAP)) ||
!(pfd.dwFlags & PFD_SUPPORT_OPENGL)) {
@@ -2163,7 +2346,10 @@ glxWinCreateConfigsExt(HDC hdc, glxWinScreen * screen)
/* fill in configs */
for (i = 0; i < numConfigs; i++) {
- int values[num_attrs];
+ int sizevalues=num_attrs*sizeof(int);
+ int *values=(int*)_alloca(sizevalues);
+
+ memset(values,0,sizevalues);
c = &(result[i]);
c->base.next = NULL;
diff --git a/xorg-server/hw/xwin/glx/makefile b/xorg-server/hw/xwin/glx/makefile
new file mode 100644
index 000000000..30b4ab3cb
--- /dev/null
+++ b/xorg-server/hw/xwin/glx/makefile
@@ -0,0 +1,43 @@
+LIBRARY=libwinglx
+
+INCLUDES += $(OBJDIR) ..\..\..\glx .. ..\..\..
+DEFINES += GLAPIENTRY=__stdcall _GLAPI_NO_EXPORTS
+
+DEFINES += XWIN_CLIPBOARD
+DEFINES += XWIN_MULTIWINDOW
+DEFINES += XWIN_GLX_WINDOWS
+DEFINES += XWIN_RANDR
+DEFINES += RELOCATE_PROJECTROOT
+INCLUDES += ..\..\..\miext\rootless
+DEFINES += HAVE_XWIN_CONFIG_H PTW32_STATIC_LIB
+
+CSRCS = \
+ winpriv.c \
+ glwrap.c \
+ indirect.c \
+ wgl_ext_api.c
+
+.PHONY: getspecfiles
+
+getspecfiles:
+ -del wglext.h
+ wget http://www.opengl.org/registry/api/GL/wglext.h
+ -del glxext.h
+ wget http://www.opengl.org/registry/api/GL/glxext.h
+ -del glext.h
+ wget http://www.opengl.org/registry/api/GL/glext.h
+ -del genheaders.py
+ wget --no-check-certificate https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/api/genheaders.py
+ -del reg.py
+ wget --no-check-certificate https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/api/reg.py
+ -del gl.xml
+ wget --no-check-certificate https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/api/gl.xml
+ -del wgl.xml
+ wget --no-check-certificate https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/api/wgl.xml
+
+$(OBJDIR)\generated_gl_wrappers.c: gen_gl_wrappers.py gl.xml gen_gl_wrappers.py reg.py
+ $(PYTHON3) gen_gl_wrappers.py -outfile $@ -staticwrappers -dispatchheader ../../../glx/dispatch.h
+
+$(OBJDIR)\generated_wgl_wrappers.c: gen_gl_wrappers.py wgl.xml gen_gl_wrappers.py reg.py
+ $(PYTHON3) gen_gl_wrappers.py -outfile $@ -registry wgl.xml -prefix wgl -preresolve
+
diff --git a/xorg-server/hw/xwin/glx/reg.py b/xorg-server/hw/xwin/glx/reg.py
new file mode 100644
index 000000000..4977710e5
--- /dev/null
+++ b/xorg-server/hw/xwin/glx/reg.py
@@ -0,0 +1,1152 @@
+#!/usr/bin/python3 -i
+#
+# Copyright (c) 2013 The Khronos Group Inc.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and/or associated documentation files (the
+# "Materials"), to deal in the Materials without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Materials, and to
+# permit persons to whom the Materials are furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Materials.
+#
+# THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+# MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+
+import io,os,re,string,sys
+from lxml import etree
+
+# noneStr - returns string argument, or "" if argument is None.
+# Used in converting lxml Elements into text.
+# str - string to convert
+def noneStr(str):
+ if (str!=None):
+ return str
+ else:
+ return ""
+
+# matchAPIProfile - returns whether an API and profile
+# being generated matches an element's profile
+# api - string naming the API to match
+# profile - string naming the profile to match
+# elem - Element which (may) have 'api' and 'profile'
+# attributes to match to.
+# If a tag is not present in the Element, the corresponding API
+# or profile always matches.
+# Otherwise, the tag must exactly match the API or profile.
+# Thus, if 'profile' = core:
+# <remove> with no attribute will match
+# <remove profile='core'> will match
+# <remove profile='compatibility'> will not match
+# Possible match conditions:
+# Requested Element
+# Profile Profile
+# --------- --------
+# None None Always matches
+# 'string' None Always matches
+# None 'string' Does not match. Can't generate multiple APIs
+# or profiles, so if an API/profile constraint
+# is present, it must be asked for explicitly.
+# 'string' 'string' Strings must match
+#
+# ** In the future, we will allow regexes for the attributes,
+# not just strings, so that api="^(gl|gles2)" will match. Even
+# this isn't really quite enough, we might prefer something
+# like "gl(core)|gles1(common-lite)".
+def matchAPIProfile(api, profile, elem):
+ """Match a requested API & profile name to a api & profile attributes of an Element"""
+ match = True
+ # Match 'api', if present
+ if ('api' in elem.attrib):
+ if (api == None):
+ raise UserWarning("No API requested, but 'api' attribute is present with value '" +
+ elem.get('api') + "'")
+ elif (api != elem.get('api')):
+ # Requested API doesn't match attribute
+ return False
+ if ('profile' in elem.attrib):
+ if (profile == None):
+ raise UserWarning("No profile requested, but 'profile' attribute is present with value '" +
+ elem.get('profile') + "'")
+ elif (profile != elem.get('profile')):
+ # Requested profile doesn't match attribute
+ return False
+ return True
+
+# BaseInfo - base class for information about a registry feature
+# (type/group/enum/command/API/extension).
+# required - should this feature be defined during header generation
+# (has it been removed by a profile or version)?
+# declared - has this feature been defined already?
+# elem - lxml.etree Element for this feature
+# resetState() - reset required/declared to initial values. Used
+# prior to generating a new API interface.
+class BaseInfo:
+ """Represents the state of a registry feature, used during API generation"""
+ def __init__(self, elem):
+ self.required = False
+ self.declared = False
+ self.elem = elem
+ def resetState(self):
+ self.required = False
+ self.declared = False
+
+# TypeInfo - registry information about a type. No additional state
+# beyond BaseInfo is required.
+class TypeInfo(BaseInfo):
+ """Represents the state of a registry type"""
+ def __init__(self, elem):
+ BaseInfo.__init__(self, elem)
+
+# GroupInfo - registry information about a group of related enums.
+# enums - dictionary of enum names which are in the group
+class GroupInfo(BaseInfo):
+ """Represents the state of a registry enumerant group"""
+ def __init__(self, elem):
+ BaseInfo.__init__(self, elem)
+ self.enums = {}
+
+# EnumInfo - registry information about an enum
+# type - numeric type of the value of the <enum> tag
+# ( '' for GLint, 'u' for GLuint, 'ull' for GLuint64 )
+class EnumInfo(BaseInfo):
+ """Represents the state of a registry enum"""
+ def __init__(self, elem):
+ BaseInfo.__init__(self, elem)
+ self.type = elem.get('type')
+ if (self.type == None):
+ self.type = ''
+
+# CmdInfo - registry information about a command
+# glxtype - type of GLX protocol { None, 'render', 'single', 'vendor' }
+# glxopcode - GLX protocol opcode { None, number }
+# glxequiv - equivalent command at GLX dispatch level { None, string }
+# vecequiv - equivalent vector form of a command taking multiple scalar args
+# { None, string }
+class CmdInfo(BaseInfo):
+ """Represents the state of a registry command"""
+ def __init__(self, elem):
+ BaseInfo.__init__(self, elem)
+ self.glxtype = None
+ self.glxopcode = None
+ self.glxequiv = None
+ self.vecequiv = None
+
+# FeatureInfo - registry information about an API <feature>
+# or <extension>
+# name - feature name string (e.g. 'GL_ARB_multitexture')
+# number - feature version number (e.g. 1.2). <extension>
+# features are unversioned and assigned version number 0.
+# category - category, e.g. VERSION or ARB/KHR/OES/ETC/vendor
+# emit - has this feature been defined already?
+class FeatureInfo(BaseInfo):
+ """Represents the state of an API feature (version/extension)"""
+ def __init__(self, elem):
+ BaseInfo.__init__(self, elem)
+ self.name = elem.get('name')
+ # Determine element category (vendor). Only works
+ # for <extension> elements.
+ if (elem.tag == 'feature'):
+ self.category = 'VERSION'
+ self.number = elem.get('number')
+ else:
+ self.category = self.name.split('_', 2)[1]
+ self.number = "0"
+ self.emit = False
+
+# Primary sort key for regSortFeatures.
+# Sorts by category of the feature name string:
+# Core API features (those defined with a <feature> tag)
+# ARB/KHR/OES (Khronos extensions)
+# other (EXT/vendor extensions)
+def regSortCategoryKey(feature):
+ if (feature.elem.tag == 'feature'):
+ return 0
+ elif (feature.category == 'ARB' or
+ feature.category == 'KHR' or
+ feature.category == 'OES'):
+ return 1
+ else:
+ return 2
+
+# Secondary sort key for regSortFeatures.
+# Sorts by extension name.
+def regSortNameKey(feature):
+ return feature.name
+
+# Tertiary sort key for regSortFeatures.
+# Sorts by feature version number. <extension>
+# elements all have version number "0"
+def regSortNumberKey(feature):
+ return feature.number
+
+# regSortFeatures - default sort procedure for features.
+# Sorts by primary key of feature category,
+# then by feature name within the category,
+# then by version number
+def regSortFeatures(featureList):
+ featureList.sort(key = regSortNumberKey)
+ featureList.sort(key = regSortNameKey)
+ featureList.sort(key = regSortCategoryKey)
+
+# GeneratorOptions - base class for options used during header production
+# These options are target language independent, and used by
+# Registry.apiGen() and by base OutputGenerator objects.
+#
+# Members
+# filename - name of file to generate, or None to write to stdout.
+# apiname - string matching <api> 'apiname' attribute, e.g. 'gl'.
+# profile - string specifying API profile , e.g. 'core', or None.
+# versions - regex matching API versions to process interfaces for.
+# Normally '.*' or '[0-9]\.[0-9]' to match all defined versions.
+# emitversions - regex matching API versions to actually emit
+# interfaces for (though all requested versions are considered
+# when deciding which interfaces to generate). For GL 4.3 glext.h,
+# this might be '1\.[2-5]|[2-4]\.[0-9]'.
+# defaultExtensions - If not None, a string which must in its
+# entirety match the pattern in the "supported" attribute of
+# the <extension>. Defaults to None. Usually the same as apiname.
+# addExtensions - regex matching names of additional extensions
+# to include. Defaults to None.
+# removeExtenions - regex matching names of extensions to
+# remove (after defaultExtensions and addExtensions). Defaults
+# to None.
+# sortProcedure - takes a list of FeatureInfo objects and sorts
+# them in place to a preferred order in the generated output.
+# Default is core API versions, ARB/KHR/OES extensions, all
+# other extensions, alphabetically within each group.
+# The regex patterns can be None or empty, in which case they match
+# nothing.
+class GeneratorOptions:
+ """Represents options during header production from an API registry"""
+ def __init__(self,
+ filename = None,
+ apiname = None,
+ profile = None,
+ versions = '.*',
+ emitversions = '.*',
+ defaultExtensions = None,
+ addExtensions = None,
+ removeExtensions = None,
+ sortProcedure = regSortFeatures):
+ self.filename = filename
+ self.apiname = apiname
+ self.profile = profile
+ self.versions = self.emptyRegex(versions)
+ self.emitversions = self.emptyRegex(emitversions)
+ self.defaultExtensions = defaultExtensions
+ self.addExtensions = self.emptyRegex(addExtensions)
+ self.removeExtensions = self.emptyRegex(removeExtensions)
+ self.sortProcedure = sortProcedure
+ #
+ # Substitute a regular expression which matches no version
+ # or extension names for None or the empty string.
+ def emptyRegex(self,pat):
+ if (pat == None or pat == ''):
+ return '_nomatch_^'
+ else:
+ return pat
+
+# CGeneratorOptions - subclass of GeneratorOptions.
+#
+# Adds options used by COutputGenerator objects during C language header
+# generation.
+#
+# Additional members
+# prefixText - list of strings to prefix generated header with
+# (usually a copyright statement + calling convention macros).
+# protectFile - True if multiple inclusion protection should be
+# generated (based on the filename) around the entire header.
+# protectFeature - True if #ifndef..#endif protection should be
+# generated around a feature interface in the header file.
+# genFuncPointers - True if function pointer typedefs should be
+# generated
+# protectProto - True if #ifndef..#endif protection should be
+# generated around prototype declarations
+# apicall - string to use for the function declaration prefix,
+# such as APICALL on Windows.
+# apientry - string to use for the calling convention macro,
+# in typedefs, such as APIENTRY.
+# apientryp - string to use for the calling convention macro
+# in function pointer typedefs, such as APIENTRYP.
+class CGeneratorOptions(GeneratorOptions):
+ """Represents options during C header production from an API registry"""
+ def __init__(self,
+ filename = None,
+ apiname = None,
+ profile = None,
+ versions = '.*',
+ emitversions = '.*',
+ defaultExtensions = None,
+ addExtensions = None,
+ removeExtensions = None,
+ sortProcedure = regSortFeatures,
+ prefixText = "",
+ genFuncPointers = True,
+ protectFile = True,
+ protectFeature = True,
+ protectProto = True,
+ apicall = '',
+ apientry = '',
+ apientryp = ''):
+ GeneratorOptions.__init__(self, filename, apiname, profile,
+ versions, emitversions, defaultExtensions,
+ addExtensions, removeExtensions, sortProcedure)
+ self.prefixText = prefixText
+ self.genFuncPointers = genFuncPointers
+ self.protectFile = protectFile
+ self.protectFeature = protectFeature
+ self.protectProto = protectProto
+ self.apicall = apicall
+ self.apientry = apientry
+ self.apientryp = apientryp
+
+# OutputGenerator - base class for generating API interfaces.
+# Manages basic logic, logging, and output file control
+# Derived classes actually generate formatted output.
+#
+# ---- methods ----
+# OutputGenerator(errFile, warnFile, diagFile)
+# errFile, warnFile, diagFile - file handles to write errors,
+# warnings, diagnostics to. May be None to not write.
+# logMsg(level, *args) - log messages of different categories
+# level - 'error', 'warn', or 'diag'. 'error' will also
+# raise a UserWarning exception
+# *args - print()-style arguments
+# beginFile(genOpts) - start a new interface file
+# genOpts - GeneratorOptions controlling what's generated and how
+# endFile() - finish an interface file, closing it when done
+# beginFeature(interface, emit) - write interface for a feature
+# and tag generated features as having been done.
+# interface - element for the <version> / <extension> to generate
+# emit - actually write to the header only when True
+# endFeature() - finish an interface.
+# genType(typeinfo,name) - generate interface for a type
+# typeinfo - TypeInfo for a type
+# genEnum(enuminfo, name) - generate interface for an enum
+# enuminfo - EnumInfo for an enum
+# name - enum name
+# genCmd(cmdinfo) - generate interface for a command
+# cmdinfo - CmdInfo for a command
+class OutputGenerator:
+ """Generate specified API interfaces in a specific style, such as a C header"""
+ def __init__(self,
+ errFile = sys.stderr,
+ warnFile = sys.stderr,
+ diagFile = sys.stdout):
+ self.outFile = None
+ self.errFile = errFile
+ self.warnFile = warnFile
+ self.diagFile = diagFile
+ # Internal state
+ self.featureName = None
+ self.genOpts = None
+ #
+ # logMsg - write a message of different categories to different
+ # destinations.
+ # level -
+ # 'diag' (diagnostic, voluminous)
+ # 'warn' (warning)
+ # 'error' (fatal error - raises exception after logging)
+ # *args - print()-style arguments to direct to corresponding log
+ def logMsg(self, level, *args):
+ """Log a message at the given level. Can be ignored or log to a file"""
+ if (level == 'error'):
+ strfile = io.StringIO()
+ print('ERROR:', *args, file=strfile)
+ if (self.errFile != None):
+ print(strfile.getvalue(), file=self.errFile)
+ raise UserWarning(strfile.getvalue())
+ elif (level == 'warn'):
+ if (self.warnFile != None):
+ print('WARNING:', *args, file=self.warnFile)
+ elif (level == 'diag'):
+ if (self.diagFile != None):
+ print('DIAG:', *args, file=self.diagFile)
+ else:
+ raise UserWarning(
+ '*** FATAL ERROR in Generator.logMsg: unknown level:' + level)
+ #
+ def beginFile(self, genOpts):
+ self.genOpts = genOpts
+ #
+ # Open specified output file. Not done in constructor since a
+ # Generator can be used without writing to a file.
+ if (self.genOpts.filename != None):
+ self.outFile = open(self.genOpts.filename, 'w')
+ else:
+ self.outFile = sys.stdout
+ def endFile(self):
+ self.errFile and self.errFile.flush()
+ self.warnFile and self.warnFile.flush()
+ self.diagFile and self.diagFile.flush()
+ self.outFile.flush()
+ if (self.outFile != sys.stdout and self.outFile != sys.stderr):
+ self.outFile.close()
+ self.genOpts = None
+ #
+ def beginFeature(self, interface, emit):
+ self.emit = emit
+ self.featureName = interface.get('name')
+ # If there's an additional 'protect' attribute in the feature, save it
+ self.featureExtraProtect = interface.get('protect')
+ def endFeature(self):
+ # Derived classes responsible for emitting feature
+ self.featureName = None
+ self.featureExtraProtect = None
+ #
+ # Type generation
+ def genType(self, typeinfo, name):
+ if (self.featureName == None):
+ raise UserWarning('Attempt to generate type', name,
+ 'when not in feature')
+ #
+ # Enumerant generation
+ def genEnum(self, enuminfo, name):
+ if (self.featureName == None):
+ raise UserWarning('Attempt to generate enum', name,
+ 'when not in feature')
+ #
+ # Command generation
+ def genCmd(self, cmd, name):
+ if (self.featureName == None):
+ raise UserWarning('Attempt to generate command', name,
+ 'when not in feature')
+
+# COutputGenerator - subclass of OutputGenerator.
+# Generates C-language API interfaces.
+#
+# ---- methods ----
+# COutputGenerator(errFile, warnFile, diagFile) - args as for
+# OutputGenerator. Defines additional internal state.
+# makeCDecls(cmd) - return C prototype and function pointer typedef for a
+# <command> Element, as a list of two strings
+# cmd - Element for the <command>
+# newline() - print a newline to the output file (utility function)
+# ---- methods overriding base class ----
+# beginFile(genOpts)
+# endFile()
+# beginFeature(interface, emit)
+# endFeature()
+# genType(typeinfo,name) - generate interface for a type
+# genEnum(enuminfo, name)
+# genCmd(cmdinfo)
+class COutputGenerator(OutputGenerator):
+ """Generate specified API interfaces in a specific style, such as a C header"""
+ def __init__(self,
+ errFile = sys.stderr,
+ warnFile = sys.stderr,
+ diagFile = sys.stdout):
+ OutputGenerator.__init__(self, errFile, warnFile, diagFile)
+ # Internal state - accumulators for different inner block text
+ self.typeBody = ''
+ self.enumBody = ''
+ self.cmdBody = ''
+ #
+ # makeCDecls - return C prototype and function pointer typedef for a
+ # command, as a two-element list of strings.
+ # cmd - Element containing a <command> tag
+ def makeCDecls(self, cmd):
+ """Generate C function pointer typedef for <command> Element"""
+ proto = cmd.find('proto')
+ params = cmd.findall('param')
+ # Begin accumulating prototype and typedef strings
+ pdecl = self.genOpts.apicall
+ tdecl = 'typedef '
+ #
+ # Insert the function return type/name.
+ # For prototypes, add APIENTRY macro before the name
+ # For typedefs, add (APIENTRYP <name>) around the name and
+ # use the PFNGLCMDNAMEPROC nameng convention.
+ # Done by walking the tree for <proto> element by element.
+ # lxml.etree has elem.text followed by (elem[i], elem[i].tail)
+ # for each child element and any following text
+ # Leading text
+ pdecl += noneStr(proto.text)
+ tdecl += noneStr(proto.text)
+ # For each child element, if it's a <name> wrap in appropriate
+ # declaration. Otherwise append its contents and tail contents.
+ for elem in proto:
+ text = noneStr(elem.text)
+ tail = noneStr(elem.tail)
+ if (elem.tag == 'name'):
+ pdecl += self.genOpts.apientry + text + tail
+ tdecl += '(' + self.genOpts.apientryp + 'PFN' + text.upper() + 'PROC' + tail + ')'
+ else:
+ pdecl += text + tail
+ tdecl += text + tail
+ # Now add the parameter declaration list, which is identical
+ # for prototypes and typedefs. Concatenate all the text from
+ # a <param> node without the tags. No tree walking required
+ # since all tags are ignored.
+ n = len(params)
+ paramdecl = ' ('
+ if n > 0:
+ for i in range(0,n):
+ paramdecl += ''.join([t for t in params[i].itertext()])
+ if (i < n - 1):
+ paramdecl += ', '
+ else:
+ paramdecl += 'void'
+ paramdecl += ");\n";
+ return [ pdecl + paramdecl, tdecl + paramdecl ]
+ #
+ def newline(self):
+ print('', file=self.outFile)
+ #
+ def beginFile(self, genOpts):
+ OutputGenerator.beginFile(self, genOpts)
+ # C-specific
+ #
+ # Multiple inclusion protection & C++ wrappers.
+ if (genOpts.protectFile and self.genOpts.filename):
+ headerSym = '__' + re.sub('\.h', '_h_', os.path.basename(self.genOpts.filename))
+ print('#ifndef', headerSym, file=self.outFile)
+ print('#define', headerSym, '1', file=self.outFile)
+ self.newline()
+ print('#ifdef __cplusplus', file=self.outFile)
+ print('extern "C" {', file=self.outFile)
+ print('#endif', file=self.outFile)
+ self.newline()
+ #
+ # User-supplied prefix text, if any (list of strings)
+ if (genOpts.prefixText):
+ for s in genOpts.prefixText:
+ print(s, file=self.outFile)
+ #
+ # Some boilerplate describing what was generated - this
+ # will probably be removed later since the extensions
+ # pattern may be very long.
+ print('/* Generated C header for:', file=self.outFile)
+ print(' * API:', genOpts.apiname, file=self.outFile)
+ if (genOpts.profile):
+ print(' * Profile:', genOpts.profile, file=self.outFile)
+ print(' * Versions considered:', genOpts.versions, file=self.outFile)
+ print(' * Versions emitted:', genOpts.emitversions, file=self.outFile)
+ print(' * Default extensions included:', genOpts.defaultExtensions, file=self.outFile)
+ print(' * Additional extensions included:', genOpts.addExtensions, file=self.outFile)
+ print(' * Extensions removed:', genOpts.removeExtensions, file=self.outFile)
+ print(' */', file=self.outFile)
+ def endFile(self):
+ # C-specific
+ # Finish C++ wrapper and multiple inclusion protection
+ self.newline()
+ print('#ifdef __cplusplus', file=self.outFile)
+ print('}', file=self.outFile)
+ print('#endif', file=self.outFile)
+ if (self.genOpts.protectFile and self.genOpts.filename):
+ self.newline()
+ print('#endif', file=self.outFile)
+ # Finish processing in superclass
+ OutputGenerator.endFile(self)
+ def beginFeature(self, interface, emit):
+ # Start processing in superclass
+ OutputGenerator.beginFeature(self, interface, emit)
+ # C-specific
+ # Accumulate types, enums, function pointer typedefs, end function
+ # prototypes separately for this feature. They're only printed in
+ # endFeature().
+ self.typeBody = ''
+ self.enumBody = ''
+ self.cmdPointerBody = ''
+ self.cmdBody = ''
+ def endFeature(self):
+ # C-specific
+ # Actually write the interface to the output file.
+ if (self.emit):
+ self.newline()
+ if (self.genOpts.protectFeature):
+ print('#ifndef', self.featureName, file=self.outFile)
+ print('#define', self.featureName, '1', file=self.outFile)
+ if (self.typeBody != ''):
+ print(self.typeBody, end='', file=self.outFile)
+ #
+ # Don't add additional protection for derived type declarations,
+ # which may be needed by other features later on.
+ if (self.featureExtraProtect != None):
+ print('#ifdef', self.featureExtraProtect, file=self.outFile)
+ if (self.enumBody != ''):
+ print(self.enumBody, end='', file=self.outFile)
+ if (self.genOpts.genFuncPointers and self.cmdPointerBody != ''):
+ print(self.cmdPointerBody, end='', file=self.outFile)
+ if (self.cmdBody != ''):
+ if (self.genOpts.protectProto):
+ print('#ifdef GL_GLEXT_PROTOTYPES', file=self.outFile)
+ print(self.cmdBody, end='', file=self.outFile)
+ if (self.genOpts.protectProto):
+ print('#endif', file=self.outFile)
+ if (self.featureExtraProtect != None):
+ print('#endif /*', self.featureExtraProtect, '*/', file=self.outFile)
+ if (self.genOpts.protectFeature):
+ print('#endif /*', self.featureName, '*/', file=self.outFile)
+ # Finish processing in superclass
+ OutputGenerator.endFeature(self)
+ #
+ # Type generation
+ def genType(self, typeinfo, name):
+ OutputGenerator.genType(self, typeinfo, name)
+ #
+ # Replace <apientry /> tags with an APIENTRY-style string
+ # (from self.genOpts). Copy other text through unchanged.
+ # If the resulting text is an empty string, don't emit it.
+ typeElem = typeinfo.elem
+ s = noneStr(typeElem.text)
+ for elem in typeElem:
+ if (elem.tag == 'apientry'):
+ s += self.genOpts.apientry + noneStr(elem.tail)
+ else:
+ s += noneStr(elem.text) + noneStr(elem.tail)
+ if (len(s) > 0):
+ self.typeBody += s + "\n"
+ #
+ # Enumerant generation
+ def genEnum(self, enuminfo, name):
+ OutputGenerator.genEnum(self, enuminfo, name)
+ #
+ # EnumInfo.type is a C value suffix (e.g. u, ull)
+ self.enumBody += '#define ' + name.ljust(33) + ' ' + enuminfo.elem.get('value')
+ #
+ # Handle non-integer 'type' fields by using it as the C value suffix
+ t = enuminfo.elem.get('type')
+ if (t != '' and t != 'i'):
+ self.enumBody += enuminfo.type
+ self.enumBody += "\n"
+ #
+ # Command generation
+ def genCmd(self, cmdinfo, name):
+ OutputGenerator.genCmd(self, cmdinfo, name)
+ #
+ decls = self.makeCDecls(cmdinfo.elem)
+ self.cmdBody += decls[0]
+ if (self.genOpts.genFuncPointers):
+ self.cmdPointerBody += decls[1]
+
+# Registry - object representing an API registry, loaded from an XML file
+# Members
+# tree - ElementTree containing the root <registry>
+# typedict - dictionary of TypeInfo objects keyed by type name
+# groupdict - dictionary of GroupInfo objects keyed by group name
+# enumdict - dictionary of EnumInfo objects keyed by enum name
+# cmddict - dictionary of CmdInfo objects keyed by command name
+# apidict - dictionary of <api> Elements keyed by API name
+# extensions - list of <extension> Elements
+# extdict - dictionary of <extension> Elements keyed by extension name
+# gen - OutputGenerator object used to write headers / messages
+# genOpts - GeneratorOptions object used to control which
+# fetures to write and how to format them
+# emitFeatures - True to actually emit features for a version / extension,
+# or False to just treat them as emitted
+# Public methods
+# loadElementTree(etree) - load registry from specified ElementTree
+# loadFile(filename) - load registry from XML file
+# setGenerator(gen) - OutputGenerator to use
+# parseTree() - parse the registry once loaded & create dictionaries
+# dumpReg(maxlen, filehandle) - diagnostic to dump the dictionaries
+# to specified file handle (default stdout). Truncates type /
+# enum / command elements to maxlen characters (default 80)
+# generator(g) - specify the output generator object
+# apiGen(apiname, genOpts) - generate API headers for the API type
+# and profile specified in genOpts, but only for the versions and
+# extensions specified there.
+# apiReset() - call between calls to apiGen() to reset internal state
+# validateGroups() - call to verify that each <proto> or <param>
+# with a 'group' attribute matches an actual existing group.
+# Private methods
+# addElementInfo(elem,info,infoName,dictionary) - add feature info to dict
+# lookupElementInfo(fname,dictionary) - lookup feature info in dict
+class Registry:
+ """Represents an API registry loaded from XML"""
+ def __init__(self):
+ self.tree = None
+ self.typedict = {}
+ self.groupdict = {}
+ self.enumdict = {}
+ self.cmddict = {}
+ self.apidict = {}
+ self.extensions = []
+ self.extdict = {}
+ # A default output generator, so commands prior to apiGen can report
+ # errors via the generator object.
+ self.gen = OutputGenerator()
+ self.genOpts = None
+ self.emitFeatures = False
+ def loadElementTree(self, tree):
+ """Load ElementTree into a Registry object and parse it"""
+ self.tree = tree
+ self.parseTree()
+ def loadFile(self, file):
+ """Load an API registry XML file into a Registry object and parse it"""
+ self.tree = etree.parse(file)
+ self.parseTree()
+ def setGenerator(self, gen):
+ """Specify output generator object. None restores the default generator"""
+ self.gen = gen
+ # addElementInfo - add information about an element to the
+ # corresponding dictionary
+ # elem - <type>/<group>/<enum>/<command>/<feature>/<extension> Element
+ # info - corresponding {Type|Group|Enum|Cmd|Feature}Info object
+ # infoName - 'type' / 'group' / 'enum' / 'command' / 'feature' / 'extension'
+ # dictionary - self.{type|group|enum|cmd|api|ext}dict
+ # If the Element has an 'api' attribute, the dictionary key is the
+ # tuple (name,api). If not, the key is the name. 'name' is an
+ # attribute of the Element
+ def addElementInfo(self, elem, info, infoName, dictionary):
+ if ('api' in elem.attrib):
+ key = (elem.get('name'),elem.get('api'))
+ else:
+ key = elem.get('name')
+ if key in dictionary:
+ self.gen.logMsg('warn', '*** Attempt to redefine',
+ infoName, 'with key:', key)
+ else:
+ dictionary[key] = info
+ #
+ # lookupElementInfo - find a {Type|Enum|Cmd}Info object by name.
+ # If an object qualified by API name exists, use that.
+ # fname - name of type / enum / command
+ # dictionary - self.{type|enum|cmd}dict
+ def lookupElementInfo(self, fname, dictionary):
+ key = (fname, self.genOpts.apiname)
+ if (key in dictionary):
+ # self.gen.logMsg('diag', 'Found API-specific element for feature', fname)
+ return dictionary[key]
+ elif (fname in dictionary):
+ # self.gen.logMsg('diag', 'Found generic element for feature', fname)
+ return dictionary[fname]
+ else:
+ return None
+ def parseTree(self):
+ """Parse the registry Element, once created"""
+ # This must be the Element for the root <registry>
+ self.reg = self.tree.getroot()
+ #
+ # Create dictionary of registry types from toplevel <types> tags
+ # and add 'name' attribute to each <type> tag (where missing)
+ # based on its <name> element.
+ #
+ # There's usually one <types> block; more are OK
+ # Required <type> attributes: 'name' or nested <name> tag contents
+ self.typedict = {}
+ for type in self.reg.findall('types/type'):
+ # If the <type> doesn't already have a 'name' attribute, set
+ # it from contents of its <name> tag.
+ if (type.get('name') == None):
+ type.attrib['name'] = type.find('name').text
+ self.addElementInfo(type, TypeInfo(type), 'type', self.typedict)
+ #
+ # Create dictionary of registry groups from toplevel <groups> tags.
+ #
+ # There's usually one <groups> block; more are OK.
+ # Required <group> attributes: 'name'
+ self.groupdict = {}
+ for group in self.reg.findall('groups/group'):
+ self.addElementInfo(group, GroupInfo(group), 'group', self.groupdict)
+ #
+ # Create dictionary of registry enums from toplevel <enums> tags
+ #
+ # There are usually many <enums> tags in different namespaces, but
+ # these are functional namespaces of the values, while the actual
+ # enum names all share the dictionary.
+ # Required <enums> attributes: 'name', 'value'
+ self.enumdict = {}
+ for enum in self.reg.findall('enums/enum'):
+ self.addElementInfo(enum, EnumInfo(enum), 'enum', self.enumdict)
+ #
+ # Create dictionary of registry commands from <command> tags
+ # and add 'name' attribute to each <command> tag (where missing)
+ # based on its <proto><name> element.
+ #
+ # There's usually only one <commands> block; more are OK.
+ # Required <command> attributes: 'name' or <proto><name> tag contents
+ self.cmddict = {}
+ for cmd in self.reg.findall('commands/command'):
+ # If the <command> doesn't already have a 'name' attribute, set
+ # it from contents of its <proto><name> tag.
+ if (cmd.get('name') == None):
+ cmd.attrib['name'] = cmd.find('proto/name').text
+ ci = CmdInfo(cmd)
+ self.addElementInfo(cmd, ci, 'command', self.cmddict)
+ #
+ # Create dictionaries of API and extension interfaces
+ # from toplevel <api> and <extension> tags.
+ #
+ self.apidict = {}
+ for feature in self.reg.findall('feature'):
+ ai = FeatureInfo(feature)
+ self.addElementInfo(feature, ai, 'feature', self.apidict)
+ self.extensions = self.reg.findall('extensions/extension')
+ self.extdict = {}
+ for feature in self.extensions:
+ ei = FeatureInfo(feature)
+ self.addElementInfo(feature, ei, 'extension', self.extdict)
+ def dumpReg(self, maxlen = 40, filehandle = sys.stdout):
+ """Dump all the dictionaries constructed from the Registry object"""
+ print('***************************************', file=filehandle)
+ print(' ** Dumping Registry contents **', file=filehandle)
+ print('***************************************', file=filehandle)
+ print('// Types', file=filehandle)
+ for name in self.typedict:
+ tobj = self.typedict[name]
+ print(' Type', name, '->', etree.tostring(tobj.elem)[0:maxlen], file=filehandle)
+ print('// Groups', file=filehandle)
+ for name in self.groupdict:
+ gobj = self.groupdict[name]
+ print(' Group', name, '->', etree.tostring(gobj.elem)[0:maxlen], file=filehandle)
+ print('// Enums', file=filehandle)
+ for name in self.enumdict:
+ eobj = self.enumdict[name]
+ print(' Enum', name, '->', etree.tostring(eobj.elem)[0:maxlen], file=filehandle)
+ print('// Commands', file=filehandle)
+ for name in self.cmddict:
+ cobj = self.cmddict[name]
+ print(' Command', name, '->', etree.tostring(cobj.elem)[0:maxlen], file=filehandle)
+ print('// APIs', file=filehandle)
+ for key in self.apidict:
+ print(' API Version ', key, '->',
+ etree.tostring(self.apidict[key].elem)[0:maxlen], file=filehandle)
+ print('// Extensions', file=filehandle)
+ for key in self.extdict:
+ print(' Extension', key, '->',
+ etree.tostring(self.extdict[key].elem)[0:maxlen], file=filehandle)
+ # print('***************************************', file=filehandle)
+ # print(' ** Dumping XML ElementTree **', file=filehandle)
+ # print('***************************************', file=filehandle)
+ # print(etree.tostring(self.tree.getroot(),pretty_print=True), file=filehandle)
+ #
+ # typename - name of type
+ # required - boolean (to tag features as required or not)
+ def markTypeRequired(self, typename, required):
+ """Require (along with its dependencies) or remove (but not its dependencies) a type"""
+ self.gen.logMsg('diag', '*** tagging type:', typename, '-> required =', required)
+ # Get TypeInfo object for <type> tag corresponding to typename
+ type = self.lookupElementInfo(typename, self.typedict)
+ if (type != None):
+ # Tag required type dependencies as required.
+ # This DOES NOT un-tag dependencies in a <remove> tag.
+ # See comments in markRequired() below for the reason.
+ if (required and ('requires' in type.elem.attrib)):
+ depType = type.elem.get('requires')
+ self.gen.logMsg('diag', '*** Generating dependent type',
+ depType, 'for type', typename)
+ self.markTypeRequired(depType, required)
+ type.required = required
+ else:
+ self.gen.logMsg('warn', '*** type:', typename , 'IS NOT DEFINED')
+ #
+ # features - Element for <require> or <remove> tag
+ # required - boolean (to tag features as required or not)
+ def markRequired(self, features, required):
+ """Require or remove features specified in the Element"""
+ self.gen.logMsg('diag', '*** markRequired (features = <too long to print>, required =', required, ')')
+ # Loop over types, enums, and commands in the tag
+ # @@ It would be possible to respect 'api' and 'profile' attributes
+ # in individual features, but that's not done yet.
+ for typeElem in features.findall('type'):
+ self.markTypeRequired(typeElem.get('name'), required)
+ for enumElem in features.findall('enum'):
+ name = enumElem.get('name')
+ self.gen.logMsg('diag', '*** tagging enum:', name, '-> required =', required)
+ enum = self.lookupElementInfo(name, self.enumdict)
+ if (enum != None):
+ enum.required = required
+ else:
+ self.gen.logMsg('warn', '*** enum:', name , 'IS NOT DEFINED')
+ for cmdElem in features.findall('command'):
+ name = cmdElem.get('name')
+ self.gen.logMsg('diag', '*** tagging command:', name, '-> required =', required)
+ cmd = self.lookupElementInfo(name, self.cmddict)
+ if (cmd != None):
+ cmd.required = required
+ # Tag all parameter types of this command as required.
+ # This DOES NOT remove types of commands in a <remove>
+ # tag, because many other commands may use the same type.
+ # We could be more clever and reference count types,
+ # instead of using a boolean.
+ if (required):
+ # Look for <ptype> in entire <command> tree,
+ # not just immediate children
+ for ptype in cmd.elem.findall('.//ptype'):
+ self.gen.logMsg('diag', '*** markRequired: command implicitly requires dependent type', ptype.text)
+ self.markTypeRequired(ptype.text, required)
+ else:
+ self.gen.logMsg('warn', '*** command:', name, 'IS NOT DEFINED')
+ #
+ # interface - Element for <version> or <extension>, containing
+ # <require> and <remove> tags
+ # api - string specifying API name being generated
+ # profile - string specifying API profile being generated
+ def requireAndRemoveFeatures(self, interface, api, profile):
+ """Process <recquire> and <remove> tags for a <version> or <extension>"""
+ # <require> marks things that are required by this version/profile
+ for feature in interface.findall('require'):
+ if (matchAPIProfile(api, profile, feature)):
+ self.markRequired(feature,True)
+ # <remove> marks things that are removed by this version/profile
+ for feature in interface.findall('remove'):
+ if (matchAPIProfile(api, profile, feature)):
+ self.markRequired(feature,False)
+ #
+ # generateFeature - generate a single type / enum / command,
+ # and all its dependencies as needed.
+ # fname - name of feature (<type>/<enum>/<command>
+ # ftype - type of feature, 'type' | 'enum' | 'command'
+ # dictionary - of *Info objects - self.{type|enum|cmd}dict
+ # genProc - bound function pointer for self.gen.gen{Type|Enum|Cmd}
+ def generateFeature(self, fname, ftype, dictionary, genProc):
+ f = self.lookupElementInfo(fname, dictionary)
+ if (f == None):
+ # No such feature. This is an error, but reported earlier
+ self.gen.logMsg('diag', '*** No entry found for feature', fname,
+ 'returning!')
+ return
+ #
+ # If feature isn't required, or has already been declared, return
+ if (not f.required):
+ self.gen.logMsg('diag', '*** Skipping', ftype, fname, '(not required)')
+ return
+ if (f.declared):
+ self.gen.logMsg('diag', '*** Skipping', ftype, fname, '(already declared)')
+ return
+ #
+ # Pull in dependent type declaration(s) of the feature.
+ # For types, there may be one in the 'required' attribute of the element
+ # For commands, there may be many in <ptype> tags within the element
+ # For enums, no dependencies are allowed (though perhasps if you
+ # have a uint64 enum, it should require GLuint64)
+ if (ftype == 'type'):
+ if ('requires' in f.elem.attrib):
+ depname = f.elem.get('requires')
+ self.gen.logMsg('diag', '*** Generating required dependent type',
+ depname)
+ self.generateFeature(depname, 'type', self.typedict,
+ self.gen.genType)
+ elif (ftype == 'command'):
+ for ptype in f.elem.findall('.//ptype'):
+ depname = ptype.text
+ self.gen.logMsg('diag', '*** Generating required parameter type',
+ depname)
+ self.generateFeature(depname, 'type', self.typedict,
+ self.gen.genType)
+ #
+ # Actually generate the type only if emitting declarations
+ if self.emitFeatures:
+ self.gen.logMsg('diag', '*** Emitting', ftype, 'decl for', fname)
+ genProc(f, fname)
+ else:
+ self.gen.logMsg('diag', '*** Skipping', ftype, fname,
+ '(not emitting this feature)')
+ # Always mark feature declared, as though actually emitted
+ f.declared = True
+ #
+ # generateRequiredInterface - generate all interfaces required
+ # by an API version or extension
+ # interface - Element for <version> or <extension>
+ def generateRequiredInterface(self, interface):
+ """Generate required C interface for specified API version/extension"""
+ #
+ # Loop over all features inside all <require> tags.
+ # <remove> tags are ignored (handled in pass 1).
+ for features in interface.findall('require'):
+ for t in features.findall('type'):
+ self.generateFeature(t.get('name'), 'type', self.typedict,
+ self.gen.genType)
+ for e in features.findall('enum'):
+ self.generateFeature(e.get('name'), 'enum', self.enumdict,
+ self.gen.genEnum)
+ for c in features.findall('command'):
+ self.generateFeature(c.get('name'), 'command', self.cmddict,
+ self.gen.genCmd)
+ #
+ # apiGen(genOpts) - generate interface for specified versions
+ # genOpts - GeneratorOptions object with parameters used
+ # by the Generator object.
+ def apiGen(self, genOpts):
+ """Generate interfaces for the specified API type and range of versions"""
+ #
+ self.gen.logMsg('diag', '*******************************************')
+ self.gen.logMsg('diag', ' Registry.apiGen file:', genOpts.filename,
+ 'api:', genOpts.apiname,
+ 'profile:', genOpts.profile)
+ self.gen.logMsg('diag', '*******************************************')
+ #
+ self.genOpts = genOpts
+ # Reset required/declared flags for all features
+ self.apiReset()
+ #
+ # Compile regexps used to select versions & extensions
+ regVersions = re.compile(self.genOpts.versions)
+ regEmitVersions = re.compile(self.genOpts.emitversions)
+ regAddExtensions = re.compile(self.genOpts.addExtensions)
+ regRemoveExtensions = re.compile(self.genOpts.removeExtensions)
+ #
+ # Get all matching API versions & add to list of FeatureInfo
+ features = []
+ apiMatch = False
+ for key in self.apidict:
+ fi = self.apidict[key]
+ api = fi.elem.get('api')
+ if (api == self.genOpts.apiname):
+ apiMatch = True
+ if (regVersions.match(fi.number)):
+ # Matches API & version #s being generated. Mark for
+ # emission and add to the features[] list .
+ # @@ Could use 'declared' instead of 'emit'?
+ fi.emit = (regEmitVersions.match(fi.number) != None)
+ features.append(fi)
+ if (not fi.emit):
+ self.gen.logMsg('diag', '*** NOT tagging feature api =', api,
+ 'name =', fi.name, 'number =', fi.number,
+ 'for emission (does not match emitversions pattern)')
+ else:
+ self.gen.logMsg('diag', '*** NOT including feature api =', api,
+ 'name =', fi.name, 'number =', fi.number,
+ '(does not match requested versions)')
+ else:
+ self.gen.logMsg('diag', '*** NOT including feature api =', api,
+ 'name =', fi.name,
+ '(does not match requested API)')
+ if (not apiMatch):
+ self.gen.logMsg('warn', '*** No matching API versions found!')
+ #
+ # Get all matching extensions & add to the list.
+ # Start with extensions tagged with 'api' pattern matching the API
+ # being generated. Add extensions matching the pattern specified in
+ # regExtensions, then remove extensions matching the pattern
+ # specified in regRemoveExtensions
+ for key in self.extdict:
+ ei = self.extdict[key]
+ extName = ei.name
+ include = False
+ #
+ # Include extension if defaultExtensions is not None and if the
+ # 'supported' attribute matches defaultExtensions. The regexp in
+ # 'supported' must exactly match defaultExtensions, so bracket
+ # it with ^(pat)$.
+ pat = '^(' + ei.elem.get('supported') + ')$'
+ if (self.genOpts.defaultExtensions and
+ re.match(pat, self.genOpts.defaultExtensions)):
+ self.gen.logMsg('diag', '*** Including extension',
+ extName, "(defaultExtensions matches the 'supported' attribute)")
+ include = True
+ #
+ # Include additional extensions if the extension name matches
+ # the regexp specified in the generator options. This allows
+ # forcing extensions into an interface even if they're not
+ # tagged appropriately in the registry.
+ if (regAddExtensions.match(extName) != None):
+ self.gen.logMsg('diag', '*** Including extension',
+ extName, '(matches explicitly requested extensions to add)')
+ include = True
+ # Remove extensions if the name matches the regexp specified
+ # in generator options. This allows forcing removal of
+ # extensions from an interface even if they're tagged that
+ # way in the registry.
+ if (regRemoveExtensions.match(extName) != None):
+ self.gen.logMsg('diag', '*** Removing extension',
+ extName, '(matches explicitly requested extensions to remove)')
+ include = False
+ #
+ # If the extension is to be included, add it to the
+ # extension features list.
+ if (include):
+ ei.emit = True
+ features.append(ei)
+ else:
+ self.gen.logMsg('diag', '*** NOT including extension',
+ extName, '(does not match api attribute or explicitly requested extensions)')
+ #
+ # Sort the extension features list, if a sort procedure is defined
+ if (self.genOpts.sortProcedure):
+ self.genOpts.sortProcedure(features)
+ #
+ # Pass 1: loop over requested API versions and extensions tagging
+ # types/commands/features as required (in an <require> block) or no
+ # longer required (in an <exclude> block). It is possible to remove
+ # a feature in one version and restore it later by requiring it in
+ # a later version.
+ # If a profile other than 'None' is being generated, it must
+ # match the profile attribute (if any) of the <require> and
+ # <remove> tags.
+ self.gen.logMsg('diag', '*** PASS 1: TAG FEATURES ********************************************')
+ for f in features:
+ self.gen.logMsg('diag', '*** PASS 1: Tagging required and removed features for',
+ f.name)
+ self.requireAndRemoveFeatures(f.elem, self.genOpts.apiname, self.genOpts.profile)
+ #
+ # Pass 2: loop over specified API versions and extensions printing
+ # declarations for required things which haven't already been
+ # generated.
+ self.gen.logMsg('diag', '*** PASS 2: GENERATE INTERFACES FOR FEATURES ************************')
+ self.gen.beginFile(self.genOpts)
+ for f in features:
+ self.gen.logMsg('diag', '*** PASS 2: Generating interface for',
+ f.name)
+ emit = self.emitFeatures = f.emit
+ if (not emit):
+ self.gen.logMsg('diag', '*** PASS 2: NOT declaring feature',
+ f.elem.get('name'), 'because it is not tagged for emission')
+ # Generate the interface (or just tag its elements as having been
+ # emitted, if they haven't been).
+ self.gen.beginFeature(f.elem, emit)
+ self.generateRequiredInterface(f.elem)
+ self.gen.endFeature()
+ self.gen.endFile()
+ #
+ # apiReset - use between apiGen() calls to reset internal state
+ #
+ def apiReset(self):
+ """Reset type/enum/command dictionaries before generating another API"""
+ for type in self.typedict:
+ self.typedict[type].resetState()
+ for enum in self.enumdict:
+ self.enumdict[enum].resetState()
+ for cmd in self.cmddict:
+ self.cmddict[cmd].resetState()
+ for cmd in self.apidict:
+ self.apidict[cmd].resetState()
+ #
+ # validateGroups - check that group= attributes match actual groups
+ #
+ def validateGroups(self):
+ """Validate group= attributes on <param> and <proto> tags"""
+ # Keep track of group names not in <group> tags
+ badGroup = {}
+ self.gen.logMsg('diag', '*** VALIDATING GROUP ATTRIBUTES ***')
+ for cmd in self.reg.findall('commands/command'):
+ proto = cmd.find('proto')
+ funcname = cmd.find('proto/name').text
+ if ('group' in proto.attrib.keys()):
+ group = proto.get('group')
+ # self.gen.logMsg('diag', '*** Command ', funcname, ' has return group ', group)
+ if (group not in self.groupdict.keys()):
+ # self.gen.logMsg('diag', '*** Command ', funcname, ' has UNKNOWN return group ', group)
+ if (group not in badGroup.keys()):
+ badGroup[group] = 1
+ else:
+ badGroup[group] = badGroup[group] + 1
+ for param in cmd.findall('param'):
+ pname = param.find('name')
+ if (pname != None):
+ pname = pname.text
+ else:
+ pname = type.get('name')
+ if ('group' in param.attrib.keys()):
+ group = param.get('group')
+ if (group not in self.groupdict.keys()):
+ # self.gen.logMsg('diag', '*** Command ', funcname, ' param ', pname, ' has UNKNOWN group ', group)
+ if (group not in badGroup.keys()):
+ badGroup[group] = 1
+ else:
+ badGroup[group] = badGroup[group] + 1
+ if (len(badGroup.keys()) > 0):
+ self.gen.logMsg('diag', '*** SUMMARY OF UNRECOGNIZED GROUPS ***')
+ for key in sorted(badGroup.keys()):
+ self.gen.logMsg('diag', ' ', key, ' occurred ', badGroup[key], ' times')
diff --git a/xorg-server/hw/xwin/glx/simpledib.c b/xorg-server/hw/xwin/glx/simpledib.c
new file mode 100644
index 000000000..f491e2857
--- /dev/null
+++ b/xorg-server/hw/xwin/glx/simpledib.c
@@ -0,0 +1,675 @@
+/*
+** Simple example of rendering to a Windows DIB (Device Independent Bitmap)
+*/
+#include <windows.h>
+#include <math.h>
+#include <GL/gl.h>
+
+#if !defined(M_PI)
+#define M_PI 3.14159265F
+#endif
+
+char *className = "OpenGL";
+char *windowName = "Simple DIB Example";
+int winX = 0, winY = 0;
+int winWidth = 1024, winHeight = 1024;
+
+HDC hDC;
+HDC hDCFrontBuffer;
+HGLRC hGLRC;
+HPALETTE hPalette;
+HBITMAP hBitmap, hOldBitmap;
+
+void (*idleFunc)(void);
+
+BOOL colorIndexMode = FALSE;
+BOOL doubleBuffered = FALSE;
+BOOL renderToDIB = TRUE;
+
+/* Struct used to manage color ramps */
+struct colorIndexState {
+ GLfloat amb[3]; /* ambient color / bottom of ramp */
+ GLfloat diff[3]; /* diffuse color / middle of ramp */
+ GLfloat spec[3]; /* specular color / top of ramp */
+ GLfloat ratio; /* ratio of diffuse to specular in ramp */
+ GLint indexes[3]; /* where ramp was placed in palette */
+};
+
+/*
+** Each entry in this array corresponds to a color ramp in the
+** palette. The indexes member of each struct is updated to
+** reflect the placement of the color ramp in the palette.
+*/
+#define NUM_COLORS (sizeof(colors) / sizeof(colors[0]))
+struct colorIndexState colors[] = {
+ {
+ { 0.0F, 0.0F, 0.0F },
+ { 0.1F, 0.6F, 0.3F },
+ { 1.0F, 1.0F, 1.0F },
+ 0.75F, { 0, 0, 0 },
+ },
+ {
+ { 0.0F, 0.0F, 0.0F },
+ { 0.0F, 0.2F, 0.5F },
+ { 1.0F, 1.0F, 1.0F },
+
+ 0.75F, { 0, 0, 0 },
+ },
+ {
+ { 0.0F, 0.05F, 0.05F },
+ { 0.6F, 0.0F, 0.8F },
+ { 1.0F, 1.0F, 1.0F },
+ 0.75F, { 0, 0, 0 },
+ },
+};
+
+void
+drawTorus(void)
+{
+ int numMajor = 32;
+ int numMinor = 24;
+ float majorRadius = 0.6F;
+ float minorRadius = 0.2F;
+ double majorStep = 2.0F*M_PI / numMajor;
+ double minorStep = 2.0F*M_PI / numMinor;
+ int i, j;
+
+ for (i=0; i<numMajor; ++i) {
+ double a0 = i * majorStep;
+ double a1 = a0 + majorStep;
+ GLfloat x0 = (GLfloat) cos(a0);
+ GLfloat y0 = (GLfloat) sin(a0);
+ GLfloat x1 = (GLfloat) cos(a1);
+ GLfloat y1 = (GLfloat) sin(a1);
+
+ if (i & 1) {
+ glColor3fv(colors[0].diff);
+ glMaterialiv(GL_FRONT, GL_COLOR_INDEXES, colors[0].indexes);
+ } else {
+ glColor3fv(colors[1].diff);
+ glMaterialiv(GL_FRONT, GL_COLOR_INDEXES, colors[1].indexes);
+ }
+
+ glBegin(GL_TRIANGLE_STRIP);
+ for (j=0; j<=numMinor; ++j) {
+ double b = j * minorStep;
+ GLfloat c = (GLfloat) cos(b);
+ GLfloat r = minorRadius * c + majorRadius;
+ GLfloat z = minorRadius * (GLfloat) sin(b);
+
+ glNormal3f(x0*c, y0*c, z/minorRadius);
+ glVertex3f(x0*r, y0*r, z);
+
+ glNormal3f(x1*c, y1*c, z/minorRadius);
+ glVertex3f(x1*r, y1*r, z);
+ }
+ glEnd();
+ }
+}
+
+/*****************************************************************/
+
+void
+setProjection(void)
+{
+ glMatrixMode(GL_PROJECTION);
+ glLoadIdentity();
+ /*
+ ** Preserve the aspect ratio of objects in the scene.
+ */
+ if (winWidth > winHeight) {
+ GLfloat aspect = (GLfloat) winWidth / (GLfloat) winHeight;
+ glFrustum(-0.5F*aspect, 0.5F*aspect, -0.5F, 0.5F, 1.0F, 3.0F);
+ } else {
+ GLfloat aspect = (GLfloat) winHeight / (GLfloat) winWidth;
+ glFrustum(-0.5F, 0.5F, -0.5F*aspect, 0.5F*aspect, 1.0F, 3.0F);
+ }
+ glMatrixMode(GL_MODELVIEW);
+}
+
+void
+init(void)
+{
+ GLfloat matShine = 20.00F;
+ GLfloat light0Pos[4] = { 0.70F, 0.70F, 1.25F, 0.00F };
+
+ glClearColor(colors[2].diff[0], colors[2].diff[1], colors[2].diff[2], 1.0F);
+ glClearIndex((GLfloat) colors[2].indexes[1]);
+
+ setProjection();
+ glTranslatef(0.0F, 0.0F, -2.0F);
+
+ glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, matShine);
+ glLightfv(GL_LIGHT0, GL_POSITION, light0Pos);
+ glEnable(GL_LIGHT0);
+
+ glEnable(GL_LIGHTING);
+ glEnable(GL_DEPTH_TEST);
+
+ if (!colorIndexMode) {
+ glEnable(GL_COLOR_MATERIAL);
+ }
+}
+
+void
+doRedraw(void)
+{
+ static GLfloat x, y, z;
+
+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+
+ glPushMatrix();
+ glRotatef(x, 1.0F, 0.0F, 0.0F);
+ glRotatef(y, 0.0F, 1.0F, 0.0F);
+ glRotatef(z, 0.0F, 0.0F, 1.0F);
+
+ drawTorus();
+
+ glPopMatrix();
+
+ if (renderToDIB) {
+ glFinish();
+ BitBlt(hDCFrontBuffer, /*winWidth/4, winHeight/4, winWidth/2, winHeight/2,*/0,0,winWidth, winHeight, hDC, 0, 0, SRCCOPY);
+ GdiFlush();
+ } else {
+ SwapBuffers(hDC);
+ }
+
+ x += 5.0F;
+ if (x > 360.0F) x -= 360.0F;
+ y += 7.0F;
+ if (y > 360.0F) y -= 360.0F;
+ z += 9.0F;
+ if (z > 360.0F) z -= 360.0F;
+}
+
+void
+redraw(void)
+{
+ idleFunc = doRedraw;
+}
+
+void
+resize(void)
+{
+ setProjection();
+ glViewport(0, 0, winWidth, winHeight /*winWidth/2, winHeight/2*/);
+}
+
+/*****************************************************************/
+
+void
+setupDIB(HDC hDC)
+{
+ BITMAPINFO *bmInfo;
+ BITMAPINFOHEADER *bmHeader;
+ UINT usage;
+ VOID *base;
+ int bmiSize;
+ int bitsPerPixel;
+
+ bmiSize = sizeof(*bmInfo);
+ bitsPerPixel = GetDeviceCaps(hDC, BITSPIXEL);
+
+ switch (bitsPerPixel) {
+ case 8:
+ /* bmiColors is 256 WORD palette indices */
+ bmiSize += (256 * sizeof(WORD)) - sizeof(RGBQUAD);
+ break;
+ case 16:
+ /* bmiColors is 3 WORD component masks */
+ bmiSize += (3 * sizeof(DWORD)) - sizeof(RGBQUAD);
+ break;
+ case 24:
+ case 32:
+ default:
+ /* bmiColors not used */
+ break;
+ }
+
+ bmInfo = (BITMAPINFO *) calloc(1, bmiSize);
+ bmHeader = &bmInfo->bmiHeader;
+
+ bmHeader->biSize = sizeof(*bmHeader);
+ bmHeader->biWidth = winWidth /* /2 */;
+ bmHeader->biHeight = winHeight /* /2 */;
+ bmHeader->biPlanes = 1; /* must be 1 */
+ bmHeader->biBitCount = bitsPerPixel;
+ bmHeader->biXPelsPerMeter = 0;
+ bmHeader->biYPelsPerMeter = 0;
+ bmHeader->biClrUsed = 0; /* all are used */
+ bmHeader->biClrImportant = 0; /* all are important */
+
+ switch (bitsPerPixel) {
+ case 8:
+ bmHeader->biCompression = BI_RGB;
+ bmHeader->biSizeImage = 0;
+ usage = DIB_PAL_COLORS;
+ /* bmiColors is 256 WORD palette indices */
+ {
+ WORD *palIndex = (WORD *) &bmInfo->bmiColors[0];
+ int i;
+
+ for (i=0; i<256; i++) {
+ palIndex[i] = i;
+ }
+ }
+ break;
+ case 16:
+ bmHeader->biCompression = BI_RGB;
+ bmHeader->biSizeImage = 0;
+ usage = DIB_RGB_COLORS;
+ /* bmiColors is 3 WORD component masks */
+ {
+ DWORD *compMask = (DWORD *) &bmInfo->bmiColors[0];
+
+ compMask[0] = 0xF800;
+ compMask[1] = 0x07E0;
+ compMask[2] = 0x001F;
+ }
+ break;
+ case 24:
+ case 32:
+ default:
+ bmHeader->biCompression = BI_RGB;
+ bmHeader->biSizeImage = 0;
+ usage = DIB_RGB_COLORS;
+ /* bmiColors not used */
+ break;
+ }
+
+ hBitmap = CreateDIBSection(hDC, bmInfo, usage, &base, NULL, 0);
+ if (hBitmap == NULL) {
+ (void) MessageBox(WindowFromDC(hDC),
+ "Failed to create DIBSection.",
+ "OpenGL application error",
+ MB_ICONERROR | MB_OK);
+ exit(1);
+ }
+
+ hOldBitmap = SelectObject(hDC, hBitmap);
+
+ free(bmInfo);
+}
+
+void
+resizeDIB(HDC hDC)
+{
+ SelectObject(hDC, hOldBitmap);
+ DeleteObject(hBitmap);
+ setupDIB(hDC);
+}
+
+void
+setupPalette(HDC hDC)
+{
+ PIXELFORMATDESCRIPTOR pfd;
+ LOGPALETTE* pPal;
+ int pixelFormat = GetPixelFormat(hDC);
+ int paletteSize;
+
+ DescribePixelFormat(hDC, pixelFormat, sizeof(PIXELFORMATDESCRIPTOR), &pfd);
+
+ /*
+ ** Determine if a palette is needed and if so what size.
+ */
+ if (pfd.dwFlags & PFD_NEED_PALETTE) {
+ paletteSize = 1 << pfd.cColorBits;
+ } else if (pfd.iPixelType == PFD_TYPE_COLORINDEX) {
+ paletteSize = 4096;
+ } else {
+ return;
+ }
+
+ pPal = (LOGPALETTE*)
+ malloc(sizeof(LOGPALETTE) + paletteSize * sizeof(PALETTEENTRY));
+ pPal->palVersion = 0x300;
+ pPal->palNumEntries = paletteSize;
+
+ if (pfd.iPixelType == PFD_TYPE_RGBA) {
+ /*
+ ** Fill the logical paletee with RGB color ramps
+ */
+ int redMask = (1 << pfd.cRedBits) - 1;
+ int greenMask = (1 << pfd.cGreenBits) - 1;
+ int blueMask = (1 << pfd.cBlueBits) - 1;
+ int i;
+
+ for (i=0; i<paletteSize; ++i) {
+ pPal->palPalEntry[i].peRed =
+ (((i >> pfd.cRedShift) & redMask) * 255) / redMask;
+ pPal->palPalEntry[i].peGreen =
+ (((i >> pfd.cGreenShift) & greenMask) * 255) / greenMask;
+ pPal->palPalEntry[i].peBlue =
+ (((i >> pfd.cBlueShift) & blueMask) * 255) / blueMask;
+ pPal->palPalEntry[i].peFlags = 0;
+ }
+ } else {
+ /*
+ ** Fill the logical palette with color ramps.
+ **
+ ** Set up the logical palette so that it can be realized
+ ** into the system palette as an identity palette.
+ **
+ ** 1) The default static entries should be present and at the right
+ ** location. The easiest way to do this is to grab them from
+ ** the current system palette.
+ **
+ ** 2) All non-static entries should be initialized to unique values.
+ ** The easiest way to do this is to ensure that all of the non-static
+ ** entries have the PC_NOCOLLAPSE flag bit set.
+ */
+ int numRamps = NUM_COLORS;
+ int rampSize = (paletteSize - 20) / numRamps;
+ int extra = (paletteSize - 20) - (numRamps * rampSize);
+ int i, r;
+
+ /*
+ ** Initialize static entries by copying them from the
+ ** current system palette.
+ */
+ GetSystemPaletteEntries(hDC, 0, paletteSize, &pPal->palPalEntry[0]);
+
+ /*
+ ** Fill in non-static entries with desired colors.
+ */
+ for (r=0; r<numRamps; ++r) {
+ int rampBase = r * rampSize + 10;
+ PALETTEENTRY *pe = &pPal->palPalEntry[rampBase];
+ int diffSize = (int) (rampSize * colors[r].ratio);
+ int specSize = rampSize - diffSize;
+
+ for (i=0; i<rampSize; ++i) {
+ GLfloat *c0, *c1;
+ GLint a;
+
+ if (i < diffSize) {
+ c0 = colors[r].amb;
+ c1 = colors[r].diff;
+ a = (i * 255) / (diffSize - 1);
+ } else {
+ c0 = colors[r].diff;
+ c1 = colors[r].spec;
+ a = ((i - diffSize) * 255) / (specSize - 1);
+ }
+
+ pe[i].peRed = (BYTE) (a * (c1[0] - c0[0]) + 255 * c0[0]);
+ pe[i].peGreen = (BYTE) (a * (c1[1] - c0[1]) + 255 * c0[1]);
+ pe[i].peBlue = (BYTE) (a * (c1[2] - c0[2]) + 255 * c0[2]);
+ pe[i].peFlags = PC_NOCOLLAPSE;
+ }
+
+ colors[r].indexes[0] = rampBase;
+ colors[r].indexes[1] = rampBase + (diffSize-1);
+ colors[r].indexes[2] = rampBase + (rampSize-1);
+ }
+
+ /*
+ ** Initialize any remaining non-static entries.
+ */
+ for (i=0; i<extra; ++i) {
+ int index = numRamps*rampSize+10+i;
+ PALETTEENTRY *pe = &pPal->palPalEntry[index];
+
+ pe->peRed = (BYTE) 0;
+ pe->peGreen = (BYTE) 0;
+ pe->peBlue = (BYTE) 0;
+ pe->peFlags = PC_NOCOLLAPSE;
+ }
+ }
+
+ hPalette = CreatePalette(pPal);
+ free(pPal);
+
+ if (hPalette) {
+ SelectPalette(hDC, hPalette, FALSE);
+ RealizePalette(hDC);
+ }
+}
+
+void
+setupPixelFormat(HDC hDC)
+{
+ PIXELFORMATDESCRIPTOR pfd = {
+ sizeof(PIXELFORMATDESCRIPTOR), /* size of this pfd */
+ 1, /* version num */
+ PFD_SUPPORT_OPENGL, /* support OpenGL */
+ 0, /* pixel type */
+ 0, /* 8-bit color depth */
+ 0, 0, 0, 0, 0, 0, /* color bits (ignored) */
+ 0, /* no alpha buffer */
+ 0, /* alpha bits (ignored) */
+ 0, /* no accumulation buffer */
+ 0, 0, 0, 0, /* accum bits (ignored) */
+ 16, /* depth buffer */
+ 0, /* no stencil buffer */
+ 0, /* no auxiliary buffers */
+ PFD_MAIN_PLANE, /* main layer */
+ 0, /* reserved */
+ 0, 0, 0, /* no layer, visible, damage masks */
+ };
+ int SelectedPixelFormat;
+ BOOL retVal;
+
+ pfd.cColorBits = GetDeviceCaps(hDC, BITSPIXEL);
+
+ if (colorIndexMode) {
+ pfd.iPixelType = PFD_TYPE_COLORINDEX;
+ } else {
+ pfd.iPixelType = PFD_TYPE_RGBA;
+ }
+
+ if (doubleBuffered) {
+ pfd.dwFlags |= PFD_DOUBLEBUFFER;
+ }
+
+ if (renderToDIB) {
+ pfd.dwFlags |= PFD_DRAW_TO_BITMAP;
+ } else {
+ pfd.dwFlags |= PFD_DRAW_TO_WINDOW;
+ }
+
+ SelectedPixelFormat = ChoosePixelFormat(hDC, &pfd);
+ if (SelectedPixelFormat == 0) {
+ (void) MessageBox(WindowFromDC(hDC),
+ "Failed to find acceptable pixel format.",
+ "OpenGL application error",
+ MB_ICONERROR | MB_OK);
+ exit(1);
+ }
+
+ retVal = SetPixelFormat(hDC, SelectedPixelFormat, &pfd);
+ if (retVal != TRUE) {
+ (void) MessageBox(WindowFromDC(hDC),
+ "Failed to set pixel format.",
+ "OpenGL application error",
+ MB_ICONERROR | MB_OK);
+ exit(1);
+ }
+}
+
+LRESULT APIENTRY
+WndProc(
+ HWND hWnd,
+ UINT message,
+ WPARAM wParam,
+ LPARAM lParam)
+{
+ switch (message) {
+ case WM_CREATE:
+ return 0;
+ case WM_DESTROY:
+ PostQuitMessage(0);
+ return 0;
+ case WM_SIZE:
+ if (hGLRC) {
+ winWidth = (int) LOWORD(lParam);
+ winHeight = (int) HIWORD(lParam);
+ /**/
+ if (renderToDIB) {
+ resizeDIB(hDC);
+ }
+ /**/
+ resize();
+ return 0;
+ }
+ case WM_PALETTECHANGED:
+ /*
+ ** Update palette mapping if this *is not* the active window.
+ */
+ if (hGLRC && hPalette && (HWND) wParam != hWnd) {
+ UnrealizeObject(hPalette);
+ SelectPalette(hDC, hPalette, FALSE);
+ RealizePalette(hDC);
+ redraw();
+ return 0;
+ }
+ break;
+ case WM_QUERYNEWPALETTE:
+ /*
+ ** Update palette mapping if this *is* the active window.
+ */
+ if (hGLRC && hPalette) {
+ UnrealizeObject(hPalette);
+ SelectPalette(hDC, hPalette, FALSE);
+ RealizePalette(hDC);
+ redraw();
+ return TRUE;
+ }
+ break;
+ case WM_PAINT:
+ /*
+ ** Update the window. Don't use the device context returned by
+ ** BeginPaint as it won't have the right palette selected into it.
+ */
+ if (hGLRC) {
+ PAINTSTRUCT ps;
+
+ BeginPaint(hWnd, &ps);
+ redraw();
+ EndPaint(hWnd, &ps);
+ return 0;
+ }
+ break;
+ case WM_CHAR:
+ switch ((int)wParam) {
+ case VK_ESCAPE:
+ DestroyWindow(hWnd);
+ return 0;
+ case VK_SPACE:
+ if (idleFunc) {
+ idleFunc = NULL;
+ } else {
+ idleFunc = doRedraw;
+ }
+ default:
+ break;
+ }
+ break;
+ default:
+ break;
+ }
+
+ /* Deal with any unprocessed messages */
+ return DefWindowProc(hWnd, message, wParam, lParam);
+}
+
+int APIENTRY
+WinMain(
+ HINSTANCE hCurrentInst,
+ HINSTANCE hPreviousInst,
+ LPSTR lpszCmdLine,
+ int nCmdShow)
+{
+ const GLubyte * Ret;
+ WNDCLASS wndClass;
+ HWND hWnd;
+ MSG msg;
+
+ __asm int 3;
+ Ret = glGetString( GL_EXTENSIONS );
+
+ /* Define and register a window class */
+ wndClass.style = CS_HREDRAW | CS_VREDRAW;
+ wndClass.lpfnWndProc = WndProc;
+ wndClass.cbClsExtra = 0;
+ wndClass.cbWndExtra = 0;
+ wndClass.hInstance = hCurrentInst;
+ wndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
+ wndClass.hCursor = LoadCursor(NULL, IDC_ARROW);
+ wndClass.hbrBackground = GetStockObject(WHITE_BRUSH);
+ wndClass.lpszMenuName = NULL;
+ wndClass.lpszClassName = className;
+ RegisterClass(&wndClass);
+
+ /* Create a window of the previously defined class */
+ hWnd = CreateWindow(
+ className, /* Window class's name */
+ windowName, /* Title bar text */
+ WS_OVERLAPPEDWINDOW | /* The window's style */
+ WS_CLIPCHILDREN |
+ WS_CLIPSIBLINGS,
+ winX, winY, /* Position */
+ winWidth, winHeight, /* Size */
+ NULL, /* Parent window's handle */
+ NULL, /* Menu handle */
+ hCurrentInst, /* Instance handle */
+ NULL); /* No additional data */
+
+ /* Map the window to the screen */
+ ShowWindow(hWnd, nCmdShow);
+
+ /* Force the window to repaint itself */
+ UpdateWindow(hWnd);
+
+ /*
+ ** Set up for OpenGL rendering. Bind the rendering context to
+ ** the same device context that the palette will be selected into.
+ */
+ hDC = GetDC(hWnd);
+ hDCFrontBuffer = hDC;
+ if (renderToDIB) {
+ hDC = CreateCompatibleDC(hDCFrontBuffer);
+ setupDIB(hDC);
+ }
+ Ret = glGetString( GL_EXTENSIONS );
+ setupPixelFormat(hDC);
+ Ret = glGetString( GL_EXTENSIONS );
+ setupPalette(hDC);
+ Ret = glGetString( GL_EXTENSIONS );
+ hGLRC = wglCreateContext(hDC);
+ Ret = glGetString( GL_EXTENSIONS );
+ wglMakeCurrent(hDC, hGLRC);
+ Ret = glGetString( GL_EXTENSIONS );
+ init();
+ idleFunc = doRedraw;
+
+
+
+ /* Process Messages */
+ while (1) {
+ /* execute the idle function while there are no messages to process */
+ while (idleFunc &&
+ PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE) == FALSE)
+ {
+ (*idleFunc)();
+ }
+ if (GetMessage(&msg, NULL, 0, 0) != TRUE) {
+ break;
+ }
+ TranslateMessage(&msg);
+ DispatchMessage(&msg);
+ }
+
+ /*
+ ** Finish OpenGL rendering.
+ */
+ idleFunc = NULL;
+ if (hGLRC) {
+ wglMakeCurrent(NULL, NULL);
+ wglDeleteContext(hGLRC);
+ }
+ ReleaseDC(hWnd, hDC);
+
+ return msg.wParam;
+}
diff --git a/xorg-server/hw/xwin/glx/wgl.xml b/xorg-server/hw/xwin/glx/wgl.xml
new file mode 100644
index 000000000..1758dcb71
--- /dev/null
+++ b/xorg-server/hw/xwin/glx/wgl.xml
@@ -0,0 +1,1947 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<registry>
+ <!--
+ Copyright (c) 2013 The Khronos Group Inc.
+
+ Permission is hereby granted, free of charge, to any person obtaining a
+ copy of this software and/or associated documentation files (the
+ "Materials"), to deal in the Materials without restriction, including
+ without limitation the rights to use, copy, modify, merge, publish,
+ distribute, sublicense, and/or sell copies of the Materials, and to
+ permit persons to whom the Materials are furnished to do so, subject to
+ the following conditions:
+
+ The above copyright notice and this permission notice shall be included
+ in all copies or substantial portions of the Materials.
+
+ THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+ -->
+ <!--
+ This file, wgl.xml, is the WGL API Registry. The older ".spec" file
+ format has been retired and will no longer be updated with new
+ extensions and API versions. The canonical version of the registry,
+ together with documentation, schema, and Python generator scripts used
+ to generate C header files for WGL, can always be found in the Khronos
+ Registry at
+ http://www.opengl.org/registry/
+ -->
+
+ <!-- SECTION: WGL type definitions. Does not include base Windows types. -->
+
+ <types>
+ <!-- Dummy placeholders for Windows types -->
+ <type name="BOOL"/>
+ <type name="CHAR"/>
+ <type name="DWORD"/>
+ <type name="FLOAT"/>
+ <type name="GLbitfield"/>
+ <type name="GLboolean"/>
+ <type name="GLenum"/>
+ <type name="GLfloat"/>
+ <type name="GLint"/>
+ <type name="GLsizei"/>
+ <type name="GLuint"/>
+ <type name="GLushort"/>
+ <type name="HANDLE"/>
+ <type name="HDC"/>
+ <type name="HGLRC"/>
+ <type name="INT"/>
+ <type name="INT32"/>
+ <type name="INT64"/>
+ <type name="PROC"/>
+ <type name="RECT"/>
+ <type name="LPCSTR"/>
+ <type name="LPVOID"/>
+ <type name="UINT"/>
+ <type name="USHORT"/>
+ <type name="VOID"/>
+ <!-- Could be filled in from wgltypes.txt -->
+ <type name="COLORREF"/>
+ <type name="HENHMETAFILE"/>
+ <type name="LAYERPLANEDESCRIPTOR"/>
+ <type name="LPGLYPHMETRICSFLOAT"/>
+ <type name="PIXELFORMATDESCRIPTOR"/>
+ <!-- These are dependencies WGL types require to be declared legally -->
+ <!-- Declaring C structures in XML is a pain indentation-wise -->
+ <type>struct <name>_GPU_DEVICE</name> {
+ DWORD cb;
+ CHAR DeviceName[32];
+ CHAR DeviceString[128];
+ DWORD Flags;
+ RECT rcVirtualScreen;
+};</type>
+ <!-- These are actual WGL types. Windows types are not included. -->
+ <type>DECLARE_HANDLE(<name>HPBUFFERARB</name>);</type>
+ <type>DECLARE_HANDLE(<name>HPBUFFEREXT</name>);</type>
+ <type>DECLARE_HANDLE(<name>HVIDEOOUTPUTDEVICENV</name>);</type>
+ <type>DECLARE_HANDLE(<name>HPVIDEODEV</name>);</type>
+ <type>DECLARE_HANDLE(<name>HPGPUNV</name>);</type>
+ <type>DECLARE_HANDLE(<name>HGPUNV</name>);</type>
+ <type>DECLARE_HANDLE(<name>HVIDEOINPUTDEVICENV</name>);</type>
+ <type requires="_GPU_DEVICE">typedef struct _GPU_DEVICE <name>GPU_DEVICE</name>;</type>
+ <type requires="_GPU_DEVICE">typedef struct _GPU_DEVICE *<name>PGPU_DEVICE</name>;</type>
+ </types>
+
+ <!-- SECTION: WGL enumerant (token) definitions. -->
+
+ <!-- Bitmasks each have their own namespace, although bits are
+ sometimes reused for other purposes -->
+
+ <enums namespace="WGLLayerPlaneMask" type="bitmask" vendor="MS">
+ <enum value="0x00000001" name="WGL_SWAP_MAIN_PLANE"/>
+ <enum value="0x00000002" name="WGL_SWAP_OVERLAY1"/>
+ <enum value="0x00000004" name="WGL_SWAP_OVERLAY2"/>
+ <enum value="0x00000008" name="WGL_SWAP_OVERLAY3"/>
+ <enum value="0x00000010" name="WGL_SWAP_OVERLAY4"/>
+ <enum value="0x00000020" name="WGL_SWAP_OVERLAY5"/>
+ <enum value="0x00000040" name="WGL_SWAP_OVERLAY6"/>
+ <enum value="0x00000080" name="WGL_SWAP_OVERLAY7"/>
+ <enum value="0x00000100" name="WGL_SWAP_OVERLAY8"/>
+ <enum value="0x00000200" name="WGL_SWAP_OVERLAY9"/>
+ <enum value="0x00000400" name="WGL_SWAP_OVERLAY10"/>
+ <enum value="0x00000800" name="WGL_SWAP_OVERLAY11"/>
+ <enum value="0x00001000" name="WGL_SWAP_OVERLAY12"/>
+ <enum value="0x00002000" name="WGL_SWAP_OVERLAY13"/>
+ <enum value="0x00004000" name="WGL_SWAP_OVERLAY14"/>
+ <enum value="0x00008000" name="WGL_SWAP_OVERLAY15"/>
+ <enum value="0x00010000" name="WGL_SWAP_UNDERLAY1"/>
+ <enum value="0x00020000" name="WGL_SWAP_UNDERLAY2"/>
+ <enum value="0x00040000" name="WGL_SWAP_UNDERLAY3"/>
+ <enum value="0x00080000" name="WGL_SWAP_UNDERLAY4"/>
+ <enum value="0x00100000" name="WGL_SWAP_UNDERLAY5"/>
+ <enum value="0x00200000" name="WGL_SWAP_UNDERLAY6"/>
+ <enum value="0x00400000" name="WGL_SWAP_UNDERLAY7"/>
+ <enum value="0x00800000" name="WGL_SWAP_UNDERLAY8"/>
+ <enum value="0x01000000" name="WGL_SWAP_UNDERLAY9"/>
+ <enum value="0x02000000" name="WGL_SWAP_UNDERLAY10"/>
+ <enum value="0x04000000" name="WGL_SWAP_UNDERLAY11"/>
+ <enum value="0x08000000" name="WGL_SWAP_UNDERLAY12"/>
+ <enum value="0x10000000" name="WGL_SWAP_UNDERLAY13"/>
+ <enum value="0x20000000" name="WGL_SWAP_UNDERLAY14"/>
+ <enum value="0x40000000" name="WGL_SWAP_UNDERLAY15"/>
+ </enums>
+
+ <enums namespace="WGLColorBufferMask" type="bitmask" vendor="ARB">
+ <enum value="0x00000001" name="WGL_FRONT_COLOR_BUFFER_BIT_ARB"/>
+ <enum value="0x00000002" name="WGL_BACK_COLOR_BUFFER_BIT_ARB"/>
+ <enum value="0x00000004" name="WGL_DEPTH_BUFFER_BIT_ARB"/>
+ <enum value="0x00000008" name="WGL_STENCIL_BUFFER_BIT_ARB"/>
+ </enums>
+
+ <enums namespace="WGLContextFlagsMask" type="bitmask" vendor="ARB">
+ <enum value="0x00000001" name="WGL_CONTEXT_DEBUG_BIT_ARB"/>
+ <enum value="0x00000002" name="WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB"/>
+ <enum value="0x00000004" name="WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB"/>
+ <enum value="0x00000008" name="WGL_CONTEXT_RESET_ISOLATION_BIT_ARB"/>
+ </enums>
+
+ <enums namespace="WGLContextProfileMask" type="bitmask" vendor="ARB">
+ <enum value="0x00000001" name="WGL_CONTEXT_CORE_PROFILE_BIT_ARB"/>
+ <enum value="0x00000002" name="WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB"/>
+ <enum value="0x00000004" name="WGL_CONTEXT_ES_PROFILE_BIT_EXT"/>
+ <enum value="0x00000004" name="WGL_CONTEXT_ES2_PROFILE_BIT_EXT" alias="WGL_CONTEXT_ES_PROFILE_BIT_EXT"/>
+ </enums>
+
+ <enums namespace="WGLImageBufferMaskI3D" type="bitmask" vendor="I3D">
+ <enum value="0x00000001" name="WGL_IMAGE_BUFFER_MIN_ACCESS_I3D"/>
+ <enum value="0x00000002" name="WGL_IMAGE_BUFFER_LOCK_I3D"/>
+ </enums>
+
+ <enums namespace="WGLDXInteropMaskNV" type="bitmask" vendor="NV">
+ <enum value="0x00000000" name="WGL_ACCESS_READ_ONLY_NV"/>
+ <enum value="0x00000001" name="WGL_ACCESS_READ_WRITE_NV"/>
+ <enum value="0x00000002" name="WGL_ACCESS_WRITE_DISCARD_NV"/>
+ </enums>
+
+ <!-- The default ("API") enum namespace starts here. While some
+ assigned values may overlap, and different parts of the
+ namespace are reserved for different purposes, it is a single
+ namespace. The "class" attribute indicates some of the reserved
+ purposes but is by no means complete (and cannot be, since many
+ tokens are reused for different purposes in different
+ extensions and API versions). -->
+
+ <enums namespace="WGL" group="SpecialNumbers" vendor="MS">
+ <enum value="0" name="WGL_FONT_LINES"/>
+ <enum value="1" name="WGL_FONT_POLYGONS"/>
+ </enums>
+
+ <enums namespace="WGL" start="0x1F00" end="0x1F02" vendor="ARB" comment="Unclear why AMD used values in this range">
+ <enum value="0x1F00" name="WGL_GPU_VENDOR_AMD"/>
+ <enum value="0x1F01" name="WGL_GPU_RENDERER_STRING_AMD"/>
+ <enum value="0x1F02" name="WGL_GPU_OPENGL_VERSION_STRING_AMD"/>
+ </enums>
+
+ <enums namespace="WGL" start="0x2000" end="0x203F" vendor="ARB">
+ <enum value="0x2000" name="WGL_NUMBER_PIXEL_FORMATS_ARB"/>
+ <enum value="0x2000" name="WGL_NUMBER_PIXEL_FORMATS_EXT"/>
+ <enum value="0x2001" name="WGL_DRAW_TO_WINDOW_ARB"/>
+ <enum value="0x2001" name="WGL_DRAW_TO_WINDOW_EXT"/>
+ <enum value="0x2002" name="WGL_DRAW_TO_BITMAP_ARB"/>
+ <enum value="0x2002" name="WGL_DRAW_TO_BITMAP_EXT"/>
+ <enum value="0x2003" name="WGL_ACCELERATION_ARB"/>
+ <enum value="0x2003" name="WGL_ACCELERATION_EXT"/>
+ <enum value="0x2004" name="WGL_NEED_PALETTE_ARB"/>
+ <enum value="0x2004" name="WGL_NEED_PALETTE_EXT"/>
+ <enum value="0x2005" name="WGL_NEED_SYSTEM_PALETTE_ARB"/>
+ <enum value="0x2005" name="WGL_NEED_SYSTEM_PALETTE_EXT"/>
+ <enum value="0x2006" name="WGL_SWAP_LAYER_BUFFERS_ARB"/>
+ <enum value="0x2006" name="WGL_SWAP_LAYER_BUFFERS_EXT"/>
+ <enum value="0x2007" name="WGL_SWAP_METHOD_ARB"/>
+ <enum value="0x2007" name="WGL_SWAP_METHOD_EXT"/>
+ <enum value="0x2008" name="WGL_NUMBER_OVERLAYS_ARB"/>
+ <enum value="0x2008" name="WGL_NUMBER_OVERLAYS_EXT"/>
+ <enum value="0x2009" name="WGL_NUMBER_UNDERLAYS_ARB"/>
+ <enum value="0x2009" name="WGL_NUMBER_UNDERLAYS_EXT"/>
+ <enum value="0x200A" name="WGL_TRANSPARENT_ARB"/>
+ <enum value="0x200A" name="WGL_TRANSPARENT_EXT"/>
+ <enum value="0x200B" name="WGL_TRANSPARENT_VALUE_EXT"/>
+ <enum value="0x200C" name="WGL_SHARE_DEPTH_ARB"/>
+ <enum value="0x200C" name="WGL_SHARE_DEPTH_EXT"/>
+ <enum value="0x200D" name="WGL_SHARE_STENCIL_ARB"/>
+ <enum value="0x200D" name="WGL_SHARE_STENCIL_EXT"/>
+ <enum value="0x200E" name="WGL_SHARE_ACCUM_ARB"/>
+ <enum value="0x200E" name="WGL_SHARE_ACCUM_EXT"/>
+ <enum value="0x200F" name="WGL_SUPPORT_GDI_ARB"/>
+ <enum value="0x200F" name="WGL_SUPPORT_GDI_EXT"/>
+ <enum value="0x2010" name="WGL_SUPPORT_OPENGL_ARB"/>
+ <enum value="0x2010" name="WGL_SUPPORT_OPENGL_EXT"/>
+ <enum value="0x2011" name="WGL_DOUBLE_BUFFER_ARB"/>
+ <enum value="0x2011" name="WGL_DOUBLE_BUFFER_EXT"/>
+ <enum value="0x2012" name="WGL_STEREO_ARB"/>
+ <enum value="0x2012" name="WGL_STEREO_EXT"/>
+ <enum value="0x2013" name="WGL_PIXEL_TYPE_ARB"/>
+ <enum value="0x2013" name="WGL_PIXEL_TYPE_EXT"/>
+ <enum value="0x2014" name="WGL_COLOR_BITS_ARB"/>
+ <enum value="0x2014" name="WGL_COLOR_BITS_EXT"/>
+ <enum value="0x2015" name="WGL_RED_BITS_ARB"/>
+ <enum value="0x2015" name="WGL_RED_BITS_EXT"/>
+ <enum value="0x2016" name="WGL_RED_SHIFT_ARB"/>
+ <enum value="0x2016" name="WGL_RED_SHIFT_EXT"/>
+ <enum value="0x2017" name="WGL_GREEN_BITS_ARB"/>
+ <enum value="0x2017" name="WGL_GREEN_BITS_EXT"/>
+ <enum value="0x2018" name="WGL_GREEN_SHIFT_ARB"/>
+ <enum value="0x2018" name="WGL_GREEN_SHIFT_EXT"/>
+ <enum value="0x2019" name="WGL_BLUE_BITS_ARB"/>
+ <enum value="0x2019" name="WGL_BLUE_BITS_EXT"/>
+ <enum value="0x201A" name="WGL_BLUE_SHIFT_ARB"/>
+ <enum value="0x201A" name="WGL_BLUE_SHIFT_EXT"/>
+ <enum value="0x201B" name="WGL_ALPHA_BITS_ARB"/>
+ <enum value="0x201B" name="WGL_ALPHA_BITS_EXT"/>
+ <enum value="0x201C" name="WGL_ALPHA_SHIFT_ARB"/>
+ <enum value="0x201C" name="WGL_ALPHA_SHIFT_EXT"/>
+ <enum value="0x201D" name="WGL_ACCUM_BITS_ARB"/>
+ <enum value="0x201D" name="WGL_ACCUM_BITS_EXT"/>
+ <enum value="0x201E" name="WGL_ACCUM_RED_BITS_ARB"/>
+ <enum value="0x201E" name="WGL_ACCUM_RED_BITS_EXT"/>
+ <enum value="0x201F" name="WGL_ACCUM_GREEN_BITS_ARB"/>
+ <enum value="0x201F" name="WGL_ACCUM_GREEN_BITS_EXT"/>
+ <enum value="0x2020" name="WGL_ACCUM_BLUE_BITS_ARB"/>
+ <enum value="0x2020" name="WGL_ACCUM_BLUE_BITS_EXT"/>
+ <enum value="0x2021" name="WGL_ACCUM_ALPHA_BITS_ARB"/>
+ <enum value="0x2021" name="WGL_ACCUM_ALPHA_BITS_EXT"/>
+ <enum value="0x2022" name="WGL_DEPTH_BITS_ARB"/>
+ <enum value="0x2022" name="WGL_DEPTH_BITS_EXT"/>
+ <enum value="0x2023" name="WGL_STENCIL_BITS_ARB"/>
+ <enum value="0x2023" name="WGL_STENCIL_BITS_EXT"/>
+ <enum value="0x2024" name="WGL_AUX_BUFFERS_ARB"/>
+ <enum value="0x2024" name="WGL_AUX_BUFFERS_EXT"/>
+ <enum value="0x2025" name="WGL_NO_ACCELERATION_ARB"/>
+ <enum value="0x2025" name="WGL_NO_ACCELERATION_EXT"/>
+ <enum value="0x2026" name="WGL_GENERIC_ACCELERATION_ARB"/>
+ <enum value="0x2026" name="WGL_GENERIC_ACCELERATION_EXT"/>
+ <enum value="0x2027" name="WGL_FULL_ACCELERATION_ARB"/>
+ <enum value="0x2027" name="WGL_FULL_ACCELERATION_EXT"/>
+ <enum value="0x2028" name="WGL_SWAP_EXCHANGE_ARB"/>
+ <enum value="0x2028" name="WGL_SWAP_EXCHANGE_EXT"/>
+ <enum value="0x2029" name="WGL_SWAP_COPY_ARB"/>
+ <enum value="0x2029" name="WGL_SWAP_COPY_EXT"/>
+ <enum value="0x202A" name="WGL_SWAP_UNDEFINED_ARB"/>
+ <enum value="0x202A" name="WGL_SWAP_UNDEFINED_EXT"/>
+ <enum value="0x202B" name="WGL_TYPE_RGBA_ARB"/>
+ <enum value="0x202B" name="WGL_TYPE_RGBA_EXT"/>
+ <enum value="0x202C" name="WGL_TYPE_COLORINDEX_ARB"/>
+ <enum value="0x202C" name="WGL_TYPE_COLORINDEX_EXT"/>
+ <enum value="0x202D" name="WGL_DRAW_TO_PBUFFER_ARB"/>
+ <enum value="0x202D" name="WGL_DRAW_TO_PBUFFER_EXT"/>
+ <enum value="0x202E" name="WGL_MAX_PBUFFER_PIXELS_ARB"/>
+ <enum value="0x202E" name="WGL_MAX_PBUFFER_PIXELS_EXT"/>
+ <enum value="0x202F" name="WGL_MAX_PBUFFER_WIDTH_ARB"/>
+ <enum value="0x202F" name="WGL_MAX_PBUFFER_WIDTH_EXT"/>
+ <enum value="0x2030" name="WGL_MAX_PBUFFER_HEIGHT_ARB"/>
+ <enum value="0x2030" name="WGL_MAX_PBUFFER_HEIGHT_EXT"/>
+ <enum value="0x2031" name="WGL_OPTIMAL_PBUFFER_WIDTH_EXT"/>
+ <enum value="0x2032" name="WGL_OPTIMAL_PBUFFER_HEIGHT_EXT"/>
+ <enum value="0x2033" name="WGL_PBUFFER_LARGEST_ARB"/>
+ <enum value="0x2033" name="WGL_PBUFFER_LARGEST_EXT"/>
+ <enum value="0x2034" name="WGL_PBUFFER_WIDTH_ARB"/>
+ <enum value="0x2034" name="WGL_PBUFFER_WIDTH_EXT"/>
+ <enum value="0x2035" name="WGL_PBUFFER_HEIGHT_ARB"/>
+ <enum value="0x2035" name="WGL_PBUFFER_HEIGHT_EXT"/>
+ <enum value="0x2036" name="WGL_PBUFFER_LOST_ARB"/>
+ <enum value="0x2037" name="WGL_TRANSPARENT_RED_VALUE_ARB"/>
+ <enum value="0x2038" name="WGL_TRANSPARENT_GREEN_VALUE_ARB"/>
+ <enum value="0x2039" name="WGL_TRANSPARENT_BLUE_VALUE_ARB"/>
+ <enum value="0x203A" name="WGL_TRANSPARENT_ALPHA_VALUE_ARB"/>
+ <enum value="0x203B" name="WGL_TRANSPARENT_INDEX_VALUE_ARB"/>
+ <unused start="0x203C" end="0x203F"/>
+ </enums>
+
+ <enums namespace="WGL" start="0x2040" end="0x205F" vendor="I3D">
+ <enum value="0x2040" name="WGL_DEPTH_FLOAT_EXT"/>
+ <enum value="0x2041" name="WGL_SAMPLE_BUFFERS_ARB"/>
+ <enum value="0x2041" name="WGL_SAMPLE_BUFFERS_EXT"/>
+ <enum value="0x2042" name="WGL_COVERAGE_SAMPLES_NV"/>
+ <enum value="0x2042" name="WGL_SAMPLES_ARB"/>
+ <enum value="0x2042" name="WGL_SAMPLES_EXT"/>
+ <enum value="0x2043" name="ERROR_INVALID_PIXEL_TYPE_ARB"/>
+ <enum value="0x2043" name="ERROR_INVALID_PIXEL_TYPE_EXT"/>
+ <enum value="0x2044" name="WGL_GENLOCK_SOURCE_MULTIVIEW_I3D"/>
+ <enum value="0x2045" name="WGL_GENLOCK_SOURCE_EXTERNAL_SYNC_I3D"/>
+ <enum value="0x2046" name="WGL_GENLOCK_SOURCE_EXTERNAL_FIELD_I3D"/>
+ <enum value="0x2047" name="WGL_GENLOCK_SOURCE_EXTERNAL_TTL_I3D"/>
+ <enum value="0x2048" name="WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D"/>
+ <enum value="0x2049" name="WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D"/>
+ <enum value="0x204A" name="WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D"/>
+ <enum value="0x204B" name="WGL_GENLOCK_SOURCE_EDGE_RISING_I3D"/>
+ <enum value="0x204C" name="WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D"/>
+ <unused start="0x204D"/>
+ <enum value="0x204E" name="WGL_GAMMA_TABLE_SIZE_I3D"/>
+ <enum value="0x204F" name="WGL_GAMMA_EXCLUDE_DESKTOP_I3D"/>
+ <enum value="0x2050" name="WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D"/>
+ <enum value="0x2051" name="WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D"/>
+ <enum value="0x2052" name="WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D"/>
+ <enum value="0x2053" name="WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D"/>
+ <enum value="0x2054" name="ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB"/>
+ <enum value="0x2055" name="WGL_STEREO_EMITTER_ENABLE_3DL"/>
+ <enum value="0x2056" name="WGL_STEREO_EMITTER_DISABLE_3DL"/>
+ <enum value="0x2057" name="WGL_STEREO_POLARITY_NORMAL_3DL"/>
+ <enum value="0x2058" name="WGL_STEREO_POLARITY_INVERT_3DL"/>
+ <unused start="0x2059" end="0x205F"/>
+ </enums>
+
+ <enums namespace="WGL" start="0x2060" end="0x206F" vendor="3Dfx">
+ <unused start="0x2060" end="0x206F" comment="Could be reclaimed"/>
+ </enums>
+
+ <enums namespace="WGL" start="0x2070" end="0x209F" vendor="ARB">
+ <enum value="0x2060" name="WGL_SAMPLE_BUFFERS_3DFX"/>
+ <enum value="0x2061" name="WGL_SAMPLES_3DFX"/>
+ <enum value="0x2070" name="WGL_BIND_TO_TEXTURE_RGB_ARB"/>
+ <enum value="0x2071" name="WGL_BIND_TO_TEXTURE_RGBA_ARB"/>
+ <enum value="0x2072" name="WGL_TEXTURE_FORMAT_ARB"/>
+ <enum value="0x2073" name="WGL_TEXTURE_TARGET_ARB"/>
+ <enum value="0x2074" name="WGL_MIPMAP_TEXTURE_ARB"/>
+ <enum value="0x2075" name="WGL_TEXTURE_RGB_ARB"/>
+ <enum value="0x2076" name="WGL_TEXTURE_RGBA_ARB"/>
+ <enum value="0x2077" name="WGL_NO_TEXTURE_ARB"/>
+ <enum value="0x2078" name="WGL_TEXTURE_CUBE_MAP_ARB"/>
+ <enum value="0x2079" name="WGL_TEXTURE_1D_ARB"/>
+ <enum value="0x207A" name="WGL_TEXTURE_2D_ARB"/>
+ <enum value="0x207B" name="WGL_MIPMAP_LEVEL_ARB"/>
+ <enum value="0x207C" name="WGL_CUBE_MAP_FACE_ARB"/>
+ <enum value="0x207D" name="WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB"/>
+ <enum value="0x207E" name="WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB"/>
+ <enum value="0x207F" name="WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB"/>
+ <enum value="0x2080" name="WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB"/>
+ <enum value="0x2081" name="WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB"/>
+ <enum value="0x2082" name="WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB"/>
+ <enum value="0x2083" name="WGL_FRONT_LEFT_ARB"/>
+ <enum value="0x2084" name="WGL_FRONT_RIGHT_ARB"/>
+ <enum value="0x2085" name="WGL_BACK_LEFT_ARB"/>
+ <enum value="0x2086" name="WGL_BACK_RIGHT_ARB"/>
+ <enum value="0x2087" name="WGL_AUX0_ARB"/>
+ <enum value="0x2088" name="WGL_AUX1_ARB"/>
+ <enum value="0x2089" name="WGL_AUX2_ARB"/>
+ <enum value="0x208A" name="WGL_AUX3_ARB"/>
+ <enum value="0x208B" name="WGL_AUX4_ARB"/>
+ <enum value="0x208C" name="WGL_AUX5_ARB"/>
+ <enum value="0x208D" name="WGL_AUX6_ARB"/>
+ <enum value="0x208E" name="WGL_AUX7_ARB"/>
+ <enum value="0x208F" name="WGL_AUX8_ARB"/>
+ <enum value="0x2090" name="WGL_AUX9_ARB"/>
+ <enum value="0x2091" name="WGL_CONTEXT_MAJOR_VERSION_ARB"/>
+ <enum value="0x2092" name="WGL_CONTEXT_MINOR_VERSION_ARB"/>
+ <enum value="0x2093" name="WGL_CONTEXT_LAYER_PLANE_ARB"/>
+ <enum value="0x2094" name="WGL_CONTEXT_FLAGS_ARB"/>
+ <enum value="0x2095" name="ERROR_INVALID_VERSION_ARB"/>
+ <enum value="0x2096" name="ERROR_INVALID_PROFILE_ARB"/>
+ <unused start="0x2097" end="0x209F"/>
+ </enums>
+
+ <enums namespace="WGL" start="0x20A0" end="0x219F" vendor="NV" comment="shared with GLX">
+ <enum value="0x20A0" name="WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV"/>
+ <enum value="0x20A1" name="WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV"/>
+ <enum value="0x20A2" name="WGL_TEXTURE_RECTANGLE_NV"/>
+ <enum value="0x20A3" name="WGL_BIND_TO_TEXTURE_DEPTH_NV"/>
+ <enum value="0x20A4" name="WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV"/>
+ <enum value="0x20A5" name="WGL_DEPTH_TEXTURE_FORMAT_NV"/>
+ <enum value="0x20A6" name="WGL_TEXTURE_DEPTH_COMPONENT_NV"/>
+ <enum value="0x20A7" name="WGL_DEPTH_COMPONENT_NV"/>
+ <enum value="0x20A8" name="WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT"/>
+ <enum value="0x20A9" name="WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB"/>
+ <enum value="0x20A9" name="WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT"/>
+ <unused start="0x20AA" end="0x20AF"/>
+ <enum value="0x20B0" name="WGL_FLOAT_COMPONENTS_NV"/>
+ <enum value="0x20B1" name="WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV"/>
+ <enum value="0x20B2" name="WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV"/>
+ <enum value="0x20B3" name="WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV"/>
+ <enum value="0x20B4" name="WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV"/>
+ <enum value="0x20B5" name="WGL_TEXTURE_FLOAT_R_NV"/>
+ <enum value="0x20B6" name="WGL_TEXTURE_FLOAT_RG_NV"/>
+ <enum value="0x20B7" name="WGL_TEXTURE_FLOAT_RGB_NV"/>
+ <enum value="0x20B8" name="WGL_TEXTURE_FLOAT_RGBA_NV"/>
+ <enum value="0x20B9" name="WGL_COLOR_SAMPLES_NV"/>
+ <unused start="0x20BA" end="0x20BF"/>
+ <enum value="0x20C0" name="WGL_BIND_TO_VIDEO_RGB_NV"/>
+ <enum value="0x20C1" name="WGL_BIND_TO_VIDEO_RGBA_NV"/>
+ <enum value="0x20C2" name="WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV"/>
+ <enum value="0x20C3" name="WGL_VIDEO_OUT_COLOR_NV"/>
+ <enum value="0x20C4" name="WGL_VIDEO_OUT_ALPHA_NV"/>
+ <enum value="0x20C5" name="WGL_VIDEO_OUT_DEPTH_NV"/>
+ <enum value="0x20C6" name="WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV"/>
+ <enum value="0x20C7" name="WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV"/>
+ <enum value="0x20C8" name="WGL_VIDEO_OUT_FRAME"/>
+ <enum value="0x20C9" name="WGL_VIDEO_OUT_FIELD_1"/>
+ <enum value="0x20CA" name="WGL_VIDEO_OUT_FIELD_2"/>
+ <enum value="0x20CB" name="WGL_VIDEO_OUT_STACKED_FIELDS_1_2"/>
+ <enum value="0x20CC" name="WGL_VIDEO_OUT_STACKED_FIELDS_2_1"/>
+ <unused start="0x20CD" comment="reserved for GLX_DEVICE_ID_NV (not present in WGL interface)"/>
+ <enum value="0x20CE" name="WGL_UNIQUE_ID_NV"/>
+ <enum value="0x20CF" name="WGL_NUM_VIDEO_CAPTURE_SLOTS_NV"/>
+ <enum value="0x20D0" name="ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV"/>
+ <enum value="0x20D1" name="ERROR_MISSING_AFFINITY_MASK_NV"/>
+ <unused start="0x20D2" end="0x20EF"/>
+ <enum value="0x20F0" name="WGL_NUM_VIDEO_SLOTS_NV"/>
+ <unused start="0x20F1" end="0x219F"/>
+ </enums>
+
+ <enums namespace="WGL" start="0x21A0" end="0x21AF" vendor="AMD">
+ <enum value="0x21A0" name="WGL_TYPE_RGBA_FLOAT_ARB"/>
+ <enum value="0x21A0" name="WGL_TYPE_RGBA_FLOAT_ATI"/>
+ <unused start="0x21A1"/>
+ <enum value="0x21A2" name="WGL_GPU_FASTEST_TARGET_GPUS_AMD"/>
+ <enum value="0x21A3" name="WGL_GPU_RAM_AMD"/>
+ <enum value="0x21A4" name="WGL_GPU_CLOCK_AMD"/>
+ <enum value="0x21A5" name="WGL_GPU_NUM_PIPES_AMD"/>
+ <enum value="0x21A6" name="WGL_GPU_NUM_SIMD_AMD"/>
+ <enum value="0x21A7" name="WGL_GPU_NUM_RB_AMD"/>
+ <enum value="0x21A8" name="WGL_GPU_NUM_SPI_AMD"/>
+ <unused start="0x21A9" end="0x21AF"/>
+ </enums>
+
+ <enums namespace="WGL" start="0x21B0" end="0x21BF" vendor="Matrox" comment="could be reclaimed (tentative, RFC sent to ARB 2002/10/3)">
+ <unused start="0x21B0" end="0x21BF"/>
+ </enums>
+
+<!-- Please remember that new enumerant allocations must be obtained by
+ request to the Khronos API registrar (see comments at the top of this
+ file) File requests in the Khronos Bugzilla, OpenGL project, Registry
+ component. Also note that some GLX enum values are shared with GL and
+ WGL, and new ranges should be allocated with such overlaps in mind. -->
+
+<!-- Reservable for future use: 0x21C0-0x2FFF.
+ To generate a new range, allocate multiples of 16 starting at the
+ lowest available point in this block. -->
+ <enums namespace="WGL" start="0x21C0" end="0x2FFF" vendor="ARB">
+ <unused start="0x21C0" end="0x2FFF" comment="Reserved for future use"/>
+ </enums>
+
+ <enums namespace="GL" start="0x8250" end="0x826F" vendor="ARB" comment="Values shared with GL. Do not allocate additional values in this range.">
+ <enum value="0x8252" name="WGL_LOSE_CONTEXT_ON_RESET_ARB"/>
+ <enum value="0x8256" name="WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB"/>
+ <enum value="0x8261" name="WGL_NO_RESET_NOTIFICATION_ARB"/>
+ </enums>
+
+ <enums namespace="GL" start="0x9120" end="0x912F" vendor="ARB" comment="Values shared with GL. Do not allocate additional values in this range.">
+ <enum value="0x9126" name="WGL_CONTEXT_PROFILE_MASK_ARB"/>
+ </enums>
+
+ <!-- SECTION: WGL command definitions. -->
+ <commands namespace="WGL">
+ <command>
+ <proto>int <name>ChoosePixelFormat</name></proto>
+ <param><ptype>HDC</ptype> <name>hDc</name></param>
+ <param>const <ptype>PIXELFORMATDESCRIPTOR</ptype> *<name>pPfd</name></param>
+ </command>
+ <command>
+ <proto>int <name>DescribePixelFormat</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ <param>int <name>ipfd</name></param>
+ <param><ptype>UINT</ptype> <name>cjpfd</name></param>
+ <param>const <ptype>PIXELFORMATDESCRIPTOR</ptype> *<name>ppfd</name></param>
+ </command>
+ <command>
+ <proto>int <name>GetPixelFormat</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>SetPixelFormat</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ <param>int <name>ipfd</name></param>
+ <param>const <ptype>PIXELFORMATDESCRIPTOR</ptype> *<name>ppfd</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>SwapBuffers</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ </command>
+ <command>
+ <proto>void *<name>wglAllocateMemoryNV</name></proto>
+ <param><ptype>GLsizei</ptype> <name>size</name></param>
+ <param><ptype>GLfloat</ptype> <name>readfreq</name></param>
+ <param><ptype>GLfloat</ptype> <name>writefreq</name></param>
+ <param><ptype>GLfloat</ptype> <name>priority</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglAssociateImageBufferEventsI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param>const <ptype>HANDLE</ptype> *<name>pEvent</name></param>
+ <param>const <ptype>LPVOID</ptype> *<name>pAddress</name></param>
+ <param>const <ptype>DWORD</ptype> *<name>pSize</name></param>
+ <param><ptype>UINT</ptype> <name>count</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglBeginFrameTrackingI3D</name></proto>
+ </command>
+ <command>
+ <proto><ptype>GLboolean</ptype> <name>wglBindDisplayColorTableEXT</name></proto>
+ <param><ptype>GLushort</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglBindSwapBarrierNV</name></proto>
+ <param><ptype>GLuint</ptype> <name>group</name></param>
+ <param><ptype>GLuint</ptype> <name>barrier</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglBindTexImageARB</name></proto>
+ <param><ptype>HPBUFFERARB</ptype> <name>hPbuffer</name></param>
+ <param>int <name>iBuffer</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglBindVideoCaptureDeviceNV</name></proto>
+ <param><ptype>UINT</ptype> <name>uVideoSlot</name></param>
+ <param><ptype>HVIDEOINPUTDEVICENV</ptype> <name>hDevice</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglBindVideoDeviceNV</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param>unsigned int <name>uVideoSlot</name></param>
+ <param><ptype>HVIDEOOUTPUTDEVICENV</ptype> <name>hVideoDevice</name></param>
+ <param>const int *<name>piAttribList</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglBindVideoImageNV</name></proto>
+ <param><ptype>HPVIDEODEV</ptype> <name>hVideoDevice</name></param>
+ <param><ptype>HPBUFFERARB</ptype> <name>hPbuffer</name></param>
+ <param>int <name>iVideoBuffer</name></param>
+ </command>
+ <command>
+ <proto><ptype>VOID</ptype> <name>wglBlitContextFramebufferAMD</name></proto>
+ <param><ptype>HGLRC</ptype> <name>dstCtx</name></param>
+ <param><ptype>GLint</ptype> <name>srcX0</name></param>
+ <param><ptype>GLint</ptype> <name>srcY0</name></param>
+ <param><ptype>GLint</ptype> <name>srcX1</name></param>
+ <param><ptype>GLint</ptype> <name>srcY1</name></param>
+ <param><ptype>GLint</ptype> <name>dstX0</name></param>
+ <param><ptype>GLint</ptype> <name>dstY0</name></param>
+ <param><ptype>GLint</ptype> <name>dstX1</name></param>
+ <param><ptype>GLint</ptype> <name>dstY1</name></param>
+ <param><ptype>GLbitfield</ptype> <name>mask</name></param>
+ <param><ptype>GLenum</ptype> <name>filter</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglChoosePixelFormatARB</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ <param>const int *<name>piAttribIList</name></param>
+ <param>const <ptype>FLOAT</ptype> *<name>pfAttribFList</name></param>
+ <param><ptype>UINT</ptype> <name>nMaxFormats</name></param>
+ <param>int *<name>piFormats</name></param>
+ <param><ptype>UINT</ptype> *<name>nNumFormats</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglChoosePixelFormatEXT</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ <param>const int *<name>piAttribIList</name></param>
+ <param>const <ptype>FLOAT</ptype> *<name>pfAttribFList</name></param>
+ <param><ptype>UINT</ptype> <name>nMaxFormats</name></param>
+ <param>int *<name>piFormats</name></param>
+ <param><ptype>UINT</ptype> *<name>nNumFormats</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglCopyContext</name></proto>
+ <param><ptype>HGLRC</ptype> <name>hglrcSrc</name></param>
+ <param><ptype>HGLRC</ptype> <name>hglrcDst</name></param>
+ <param><ptype>UINT</ptype> <name>mask</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglCopyImageSubDataNV</name></proto>
+ <param><ptype>HGLRC</ptype> <name>hSrcRC</name></param>
+ <param><ptype>GLuint</ptype> <name>srcName</name></param>
+ <param><ptype>GLenum</ptype> <name>srcTarget</name></param>
+ <param><ptype>GLint</ptype> <name>srcLevel</name></param>
+ <param><ptype>GLint</ptype> <name>srcX</name></param>
+ <param><ptype>GLint</ptype> <name>srcY</name></param>
+ <param><ptype>GLint</ptype> <name>srcZ</name></param>
+ <param><ptype>HGLRC</ptype> <name>hDstRC</name></param>
+ <param><ptype>GLuint</ptype> <name>dstName</name></param>
+ <param><ptype>GLenum</ptype> <name>dstTarget</name></param>
+ <param><ptype>GLint</ptype> <name>dstLevel</name></param>
+ <param><ptype>GLint</ptype> <name>dstX</name></param>
+ <param><ptype>GLint</ptype> <name>dstY</name></param>
+ <param><ptype>GLint</ptype> <name>dstZ</name></param>
+ <param><ptype>GLsizei</ptype> <name>width</name></param>
+ <param><ptype>GLsizei</ptype> <name>height</name></param>
+ <param><ptype>GLsizei</ptype> <name>depth</name></param>
+ </command>
+ <command>
+ <proto><ptype>HDC</ptype> <name>wglCreateAffinityDCNV</name></proto>
+ <param>const <ptype>HGPUNV</ptype> *<name>phGpuList</name></param>
+ </command>
+ <command>
+ <proto><ptype>HGLRC</ptype> <name>wglCreateAssociatedContextAMD</name></proto>
+ <param><ptype>UINT</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto><ptype>HGLRC</ptype> <name>wglCreateAssociatedContextAttribsAMD</name></proto>
+ <param><ptype>UINT</ptype> <name>id</name></param>
+ <param><ptype>HGLRC</ptype> <name>hShareContext</name></param>
+ <param>const int *<name>attribList</name></param>
+ </command>
+ <command>
+ <proto><ptype>HANDLE</ptype> <name>wglCreateBufferRegionARB</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param>int <name>iLayerPlane</name></param>
+ <param><ptype>UINT</ptype> <name>uType</name></param>
+ </command>
+ <command>
+ <proto><ptype>HGLRC</ptype> <name>wglCreateContext</name></proto>
+ <param><ptype>HDC</ptype> <name>hDc</name></param>
+ </command>
+ <command>
+ <proto><ptype>HGLRC</ptype> <name>wglCreateContextAttribsARB</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>HGLRC</ptype> <name>hShareContext</name></param>
+ <param>const int *<name>attribList</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLboolean</ptype> <name>wglCreateDisplayColorTableEXT</name></proto>
+ <param><ptype>GLushort</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto><ptype>LPVOID</ptype> <name>wglCreateImageBufferI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>DWORD</ptype> <name>dwSize</name></param>
+ <param><ptype>UINT</ptype> <name>uFlags</name></param>
+ </command>
+ <command>
+ <proto><ptype>HGLRC</ptype> <name>wglCreateLayerContext</name></proto>
+ <param><ptype>HDC</ptype> <name>hDc</name></param>
+ <param>int <name>level</name></param>
+ </command>
+ <command>
+ <proto><ptype>HPBUFFERARB</ptype> <name>wglCreatePbufferARB</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param>int <name>iPixelFormat</name></param>
+ <param>int <name>iWidth</name></param>
+ <param>int <name>iHeight</name></param>
+ <param>const int *<name>piAttribList</name></param>
+ </command>
+ <command>
+ <proto><ptype>HPBUFFEREXT</ptype> <name>wglCreatePbufferEXT</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param>int <name>iPixelFormat</name></param>
+ <param>int <name>iWidth</name></param>
+ <param>int <name>iHeight</name></param>
+ <param>const int *<name>piAttribList</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglDeleteAssociatedContextAMD</name></proto>
+ <param><ptype>HGLRC</ptype> <name>hglrc</name></param>
+ </command>
+ <command>
+ <proto><ptype>VOID</ptype> <name>wglDeleteBufferRegionARB</name></proto>
+ <param><ptype>HANDLE</ptype> <name>hRegion</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglDeleteContext</name></proto>
+ <param><ptype>HGLRC</ptype> <name>oldContext</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglDeleteDCNV</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglDescribeLayerPlane</name></proto>
+ <param><ptype>HDC</ptype> <name>hDc</name></param>
+ <param>int <name>pixelFormat</name></param>
+ <param>int <name>layerPlane</name></param>
+ <param><ptype>UINT</ptype> <name>nBytes</name></param>
+ <param>const <ptype>LAYERPLANEDESCRIPTOR</ptype> *<name>plpd</name></param>
+ </command>
+ <command>
+ <proto><ptype>VOID</ptype> <name>wglDestroyDisplayColorTableEXT</name></proto>
+ <param><ptype>GLushort</ptype> <name>id</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglDestroyImageBufferI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>LPVOID</ptype> <name>pAddress</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglDestroyPbufferARB</name></proto>
+ <param><ptype>HPBUFFERARB</ptype> <name>hPbuffer</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglDestroyPbufferEXT</name></proto>
+ <param><ptype>HPBUFFEREXT</ptype> <name>hPbuffer</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglDisableFrameLockI3D</name></proto>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglDisableGenlockI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglDXCloseDeviceNV</name></proto>
+ <param><ptype>HANDLE</ptype> <name>hDevice</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglDXLockObjectsNV</name></proto>
+ <param><ptype>HANDLE</ptype> <name>hDevice</name></param>
+ <param><ptype>GLint</ptype> <name>count</name></param>
+ <param><ptype>HANDLE</ptype> *<name>hObjects</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglDXObjectAccessNV</name></proto>
+ <param><ptype>HANDLE</ptype> <name>hObject</name></param>
+ <param><ptype>GLenum</ptype> <name>access</name></param>
+ </command>
+ <command>
+ <proto><ptype>HANDLE</ptype> <name>wglDXOpenDeviceNV</name></proto>
+ <param>void *<name>dxDevice</name></param>
+ </command>
+ <command>
+ <proto><ptype>HANDLE</ptype> <name>wglDXRegisterObjectNV</name></proto>
+ <param><ptype>HANDLE</ptype> <name>hDevice</name></param>
+ <param>void *<name>dxObject</name></param>
+ <param><ptype>GLuint</ptype> <name>name</name></param>
+ <param><ptype>GLenum</ptype> <name>type</name></param>
+ <param><ptype>GLenum</ptype> <name>access</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglDXSetResourceShareHandleNV</name></proto>
+ <param>void *<name>dxObject</name></param>
+ <param><ptype>HANDLE</ptype> <name>shareHandle</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglDXUnlockObjectsNV</name></proto>
+ <param><ptype>HANDLE</ptype> <name>hDevice</name></param>
+ <param><ptype>GLint</ptype> <name>count</name></param>
+ <param><ptype>HANDLE</ptype> *<name>hObjects</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglDXUnregisterObjectNV</name></proto>
+ <param><ptype>HANDLE</ptype> <name>hDevice</name></param>
+ <param><ptype>HANDLE</ptype> <name>hObject</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglEnableFrameLockI3D</name></proto>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglEnableGenlockI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglEndFrameTrackingI3D</name></proto>
+ </command>
+ <command>
+ <proto><ptype>UINT</ptype> <name>wglEnumerateVideoCaptureDevicesNV</name></proto>
+ <param><ptype>HDC</ptype> <name>hDc</name></param>
+ <param><ptype>HVIDEOINPUTDEVICENV</ptype> *<name>phDeviceList</name></param>
+ </command>
+ <command>
+ <proto>int <name>wglEnumerateVideoDevicesNV</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>HVIDEOOUTPUTDEVICENV</ptype> *<name>phDeviceList</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglEnumGpuDevicesNV</name></proto>
+ <param><ptype>HGPUNV</ptype> <name>hGpu</name></param>
+ <param><ptype>UINT</ptype> <name>iDeviceIndex</name></param>
+ <param><ptype>PGPU_DEVICE</ptype> <name>lpGpuDevice</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglEnumGpusFromAffinityDCNV</name></proto>
+ <param><ptype>HDC</ptype> <name>hAffinityDC</name></param>
+ <param><ptype>UINT</ptype> <name>iGpuIndex</name></param>
+ <param><ptype>HGPUNV</ptype> *<name>hGpu</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglEnumGpusNV</name></proto>
+ <param><ptype>UINT</ptype> <name>iGpuIndex</name></param>
+ <param><ptype>HGPUNV</ptype> *<name>phGpu</name></param>
+ </command>
+ <command>
+ <proto>void <name>wglFreeMemoryNV</name></proto>
+ <param>void *<name>pointer</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglGenlockSampleRateI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>UINT</ptype> <name>uRate</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglGenlockSourceDelayI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>UINT</ptype> <name>uDelay</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglGenlockSourceEdgeI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>UINT</ptype> <name>uEdge</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglGenlockSourceI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>UINT</ptype> <name>uSource</name></param>
+ </command>
+ <command>
+ <proto><ptype>UINT</ptype> <name>wglGetContextGPUIDAMD</name></proto>
+ <param><ptype>HGLRC</ptype> <name>hglrc</name></param>
+ </command>
+ <command>
+ <proto><ptype>HGLRC</ptype> <name>wglGetCurrentAssociatedContextAMD</name></proto>
+ </command>
+ <command>
+ <proto><ptype>HGLRC</ptype> <name>wglGetCurrentContext</name></proto>
+ </command>
+ <command>
+ <proto><ptype>HDC</ptype> <name>wglGetCurrentDC</name></proto>
+ </command>
+ <command>
+ <proto><ptype>HDC</ptype> <name>wglGetCurrentReadDCARB</name></proto>
+ </command>
+ <command>
+ <proto><ptype>HDC</ptype> <name>wglGetCurrentReadDCEXT</name></proto>
+ </command>
+ <command>
+ <proto><ptype>PROC</ptype> <name>wglGetDefaultProcAddress</name></proto>
+ <param><ptype>LPCSTR</ptype> <name>lpszProc</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglGetDigitalVideoParametersI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param>int <name>iAttribute</name></param>
+ <param>int *<name>piValue</name></param>
+ </command>
+ <command>
+ <proto><ptype>UINT</ptype> <name>GetEnhMetaFilePixelFormat</name></proto>
+ <param><ptype>HENHMETAFILE</ptype> <name>hemf</name></param>
+ <param>const <ptype>PIXELFORMATDESCRIPTOR</ptype> *<name>ppfd</name></param>
+ </command>
+ <command>
+ <proto>const char *<name>wglGetExtensionsStringARB</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ </command>
+ <command>
+ <proto>const char *<name>wglGetExtensionsStringEXT</name></proto>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglGetFrameUsageI3D</name></proto>
+ <param>float *<name>pUsage</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglGetGammaTableI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param>int <name>iEntries</name></param>
+ <param><ptype>USHORT</ptype> *<name>puRed</name></param>
+ <param><ptype>USHORT</ptype> *<name>puGreen</name></param>
+ <param><ptype>USHORT</ptype> *<name>puBlue</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglGetGammaTableParametersI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param>int <name>iAttribute</name></param>
+ <param>int *<name>piValue</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglGetGenlockSampleRateI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>UINT</ptype> *<name>uRate</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglGetGenlockSourceDelayI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>UINT</ptype> *<name>uDelay</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglGetGenlockSourceEdgeI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>UINT</ptype> *<name>uEdge</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglGetGenlockSourceI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>UINT</ptype> *<name>uSource</name></param>
+ </command>
+ <command>
+ <proto><ptype>UINT</ptype> <name>wglGetGPUIDsAMD</name></proto>
+ <param><ptype>UINT</ptype> <name>maxCount</name></param>
+ <param><ptype>UINT</ptype> *<name>ids</name></param>
+ </command>
+ <command>
+ <proto><ptype>INT</ptype> <name>wglGetGPUInfoAMD</name></proto>
+ <param><ptype>UINT</ptype> <name>id</name></param>
+ <param>int <name>property</name></param>
+ <param><ptype>GLenum</ptype> <name>dataType</name></param>
+ <param><ptype>UINT</ptype> <name>size</name></param>
+ <param>void *<name>data</name></param>
+ </command>
+ <command>
+ <proto>int <name>wglGetLayerPaletteEntries</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ <param>int <name>iLayerPlane</name></param>
+ <param>int <name>iStart</name></param>
+ <param>int <name>cEntries</name></param>
+ <param>const <ptype>COLORREF</ptype> *<name>pcr</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglGetMscRateOML</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ <param><ptype>INT32</ptype> *<name>numerator</name></param>
+ <param><ptype>INT32</ptype> *<name>denominator</name></param>
+ </command>
+ <command>
+ <proto><ptype>HDC</ptype> <name>wglGetPbufferDCARB</name></proto>
+ <param><ptype>HPBUFFERARB</ptype> <name>hPbuffer</name></param>
+ </command>
+ <command>
+ <proto><ptype>HDC</ptype> <name>wglGetPbufferDCEXT</name></proto>
+ <param><ptype>HPBUFFEREXT</ptype> <name>hPbuffer</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglGetPixelFormatAttribfvARB</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ <param>int <name>iPixelFormat</name></param>
+ <param>int <name>iLayerPlane</name></param>
+ <param><ptype>UINT</ptype> <name>nAttributes</name></param>
+ <param>const int *<name>piAttributes</name></param>
+ <param><ptype>FLOAT</ptype> *<name>pfValues</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglGetPixelFormatAttribfvEXT</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ <param>int <name>iPixelFormat</name></param>
+ <param>int <name>iLayerPlane</name></param>
+ <param><ptype>UINT</ptype> <name>nAttributes</name></param>
+ <param>int *<name>piAttributes</name></param>
+ <param><ptype>FLOAT</ptype> *<name>pfValues</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglGetPixelFormatAttribivARB</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ <param>int <name>iPixelFormat</name></param>
+ <param>int <name>iLayerPlane</name></param>
+ <param><ptype>UINT</ptype> <name>nAttributes</name></param>
+ <param>const int *<name>piAttributes</name></param>
+ <param>int *<name>piValues</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglGetPixelFormatAttribivEXT</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ <param>int <name>iPixelFormat</name></param>
+ <param>int <name>iLayerPlane</name></param>
+ <param><ptype>UINT</ptype> <name>nAttributes</name></param>
+ <param>int *<name>piAttributes</name></param>
+ <param>int *<name>piValues</name></param>
+ </command>
+ <command>
+ <proto><ptype>PROC</ptype> <name>wglGetProcAddress</name></proto>
+ <param><ptype>LPCSTR</ptype> <name>lpszProc</name></param>
+ </command>
+ <command>
+ <proto>int <name>wglGetSwapIntervalEXT</name></proto>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglGetSyncValuesOML</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ <param><ptype>INT64</ptype> *<name>ust</name></param>
+ <param><ptype>INT64</ptype> *<name>msc</name></param>
+ <param><ptype>INT64</ptype> *<name>sbc</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglGetVideoDeviceNV</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param>int <name>numDevices</name></param>
+ <param><ptype>HPVIDEODEV</ptype> *<name>hVideoDevice</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglGetVideoInfoNV</name></proto>
+ <param><ptype>HPVIDEODEV</ptype> <name>hpVideoDevice</name></param>
+ <param>unsigned long *<name>pulCounterOutputPbuffer</name></param>
+ <param>unsigned long *<name>pulCounterOutputVideo</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglIsEnabledFrameLockI3D</name></proto>
+ <param><ptype>BOOL</ptype> *<name>pFlag</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglIsEnabledGenlockI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>BOOL</ptype> *<name>pFlag</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglJoinSwapGroupNV</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>GLuint</ptype> <name>group</name></param>
+ </command>
+ <command>
+ <proto><ptype>GLboolean</ptype> <name>wglLoadDisplayColorTableEXT</name></proto>
+ <param>const <ptype>GLushort</ptype> *<name>table</name></param>
+ <param><ptype>GLuint</ptype> <name>length</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglLockVideoCaptureDeviceNV</name></proto>
+ <param><ptype>HDC</ptype> <name>hDc</name></param>
+ <param><ptype>HVIDEOINPUTDEVICENV</ptype> <name>hDevice</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglMakeAssociatedContextCurrentAMD</name></proto>
+ <param><ptype>HGLRC</ptype> <name>hglrc</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglMakeContextCurrentARB</name></proto>
+ <param><ptype>HDC</ptype> <name>hDrawDC</name></param>
+ <param><ptype>HDC</ptype> <name>hReadDC</name></param>
+ <param><ptype>HGLRC</ptype> <name>hglrc</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglMakeContextCurrentEXT</name></proto>
+ <param><ptype>HDC</ptype> <name>hDrawDC</name></param>
+ <param><ptype>HDC</ptype> <name>hReadDC</name></param>
+ <param><ptype>HGLRC</ptype> <name>hglrc</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglMakeCurrent</name></proto>
+ <param><ptype>HDC</ptype> <name>hDc</name></param>
+ <param><ptype>HGLRC</ptype> <name>newContext</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglQueryCurrentContextNV</name></proto>
+ <param>int <name>iAttribute</name></param>
+ <param>int *<name>piValue</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglQueryFrameCountNV</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>GLuint</ptype> *<name>count</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglQueryFrameLockMasterI3D</name></proto>
+ <param><ptype>BOOL</ptype> *<name>pFlag</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglQueryFrameTrackingI3D</name></proto>
+ <param><ptype>DWORD</ptype> *<name>pFrameCount</name></param>
+ <param><ptype>DWORD</ptype> *<name>pMissedFrames</name></param>
+ <param>float *<name>pLastMissedUsage</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglQueryGenlockMaxSourceDelayI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>UINT</ptype> *<name>uMaxLineDelay</name></param>
+ <param><ptype>UINT</ptype> *<name>uMaxPixelDelay</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglQueryMaxSwapGroupsNV</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>GLuint</ptype> *<name>maxGroups</name></param>
+ <param><ptype>GLuint</ptype> *<name>maxBarriers</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglQueryPbufferARB</name></proto>
+ <param><ptype>HPBUFFERARB</ptype> <name>hPbuffer</name></param>
+ <param>int <name>iAttribute</name></param>
+ <param>int *<name>piValue</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglQueryPbufferEXT</name></proto>
+ <param><ptype>HPBUFFEREXT</ptype> <name>hPbuffer</name></param>
+ <param>int <name>iAttribute</name></param>
+ <param>int *<name>piValue</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglQuerySwapGroupNV</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>GLuint</ptype> *<name>group</name></param>
+ <param><ptype>GLuint</ptype> *<name>barrier</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglQueryVideoCaptureDeviceNV</name></proto>
+ <param><ptype>HDC</ptype> <name>hDc</name></param>
+ <param><ptype>HVIDEOINPUTDEVICENV</ptype> <name>hDevice</name></param>
+ <param>int <name>iAttribute</name></param>
+ <param>int *<name>piValue</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglRealizeLayerPalette</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ <param>int <name>iLayerPlane</name></param>
+ <param><ptype>BOOL</ptype> <name>bRealize</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglReleaseImageBufferEventsI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param>const <ptype>LPVOID</ptype> *<name>pAddress</name></param>
+ <param><ptype>UINT</ptype> <name>count</name></param>
+ </command>
+ <command>
+ <proto>int <name>wglReleasePbufferDCARB</name></proto>
+ <param><ptype>HPBUFFERARB</ptype> <name>hPbuffer</name></param>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ </command>
+ <command>
+ <proto>int <name>wglReleasePbufferDCEXT</name></proto>
+ <param><ptype>HPBUFFEREXT</ptype> <name>hPbuffer</name></param>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglReleaseTexImageARB</name></proto>
+ <param><ptype>HPBUFFERARB</ptype> <name>hPbuffer</name></param>
+ <param>int <name>iBuffer</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglReleaseVideoCaptureDeviceNV</name></proto>
+ <param><ptype>HDC</ptype> <name>hDc</name></param>
+ <param><ptype>HVIDEOINPUTDEVICENV</ptype> <name>hDevice</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglReleaseVideoDeviceNV</name></proto>
+ <param><ptype>HPVIDEODEV</ptype> <name>hVideoDevice</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglReleaseVideoImageNV</name></proto>
+ <param><ptype>HPBUFFERARB</ptype> <name>hPbuffer</name></param>
+ <param>int <name>iVideoBuffer</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglResetFrameCountNV</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglRestoreBufferRegionARB</name></proto>
+ <param><ptype>HANDLE</ptype> <name>hRegion</name></param>
+ <param>int <name>x</name></param>
+ <param>int <name>y</name></param>
+ <param>int <name>width</name></param>
+ <param>int <name>height</name></param>
+ <param>int <name>xSrc</name></param>
+ <param>int <name>ySrc</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglSaveBufferRegionARB</name></proto>
+ <param><ptype>HANDLE</ptype> <name>hRegion</name></param>
+ <param>int <name>x</name></param>
+ <param>int <name>y</name></param>
+ <param>int <name>width</name></param>
+ <param>int <name>height</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglSendPbufferToVideoNV</name></proto>
+ <param><ptype>HPBUFFERARB</ptype> <name>hPbuffer</name></param>
+ <param>int <name>iBufferType</name></param>
+ <param>unsigned long *<name>pulCounterPbuffer</name></param>
+ <param><ptype>BOOL</ptype> <name>bBlock</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglSetDigitalVideoParametersI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param>int <name>iAttribute</name></param>
+ <param>const int *<name>piValue</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglSetGammaTableI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param>int <name>iEntries</name></param>
+ <param>const <ptype>USHORT</ptype> *<name>puRed</name></param>
+ <param>const <ptype>USHORT</ptype> *<name>puGreen</name></param>
+ <param>const <ptype>USHORT</ptype> *<name>puBlue</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglSetGammaTableParametersI3D</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param>int <name>iAttribute</name></param>
+ <param>const int *<name>piValue</name></param>
+ </command>
+ <command>
+ <proto>int <name>wglSetLayerPaletteEntries</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ <param>int <name>iLayerPlane</name></param>
+ <param>int <name>iStart</name></param>
+ <param>int <name>cEntries</name></param>
+ <param>const <ptype>COLORREF</ptype> *<name>pcr</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglSetPbufferAttribARB</name></proto>
+ <param><ptype>HPBUFFERARB</ptype> <name>hPbuffer</name></param>
+ <param>const int *<name>piAttribList</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglSetStereoEmitterState3DL</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>UINT</ptype> <name>uState</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglShareLists</name></proto>
+ <param><ptype>HGLRC</ptype> <name>hrcSrvShare</name></param>
+ <param><ptype>HGLRC</ptype> <name>hrcSrvSource</name></param>
+ </command>
+ <command>
+ <proto><ptype>INT64</ptype> <name>wglSwapBuffersMscOML</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ <param><ptype>INT64</ptype> <name>target_msc</name></param>
+ <param><ptype>INT64</ptype> <name>divisor</name></param>
+ <param><ptype>INT64</ptype> <name>remainder</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglSwapLayerBuffers</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ <param><ptype>UINT</ptype> <name>fuFlags</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglSwapIntervalEXT</name></proto>
+ <param>int <name>interval</name></param>
+ </command>
+ <command>
+ <proto><ptype>INT64</ptype> <name>wglSwapLayerBuffersMscOML</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ <param>int <name>fuPlanes</name></param>
+ <param><ptype>INT64</ptype> <name>target_msc</name></param>
+ <param><ptype>INT64</ptype> <name>divisor</name></param>
+ <param><ptype>INT64</ptype> <name>remainder</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglUseFontBitmaps</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>DWORD</ptype> <name>first</name></param>
+ <param><ptype>DWORD</ptype> <name>count</name></param>
+ <param><ptype>DWORD</ptype> <name>listBase</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglUseFontBitmapsA</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>DWORD</ptype> <name>first</name></param>
+ <param><ptype>DWORD</ptype> <name>count</name></param>
+ <param><ptype>DWORD</ptype> <name>listBase</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglUseFontBitmapsW</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>DWORD</ptype> <name>first</name></param>
+ <param><ptype>DWORD</ptype> <name>count</name></param>
+ <param><ptype>DWORD</ptype> <name>listBase</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglUseFontOutlines</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>DWORD</ptype> <name>first</name></param>
+ <param><ptype>DWORD</ptype> <name>count</name></param>
+ <param><ptype>DWORD</ptype> <name>listBase</name></param>
+ <param><ptype>FLOAT</ptype> <name>deviation</name></param>
+ <param><ptype>FLOAT</ptype> <name>extrusion</name></param>
+ <param>int <name>format</name></param>
+ <param><ptype>LPGLYPHMETRICSFLOAT</ptype> <name>lpgmf</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglUseFontOutlinesA</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>DWORD</ptype> <name>first</name></param>
+ <param><ptype>DWORD</ptype> <name>count</name></param>
+ <param><ptype>DWORD</ptype> <name>listBase</name></param>
+ <param><ptype>FLOAT</ptype> <name>deviation</name></param>
+ <param><ptype>FLOAT</ptype> <name>extrusion</name></param>
+ <param>int <name>format</name></param>
+ <param><ptype>LPGLYPHMETRICSFLOAT</ptype> <name>lpgmf</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglUseFontOutlinesW</name></proto>
+ <param><ptype>HDC</ptype> <name>hDC</name></param>
+ <param><ptype>DWORD</ptype> <name>first</name></param>
+ <param><ptype>DWORD</ptype> <name>count</name></param>
+ <param><ptype>DWORD</ptype> <name>listBase</name></param>
+ <param><ptype>FLOAT</ptype> <name>deviation</name></param>
+ <param><ptype>FLOAT</ptype> <name>extrusion</name></param>
+ <param>int <name>format</name></param>
+ <param><ptype>LPGLYPHMETRICSFLOAT</ptype> <name>lpgmf</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglWaitForMscOML</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ <param><ptype>INT64</ptype> <name>target_msc</name></param>
+ <param><ptype>INT64</ptype> <name>divisor</name></param>
+ <param><ptype>INT64</ptype> <name>remainder</name></param>
+ <param><ptype>INT64</ptype> *<name>ust</name></param>
+ <param><ptype>INT64</ptype> *<name>msc</name></param>
+ <param><ptype>INT64</ptype> *<name>sbc</name></param>
+ </command>
+ <command>
+ <proto><ptype>BOOL</ptype> <name>wglWaitForSbcOML</name></proto>
+ <param><ptype>HDC</ptype> <name>hdc</name></param>
+ <param><ptype>INT64</ptype> <name>target_sbc</name></param>
+ <param><ptype>INT64</ptype> *<name>ust</name></param>
+ <param><ptype>INT64</ptype> *<name>msc</name></param>
+ <param><ptype>INT64</ptype> *<name>sbc</name></param>
+ </command>
+ </commands>
+
+ <!-- SECTION: WGL API interface definitions. -->
+ <feature api="wgl" name="WGL_VERSION_1_0" number="1.0">
+ <require>
+ <enum name="WGL_FONT_LINES"/>
+ <enum name="WGL_FONT_POLYGONS"/>
+ <enum name="WGL_SWAP_MAIN_PLANE"/>
+ <enum name="WGL_SWAP_OVERLAY1"/>
+ <enum name="WGL_SWAP_OVERLAY2"/>
+ <enum name="WGL_SWAP_OVERLAY3"/>
+ <enum name="WGL_SWAP_OVERLAY4"/>
+ <enum name="WGL_SWAP_OVERLAY5"/>
+ <enum name="WGL_SWAP_OVERLAY6"/>
+ <enum name="WGL_SWAP_OVERLAY7"/>
+ <enum name="WGL_SWAP_OVERLAY8"/>
+ <enum name="WGL_SWAP_OVERLAY9"/>
+ <enum name="WGL_SWAP_OVERLAY10"/>
+ <enum name="WGL_SWAP_OVERLAY11"/>
+ <enum name="WGL_SWAP_OVERLAY12"/>
+ <enum name="WGL_SWAP_OVERLAY13"/>
+ <enum name="WGL_SWAP_OVERLAY14"/>
+ <enum name="WGL_SWAP_OVERLAY15"/>
+ <enum name="WGL_SWAP_UNDERLAY1"/>
+ <enum name="WGL_SWAP_UNDERLAY2"/>
+ <enum name="WGL_SWAP_UNDERLAY3"/>
+ <enum name="WGL_SWAP_UNDERLAY4"/>
+ <enum name="WGL_SWAP_UNDERLAY5"/>
+ <enum name="WGL_SWAP_UNDERLAY6"/>
+ <enum name="WGL_SWAP_UNDERLAY7"/>
+ <enum name="WGL_SWAP_UNDERLAY8"/>
+ <enum name="WGL_SWAP_UNDERLAY9"/>
+ <enum name="WGL_SWAP_UNDERLAY10"/>
+ <enum name="WGL_SWAP_UNDERLAY11"/>
+ <enum name="WGL_SWAP_UNDERLAY12"/>
+ <enum name="WGL_SWAP_UNDERLAY13"/>
+ <enum name="WGL_SWAP_UNDERLAY14"/>
+ <enum name="WGL_SWAP_UNDERLAY15"/>
+ <command name="ChoosePixelFormat"/>
+ <command name="DescribePixelFormat"/>
+ <command name="GetEnhMetaFilePixelFormat"/>
+ <command name="GetPixelFormat"/>
+ <command name="SetPixelFormat"/>
+ <command name="SwapBuffers"/>
+ <command name="wglCopyContext"/>
+ <command name="wglCreateContext"/>
+ <command name="wglCreateLayerContext"/>
+ <command name="wglDeleteContext"/>
+ <command name="wglDescribeLayerPlane"/>
+ <command name="wglGetCurrentContext"/>
+ <command name="wglGetCurrentDC"/>
+ <command name="wglGetLayerPaletteEntries"/>
+ <command name="wglGetProcAddress"/>
+ <command name="wglMakeCurrent"/>
+ <command name="wglRealizeLayerPalette"/>
+ <command name="wglSetLayerPaletteEntries"/>
+ <command name="wglShareLists"/>
+ <command name="wglSwapLayerBuffers"/>
+ <command name="wglUseFontBitmaps"/>
+ <command name="wglUseFontBitmapsA"/>
+ <command name="wglUseFontBitmapsW"/>
+ <command name="wglUseFontOutlines"/>
+ <command name="wglUseFontOutlinesA"/>
+ <command name="wglUseFontOutlinesW"/>
+ </require>
+ </feature>
+
+ <!-- SECTION: WGL extension interface definitions -->
+ <extensions>
+ <extension name="WGL_ARB_buffer_region" supported="wgl">
+ <require>
+ <enum name="WGL_FRONT_COLOR_BUFFER_BIT_ARB"/>
+ <enum name="WGL_BACK_COLOR_BUFFER_BIT_ARB"/>
+ <enum name="WGL_DEPTH_BUFFER_BIT_ARB"/>
+ <enum name="WGL_STENCIL_BUFFER_BIT_ARB"/>
+ <command name="wglCreateBufferRegionARB"/>
+ <command name="wglDeleteBufferRegionARB"/>
+ <command name="wglSaveBufferRegionARB"/>
+ <command name="wglRestoreBufferRegionARB"/>
+ </require>
+ </extension>
+ <extension name="WGL_ARB_multisample" supported="wgl">
+ <require>
+ <enum name="WGL_SAMPLE_BUFFERS_ARB"/>
+ <enum name="WGL_SAMPLES_ARB"/>
+ </require>
+ </extension>
+ <extension name="WGL_ARB_extensions_string" supported="wgl">
+ <require>
+ <command name="wglGetExtensionsStringARB"/>
+ </require>
+ </extension>
+ <extension name="WGL_ARB_pixel_format" supported="wgl">
+ <require>
+ <enum name="WGL_NUMBER_PIXEL_FORMATS_ARB"/>
+ <enum name="WGL_DRAW_TO_WINDOW_ARB"/>
+ <enum name="WGL_DRAW_TO_BITMAP_ARB"/>
+ <enum name="WGL_ACCELERATION_ARB"/>
+ <enum name="WGL_NEED_PALETTE_ARB"/>
+ <enum name="WGL_NEED_SYSTEM_PALETTE_ARB"/>
+ <enum name="WGL_SWAP_LAYER_BUFFERS_ARB"/>
+ <enum name="WGL_SWAP_METHOD_ARB"/>
+ <enum name="WGL_NUMBER_OVERLAYS_ARB"/>
+ <enum name="WGL_NUMBER_UNDERLAYS_ARB"/>
+ <enum name="WGL_TRANSPARENT_ARB"/>
+ <enum name="WGL_TRANSPARENT_RED_VALUE_ARB"/>
+ <enum name="WGL_TRANSPARENT_GREEN_VALUE_ARB"/>
+ <enum name="WGL_TRANSPARENT_BLUE_VALUE_ARB"/>
+ <enum name="WGL_TRANSPARENT_ALPHA_VALUE_ARB"/>
+ <enum name="WGL_TRANSPARENT_INDEX_VALUE_ARB"/>
+ <enum name="WGL_SHARE_DEPTH_ARB"/>
+ <enum name="WGL_SHARE_STENCIL_ARB"/>
+ <enum name="WGL_SHARE_ACCUM_ARB"/>
+ <enum name="WGL_SUPPORT_GDI_ARB"/>
+ <enum name="WGL_SUPPORT_OPENGL_ARB"/>
+ <enum name="WGL_DOUBLE_BUFFER_ARB"/>
+ <enum name="WGL_STEREO_ARB"/>
+ <enum name="WGL_PIXEL_TYPE_ARB"/>
+ <enum name="WGL_COLOR_BITS_ARB"/>
+ <enum name="WGL_RED_BITS_ARB"/>
+ <enum name="WGL_RED_SHIFT_ARB"/>
+ <enum name="WGL_GREEN_BITS_ARB"/>
+ <enum name="WGL_GREEN_SHIFT_ARB"/>
+ <enum name="WGL_BLUE_BITS_ARB"/>
+ <enum name="WGL_BLUE_SHIFT_ARB"/>
+ <enum name="WGL_ALPHA_BITS_ARB"/>
+ <enum name="WGL_ALPHA_SHIFT_ARB"/>
+ <enum name="WGL_ACCUM_BITS_ARB"/>
+ <enum name="WGL_ACCUM_RED_BITS_ARB"/>
+ <enum name="WGL_ACCUM_GREEN_BITS_ARB"/>
+ <enum name="WGL_ACCUM_BLUE_BITS_ARB"/>
+ <enum name="WGL_ACCUM_ALPHA_BITS_ARB"/>
+ <enum name="WGL_DEPTH_BITS_ARB"/>
+ <enum name="WGL_STENCIL_BITS_ARB"/>
+ <enum name="WGL_AUX_BUFFERS_ARB"/>
+ <enum name="WGL_NO_ACCELERATION_ARB"/>
+ <enum name="WGL_GENERIC_ACCELERATION_ARB"/>
+ <enum name="WGL_FULL_ACCELERATION_ARB"/>
+ <enum name="WGL_SWAP_EXCHANGE_ARB"/>
+ <enum name="WGL_SWAP_COPY_ARB"/>
+ <enum name="WGL_SWAP_UNDEFINED_ARB"/>
+ <enum name="WGL_TYPE_RGBA_ARB"/>
+ <enum name="WGL_TYPE_COLORINDEX_ARB"/>
+ <command name="wglGetPixelFormatAttribivARB"/>
+ <command name="wglGetPixelFormatAttribfvARB"/>
+ <command name="wglChoosePixelFormatARB"/>
+ </require>
+ </extension>
+ <extension name="WGL_ARB_make_current_read" supported="wgl">
+ <require>
+ <enum name="ERROR_INVALID_PIXEL_TYPE_ARB"/>
+ <enum name="ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB"/>
+ <command name="wglMakeContextCurrentARB"/>
+ <command name="wglGetCurrentReadDCARB"/>
+ </require>
+ </extension>
+ <extension name="WGL_ARB_pbuffer" supported="wgl">
+ <require>
+ <enum name="WGL_DRAW_TO_PBUFFER_ARB"/>
+ <enum name="WGL_MAX_PBUFFER_PIXELS_ARB"/>
+ <enum name="WGL_MAX_PBUFFER_WIDTH_ARB"/>
+ <enum name="WGL_MAX_PBUFFER_HEIGHT_ARB"/>
+ <enum name="WGL_PBUFFER_LARGEST_ARB"/>
+ <enum name="WGL_PBUFFER_WIDTH_ARB"/>
+ <enum name="WGL_PBUFFER_HEIGHT_ARB"/>
+ <enum name="WGL_PBUFFER_LOST_ARB"/>
+ <command name="wglCreatePbufferARB"/>
+ <command name="wglGetPbufferDCARB"/>
+ <command name="wglReleasePbufferDCARB"/>
+ <command name="wglDestroyPbufferARB"/>
+ <command name="wglQueryPbufferARB"/>
+ </require>
+ </extension>
+ <extension name="WGL_ARB_render_texture" supported="wgl">
+ <require>
+ <enum name="WGL_BIND_TO_TEXTURE_RGB_ARB"/>
+ <enum name="WGL_BIND_TO_TEXTURE_RGBA_ARB"/>
+ <enum name="WGL_TEXTURE_FORMAT_ARB"/>
+ <enum name="WGL_TEXTURE_TARGET_ARB"/>
+ <enum name="WGL_MIPMAP_TEXTURE_ARB"/>
+ <enum name="WGL_TEXTURE_RGB_ARB"/>
+ <enum name="WGL_TEXTURE_RGBA_ARB"/>
+ <enum name="WGL_NO_TEXTURE_ARB"/>
+ <enum name="WGL_TEXTURE_CUBE_MAP_ARB"/>
+ <enum name="WGL_TEXTURE_1D_ARB"/>
+ <enum name="WGL_TEXTURE_2D_ARB"/>
+ <enum name="WGL_MIPMAP_LEVEL_ARB"/>
+ <enum name="WGL_CUBE_MAP_FACE_ARB"/>
+ <enum name="WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB"/>
+ <enum name="WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB"/>
+ <enum name="WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB"/>
+ <enum name="WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB"/>
+ <enum name="WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB"/>
+ <enum name="WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB"/>
+ <enum name="WGL_FRONT_LEFT_ARB"/>
+ <enum name="WGL_FRONT_RIGHT_ARB"/>
+ <enum name="WGL_BACK_LEFT_ARB"/>
+ <enum name="WGL_BACK_RIGHT_ARB"/>
+ <enum name="WGL_AUX0_ARB"/>
+ <enum name="WGL_AUX1_ARB"/>
+ <enum name="WGL_AUX2_ARB"/>
+ <enum name="WGL_AUX3_ARB"/>
+ <enum name="WGL_AUX4_ARB"/>
+ <enum name="WGL_AUX5_ARB"/>
+ <enum name="WGL_AUX6_ARB"/>
+ <enum name="WGL_AUX7_ARB"/>
+ <enum name="WGL_AUX8_ARB"/>
+ <enum name="WGL_AUX9_ARB"/>
+ <command name="wglBindTexImageARB"/>
+ <command name="wglReleaseTexImageARB"/>
+ <command name="wglSetPbufferAttribARB"/>
+ </require>
+ </extension>
+ <extension name="WGL_ARB_pixel_format_float" supported="wgl">
+ <require>
+ <enum name="WGL_TYPE_RGBA_FLOAT_ARB"/>
+ </require>
+ </extension>
+ <extension name="WGL_ARB_framebuffer_sRGB" supported="wgl">
+ <require>
+ <enum name="WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB"/>
+ </require>
+ </extension>
+ <extension name="WGL_ARB_create_context" supported="wgl">
+ <require>
+ <enum name="WGL_CONTEXT_DEBUG_BIT_ARB"/>
+ <enum name="WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB"/>
+ <enum name="WGL_CONTEXT_MAJOR_VERSION_ARB"/>
+ <enum name="WGL_CONTEXT_MINOR_VERSION_ARB"/>
+ <enum name="WGL_CONTEXT_LAYER_PLANE_ARB"/>
+ <enum name="WGL_CONTEXT_FLAGS_ARB"/>
+ <enum name="ERROR_INVALID_VERSION_ARB"/>
+ <command name="wglCreateContextAttribsARB"/>
+ </require>
+ </extension>
+ <extension name="WGL_ARB_create_context_profile" supported="wgl">
+ <require>
+ <enum name="WGL_CONTEXT_PROFILE_MASK_ARB"/>
+ <enum name="WGL_CONTEXT_CORE_PROFILE_BIT_ARB"/>
+ <enum name="WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB"/>
+ <enum name="ERROR_INVALID_PROFILE_ARB"/>
+ </require>
+ </extension>
+ <extension name="WGL_ARB_create_context_robustness" supported="wgl">
+ <require>
+ <enum name="WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB"/>
+ <enum name="WGL_LOSE_CONTEXT_ON_RESET_ARB"/>
+ <enum name="WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB"/>
+ <enum name="WGL_NO_RESET_NOTIFICATION_ARB"/>
+ </require>
+ </extension>
+ <extension name="WGL_ARB_robustness_application_isolation" supported="wgl">
+ <require>
+ <enum name="WGL_CONTEXT_RESET_ISOLATION_BIT_ARB"/>
+ </require>
+ </extension>
+ <extension name="WGL_ARB_robustness_share_group_isolation" supported="wgl">
+ <require>
+ <enum name="WGL_CONTEXT_RESET_ISOLATION_BIT_ARB"/>
+ </require>
+ </extension>
+ <extension name="WGL_EXT_display_color_table" supported="wgl">
+ <require>
+ <command name="wglCreateDisplayColorTableEXT"/>
+ <command name="wglLoadDisplayColorTableEXT"/>
+ <command name="wglBindDisplayColorTableEXT"/>
+ <command name="wglDestroyDisplayColorTableEXT"/>
+ </require>
+ </extension>
+ <extension name="WGL_EXT_extensions_string" supported="wgl">
+ <require>
+ <command name="wglGetExtensionsStringEXT"/>
+ </require>
+ </extension>
+ <extension name="WGL_EXT_make_current_read" supported="wgl">
+ <require>
+ <enum name="ERROR_INVALID_PIXEL_TYPE_EXT"/>
+ <command name="wglMakeContextCurrentEXT"/>
+ <command name="wglGetCurrentReadDCEXT"/>
+ </require>
+ </extension>
+ <extension name="WGL_EXT_pbuffer" supported="wgl">
+ <require>
+ <enum name="WGL_DRAW_TO_PBUFFER_EXT"/>
+ <enum name="WGL_MAX_PBUFFER_PIXELS_EXT"/>
+ <enum name="WGL_MAX_PBUFFER_WIDTH_EXT"/>
+ <enum name="WGL_MAX_PBUFFER_HEIGHT_EXT"/>
+ <enum name="WGL_OPTIMAL_PBUFFER_WIDTH_EXT"/>
+ <enum name="WGL_OPTIMAL_PBUFFER_HEIGHT_EXT"/>
+ <enum name="WGL_PBUFFER_LARGEST_EXT"/>
+ <enum name="WGL_PBUFFER_WIDTH_EXT"/>
+ <enum name="WGL_PBUFFER_HEIGHT_EXT"/>
+ <command name="wglCreatePbufferEXT"/>
+ <command name="wglGetPbufferDCEXT"/>
+ <command name="wglReleasePbufferDCEXT"/>
+ <command name="wglDestroyPbufferEXT"/>
+ <command name="wglQueryPbufferEXT"/>
+ </require>
+ </extension>
+ <extension name="WGL_EXT_pixel_format" supported="wgl">
+ <require>
+ <enum name="WGL_NUMBER_PIXEL_FORMATS_EXT"/>
+ <enum name="WGL_DRAW_TO_WINDOW_EXT"/>
+ <enum name="WGL_DRAW_TO_BITMAP_EXT"/>
+ <enum name="WGL_ACCELERATION_EXT"/>
+ <enum name="WGL_NEED_PALETTE_EXT"/>
+ <enum name="WGL_NEED_SYSTEM_PALETTE_EXT"/>
+ <enum name="WGL_SWAP_LAYER_BUFFERS_EXT"/>
+ <enum name="WGL_SWAP_METHOD_EXT"/>
+ <enum name="WGL_NUMBER_OVERLAYS_EXT"/>
+ <enum name="WGL_NUMBER_UNDERLAYS_EXT"/>
+ <enum name="WGL_TRANSPARENT_EXT"/>
+ <enum name="WGL_TRANSPARENT_VALUE_EXT"/>
+ <enum name="WGL_SHARE_DEPTH_EXT"/>
+ <enum name="WGL_SHARE_STENCIL_EXT"/>
+ <enum name="WGL_SHARE_ACCUM_EXT"/>
+ <enum name="WGL_SUPPORT_GDI_EXT"/>
+ <enum name="WGL_SUPPORT_OPENGL_EXT"/>
+ <enum name="WGL_DOUBLE_BUFFER_EXT"/>
+ <enum name="WGL_STEREO_EXT"/>
+ <enum name="WGL_PIXEL_TYPE_EXT"/>
+ <enum name="WGL_COLOR_BITS_EXT"/>
+ <enum name="WGL_RED_BITS_EXT"/>
+ <enum name="WGL_RED_SHIFT_EXT"/>
+ <enum name="WGL_GREEN_BITS_EXT"/>
+ <enum name="WGL_GREEN_SHIFT_EXT"/>
+ <enum name="WGL_BLUE_BITS_EXT"/>
+ <enum name="WGL_BLUE_SHIFT_EXT"/>
+ <enum name="WGL_ALPHA_BITS_EXT"/>
+ <enum name="WGL_ALPHA_SHIFT_EXT"/>
+ <enum name="WGL_ACCUM_BITS_EXT"/>
+ <enum name="WGL_ACCUM_RED_BITS_EXT"/>
+ <enum name="WGL_ACCUM_GREEN_BITS_EXT"/>
+ <enum name="WGL_ACCUM_BLUE_BITS_EXT"/>
+ <enum name="WGL_ACCUM_ALPHA_BITS_EXT"/>
+ <enum name="WGL_DEPTH_BITS_EXT"/>
+ <enum name="WGL_STENCIL_BITS_EXT"/>
+ <enum name="WGL_AUX_BUFFERS_EXT"/>
+ <enum name="WGL_NO_ACCELERATION_EXT"/>
+ <enum name="WGL_GENERIC_ACCELERATION_EXT"/>
+ <enum name="WGL_FULL_ACCELERATION_EXT"/>
+ <enum name="WGL_SWAP_EXCHANGE_EXT"/>
+ <enum name="WGL_SWAP_COPY_EXT"/>
+ <enum name="WGL_SWAP_UNDEFINED_EXT"/>
+ <enum name="WGL_TYPE_RGBA_EXT"/>
+ <enum name="WGL_TYPE_COLORINDEX_EXT"/>
+ <command name="wglGetPixelFormatAttribivEXT"/>
+ <command name="wglGetPixelFormatAttribfvEXT"/>
+ <command name="wglChoosePixelFormatEXT"/>
+ </require>
+ </extension>
+ <extension name="WGL_EXT_swap_control" supported="wgl">
+ <require>
+ <command name="wglSwapIntervalEXT"/>
+ <command name="wglGetSwapIntervalEXT"/>
+ </require>
+ </extension>
+ <extension name="WGL_EXT_depth_float" supported="wgl">
+ <require>
+ <enum name="WGL_DEPTH_FLOAT_EXT"/>
+ </require>
+ </extension>
+ <extension name="WGL_NV_vertex_array_range" supported="wgl">
+ <require>
+ <command name="wglAllocateMemoryNV"/>
+ <command name="wglFreeMemoryNV"/>
+ </require>
+ </extension>
+ <extension name="WGL_3DFX_multisample" supported="wgl">
+ <require>
+ <enum name="WGL_SAMPLE_BUFFERS_3DFX"/>
+ <enum name="WGL_SAMPLES_3DFX"/>
+ </require>
+ </extension>
+ <extension name="WGL_EXT_multisample" supported="wgl">
+ <require>
+ <enum name="WGL_SAMPLE_BUFFERS_EXT"/>
+ <enum name="WGL_SAMPLES_EXT"/>
+ </require>
+ </extension>
+ <extension name="WGL_OML_sync_control" supported="wgl">
+ <require>
+ <command name="wglGetSyncValuesOML"/>
+ <command name="wglGetMscRateOML"/>
+ <command name="wglSwapBuffersMscOML"/>
+ <command name="wglSwapLayerBuffersMscOML"/>
+ <command name="wglWaitForMscOML"/>
+ <command name="wglWaitForSbcOML"/>
+ </require>
+ </extension>
+ <extension name="WGL_I3D_digital_video_control" supported="wgl">
+ <require>
+ <enum name="WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D"/>
+ <enum name="WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D"/>
+ <enum name="WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D"/>
+ <enum name="WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D"/>
+ <command name="wglGetDigitalVideoParametersI3D"/>
+ <command name="wglSetDigitalVideoParametersI3D"/>
+ </require>
+ </extension>
+ <extension name="WGL_I3D_gamma" supported="wgl">
+ <require>
+ <enum name="WGL_GAMMA_TABLE_SIZE_I3D"/>
+ <enum name="WGL_GAMMA_EXCLUDE_DESKTOP_I3D"/>
+ <command name="wglGetGammaTableParametersI3D"/>
+ <command name="wglSetGammaTableParametersI3D"/>
+ <command name="wglGetGammaTableI3D"/>
+ <command name="wglSetGammaTableI3D"/>
+ </require>
+ </extension>
+ <extension name="WGL_I3D_genlock" supported="wgl">
+ <require>
+ <enum name="WGL_GENLOCK_SOURCE_MULTIVIEW_I3D"/>
+ <enum name="WGL_GENLOCK_SOURCE_EXTERNAL_SYNC_I3D"/>
+ <enum name="WGL_GENLOCK_SOURCE_EXTERNAL_FIELD_I3D"/>
+ <enum name="WGL_GENLOCK_SOURCE_EXTERNAL_TTL_I3D"/>
+ <enum name="WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D"/>
+ <enum name="WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D"/>
+ <enum name="WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D"/>
+ <enum name="WGL_GENLOCK_SOURCE_EDGE_RISING_I3D"/>
+ <enum name="WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D"/>
+ <command name="wglEnableGenlockI3D"/>
+ <command name="wglDisableGenlockI3D"/>
+ <command name="wglIsEnabledGenlockI3D"/>
+ <command name="wglGenlockSourceI3D"/>
+ <command name="wglGetGenlockSourceI3D"/>
+ <command name="wglGenlockSourceEdgeI3D"/>
+ <command name="wglGetGenlockSourceEdgeI3D"/>
+ <command name="wglGenlockSampleRateI3D"/>
+ <command name="wglGetGenlockSampleRateI3D"/>
+ <command name="wglGenlockSourceDelayI3D"/>
+ <command name="wglGetGenlockSourceDelayI3D"/>
+ <command name="wglQueryGenlockMaxSourceDelayI3D"/>
+ </require>
+ </extension>
+ <extension name="WGL_I3D_image_buffer" supported="wgl">
+ <require>
+ <enum name="WGL_IMAGE_BUFFER_MIN_ACCESS_I3D"/>
+ <enum name="WGL_IMAGE_BUFFER_LOCK_I3D"/>
+ <command name="wglCreateImageBufferI3D"/>
+ <command name="wglDestroyImageBufferI3D"/>
+ <command name="wglAssociateImageBufferEventsI3D"/>
+ <command name="wglReleaseImageBufferEventsI3D"/>
+ </require>
+ </extension>
+ <extension name="WGL_I3D_swap_frame_lock" supported="wgl">
+ <require>
+ <command name="wglEnableFrameLockI3D"/>
+ <command name="wglDisableFrameLockI3D"/>
+ <command name="wglIsEnabledFrameLockI3D"/>
+ <command name="wglQueryFrameLockMasterI3D"/>
+ </require>
+ </extension>
+ <extension name="WGL_I3D_swap_frame_usage" supported="wgl">
+ <require>
+ <command name="wglGetFrameUsageI3D"/>
+ <command name="wglBeginFrameTrackingI3D"/>
+ <command name="wglEndFrameTrackingI3D"/>
+ <command name="wglQueryFrameTrackingI3D"/>
+ </require>
+ </extension>
+ <extension name="WGL_ATI_pixel_format_float" supported="wgl">
+ <require>
+ <enum name="WGL_TYPE_RGBA_FLOAT_ATI"/>
+ </require>
+ </extension>
+ <extension name="WGL_NV_float_buffer" supported="wgl">
+ <require>
+ <enum name="WGL_FLOAT_COMPONENTS_NV"/>
+ <enum name="WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV"/>
+ <enum name="WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV"/>
+ <enum name="WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV"/>
+ <enum name="WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV"/>
+ <enum name="WGL_TEXTURE_FLOAT_R_NV"/>
+ <enum name="WGL_TEXTURE_FLOAT_RG_NV"/>
+ <enum name="WGL_TEXTURE_FLOAT_RGB_NV"/>
+ <enum name="WGL_TEXTURE_FLOAT_RGBA_NV"/>
+ </require>
+ </extension>
+ <extension name="WGL_3DL_stereo_control" supported="wgl">
+ <require>
+ <enum name="WGL_STEREO_EMITTER_ENABLE_3DL"/>
+ <enum name="WGL_STEREO_EMITTER_DISABLE_3DL"/>
+ <enum name="WGL_STEREO_POLARITY_NORMAL_3DL"/>
+ <enum name="WGL_STEREO_POLARITY_INVERT_3DL"/>
+ <command name="wglSetStereoEmitterState3DL"/>
+ </require>
+ </extension>
+ <extension name="WGL_EXT_pixel_format_packed_float" supported="wgl">
+ <require>
+ <enum name="WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT"/>
+ </require>
+ </extension>
+ <extension name="WGL_EXT_framebuffer_sRGB" supported="wgl">
+ <require>
+ <enum name="WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT"/>
+ </require>
+ </extension>
+ <extension name="WGL_NV_present_video" supported="wgl">
+ <require>
+ <enum name="WGL_NUM_VIDEO_SLOTS_NV"/>
+ <command name="wglEnumerateVideoDevicesNV"/>
+ <command name="wglBindVideoDeviceNV"/>
+ <command name="wglQueryCurrentContextNV"/>
+ </require>
+ </extension>
+ <extension name="WGL_NV_video_output" supported="wgl">
+ <require>
+ <enum name="WGL_BIND_TO_VIDEO_RGB_NV"/>
+ <enum name="WGL_BIND_TO_VIDEO_RGBA_NV"/>
+ <enum name="WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV"/>
+ <enum name="WGL_VIDEO_OUT_COLOR_NV"/>
+ <enum name="WGL_VIDEO_OUT_ALPHA_NV"/>
+ <enum name="WGL_VIDEO_OUT_DEPTH_NV"/>
+ <enum name="WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV"/>
+ <enum name="WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV"/>
+ <enum name="WGL_VIDEO_OUT_FRAME"/>
+ <enum name="WGL_VIDEO_OUT_FIELD_1"/>
+ <enum name="WGL_VIDEO_OUT_FIELD_2"/>
+ <enum name="WGL_VIDEO_OUT_STACKED_FIELDS_1_2"/>
+ <enum name="WGL_VIDEO_OUT_STACKED_FIELDS_2_1"/>
+ <command name="wglGetVideoDeviceNV"/>
+ <command name="wglReleaseVideoDeviceNV"/>
+ <command name="wglBindVideoImageNV"/>
+ <command name="wglReleaseVideoImageNV"/>
+ <command name="wglSendPbufferToVideoNV"/>
+ <command name="wglGetVideoInfoNV"/>
+ </require>
+ </extension>
+ <extension name="WGL_NV_render_depth_texture" supported="wgl">
+ <require>
+ <enum name="WGL_BIND_TO_TEXTURE_DEPTH_NV"/>
+ <enum name="WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV"/>
+ <enum name="WGL_DEPTH_TEXTURE_FORMAT_NV"/>
+ <enum name="WGL_TEXTURE_DEPTH_COMPONENT_NV"/>
+ <enum name="WGL_DEPTH_COMPONENT_NV"/>
+ </require>
+ </extension>
+ <extension name="WGL_NV_render_texture_rectangle" supported="wgl">
+ <require>
+ <enum name="WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV"/>
+ <enum name="WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV"/>
+ <enum name="WGL_TEXTURE_RECTANGLE_NV"/>
+ </require>
+ </extension>
+ <extension name="WGL_NV_swap_group" supported="wgl">
+ <require>
+ <command name="wglJoinSwapGroupNV"/>
+ <command name="wglBindSwapBarrierNV"/>
+ <command name="wglQuerySwapGroupNV"/>
+ <command name="wglQueryMaxSwapGroupsNV"/>
+ <command name="wglQueryFrameCountNV"/>
+ <command name="wglResetFrameCountNV"/>
+ </require>
+ </extension>
+ <extension name="WGL_NV_gpu_affinity" supported="wgl">
+ <require>
+ <enum name="ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV"/>
+ <enum name="ERROR_MISSING_AFFINITY_MASK_NV"/>
+ <command name="wglEnumGpusNV"/>
+ <command name="wglEnumGpuDevicesNV"/>
+ <command name="wglCreateAffinityDCNV"/>
+ <command name="wglEnumGpusFromAffinityDCNV"/>
+ <command name="wglDeleteDCNV"/>
+ </require>
+ </extension>
+ <extension name="WGL_AMD_gpu_association" supported="wgl">
+ <require>
+ <enum name="WGL_GPU_VENDOR_AMD"/>
+ <enum name="WGL_GPU_RENDERER_STRING_AMD"/>
+ <enum name="WGL_GPU_OPENGL_VERSION_STRING_AMD"/>
+ <enum name="WGL_GPU_FASTEST_TARGET_GPUS_AMD"/>
+ <enum name="WGL_GPU_RAM_AMD"/>
+ <enum name="WGL_GPU_CLOCK_AMD"/>
+ <enum name="WGL_GPU_NUM_PIPES_AMD"/>
+ <enum name="WGL_GPU_NUM_SIMD_AMD"/>
+ <enum name="WGL_GPU_NUM_RB_AMD"/>
+ <enum name="WGL_GPU_NUM_SPI_AMD"/>
+ <command name="wglGetGPUIDsAMD"/>
+ <command name="wglGetGPUInfoAMD"/>
+ <command name="wglGetContextGPUIDAMD"/>
+ <command name="wglCreateAssociatedContextAMD"/>
+ <command name="wglCreateAssociatedContextAttribsAMD"/>
+ <command name="wglDeleteAssociatedContextAMD"/>
+ <command name="wglMakeAssociatedContextCurrentAMD"/>
+ <command name="wglGetCurrentAssociatedContextAMD"/>
+ <command name="wglBlitContextFramebufferAMD"/>
+ </require>
+ </extension>
+ <extension name="WGL_NV_video_capture" supported="wgl">
+ <require>
+ <enum name="WGL_UNIQUE_ID_NV"/>
+ <enum name="WGL_NUM_VIDEO_CAPTURE_SLOTS_NV"/>
+ <command name="wglBindVideoCaptureDeviceNV"/>
+ <command name="wglEnumerateVideoCaptureDevicesNV"/>
+ <command name="wglLockVideoCaptureDeviceNV"/>
+ <command name="wglQueryVideoCaptureDeviceNV"/>
+ <command name="wglReleaseVideoCaptureDeviceNV"/>
+ </require>
+ </extension>
+ <extension name="WGL_NV_copy_image" supported="wgl">
+ <require>
+ <command name="wglCopyImageSubDataNV"/>
+ </require>
+ </extension>
+ <extension name="WGL_NV_multisample_coverage" supported="wgl">
+ <require>
+ <enum name="WGL_COVERAGE_SAMPLES_NV"/>
+ <enum name="WGL_COLOR_SAMPLES_NV"/>
+ </require>
+ </extension>
+ <extension name="WGL_EXT_create_context_es_profile" supported="wgl">
+ <require>
+ <enum name="WGL_CONTEXT_ES_PROFILE_BIT_EXT"/>
+ </require>
+ </extension>
+ <extension name="WGL_EXT_create_context_es2_profile" supported="wgl">
+ <require>
+ <enum name="WGL_CONTEXT_ES2_PROFILE_BIT_EXT"/>
+ </require>
+ </extension>
+ <extension name="WGL_NV_DX_interop" supported="wgl">
+ <require>
+ <enum name="WGL_ACCESS_READ_ONLY_NV"/>
+ <enum name="WGL_ACCESS_READ_WRITE_NV"/>
+ <enum name="WGL_ACCESS_WRITE_DISCARD_NV"/>
+ <command name="wglDXSetResourceShareHandleNV"/>
+ <command name="wglDXOpenDeviceNV"/>
+ <command name="wglDXCloseDeviceNV"/>
+ <command name="wglDXRegisterObjectNV"/>
+ <command name="wglDXUnregisterObjectNV"/>
+ <command name="wglDXObjectAccessNV"/>
+ <command name="wglDXLockObjectsNV"/>
+ <command name="wglDXUnlockObjectsNV"/>
+ </require>
+ </extension>
+ <extension name="WGL_NV_DX_interop2" supported="wgl">
+ <require>
+ </require>
+ </extension>
+ <extension name="WGL_EXT_swap_control_tear" supported="wgl">
+ <require>
+ </require>
+ </extension>
+ </extensions>
+</registry>
diff --git a/xorg-server/hw/xwin/glx/wgl_ext_api.c b/xorg-server/hw/xwin/glx/wgl_ext_api.c
index 78b6e2a02..c11eb4f14 100644
--- a/xorg-server/hw/xwin/glx/wgl_ext_api.c
+++ b/xorg-server/hw/xwin/glx/wgl_ext_api.c
@@ -35,15 +35,20 @@
#include <GL/glext.h>
#include <glx/glxserver.h>
#include <glx/glxext.h>
-#include <GL/wglext.h>
+#include "wglext.h"
#include <wgl_ext_api.h>
#include "glwindows.h"
#define RESOLVE_DECL(type) \
static type type##proc = NULL;
+#ifdef _DEBUG
#define PRERESOLVE(type, symbol) \
type##proc = (type)wglGetProcAddress(symbol);
+#else
+#define PRERESOLVE(type, symbol) \
+ type##proc = (type)wglGetProcAddress(symbol);
+#endif
#define RESOLVE_RET(type, symbol, retval) \
if (type##proc == NULL) { \
diff --git a/xorg-server/hw/xwin/glx/wgl_ext_api.h b/xorg-server/hw/xwin/glx/wgl_ext_api.h
index b7231eb13..63b1d7ef1 100644
--- a/xorg-server/hw/xwin/glx/wgl_ext_api.h
+++ b/xorg-server/hw/xwin/glx/wgl_ext_api.h
@@ -29,7 +29,7 @@
#ifndef wgl_ext_api_h
#define wgl_ext_api_h
-#include <GL/wglext.h>
+#include "wglext.h"
void wglResolveExtensionProcs(void);
@@ -38,46 +38,46 @@ void wglResolveExtensionProcs(void);
XXX: should be automatically generated as well
*/
-const char *wglGetExtensionsStringARBWrapper(HDC hdc);
-BOOL wglMakeContextCurrentARBWrapper(HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
-HDC wglGetCurrentReadDCARBWrapper(VOID);
+const char * __stdcall wglGetExtensionsStringARBWrapper(HDC hdc);
+BOOL __stdcall wglMakeContextCurrentARBWrapper(HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
+HDC __stdcall wglGetCurrentReadDCARBWrapper(VOID);
-BOOL wglGetPixelFormatAttribivARBWrapper(HDC hdc,
+BOOL __stdcall wglGetPixelFormatAttribivARBWrapper(HDC hdc,
int iPixelFormat,
int iLayerPlane,
UINT nAttributes,
const int *piAttributes,
int *piValues);
-BOOL wglGetPixelFormatAttribfvARBWrapper(HDC hdc,
+BOOL __stdcall wglGetPixelFormatAttribfvARBWrapper(HDC hdc,
int iPixelFormat,
int iLayerPlane,
UINT nAttributes,
const int *piAttributes,
FLOAT * pfValues);
-BOOL wglChoosePixelFormatARBWrapper(HDC hdc,
+BOOL __stdcall wglChoosePixelFormatARBWrapper(HDC hdc,
const int *piAttribIList,
const FLOAT * pfAttribFList,
UINT nMaxFormats,
int *piFormats, UINT * nNumFormats);
-HPBUFFERARB wglCreatePbufferARBWrapper(HDC hDC,
+HPBUFFERARB __stdcall wglCreatePbufferARBWrapper(HDC hDC,
int iPixelFormat,
int iWidth,
int iHeight, const int *piAttribList);
-HDC wglGetPbufferDCARBWrapper(HPBUFFERARB hPbuffer);
+HDC __stdcall wglGetPbufferDCARBWrapper(HPBUFFERARB hPbuffer);
-int wglReleasePbufferDCARBWrapper(HPBUFFERARB hPbuffer, HDC hDC);
+int __stdcall wglReleasePbufferDCARBWrapper(HPBUFFERARB hPbuffer, HDC hDC);
-BOOL wglDestroyPbufferARBWrapper(HPBUFFERARB hPbuffer);
+BOOL __stdcall wglDestroyPbufferARBWrapper(HPBUFFERARB hPbuffer);
-BOOL wglQueryPbufferARBWrapper(HPBUFFERARB hPbuffer,
+BOOL __stdcall wglQueryPbufferARBWrapper(HPBUFFERARB hPbuffer,
int iAttribute, int *piValue);
-BOOL wglSwapIntervalEXTWrapper(int interval);
+BOOL __stdcall wglSwapIntervalEXTWrapper(int interval);
-int wglGetSwapIntervalEXTWrapper(void);
+int __stdcall wglGetSwapIntervalEXTWrapper(void);
#endif /* wgl_ext_api_h */
diff --git a/xorg-server/hw/xwin/glx/wglext.h b/xorg-server/hw/xwin/glx/wglext.h
new file mode 100644
index 000000000..828bcb519
--- /dev/null
+++ b/xorg-server/hw/xwin/glx/wglext.h
@@ -0,0 +1,825 @@
+#ifndef __wglext_h_
+#define __wglext_h_ 1
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+** Copyright (c) 2013 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
+/*
+** This header is generated from the Khronos OpenGL / OpenGL ES XML
+** API Registry. The current version of the Registry, generator scripts
+** used to make the header, and the header can be found at
+** http://www.opengl.org/registry/
+**
+** Khronos $Revision$ on $Date$
+*/
+
+#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__)
+#define WIN32_LEAN_AND_MEAN 1
+#include <windows.h>
+#endif
+
+#define WGL_WGLEXT_VERSION 20130708
+
+/* Generated C header for:
+ * API: wgl
+ * Versions considered: .*
+ * Versions emitted: _nomatch_^
+ * Default extensions included: wgl
+ * Additional extensions included: _nomatch_^
+ * Extensions removed: _nomatch_^
+ */
+
+#ifndef WGL_ARB_buffer_region
+#define WGL_ARB_buffer_region 1
+#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
+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);
+#ifdef GL_GLEXT_PROTOTYPES
+HANDLE WINAPI wglCreateBufferRegionARB (HDC hDC, int iLayerPlane, UINT uType);
+VOID WINAPI wglDeleteBufferRegionARB (HANDLE hRegion);
+BOOL WINAPI wglSaveBufferRegionARB (HANDLE hRegion, int x, int y, int width, int height);
+BOOL WINAPI wglRestoreBufferRegionARB (HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc);
+#endif
+#endif /* WGL_ARB_buffer_region */
+
+#ifndef WGL_ARB_create_context
+#define WGL_ARB_create_context 1
+#define WGL_CONTEXT_DEBUG_BIT_ARB 0x00000001
+#define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002
+#define WGL_CONTEXT_MAJOR_VERSION_ARB 0x2091
+#define WGL_CONTEXT_MINOR_VERSION_ARB 0x2092
+#define WGL_CONTEXT_LAYER_PLANE_ARB 0x2093
+#define WGL_CONTEXT_FLAGS_ARB 0x2094
+#define ERROR_INVALID_VERSION_ARB 0x2095
+typedef HGLRC (WINAPI * PFNWGLCREATECONTEXTATTRIBSARBPROC) (HDC hDC, HGLRC hShareContext, const int *attribList);
+#ifdef GL_GLEXT_PROTOTYPES
+HGLRC WINAPI wglCreateContextAttribsARB (HDC hDC, HGLRC hShareContext, const int *attribList);
+#endif
+#endif /* WGL_ARB_create_context */
+
+#ifndef WGL_ARB_create_context_profile
+#define WGL_ARB_create_context_profile 1
+#define WGL_CONTEXT_PROFILE_MASK_ARB 0x9126
+#define WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001
+#define WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002
+#define ERROR_INVALID_PROFILE_ARB 0x2096
+#endif /* WGL_ARB_create_context_profile */
+
+#ifndef WGL_ARB_create_context_robustness
+#define WGL_ARB_create_context_robustness 1
+#define WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004
+#define WGL_LOSE_CONTEXT_ON_RESET_ARB 0x8252
+#define WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256
+#define WGL_NO_RESET_NOTIFICATION_ARB 0x8261
+#endif /* WGL_ARB_create_context_robustness */
+
+#ifndef WGL_ARB_extensions_string
+#define WGL_ARB_extensions_string 1
+typedef const char *(WINAPI * PFNWGLGETEXTENSIONSSTRINGARBPROC) (HDC hdc);
+#ifdef GL_GLEXT_PROTOTYPES
+const char *WINAPI wglGetExtensionsStringARB (HDC hdc);
+#endif
+#endif /* WGL_ARB_extensions_string */
+
+#ifndef WGL_ARB_framebuffer_sRGB
+#define WGL_ARB_framebuffer_sRGB 1
+#define WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20A9
+#endif /* WGL_ARB_framebuffer_sRGB */
+
+#ifndef WGL_ARB_make_current_read
+#define WGL_ARB_make_current_read 1
+#define ERROR_INVALID_PIXEL_TYPE_ARB 0x2043
+#define ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB 0x2054
+typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTARBPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
+typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCARBPROC) (void);
+#ifdef GL_GLEXT_PROTOTYPES
+BOOL WINAPI wglMakeContextCurrentARB (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
+HDC WINAPI wglGetCurrentReadDCARB (void);
+#endif
+#endif /* WGL_ARB_make_current_read */
+
+#ifndef WGL_ARB_multisample
+#define WGL_ARB_multisample 1
+#define WGL_SAMPLE_BUFFERS_ARB 0x2041
+#define WGL_SAMPLES_ARB 0x2042
+#endif /* WGL_ARB_multisample */
+
+#ifndef WGL_ARB_pbuffer
+#define WGL_ARB_pbuffer 1
+DECLARE_HANDLE(HPBUFFERARB);
+#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
+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);
+#ifdef GL_GLEXT_PROTOTYPES
+HPBUFFERARB WINAPI wglCreatePbufferARB (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList);
+HDC WINAPI wglGetPbufferDCARB (HPBUFFERARB hPbuffer);
+int WINAPI wglReleasePbufferDCARB (HPBUFFERARB hPbuffer, HDC hDC);
+BOOL WINAPI wglDestroyPbufferARB (HPBUFFERARB hPbuffer);
+BOOL WINAPI wglQueryPbufferARB (HPBUFFERARB hPbuffer, int iAttribute, int *piValue);
+#endif
+#endif /* WGL_ARB_pbuffer */
+
+#ifndef WGL_ARB_pixel_format
+#define WGL_ARB_pixel_format 1
+#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
+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);
+#ifdef GL_GLEXT_PROTOTYPES
+BOOL WINAPI wglGetPixelFormatAttribivARB (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues);
+BOOL WINAPI wglGetPixelFormatAttribfvARB (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues);
+BOOL WINAPI wglChoosePixelFormatARB (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
+#endif
+#endif /* WGL_ARB_pixel_format */
+
+#ifndef WGL_ARB_pixel_format_float
+#define WGL_ARB_pixel_format_float 1
+#define WGL_TYPE_RGBA_FLOAT_ARB 0x21A0
+#endif /* WGL_ARB_pixel_format_float */
+
+#ifndef WGL_ARB_render_texture
+#define WGL_ARB_render_texture 1
+#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
+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);
+#ifdef GL_GLEXT_PROTOTYPES
+BOOL WINAPI wglBindTexImageARB (HPBUFFERARB hPbuffer, int iBuffer);
+BOOL WINAPI wglReleaseTexImageARB (HPBUFFERARB hPbuffer, int iBuffer);
+BOOL WINAPI wglSetPbufferAttribARB (HPBUFFERARB hPbuffer, const int *piAttribList);
+#endif
+#endif /* WGL_ARB_render_texture */
+
+#ifndef WGL_ARB_robustness_application_isolation
+#define WGL_ARB_robustness_application_isolation 1
+#define WGL_CONTEXT_RESET_ISOLATION_BIT_ARB 0x00000008
+#endif /* WGL_ARB_robustness_application_isolation */
+
+#ifndef WGL_ARB_robustness_share_group_isolation
+#define WGL_ARB_robustness_share_group_isolation 1
+#endif /* WGL_ARB_robustness_share_group_isolation */
+
+#ifndef WGL_3DFX_multisample
+#define WGL_3DFX_multisample 1
+#define WGL_SAMPLE_BUFFERS_3DFX 0x2060
+#define WGL_SAMPLES_3DFX 0x2061
+#endif /* WGL_3DFX_multisample */
+
+#ifndef WGL_3DL_stereo_control
+#define WGL_3DL_stereo_control 1
+#define WGL_STEREO_EMITTER_ENABLE_3DL 0x2055
+#define WGL_STEREO_EMITTER_DISABLE_3DL 0x2056
+#define WGL_STEREO_POLARITY_NORMAL_3DL 0x2057
+#define WGL_STEREO_POLARITY_INVERT_3DL 0x2058
+typedef BOOL (WINAPI * PFNWGLSETSTEREOEMITTERSTATE3DLPROC) (HDC hDC, UINT uState);
+#ifdef GL_GLEXT_PROTOTYPES
+BOOL WINAPI wglSetStereoEmitterState3DL (HDC hDC, UINT uState);
+#endif
+#endif /* WGL_3DL_stereo_control */
+
+#ifndef WGL_AMD_gpu_association
+#define WGL_AMD_gpu_association 1
+#define WGL_GPU_VENDOR_AMD 0x1F00
+#define WGL_GPU_RENDERER_STRING_AMD 0x1F01
+#define WGL_GPU_OPENGL_VERSION_STRING_AMD 0x1F02
+#define WGL_GPU_FASTEST_TARGET_GPUS_AMD 0x21A2
+#define WGL_GPU_RAM_AMD 0x21A3
+#define WGL_GPU_CLOCK_AMD 0x21A4
+#define WGL_GPU_NUM_PIPES_AMD 0x21A5
+#define WGL_GPU_NUM_SIMD_AMD 0x21A6
+#define WGL_GPU_NUM_RB_AMD 0x21A7
+#define WGL_GPU_NUM_SPI_AMD 0x21A8
+typedef UINT (WINAPI * PFNWGLGETGPUIDSAMDPROC) (UINT maxCount, UINT *ids);
+typedef INT (WINAPI * PFNWGLGETGPUINFOAMDPROC) (UINT id, int property, GLenum dataType, UINT size, void *data);
+typedef UINT (WINAPI * PFNWGLGETCONTEXTGPUIDAMDPROC) (HGLRC hglrc);
+typedef HGLRC (WINAPI * PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC) (UINT id);
+typedef HGLRC (WINAPI * PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC) (UINT id, HGLRC hShareContext, const int *attribList);
+typedef BOOL (WINAPI * PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC) (HGLRC hglrc);
+typedef BOOL (WINAPI * PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC) (HGLRC hglrc);
+typedef HGLRC (WINAPI * PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC) (void);
+typedef VOID (WINAPI * PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC) (HGLRC dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+#ifdef GL_GLEXT_PROTOTYPES
+UINT WINAPI wglGetGPUIDsAMD (UINT maxCount, UINT *ids);
+INT WINAPI wglGetGPUInfoAMD (UINT id, int property, GLenum dataType, UINT size, void *data);
+UINT WINAPI wglGetContextGPUIDAMD (HGLRC hglrc);
+HGLRC WINAPI wglCreateAssociatedContextAMD (UINT id);
+HGLRC WINAPI wglCreateAssociatedContextAttribsAMD (UINT id, HGLRC hShareContext, const int *attribList);
+BOOL WINAPI wglDeleteAssociatedContextAMD (HGLRC hglrc);
+BOOL WINAPI wglMakeAssociatedContextCurrentAMD (HGLRC hglrc);
+HGLRC WINAPI wglGetCurrentAssociatedContextAMD (void);
+VOID WINAPI wglBlitContextFramebufferAMD (HGLRC dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+#endif
+#endif /* WGL_AMD_gpu_association */
+
+#ifndef WGL_ATI_pixel_format_float
+#define WGL_ATI_pixel_format_float 1
+#define WGL_TYPE_RGBA_FLOAT_ATI 0x21A0
+#endif /* WGL_ATI_pixel_format_float */
+
+#ifndef WGL_EXT_create_context_es2_profile
+#define WGL_EXT_create_context_es2_profile 1
+#define WGL_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004
+#endif /* WGL_EXT_create_context_es2_profile */
+
+#ifndef WGL_EXT_create_context_es_profile
+#define WGL_EXT_create_context_es_profile 1
+#define WGL_CONTEXT_ES_PROFILE_BIT_EXT 0x00000004
+#endif /* WGL_EXT_create_context_es_profile */
+
+#ifndef WGL_EXT_depth_float
+#define WGL_EXT_depth_float 1
+#define WGL_DEPTH_FLOAT_EXT 0x2040
+#endif /* WGL_EXT_depth_float */
+
+#ifndef WGL_EXT_display_color_table
+#define WGL_EXT_display_color_table 1
+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);
+#ifdef GL_GLEXT_PROTOTYPES
+GLboolean WINAPI wglCreateDisplayColorTableEXT (GLushort id);
+GLboolean WINAPI wglLoadDisplayColorTableEXT (const GLushort *table, GLuint length);
+GLboolean WINAPI wglBindDisplayColorTableEXT (GLushort id);
+VOID WINAPI wglDestroyDisplayColorTableEXT (GLushort id);
+#endif
+#endif /* WGL_EXT_display_color_table */
+
+#ifndef WGL_EXT_extensions_string
+#define WGL_EXT_extensions_string 1
+typedef const char *(WINAPI * PFNWGLGETEXTENSIONSSTRINGEXTPROC) (void);
+#ifdef GL_GLEXT_PROTOTYPES
+const char *WINAPI wglGetExtensionsStringEXT (void);
+#endif
+#endif /* WGL_EXT_extensions_string */
+
+#ifndef WGL_EXT_framebuffer_sRGB
+#define WGL_EXT_framebuffer_sRGB 1
+#define WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20A9
+#endif /* WGL_EXT_framebuffer_sRGB */
+
+#ifndef WGL_EXT_make_current_read
+#define WGL_EXT_make_current_read 1
+#define ERROR_INVALID_PIXEL_TYPE_EXT 0x2043
+typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTEXTPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
+typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCEXTPROC) (void);
+#ifdef GL_GLEXT_PROTOTYPES
+BOOL WINAPI wglMakeContextCurrentEXT (HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
+HDC WINAPI wglGetCurrentReadDCEXT (void);
+#endif
+#endif /* WGL_EXT_make_current_read */
+
+#ifndef WGL_EXT_multisample
+#define WGL_EXT_multisample 1
+#define WGL_SAMPLE_BUFFERS_EXT 0x2041
+#define WGL_SAMPLES_EXT 0x2042
+#endif /* WGL_EXT_multisample */
+
+#ifndef WGL_EXT_pbuffer
+#define WGL_EXT_pbuffer 1
+DECLARE_HANDLE(HPBUFFEREXT);
+#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
+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);
+#ifdef GL_GLEXT_PROTOTYPES
+HPBUFFEREXT WINAPI wglCreatePbufferEXT (HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList);
+HDC WINAPI wglGetPbufferDCEXT (HPBUFFEREXT hPbuffer);
+int WINAPI wglReleasePbufferDCEXT (HPBUFFEREXT hPbuffer, HDC hDC);
+BOOL WINAPI wglDestroyPbufferEXT (HPBUFFEREXT hPbuffer);
+BOOL WINAPI wglQueryPbufferEXT (HPBUFFEREXT hPbuffer, int iAttribute, int *piValue);
+#endif
+#endif /* WGL_EXT_pbuffer */
+
+#ifndef WGL_EXT_pixel_format
+#define WGL_EXT_pixel_format 1
+#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
+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);
+#ifdef GL_GLEXT_PROTOTYPES
+BOOL WINAPI wglGetPixelFormatAttribivEXT (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, int *piValues);
+BOOL WINAPI wglGetPixelFormatAttribfvEXT (HDC hdc, int iPixelFormat, int iLayerPlane, UINT nAttributes, int *piAttributes, FLOAT *pfValues);
+BOOL WINAPI wglChoosePixelFormatEXT (HDC hdc, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
+#endif
+#endif /* WGL_EXT_pixel_format */
+
+#ifndef WGL_EXT_pixel_format_packed_float
+#define WGL_EXT_pixel_format_packed_float 1
+#define WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT 0x20A8
+#endif /* WGL_EXT_pixel_format_packed_float */
+
+#ifndef WGL_EXT_swap_control
+#define WGL_EXT_swap_control 1
+typedef BOOL (WINAPI * PFNWGLSWAPINTERVALEXTPROC) (int interval);
+typedef int (WINAPI * PFNWGLGETSWAPINTERVALEXTPROC) (void);
+#ifdef GL_GLEXT_PROTOTYPES
+BOOL WINAPI wglSwapIntervalEXT (int interval);
+int WINAPI wglGetSwapIntervalEXT (void);
+#endif
+#endif /* WGL_EXT_swap_control */
+
+#ifndef WGL_EXT_swap_control_tear
+#define WGL_EXT_swap_control_tear 1
+#endif /* WGL_EXT_swap_control_tear */
+
+#ifndef WGL_I3D_digital_video_control
+#define WGL_I3D_digital_video_control 1
+#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
+typedef BOOL (WINAPI * PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, int *piValue);
+typedef BOOL (WINAPI * PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC) (HDC hDC, int iAttribute, const int *piValue);
+#ifdef GL_GLEXT_PROTOTYPES
+BOOL WINAPI wglGetDigitalVideoParametersI3D (HDC hDC, int iAttribute, int *piValue);
+BOOL WINAPI wglSetDigitalVideoParametersI3D (HDC hDC, int iAttribute, const int *piValue);
+#endif
+#endif /* WGL_I3D_digital_video_control */
+
+#ifndef WGL_I3D_gamma
+#define WGL_I3D_gamma 1
+#define WGL_GAMMA_TABLE_SIZE_I3D 0x204E
+#define WGL_GAMMA_EXCLUDE_DESKTOP_I3D 0x204F
+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);
+#ifdef GL_GLEXT_PROTOTYPES
+BOOL WINAPI wglGetGammaTableParametersI3D (HDC hDC, int iAttribute, int *piValue);
+BOOL WINAPI wglSetGammaTableParametersI3D (HDC hDC, int iAttribute, const int *piValue);
+BOOL WINAPI wglGetGammaTableI3D (HDC hDC, int iEntries, USHORT *puRed, USHORT *puGreen, USHORT *puBlue);
+BOOL WINAPI wglSetGammaTableI3D (HDC hDC, int iEntries, const USHORT *puRed, const USHORT *puGreen, const USHORT *puBlue);
+#endif
+#endif /* WGL_I3D_gamma */
+
+#ifndef WGL_I3D_genlock
+#define WGL_I3D_genlock 1
+#define WGL_GENLOCK_SOURCE_MULTIVIEW_I3D 0x2044
+#define WGL_GENLOCK_SOURCE_EXTERNAL_SYNC_I3D 0x2045
+#define WGL_GENLOCK_SOURCE_EXTERNAL_FIELD_I3D 0x2046
+#define WGL_GENLOCK_SOURCE_EXTERNAL_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
+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);
+#ifdef GL_GLEXT_PROTOTYPES
+BOOL WINAPI wglEnableGenlockI3D (HDC hDC);
+BOOL WINAPI wglDisableGenlockI3D (HDC hDC);
+BOOL WINAPI wglIsEnabledGenlockI3D (HDC hDC, BOOL *pFlag);
+BOOL WINAPI wglGenlockSourceI3D (HDC hDC, UINT uSource);
+BOOL WINAPI wglGetGenlockSourceI3D (HDC hDC, UINT *uSource);
+BOOL WINAPI wglGenlockSourceEdgeI3D (HDC hDC, UINT uEdge);
+BOOL WINAPI wglGetGenlockSourceEdgeI3D (HDC hDC, UINT *uEdge);
+BOOL WINAPI wglGenlockSampleRateI3D (HDC hDC, UINT uRate);
+BOOL WINAPI wglGetGenlockSampleRateI3D (HDC hDC, UINT *uRate);
+BOOL WINAPI wglGenlockSourceDelayI3D (HDC hDC, UINT uDelay);
+BOOL WINAPI wglGetGenlockSourceDelayI3D (HDC hDC, UINT *uDelay);
+BOOL WINAPI wglQueryGenlockMaxSourceDelayI3D (HDC hDC, UINT *uMaxLineDelay, UINT *uMaxPixelDelay);
+#endif
+#endif /* WGL_I3D_genlock */
+
+#ifndef WGL_I3D_image_buffer
+#define WGL_I3D_image_buffer 1
+#define WGL_IMAGE_BUFFER_MIN_ACCESS_I3D 0x00000001
+#define WGL_IMAGE_BUFFER_LOCK_I3D 0x00000002
+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);
+#ifdef GL_GLEXT_PROTOTYPES
+LPVOID WINAPI wglCreateImageBufferI3D (HDC hDC, DWORD dwSize, UINT uFlags);
+BOOL WINAPI wglDestroyImageBufferI3D (HDC hDC, LPVOID pAddress);
+BOOL WINAPI wglAssociateImageBufferEventsI3D (HDC hDC, const HANDLE *pEvent, const LPVOID *pAddress, const DWORD *pSize, UINT count);
+BOOL WINAPI wglReleaseImageBufferEventsI3D (HDC hDC, const LPVOID *pAddress, UINT count);
+#endif
+#endif /* WGL_I3D_image_buffer */
+
+#ifndef WGL_I3D_swap_frame_lock
+#define WGL_I3D_swap_frame_lock 1
+typedef BOOL (WINAPI * PFNWGLENABLEFRAMELOCKI3DPROC) (void);
+typedef BOOL (WINAPI * PFNWGLDISABLEFRAMELOCKI3DPROC) (void);
+typedef BOOL (WINAPI * PFNWGLISENABLEDFRAMELOCKI3DPROC) (BOOL *pFlag);
+typedef BOOL (WINAPI * PFNWGLQUERYFRAMELOCKMASTERI3DPROC) (BOOL *pFlag);
+#ifdef GL_GLEXT_PROTOTYPES
+BOOL WINAPI wglEnableFrameLockI3D (void);
+BOOL WINAPI wglDisableFrameLockI3D (void);
+BOOL WINAPI wglIsEnabledFrameLockI3D (BOOL *pFlag);
+BOOL WINAPI wglQueryFrameLockMasterI3D (BOOL *pFlag);
+#endif
+#endif /* WGL_I3D_swap_frame_lock */
+
+#ifndef WGL_I3D_swap_frame_usage
+#define WGL_I3D_swap_frame_usage 1
+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);
+#ifdef GL_GLEXT_PROTOTYPES
+BOOL WINAPI wglGetFrameUsageI3D (float *pUsage);
+BOOL WINAPI wglBeginFrameTrackingI3D (void);
+BOOL WINAPI wglEndFrameTrackingI3D (void);
+BOOL WINAPI wglQueryFrameTrackingI3D (DWORD *pFrameCount, DWORD *pMissedFrames, float *pLastMissedUsage);
+#endif
+#endif /* WGL_I3D_swap_frame_usage */
+
+#ifndef WGL_NV_DX_interop
+#define WGL_NV_DX_interop 1
+#define WGL_ACCESS_READ_ONLY_NV 0x00000000
+#define WGL_ACCESS_READ_WRITE_NV 0x00000001
+#define WGL_ACCESS_WRITE_DISCARD_NV 0x00000002
+typedef BOOL (WINAPI * PFNWGLDXSETRESOURCESHAREHANDLENVPROC) (void *dxObject, HANDLE shareHandle);
+typedef HANDLE (WINAPI * PFNWGLDXOPENDEVICENVPROC) (void *dxDevice);
+typedef BOOL (WINAPI * PFNWGLDXCLOSEDEVICENVPROC) (HANDLE hDevice);
+typedef HANDLE (WINAPI * PFNWGLDXREGISTEROBJECTNVPROC) (HANDLE hDevice, void *dxObject, GLuint name, GLenum type, GLenum access);
+typedef BOOL (WINAPI * PFNWGLDXUNREGISTEROBJECTNVPROC) (HANDLE hDevice, HANDLE hObject);
+typedef BOOL (WINAPI * PFNWGLDXOBJECTACCESSNVPROC) (HANDLE hObject, GLenum access);
+typedef BOOL (WINAPI * PFNWGLDXLOCKOBJECTSNVPROC) (HANDLE hDevice, GLint count, HANDLE *hObjects);
+typedef BOOL (WINAPI * PFNWGLDXUNLOCKOBJECTSNVPROC) (HANDLE hDevice, GLint count, HANDLE *hObjects);
+#ifdef GL_GLEXT_PROTOTYPES
+BOOL WINAPI wglDXSetResourceShareHandleNV (void *dxObject, HANDLE shareHandle);
+HANDLE WINAPI wglDXOpenDeviceNV (void *dxDevice);
+BOOL WINAPI wglDXCloseDeviceNV (HANDLE hDevice);
+HANDLE WINAPI wglDXRegisterObjectNV (HANDLE hDevice, void *dxObject, GLuint name, GLenum type, GLenum access);
+BOOL WINAPI wglDXUnregisterObjectNV (HANDLE hDevice, HANDLE hObject);
+BOOL WINAPI wglDXObjectAccessNV (HANDLE hObject, GLenum access);
+BOOL WINAPI wglDXLockObjectsNV (HANDLE hDevice, GLint count, HANDLE *hObjects);
+BOOL WINAPI wglDXUnlockObjectsNV (HANDLE hDevice, GLint count, HANDLE *hObjects);
+#endif
+#endif /* WGL_NV_DX_interop */
+
+#ifndef WGL_NV_DX_interop2
+#define WGL_NV_DX_interop2 1
+#endif /* WGL_NV_DX_interop2 */
+
+#ifndef WGL_NV_copy_image
+#define WGL_NV_copy_image 1
+typedef BOOL (WINAPI * PFNWGLCOPYIMAGESUBDATANVPROC) (HGLRC hSrcRC, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, HGLRC hDstRC, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);
+#ifdef GL_GLEXT_PROTOTYPES
+BOOL WINAPI wglCopyImageSubDataNV (HGLRC hSrcRC, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, HGLRC hDstRC, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);
+#endif
+#endif /* WGL_NV_copy_image */
+
+#ifndef WGL_NV_float_buffer
+#define WGL_NV_float_buffer 1
+#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 /* WGL_NV_float_buffer */
+
+#ifndef WGL_NV_gpu_affinity
+#define WGL_NV_gpu_affinity 1
+DECLARE_HANDLE(HGPUNV);
+struct _GPU_DEVICE {
+ DWORD cb;
+ CHAR DeviceName[32];
+ CHAR DeviceString[128];
+ DWORD Flags;
+ RECT rcVirtualScreen;
+};
+typedef struct _GPU_DEVICE *PGPU_DEVICE;
+#define ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV 0x20D0
+#define ERROR_MISSING_AFFINITY_MASK_NV 0x20D1
+typedef BOOL (WINAPI * PFNWGLENUMGPUSNVPROC) (UINT iGpuIndex, HGPUNV *phGpu);
+typedef BOOL (WINAPI * PFNWGLENUMGPUDEVICESNVPROC) (HGPUNV hGpu, UINT iDeviceIndex, PGPU_DEVICE lpGpuDevice);
+typedef HDC (WINAPI * PFNWGLCREATEAFFINITYDCNVPROC) (const HGPUNV *phGpuList);
+typedef BOOL (WINAPI * PFNWGLENUMGPUSFROMAFFINITYDCNVPROC) (HDC hAffinityDC, UINT iGpuIndex, HGPUNV *hGpu);
+typedef BOOL (WINAPI * PFNWGLDELETEDCNVPROC) (HDC hdc);
+#ifdef GL_GLEXT_PROTOTYPES
+BOOL WINAPI wglEnumGpusNV (UINT iGpuIndex, HGPUNV *phGpu);
+BOOL WINAPI wglEnumGpuDevicesNV (HGPUNV hGpu, UINT iDeviceIndex, PGPU_DEVICE lpGpuDevice);
+HDC WINAPI wglCreateAffinityDCNV (const HGPUNV *phGpuList);
+BOOL WINAPI wglEnumGpusFromAffinityDCNV (HDC hAffinityDC, UINT iGpuIndex, HGPUNV *hGpu);
+BOOL WINAPI wglDeleteDCNV (HDC hdc);
+#endif
+#endif /* WGL_NV_gpu_affinity */
+
+#ifndef WGL_NV_multisample_coverage
+#define WGL_NV_multisample_coverage 1
+#define WGL_COVERAGE_SAMPLES_NV 0x2042
+#define WGL_COLOR_SAMPLES_NV 0x20B9
+#endif /* WGL_NV_multisample_coverage */
+
+#ifndef WGL_NV_present_video
+#define WGL_NV_present_video 1
+DECLARE_HANDLE(HVIDEOOUTPUTDEVICENV);
+#define WGL_NUM_VIDEO_SLOTS_NV 0x20F0
+typedef int (WINAPI * PFNWGLENUMERATEVIDEODEVICESNVPROC) (HDC hDC, HVIDEOOUTPUTDEVICENV *phDeviceList);
+typedef BOOL (WINAPI * PFNWGLBINDVIDEODEVICENVPROC) (HDC hDC, unsigned int uVideoSlot, HVIDEOOUTPUTDEVICENV hVideoDevice, const int *piAttribList);
+typedef BOOL (WINAPI * PFNWGLQUERYCURRENTCONTEXTNVPROC) (int iAttribute, int *piValue);
+#ifdef GL_GLEXT_PROTOTYPES
+int WINAPI wglEnumerateVideoDevicesNV (HDC hDC, HVIDEOOUTPUTDEVICENV *phDeviceList);
+BOOL WINAPI wglBindVideoDeviceNV (HDC hDC, unsigned int uVideoSlot, HVIDEOOUTPUTDEVICENV hVideoDevice, const int *piAttribList);
+BOOL WINAPI wglQueryCurrentContextNV (int iAttribute, int *piValue);
+#endif
+#endif /* WGL_NV_present_video */
+
+#ifndef WGL_NV_render_depth_texture
+#define WGL_NV_render_depth_texture 1
+#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 /* WGL_NV_render_depth_texture */
+
+#ifndef WGL_NV_render_texture_rectangle
+#define WGL_NV_render_texture_rectangle 1
+#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 /* WGL_NV_render_texture_rectangle */
+
+#ifndef WGL_NV_swap_group
+#define WGL_NV_swap_group 1
+typedef BOOL (WINAPI * PFNWGLJOINSWAPGROUPNVPROC) (HDC hDC, GLuint group);
+typedef BOOL (WINAPI * PFNWGLBINDSWAPBARRIERNVPROC) (GLuint group, GLuint barrier);
+typedef BOOL (WINAPI * PFNWGLQUERYSWAPGROUPNVPROC) (HDC hDC, GLuint *group, GLuint *barrier);
+typedef BOOL (WINAPI * PFNWGLQUERYMAXSWAPGROUPSNVPROC) (HDC hDC, GLuint *maxGroups, GLuint *maxBarriers);
+typedef BOOL (WINAPI * PFNWGLQUERYFRAMECOUNTNVPROC) (HDC hDC, GLuint *count);
+typedef BOOL (WINAPI * PFNWGLRESETFRAMECOUNTNVPROC) (HDC hDC);
+#ifdef GL_GLEXT_PROTOTYPES
+BOOL WINAPI wglJoinSwapGroupNV (HDC hDC, GLuint group);
+BOOL WINAPI wglBindSwapBarrierNV (GLuint group, GLuint barrier);
+BOOL WINAPI wglQuerySwapGroupNV (HDC hDC, GLuint *group, GLuint *barrier);
+BOOL WINAPI wglQueryMaxSwapGroupsNV (HDC hDC, GLuint *maxGroups, GLuint *maxBarriers);
+BOOL WINAPI wglQueryFrameCountNV (HDC hDC, GLuint *count);
+BOOL WINAPI wglResetFrameCountNV (HDC hDC);
+#endif
+#endif /* WGL_NV_swap_group */
+
+#ifndef WGL_NV_vertex_array_range
+#define WGL_NV_vertex_array_range 1
+typedef void *(WINAPI * PFNWGLALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority);
+typedef void (WINAPI * PFNWGLFREEMEMORYNVPROC) (void *pointer);
+#ifdef GL_GLEXT_PROTOTYPES
+void *WINAPI wglAllocateMemoryNV (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority);
+void WINAPI wglFreeMemoryNV (void *pointer);
+#endif
+#endif /* WGL_NV_vertex_array_range */
+
+#ifndef WGL_NV_video_capture
+#define WGL_NV_video_capture 1
+DECLARE_HANDLE(HVIDEOINPUTDEVICENV);
+#define WGL_UNIQUE_ID_NV 0x20CE
+#define WGL_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF
+typedef BOOL (WINAPI * PFNWGLBINDVIDEOCAPTUREDEVICENVPROC) (UINT uVideoSlot, HVIDEOINPUTDEVICENV hDevice);
+typedef UINT (WINAPI * PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC) (HDC hDc, HVIDEOINPUTDEVICENV *phDeviceList);
+typedef BOOL (WINAPI * PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice);
+typedef BOOL (WINAPI * PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice, int iAttribute, int *piValue);
+typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice);
+#ifdef GL_GLEXT_PROTOTYPES
+BOOL WINAPI wglBindVideoCaptureDeviceNV (UINT uVideoSlot, HVIDEOINPUTDEVICENV hDevice);
+UINT WINAPI wglEnumerateVideoCaptureDevicesNV (HDC hDc, HVIDEOINPUTDEVICENV *phDeviceList);
+BOOL WINAPI wglLockVideoCaptureDeviceNV (HDC hDc, HVIDEOINPUTDEVICENV hDevice);
+BOOL WINAPI wglQueryVideoCaptureDeviceNV (HDC hDc, HVIDEOINPUTDEVICENV hDevice, int iAttribute, int *piValue);
+BOOL WINAPI wglReleaseVideoCaptureDeviceNV (HDC hDc, HVIDEOINPUTDEVICENV hDevice);
+#endif
+#endif /* WGL_NV_video_capture */
+
+#ifndef WGL_NV_video_output
+#define WGL_NV_video_output 1
+DECLARE_HANDLE(HPVIDEODEV);
+#define WGL_BIND_TO_VIDEO_RGB_NV 0x20C0
+#define WGL_BIND_TO_VIDEO_RGBA_NV 0x20C1
+#define WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV 0x20C2
+#define WGL_VIDEO_OUT_COLOR_NV 0x20C3
+#define WGL_VIDEO_OUT_ALPHA_NV 0x20C4
+#define WGL_VIDEO_OUT_DEPTH_NV 0x20C5
+#define WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6
+#define WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7
+#define WGL_VIDEO_OUT_FRAME 0x20C8
+#define WGL_VIDEO_OUT_FIELD_1 0x20C9
+#define WGL_VIDEO_OUT_FIELD_2 0x20CA
+#define WGL_VIDEO_OUT_STACKED_FIELDS_1_2 0x20CB
+#define WGL_VIDEO_OUT_STACKED_FIELDS_2_1 0x20CC
+typedef BOOL (WINAPI * PFNWGLGETVIDEODEVICENVPROC) (HDC hDC, int numDevices, HPVIDEODEV *hVideoDevice);
+typedef BOOL (WINAPI * PFNWGLRELEASEVIDEODEVICENVPROC) (HPVIDEODEV hVideoDevice);
+typedef BOOL (WINAPI * PFNWGLBINDVIDEOIMAGENVPROC) (HPVIDEODEV hVideoDevice, HPBUFFERARB hPbuffer, int iVideoBuffer);
+typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOIMAGENVPROC) (HPBUFFERARB hPbuffer, int iVideoBuffer);
+typedef BOOL (WINAPI * PFNWGLSENDPBUFFERTOVIDEONVPROC) (HPBUFFERARB hPbuffer, int iBufferType, unsigned long *pulCounterPbuffer, BOOL bBlock);
+typedef BOOL (WINAPI * PFNWGLGETVIDEOINFONVPROC) (HPVIDEODEV hpVideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo);
+#ifdef GL_GLEXT_PROTOTYPES
+BOOL WINAPI wglGetVideoDeviceNV (HDC hDC, int numDevices, HPVIDEODEV *hVideoDevice);
+BOOL WINAPI wglReleaseVideoDeviceNV (HPVIDEODEV hVideoDevice);
+BOOL WINAPI wglBindVideoImageNV (HPVIDEODEV hVideoDevice, HPBUFFERARB hPbuffer, int iVideoBuffer);
+BOOL WINAPI wglReleaseVideoImageNV (HPBUFFERARB hPbuffer, int iVideoBuffer);
+BOOL WINAPI wglSendPbufferToVideoNV (HPBUFFERARB hPbuffer, int iBufferType, unsigned long *pulCounterPbuffer, BOOL bBlock);
+BOOL WINAPI wglGetVideoInfoNV (HPVIDEODEV hpVideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo);
+#endif
+#endif /* WGL_NV_video_output */
+
+#ifndef WGL_OML_sync_control
+#define WGL_OML_sync_control 1
+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);
+#ifdef GL_GLEXT_PROTOTYPES
+BOOL WINAPI wglGetSyncValuesOML (HDC hdc, INT64 *ust, INT64 *msc, INT64 *sbc);
+BOOL WINAPI wglGetMscRateOML (HDC hdc, INT32 *numerator, INT32 *denominator);
+INT64 WINAPI wglSwapBuffersMscOML (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder);
+INT64 WINAPI wglSwapLayerBuffersMscOML (HDC hdc, int fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder);
+BOOL WINAPI wglWaitForMscOML (HDC hdc, INT64 target_msc, INT64 divisor, INT64 remainder, INT64 *ust, INT64 *msc, INT64 *sbc);
+BOOL WINAPI wglWaitForSbcOML (HDC hdc, INT64 target_sbc, INT64 *ust, INT64 *msc, INT64 *sbc);
+#endif
+#endif /* WGL_OML_sync_control */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/xorg-server/hw/xwin/glx/winpriv.c b/xorg-server/hw/xwin/glx/winpriv.c
index 4f6e4ffd5..1b8ec5a4a 100644
--- a/xorg-server/hw/xwin/glx/winpriv.c
+++ b/xorg-server/hw/xwin/glx/winpriv.c
@@ -11,6 +11,8 @@
#include "winpriv.h"
#include "winwindow.h"
+extern Bool g_fXdmcpEnabled;
+
void
winCreateWindowsWindow(WindowPtr pWin);
@@ -21,7 +23,8 @@ void
HWND
winGetWindowInfo(WindowPtr pWin)
{
- winTrace("%s: pWin %p XID 0x%x\n", __FUNCTION__, pWin, pWin->drawable.id);
+ HWND hwnd = NULL;
+ winDebug("%s:%d pWin %p XID 0x%x\n", __FUNCTION__, __LINE__, pWin, pWin->drawable.id);
/* a real window was requested */
if (pWin != NULL) {
@@ -29,11 +32,10 @@ winGetWindowInfo(WindowPtr pWin)
ScreenPtr pScreen = pWin->drawable.pScreen;
winPrivScreenPtr pWinScreen = winGetScreenPriv(pScreen);
winScreenInfoPtr pScreenInfo = NULL;
- HWND hwnd = NULL;
if (pWinScreen == NULL) {
ErrorF("winGetWindowInfo: screen has no privates\n");
- return NULL;
+ return hwnd;
}
hwnd = pWinScreen->hwndScreen;
@@ -50,19 +52,103 @@ winGetWindowInfo(WindowPtr pWin)
}
if (pWinPriv->hWnd == NULL) {
+ if (pWin->parent && pWin->parent->parent)
+ {
+ int offsetx;
+ int offsety;
+ int ExtraClass=(pWin->realized)?WS_VISIBLE:0;
+ HWND hWndParent;
+ WindowPtr pParent=pWin->parent;
+ while (pParent)
+ {
+ winWindowPriv(pParent);
+ hWndParent=pWinPriv->hWnd;
+ if (hWndParent)
+ break;
+ pParent=pParent->parent;
+ }
+ if (!hWndParent)
+ hWndParent=hwnd;
+ if (pParent)
+ {
+ offsetx=pParent->drawable.x;
+ offsety=pParent->drawable.y;
+ }
+ else
+ {
+ offsetx=0;
+ offsety=0;
+ }
+ pWinPriv->hWnd=CreateWindowExA(0,
+ WIN_GL_WINDOW_CLASS,
+ "",
+ WS_CHILD |WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_DISABLED | ExtraClass,
+ pWin->drawable.x-offsetx,
+ pWin->drawable.y-offsety,
+ pWin->drawable.width,
+ pWin->drawable.height,
+ hWndParent,
+ NULL,
+ g_hInstance,
+ pWin);
+ winDebug("Window created %x %x %d %d %d %d\n",pWinPriv->hWnd,hWndParent,pWin->drawable.x-offsetx,pWin->drawable.y-offsety,pWin->drawable.width, pWin->drawable.height);
+ pWinPriv->fWglUsed=TRUE;
+ }
+ else
+ {
winCreateWindowsWindow(pWin);
- ErrorF("winGetWindowInfo: forcing window to exist...\n");
+ winDebug("winGetWindowInfo: forcing window to exist...\n");
+ }
}
-
if (pWinPriv->hWnd != NULL) {
/* copy window handle */
hwnd = pWinPriv->hWnd;
-
- /* mark GLX active on that hwnd */
- pWinPriv->fWglUsed = TRUE;
}
+ }
+ else if (g_fXdmcpEnabled)
+ {
+ winWindowPriv(pWin);
- return hwnd;
+ if (pWinPriv == NULL)
+ {
+ ErrorF("winGetWindowInfo: window has no privates\n");
+ return hwnd;
+ }
+ if (pWinPriv->hWnd == NULL)
+ {
+ if (!((pWin->drawable.x==0) &&
+ (pWin->drawable.y==0) &&
+ (pWin->drawable.width==pScreen->width) &&
+ (pWin->drawable.height==pScreen->height)
+ )
+ )
+ {
+ int ExtraClass=(pWin->realized)?WS_VISIBLE:0;
+ pWinPriv->hWnd=CreateWindowExA(0,
+ WIN_GL_WINDOW_CLASS,
+ "",
+ WS_CHILD |WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_DISABLED | ExtraClass,
+ pWin->drawable.x,
+ pWin->drawable.y,
+ pWin->drawable.width,
+ pWin->drawable.height,
+ pWinScreen->hwndScreen,
+ NULL,
+ g_hInstance,
+ pWin);
+ pWinPriv->fWglUsed=TRUE;
+ /* copy size and window handle */
+ hwnd = pWinPriv->hWnd;
+ }
+ else
+ {
+ hwnd = pWinScreen->hwndScreen;
+ }
+ }
+ else
+ {
+ hwnd = pWinPriv->hWnd;
+ }
}
#endif
#ifdef XWIN_MULTIWINDOWEXTWM
@@ -73,14 +159,12 @@ winGetWindowInfo(WindowPtr pWin)
if (pRLWinPriv == NULL) {
ErrorF("winGetWindowInfo: window has no privates\n");
- return hwnd;
}
if (pRLWinPriv->hWnd != NULL) {
/* copy window handle */
hwnd = pRLWinPriv->hWnd;
}
- return hwnd;
}
#endif
}
@@ -90,15 +174,16 @@ winGetWindowInfo(WindowPtr pWin)
if (pWinScreen == NULL) {
ErrorF("winGetWindowInfo: screen has no privates\n");
- return NULL;
}
+ else
+ {
+ winDebug("winGetWindowInfo: returning root window\n");
- ErrorF("winGetWindowInfo: returning root window\n");
-
- return pWinScreen->hwndScreen;
+ hwnd=pWinScreen->hwndScreen;
+ }
}
- return NULL;
+ return hwnd;
}
Bool
@@ -117,5 +202,8 @@ winCheckScreenAiglxIsSupported(ScreenPtr pScreen)
return TRUE;
#endif
+ if (g_fXdmcpEnabled)
+ return TRUE;
+
return FALSE;
}
diff --git a/xorg-server/hw/xwin/glx/winpriv.h b/xorg-server/hw/xwin/glx/winpriv.h
index dce1edf48..710525ccc 100644
--- a/xorg-server/hw/xwin/glx/winpriv.h
+++ b/xorg-server/hw/xwin/glx/winpriv.h
@@ -7,5 +7,7 @@
#include <X11/Xwindows.h>
#include <windowstr.h>
+#define WIN_GL_WINDOW_CLASS "XWinGLTest"
+
HWND winGetWindowInfo(WindowPtr pWin);
Bool winCheckScreenAiglxIsSupported(ScreenPtr pScreen);
diff --git a/xorg-server/hw/xwin/makefile b/xorg-server/hw/xwin/makefile
new file mode 100644
index 000000000..f09cee19d
--- /dev/null
+++ b/xorg-server/hw/xwin/makefile
@@ -0,0 +1,165 @@
+LIBRARY = libXWin
+
+XWIN_MULTIWINDOW=1
+XWIN_CLIPBOARD=1
+XWIN_MULTIWINDOWEXTWM=0 # currently not working correctly
+XWIN_MULTIWINDOWINTWM=0 # currently not working correctly
+XWIN_RANDR=1
+XWIN_NATIVEGDI=0 # currently not working correctly
+XWIN_PRIMARYFB=0 # currently not working correctly
+XWIN_GLX_WINDOWS=1 # everything is in the glx makefile
+
+if XWIN_CLIPBOARD
+SRCS_CLIPBOARD = \
+ winclipboardinit.c \
+ winclipboardtextconv.c \
+ winclipboardthread.c \
+ winclipboardwndproc.c \
+ winclipboardwrappers.c \
+ winclipboardxevents.c
+DEFS_CLIPBOARD = -DXWIN_CLIPBOARD
+endif
+
+if XWIN_GLX_WINDOWS
+GLX_DIR = glx
+DEFS_GLX_WINDOWS = -DXWIN_GLX_WINDOWS
+XWIN_GLX_LIBS = $(top_builddir)/hw/xwin/glx/libXwinGLX.la
+XWIN_GLX_LINK_FLAGS = -lopengl32
+endif
+
+if XWIN_MULTIWINDOW
+SRCS_MULTIWINDOW = \
+ winmultiwindowshape.c \
+ winmultiwindowwindow.c \
+ winmultiwindowwm.c \
+ winmultiwindowwndproc.c \
+ winSetAppUserModelID.c
+DEFS_MULTIWINDOW = -DXWIN_MULTIWINDOW
+endif
+
+if XWIN_MULTIWINDOWEXTWM
+SRCS_MULTIWINDOWEXTWM = \
+ winwin32rootless.c \
+ winwin32rootlesswindow.c \
+ winwin32rootlesswndproc.c \
+ winwindowswm.c
+DEFS_MULTIWINDOWEXTWM = -DXWIN_MULTIWINDOWEXTWM
+MULTIWINDOWEXTWM_LIBS = $(top_builddir)/miext/rootless/librootless.la
+endif
+
+if XWIN_NATIVEGDI
+SRCS_NATIVEGDI = \
+ winclip.c \
+ winfillsp.c \
+ winfont.c \
+ wingc.c \
+ wingetsp.c \
+ winnativegdi.c \
+ winpixmap.c \
+ winpolyline.c \
+ winrop.c \
+ winsetsp.c
+DEFS_NATIVEGDI = -DXWIN_NATIVEGDI
+endif
+
+if XWIN_PRIMARYFB
+SRCS_PRIMARYFB = \
+ winpfbdd.c
+DEFS_PRIMARYFB = -DXWIN_PRIMARYFB
+endif
+
+if XWIN_RANDR
+SRCS_RANDR = \
+ winrandr.c
+DEFS_RANDR = -DXWIN_RANDR
+endif
+
+if XWIN_XV
+SRCS_XV = \
+ winvideo.c
+DEFS_XV = -DXWIN_XV
+endif
+
+SRCS = InitInput.c \
+ InitOutput.c \
+ winallpriv.c \
+ winauth.c \
+ winblock.c \
+ wincmap.c \
+ winconfig.c \
+ wincreatewnd.c \
+ wincursor.c \
+ windialogs.c \
+ winengine.c \
+ winerror.c \
+ winglobals.c \
+ winkeybd.c \
+ winkeyhook.c \
+ winmisc.c \
+ winmonitors.c \
+ winmouse.c \
+ winmsg.c \
+ winmsgwindow.c \
+ winmultiwindowclass.c \
+ winmultiwindowicons.c \
+ winprefs.c \
+ winprefsyacc.y \
+ winprefslex.l \
+ winprocarg.c \
+ winscrinit.c \
+ winshaddd.c \
+ winshadddnl.c \
+ winshadgdi.c \
+ wintaskbar.c \
+ wintrayicon.c \
+ winvalargs.c \
+ winwakeup.c \
+ winwindow.c \
+ winwndproc.c \
+ ddraw.h \
+ winclipboard.h \
+ winconfig.h \
+ win.h \
+ winkeybd.h \
+ winkeynames.h \
+ winlayouts.h \
+ winmessages.h \
+ winmsg.h \
+ winms.h \
+ winmultiwindowclass.h \
+ winprefs.h \
+ winresource.h \
+ winwindow.h \
+ windisplay.c \
+ XWin.rc \
+ $(SRCS_CLIPBOARD) \
+ $(SRCS_MULTIWINDOW) \
+ $(SRCS_MULTIWINDOWEXTWM) \
+ $(SRCS_NATIVEGDI) \
+ $(SRCS_PRIMARYFB) \
+ $(SRCS_RANDR) \
+ $(SRCS_XV) \
+ xdmcphostselect.c
+
+CSRCS=$(filter %.c,$(SRCS)) $(filter %.y,$(SRCS)) $(filter %.l,$(SRCS))
+CSRCS := $(CSRCS:%.y=%.c)
+CSRCS := $(CSRCS:%.l=%.c)
+
+ DEFS = $(DEFS_CLIPBOARD) \
+ $(DEFS_GLX_WINDOWS) \
+ $(DEFS_MULTIWINDOW) \
+ $(DEFS_MULTIWINDOWEXTWM) \
+ $(DEFS_NATIVEGDI) \
+ $(DEFS_PRIMARYFB) \
+ $(DEFS_RANDR) \
+ $(DEFS_XV)
+
+DEFINES += $(DEFS:-D%=%) HAVE_XWIN_CONFIG_H PTW32_STATIC_LIB RELOCATE_PROJECTROOT
+
+INCLUDES += ..\..\miext\rootless
+
+INCLUDES += $(OBJDIR)
+
+$(OBJDIR)\winprefslex.c $(OBJDIR)\winprefsyacc.c $(OBJDIR)\winprefsyacc.h: winprefslex.l winprefsyacc.y
+ doflexbison.bat $(subst \,/,$(OBJDIR))
+
diff --git a/xorg-server/hw/xwin/propertystore.h b/xorg-server/hw/xwin/propertystore.h
index 6afc6c954..b4a761f51 100644
--- a/xorg-server/hw/xwin/propertystore.h
+++ b/xorg-server/hw/xwin/propertystore.h
@@ -26,7 +26,7 @@
#include <windows.h>
-#ifdef __MINGW64_VERSION_MAJOR
+#if defined(__MINGW64_VERSION_MAJOR) || defined(_MSC_VER)
/* If we are using headers from mingw-w64 project, it provides the PSDK headers this needs ... */
#include <propkey.h>
#include <propsys.h>
diff --git a/xorg-server/hw/xwin/swrastwgl_dri/.gitignore b/xorg-server/hw/xwin/swrastwgl_dri/.gitignore
new file mode 100644
index 000000000..ff5c6df34
--- /dev/null
+++ b/xorg-server/hw/xwin/swrastwgl_dri/.gitignore
@@ -0,0 +1 @@
+diag.txt
diff --git a/xorg-server/hw/xwin/swrastwgl_dri/glwindows.h b/xorg-server/hw/xwin/swrastwgl_dri/glwindows.h
new file mode 100644
index 000000000..3e200644f
--- /dev/null
+++ b/xorg-server/hw/xwin/swrastwgl_dri/glwindows.h
@@ -0,0 +1,39 @@
+/*
+ * File: glwindows.h
+ * Purpose: Header for GLX implementation using native Windows OpenGL library
+ *
+ * Authors: Alexander Gottwald
+ * Jon TURNEY
+ *
+ * Copyright (c) Jon TURNEY 2009
+ * Copyright (c) Alexander Gottwald 2004
+ *
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
+
+
+#include <GL/gl.h>
+
+void glWinCallDelta(void);
+void glxWinPushNativeProvider(void);
+const GLubyte* glGetStringWrapperNonstatic(GLenum name);
+void glAddSwapHintRectWINWrapperNonstatic(GLint x, GLint y, GLsizei width,
+ GLsizei height);
+void glWinSetupDispatchTable(void);
diff --git a/xorg-server/hw/xwin/swrastwgl_dri/glwrap.c b/xorg-server/hw/xwin/swrastwgl_dri/glwrap.c
new file mode 100644
index 000000000..6d794b671
--- /dev/null
+++ b/xorg-server/hw/xwin/swrastwgl_dri/glwrap.c
@@ -0,0 +1,151 @@
+/*
+ * File: glwrap.c
+ * Purpose: Wrapper functions for Win32 OpenGL functions
+ *
+ * Authors: Alexander Gottwald
+ * Jon TURNEY
+ *
+ * Copyright (c) Jon TURNEY 2009
+ * Copyright (c) Alexander Gottwald 2004
+ *
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
+
+// define USE_OPENGL32 makes gl.h declare gl*() function prototypes with stdcall linkage,
+// so our generated wrappers will correctly link with the functions in opengl32.dll
+#define USE_OPENGL32
+
+#ifdef HAVE_XWIN_CONFIG_H
+#include <xwin-config.h>
+#endif
+
+#include <X11/Xwindows.h>
+#include <GL/gl.h>
+#include <GL/glext.h>
+#include <glx/glheader.h>
+#include <glx/glxserver.h>
+#include <glx/glxext.h>
+#include <glx/glapi.h>
+#include <glx/dispatch.h>
+#include <glwindows.h>
+#include <winmsg.h>
+
+#ifdef _DEBUG
+static unsigned int glWinIndirectProcCalls = 0;
+static unsigned int glWinDirectProcCalls = 0;
+
+void
+glWinCallDelta(void)
+{
+ static unsigned int glWinIndirectProcCallsLast = 0;
+ static unsigned int glWinDirectProcCallsLast = 0;
+
+ if ((glWinIndirectProcCalls != glWinIndirectProcCallsLast) ||
+ (glWinDirectProcCalls != glWinDirectProcCallsLast)) {
+ glWinDirectProcCallsLast = glWinDirectProcCalls;
+ glWinIndirectProcCallsLast = glWinIndirectProcCalls;
+ }
+}
+#endif
+
+static __inline PROC
+glWinResolveHelper(PROC * cache, char *symbol)
+{
+ PROC proc = NULL;
+
+ /* If not yet cached, call wglGetProcAddress */
+ if ((*cache) == NULL) {
+ proc = wglGetProcAddress(symbol);
+ if (proc == NULL) {
+ ErrorF("glwrap: Can't resolve \"%s\"\n", symbol);
+ (*cache) = (PROC) - 1;
+ }
+ else {
+ ErrorF("glwrap: Resolved \"%s\"\n", symbol);
+ (*cache) = proc;
+ }
+ }
+ /* Cached wglGetProcAddress failure */
+ else if ((*cache) == (PROC) - 1) {
+ proc = 0;
+ }
+ /* Cached wglGetProcAddress result */
+ else {
+ proc = (*cache);
+ }
+
+ return proc;
+}
+
+#ifdef _DEBUG
+#define INCPROCCALLS glWinIndirectProcCalls++;
+#else
+#define INCPROCCALLS
+#endif
+
+#define RESOLVE_RET(proctype, symbol, retval) \
+ static PROC cache = NULL; \
+ proctype proc = (proctype)glWinResolveHelper(&cache, symbol); \
+ if (proc == NULL) { \
+ __glXErrorCallBack(0); \
+ return retval; \
+ } \
+ INCPROCCALLS
+
+#define RESOLVE(proctype, symbol) RESOLVE_RET(proctype, symbol,)
+
+#define RESOLVED_PROC(proctype) proc
+
+/*
+ Include generated cdecl wrappers for stdcall gl*() functions in opengl32.dll
+
+ OpenGL 1.2 and upward is treated as extensions, function address must
+ found using wglGetProcAddress(), but also stdcall so still need wrappers...
+
+ Include generated dispatch table setup function
+*/
+
+#include "generated_gl_wrappers.c"
+
+/*
+ Special non-static wrapper for glGetString for debug output
+*/
+
+const GLubyte *
+glGetStringWrapperNonstatic(GLenum name)
+{
+ return glGetString(name);
+}
+
+/*
+ Special non-static wrapper for glAddSwapHintRectWIN for copySubBuffers
+*/
+
+typedef void (__stdcall * PFNGLADDSWAPHINTRECTWIN) (GLint x, GLint y,
+ GLsizei width,
+ GLsizei height);
+
+void
+glAddSwapHintRectWINWrapperNonstatic(GLint x, GLint y, GLsizei width,
+ GLsizei height)
+{
+ RESOLVE(PFNGLADDSWAPHINTRECTWIN, "glAddSwapHintRectWIN");
+ proc(x, y, width, height);
+}
diff --git a/xorg-server/hw/xwin/swrastwgl_dri/makefile b/xorg-server/hw/xwin/swrastwgl_dri/makefile
new file mode 100644
index 000000000..201f2aeb9
--- /dev/null
+++ b/xorg-server/hw/xwin/swrastwgl_dri/makefile
@@ -0,0 +1,21 @@
+ifndef PYTHON3
+$(error Please define PYTHON3 environment variable)
+endif
+
+SHAREDLIB = swrastwgl_dri
+
+INCLUDES += $(OBJDIR) ..\..\.. .. ..\glx
+DEFINES += INSERVER HAVE_XWIN_CONFIG_H PTW32_STATIC_LIB
+
+$(OBJDIR)\swrastwgl_dri.dll : ..\..\..\$(SERVOBJDIR)\vcxsrv.exe
+LINKLIBS += ..\..\..\$(SERVOBJDIR)\vcxsrv.lib
+
+CSRCS = swrastwgl_dri.c glwrap.c wgl_ext_api.c
+
+vpath %.c ../glx
+
+$(OBJDIR)\generated_gl_wrappers.c: ../glx/gen_gl_wrappers.py ../glx/gl.xml ../glx/gen_gl_wrappers.py ../glx/reg.py ../../../glx/dispatch.h
+ $(PYTHON3) ../glx/gen_gl_wrappers.py -outfile $@ -nodbgcount -registry ../glx/gl.xml -staticwrappers -dispatchheader ../../../glx/dispatch.h
+
+$(OBJDIR)\generated_wgl_wrappers.c: ../glx/gen_gl_wrappers.py ../glx/wgl.xml ../glx/gen_gl_wrappers.py ../glx/reg.py
+ $(PYTHON3) ../glx/gen_gl_wrappers.py -outfile $@ -nodbgcount -registry ../glx/wgl.xml -prefix wgl -preresolve
diff --git a/xorg-server/hw/xwin/swrastwgl_dri/swrastwgl_dri.c b/xorg-server/hw/xwin/swrastwgl_dri/swrastwgl_dri.c
new file mode 100644
index 000000000..8597e5b4a
--- /dev/null
+++ b/xorg-server/hw/xwin/swrastwgl_dri/swrastwgl_dri.c
@@ -0,0 +1,1216 @@
+#ifdef HAVE_XWIN_CONFIG_H
+#include <xwin-config.h>
+#endif
+#include <X11/Xwindows.h>
+#include <GL/gl.h>
+#include <GL/glext.h>
+#include <GL/glx.h>
+#include <GL/internal/dri_interface.h>
+#include <stdint.h>
+
+#include <glx/glheader.h>
+#include <glx/glapi.h>
+#include <glx/glapitable.h>
+
+typedef unsigned char BYTE;
+typedef int BOOL;
+
+#ifdef _DEBUG
+#define PRINTF(...) ErrorF( __VA_ARGS__)
+#else
+#define PRINTF(...)
+#endif
+
+#undef PUBLIC
+#define PUBLIC __declspec(dllexport)
+
+BOOL colorIndexMode = FALSE;
+BOOL doubleBuffered = FALSE;
+
+struct __DRIscreenRec
+{
+ int ScreenNum;
+ const __DRIextension **extensions;
+ const __DRIswrastLoaderExtension *swrast_loader;
+};
+
+struct __DRIcontextRec
+{
+ struct _glapi_table *Dispatch;
+
+ void *driverPrivate;
+ void *loaderPrivate;
+ __DRIdrawable *driDrawablePriv;
+ __DRIdrawable *driReadablePriv;
+ __DRIscreen *driScreenPriv;
+};
+
+struct __DRIdrawableRec
+{
+ HDC hDC;
+ HDC hDCFrontBuffer;
+ HGLRC hGLRC;
+ HPALETTE hPalette;
+ HBITMAP hBitmap;
+ int winWidth;
+ int winHeight;
+ int bitsPerPixel;
+ VOID *bits;
+
+ void *driverPrivate;
+ void *loaderPrivate;
+ __DRIscreen *driScreenPriv;
+ int refcount;
+};
+
+/* Struct used to manage color ramps */
+struct colorIndexState
+{
+ GLfloat amb[3]; /* ambient color / bottom of ramp */
+ GLfloat diff[3]; /* diffuse color / middle of ramp */
+ GLfloat spec[3]; /* specular color / top of ramp */
+ GLfloat ratio; /* ratio of diffuse to specular in ramp */
+ GLint indexes[3]; /* where ramp was placed in palette */
+};
+
+/*
+** Each entry in this array corresponds to a color ramp in the
+** palette. The indexes member of each struct is updated to
+** reflect the placement of the color ramp in the palette.
+*/
+#define NUM_COLORS (sizeof(colors) / sizeof(colors[0]))
+struct colorIndexState colors[] = {
+ {
+ { 0.0F, 0.0F, 0.0F },
+ { 0.1F, 0.6F, 0.3F },
+ { 1.0F, 1.0F, 1.0F },
+ 0.75F, { 0, 0, 0 },
+ },
+ {
+ { 0.0F, 0.0F, 0.0F },
+ { 0.0F, 0.2F, 0.5F },
+ { 1.0F, 1.0F, 1.0F },
+
+ 0.75F, { 0, 0, 0 },
+ },
+ {
+ { 0.0F, 0.05F, 0.05F },
+ { 0.6F, 0.0F, 0.8F },
+ { 1.0F, 1.0F, 1.0F },
+ 0.75F, { 0, 0, 0 },
+ },
+};
+void setupPalette(__DRIdrawable * pdp)
+{
+ PIXELFORMATDESCRIPTOR pfd;
+ LOGPALETTE* pPal;
+ int pixelFormat = GetPixelFormat(pdp->hDC);
+ int paletteSize;
+
+ PRINTF(__FUNCTION__": pdp %x\n", pdp);
+
+ DescribePixelFormat(pdp->hDC, pixelFormat, sizeof(PIXELFORMATDESCRIPTOR), &pfd);
+
+ /*
+ ** Determine if a palette is needed and if so what size.
+ */
+ if (pfd.dwFlags & PFD_NEED_PALETTE) {
+ paletteSize = 1 << pfd.cColorBits;
+ } else if (pfd.iPixelType == PFD_TYPE_COLORINDEX) {
+ paletteSize = 4096;
+ } else {
+ return;
+ }
+
+ pPal = (LOGPALETTE*)malloc(sizeof(LOGPALETTE) + paletteSize * sizeof(PALETTEENTRY));
+ pPal->palVersion = 0x300;
+ pPal->palNumEntries = paletteSize;
+
+ if (pfd.iPixelType == PFD_TYPE_RGBA)
+ {
+ /*
+ ** Fill the logical paletee with RGB color ramps
+ */
+ int redMask = (1 << pfd.cRedBits) - 1;
+ int greenMask = (1 << pfd.cGreenBits) - 1;
+ int blueMask = (1 << pfd.cBlueBits) - 1;
+ int i;
+
+ for (i=0; i<paletteSize; ++i) {
+ pPal->palPalEntry[i].peRed =
+ (((i >> pfd.cRedShift) & redMask) * 255) / redMask;
+ pPal->palPalEntry[i].peGreen =
+ (((i >> pfd.cGreenShift) & greenMask) * 255) / greenMask;
+ pPal->palPalEntry[i].peBlue =
+ (((i >> pfd.cBlueShift) & blueMask) * 255) / blueMask;
+ pPal->palPalEntry[i].peFlags = 0;
+ }
+ } else {
+ /*
+ ** Fill the logical palette with color ramps.
+ **pcp
+ ** Set up the logical palette so that it can be realized
+ ** into the system palette as an identity palette.
+ **
+ ** 1) The default static entries should be present and at the right
+ ** location. The easiest way to do this is to grab them from
+ ** the current system palette.
+ **
+ ** 2) All non-static entries should be initialized to unique values.
+ ** The easiest way to do this is to ensure that all of the non-static
+ ** entries have the PC_NOCOLLAPSE flag bit set.
+ */
+ int numRamps = NUM_COLORS;
+ int rampSize = (paletteSize - 20) / numRamps;
+ int extra = (paletteSize - 20) - (numRamps * rampSize);
+ int i, r;
+
+ /*
+ ** Initialize static entries by copying them from the
+ ** current system palette.
+ */
+ GetSystemPaletteEntries(pdp->hDC, 0, paletteSize, &pPal->palPalEntry[0]);
+
+ /*
+ ** Fill in non-static entries with desired colors.
+ */
+ for (r=0; r<numRamps; ++r) {
+ int rampBase = r * rampSize + 10;
+ PALETTEENTRY *pe = &pPal->palPalEntry[rampBase];
+ int diffSize = (int) (rampSize * colors[r].ratio);
+ int specSize = rampSize - diffSize;
+
+ for (i=0; i<rampSize; ++i) {
+ GLfloat *c0, *c1;
+ GLint a;
+
+ if (i < diffSize) {
+ c0 = colors[r].amb;
+ c1 = colors[r].diff;
+ a = (i * 255) / (diffSize - 1);
+ } else {
+ c0 = colors[r].diff;
+ c1 = colors[r].spec;
+ a = ((i - diffSize) * 255) / (specSize - 1);
+ }
+
+ pe[i].peRed = (BYTE) (a * (c1[0] - c0[0]) + 255 * c0[0]);
+ pe[i].peGreen = (BYTE) (a * (c1[1] - c0[1]) + 255 * c0[1]);
+ pe[i].peBlue = (BYTE) (a * (c1[2] - c0[2]) + 255 * c0[2]);
+ pe[i].peFlags = PC_NOCOLLAPSE;
+ }
+
+ colors[r].indexes[0] = rampBase;
+ colors[r].indexes[1] = rampBase + (diffSize-1);
+ colors[r].indexes[2] = rampBase + (rampSize-1);
+ }
+
+ /*
+ ** Initialize any remaining non-static entries.
+ */
+ for (i=0; i<extra; ++i) {
+ int index = numRamps*rampSize+10+i;
+ PALETTEENTRY *pe = &pPal->palPalEntry[index];
+
+ pe->peRed = (BYTE) 0;
+ pe->peGreen = (BYTE) 0;
+ pe->peBlue = (BYTE) 0;
+ pe->peFlags = PC_NOCOLLAPSE;
+ }
+ }
+
+ pdp->hPalette = CreatePalette(pPal);
+ free(pPal);
+
+ if (pdp->hPalette) {
+ SelectPalette(pdp->hDC, pdp->hPalette, FALSE);
+ RealizePalette(pdp->hDC);
+ }
+}
+
+void setupPixelFormat(__DRIdrawable *pdp)
+{
+ PIXELFORMATDESCRIPTOR pfd = {
+ sizeof(PIXELFORMATDESCRIPTOR), /* size of this pfd */
+ 1, /* version num */
+ PFD_SUPPORT_OPENGL, /* support OpenGL */
+ 0, /* pixel type */
+ 0, /* 8-bit color depth */
+ 0, 0, 0, 0, 0, 0, /* color bits (ignored) */
+ 0, /* no alpha buffer */
+ 0, /* alpha bits (ignored) */
+ 0, /* no accumulation buffer */
+ 0, 0, 0, 0, /* accum bits (ignored) */
+ 16, /* depth buffer */
+ 0, /* no stencil buffer */
+ 0, /* no auxiliary buffers */
+ PFD_MAIN_PLANE, /* main layer */
+ 0, /* reserved */
+ 0, 0, 0, /* no layer, visible, damage masks */
+ };
+ int SelectedPixelFormat;
+ BOOL retVal;
+
+ PRINTF(__FUNCTION__": pdp %x\n", pdp);
+
+ pfd.cColorBits = GetDeviceCaps(pdp->hDC, BITSPIXEL);
+
+ if (colorIndexMode) {
+ pfd.iPixelType = PFD_TYPE_COLORINDEX;
+ } else {
+ pfd.iPixelType = PFD_TYPE_RGBA;
+ }
+
+ if (doubleBuffered) {
+ pfd.dwFlags |= PFD_DOUBLEBUFFER;
+ }
+
+ pfd.dwFlags |= PFD_DRAW_TO_BITMAP;
+
+ SelectedPixelFormat = ChoosePixelFormat(pdp->hDC, &pfd);
+ if (SelectedPixelFormat == 0)
+ {
+ (void) MessageBox(WindowFromDC(pdp->hDC), "Failed to find acceptable pixel format.", "OpenGL application error", MB_ICONERROR | MB_OK);
+ exit(1);
+ }
+
+ retVal = SetPixelFormat(pdp->hDC, SelectedPixelFormat, &pfd);
+ if (retVal != TRUE)
+ {
+ MessageBox(WindowFromDC(pdp->hDC), "Failed to set pixel format.", "OpenGL application error", MB_ICONERROR | MB_OK);
+ exit(1);
+ }
+}
+
+void setupDIB(__DRIdrawable * pdp)
+{
+ HBITMAP hBitmap;
+ BITMAPINFO *bmInfo;
+ BITMAPINFOHEADER *bmHeader;
+ UINT usage;
+ VOID *base;
+ int bmiSize;
+ int bitsPerPixel;
+
+ PRINTF(__FUNCTION__": pdp %x\n", pdp);
+
+ bmiSize = sizeof(*bmInfo);
+ bitsPerPixel = GetDeviceCaps(pdp->hDC, BITSPIXEL);
+ pdp->bitsPerPixel=bitsPerPixel;
+
+ switch (bitsPerPixel) {
+ case 8:
+ /* bmiColors is 256 WORD palette indices */
+ bmiSize += (256 * sizeof(WORD)) - sizeof(RGBQUAD);
+ break;
+ case 16:
+ /* bmiColors is 3 WORD component masks */
+ bmiSize += (3 * sizeof(DWORD)) - sizeof(RGBQUAD);
+ break;
+ case 24:
+ case 32:
+ default:
+ /* bmiColors not used */
+ break;
+ }
+
+ bmInfo = (BITMAPINFO *) calloc(1, bmiSize);
+ bmHeader = &bmInfo->bmiHeader;
+
+ bmHeader->biSize = sizeof(*bmHeader);
+ bmHeader->biWidth = pdp->winWidth;
+ bmHeader->biHeight = pdp->winHeight;
+ bmHeader->biPlanes = 1; /* must be 1 */
+ bmHeader->biBitCount = bitsPerPixel;
+ bmHeader->biXPelsPerMeter = 0;
+ bmHeader->biYPelsPerMeter = 0;
+ bmHeader->biClrUsed = 0; /* all are used */
+ bmHeader->biClrImportant = 0; /* all are important */
+
+ switch (bitsPerPixel) {
+ case 8:
+ bmHeader->biCompression = BI_RGB;
+ bmHeader->biSizeImage = 0;
+ usage = DIB_PAL_COLORS;
+ /* bmiColors is 256 WORD palette indices */
+ {
+ WORD *palIndex = (WORD *) &bmInfo->bmiColors[0];
+ int i;
+
+ for (i=0; i<256; i++) {
+ palIndex[i] = i;
+ }
+ }
+ break;
+ case 16:
+ bmHeader->biCompression = BI_RGB;
+ bmHeader->biSizeImage = 0;
+ usage = DIB_RGB_COLORS;
+ /* bmiColors is 3 WORD component masks */
+ {
+ DWORD *compMask = (DWORD *) &bmInfo->bmiColors[0];
+
+ compMask[0] = 0xF800;
+ compMask[1] = 0x07E0;
+ compMask[2] = 0x001F;
+ }
+ break;
+ case 24:
+ case 32:
+ default:
+ bmHeader->biCompression = BI_RGB;
+ bmHeader->biSizeImage = 0;
+ usage = DIB_RGB_COLORS;
+ /* bmiColors not used */
+ break;
+ }
+
+ hBitmap = CreateDIBSection(pdp->hDC, bmInfo, usage, &base, NULL, 0);
+ if (hBitmap == NULL)
+ {
+ (void) MessageBox(WindowFromDC(pdp->hDC), "Failed to create DIBSection.", "OpenGL application error", MB_ICONERROR | MB_OK);
+ exit(1);
+ }
+
+ pdp->bits=base;
+ SelectObject(pdp->hDC, hBitmap);
+ if (pdp->hBitmap) DeleteObject(pdp->hBitmap);
+ pdp->hBitmap = hBitmap;
+
+ free(bmInfo);
+}
+
+static void setupLoaderExtensions(__DRIscreen *psp, const __DRIextension **extensions)
+{
+ int i;
+
+ for (i = 0; extensions[i]; i++)
+ {
+ if (strcmp(extensions[i]->name, __DRI_SWRAST_LOADER) == 0)
+ psp->swrast_loader = (__DRIswrastLoaderExtension *) extensions[i];
+ }
+}
+
+static const __DRItexBufferExtension swrastTexBufferExtension = {
+ { __DRI_TEX_BUFFER, __DRI_TEX_BUFFER_VERSION },
+ NULL,// swrastSetTexBuffer,
+ NULL // swrastSetTexBuffer2
+};
+
+static const __DRIextension *dri_screen_extensions[] = {
+ &swrastTexBufferExtension.base,
+ NULL
+};
+
+struct gl_config
+{
+ GLboolean rgbMode;
+ GLboolean floatMode;
+ GLboolean colorIndexMode; /* XXX is this used anywhere? */
+ GLuint doubleBufferMode;
+ GLuint stereoMode;
+
+ GLboolean haveAccumBuffer;
+ GLboolean haveDepthBuffer;
+ GLboolean haveStencilBuffer;
+
+ GLint redBits, greenBits, blueBits, alphaBits; /* bits per comp */
+ GLuint redMask, greenMask, blueMask, alphaMask;
+ GLint rgbBits; /* total bits for rgb */
+ GLint indexBits; /* total bits for colorindex */
+
+ GLint accumRedBits, accumGreenBits, accumBlueBits, accumAlphaBits;
+ GLint depthBits;
+ GLint stencilBits;
+
+ GLint numAuxBuffers;
+
+ GLint level;
+
+ /* EXT_visual_rating / GLX 1.2 */
+ GLint visualRating;
+
+ /* EXT_visual_info / GLX 1.2 */
+ GLint transparentPixel;
+ /* colors are floats scaled to ints */
+ GLint transparentRed, transparentGreen, transparentBlue, transparentAlpha;
+ GLint transparentIndex;
+
+ /* ARB_multisample / SGIS_multisample */
+ GLint sampleBuffers;
+ GLint samples;
+
+ /* SGIX_pbuffer / GLX 1.3 */
+ GLint maxPbufferWidth;
+ GLint maxPbufferHeight;
+ GLint maxPbufferPixels;
+ GLint optimalPbufferWidth; /* Only for SGIX_pbuffer. */
+ GLint optimalPbufferHeight; /* Only for SGIX_pbuffer. */
+
+ /* OML_swap_method */
+ GLint swapMethod;
+
+ /* EXT_texture_from_pixmap */
+ GLint bindToTextureRgb;
+ GLint bindToTextureRgba;
+ GLint bindToMipmapTexture;
+ GLint bindToTextureTargets;
+ GLint yInverted;
+
+ /* EXT_framebuffer_sRGB */
+ GLint sRGBCapable;
+};
+
+struct __DRIconfigRec {
+ struct gl_config modes;
+};
+
+#define __ATTRIB(attrib, field) \
+ { attrib, offsetof(struct gl_config, field) }
+
+static const struct { unsigned int attrib, offset; } attribMap[] = {
+ __ATTRIB(__DRI_ATTRIB_BUFFER_SIZE, rgbBits),
+ __ATTRIB(__DRI_ATTRIB_LEVEL, level),
+ __ATTRIB(__DRI_ATTRIB_RED_SIZE, redBits),
+ __ATTRIB(__DRI_ATTRIB_GREEN_SIZE, greenBits),
+ __ATTRIB(__DRI_ATTRIB_BLUE_SIZE, blueBits),
+ __ATTRIB(__DRI_ATTRIB_ALPHA_SIZE, alphaBits),
+ __ATTRIB(__DRI_ATTRIB_DEPTH_SIZE, depthBits),
+ __ATTRIB(__DRI_ATTRIB_STENCIL_SIZE, stencilBits),
+ __ATTRIB(__DRI_ATTRIB_ACCUM_RED_SIZE, accumRedBits),
+ __ATTRIB(__DRI_ATTRIB_ACCUM_GREEN_SIZE, accumGreenBits),
+ __ATTRIB(__DRI_ATTRIB_ACCUM_BLUE_SIZE, accumBlueBits),
+ __ATTRIB(__DRI_ATTRIB_ACCUM_ALPHA_SIZE, accumAlphaBits),
+ __ATTRIB(__DRI_ATTRIB_SAMPLE_BUFFERS, sampleBuffers),
+ __ATTRIB(__DRI_ATTRIB_SAMPLES, samples),
+ __ATTRIB(__DRI_ATTRIB_DOUBLE_BUFFER, doubleBufferMode),
+ __ATTRIB(__DRI_ATTRIB_STEREO, stereoMode),
+ __ATTRIB(__DRI_ATTRIB_AUX_BUFFERS, numAuxBuffers),
+ __ATTRIB(__DRI_ATTRIB_TRANSPARENT_TYPE, transparentPixel),
+ __ATTRIB(__DRI_ATTRIB_TRANSPARENT_INDEX_VALUE, transparentPixel),
+ __ATTRIB(__DRI_ATTRIB_TRANSPARENT_RED_VALUE, transparentRed),
+ __ATTRIB(__DRI_ATTRIB_TRANSPARENT_GREEN_VALUE, transparentGreen),
+ __ATTRIB(__DRI_ATTRIB_TRANSPARENT_BLUE_VALUE, transparentBlue),
+ __ATTRIB(__DRI_ATTRIB_TRANSPARENT_ALPHA_VALUE, transparentAlpha),
+ __ATTRIB(__DRI_ATTRIB_FLOAT_MODE, floatMode),
+ __ATTRIB(__DRI_ATTRIB_RED_MASK, redMask),
+ __ATTRIB(__DRI_ATTRIB_GREEN_MASK, greenMask),
+ __ATTRIB(__DRI_ATTRIB_BLUE_MASK, blueMask),
+ __ATTRIB(__DRI_ATTRIB_ALPHA_MASK, alphaMask),
+ __ATTRIB(__DRI_ATTRIB_MAX_PBUFFER_WIDTH, maxPbufferWidth),
+ __ATTRIB(__DRI_ATTRIB_MAX_PBUFFER_HEIGHT, maxPbufferHeight),
+ __ATTRIB(__DRI_ATTRIB_MAX_PBUFFER_PIXELS, maxPbufferPixels),
+ __ATTRIB(__DRI_ATTRIB_OPTIMAL_PBUFFER_WIDTH, optimalPbufferWidth),
+ __ATTRIB(__DRI_ATTRIB_OPTIMAL_PBUFFER_HEIGHT, optimalPbufferHeight),
+ __ATTRIB(__DRI_ATTRIB_SWAP_METHOD, swapMethod),
+ __ATTRIB(__DRI_ATTRIB_BIND_TO_TEXTURE_RGB, bindToTextureRgb),
+ __ATTRIB(__DRI_ATTRIB_BIND_TO_TEXTURE_RGBA, bindToTextureRgba),
+ __ATTRIB(__DRI_ATTRIB_BIND_TO_MIPMAP_TEXTURE, bindToMipmapTexture),
+ __ATTRIB(__DRI_ATTRIB_BIND_TO_TEXTURE_TARGETS, bindToTextureTargets),
+ __ATTRIB(__DRI_ATTRIB_YINVERTED, yInverted),
+ __ATTRIB(__DRI_ATTRIB_FRAMEBUFFER_SRGB_CAPABLE, sRGBCapable),
+
+ /* The struct field doesn't matter here, these are handled by the
+ * switch in driGetConfigAttribIndex. We need them in the array
+ * so the iterator includes them though.*/
+ __ATTRIB(__DRI_ATTRIB_RENDER_TYPE, level),
+ __ATTRIB(__DRI_ATTRIB_CONFIG_CAVEAT, level),
+ __ATTRIB(__DRI_ATTRIB_SWAP_METHOD, level)
+};
+
+#define ARRAY_SIZE(a) (sizeof (a) / sizeof ((a)[0]))
+
+__DRIconfig **
+driCreateConfigs(GLenum fb_format, GLenum fb_type,
+ const uint8_t * depth_bits, const uint8_t * stencil_bits,
+ unsigned num_depth_stencil_bits,
+ const GLenum * db_modes, unsigned num_db_modes,
+ const uint8_t * msaa_samples, unsigned num_msaa_modes,
+ GLboolean enable_accum)
+{
+ static const uint8_t bits_table[4][4] = {
+ /* R G B A */
+ { 3, 3, 2, 0 }, /* Any GL_UNSIGNED_BYTE_3_3_2 */
+ { 5, 6, 5, 0 }, /* Any GL_UNSIGNED_SHORT_5_6_5 */
+ { 8, 8, 8, 0 }, /* Any RGB with any GL_UNSIGNED_INT_8_8_8_8 */
+ { 8, 8, 8, 8 } /* Any RGBA with any GL_UNSIGNED_INT_8_8_8_8 */
+ };
+
+ static const uint32_t masks_table_rgb[6][4] = {
+ { 0x000000E0, 0x0000001C, 0x00000003, 0x00000000 }, /* 3_3_2 */
+ { 0x00000007, 0x00000038, 0x000000C0, 0x00000000 }, /* 2_3_3_REV */
+ { 0x0000F800, 0x000007E0, 0x0000001F, 0x00000000 }, /* 5_6_5 */
+ { 0x0000001F, 0x000007E0, 0x0000F800, 0x00000000 }, /* 5_6_5_REV */
+ { 0xFF000000, 0x00FF0000, 0x0000FF00, 0x00000000 }, /* 8_8_8_8 */
+ { 0x000000FF, 0x0000FF00, 0x00FF0000, 0x00000000 } /* 8_8_8_8_REV */
+ };
+
+ static const uint32_t masks_table_rgba[6][4] = {
+ { 0x000000E0, 0x0000001C, 0x00000003, 0x00000000 }, /* 3_3_2 */
+ { 0x00000007, 0x00000038, 0x000000C0, 0x00000000 }, /* 2_3_3_REV */
+ { 0x0000F800, 0x000007E0, 0x0000001F, 0x00000000 }, /* 5_6_5 */
+ { 0x0000001F, 0x000007E0, 0x0000F800, 0x00000000 }, /* 5_6_5_REV */
+ { 0xFF000000, 0x00FF0000, 0x0000FF00, 0x000000FF }, /* 8_8_8_8 */
+ { 0x000000FF, 0x0000FF00, 0x00FF0000, 0xFF000000 }, /* 8_8_8_8_REV */
+ };
+
+ static const uint32_t masks_table_bgr[6][4] = {
+ { 0x00000007, 0x00000038, 0x000000C0, 0x00000000 }, /* 3_3_2 */
+ { 0x000000E0, 0x0000001C, 0x00000003, 0x00000000 }, /* 2_3_3_REV */
+ { 0x0000001F, 0x000007E0, 0x0000F800, 0x00000000 }, /* 5_6_5 */
+ { 0x0000F800, 0x000007E0, 0x0000001F, 0x00000000 }, /* 5_6_5_REV */
+ { 0x0000FF00, 0x00FF0000, 0xFF000000, 0x00000000 }, /* 8_8_8_8 */
+ { 0x00FF0000, 0x0000FF00, 0x000000FF, 0x00000000 }, /* 8_8_8_8_REV */
+ };
+
+ static const uint32_t masks_table_bgra[6][4] = {
+ { 0x00000007, 0x00000038, 0x000000C0, 0x00000000 }, /* 3_3_2 */
+ { 0x000000E0, 0x0000001C, 0x00000003, 0x00000000 }, /* 2_3_3_REV */
+ { 0x0000001F, 0x000007E0, 0x0000F800, 0x00000000 }, /* 5_6_5 */
+ { 0x0000F800, 0x000007E0, 0x0000001F, 0x00000000 }, /* 5_6_5_REV */
+ { 0x0000FF00, 0x00FF0000, 0xFF000000, 0x000000FF }, /* 8_8_8_8 */
+ { 0x00FF0000, 0x0000FF00, 0x000000FF, 0xFF000000 }, /* 8_8_8_8_REV */
+ };
+
+ static const uint8_t bytes_per_pixel[6] = {
+ 1, /* 3_3_2 */
+ 1, /* 2_3_3_REV */
+ 2, /* 5_6_5 */
+ 2, /* 5_6_5_REV */
+ 4, /* 8_8_8_8 */
+ 4 /* 8_8_8_8_REV */
+
+ };
+
+ const uint8_t * bits;
+ const uint32_t * masks;
+ int index;
+ __DRIconfig **configs, **c;
+
+ struct gl_config *modes;
+ unsigned i, j, k, h;
+ unsigned num_modes;
+ unsigned num_accum_bits = (enable_accum) ? 2 : 1;
+
+ PRINTF(__FUNCTION__"\n");
+ switch ( fb_type ) {
+ case GL_UNSIGNED_BYTE_3_3_2:
+ index = 0;
+ break;
+ case GL_UNSIGNED_BYTE_2_3_3_REV:
+ index = 1;
+ break;
+ case GL_UNSIGNED_SHORT_5_6_5:
+ index = 2;
+ break;
+ case GL_UNSIGNED_SHORT_5_6_5_REV:
+ index = 3;
+ break;
+ case GL_UNSIGNED_INT_8_8_8_8:
+ index = 4;
+ break;
+ case GL_UNSIGNED_INT_8_8_8_8_REV:
+ index = 5;
+ break;
+ default:
+ fprintf( stderr, "[%s:%u] Unknown framebuffer type 0x%04x.\n",
+ __FUNCTION__, __LINE__, fb_type );
+ return NULL;
+ }
+
+
+ /* Valid types are GL_UNSIGNED_SHORT_5_6_5 and GL_UNSIGNED_INT_8_8_8_8 and
+ * the _REV versions.
+ *
+ * Valid formats are GL_RGBA, GL_RGB, and GL_BGRA.
+ */
+
+ switch ( fb_format ) {
+ case GL_RGB:
+ masks = masks_table_rgb[ index ];
+ break;
+
+ case GL_RGBA:
+ masks = masks_table_rgba[ index ];
+ break;
+
+ case GL_BGR:
+ masks = masks_table_bgr[ index ];
+ break;
+
+ case GL_BGRA:
+ masks = masks_table_bgra[ index ];
+ break;
+
+ default:
+ fprintf( stderr, "[%s:%u] Unknown framebuffer format 0x%04x.\n",
+ __FUNCTION__, __LINE__, fb_format );
+ return NULL;
+ }
+
+ switch ( bytes_per_pixel[ index ] ) {
+ case 1:
+ bits = bits_table[0];
+ break;
+ case 2:
+ bits = bits_table[1];
+ break;
+ default:
+ bits = ((fb_format == GL_RGB) || (fb_format == GL_BGR))
+ ? bits_table[2]
+ : bits_table[3];
+ break;
+ }
+
+ num_modes = num_depth_stencil_bits * num_db_modes * num_accum_bits * num_msaa_modes;
+ configs = calloc(1, (num_modes + 1) * sizeof *configs);
+ if (configs == NULL)
+ return NULL;
+
+ c = configs;
+ for ( k = 0 ; k < num_depth_stencil_bits ; k++ ) {
+ for ( i = 0 ; i < num_db_modes ; i++ ) {
+ for ( h = 0 ; h < num_msaa_modes; h++ ) {
+ for ( j = 0 ; j < num_accum_bits ; j++ ) {
+ *c = malloc (sizeof **c);
+ modes = &(*c)->modes;
+ c++;
+
+ memset(modes, 0, sizeof *modes);
+ modes->redBits = bits[0];
+ modes->greenBits = bits[1];
+ modes->blueBits = bits[2];
+ modes->alphaBits = bits[3];
+ modes->redMask = masks[0];
+ modes->greenMask = masks[1];
+ modes->blueMask = masks[2];
+ modes->alphaMask = masks[3];
+ modes->rgbBits = modes->redBits + modes->greenBits
+ + modes->blueBits + modes->alphaBits;
+
+ modes->accumRedBits = 16 * j;
+ modes->accumGreenBits = 16 * j;
+ modes->accumBlueBits = 16 * j;
+ modes->accumAlphaBits = (masks[3] != 0) ? 16 * j : 0;
+ modes->visualRating = (j == 0) ? GLX_NONE : GLX_SLOW_CONFIG;
+
+ modes->stencilBits = stencil_bits[k];
+ modes->depthBits = depth_bits[k];
+
+ modes->transparentPixel = GLX_NONE;
+ modes->transparentRed = GLX_DONT_CARE;
+ modes->transparentGreen = GLX_DONT_CARE;
+ modes->transparentBlue = GLX_DONT_CARE;
+ modes->transparentAlpha = GLX_DONT_CARE;
+ modes->transparentIndex = GLX_DONT_CARE;
+ modes->rgbMode = GL_TRUE;
+
+ if ( db_modes[i] == GLX_NONE ) {
+ modes->doubleBufferMode = GL_FALSE;
+ }
+ else {
+ modes->doubleBufferMode = GL_TRUE;
+ modes->swapMethod = db_modes[i];
+ }
+
+ modes->samples = msaa_samples[h];
+ modes->sampleBuffers = modes->samples ? 1 : 0;
+
+
+ modes->haveAccumBuffer = ((modes->accumRedBits +
+ modes->accumGreenBits +
+ modes->accumBlueBits +
+ modes->accumAlphaBits) > 0);
+ modes->haveDepthBuffer = (modes->depthBits > 0);
+ modes->haveStencilBuffer = (modes->stencilBits > 0);
+
+ modes->bindToTextureRgb = GL_TRUE;
+ modes->bindToTextureRgba = GL_TRUE;
+ modes->bindToMipmapTexture = GL_FALSE;
+ modes->bindToTextureTargets =
+ __DRI_ATTRIB_TEXTURE_1D_BIT |
+ __DRI_ATTRIB_TEXTURE_2D_BIT |
+ __DRI_ATTRIB_TEXTURE_RECTANGLE_BIT;
+
+ modes->sRGBCapable = GL_FALSE;
+ }
+ }
+ }
+ }
+ *c = NULL;
+
+ return configs;
+}
+
+static __DRIconfig **
+swrastFillInModes(__DRIscreen *psp,
+ unsigned pixel_bits, unsigned depth_bits,
+ unsigned stencil_bits, GLboolean have_back_buffer)
+{
+ __DRIconfig **configs;
+ unsigned depth_buffer_factor;
+ unsigned back_buffer_factor;
+ GLenum fb_format;
+ GLenum fb_type;
+
+ /* GLX_SWAP_COPY_OML is only supported because the Intel driver doesn't
+ * support pageflipping at all.
+ */
+ static const GLenum back_buffer_modes[] = {
+ GLX_NONE, GLX_SWAP_UNDEFINED_OML
+ };
+
+ uint8_t depth_bits_array[4];
+ uint8_t stencil_bits_array[4];
+ uint8_t msaa_samples_array[1];
+
+ (void) psp;
+ (void) have_back_buffer;
+
+ PRINTF(__FUNCTION__"\n");
+
+ depth_bits_array[0] = 0;
+ depth_bits_array[1] = 0;
+ depth_bits_array[2] = depth_bits;
+ depth_bits_array[3] = depth_bits;
+
+ /* Just like with the accumulation buffer, always provide some modes
+ * with a stencil buffer.
+ */
+ stencil_bits_array[0] = 0;
+ stencil_bits_array[1] = (stencil_bits == 0) ? 8 : stencil_bits;
+ stencil_bits_array[2] = 0;
+ stencil_bits_array[3] = (stencil_bits == 0) ? 8 : stencil_bits;
+
+ msaa_samples_array[0] = 0;
+
+ depth_buffer_factor = 4;
+ back_buffer_factor = 2;
+
+ switch (pixel_bits) {
+ case 8:
+ fb_format = GL_RGB;
+ fb_type = GL_UNSIGNED_BYTE_2_3_3_REV;
+ break;
+ case 16:
+ fb_format = GL_RGB;
+ fb_type = GL_UNSIGNED_SHORT_5_6_5;
+ break;
+ case 24:
+ fb_format = GL_BGR;
+ fb_type = GL_UNSIGNED_INT_8_8_8_8_REV;
+ break;
+ case 32:
+ fb_format = GL_BGRA;
+ fb_type = GL_UNSIGNED_INT_8_8_8_8_REV;
+ break;
+ default:
+ fprintf(stderr, "[%s:%u] bad depth %d\n", __FUNCTION__, __LINE__,
+ pixel_bits);
+ return NULL;
+ }
+
+ configs = driCreateConfigs(fb_format, fb_type,
+ depth_bits_array, stencil_bits_array,
+ depth_buffer_factor, back_buffer_modes,
+ back_buffer_factor, msaa_samples_array, 1,
+ GL_TRUE);
+ if (configs == NULL) {
+ fprintf(stderr, "[%s:%u] Error creating FBConfig!\n", __FUNCTION__,
+ __LINE__);
+ return NULL;
+ }
+
+ return configs;
+}
+
+__DRIconfig **driConcatConfigs(__DRIconfig **a, __DRIconfig **b)
+{
+ __DRIconfig **all;
+ int i, j, index;
+
+ PRINTF(__FUNCTION__"\n");
+
+ i = 0;
+ while (a[i] != NULL)
+ i++;
+ j = 0;
+ while (b[j] != NULL)
+ j++;
+
+ all = malloc((i + j + 1) * sizeof *all);
+ index = 0;
+ for (i = 0; a[i] != NULL; i++)
+ all[index++] = a[i];
+ for (j = 0; b[j] != NULL; j++)
+ all[index++] = b[j];
+ all[index++] = NULL;
+
+ free(a);
+ free(b);
+
+ return all;
+}
+
+static int driGetConfigAttribIndex(const __DRIconfig *config, unsigned int index, unsigned int *value)
+{
+ switch (attribMap[index].attrib) {
+ case __DRI_ATTRIB_RENDER_TYPE:
+ /* no support for color index mode */
+ *value = __DRI_ATTRIB_RGBA_BIT;
+ break;
+ case __DRI_ATTRIB_CONFIG_CAVEAT:
+ if (config->modes.visualRating == GLX_NON_CONFORMANT_CONFIG)
+ *value = __DRI_ATTRIB_NON_CONFORMANT_CONFIG;
+ else if (config->modes.visualRating == GLX_SLOW_CONFIG)
+ *value = __DRI_ATTRIB_SLOW_BIT;
+ else
+ *value = 0;
+ break;
+ case __DRI_ATTRIB_SWAP_METHOD:
+ /* XXX no return value??? */
+ break;
+
+ case __DRI_ATTRIB_FLOAT_MODE:
+ /* this field is not int-sized */
+ *value = config->modes.floatMode;
+ break;
+
+ default:
+ /* any other int-sized field */
+ *value = *(unsigned int *)
+ ((char *) &config->modes + attribMap[index].offset);
+ break;
+ }
+
+ return GL_TRUE;
+}
+
+int driIndexConfigAttrib(const __DRIconfig *config, int index, unsigned int *attrib, unsigned int *value)
+{
+ if (index >= 0 && index < ARRAY_SIZE(attribMap))
+ {
+ *attrib = attribMap[index].attrib;
+ return driGetConfigAttribIndex(config, index, value);
+ }
+
+ return GL_FALSE;
+}
+
+static const __DRIconfig **dri_init_screen(__DRIscreen * psp)
+{
+ __DRIconfig **configs8, **configs16, **configs24, **configs32;
+
+ PRINTF(__FUNCTION__": psp %x\n", psp);
+
+ psp->extensions = dri_screen_extensions;
+
+ configs8 = swrastFillInModes(psp, 8, 8, 0, 1);
+ configs16 = swrastFillInModes(psp, 16, 16, 0, 1);
+ configs24 = swrastFillInModes(psp, 24, 24, 8, 1);
+ configs32 = swrastFillInModes(psp, 32, 24, 8, 1);
+
+ configs16 = driConcatConfigs(configs8, configs16);
+ configs24 = driConcatConfigs(configs16, configs24);
+ configs32 = driConcatConfigs(configs24, configs32);
+
+ return (const __DRIconfig **)configs32;
+}
+
+static __DRIscreen *driCreateNewScreen(int scrn, const __DRIextension **extensions, const __DRIconfig ***driver_configs, void *data)
+{
+ static const __DRIextension *emptyExtensionList[] = { NULL };
+ __DRIscreen *psp;
+
+ HDC hDc = GetDC(NULL);
+ int bitsPerPixel= GetDeviceCaps(hDc, BITSPIXEL);
+ ReleaseDC(NULL, hDc);
+ if (bitsPerPixel<24)
+ {
+ PRINTF(__FUNCTION__": bitsPerPixel not supported %d\n", bitsPerPixel);
+ return NULL;
+ }
+
+ psp = calloc(sizeof(struct __DRIscreenRec),1);
+ if (!psp)
+ return NULL;
+
+ PRINTF(__FUNCTION__": psp %x\n", psp);
+
+ setupLoaderExtensions(psp, extensions);
+
+ psp->extensions = emptyExtensionList;
+ psp->ScreenNum = scrn;
+
+ *driver_configs = dri_init_screen(psp);
+
+ if (*driver_configs == NULL)
+ {
+ free(psp);
+ return NULL;
+ }
+
+ return psp;
+}
+
+static __DRIcontext *driCreateNewContext(__DRIscreen *psp, const __DRIconfig *config, __DRIcontext *shared, void *data)
+{
+ __DRIcontext *pcp;
+ void * const shareCtx = (shared != NULL) ? shared->driverPrivate : NULL;
+
+ pcp = calloc(sizeof(struct __DRIcontextRec),1);
+ if (!pcp)
+ return NULL;
+
+ PRINTF(__FUNCTION__": psp %x, shared %x, data %x, pcp %x\n", psp, shared, data, pcp);
+
+ pcp->loaderPrivate = data;
+
+ pcp->driScreenPriv = psp;
+ pcp->driDrawablePriv = NULL;
+ pcp->driReadablePriv = NULL;
+
+ pcp->Dispatch=calloc(sizeof(void*), (sizeof(struct _glapi_table) / sizeof(void *) + MAX_EXTENSION_FUNCS));
+ _glapi_set_dispatch(pcp->Dispatch);
+
+ glWinSetupDispatchTable();
+
+ return pcp;
+}
+
+static const __DRIextension **driGetExtensions(__DRIscreen *psp)
+{
+ return psp->extensions;
+}
+
+static void driDrawableCheckSize(__DRIdrawable *pdp)
+{
+ int x;
+ int y;
+ int w;
+ int h;
+ pdp->driScreenPriv->swrast_loader->getDrawableInfo(pdp, &x, &y, &w, &h, pdp->loaderPrivate);
+ if (pdp->winWidth==w && pdp->winHeight==h)
+ return;
+ pdp->winWidth=w;
+ pdp->winHeight=h;
+ setupDIB(pdp);
+}
+static __DRIdrawable *driCreateNewDrawable(__DRIscreen *psp, const __DRIconfig *config, void *data)
+{
+ __DRIdrawable *pdp = calloc(sizeof(struct __DRIdrawableRec),1);
+ if (!pdp)
+ return NULL;
+
+ PRINTF(__FUNCTION__": pdp %x, data %x\n", pdp, data);
+
+ pdp->loaderPrivate = data;
+
+ pdp->driScreenPriv = psp;
+
+ pdp->refcount++;
+
+ pdp->hDCFrontBuffer = GetDC(NULL);
+ pdp->hDC = CreateCompatibleDC(pdp->hDCFrontBuffer);
+
+ driDrawableCheckSize(pdp);
+
+ setupPixelFormat(pdp);
+ setupPalette(pdp);
+ pdp->hGLRC = wglCreateContext(pdp->hDC);
+
+ return pdp;
+}
+
+static __DRIcontext *current_pcp;
+
+static int driBindContext(__DRIcontext *pcp, __DRIdrawable *pdp, __DRIdrawable *prp)
+{
+ PRINTF(__FUNCTION__": pcp %x, pdp %x, prp %x\n",pcp, pdp, prp);
+
+ if (current_pcp)
+ {
+ driUnbindContext(current_pcp);
+ current_pcp=NULL;
+ }
+
+ /* Bind the drawable to the context */
+ if (pcp)
+ {
+ static int Created=0;
+
+ if (!pdp || !prp)
+ {
+ return GL_TRUE;
+ }
+
+ pcp->driDrawablePriv = pdp;
+ pcp->driReadablePriv = prp;
+ if (pdp)
+ {
+ pdp->refcount++;
+ }
+ if ( prp && pdp != prp )
+ {
+ prp->refcount++;
+ }
+
+ if (wglGetCurrentContext()!=pdp->hGLRC)
+ {
+ if (!wglMakeCurrent(pdp->hDC, pdp->hGLRC))
+ ErrorF("Error making context current: pdp %x\n",pdp);
+ PRINTF("pdp->hDC %x to pdp->hGLRC %x\n",pdp->hDC, pdp->hGLRC);
+ }
+ if (Created)
+ {
+ // initialize wgl extension proc pointers (don't call them before here...)
+ // (but we need to have a current context for them to be resolvable)
+ Created=1;
+ wglResolveExtensionProcs();
+ }
+ current_pcp=pcp;
+ _glapi_set_dispatch(pcp->Dispatch);
+ }
+
+ return GL_TRUE;
+}
+
+static void driDestroyDrawable(__DRIdrawable *pdp)
+{
+ if (pdp)
+ {
+ pdp->refcount--;
+ if (pdp->refcount) return;
+
+ PRINTF(__FUNCTION__": pdp %x\n", pdp);
+
+ wglDeleteContext (pdp->hGLRC);
+ DeleteDC(pdp->hDC);
+ ReleaseDC(NULL, pdp->hDCFrontBuffer);
+ DeleteObject(pdp->hBitmap);
+ if (pdp->hPalette) DeleteObject(pdp->hPalette);
+
+ free(pdp);
+ }
+}
+
+static int driUnbindContext(__DRIcontext *pcp)
+{
+ __DRIdrawable *pdp;
+ __DRIdrawable *prp;
+
+ PRINTF(__FUNCTION__": pcp %x\n", pcp);
+
+ if (pcp == NULL)
+ return GL_FALSE;
+
+ pdp = pcp->driDrawablePriv;
+ prp = pcp->driReadablePriv;
+
+ /* already unbound */
+ if (!pdp && !prp)
+ {
+ PRINTF(__FUNCTION__": pcp %x already unbound\n", pcp);
+ return GL_TRUE;
+ }
+
+ if (wglGetCurrentContext()==pdp->hGLRC)
+ {
+ current_pcp=NULL;
+ wglMakeCurrent(pdp->hDC, NULL);
+ PRINTF("pdp->hDC %x to NULL\n", pdp->hDC);
+ }
+
+ driDestroyDrawable(pdp);
+ if (prp!=pdp)
+ driDestroyDrawable(prp);
+
+ pcp->driDrawablePriv = NULL;
+ pcp->driReadablePriv = NULL;
+ _glapi_set_dispatch(NULL);
+
+ return GL_TRUE;
+}
+
+static void driDestroyContext(__DRIcontext *pcp)
+{
+ PRINTF(__FUNCTION__": pcp %x\n", pcp);
+ if (pcp)
+ {
+ driUnbindContext(pcp);
+ free(pcp);
+ }
+}
+
+static void driDestroyScreen(__DRIscreen *psp)
+{
+ PRINTF(__FUNCTION__": psp %x\n", psp);
+ if (psp)
+ {
+ free(psp);
+ }
+}
+
+static void driSwapBuffers(__DRIdrawable *pdp)
+{
+// GET_CURRENT_CONTEXT(ctx);
+ /* Revert image */
+ int Row;
+ int UpRow;
+ int ColCount;
+ int HalfRowCount;
+ int *pBits;
+
+ //GdiFlush();
+
+ driDrawableCheckSize(pdp);
+
+ ColCount=pdp->winWidth;
+ HalfRowCount=pdp->winHeight/2;
+ pBits=(int*)pdp->bits;
+
+ for (Row=0,UpRow=2*HalfRowCount-1; Row<HalfRowCount; Row++,UpRow--)
+ {
+ int j;
+ for (j=0; j<ColCount; j++)
+ {
+ int Temp=pBits[Row*ColCount+j];
+ pBits[Row*ColCount+j]=pBits[UpRow*ColCount+j];
+ pBits[UpRow*ColCount+j]=Temp;
+ }
+ }
+
+ pdp->driScreenPriv->swrast_loader->putImage(pdp, __DRI_SWRAST_IMAGE_OP_SWAP, 0, 0, pdp->winWidth, pdp->winHeight, pdp->bits, pdp->loaderPrivate);
+}
+
+const __DRIcoreExtension driCoreExtension = {
+ { __DRI_CORE, __DRI_CORE_VERSION },
+ NULL, /* driCreateNewScreen */
+ driDestroyScreen,
+ driGetExtensions,
+ NULL,// driGetConfigAttrib,
+ driIndexConfigAttrib,
+ NULL, /* driCreateNewDrawable */
+ driDestroyDrawable,
+ driSwapBuffers,
+ driCreateNewContext,
+ NULL,// driCopyContext,
+ driDestroyContext,
+ driBindContext,
+ driUnbindContext
+};
+
+const __DRIswrastExtension driWGLExtension = {
+ { __DRI_SWRAST, __DRI_SWRAST_VERSION },
+ driCreateNewScreen,
+ driCreateNewDrawable,
+ NULL // driCreateNewContextForAPI
+};
+
+/* This is the table of extensions that the loader will dlsym() for. */
+PUBLIC const __DRIextension *__driDriverExtensions[] =
+{
+ &driCoreExtension.base,
+ &driWGLExtension.base,
+ NULL
+};
diff --git a/xorg-server/hw/xwin/swrastwgl_dri/swrastwgl_dri.def b/xorg-server/hw/xwin/swrastwgl_dri/swrastwgl_dri.def
new file mode 100644
index 000000000..8a8e8258e
--- /dev/null
+++ b/xorg-server/hw/xwin/swrastwgl_dri/swrastwgl_dri.def
@@ -0,0 +1,2 @@
+EXPORTS
+ __driDriverExtensions
diff --git a/xorg-server/hw/xwin/taskbar.h b/xorg-server/hw/xwin/taskbar.h
new file mode 100644
index 000000000..94f3f9efb
--- /dev/null
+++ b/xorg-server/hw/xwin/taskbar.h
@@ -0,0 +1,39 @@
+/*
+ *Copyright (C) 1994-2000 The XFree86 Project, Inc. All Rights Reserved.
+ *
+ *Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ *"Software"), to deal in the Software without restriction, including
+ *without limitation the rights to use, copy, modify, merge, publish,
+ *distribute, sublicense, and/or sell copies of the Software, and to
+ *permit persons to whom the Software is furnished to do so, subject to
+ *the following conditions:
+ *
+ *The above copyright notice and this permission notice shall be
+ *included in all copies or substantial portions of the Software.
+ *
+ *THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ *MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *NONINFRINGEMENT. IN NO EVENT SHALL THE XFREE86 PROJECT BE LIABLE FOR
+ *ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+ *CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ *WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ *Except as contained in this notice, the name of the XFree86 Project
+ *shall not be used in advertising or otherwise to promote the sale, use
+ *or other dealings in this Software without prior written authorization
+ *from the XFree86 Project.
+ */
+
+#ifndef _TASKBAR_H
+#define _TASKBAR_H
+
+#include <windows.h>
+#include <propsys.h>
+#include <propkey.h>
+
+typedef HRESULT (__stdcall *SHGETPROPERTYSTOREFORWINDOWPROC)(HWND,REFIID,void**);
+typedef HRESULT (__stdcall *PROPVARIANTCLEARPROC)(PROPVARIANT*);
+
+#endif
diff --git a/xorg-server/hw/xwin/win.h b/xorg-server/hw/xwin/win.h
index ce89348fe..1d3448a44 100644
--- a/xorg-server/hw/xwin/win.h
+++ b/xorg-server/hw/xwin/win.h
@@ -47,11 +47,6 @@
#define WM_MOUSEHWHEEL 0x020E
#endif
-/* Turn debug messages on or off */
-#ifndef CYGDEBUG
-#define CYGDEBUG NO
-#endif
-
#define WIN_DEFAULT_BPP 0
#define WIN_DEFAULT_WHITEPIXEL 255
#define WIN_DEFAULT_BLACKPIXEL 0
@@ -136,6 +131,9 @@
#include <errno.h>
#if defined(XWIN_MULTIWINDOWEXTWM) || defined(XWIN_CLIPBOARD) || defined(XWIN_MULTIWINDOW)
#define HANDLE void *
+#ifdef _MSC_VER
+typedef int pid_t;
+#endif
#include <pthread.h>
#undef HANDLE
#endif
@@ -200,43 +198,6 @@
#include "winwindow.h"
#include "winmsg.h"
-/*
- * Debugging macros
- */
-
-#if CYGDEBUG
-#define DEBUG_MSG(str,...) \
-if (fDebugProcMsg) \
-{ \
- char *pszTemp; \
- int iLength; \
- if (asprintf (&pszTemp, str, ##__VA_ARGS__) != -1) { \
- MessageBox (NULL, pszTemp, szFunctionName, MB_OK); \
- free (pszTemp); \
- } \
-}
-#else
-#define DEBUG_MSG(str,...)
-#endif
-
-#if CYGDEBUG
-#define DEBUG_FN_NAME(str) PTSTR szFunctionName = str
-#else
-#define DEBUG_FN_NAME(str)
-#endif
-
-#if CYGDEBUG || YES
-#define DEBUGVARS BOOL fDebugProcMsg = FALSE
-#else
-#define DEBUGVARS
-#endif
-
-#if CYGDEBUG || YES
-#define DEBUGPROC_MSG fDebugProcMsg = TRUE
-#else
-#define DEBUGPROC_MSG
-#endif
-
#define PROFILEPOINT(point,thresh)\
{\
static unsigned int PROFPT##point = 0;\
@@ -417,9 +378,11 @@ typedef struct {
Bool fDecoration;
#ifdef XWIN_MULTIWINDOWEXTWM
Bool fMWExtWM;
- Bool fInternalWM;
Bool fAnotherWMRunning;
#endif
+#ifdef XWIN_MULTIWINDOWINTWM
+ Bool fInternalWM;
+#endif
Bool fRootless;
#ifdef XWIN_MULTIWINDOW
Bool fMultiWindow;
@@ -489,17 +452,19 @@ typedef struct _winPrivScreenRec {
/* Privates used by shadow fb and primary fb DirectDraw servers */
LPDIRECTDRAW pdd;
- LPDIRECTDRAWSURFACE2 pddsPrimary;
+ LPDIRECTDRAWSURFACE pddsPrimary;
LPDIRECTDRAW2 pdd2;
/* Privates used by shadow fb DirectDraw server */
- LPDIRECTDRAWSURFACE2 pddsShadow;
+ LPDIRECTDRAWSURFACE pddsShadow;
LPDDSURFACEDESC pddsdShadow;
+#ifdef XWIN_PRIMARYFB
/* Privates used by primary fb DirectDraw server */
- LPDIRECTDRAWSURFACE2 pddsOffscreen;
+ LPDIRECTDRAWSURFACE pddsOffscreen;
LPDDSURFACEDESC pddsdOffscreen;
LPDDSURFACEDESC pddsdPrimary;
+#endif
/* Privates used by shadow fb DirectDraw Nonlocking server */
LPDIRECTDRAW4 pdd4;
@@ -793,7 +758,7 @@ Bool
winInitClipboard(void);
void
- winFixClipboardChain(void);
+ winFixClipboardChain (int Removed);
#endif
/*
@@ -820,6 +785,9 @@ Bool
* windialogs.c
*/
+int
+GetLiveClients (winPrivScreenPtr pScreenPriv);
+
void
winDisplayExitDialog(winPrivScreenPtr pScreenPriv);
@@ -1239,7 +1207,7 @@ winTopLevelWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);
*/
void
- winInitNotifyIcon(winPrivScreenPtr pScreenPriv);
+ winInitNotifyIcon (winPrivScreenPtr pScreenPriv, Bool Modify);
void
winDeleteNotifyIcon(winPrivScreenPtr pScreenPriv);
@@ -1336,22 +1304,19 @@ void
winMWExtWMMoveResizeXWindow(WindowPtr pWin, int x, int y, int w, int h);
void
- winMWExtWMUpdateIcon(Window id);
-
-void
winMWExtWMUpdateWindowDecoration(win32RootlessWindowPtr pRLWinPriv,
winScreenInfoPtr pScreenInfo);
wBOOL CALLBACK winMWExtWMDecorateWindow(HWND hwnd, LPARAM lParam);
-Bool
- winIsInternalWMRunning(winScreenInfoPtr pScreenInfo);
-
void
winMWExtWMRestackWindows(ScreenPtr pScreen);
#endif
-
+#ifdef XWIN_MULTIWINDOWINTWM
+Bool
+ winIsInternalWMRunning (winScreenInfoPtr pScreenInfo);
+#endif
#ifdef XWIN_MULTIWINDOWEXTWM
/*
* winwin32rootlesswndproc.c
@@ -1387,6 +1352,13 @@ void
winInitializeScreens(int maxscreens);
/*
+ * windisplay.c
+ */
+
+void
+winGetDisplayName(char *szDisplay, unsigned int screen);
+
+/*
* winrandr.c
*/
Bool
diff --git a/xorg-server/hw/xwin/winSetAppUserModelID.c b/xorg-server/hw/xwin/winSetAppUserModelID.c
index 41615e19c..3c449a3a8 100644
--- a/xorg-server/hw/xwin/winSetAppUserModelID.c
+++ b/xorg-server/hw/xwin/winSetAppUserModelID.c
@@ -34,6 +34,7 @@
#include "winmsg.h"
#include <shlwapi.h>
+#include <propvarutil.h>
#define INITGUID
#include "initguid.h"
@@ -95,7 +96,7 @@ winSetAppUserModelID(HWND hWnd, const char *AppID)
hr = g_pSHGetPropertyStoreForWindow(hWnd, &IID_IPropertyStore,
(void **) &pps);
if (SUCCEEDED(hr) && pps) {
- memset(&pv, 0, sizeof(PROPVARIANT));
+ PropVariantInit(&pv);
if (AppID) {
pv.vt = VT_LPWSTR;
hr = SHStrDupA(AppID, &pv.pwszVal);
diff --git a/xorg-server/hw/xwin/winallpriv.c b/xorg-server/hw/xwin/winallpriv.c
index cc3b3d1ba..248d03658 100644
--- a/xorg-server/hw/xwin/winallpriv.c
+++ b/xorg-server/hw/xwin/winallpriv.c
@@ -47,10 +47,8 @@ winAllocatePrivates(ScreenPtr pScreen)
{
winPrivScreenPtr pScreenPriv;
-#if CYGDEBUG
winDebug("winAllocateScreenPrivates - g_ulServerGeneration: %d "
"serverGeneration: %d\n", g_ulServerGeneration, serverGeneration);
-#endif
/* We need a new slot for our privates if the screen gen has changed */
if (g_ulServerGeneration != serverGeneration) {
@@ -72,7 +70,7 @@ winAllocatePrivates(ScreenPtr pScreen)
/* Register our screen private */
if (!dixRegisterPrivateKey(g_iScreenPrivateKey, PRIVATE_SCREEN, 0)) {
- ErrorF("winAllocatePrivates - AllocateScreenPrivate () failed\n");
+ ErrorF ("winAllocatePrivates - dixRegisterPrivateKey () failed\n");
return FALSE;
}
@@ -112,9 +110,7 @@ winAllocatePrivates(ScreenPtr pScreen)
Bool
winInitCmapPrivates(ColormapPtr pcmap, int i)
{
-#if CYGDEBUG
winDebug("winInitCmapPrivates\n");
-#endif
/*
* I see no way that this function can do anything useful
@@ -139,9 +135,7 @@ winAllocateCmapPrivates(ColormapPtr pCmap)
winPrivCmapPtr pCmapPriv;
static unsigned long s_ulPrivateGeneration = 0;
-#if CYGDEBUG
winDebug("winAllocateCmapPrivates\n");
-#endif
/* Get a new privates index when the server generation changes */
if (s_ulPrivateGeneration != serverGeneration) {
@@ -168,9 +162,7 @@ winAllocateCmapPrivates(ColormapPtr pCmap)
/* Save the cmap private pointer */
winSetCmapPriv(pCmap, pCmapPriv);
-#if CYGDEBUG
winDebug("winAllocateCmapPrivates - Returning\n");
-#endif
return TRUE;
}
diff --git a/xorg-server/hw/xwin/winauth.c b/xorg-server/hw/xwin/winauth.c
index 25d1fbd62..18e370ef7 100644
--- a/xorg-server/hw/xwin/winauth.c
+++ b/xorg-server/hw/xwin/winauth.c
@@ -32,6 +32,10 @@
#include <xwin-config.h>
#endif
+#define GC X11_GC /* To avoid compilation errors later when including win.h (which also defines the GC type) */
+#include <X11/Xlib.h>
+#undef GC
+
#include "win.h"
/* Includes for authorization */
@@ -55,16 +59,29 @@ static char *g_pAuthData = NULL;
* Code to generate a MIT-MAGIC-COOKIE-1, copied from under XCSECURITY
*/
+
+
#ifndef XCSECURITY
static
void
GenerateRandomData(int len, char *buf)
{
int fd;
-
+#ifdef _MSC_VER
+ static HANDLE hAdvApi32;
+ static BOOLEAN (_stdcall * RtlGenRandom)(void *,unsigned long);
+
+ if (!hAdvApi32)
+ {
+ hAdvApi32=LoadLibrary("advapi32.dll");
+ RtlGenRandom=(BOOLEAN (_stdcall *)(void*,unsigned long))GetProcAddress(hAdvApi32,"SystemFunction036");
+ }
+ RtlGenRandom(buf, len);
+#else
fd = open("/dev/urandom", O_RDONLY);
read(fd, buf, len);
close(fd);
+#endif
}
static char cookie[16]; /* 128 bits */
@@ -115,7 +132,6 @@ GenerateAuthorization(unsigned name_length,
Bool
winGenerateAuthorization(void)
{
- Bool fFreeAuth = FALSE;
SecurityAuthorizationPtr pAuth = NULL;
/* Call OS layer to generate authorization key */
@@ -126,12 +142,13 @@ winGenerateAuthorization(void)
ErrorF("winGenerateAuthorization - GenerateAuthorization failed\n");
goto auth_bailout;
}
-
+#ifdef WINDBG
else {
winDebug("winGenerateAuthorization - GenerateAuthorization success!\n"
"AuthDataLen: %d AuthData: %s\n",
g_uiAuthDataLen, g_pAuthData);
}
+#endif
#ifdef XCSECURITY
/* Allocate structure for additional auth information */
@@ -156,19 +173,16 @@ winGenerateAuthorization(void)
/* Add the authorization to the server's auth list */
if (!AddResource(g_authId, SecurityAuthorizationResType, pAuth)) {
ErrorF("winGenerateAuthorization - AddResource failed for auth.\n");
- fFreeAuth = TRUE;
goto auth_bailout;
}
/* Don't free the auth data, since it is still used internally */
- pAuth = NULL;
#endif
return TRUE;
auth_bailout:
- if (fFreeAuth)
- free(pAuth);
+ free(pAuth);
return FALSE;
}
@@ -177,6 +191,7 @@ winGenerateAuthorization(void)
void
winSetAuthorization(void)
{
+ if (g_pAuthData)
XSetAuthorization(AUTH_NAME,
strlen(AUTH_NAME), g_pAuthData, g_uiAuthDataLen);
}
diff --git a/xorg-server/hw/xwin/winclip.c b/xorg-server/hw/xwin/winclip.c
index 941e9483a..6862603ba 100644
--- a/xorg-server/hw/xwin/winclip.c
+++ b/xorg-server/hw/xwin/winclip.c
@@ -37,6 +37,6 @@
RegionPtr
winPixmapToRegionNativeGDI(PixmapPtr pPix)
{
- ErrorF("winPixmapToRegion()\n");
+ winDebug("winPixmapToRegion()\n");
return NULL;
}
diff --git a/xorg-server/hw/xwin/winclipboard.h b/xorg-server/hw/xwin/winclipboard.h
index aa7fd4468..550eeb26c 100644
--- a/xorg-server/hw/xwin/winclipboard.h
+++ b/xorg-server/hw/xwin/winclipboard.h
@@ -34,7 +34,9 @@
#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
+#ifndef _MSC_VER
#include <unistd.h>
+#endif
#ifdef __CYGWIN__
#include <sys/select.h>
#else
@@ -42,6 +44,9 @@
#endif
#include <fcntl.h>
#include <setjmp.h>
+#ifdef _MSC_VER
+typedef int pid_t;
+#endif
#include <pthread.h>
/* X headers */
@@ -49,7 +54,6 @@
#include <X11/Xatom.h>
#include <X11/Xproto.h>
#include <X11/Xutil.h>
-#include <X11/Xlocale.h>
/* Windows headers */
#include <X11/Xwindows.h>
@@ -68,19 +72,14 @@
#define WIN_XEVENTS_SUCCESS 0
#define WIN_XEVENTS_CONVERT 2
#define WIN_XEVENTS_NOTIFY 3
-#define WIN_CLIPBOARD_RETRIES 40
-#define WIN_CLIPBOARD_DELAY 1
-#define WM_WM_REINIT (WM_USER + 1)
+#include "winmsg.h"
/*
* References to external symbols
*/
extern char *display;
-extern void winDebug(const char *format, ...);
-extern void winErrorFVerb(int verb, const char *format, ...);
-
/*
* winclipboardinit.c
*/
@@ -125,5 +124,5 @@ winClipboardWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);
int
winClipboardFlushXEvents(HWND hwnd,
- int iWindow, Display * pDisplay, Bool fUnicodeSupport);
+ int iWindow, Display * pDisplay, Bool fUnicodeSupport, Bool ClipboardOpened);
#endif
diff --git a/xorg-server/hw/xwin/winclipboardinit.c b/xorg-server/hw/xwin/winclipboardinit.c
index 304e6df9f..90fcf0086 100644
--- a/xorg-server/hw/xwin/winclipboardinit.c
+++ b/xorg-server/hw/xwin/winclipboardinit.c
@@ -33,6 +33,9 @@
#endif
#include "dixstruct.h"
#include "winclipboard.h"
+#include "objbase.h"
+#include "ddraw.h"
+#include "winwindow.h"
/*
* Local typedefs
@@ -126,9 +129,9 @@ winClipboardCreateMessagingWindow(void)
}
void
-winFixClipboardChain(void)
+winFixClipboardChain(int Removed)
{
if (g_fClipboard && g_hwndClipboard) {
- PostMessage(g_hwndClipboard, WM_WM_REINIT, 0, 0);
+ PostMessage (g_hwndClipboard, WM_WM_REINIT, Removed, 0);
}
}
diff --git a/xorg-server/hw/xwin/winclipboardthread.c b/xorg-server/hw/xwin/winclipboardthread.c
index 33595be7f..488a00fcc 100644
--- a/xorg-server/hw/xwin/winclipboardthread.c
+++ b/xorg-server/hw/xwin/winclipboardthread.c
@@ -42,7 +42,11 @@
#include <errno.h>
#endif
#include "misc.h"
+#include "winmsg.h"
+#ifdef _MSC_VER
+#define snprintf _snprintf
+#endif
/*
* References to external symbols
*/
@@ -50,17 +54,16 @@
extern Bool g_fUnicodeClipboard;
extern Bool g_fClipboardStarted;
extern Bool g_fClipboardLaunched;
-extern Bool g_fClipboard;
extern HWND g_hwndClipboard;
extern void *g_pClipboardDisplay;
extern Window g_iClipboardWindow;
+extern Bool g_fClipboardPrimary;
/*
* Global variables
*/
static jmp_buf g_jmpEntry;
-static int clipboardRestarts = 0;
static XIOErrorHandler g_winClipboardOldIOErrorHandler;
static pthread_t g_winClipboardProcThread;
@@ -76,6 +79,8 @@ static int
static int
winClipboardIOErrorHandler(Display * pDisplay);
+static void
+winClipboardThreadExit(void *arg);
/*
* Main thread function
*/
@@ -102,8 +107,9 @@ winClipboardProc(void *pvNotUsed)
char szDisplay[512];
int iSelectError;
- winDebug("winClipboardProc - Hello\n");
- ++clipboardRestarts;
+ pthread_cleanup_push(&winClipboardThreadExit, NULL);
+
+ winDebug ("winClipboardProc - Hello\n");
/* Do we use Unicode clipboard? */
fUseUnicode = g_fUnicodeClipboard;
@@ -111,16 +117,11 @@ winClipboardProc(void *pvNotUsed)
/* Save the Unicode support flag in a global */
g_fUseUnicode = fUseUnicode;
- /* Allow multiple threads to access Xlib */
- if (XInitThreads() == 0) {
- ErrorF("winClipboardProc - XInitThreads failed.\n");
- goto winClipboardProc_Exit;
- }
-
- /* See if X supports the current locale */
- if (XSupportsLocale() == False) {
- ErrorF("winClipboardProc - Warning: Locale not supported by X.\n");
- }
+ /* Create Windows messaging window */
+ hwnd = winClipboardCreateMessagingWindow ();
+
+ /* Save copy of HWND in screen privates */
+ g_hwndClipboard = hwnd;
/* Set error handler */
XSetErrorHandler(winClipboardErrorHandler);
@@ -135,12 +136,11 @@ winClipboardProc(void *pvNotUsed)
if (iReturn != WIN_JMP_ERROR_IO && iReturn != WIN_JMP_OKAY) {
/* setjmp returned an unknown value, exit */
ErrorF("winClipboardProc - setjmp returned: %d exiting\n", iReturn);
- goto winClipboardProc_Exit;
+ goto thread_errorexit;
}
else if (iReturn == WIN_JMP_ERROR_IO) {
/* TODO: Cleanup the Win32 window and free any allocated memory */
ErrorF("winClipboardProc - setjmp returned for IO Error Handler.\n");
- pthread_exit(NULL);
}
/* Use our generated cookie for authentication */
@@ -157,10 +157,10 @@ winClipboardProc(void *pvNotUsed)
* for all screens on the display. That is why there is only
* one clipboard client thread.
*/
- snprintf(szDisplay, 512, "127.0.0.1:%s.0", display);
+ winGetDisplayName(szDisplay,0);
/* Print the display connection string */
- ErrorF("winClipboardProc - DISPLAY=%s\n", szDisplay);
+ winDebug ("winClipboardProc - DISPLAY=%s\n", szDisplay);
/* Open the X display */
do {
@@ -180,24 +180,26 @@ winClipboardProc(void *pvNotUsed)
/* Make sure that the display opened */
if (pDisplay == NULL) {
ErrorF("winClipboardProc - Failed opening the display, giving up\n");
- goto winClipboardProc_Done;
+ goto thread_errorexit;
}
/* Save the display in the screen privates */
g_pClipboardDisplay = pDisplay;
- ErrorF("winClipboardProc - XOpenDisplay () returned and "
+ winDebug ("winClipboardProc - XOpenDisplay () returned and "
"successfully opened the display.\n");
/* Get our connection number */
iConnectionNumber = ConnectionNumber(pDisplay);
+ winDebug("Clipboard is using socket %d\n",iConnectionNumber);
+
#ifdef HAS_DEVWINDOWS
/* Open a file descriptor for the windows message queue */
- fdMessageQueue = open(WIN_MSG_QUEUE_FNAME, O_RDONLY);
+ fdMessageQueue = open (WIN_MSG_QUEUE_FNAME, _O_RDONLY);
if (fdMessageQueue == -1) {
ErrorF("winClipboardProc - Failed opening %s\n", WIN_MSG_QUEUE_FNAME);
- goto winClipboardProc_Done;
+ goto thread_errorexit;
}
/* Find max of our file descriptors */
@@ -208,6 +210,10 @@ winClipboardProc(void *pvNotUsed)
/* Create atom */
atomClipboard = XInternAtom(pDisplay, "CLIPBOARD", False);
+ XInternAtom (pDisplay, WIN_LOCAL_PROPERTY, False);
+ XInternAtom (pDisplay, "UTF8_STRING", False);
+ XInternAtom (pDisplay, "COMPOUND_TEXT", False);
+ XInternAtom (pDisplay, "TARGETS", False);
/* Create a messaging window */
iWindow = XCreateSimpleWindow(pDisplay,
@@ -219,7 +225,7 @@ winClipboardProc(void *pvNotUsed)
BlackPixel(pDisplay, 0));
if (iWindow == 0) {
ErrorF("winClipboardProc - Could not create an X window.\n");
- goto winClipboardProc_Done;
+ goto thread_errorexit;
}
XStoreName(pDisplay, iWindow, "xwinclip");
@@ -232,30 +238,30 @@ winClipboardProc(void *pvNotUsed)
/* Save the window in the screen privates */
g_iClipboardWindow = iWindow;
- /* Create Windows messaging window */
- hwnd = winClipboardCreateMessagingWindow();
-
- /* Save copy of HWND in screen privates */
- g_hwndClipboard = hwnd;
-
/* Assert ownership of selections if Win32 clipboard is owned */
if (NULL != GetClipboardOwner()) {
- /* PRIMARY */
- iReturn = XSetSelectionOwner(pDisplay, XA_PRIMARY,
- iWindow, CurrentTime);
- if (iReturn == BadAtom || iReturn == BadWindow ||
- XGetSelectionOwner(pDisplay, XA_PRIMARY) != iWindow) {
- ErrorF("winClipboardProc - Could not set PRIMARY owner\n");
- goto winClipboardProc_Done;
+ if (g_fClipboardPrimary)
+ {
+ /* PRIMARY */
+ winDebug("winClipboardProc - asserted ownership.\n");
+ iReturn = XSetSelectionOwner (pDisplay, XA_PRIMARY,
+ iWindow, CurrentTime);
+ if (iReturn == BadAtom || iReturn == BadWindow /*||
+ XGetSelectionOwner (pDisplay, XA_PRIMARY) != iWindow*/)
+ {
+ ErrorF ("winClipboardProc - Could not set PRIMARY owner\n");
+ goto thread_errorexit;
+ }
}
/* CLIPBOARD */
iReturn = XSetSelectionOwner(pDisplay, atomClipboard,
iWindow, CurrentTime);
- if (iReturn == BadAtom || iReturn == BadWindow ||
- XGetSelectionOwner(pDisplay, atomClipboard) != iWindow) {
- ErrorF("winClipboardProc - Could not set CLIPBOARD owner\n");
- goto winClipboardProc_Done;
+ if (iReturn == BadAtom || iReturn == BadWindow /*||
+ XGetSelectionOwner (pDisplay, atomClipboard) != iWindow*/)
+ {
+ ErrorF ("winClipboardProc - Could not set CLIPBOARD owner\n");
+ goto thread_errorexit;
}
}
@@ -265,12 +271,17 @@ winClipboardProc(void *pvNotUsed)
* because there may be events in local data structures
* already.
*/
- winClipboardFlushXEvents(hwnd, iWindow, pDisplay, fUseUnicode);
+ //winClipboardFlushXEvents(hwnd, iWindow, pDisplay, fUseUnicode);
/* Pre-flush Windows messages */
+ winDebug ("Start flushing \n");
if (!winClipboardFlushWindowsMessageQueue(hwnd))
- return 0;
+ {
+ ErrorF ("winClipboardFlushWindowsMessageQueue - returned 0\n");
+ goto thread_errorexit;
+ }
+ winDebug ("winClipboardProc - Started\n");
/* Signal that the clipboard client has started */
g_fClipboardStarted = TRUE;
@@ -323,10 +334,12 @@ winClipboardProc(void *pvNotUsed)
}
/* Branch on which descriptor became active */
- if (FD_ISSET(iConnectionNumber, &fdsRead)) {
+// if (FD_ISSET (iConnectionNumber, &fdsRead)) {
+// Also do it when no read since winClipboardFlushXEvents
+// is sending the output.
/* Process X events */
- winClipboardFlushXEvents(hwnd, iWindow, pDisplay, fUseUnicode);
- }
+ winClipboardFlushXEvents(hwnd, iWindow, pDisplay, fUseUnicode, FALSE);
+// }
#ifdef HAS_DEVWINDOWS
/* Check for Windows event ready */
@@ -345,26 +358,15 @@ winClipboardProc(void *pvNotUsed)
}
}
- winClipboardProc_Exit:
- /* disable the clipboard, which means the thread will die */
- g_fClipboard = FALSE;
-
- winClipboardProc_Done:
- /* Close our Windows window */
- if (g_hwndClipboard) {
- /* Destroy the Window window (hwnd) */
- winDebug("winClipboardProc - Destroy Windows window\n");
- PostMessage(g_hwndClipboard, WM_DESTROY, 0, 0);
- winClipboardFlushWindowsMessageQueue(g_hwndClipboard);
- }
-
/* Close our X window */
if (pDisplay && iWindow) {
iReturn = XDestroyWindow(pDisplay, iWindow);
if (iReturn == BadWindow)
ErrorF("winClipboardProc - XDestroyWindow returned BadWindow.\n");
+#ifdef WINDBG
else
- ErrorF("winClipboardProc - XDestroyWindow succeeded.\n");
+ winDebug("winClipboardProc - XDestroyWindow succeeded.\n");
+#endif
}
#ifdef HAS_DEVWINDOWS
@@ -391,41 +393,28 @@ winClipboardProc(void *pvNotUsed)
}
#endif
- /* global clipboard variable reset */
- g_fClipboardLaunched = FALSE;
- g_fClipboardStarted = FALSE;
- g_iClipboardWindow = None;
- g_pClipboardDisplay = NULL;
- g_hwndClipboard = NULL;
-
- /* checking if we need to restart */
- if (clipboardRestarts >= WIN_CLIPBOARD_RETRIES) {
- /* terminates clipboard thread but the main server still lives */
- ErrorF
- ("winClipboardProc - the clipboard thread has restarted %d times and seems to be unstable, disabling clipboard integration\n",
- clipboardRestarts);
- g_fClipboard = FALSE;
- return NULL;
+ goto commonexit;
+
+thread_errorexit:
+ if (g_pClipboardDisplay && g_iClipboardWindow)
+ {
+ iReturn = XDestroyWindow (g_pClipboardDisplay, g_iClipboardWindow);
+ if (iReturn == BadWindow)
+ ErrorF ("winClipboardProc - XDestroyWindow returned BadWindow.\n");
+#ifdef WINDBG
+ else
+ winDebug ("winClipboardProc - XDestroyWindow succeeded.\n");
+#endif
}
+ winDebug ("Clipboard thread died.\n");
- if (g_fClipboard) {
- sleep(WIN_CLIPBOARD_DELAY);
- ErrorF("winClipboardProc - trying to restart clipboard thread \n");
- /* Create the clipboard client thread */
- if (!winInitClipboard()) {
- ErrorF("winClipboardProc - winClipboardInit failed.\n");
- return NULL;
- }
+commonexit:
+ g_iClipboardWindow = None;
+ g_pClipboardDisplay = NULL;
+ g_fClipboardLaunched = FALSE;
+ g_fClipboardStarted = FALSE;
- winDebug("winClipboardProc - winInitClipboard returned.\n");
- /* Flag that clipboard client has been launched */
- g_fClipboardLaunched = TRUE;
- }
- else {
- ErrorF("winClipboardProc - Clipboard disabled - Exit from server \n");
- /* clipboard thread has exited, stop server as well */
- raise(SIGTERM);
- }
+ pthread_cleanup_pop(0);
return NULL;
}
@@ -441,8 +430,17 @@ winClipboardErrorHandler(Display * pDisplay, XErrorEvent * pErr)
XGetErrorText(pDisplay, pErr->error_code, pszErrorMsg, sizeof(pszErrorMsg));
ErrorF("winClipboardErrorHandler - ERROR: \n\t%s\n"
- "\tSerial: %lu, Request Code: %d, Minor Code: %d\n",
- pszErrorMsg, pErr->serial, pErr->request_code, pErr->minor_code);
+ " errorCode %d\n"
+ " serial %lu\n"
+ " resourceID 0x%x\n"
+ " majorCode %d\n"
+ " minorCode %d\n"
+ , pszErrorMsg
+ , pErr->error_code
+ , pErr->serial
+ , pErr->resourceid
+ , pErr->request_code
+ , pErr->minor_code);
return 0;
}
@@ -465,3 +463,15 @@ winClipboardIOErrorHandler(Display * pDisplay)
return 0;
}
+
+/*
+ * winClipboardThreadExit - Thread exit handler
+ */
+
+static void
+winClipboardThreadExit(void *arg)
+{
+ /* clipboard thread has exited, stop server as well */
+ AbortDDX(EXIT_ERR_ABORT);
+ TerminateProcess(GetCurrentProcess(),1);
+}
diff --git a/xorg-server/hw/xwin/winclipboardwndproc.c b/xorg-server/hw/xwin/winclipboardwndproc.c
index e19f678a7..28348ac45 100644
--- a/xorg-server/hw/xwin/winclipboardwndproc.c
+++ b/xorg-server/hw/xwin/winclipboardwndproc.c
@@ -26,7 +26,7 @@
*the sale, use or other dealings in this Software without prior written
*authorization from the copyright holder(s) and author(s).
*
- * Authors: Harold L Hunt II
+ * Authors: Harold L Hunt II
* Colin Harrison
*/
@@ -37,12 +37,16 @@
#include <sys/time.h>
#include "winclipboard.h"
#include "misc.h"
+#include "winmsg.h"
+#include "objbase.h"
+#include "ddraw.h"
+#include "winwindow.h"
/*
* Constants
*/
-#define WIN_POLL_TIMEOUT 1
+#define WIN_POLL_TIMEOUT 1
/*
* References to external symbols
@@ -52,8 +56,10 @@ extern Bool g_fUseUnicode;
extern void *g_pClipboardDisplay;
extern Window g_iClipboardWindow;
extern Atom g_atomLastOwnedSelection;
-
-/*
+extern Bool g_fClipboardStarted;
+extern HWND g_hwndClipboard;
+extern Bool g_fClipboardPrimary;
+/*
* Local function prototypes
*/
@@ -76,8 +82,17 @@ winProcessXEventsTimeout(HWND hwnd, int iWindow, Display * pDisplay,
int iReturn;
DWORD dwStopTime = GetTickCount() + iTimeoutSec * 1000;
- winDebug("winProcessXEventsTimeout () - pumping X events for %d seconds\n",
- iTimeoutSec);
+ /* Make sure the output messages are sent before waiting on a response. */
+ iReturn = winClipboardFlushXEvents (hwnd,
+ iWindow,
+ pDisplay,
+ fUseUnicode,
+ TRUE);
+ if (WIN_XEVENTS_NOTIFY == iReturn)
+ {
+ /* Bail out if notify processed */
+ return iReturn;
+ }
/* Get our connection number */
iConnNumber = ConnectionNumber(pDisplay);
@@ -87,9 +102,6 @@ winProcessXEventsTimeout(HWND hwnd, int iWindow, Display * pDisplay,
fd_set fdsRead;
long remainingTime;
- /* We need to ensure that all pending events are processed */
- XSync(pDisplay, FALSE);
-
/* Setup the file descriptor set */
FD_ZERO(&fdsRead);
FD_SET(iConnNumber, &fdsRead);
@@ -112,8 +124,8 @@ winProcessXEventsTimeout(HWND hwnd, int iWindow, Display * pDisplay,
NULL, /* No exception mask */
&tv); /* Timeout */
if (iReturn < 0) {
- ErrorF("winProcessXEventsTimeout - Call to select () failed: %d. "
- "Bailing.\n", iReturn);
+ ErrorF("winProcessXEventsTimeout - Call to select () failed: %d (%x). "
+ "Bailing.\n", iReturn, WSAGetLastError());
break;
}
@@ -122,7 +134,7 @@ winProcessXEventsTimeout(HWND hwnd, int iWindow, Display * pDisplay,
/* Process X events */
/* Exit when we see that server is shutting down */
iReturn = winClipboardFlushXEvents(hwnd,
- iWindow, pDisplay, fUseUnicode);
+ iWindow, pDisplay, fUseUnicode, TRUE);
winDebug
("winProcessXEventsTimeout () - winClipboardFlushXEvents returned %d\n",
@@ -149,7 +161,6 @@ LRESULT CALLBACK
winClipboardWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
static HWND s_hwndNextViewer;
- static Bool s_fCBCInitialized;
/* Branch on message type */
switch (message) {
@@ -161,7 +172,7 @@ winClipboardWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
ChangeClipboardChain(hwnd, s_hwndNextViewer);
s_hwndNextViewer = NULL;
-
+ g_hwndClipboard = NULL;
PostQuitMessage(0);
}
return 0;
@@ -173,16 +184,16 @@ winClipboardWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
winDebug("winClipboardWindowProc - WM_CREATE\n");
- first = GetClipboardViewer(); /* Get handle to first viewer in chain. */
- if (first == hwnd)
- return 0; /* Make sure it's not us! */
/* Add ourselves to the clipboard viewer chain */
- next = SetClipboardViewer(hwnd);
- error_code = GetLastError();
- if (SUCCEEDED(error_code) && (next == first)) /* SetClipboardViewer must have succeeded, and the handle */
- s_hwndNextViewer = next; /* it returned must have been the first window in the chain */
- else
- s_fCBCInitialized = FALSE;
+ s_hwndNextViewer = SetClipboardViewer (hwnd);
+ #ifdef _DEBUG
+ if (s_hwndNextViewer== hwnd)
+ {
+ ErrorF("WM_CREATE: SetClipboardViewer returned own window. This causes an endless loop, so reset s_hwndNextViewer. ");
+ s_hwndNextViewer=NULL;
+ }
+ #endif
+
}
return 0;
@@ -195,9 +206,8 @@ winClipboardWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
if ((HWND) wParam == s_hwndNextViewer) {
s_hwndNextViewer = (HWND) lParam;
if (s_hwndNextViewer == hwnd) {
- s_hwndNextViewer = NULL;
- winErrorFVerb(1, "winClipboardWindowProc - WM_CHANGECBCHAIN: "
- "attempted to set next window to ourselves.");
+ winDebug("WM_CHANGECBCHAIN: trying to set s_hwndNextViewer to own window. Resetting it back to NULL. ");
+ s_hwndNextViewer=NULL; /* This would cause an endless loop, so break it by ending the loop here. I have seen this happening, why??? */
}
}
else if (s_hwndNextViewer)
@@ -224,30 +234,28 @@ winClipboardWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
HWND first, next;
DWORD error_code = 0;
-
+ if (!g_hwndClipboard)
+ return 0;
winDebug("winClipboardWindowProc - WM_WM_REINIT: Enter\n");
first = GetClipboardViewer(); /* Get handle to first viewer in chain. */
- if (first == hwnd)
- return 0; /* Make sure it's not us! */
- winDebug(" WM_WM_REINIT: Replacing us(%x) with %x at head "
- "of chain\n", hwnd, s_hwndNextViewer);
- s_fCBCInitialized = FALSE;
- ChangeClipboardChain(hwnd, s_hwndNextViewer);
- s_hwndNextViewer = NULL;
- s_fCBCInitialized = FALSE;
- winDebug(" WM_WM_REINIT: Putting us back at head of chain.\n");
- first = GetClipboardViewer(); /* Get handle to first viewer in chain. */
- if (first == hwnd)
- return 0; /* Make sure it's not us! */
- next = SetClipboardViewer(hwnd);
- error_code = GetLastError();
- if (SUCCEEDED(error_code) && (next == first)) /* SetClipboardViewer must have succeeded, and the handle */
- s_hwndNextViewer = next; /* it returned must have been the first window in the chain */
- else
- s_fCBCInitialized = FALSE;
+ if (first != hwnd)
+ {
+ winDebug (" WM_WM_REINIT: Replacing us(%x) with %x at head "
+ "of chain\n", hwnd, s_hwndNextViewer);
+ if (!wParam) ChangeClipboardChain (hwnd, s_hwndNextViewer); /* When wParam is set, the window was already removed from the chain */
+ winDebug (" WM_WM_REINIT: Putting us back at head of chain.\n");
+ s_hwndNextViewer = SetClipboardViewer (hwnd);
+ #ifdef _DEBUG
+ if (s_hwndNextViewer== hwnd)
+ {
+ ErrorF("WM_WM_REINIT: SetClipboardViewer returned own window. This causes an endless loop, so reset s_hwndNextViewer. ");
+ s_hwndNextViewer=NULL;
+ }
+ #endif
+ }
+ winDebug ("winClipboardWindowProc - WM_WM_REINIT: Exit\n");
}
- winDebug("winClipboardWindowProc - WM_WM_REINIT: Exit\n");
return 0;
case WM_DRAWCLIPBOARD:
@@ -259,7 +267,14 @@ winClipboardWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
Window iWindow = g_iClipboardWindow;
int iReturn;
- winDebug("winClipboardWindowProc - WM_DRAWCLIPBOARD: Enter\n");
+ winDebug ("winClipboardWindowProc - WM_DRAWCLIPBOARD 0x%x 0x%x 0x%x: Enter\n",hwnd,wParam,lParam);
+
+ if (!g_fClipboardStarted) {
+ winDebug ("winClipboardWindowProc - WM_DRAWCLIPBOARD: Exit with no processing\n");
+ if (s_hwndNextViewer)
+ SendMessage (s_hwndNextViewer, message, wParam, lParam);
+ return 0;
+ }
if (generation != serverGeneration) {
generation = serverGeneration;
@@ -275,44 +290,15 @@ winClipboardWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
}
else {
/* Attempt to break the nesting by getting out of the chain, twice?, and then fix and bail */
- s_fCBCInitialized = FALSE;
ChangeClipboardChain(hwnd, s_hwndNextViewer);
- winFixClipboardChain();
- winErrorFVerb(1, "winClipboardWindowProc - WM_DRAWCLIPBOARD - "
+ winFixClipboardChain(1);
+ ErrorF ("winClipboardWindowProc - WM_DRAWCLIPBOARD - "
"Nested calls detected. Re-initing.\n");
winDebug("winClipboardWindowProc - WM_DRAWCLIPBOARD: Exit\n");
s_fProcessingDrawClipboard = FALSE;
return 0;
}
- /* Bail on first message */
- if (!s_fCBCInitialized) {
- s_fCBCInitialized = TRUE;
- s_fProcessingDrawClipboard = FALSE;
- winDebug("winClipboardWindowProc - WM_DRAWCLIPBOARD: Exit\n");
- return 0;
- }
-
- /*
- * NOTE: We cannot bail out when NULL == GetClipboardOwner ()
- * because some applications deal with the clipboard in a manner
- * that causes the clipboard owner to be NULL when they are in
- * fact taking ownership. One example of this is the Win32
- * native compile of emacs.
- */
-
- /* Bail when we still own the clipboard */
- if (hwnd == GetClipboardOwner()) {
-
- winDebug("winClipboardWindowProc - WM_DRAWCLIPBOARD - "
- "We own the clipboard, returning.\n");
- winDebug("winClipboardWindowProc - WM_DRAWCLIPBOARD: Exit\n");
- s_fProcessingDrawClipboard = FALSE;
- if (s_hwndNextViewer)
- SendMessage(s_hwndNextViewer, message, wParam, lParam);
- return 0;
- }
-
/*
* Do not take ownership of the X11 selections when something
* other than CF_TEXT or CF_UNICODETEXT has been copied
@@ -331,20 +317,20 @@ winClipboardWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
*/
XSync(pDisplay, FALSE);
- winDebug("winClipboardWindowProc - XSync done.\n");
-
- /* Release PRIMARY selection if owned */
- iReturn = XGetSelectionOwner(pDisplay, XA_PRIMARY);
- if (iReturn == g_iClipboardWindow) {
- winDebug("winClipboardWindowProc - WM_DRAWCLIPBOARD - "
- "PRIMARY selection is owned by us.\n");
- XSetSelectionOwner(pDisplay, XA_PRIMARY, None, CurrentTime);
+ if (g_fClipboardPrimary)
+ {
+ /* Release PRIMARY selection if owned */
+ iReturn = XGetSelectionOwner (pDisplay, XA_PRIMARY);
+ if (iReturn == g_iClipboardWindow) {
+ winDebug ("winClipboardWindowProc - WM_DRAWCLIPBOARD - "
+ "PRIMARY selection is owned by us.\n");
+ XSetSelectionOwner (pDisplay, XA_PRIMARY, None, CurrentTime);
+ }
+ else if (BadWindow == iReturn || BadAtom == iReturn)
+ ErrorF ("winClipboardWindowProc - WM_DRAWCLIPBOARD - "
+ "XGetSelection failed for PRIMARY: %d\n",
+ iReturn);
}
- else if (BadWindow == iReturn || BadAtom == iReturn)
- winErrorFVerb(1, "winClipboardWindowProc - WM_DRAWCLIPBOARD - "
- "XGetSelection failed for PRIMARY: %d\n",
- iReturn);
-
/* Release CLIPBOARD selection if owned */
iReturn = XGetSelectionOwner(pDisplay, atomClipboard);
if (iReturn == g_iClipboardWindow) {
@@ -353,7 +339,7 @@ winClipboardWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
XSetSelectionOwner(pDisplay, atomClipboard, None, CurrentTime);
}
else if (BadWindow == iReturn || BadAtom == iReturn)
- winErrorFVerb(1, "winClipboardWindowProc - WM_DRAWCLIPBOARD - "
+ ErrorF ("winClipboardWindowProc - WM_DRAWCLIPBOARD - "
"XGetSelection failed for CLIPBOARD: %d\n",
iReturn);
@@ -363,45 +349,48 @@ winClipboardWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
SendMessage(s_hwndNextViewer, message, wParam, lParam);
return 0;
}
-
- /* Reassert ownership of PRIMARY */
- iReturn = XSetSelectionOwner(pDisplay,
- XA_PRIMARY, iWindow, CurrentTime);
- if (iReturn == BadAtom || iReturn == BadWindow ||
- XGetSelectionOwner(pDisplay, XA_PRIMARY) != iWindow) {
- winErrorFVerb(1, "winClipboardWindowProc - WM_DRAWCLIPBOARD - "
- "Could not reassert ownership of PRIMARY\n");
- }
- else {
- winDebug("winClipboardWindowProc - WM_DRAWCLIPBOARD - "
- "Reasserted ownership of PRIMARY\n");
- }
-
- /* Reassert ownership of the CLIPBOARD */
- iReturn = XSetSelectionOwner(pDisplay,
- atomClipboard, iWindow, CurrentTime);
-
- if (iReturn == BadAtom || iReturn == BadWindow ||
- XGetSelectionOwner(pDisplay, atomClipboard) != iWindow) {
- winErrorFVerb(1, "winClipboardWindowProc - WM_DRAWCLIPBOARD - "
- "Could not reassert ownership of CLIPBOARD\n");
- }
- else {
- winDebug("winClipboardWindowProc - WM_DRAWCLIPBOARD - "
- "Reasserted ownership of CLIPBOARD\n");
+ /* Only reassert ownership when we did not change the clipboard ourselves */
+ if (hwnd!=(HWND)wParam) {
+ if (g_fClipboardPrimary) {
+ /* Reassert ownership of PRIMARY */
+ iReturn = XSetSelectionOwner (pDisplay,
+ XA_PRIMARY, iWindow, CurrentTime);
+ if (iReturn == BadAtom || iReturn == BadWindow ||
+ XGetSelectionOwner (pDisplay, XA_PRIMARY) != iWindow) {
+ ErrorF ("winClipboardWindowProc - WM_DRAWCLIPBOARD - "
+ "Could not reassert ownership of PRIMARY\n");
+ }
+ else {
+ winDebug ("winClipboardWindowProc - WM_DRAWCLIPBOARD - "
+ "Reasserted ownership of PRIMARY\n");
+ }
+ }
+ /* Reassert ownership of the CLIPBOARD */
+ iReturn = XSetSelectionOwner (pDisplay,
+ atomClipboard, iWindow, CurrentTime);
+
+ if (iReturn == BadAtom || iReturn == BadWindow ||
+ XGetSelectionOwner (pDisplay, atomClipboard) != iWindow) {
+ ErrorF ("winClipboardWindowProc - WM_DRAWCLIPBOARD - "
+ "Could not reassert ownership of CLIPBOARD\n");
+ }
+ else {
+ winDebug ("winClipboardWindowProc - WM_DRAWCLIPBOARD - "
+ "Reasserted ownership of CLIPBOARD\n");
+ }
+
+ /* Flush the pending SetSelectionOwner event now */
+ XFlush (pDisplay);
}
- /* Flush the pending SetSelectionOwner event now */
- XFlush(pDisplay);
-
s_fProcessingDrawClipboard = FALSE;
- }
winDebug("winClipboardWindowProc - WM_DRAWCLIPBOARD: Exit\n");
/* Pass the message on the next window in the clipboard viewer chain */
if (s_hwndNextViewer)
SendMessage(s_hwndNextViewer, message, wParam, lParam);
return 0;
+ }
case WM_DESTROYCLIPBOARD:
/*
* NOTE: Intentionally do nothing.
@@ -438,10 +427,10 @@ winClipboardWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
XInternAtom(pDisplay,
"COMPOUND_TEXT", False),
XInternAtom(pDisplay,
- "CYGX_CUT_BUFFER", False),
+ WIN_LOCAL_PROPERTY, False),
iWindow, CurrentTime);
if (iReturn == BadAtom || iReturn == BadWindow) {
- winErrorFVerb(1, "winClipboardWindowProc - WM_RENDER*FORMAT - "
+ ErrorF ("winClipboardWindowProc - WM_RENDER*FORMAT - "
"XConvertSelection () failed\n");
break;
}
@@ -449,23 +438,18 @@ winClipboardWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
/* Special handling for WM_RENDERALLFORMATS */
if (message == WM_RENDERALLFORMATS) {
/* We must open and empty the clipboard */
-
- /* Close clipboard if we have it open already */
- if (GetOpenClipboardWindow() == hwnd) {
- CloseClipboard();
- }
-
if (!OpenClipboard(hwnd)) {
- winErrorFVerb(1, "winClipboardWindowProc - WM_RENDER*FORMATS - "
+ ErrorF ("winClipboardWindowProc - WM_RENDER*FORMATS - "
"OpenClipboard () failed: %08x\n",
GetLastError());
break;
}
if (!EmptyClipboard()) {
- winErrorFVerb(1, "winClipboardWindowProc - WM_RENDER*FORMATS - "
+ ErrorF ("winClipboardWindowProc - WM_RENDER*FORMATS - "
"EmptyClipboard () failed: %08x\n",
GetLastError());
+ CloseClipboard ();
break;
}
}
@@ -484,6 +468,7 @@ winClipboardWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
* satisfy the requirement that we write something to it.
*/
if (WIN_XEVENTS_NOTIFY != iReturn) {
+ ErrorF("winClipboardWindowProc - winProcessXEventsTimeout should have returned WIN_XEVENTS_NOTIFY was %d\n",iReturn);
/* Paste no data, to satisfy required call to SetClipboardData */
SetClipboardData(CF_UNICODETEXT, NULL);
SetClipboardData(CF_TEXT, NULL);
@@ -497,7 +482,7 @@ winClipboardWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
/* We must close the clipboard */
if (!CloseClipboard()) {
- winErrorFVerb(1,
+ ErrorF (
"winClipboardWindowProc - WM_RENDERALLFORMATS - "
"CloseClipboard () failed: %08x\n",
GetLastError());
diff --git a/xorg-server/hw/xwin/winclipboardwrappers.c b/xorg-server/hw/xwin/winclipboardwrappers.c
index 008088b6a..09fbfd3aa 100644
--- a/xorg-server/hw/xwin/winclipboardwrappers.c
+++ b/xorg-server/hw/xwin/winclipboardwrappers.c
@@ -64,6 +64,7 @@ extern Bool g_fClipboard;
extern Window g_iClipboardWindow;
extern Atom g_atomLastOwnedSelection;
extern HWND g_hwndClipboard;
+extern Bool g_fClipboardPrimary;
/*
@@ -79,12 +80,14 @@ winProcEstablishConnection(ClientPtr client)
static int s_iCallCount = 0;
static unsigned long s_ulServerGeneration = 0;
+ #ifdef WINDBG
if (s_iCallCount == 0)
winDebug("winProcEstablishConnection - Hello\n");
+ #endif
/* Do nothing if clipboard is not enabled */
if (!g_fClipboard) {
- ErrorF("winProcEstablishConnection - Clipboard is not enabled, "
+ winDebug ("winProcEstablishConnection - Clipboard is not enabled, "
"returning.\n");
/* Unwrap the original function, call it, and return */
@@ -131,7 +134,7 @@ winProcEstablishConnection(ClientPtr client)
/* If the clipboard client has already been started, abort */
if (g_fClipboardLaunched) {
- ErrorF("winProcEstablishConnection - Clipboard client already "
+ winDebug ("winProcEstablishConnection - Clipboard client already "
"launched, returning.\n");
return iReturn;
}
@@ -162,7 +165,7 @@ winProcEstablishConnection(ClientPtr client)
return iReturn;
}
- ErrorF("winProcEstablishConnection - winInitClipboard returned.\n");
+ winDebug ("winProcEstablishConnection - winInitClipboard returned.\n");
}
/* Flag that clipboard client has been launched */
@@ -175,14 +178,12 @@ winProcEstablishConnection(ClientPtr client)
* Wrapper for internal SetSelectionOwner function.
* Grabs ownership of Windows clipboard when X11 clipboard owner changes.
*/
-
int
winProcSetSelectionOwner(ClientPtr client)
{
int i;
DrawablePtr pDrawable;
WindowPtr pWindow = None;
- Bool fOwnedToNotOwned = FALSE;
static Window s_iOwners[CLIP_NUM_SELECTIONS] = { None };
static unsigned long s_ulServerGeneration = 0;
@@ -196,7 +197,7 @@ winProcSetSelectionOwner(ClientPtr client)
if (s_ulServerGeneration != serverGeneration) {
/* Save new generation number */
s_ulServerGeneration = serverGeneration;
-
+
/* Initialize static variables */
for (i = 0; i < CLIP_NUM_SELECTIONS; ++i)
s_iOwners[i] = None;
@@ -204,8 +205,8 @@ winProcSetSelectionOwner(ClientPtr client)
/* Abort if clipboard not completely initialized yet */
if (!g_fClipboardStarted) {
- /* ErrorF ("winProcSetSelectionOwner - Clipboard not yet started, "
- "aborting.\n"); */
+ winDebug ("winProcSetSelectionOwner - Clipboard not yet started, "
+ "aborting.\n");
goto winProcSetSelectionOwner_Done;
}
@@ -223,11 +224,9 @@ winProcSetSelectionOwner(ClientPtr client)
/* Now we either have a valid window or None */
/* Save selection owners for monitored selections, ignore other selections */
- if (XA_PRIMARY == stuff->selection) {
+ if (XA_PRIMARY == stuff->selection && g_fClipboardPrimary) {
/* Look for owned -> not owned transition */
if (None == stuff->window && None != s_iOwners[CLIP_OWN_PRIMARY]) {
- fOwnedToNotOwned = TRUE;
-
winDebug("winProcSetSelectionOwner - PRIMARY - Going from "
"owned to not owned.\n");
@@ -241,19 +240,17 @@ winProcSetSelectionOwner(ClientPtr client)
/* Save new selection owner or None */
s_iOwners[CLIP_OWN_PRIMARY] = stuff->window;
- winDebug("winProcSetSelectionOwner - PRIMARY - Now owned by: %d\n",
- stuff->window);
+ winDebug ("winProcSetSelectionOwner - PRIMARY - Now owned by: 0x%x (clipboard is 0x%x)\n",
+ stuff->window,g_iClipboardWindow);
}
else if (MakeAtom("CLIPBOARD", 9, TRUE) == stuff->selection) {
/* Look for owned -> not owned transition */
if (None == stuff->window && None != s_iOwners[CLIP_OWN_CLIPBOARD]) {
- fOwnedToNotOwned = TRUE;
-
winDebug("winProcSetSelectionOwner - CLIPBOARD - Going from "
"owned to not owned.\n");
/* Adjust last owned selection */
- if (None != s_iOwners[CLIP_OWN_PRIMARY])
+ if ((None != s_iOwners[CLIP_OWN_PRIMARY]) && g_fClipboardPrimary)
g_atomLastOwnedSelection = XA_PRIMARY;
else
g_atomLastOwnedSelection = None;
@@ -262,9 +259,8 @@ winProcSetSelectionOwner(ClientPtr client)
/* Save new selection owner or None */
s_iOwners[CLIP_OWN_CLIPBOARD] = stuff->window;
- winDebug("winProcSetSelectionOwner - CLIPBOARD - Now owned by: %d\n",
- stuff->window);
-
+ winDebug ("winProcSetSelectionOwner - CLIPBOARD - Now owned by: 0x%x, clipboard is 0x%x\n",
+ stuff->window,g_iClipboardWindow);
}
else
goto winProcSetSelectionOwner_Done;
@@ -279,40 +275,15 @@ winProcSetSelectionOwner(ClientPtr client)
if (g_iClipboardWindow == s_iOwners[CLIP_OWN_CLIPBOARD])
s_iOwners[CLIP_OWN_CLIPBOARD] = None;
- /*
- * Handle case when selection is being disowned,
- * WM_DRAWCLIPBOARD did not do the disowning,
- * both monitored selections are no longer owned,
- * an owned to not owned transition was detected,
- * and we currently own the Win32 clipboard.
- */
- if (stuff->window == None
- && s_iOwners[CLIP_OWN_PRIMARY] == None
- && s_iOwners[CLIP_OWN_CLIPBOARD] == None
- && fOwnedToNotOwned
- && g_hwndClipboard != NULL && g_hwndClipboard == GetClipboardOwner()) {
- winDebug("winProcSetSelectionOwner - We currently own the "
- "clipboard and neither the PRIMARY nor the CLIPBOARD "
- "selections are owned, releasing ownership of Win32 "
- "clipboard.\n");
-
- /* Release ownership of the Windows clipboard */
- OpenClipboard(NULL);
- EmptyClipboard();
- CloseClipboard();
-
- goto winProcSetSelectionOwner_Done;
- }
-
/* Abort if no window at this point */
if (None == stuff->window) {
- winDebug("winProcSetSelectionOwner - No window, returning.\n");
+ winDebug ("winProcSetSelectionOwner - No window, returning.\n");
goto winProcSetSelectionOwner_Done;
}
/* Abort if invalid selection */
if (!ValidAtom(stuff->selection)) {
- ErrorF("winProcSetSelectionOwner - Found BadAtom, aborting.\n");
+ winDebug ("winProcSetSelectionOwner - Found BadAtom, aborting.\n");
goto winProcSetSelectionOwner_Done;
}
@@ -321,27 +292,22 @@ winProcSetSelectionOwner(ClientPtr client)
/* Abort if clipboard manager is owning the selection */
if (pDrawable->id == g_iClipboardWindow) {
- winDebug("winProcSetSelectionOwner - We changed ownership, "
+ winDebug ("winProcSetSelectionOwner - We changed ownership, "
"aborting.\n");
goto winProcSetSelectionOwner_Done;
}
/* Abort if root window is taking ownership */
if (pDrawable->id == 0) {
- ErrorF("winProcSetSelectionOwner - Root window taking ownership, "
+ winDebug ("winProcSetSelectionOwner - Root window taking ownership, "
"aborting\n");
goto winProcSetSelectionOwner_Done;
}
- /* Close clipboard if we have it open already */
- if (GetOpenClipboardWindow() == g_hwndClipboard) {
- CloseClipboard();
- }
-
/* Access the Windows clipboard */
if (!OpenClipboard(g_hwndClipboard)) {
- ErrorF("winProcSetSelectionOwner - OpenClipboard () failed: %08x\n",
- (int) GetLastError());
+ ErrorF ("winProcSetSelectionOwner - OpenClipboard () failed: %08x, hwnd: %08x\n",
+ (int) GetLastError (),g_hwndClipboard);
goto winProcSetSelectionOwner_Done;
}
@@ -349,9 +315,11 @@ winProcSetSelectionOwner(ClientPtr client)
if (!EmptyClipboard()) {
ErrorF("winProcSetSelectionOwner - EmptyClipboard () failed: %08x\n",
(int) GetLastError());
+ CloseClipboard ();
goto winProcSetSelectionOwner_Done;
}
+ winDebug("winProcSetSelectionOwner - SetClipboardData NULL\n");
/* Advertise regular text and unicode */
SetClipboardData(CF_UNICODETEXT, NULL);
SetClipboardData(CF_TEXT, NULL);
@@ -366,6 +334,6 @@ winProcSetSelectionOwner(ClientPtr client)
goto winProcSetSelectionOwner_Done;
}
- winProcSetSelectionOwner_Done:
+winProcSetSelectionOwner_Done:
return (*winProcSetSelectionOwnerOrig) (client);
}
diff --git a/xorg-server/hw/xwin/winclipboardxevents.c b/xorg-server/hw/xwin/winclipboardxevents.c
index 226c3f055..4aff0659b 100644
--- a/xorg-server/hw/xwin/winclipboardxevents.c
+++ b/xorg-server/hw/xwin/winclipboardxevents.c
@@ -35,6 +35,10 @@
#endif
#include "winclipboard.h"
#include "misc.h"
+#include "winmsg.h"
+#include <unistd.h>
+
+extern Bool g_fClipboardPrimary;
/*
* Process any pending X events
@@ -42,7 +46,7 @@
int
winClipboardFlushXEvents(HWND hwnd,
- int iWindow, Display * pDisplay, Bool fUseUnicode)
+ int iWindow, Display * pDisplay, Bool fUseUnicode, Bool ClipboardOpened)
{
static Atom atomLocalProperty;
static Atom atomCompoundText;
@@ -85,6 +89,8 @@ winClipboardFlushXEvents(HWND hwnd,
/* Get the next event - will not block because one is ready */
XNextEvent(pDisplay, &event);
+ winDebug ("Received event type %d\n",event.type);
+
/* Branch on the event type */
switch (event.type) {
/*
@@ -92,6 +98,7 @@ winClipboardFlushXEvents(HWND hwnd,
*/
case SelectionRequest:
+#ifdef _DEBUG
{
char *pszAtomName = NULL;
@@ -103,7 +110,10 @@ winClipboardFlushXEvents(HWND hwnd,
winDebug("SelectionRequest - Target atom name %s\n", pszAtomName);
XFree(pszAtomName);
pszAtomName = NULL;
+ winDebug ("SelectionRequest - owner %d\n", event.xselectionrequest.owner);
+ winDebug ("SelectionRequest - requestor %d\n", event.xselectionrequest.requestor);
}
+#endif
/* Abort if invalid target type */
if (event.xselectionrequest.target != XA_STRING
@@ -165,24 +175,24 @@ winClipboardFlushXEvents(HWND hwnd,
break;
}
- /* Close clipboard if we have it open already */
- if (GetOpenClipboardWindow() == hwnd) {
- CloseClipboard();
- }
-
- /* Access the clipboard */
- if (!OpenClipboard(hwnd)) {
- ErrorF("winClipboardFlushXEvents - SelectionRequest - "
- "OpenClipboard () failed: %08lx\n", GetLastError());
+ /* Access the clipboard */
+ if (!ClipboardOpened)
+ {
+ if (!OpenClipboard (hwnd))
+ {
+ ErrorF ("winClipboardFlushXEvents - SelectionRequest - "
+ "OpenClipboard () failed: %08lx\n",
+ GetLastError ());
/* Abort */
fAbort = TRUE;
goto winClipboardFlushXEvents_SelectionRequest_Done;
+ }
+
+ /* Indicate that clipboard was opened */
+ fCloseClipboard = TRUE;
}
- /* Indicate that clipboard was opened */
- fCloseClipboard = TRUE;
-
/* Check that clipboard format is available */
if (fUseUnicode && !IsClipboardFormatAvailable(CF_UNICODETEXT)) {
static int count; /* Hack to stop acroread spamming the log */
@@ -232,7 +242,16 @@ winClipboardFlushXEvents(HWND hwnd,
hGlobal = GetClipboardData(CF_TEXT);
}
if (!hGlobal) {
- ErrorF("winClipboardFlushXEvents - SelectionRequest - "
+ if (GetLastError()==ERROR_CLIPBOARD_NOT_OPEN && ClipboardOpened)
+ {
+ ErrorF("We should not have received a SelectionRequest????\n"
+ "The owner is the clipboard, but in reality it was"
+ "an X window\n");
+ /* Set the owner to None */
+ if (g_fClipboardPrimary) XSetSelectionOwner (pDisplay, XA_PRIMARY, None, CurrentTime);
+ XSetSelectionOwner (pDisplay, XInternAtom (pDisplay, "CLIPBOARD", False), None, CurrentTime);
+ }
+ ErrorF ("winClipboardFlushXEvents - SelectionRequest - "
"GetClipboardData () failed: %08lx\n", GetLastError());
/* Abort */
@@ -320,9 +339,11 @@ winClipboardFlushXEvents(HWND hwnd,
/* Release the clipboard data */
GlobalUnlock(hGlobal);
pszGlobalData = NULL;
- fCloseClipboard = FALSE;
- CloseClipboard();
-
+ if (fCloseClipboard)
+ {
+ fCloseClipboard = FALSE;
+ CloseClipboard ();
+ }
/* Clean up */
XFree(xtpText.value);
xtpText.value = NULL;
@@ -401,9 +422,8 @@ winClipboardFlushXEvents(HWND hwnd,
/*
* SelectionNotify
*/
-
case SelectionNotify:
-
+#ifdef _DEBUG
winDebug("winClipboardFlushXEvents - SelectionNotify\n");
{
char *pszAtomName;
@@ -414,8 +434,11 @@ winClipboardFlushXEvents(HWND hwnd,
winDebug
("winClipboardFlushXEvents - SelectionNotify - ATOM: %s\n",
pszAtomName);
+ winDebug ("SelectionNotify - requestor %d\n", event.xselectionrequest.requestor);
XFree(pszAtomName);
}
+#endif
+
/*
* Request conversion of UTF8 and CompoundText targets.
@@ -498,6 +521,7 @@ winClipboardFlushXEvents(HWND hwnd,
break;
}
+#ifdef WINDBG
{
char *pszAtomName = NULL;
@@ -508,6 +532,7 @@ winClipboardFlushXEvents(HWND hwnd,
XFree(pszAtomName);
pszAtomName = NULL;
}
+#endif
if (fUseUnicode) {
#ifdef X_HAVE_UTF8_STRING
@@ -529,7 +554,7 @@ winClipboardFlushXEvents(HWND hwnd,
for (i = 0; i < iCount; i++) {
iReturnDataLen += strlen(ppszTextList[i]);
}
- pszReturnData = malloc(iReturnDataLen + 1);
+ pszReturnData = (char *) malloc(iReturnDataLen + 1);
pszReturnData[0] = '\0';
for (i = 0; i < iCount; i++) {
strcat(pszReturnData, ppszTextList[i]);
@@ -538,7 +563,7 @@ winClipboardFlushXEvents(HWND hwnd,
else {
ErrorF("winClipboardFlushXEvents - SelectionNotify - "
"X*TextPropertyToTextList list_return is NULL.\n");
- pszReturnData = malloc(1);
+ pszReturnData = (char *) malloc(1);
pszReturnData[0] = '\0';
}
}
@@ -559,7 +584,7 @@ winClipboardFlushXEvents(HWND hwnd,
ErrorF("%d\n", iReturn);
break;
}
- pszReturnData = malloc(1);
+ pszReturnData = (char *) malloc(1);
pszReturnData[0] = '\0';
}
@@ -572,7 +597,7 @@ winClipboardFlushXEvents(HWND hwnd,
xtpText.nitems = 0;
/* Convert the X clipboard string to DOS format */
- winClipboardUNIXtoDOS(&pszReturnData, strlen(pszReturnData));
+ winClipboardUNIXtoDOS((unsigned char **)&pszReturnData, strlen(pszReturnData));
if (fUseUnicode) {
/* Find out how much space needed to convert MBCS to Unicode */
@@ -683,14 +708,32 @@ winClipboardFlushXEvents(HWND hwnd,
}
return WIN_XEVENTS_NOTIFY;
- case SelectionClear:
+ /*
+ * SelectionClear
+ */
+ case SelectionClear:
+#ifdef _DEBUG
winDebug("SelectionClear - doing nothing\n");
+ {
+ char *pszAtomName;
+
+ pszAtomName = XGetAtomName (pDisplay,
+ event.xselection.selection);
+
+ winDebug ("SelectionClear - ATOM: %s\n",
+ pszAtomName);
+ winDebug ("SelectionClear - owner %d\n", event.xselectionrequest.owner);
+
+ XFree (pszAtomName);
+ }
+#endif
break;
case PropertyNotify:
break;
-
+
case MappingNotify:
+ XRefreshKeyboardMapping((XMappingEvent *)&event);
break;
default:
diff --git a/xorg-server/hw/xwin/wincmap.c b/xorg-server/hw/xwin/wincmap.c
index 610437ad4..283372a9f 100644
--- a/xorg-server/hw/xwin/wincmap.c
+++ b/xorg-server/hw/xwin/wincmap.c
@@ -116,16 +116,12 @@ winInstallColormap(ColormapPtr pColormap)
winScreenPriv(pScreen);
ColormapPtr oldpmap = pScreenPriv->pcmapInstalled;
-#if CYGDEBUG
winDebug("winInstallColormap\n");
-#endif
/* Did the colormap actually change? */
if (pColormap != oldpmap) {
-#if CYGDEBUG
winDebug("winInstallColormap - Colormap has changed, attempt "
"to install.\n");
-#endif
/* Was there a previous colormap? */
if (oldpmap != (ColormapPtr) None) {
@@ -139,10 +135,9 @@ winInstallColormap(ColormapPtr pColormap)
/* Call the engine specific colormap install procedure */
if (!((*pScreenPriv->pwinInstallColormap) (pColormap))) {
- winErrorFVerb(2,
- "winInstallColormap - Screen specific colormap install "
- "procedure failed. Continuing, but colors may be "
- "messed up from now on.\n");
+ ErrorF ("winInstallColormap - Screen specific colormap install "
+ "procedure failed. Continuing, but colors may be "
+ "messed up from now on.\n");
}
}
@@ -157,9 +152,7 @@ winUninstallColormap(ColormapPtr pmap)
winScreenPriv(pmap->pScreen);
ColormapPtr curpmap = pScreenPriv->pcmapInstalled;
-#if CYGDEBUG
winDebug("winUninstallColormap\n");
-#endif
/* Is the colormap currently installed? */
if (pmap != curpmap) {
@@ -194,7 +187,7 @@ winStoreColors(ColormapPtr pmap, int ndef, xColorItem * pdefs)
int i;
unsigned short nRed, nGreen, nBlue;
-#if CYGDEBUG
+#ifdef WINDBG
if (ndef != 1)
winDebug("winStoreColors - ndef: %d\n", ndef);
#endif
@@ -216,18 +209,15 @@ winStoreColors(ColormapPtr pmap, int ndef, xColorItem * pdefs)
pCmapPriv->rgbColors[pdefs[0].pixel + i].rgbGreen = nGreen;
pCmapPriv->rgbColors[pdefs[0].pixel + i].rgbBlue = nBlue;
-#if CYGDEBUG
winDebug("winStoreColors - nRed %d nGreen %d nBlue %d\n",
nRed, nGreen, nBlue);
-#endif
}
/* Call the engine specific store colors procedure */
if (!((pScreenPriv->pwinStoreColors) (pmap, ndef, pdefs))) {
- winErrorFVerb(2,
- "winStoreColors - Engine cpecific color storage procedure "
- "failed. Continuing, but colors may be messed up from now "
- "on.\n");
+ ErrorF ("winStoreColors - Engine cpecific color storage procedure "
+ "failed. Continuing, but colors may be messed up from now "
+ "on.\n");
}
}
@@ -237,9 +227,7 @@ winResolveColor(unsigned short *pred,
unsigned short *pgreen,
unsigned short *pblue, VisualPtr pVisual)
{
-#if CYGDEBUG
winDebug("winResolveColor ()\n");
-#endif
miResolveColor(pred, pgreen, pblue, pVisual);
}
@@ -253,9 +241,7 @@ winCreateColormap(ColormapPtr pmap)
winScreenPriv(pScreen);
-#if CYGDEBUG
winDebug("winCreateColormap\n");
-#endif
/* Allocate colormap privates */
if (!winAllocateCmapPrivates(pmap)) {
@@ -301,19 +287,16 @@ winDestroyColormap(ColormapPtr pColormap)
/* Call the engine specific colormap destruction procedure */
if (!((*pScreenPriv->pwinDestroyColormap) (pColormap))) {
- winErrorFVerb(2,
- "winDestroyColormap - Engine specific colormap destruction "
- "procedure failed. Continuing, but it is possible that memory "
- "was leaked, or that colors will be messed up from now on.\n");
+ ErrorF ("winDestroyColormap - Engine specific colormap destruction "
+ "procedure failed. Continuing, but it is possible that memory "
+ "was leaked, or that colors will be messed up from now on.\n");
}
/* Free the colormap privates */
free(pCmapPriv);
winSetCmapPriv(pColormap, NULL);
-#if CYGDEBUG
winDebug("winDestroyColormap - Returning\n");
-#endif
}
/*
@@ -338,10 +321,8 @@ winGetPaletteDIB(ScreenPtr pScreen, ColormapPtr pcmap)
return FALSE;
}
-#if CYGDEBUG
winDebug("winGetPaletteDIB - Retrieved %d colors from DIB\n",
uiColorsRetrieved);
-#endif
/* Set the DIB color table to the default screen palette */
if (SetDIBColorTable(pScreenPriv->hdcShadow,
@@ -359,10 +340,8 @@ winGetPaletteDIB(ScreenPtr pScreen, ColormapPtr pcmap)
nGreen = rgbColors[i].rgbGreen << 8;
nBlue = rgbColors[i].rgbBlue << 8;
-#if CYGDEBUG
winDebug("winGetPaletteDIB - Allocating a color: %d; "
"%d %d %d\n", pixel, nRed, nGreen, nBlue);
-#endif
/* Allocate a entry in the X colormap */
if (AllocColor(pcmap, &nRed, &nGreen, &nBlue, &pixel, 0) != Success) {
@@ -421,10 +400,8 @@ winGetPaletteDD(ScreenPtr pScreen, ColormapPtr pcmap)
return FALSE;
}
-#if CYGDEBUG
winDebug("winGetPaletteDD - uiSystemPaletteEntries %d\n",
uiSystemPaletteEntries);
-#endif
/* Allocate palette entries structure */
ppeColors = malloc(uiSystemPaletteEntries * sizeof(PALETTEENTRY));
@@ -444,10 +421,8 @@ winGetPaletteDD(ScreenPtr pScreen, ColormapPtr pcmap)
nRed = ppeColors[i].peRed << 8;
nGreen = ppeColors[i].peGreen << 8;
nBlue = ppeColors[i].peBlue << 8;
-#if CYGDEBUG
winDebug("winGetPaletteDD - Allocating a color: %d; "
"%d %d %d\n", pixel, nRed, nGreen, nBlue);
-#endif
if (AllocColor(pcmap, &nRed, &nGreen, &nBlue, &pixel, 0) != Success) {
ErrorF("winGetPaletteDD - AllocColor () failed, pixel %d\n", i);
free(ppeColors);
@@ -493,9 +468,7 @@ winCreateDefColormap(ScreenPtr pScreen)
ColormapPtr pcmap = NULL;
Pixel wp, bp;
-#if CYGDEBUG
winDebug("winCreateDefColormap\n");
-#endif
/* Use standard fb colormaps for non palettized color modes */
if (pScreenInfo->dwBPP > 8) {
@@ -514,9 +487,7 @@ winCreateDefColormap(ScreenPtr pScreen)
* to be changed by clients.
*/
-#if CYGDEBUG
winDebug("winCreateDefColormap - defColormap: %d\n", pScreen->defColormap);
-#endif
/* Allocate an X colormap, owned by client 0 */
if (CreateColormap(pScreen->defColormap,
@@ -533,9 +504,7 @@ winCreateDefColormap(ScreenPtr pScreen)
return FALSE;
}
-#if CYGDEBUG
winDebug("winCreateDefColormap - Created a colormap\n");
-#endif
/* Branch on the visual class */
if (!(pVisual->class & DynamicClass)) {
@@ -570,33 +539,12 @@ winCreateDefColormap(ScreenPtr pScreen)
pScreen->whitePixel = wp;
pScreen->blackPixel = bp;
-#if 0
- /* Have to reserve first 10 and last ten pixels in DirectDraw windowed */
- if (pScreenInfo->dwEngine != WIN_SERVER_SHADOW_GDI) {
- int k;
- Pixel p;
-
- for (k = 1; k < 10; ++k) {
- p = k;
- if (AllocColor(pcmap, &ones, &ones, &ones, &p, 0) != Success)
- FatalError("Foo!\n");
- }
-
- for (k = 245; k < 255; ++k) {
- p = k;
- if (AllocColor(pcmap, &zero, &zero, &zero, &p, 0) != Success)
- FatalError("Baz!\n");
- }
- }
-#endif
}
/* Install the created colormap */
(*pScreen->InstallColormap) (pcmap);
-#if CYGDEBUG
winDebug("winCreateDefColormap - Returning\n");
-#endif
return TRUE;
}
diff --git a/xorg-server/hw/xwin/winconfig.c b/xorg-server/hw/xwin/winconfig.c
index 9e38113a5..11717a506 100644
--- a/xorg-server/hw/xwin/winconfig.c
+++ b/xorg-server/hw/xwin/winconfig.c
@@ -140,10 +140,10 @@ winReadConfigfile()
filename = xf86openConfigFile(CONFIGPATH, "XF86Config", PROJECTROOT);
if (filename) {
- winMsg(from, "Using config file: \"%s\"\n", filename);
+ winDebug ("Using config file: \"%s\"\n", filename);
}
else {
- winMsg(X_ERROR, "Unable to locate/open config file");
+ ErrorF ("Unable to locate/open config file");
if (xf86ConfigFile)
ErrorF(": \"%s\"", xf86ConfigFile);
ErrorF("\n");
@@ -163,7 +163,7 @@ winReadConfigfile()
free(filename);
free(dirname);
if ((g_xf86configptr = xf86readConfigFile()) == NULL) {
- winMsg(X_ERROR, "Problem parsing the config file\n");
+ ErrorF ("Problem parsing the config file\n");
return FALSE;
}
xf86closeConfigFile();
@@ -175,12 +175,11 @@ winReadConfigfile()
if (g_xf86configptr->conf_layout_lst == NULL ||
g_cmdline.screenname != NULL) {
if (g_cmdline.screenname == NULL) {
- winMsg(X_WARNING,
- "No Layout section. Using the first Screen section.\n");
+ winDebug ("No Layout section. Using the first Screen section.\n");
}
if (!configImpliedLayout(&g_winConfigLayout,
g_xf86configptr->conf_screen_lst)) {
- winMsg(X_ERROR, "Unable to determine the screen layout\n");
+ ErrorF ("Unable to determine the screen layout\n");
return FALSE;
}
}
@@ -196,14 +195,14 @@ winReadConfigfile()
if (!configLayout(&g_winConfigLayout,
g_xf86configptr->conf_layout_lst, dfltlayout)) {
- winMsg(X_ERROR, "Unable to determine the screen layout\n");
+ ErrorF ("Unable to determine the screen layout\n");
return FALSE;
}
}
else {
if (!configLayout(&g_winConfigLayout,
g_xf86configptr->conf_layout_lst, NULL)) {
- winMsg(X_ERROR, "Unable to determine the screen layout\n");
+ ErrorF ("Unable to determine the screen layout\n");
return FALSE;
}
}
@@ -263,7 +262,7 @@ winConfigKeyboard(DeviceIntPtr pDevice)
break;
}
g_winInfo.keyboard.rate = (kbd_speed > 0) ? kbd_speed : 1;
- winMsgVerb(X_PROBED, 1, "Setting autorepeat to delay=%d, rate=%d\n",
+ winDebug("Setting autorepeat to delay=%d, rate=%d\n",
g_winInfo.keyboard.delay, g_winInfo.keyboard.rate);
}
}
@@ -286,9 +285,9 @@ winConfigKeyboard(DeviceIntPtr pDevice)
such as the lack of WM_KEYUP for Caps Lock key.
Loading US layout fixes this problem. */
if (LoadKeyboardLayout("00000409", KLF_ACTIVATE) != NULL)
- winMsg(X_INFO, "Loading US keyboard layout.\n");
+ winDebug("Loading US keyboard layout.\n");
else
- winMsg(X_ERROR, "LoadKeyboardLayout failed.\n");
+ ErrorF ("LoadKeyboardLayout failed.\n");
}
}
@@ -314,9 +313,8 @@ winConfigKeyboard(DeviceIntPtr pDevice)
free(regpath);
}
- winMsg(X_PROBED,
- "Windows keyboard layout: \"%s\" (%08x) \"%s\", type %d\n",
- layoutName, layoutNum, layoutFriendlyName, keyboardType);
+ winDebug ("Windows keyboard layout: \"%s\" (%08x) \"%s\", type %d\n",
+ layoutName, layoutNum, layoutFriendlyName, keyboardType);
for (pLayout = winKBLayouts; pLayout->winlayout != -1; pLayout++) {
if (pLayout->winlayout != layoutNum)
@@ -325,11 +323,11 @@ winConfigKeyboard(DeviceIntPtr pDevice)
continue;
bfound = TRUE;
- winMsg(X_PROBED,
+ winDebug (
"Found matching XKB configuration \"%s\"\n",
pLayout->layoutname);
- winMsg(X_PROBED,
+ winDebug(
"Model = \"%s\" Layout = \"%s\""
" Variant = \"%s\" Options = \"%s\"\n",
pLayout->xkbmodel ? pLayout->xkbmodel : "none",
@@ -337,17 +335,16 @@ winConfigKeyboard(DeviceIntPtr pDevice)
pLayout->xkbvariant ? pLayout->xkbvariant : "none",
pLayout->xkboptions ? pLayout->xkboptions : "none");
- g_winInfo.xkb.model = pLayout->xkbmodel;
- g_winInfo.xkb.layout = pLayout->xkblayout;
- g_winInfo.xkb.variant = pLayout->xkbvariant;
- g_winInfo.xkb.options = pLayout->xkboptions;
+ g_winInfo.xkb.model = (char *)pLayout->xkbmodel;
+ g_winInfo.xkb.layout = (char *)pLayout->xkblayout;
+ g_winInfo.xkb.variant = (char *)pLayout->xkbvariant;
+ g_winInfo.xkb.options = (char *)pLayout->xkboptions;
break;
}
if (!bfound) {
- winMsg(X_ERROR,
- "Keyboardlayout \"%s\" (%s) is unknown, using X server default layout\n",
+ ErrorF ("Keyboardlayout \"%s\" (%s) is unknown, using X server default layout\n",
layoutFriendlyName, layoutName);
}
}
@@ -379,8 +376,8 @@ winConfigKeyboard(DeviceIntPtr pDevice)
if (kbd != NULL) {
if (kbd->inp_identifier)
- winMsg(kbdfrom, "Using keyboard \"%s\" as primary keyboard\n",
- kbd->inp_identifier);
+ winDebug ("Using keyboard \"%s\" as primary keyboard\n",
+ kbd->inp_identifier);
if ((s = winSetStrOption(kbd->inp_option_lst, "AutoRepeat", NULL))) {
if ((sscanf(s, "%ld %ld", &g_winInfo.keyboard.delay,
@@ -388,12 +385,12 @@ winConfigKeyboard(DeviceIntPtr pDevice)
(g_winInfo.keyboard.delay < 1) ||
(g_winInfo.keyboard.rate == 0) ||
(1000 / g_winInfo.keyboard.rate) < 1) {
- winErrorFVerb(2, "\"%s\" is not a valid AutoRepeat value", s);
+ ErrorF ("\"%s\" is not a valid AutoRepeat value", s);
free(s);
return FALSE;
}
free(s);
- winMsg(X_CONFIG, "AutoRepeat: %ld %ld\n",
+ winDebug ("AutoRepeat: %ld %ld\n",
g_winInfo.keyboard.delay, g_winInfo.keyboard.rate);
}
#endif
@@ -411,7 +408,7 @@ winConfigKeyboard(DeviceIntPtr pDevice)
#endif
if (s) {
g_winInfo.xkb.rules = NULL_IF_EMPTY(s);
- winMsg(from, "XKB: rules: \"%s\"\n", s);
+ winDebug ("XKB: rules: \"%s\"\n", s);
}
s = NULL;
@@ -427,7 +424,7 @@ winConfigKeyboard(DeviceIntPtr pDevice)
#endif
if (s) {
g_winInfo.xkb.model = NULL_IF_EMPTY(s);
- winMsg(from, "XKB: model: \"%s\"\n", s);
+ winDebug ("XKB: model: \"%s\"\n", s);
}
s = NULL;
@@ -443,7 +440,7 @@ winConfigKeyboard(DeviceIntPtr pDevice)
#endif
if (s) {
g_winInfo.xkb.layout = NULL_IF_EMPTY(s);
- winMsg(from, "XKB: layout: \"%s\"\n", s);
+ winDebug ("XKB: layout: \"%s\"\n", s);
}
s = NULL;
@@ -459,7 +456,7 @@ winConfigKeyboard(DeviceIntPtr pDevice)
#endif
if (s) {
g_winInfo.xkb.variant = NULL_IF_EMPTY(s);
- winMsg(from, "XKB: variant: \"%s\"\n", s);
+ winDebug ("XKB: variant: \"%s\"\n", s);
}
s = NULL;
@@ -472,10 +469,16 @@ winConfigKeyboard(DeviceIntPtr pDevice)
s = winSetStrOption(kbd->inp_option_lst, "XkbOptions", NULL);
from = X_CONFIG;
}
+#else
+ else
+ {
+ if (!g_winInfo.xkb.options)
+ s="grab:break_actions"; /* Currently attach default CTRL+ALT+NKP/ and CTRL+ALT+NKP* mappings to release grab functions */
+ }
#endif
if (s) {
g_winInfo.xkb.options = NULL_IF_EMPTY(s);
- winMsg(from, "XKB: options: \"%s\"\n", s);
+ winDebug ("XKB: options: \"%s\"\n", s);
}
#ifdef XWIN_XF86CONFIG
@@ -513,8 +516,8 @@ winConfigMouse(DeviceIntPtr pDevice)
if (mouse != NULL) {
if (mouse->inp_identifier)
- winMsg(mousefrom, "Using pointer \"%s\" as primary pointer\n",
- mouse->inp_identifier);
+ winDebug ("Using pointer \"%s\" as primary pointer\n",
+ mouse->inp_identifier);
g_winInfo.pointer.emulate3Buttons =
winSetBoolOption(mouse->inp_option_lst, "Emulate3Buttons", FALSE);
@@ -527,8 +530,8 @@ winConfigMouse(DeviceIntPtr pDevice)
g_winInfo.pointer.emulate3Timeout = g_cmdline.emulate3timeout;
}
else {
- winMsg(X_ERROR, "No primary pointer configured\n");
- winMsg(X_DEFAULT, "Using compiletime defaults for pointer\n");
+ winDebug ("No primary pointer configured\n");
+ winDebug ("Using compiletime defaults for pointer\n");
}
return TRUE;
@@ -556,7 +559,7 @@ winConfigFiles()
from = X_CONFIG;
defaultFontPath = strdup(filesptr->file_fontpath);
}
- winMsg(from, "FontPath set to \"%s\"\n", defaultFontPath);
+ winDebug ("FontPath set to \"%s\"\n", defaultFontPath);
return TRUE;
}
@@ -567,7 +570,7 @@ winConfigFiles(void)
/* Fontpath */
if (g_cmdline.fontPath) {
defaultFontPath = g_cmdline.fontPath;
- winMsg(X_CMDLINE, "FontPath set to \"%s\"\n", defaultFontPath);
+ winDebug("FontPath set to \"%s\"\n", defaultFontPath);
}
return TRUE;
@@ -742,8 +745,7 @@ ParseOptionValue(int scrnIndex, pointer options, OptionInfoPtr p)
switch (p->type) {
case OPTV_INTEGER:
if (*s == '\0') {
- winDrvMsg(scrnIndex, X_WARNING,
- "Option \"%s\" requires an integer value\n", p->name);
+ winDebug ( "Option \"%s\" requires an integer value\n",
p->found = FALSE;
}
else {
@@ -752,8 +754,7 @@ ParseOptionValue(int scrnIndex, pointer options, OptionInfoPtr p)
p->found = TRUE;
}
else {
- winDrvMsg(scrnIndex, X_WARNING,
- "Option \"%s\" requires an integer value\n",
+ winDebug ( "Option \"%s\" requires an integer value\n",
p->name);
p->found = FALSE;
}
@@ -761,8 +762,7 @@ ParseOptionValue(int scrnIndex, pointer options, OptionInfoPtr p)
break;
case OPTV_STRING:
if (*s == '\0') {
- winDrvMsg(scrnIndex, X_WARNING,
- "Option \"%s\" requires a string value\n", p->name);
+ winDebug ( "Option \"%s\" requires a string value\n", p->name);
p->found = FALSE;
}
else {
@@ -776,8 +776,7 @@ ParseOptionValue(int scrnIndex, pointer options, OptionInfoPtr p)
break;
case OPTV_REAL:
if (*s == '\0') {
- winDrvMsg(scrnIndex, X_WARNING,
- "Option \"%s\" requires a floating point value\n",
+ winDebug ( "Option \"%s\" requires a floating point value\n",
p->name);
p->found = FALSE;
}
@@ -787,8 +786,7 @@ ParseOptionValue(int scrnIndex, pointer options, OptionInfoPtr p)
p->found = TRUE;
}
else {
- winDrvMsg(scrnIndex, X_WARNING,
- "Option \"%s\" requires a floating point value\n",
+ winDebug ( "Option \"%s\" requires a floating point value\n",
p->name);
p->found = FALSE;
}
@@ -799,8 +797,7 @@ ParseOptionValue(int scrnIndex, pointer options, OptionInfoPtr p)
p->found = TRUE;
}
else {
- winDrvMsg(scrnIndex, X_WARNING,
- "Option \"%s\" requires a boolean value\n", p->name);
+ winDebug ( "Option \"%s\" requires a boolean value\n", p->name);
p->found = FALSE;
}
break;
@@ -826,8 +823,7 @@ ParseOptionValue(int scrnIndex, pointer options, OptionInfoPtr p)
}
case OPTV_FREQ:
if (*s == '\0') {
- winDrvMsg(scrnIndex, X_WARNING,
- "Option \"%s\" requires a frequency value\n",
+ winDebug ( "Option \"%s\" requires a frequency value\n",
p->name);
p->found = FALSE;
}
@@ -846,8 +842,7 @@ ParseOptionValue(int scrnIndex, pointer options, OptionInfoPtr p)
!winNameCompare(end, "M"))
units = 1000000;
else {
- winDrvMsg(scrnIndex, X_WARNING,
- "Option \"%s\" requires a frequency value\n",
+ winDebug ( "Option \"%s\" requires a frequency value\n",
p->name);
p->found = FALSE;
}
@@ -855,8 +850,7 @@ ParseOptionValue(int scrnIndex, pointer options, OptionInfoPtr p)
freq *= (double) units;
}
else {
- winDrvMsg(scrnIndex, X_WARNING,
- "Option \"%s\" requires a frequency value\n",
+ winDebug ( "Option \"%s\" requires a frequency value\n",
p->name);
p->found = FALSE;
}
@@ -872,11 +866,11 @@ ParseOptionValue(int scrnIndex, pointer options, OptionInfoPtr p)
break;
}
if (p->found) {
- winDrvMsgVerb(scrnIndex, X_CONFIG, 2, "Option \"%s\"", p->name);
+ winDebug ("Option \"%s\"", p->name);
if (!(p->type == OPTV_BOOLEAN && *s == 0)) {
- winErrorFVerb(2, " \"%s\"", s);
+ winDebug (" \"%s\"", s);
}
- winErrorFVerb(2, "\n");
+ winDebug ("\n");
}
}
else if (p->type == OPTV_BOOLEAN) {
@@ -909,8 +903,7 @@ ParseOptionValue(int scrnIndex, pointer options, OptionInfoPtr p)
p->found = TRUE;
}
else {
- winDrvMsg(scrnIndex, X_WARNING,
- "Option \"%s\" requires a boolean value\n", newn);
+ winDebug ( "Option \"%s\" requires a boolean value\n", newn);
p->found = FALSE;
}
}
@@ -918,11 +911,11 @@ ParseOptionValue(int scrnIndex, pointer options, OptionInfoPtr p)
p->found = FALSE;
}
if (p->found) {
- winDrvMsgVerb(scrnIndex, X_CONFIG, 2, "Option \"%s\"", newn);
+ winDebug ("Option \"%s\"", newn);
if (*s != 0) {
- winErrorFVerb(2, " \"%s\"", s);
+ winDebug (" \"%s\"", s);
}
- winErrorFVerb(2, "\n");
+ winDebug ("\n");
}
free(n);
}
diff --git a/xorg-server/hw/xwin/wincreatewnd.c b/xorg-server/hw/xwin/wincreatewnd.c
index 6732dcb58..597f6bc4e 100644
--- a/xorg-server/hw/xwin/wincreatewnd.c
+++ b/xorg-server/hw/xwin/wincreatewnd.c
@@ -60,10 +60,10 @@ winCreateBoundingWindowFullScreen(ScreenPtr pScreen)
HWND *phwnd = &pScreenPriv->hwndScreen;
WNDCLASSEX wc;
char szTitle[256];
+ char HostName[256];
+ gethostname(HostName,256);
-#if CYGDEBUG
winDebug("winCreateBoundingWindowFullScreen\n");
-#endif
/* Setup our window class */
wc.cbSize = sizeof(WNDCLASSEX);
@@ -91,12 +91,13 @@ winCreateBoundingWindowFullScreen(ScreenPtr pScreen)
snprintf(szTitle,
sizeof(szTitle),
WINDOW_TITLE_XDMCP,
- g_pszQueryHost, display, (int) pScreenInfo->dwScreen);
+ g_pszQueryHost, HostName, display, (int) pScreenInfo->dwScreen);
else
+ {
snprintf(szTitle,
sizeof(szTitle),
- WINDOW_TITLE, display, (int) pScreenInfo->dwScreen);
-
+ WINDOW_TITLE, HostName, display, (int) pScreenInfo->dwScreen);
+ }
/* Create the window */
*phwnd = CreateWindowExA(0, /* Extended styles */
WINDOW_CLASS, /* Class name */
@@ -153,6 +154,9 @@ winCreateBoundingWindowWindowed(ScreenPtr pScreen)
DWORD dwWindowStyle;
BOOL fForceShowWindow = FALSE;
char szTitle[256];
+ char HostName[256];
+
+ gethostname(HostName,256);
winDebug("winCreateBoundingWindowWindowed - User w: %d h: %d\n",
(int) pScreenInfo->dwUserWidth, (int) pScreenInfo->dwUserHeight);
@@ -244,10 +248,8 @@ winCreateBoundingWindowWindowed(ScreenPtr pScreen)
/* Did the user specify a height and width? */
if (pScreenInfo->fUserGaveHeightAndWidth) {
/* User gave a desired height and width, try to accomodate */
-#if CYGDEBUG
winDebug("winCreateBoundingWindowWindowed - User gave height "
"and width\n");
-#endif
/* Adjust the window width and height for borders and title bar */
if (pScreenInfo->fDecoration
@@ -259,27 +261,21 @@ winCreateBoundingWindowWindowed(ScreenPtr pScreen)
&& !pScreenInfo->fMultiWindow
#endif
) {
-#if CYGDEBUG
winDebug
("winCreateBoundingWindowWindowed - Window has decoration\n");
-#endif
/* Are we resizable */
if (pScreenInfo->iResizeMode != notAllowed) {
-#if CYGDEBUG
winDebug
("winCreateBoundingWindowWindowed - Window is resizable\n");
-#endif
iWidth += 2 * GetSystemMetrics(SM_CXSIZEFRAME);
iHeight += 2 * GetSystemMetrics(SM_CYSIZEFRAME)
+ GetSystemMetrics(SM_CYCAPTION);
}
else {
-#if CYGDEBUG
winDebug
("winCreateBoundingWindowWindowed - Window is not resizable\n");
-#endif
iWidth += 2 * GetSystemMetrics(SM_CXFIXEDFRAME);
iHeight += 2 * GetSystemMetrics(SM_CYFIXEDFRAME)
@@ -289,10 +285,8 @@ winCreateBoundingWindowWindowed(ScreenPtr pScreen)
}
else {
/* By default, we are creating a window that is as large as possible */
-#if CYGDEBUG
winDebug("winCreateBoundingWindowWindowed - User did not give "
"height and width\n");
-#endif
/* Defaults are wrong if we have multiple monitors */
if (pScreenInfo->fMultipleMonitors) {
iWidth = GetSystemMetrics(SM_CXVIRTUALSCREEN);
@@ -317,10 +311,8 @@ winCreateBoundingWindowWindowed(ScreenPtr pScreen)
if (iHeight >= (rcWorkArea.bottom - rcWorkArea.top))
iHeight = rcWorkArea.bottom - rcWorkArea.top;
-#if CYGDEBUG
winDebug("winCreateBoundingWindowWindowed - Adjusted width: %d "
"height: %d\n", iWidth, iHeight);
-#endif
}
/* Set display and screen-specific tooltip text */
@@ -328,11 +320,13 @@ winCreateBoundingWindowWindowed(ScreenPtr pScreen)
snprintf(szTitle,
sizeof(szTitle),
WINDOW_TITLE_XDMCP,
- g_pszQueryHost, display, (int) pScreenInfo->dwScreen);
+ g_pszQueryHost, HostName, display, (int) pScreenInfo->dwScreen);
else
+ {
snprintf(szTitle,
sizeof(szTitle),
- WINDOW_TITLE, display, (int) pScreenInfo->dwScreen);
+ WINDOW_TITLE, HostName, display, (int) pScreenInfo->dwScreen);
+ }
/* Create the window */
*phwnd = CreateWindowExA(0, /* Extended styles */
@@ -351,9 +345,7 @@ winCreateBoundingWindowWindowed(ScreenPtr pScreen)
return FALSE;
}
-#if CYGDEBUG
winDebug("winCreateBoundingWindowWindowed - CreateWindowEx () returned\n");
-#endif
if (fForceShowWindow) {
ErrorF
diff --git a/xorg-server/hw/xwin/wincursor.c b/xorg-server/hw/xwin/wincursor.c
index 2962d06ad..8e8c6fd3d 100644
--- a/xorg-server/hw/xwin/wincursor.c
+++ b/xorg-server/hw/xwin/wincursor.c
@@ -43,10 +43,9 @@
#define BRIGHTNESS(x) (x##Red * 0.299 + x##Green * 0.587 + x##Blue * 0.114)
-#if 0
-#define WIN_DEBUG_MSG winDebug
-#else
-#define WIN_DEBUG_MSG(...)
+#ifdef _MSC_VER
+#define min(a,b) (((a) < (b)) ? (a) : (b))
+#define max(a,b) (((a) > (b)) ? (a) : (b))
#endif
/*
@@ -82,7 +81,7 @@ winPointerWarpCursor(DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y)
/* Don't ignore subsequent warps */
s_fInitialWarp = FALSE;
- winErrorFVerb(2,
+ winDebug (
"winPointerWarpCursor - Discarding first warp: %d %d\n",
x, y);
@@ -164,7 +163,7 @@ winLoadCursor(ScreenPtr pScreen, CursorPtr pCursor, int screen)
BITMAPINFO *pbmi;
unsigned long *lpBits;
- WIN_DEBUG_MSG("winLoadCursor: Win32: %dx%d X11: %dx%d hotspot: %d,%d\n",
+ winDebug("winLoadCursor: Win32: %dx%d X11: %dx%d hotspot: %d,%d\n",
pScreenPriv->cursor.sm_cx, pScreenPriv->cursor.sm_cy,
pCursor->bits->width, pCursor->bits->height,
pCursor->bits->xhot, pCursor->bits->yhot);
@@ -178,7 +177,7 @@ winLoadCursor(ScreenPtr pScreen, CursorPtr pCursor, int screen)
/* Check wether the X11 cursor is bigger than the win32 cursor */
if (pScreenPriv->cursor.sm_cx < pCursor->bits->width ||
pScreenPriv->cursor.sm_cy < pCursor->bits->height) {
- winErrorFVerb(3,
+ ErrorF (
"winLoadCursor - Windows requires %dx%d cursor but X requires %dx%d\n",
pScreenPriv->cursor.sm_cx, pScreenPriv->cursor.sm_cy,
pCursor->bits->width, pCursor->bits->height);
@@ -242,7 +241,7 @@ winLoadCursor(ScreenPtr pScreen, CursorPtr pCursor, int screen)
/* We have a truecolor alpha-blended cursor and can use it! */
if (pCursor->bits->argb) {
- WIN_DEBUG_MSG("winLoadCursor: Trying truecolor alphablended cursor\n");
+ winDebug("winLoadCursor: Trying truecolor alphablended cursor\n");
memset(&bi, 0, sizeof(BITMAPV4HEADER));
bi.bV4Size = sizeof(BITMAPV4HEADER);
bi.bV4Width = pScreenPriv->cursor.sm_cx;
@@ -274,7 +273,7 @@ winLoadCursor(ScreenPtr pScreen, CursorPtr pCursor, int screen)
if (!lpBits) {
/* Bicolor, use a palettized DIB */
- WIN_DEBUG_MSG("winLoadCursor: Trying two color cursor\n");
+ winDebug("winLoadCursor: Trying two color cursor\n");
pbmi = (BITMAPINFO *) &bi;
memset(pbmi, 0, sizeof(BITMAPINFOHEADER));
pbmi->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
@@ -342,7 +341,7 @@ winLoadCursor(ScreenPtr pScreen, CursorPtr pCursor, int screen)
/* If one of the previous two methods gave us the bitmap we need, make a cursor */
if (lpBits) {
- WIN_DEBUG_MSG("winLoadCursor: Creating bitmap cursor: hotspot %d,%d\n",
+ winDebug("winLoadCursor: Creating bitmap cursor: hotspot %d,%d\n",
pCursor->bits->xhot, pCursor->bits->yhot);
hAnd = NULL;
@@ -372,13 +371,12 @@ winLoadCursor(ScreenPtr pScreen, CursorPtr pCursor, int screen)
hCursor = (HCURSOR) CreateIconIndirect(&ii);
if (hCursor == NULL)
- winW32Error(2, "winLoadCursor - CreateIconIndirect failed:");
+ winW32Error("winLoadCursor - CreateIconIndirect failed:");
else {
if (GetIconInfo(hCursor, &ii)) {
if (ii.fIcon) {
- WIN_DEBUG_MSG
+ winDebug
("winLoadCursor: CreateIconIndirect returned no cursor. Trying again.\n");
-
DestroyCursor(hCursor);
ii.fIcon = FALSE;
@@ -387,7 +385,7 @@ winLoadCursor(ScreenPtr pScreen, CursorPtr pCursor, int screen)
hCursor = (HCURSOR) CreateIconIndirect(&ii);
if (hCursor == NULL)
- winW32Error(2,
+ winW32Error(
"winLoadCursor - CreateIconIndirect failed:");
}
/* GetIconInfo creates new bitmaps. Destroy them again */
@@ -413,7 +411,7 @@ winLoadCursor(ScreenPtr pScreen, CursorPtr pCursor, int screen)
pScreenPriv->cursor.sm_cx,
pScreenPriv->cursor.sm_cy, pAnd, pXor);
if (hCursor == NULL)
- winW32Error(2, "winLoadCursor - CreateCursor failed:");
+ winW32Error("winLoadCursor - CreateCursor failed:");
}
free(pAnd);
free(pXor);
@@ -468,7 +466,7 @@ winSetCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor, int x,
BOOL bInhibit;
winScreenPriv(pScreen);
- WIN_DEBUG_MSG("winSetCursor: cursor=%p\n", pCursor);
+ winDebug("winSetCursor: cursor=%p\n", pCursor);
/* Inhibit changing the cursor if the mouse is not in a client area */
bInhibit = FALSE;
@@ -510,7 +508,7 @@ winSetCursor(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor, int x,
}
pScreenPriv->cursor.handle =
winLoadCursor(pScreen, pCursor, pScreen->myNum);
- WIN_DEBUG_MSG("winSetCursor: handle=%p\n", pScreenPriv->cursor.handle);
+ winDebug("winSetCursor: handle=%p\n", pScreenPriv->cursor.handle);
if (!bInhibit)
SetCursor(pScreenPriv->cursor.handle);
@@ -601,9 +599,11 @@ winInitCursor(ScreenPtr pScreen)
pPointPriv = (miPointerScreenPtr)
dixLookupPrivate(&pScreen->devPrivates, miPointerScreenKey);
- pScreenPriv->cursor.spriteFuncs = pPointPriv->spriteFuncs;
- pPointPriv->spriteFuncs = &winSpriteFuncsRec;
-
+ if (pPointPriv)
+ {
+ pScreenPriv->cursor.spriteFuncs = pPointPriv->spriteFuncs;
+ pPointPriv->spriteFuncs = &winSpriteFuncsRec;
+ }
pScreenPriv->cursor.handle = NULL;
pScreenPriv->cursor.visible = FALSE;
diff --git a/xorg-server/hw/xwin/windialogs.c b/xorg-server/hw/xwin/windialogs.c
index 054ee95b5..3e3bd401c 100644
--- a/xorg-server/hw/xwin/windialogs.c
+++ b/xorg-server/hw/xwin/windialogs.c
@@ -189,8 +189,8 @@ winInitDialog(HWND hwndDlg)
*/
if (GetSystemMetrics(SM_CMONITORS) > 1) {
/* Still need to refresh the frame change. */
- SetWindowPos(hwndDlg, HWND_TOPMOST, 0, 0, 0, 0,
- SWP_NOMOVE | SWP_NOSIZE | SWP_FRAMECHANGED);
+ SetWindowPos (hwndDlg, HWND_TOP, 0,0,0,0,
+ SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED);
}
else {
GetWindowRect(hwndDesk, &rcDesk);
@@ -229,12 +229,8 @@ winInitDialog(HWND hwndDlg)
PostMessage(hwndDlg, WM_SETICON, ICON_SMALL, (LPARAM) hIconSmall);
}
-/*
- * Display the Exit dialog box
- */
-
-void
-winDisplayExitDialog(winPrivScreenPtr pScreenPriv)
+int
+GetLiveClients (winPrivScreenPtr pScreenPriv)
{
int i;
int liveClients = 0;
@@ -257,6 +253,20 @@ winDisplayExitDialog(winPrivScreenPtr pScreenPriv)
if (liveClients < 0)
liveClients = 0;
+ pScreenPriv->iConnectedClients = liveClients;
+
+ return liveClients;
+}
+
+/*
+ * Display the Exit dialog box
+ */
+
+void
+winDisplayExitDialog (winPrivScreenPtr pScreenPriv)
+{
+ int liveClients = GetLiveClients(pScreenPriv);
+
/* Don't show the exit confirmation dialog if SilentExit & no clients,
or ForceExit, is enabled */
if ((pref.fSilentExit && liveClients <= 0) || pref.fForceExit) {
@@ -268,8 +278,6 @@ winDisplayExitDialog(winPrivScreenPtr pScreenPriv)
return;
}
- pScreenPriv->iConnectedClients = liveClients;
-
/* Check if dialog already exists */
if (g_hDlgExit != NULL) {
/* Dialog box already exists, display it */
@@ -428,50 +436,40 @@ winChangeDepthDlgProc(HWND hwndDialog, UINT message,
static winPrivScreenPtr s_pScreenPriv = NULL;
static winScreenInfo *s_pScreenInfo = NULL;
-#if CYGDEBUG
winDebug("winChangeDepthDlgProc\n");
-#endif
/* Branch on message type */
switch (message) {
case WM_INITDIALOG:
-#if CYGDEBUG
winDebug("winChangeDepthDlgProc - WM_INITDIALOG\n");
-#endif
/* Store pointers to private structures for future use */
s_pScreenPriv = (winPrivScreenPtr) lParam;
s_pScreenInfo = s_pScreenPriv->pScreenInfo;
-#if CYGDEBUG
winDebug("winChangeDepthDlgProc - WM_INITDIALOG - s_pScreenPriv: %08x, "
"s_pScreenInfo: %08x\n",
s_pScreenPriv, s_pScreenInfo);
-#endif
-#if CYGDEBUG
winDebug("winChangeDepthDlgProc - WM_INITDIALOG - orig bpp: %d, "
"current bpp: %d\n",
s_pScreenInfo->dwBPP,
GetDeviceCaps(s_pScreenPriv->hdcScreen, BITSPIXEL));
-#endif
winInitDialog(hwndDialog);
return TRUE;
case WM_DISPLAYCHANGE:
-#if CYGDEBUG
winDebug("winChangeDepthDlgProc - WM_DISPLAYCHANGE - orig bpp: %d, "
"new bpp: %d\n",
s_pScreenInfo->dwBPP,
GetDeviceCaps(s_pScreenPriv->hdcScreen, BITSPIXEL));
-#endif
/* Dismiss the dialog if the display returns to the original depth */
if (GetDeviceCaps(s_pScreenPriv->hdcScreen, BITSPIXEL) ==
s_pScreenInfo->dwBPP) {
- ErrorF("winChangeDelthDlgProc - wParam == s_pScreenInfo->dwBPP\n");
+ winDebug ("winChangeDelthDlgProc - wParam == s_pScreenInfo->dwBPP\n");
/* Depth has been restored, dismiss dialog */
DestroyWindow(g_hDlgDepthChange);
@@ -557,16 +555,12 @@ winAboutDlgProc(HWND hwndDialog, UINT message, WPARAM wParam, LPARAM lParam)
{
static winPrivScreenPtr s_pScreenPriv = NULL;
-#if CYGDEBUG
winDebug("winAboutDlgProc\n");
-#endif
/* Branch on message type */
switch (message) {
case WM_INITDIALOG:
-#if CYGDEBUG
winDebug("winAboutDlgProc - WM_INITDIALOG\n");
-#endif
/* Store pointer to private structure for future use */
s_pScreenPriv = (winPrivScreenPtr) lParam;
diff --git a/xorg-server/hw/xwin/windisplay.c b/xorg-server/hw/xwin/windisplay.c
new file mode 100644
index 000000000..db7b2f4d8
--- /dev/null
+++ b/xorg-server/hw/xwin/windisplay.c
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) Jon TURNEY 2009
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ */
+
+#ifdef HAVE_XWIN_CONFIG_H
+#include <xwin-config.h>
+#endif
+#include "win.h"
+
+#include <X11/Xwindows.h>
+
+/*
+ Generate a display name string referring to the display of this server,
+ using a transport we know is enabled
+*/
+
+void
+winGetDisplayName(char *szDisplay, unsigned int screen)
+{
+ if (TransIsListening("local"))
+ {
+ snprintf(szDisplay, 512, ":%s.%d", display, screen);
+ }
+ else if (TransIsListening("inet"))
+ {
+ snprintf(szDisplay, 512, "127.0.0.1:%s.%d", display, screen);
+ }
+ else if (TransIsListening("inet6"))
+ {
+ snprintf(szDisplay, 512, "[::1]:%s.%d", display, screen);
+ }
+ else
+ {
+ // this can't happen!
+ winDebug ("winGetDisplay: Don't know what to use for DISPLAY\n");
+ snprintf(szDisplay, 512, "localhost:%s.%d", display, screen);
+ }
+
+ winDebug ("winGetDisplay: DISPLAY=%s\n", szDisplay);
+}
diff --git a/xorg-server/hw/xwin/winengine.c b/xorg-server/hw/xwin/winengine.c
index 1f55ada58..e597e2c49 100644
--- a/xorg-server/hw/xwin/winengine.c
+++ b/xorg-server/hw/xwin/winengine.c
@@ -85,13 +85,13 @@ winDetectSupportedEngines(void)
ddrval = (*g_fpDirectDrawCreate) (NULL, (void **) &lpdd, NULL);
if (FAILED(ddrval)) {
/* No DirectDraw support */
- winErrorFVerb(2,
+ winDebug (
"winDetectSupportedEngines - DirectDraw not installed\n");
return;
}
else {
/* We have DirectDraw */
- winErrorFVerb(2,
+ winDebug (
"winDetectSupportedEngines - DirectDraw installed, allowing ShadowDD\n");
g_dwEnginesSupported |= WIN_SERVER_SHADOW_DD;
@@ -99,7 +99,7 @@ winDetectSupportedEngines(void)
/* Allow PrimaryDD engine if NT */
if (osvi.dwPlatformId == VER_PLATFORM_WIN32_NT) {
g_dwEnginesSupported |= WIN_SERVER_PRIMARY_DD;
- winErrorFVerb(2,
+ winDebug (
"winDetectSupportedEngines - Windows NT, allowing PrimaryDD\n");
}
#endif
@@ -111,7 +111,7 @@ winDetectSupportedEngines(void)
(LPVOID *) &lpdd4);
if (SUCCEEDED(ddrval)) {
/* We have DirectDraw4 */
- winErrorFVerb(2,
+ winDebug (
"winDetectSupportedEngines - DirectDraw4 installed, allowing ShadowDDNL\n");
g_dwEnginesSupported |= WIN_SERVER_SHADOW_DDNL;
}
@@ -123,7 +123,7 @@ winDetectSupportedEngines(void)
IDirectDraw_Release(lpdd);
}
- winErrorFVerb(2,
+ winDebug (
"winDetectSupportedEngines - Returning, supported engines %08x\n",
(unsigned int) g_dwEnginesSupported);
}
@@ -162,7 +162,7 @@ winSetEngine(ScreenPtr pScreen)
/* ShadowGDI is the only engine that supports windowed PseudoColor */
if (dwBPP == 8 && !pScreenInfo->fFullScreen) {
- winErrorFVerb(2,
+ winDebug (
"winSetEngine - Windowed && PseudoColor => ShadowGDI\n");
pScreenInfo->dwEngine = WIN_SERVER_SHADOW_GDI;
@@ -180,7 +180,7 @@ winSetEngine(ScreenPtr pScreen)
|| pScreenInfo->fMultiWindow
#endif
) {
- winErrorFVerb(2,
+ winDebug (
"winSetEngine - Multi Window or Rootless => ShadowGDI\n");
pScreenInfo->dwEngine = WIN_SERVER_SHADOW_GDI;
@@ -189,9 +189,9 @@ winSetEngine(ScreenPtr pScreen)
return TRUE;
}
- /* If the user's choice is supported, we'll use that */
- if (g_dwEnginesSupported & pScreenInfo->dwEnginePreferred) {
- winErrorFVerb(2, "winSetEngine - Using user's preference: %d\n",
+ /* If there is a user's choice, we'll use that */
+ if (pScreenInfo->dwEnginePreferred) {
+ winDebug ("winSetEngine - Using user's preference: %d\n",
(int) pScreenInfo->dwEnginePreferred);
pScreenInfo->dwEngine = pScreenInfo->dwEnginePreferred;
@@ -217,14 +217,14 @@ winSetEngine(ScreenPtr pScreen)
break;
#endif
default:
- FatalError("winSetEngine - Invalid engine type\n");
+ FatalError ("winSetEngine - Invalid engine type %d\n",pScreenInfo->dwEngine);
}
return TRUE;
}
/* ShadowDDNL has good performance, so why not */
if (g_dwEnginesSupported & WIN_SERVER_SHADOW_DDNL) {
- winErrorFVerb(2, "winSetEngine - Using Shadow DirectDraw NonLocking\n");
+ winDebug ("winSetEngine - Using Shadow DirectDraw NonLocking\n");
pScreenInfo->dwEngine = WIN_SERVER_SHADOW_DDNL;
/* Set engine function pointers */
@@ -234,7 +234,7 @@ winSetEngine(ScreenPtr pScreen)
/* ShadowDD is next in line */
if (g_dwEnginesSupported & WIN_SERVER_SHADOW_DD) {
- winErrorFVerb(2, "winSetEngine - Using Shadow DirectDraw\n");
+ winDebug ("winSetEngine - Using Shadow DirectDraw\n");
pScreenInfo->dwEngine = WIN_SERVER_SHADOW_DD;
/* Set engine function pointers */
@@ -244,7 +244,7 @@ winSetEngine(ScreenPtr pScreen)
/* ShadowGDI is next in line */
if (g_dwEnginesSupported & WIN_SERVER_SHADOW_GDI) {
- winErrorFVerb(2, "winSetEngine - Using Shadow GDI DIB\n");
+ winDebug ("winSetEngine - Using Shadow GDI DIB\n");
pScreenInfo->dwEngine = WIN_SERVER_SHADOW_GDI;
/* Set engine function pointers */
diff --git a/xorg-server/hw/xwin/winerror.c b/xorg-server/hw/xwin/winerror.c
index 1318b0f36..859a66834 100644
--- a/xorg-server/hw/xwin/winerror.c
+++ b/xorg-server/hw/xwin/winerror.c
@@ -35,6 +35,7 @@
#include <../xfree86/common/xorgVersion.h>
#include "win.h"
+extern Bool g_fSilentDupError;
#ifdef DDXOSVERRORF
void
OsVendorVErrorF(const char *pszFormat, va_list va_args)
@@ -48,6 +49,24 @@ OsVendorVErrorF(const char *pszFormat, va_list va_args)
pthread_mutex_lock(&s_pmPrinting);
#endif
+ /*
+ If we want to silence it,
+ detect if we are going to abort due to duplication error
+ */
+ if (g_fSilentDupError)
+ {
+ if ((strcmp(pszFormat,
+ "InitOutput - Duplicate invocation on display "
+ "number: %s. Exiting.\n") == 0)
+ || (strcmp(pszFormat,
+ "Server is already active for display %s\n%s %s\n%s\n") == 0)
+ || (strcmp(pszFormat,
+ "MakeAllCOTSServerListeners: server already running\n") == 0))
+ {
+ g_fSilentFatalError = TRUE;
+ }
+ }
+
/* Print the error message to a log file, could be stderr */
LogVWrite(0, pszFormat, va_args);
@@ -64,11 +83,10 @@ OsVendorVErrorF(const char *pszFormat, va_list va_args)
*
* Attempt to do last-ditch, safe, important cleanup here.
*/
+char g_FatalErrorMessage[1024];
void
OsVendorFatalError(const char *f, va_list args)
{
- char errormsg[1024] = "";
-
/* Don't give duplicate warning if UseMsg was called */
if (g_fSilentFatalError)
return;
@@ -79,9 +97,6 @@ OsVendorFatalError(const char *f, va_list args)
}
LogClose(EXIT_ERR_ABORT);
- /* Format the error message */
- vsnprintf(errormsg, sizeof(errormsg), f, args);
-
/*
Sometimes the error message needs a bit of cosmetic cleaning
up for use in a dialog box...
@@ -89,7 +104,7 @@ OsVendorFatalError(const char *f, va_list args)
{
char *s;
- while ((s = strstr(errormsg, "\n\t")) != NULL) {
+ while ((s = strstr(g_FatalErrorMessage, "\n\t")) != NULL) {
s[0] = ' ';
s[1] = '\n';
}
@@ -99,7 +114,7 @@ OsVendorFatalError(const char *f, va_list args)
"%s\n\n"
"Please open %s for more information.\n",
MB_ICONERROR,
- errormsg,
+ g_FatalErrorMessage,
(g_pszLogFile ? g_pszLogFile : "the logfile"));
}
diff --git a/xorg-server/hw/xwin/winfont.c b/xorg-server/hw/xwin/winfont.c
index 7bcbce1c7..e7356486d 100644
--- a/xorg-server/hw/xwin/winfont.c
+++ b/xorg-server/hw/xwin/winfont.c
@@ -43,9 +43,7 @@ winRealizeFontNativeGDI(ScreenPtr pScreen, FontPtr pFont)
winScreenPriv(pScreen);
-#if CYGDEBUG
- winTrace("winRealizeFont (%p, %p)\n", pScreen, pFont);
-#endif
+ winDebug("winRealizeFont (%p, %p)\n", pScreen, pFont);
WIN_UNWRAP(RealizeFont);
if (pScreen->RealizeFont)
@@ -64,9 +62,7 @@ winUnrealizeFontNativeGDI(ScreenPtr pScreen, FontPtr pFont)
winScreenPriv(pScreen);
-#if CYGDEBUG
- winTrace("winUnrealizeFont (%p, %p)\n", pScreen, pFont);
-#endif
+ winDebug("winUnrealizeFont (%p, %p)\n", pScreen, pFont);
WIN_UNWRAP(UnrealizeFont);
if (pScreen->UnrealizeFont)
@@ -74,9 +70,5 @@ winUnrealizeFontNativeGDI(ScreenPtr pScreen, FontPtr pFont)
WIN_WRAP(UnrealizeFont, winUnrealizeFontNativeGDI);
return fResult;
-#if CYGDEBUG
- winDebug("winUnrealizeFont()\n");
-#endif
- return TRUE;
}
#endif
diff --git a/xorg-server/hw/xwin/wingc.c b/xorg-server/hw/xwin/wingc.c
index 814d53113..aba398d0a 100644
--- a/xorg-server/hw/xwin/wingc.c
+++ b/xorg-server/hw/xwin/wingc.c
@@ -37,46 +37,13 @@
* Local prototypes
*/
-#if 0
-static void
- winChangeGCNativeGDI(GCPtr pGC, unsigned long ulChanges);
-#endif
-
static void
winValidateGCNativeGDI(GCPtr pGC, unsigned long changes, DrawablePtr pDrawable);
-#if 0
-static void
- winCopyGCNativeGDI(GCPtr pGCsrc, unsigned long ulMask, GCPtr pGCdst);
-#endif
-
static void
winDestroyGCNativeGDI(GCPtr pGC);
-#if 0
-static void
- winChangeClipNativeGDI(GCPtr pGC, int nType, pointer pValue, int nRects);
-
-static void
- winDestroyClipNativeGDI(GCPtr pGC);
-
-static void
- winCopyClipNativeGDI(GCPtr pGCdst, GCPtr pGCsrc);
-#endif
-
-#if 0
-/* GC Handling Routines */
-const GCFuncs winGCFuncs = {
- winValidateGCNativeGDI,
- winChangeGCNativeGDI,
- winCopyGCNativeGDI,
- winDestroyGCNativeGDI,
- winChangeClipNativeGDI,
- winDestroyClipNativeGDI,
- winCopyClipNativeGDI,
-};
-#else
const GCFuncs winGCFuncs = {
winValidateGCNativeGDI,
miChangeGC,
@@ -86,7 +53,6 @@ const GCFuncs winGCFuncs = {
miDestroyClip,
miCopyClip,
};
-#endif
/* Drawing Primitives */
const GCOps winGCOps = {
@@ -107,13 +73,8 @@ const GCOps winGCOps = {
miPolyText16,
miImageText8,
miImageText16,
-#if 0
- winImageGlyphBltNativeGDI,
- winPolyGlyphBltNativeGDI,
-#else
miImageGlyphBlt,
miPolyGlyphBlt,
-#endif
miPushPixels,
};
@@ -126,9 +87,7 @@ winCreateGCNativeGDI(GCPtr pGC)
winPrivGCPtr pGCPriv = NULL;
winPrivScreenPtr pScreenPriv = NULL;
-#if 0
- ErrorF("winCreateGCNativeGDI - depth: %d\n", pGC->depth);
-#endif
+ winDebug ("winCreateGCNativeGDI - depth: %d\n", pGC->depth);
pGC->ops = (GCOps *) &winGCOps;
pGC->funcs = (GCFuncs *) &winGCFuncs;
@@ -153,17 +112,6 @@ winCreateGCNativeGDI(GCPtr pGC)
return TRUE;
}
-#if 0
-/* See Porting Layer Definition - p. 45 */
-static void
-winChangeGCNativeGDI(GCPtr pGC, unsigned long ulChanges)
-{
-#if 0
- ErrorF("winChangeGCNativeGDI () - Doing nothing\n");
-#endif
-}
-#endif
-
static void
winValidateGCNativeGDI(GCPtr pGC,
unsigned long ulChanges, DrawablePtr pDrawable)
@@ -176,15 +124,6 @@ winValidateGCNativeGDI(GCPtr pGC,
}
}
-#if 0
-/* See Porting Layer Definition - p. 46 */
-static void
-winCopyGCNativeGDI(GCPtr pGCsrc, unsigned long ulMask, GCPtr pGCdst)
-{
-
-}
-#endif
-
/* See Porting Layer Definition - p. 46 */
static void
winDestroyGCNativeGDI(GCPtr pGC)
@@ -210,26 +149,3 @@ winDestroyGCNativeGDI(GCPtr pGC)
/* Invalidate the GC privates pointer */
winSetGCPriv(pGC, NULL);
}
-
-#if 0
-/* See Porting Layer Definition - p. 46 */
-static void
-winChangeClipNativeGDI(GCPtr pGC, int nType, pointer pValue, int nRects)
-{
-
-}
-
-/* See Porting Layer Definition - p. 47 */
-static void
-winDestroyClipNativeGDI(GCPtr pGC)
-{
-
-}
-
-/* See Porting Layer Definition - p. 47 */
-static void
-winCopyClipNativeGDI(GCPtr pGCdst, GCPtr pGCsrc)
-{
-
-}
-#endif
diff --git a/xorg-server/hw/xwin/wingetsp.c b/xorg-server/hw/xwin/wingetsp.c
index 049e2c939..1076b5cc5 100644
--- a/xorg-server/hw/xwin/wingetsp.c
+++ b/xorg-server/hw/xwin/wingetsp.c
@@ -57,9 +57,7 @@ winGetSpansNativeGDI(DrawablePtr pDrawable,
/* Branch on the drawable type */
switch (pDrawable->type) {
case DRAWABLE_PIXMAP:
-#if 0
- ErrorF("winGetSpans - DRAWABLE_PIXMAP %08x\n", pDrawable);
-#endif
+ winDebug ("winGetSpans - DRAWABLE_PIXMAP %08x\n", pDrawable);
pPixmap = (PixmapPtr) pDrawable;
pPixmapPriv = winGetPixmapPriv(pPixmap);
@@ -98,12 +96,6 @@ winGetSpansNativeGDI(DrawablePtr pDrawable,
SelectObject(hdcMem, hbmpOrig);
DeleteObject(hbmpWindow);
-#if 0
- ErrorF("(%dx%dx%d) (%d,%d) w: %d\n",
- pDrawable->width, pDrawable->height, pDrawable->depth,
- pPoint->x, pPoint->y, *piWidth);
-#endif
-
/* Calculate offset of next bit destination */
pDst += PixmapBytePad(*piWidth, pDrawable->depth);
}
@@ -117,9 +109,6 @@ winGetSpansNativeGDI(DrawablePtr pDrawable,
break;
case DRAWABLE_WINDOW:
-#if 0
- ErrorF("winGetSpans - DRAWABLE_WINDOW\n");
-#endif
/* Open a memory HDC */
hdcMem = CreateCompatibleDC(NULL);
@@ -150,12 +139,6 @@ winGetSpansNativeGDI(DrawablePtr pDrawable,
DeleteObject(hbmpWindow);
-#if 0
- ErrorF("(%dx%dx%d) (%d,%d) w: %d\n",
- pDrawable->width, pDrawable->height, pDrawable->depth,
- pPoint->x, pPoint->y, *piWidth);
-#endif
-
/* Calculate offset of next bit destination */
pDst += PixmapBytePad(*piWidth, pDrawable->depth);
}
diff --git a/xorg-server/hw/xwin/winglobals.c b/xorg-server/hw/xwin/winglobals.c
index b3ca29592..59287cadb 100644
--- a/xorg-server/hw/xwin/winglobals.c
+++ b/xorg-server/hw/xwin/winglobals.c
@@ -78,6 +78,7 @@ Bool g_fNoHelpMessageBox = FALSE;
Bool g_fSoftwareCursor = FALSE;
Bool g_fSilentDupError = FALSE;
Bool g_fNativeGl = TRUE;
+Bool g_fswrastwgl = FALSE;
pthread_mutex_t g_pmTerminating = PTHREAD_MUTEX_INITIALIZER;
#ifdef XWIN_CLIPBOARD
@@ -85,7 +86,6 @@ pthread_mutex_t g_pmTerminating = PTHREAD_MUTEX_INITIALIZER;
* Wrapped DIX functions
*/
winDispatchProcPtr winProcEstablishConnectionOrig = NULL;
-winDispatchProcPtr winProcQueryTreeOrig = NULL;
winDispatchProcPtr winProcSetSelectionOwnerOrig = NULL;
/*
@@ -94,6 +94,7 @@ winDispatchProcPtr winProcSetSelectionOwnerOrig = NULL;
Bool g_fUnicodeClipboard = TRUE;
Bool g_fClipboard = TRUE;
+Bool g_fClipboardPrimary = TRUE;
Bool g_fClipboardLaunched = FALSE;
Bool g_fClipboardStarted = FALSE;
pthread_t g_ptClipboardProc;
@@ -103,6 +104,11 @@ Window g_iClipboardWindow = None;
Atom g_atomLastOwnedSelection = None;
#endif
+const char WIN_WINDOW_PROP[]= "vcxsrv_window_prop_rl";
+const char WIN_WID_PROP[]= "vcxsrv_wid_prop_rl";
+const char WIN_NEEDMANAGE_PROP[]= "vcxsrv_override_redirect_prop_rl";
+const char WIN_SCR_PROP[]= "vcxsrv_screen_prop_rl";
+
/*
* Re-initialize global variables that are invalidated
* by a server reset.
diff --git a/xorg-server/hw/xwin/winglobals.h b/xorg-server/hw/xwin/winglobals.h
index e7e2f7e20..75707b460 100644
--- a/xorg-server/hw/xwin/winglobals.h
+++ b/xorg-server/hw/xwin/winglobals.h
@@ -30,6 +30,8 @@
#include <xwin-config.h>
#endif
+#include <pthread.h>
+
/*
* References to external symbols
*/
@@ -52,6 +54,7 @@ extern Bool g_fXdmcpEnabled;
extern Bool g_fNoHelpMessageBox;
extern Bool g_fSilentDupError;
extern Bool g_fNativeGl;
+extern Bool g_fswrastwgl;
extern HWND g_hDlgDepthChange;
extern HWND g_hDlgExit;
@@ -69,7 +72,6 @@ typedef int (*winDispatchProcPtr) (ClientPtr);
* Wrapped DIX functions
*/
extern winDispatchProcPtr winProcEstablishConnectionOrig;
-extern winDispatchProcPtr winProcQueryTreeOrig;
extern winDispatchProcPtr winProcSetSelectionOwnerOrig;
#endif
diff --git a/xorg-server/hw/xwin/winkeybd.c b/xorg-server/hw/xwin/winkeybd.c
index 9c5d4e9cd..54e1847d7 100644
--- a/xorg-server/hw/xwin/winkeybd.c
+++ b/xorg-server/hw/xwin/winkeybd.c
@@ -156,7 +156,7 @@ winKeybdProc(DeviceIntPtr pDeviceInt, int iState)
/* FIXME: Maybe we should use winGetKbdLeds () here? */
defaultKeyboardControl.leds = g_winInfo.keyboard.leds;
- winErrorFVerb(2, "Rules = \"%s\" Model = \"%s\" Layout = \"%s\""
+ winDebug("Rules = \"%s\" Model = \"%s\" Layout = \"%s\""
" Variant = \"%s\" Options = \"%s\"\n",
g_winInfo.xkb.rules ? g_winInfo.xkb.rules : "none",
g_winInfo.xkb.model ? g_winInfo.xkb.model : "none",
@@ -174,8 +174,7 @@ winKeybdProc(DeviceIntPtr pDeviceInt, int iState)
ctrl->repeat_interval = 1000 / g_winInfo.keyboard.rate;
}
else {
- winErrorFVerb(1,
- "winKeybdProc - Error initializing keyboard AutoRepeat\n");
+ winDebug ("winKeybdProc - Error initializing keyboard AutoRepeat\n");
}
break;
@@ -265,6 +264,21 @@ winRestoreModeKeyStates(void)
XkbStateFieldFromRec(&inputInfo.keyboard->key->xkbInfo->state);
winDebug("winRestoreModeKeyStates: state %d\n", internalKeyStates);
+ {
+ /* Make sure the message queue is empty, otherwise the GetKeyState will not always
+ return the correct state of the numlock key, capslock key, ...
+ This is mainly because this function is called from the WM_SETFOCUS handler.
+ From MSDN GetKeyState: The key status returned from this function changes as a thread
+ reads key messages from its message queue.*/
+ MSG msg;
+
+ /* Process all messages on our queue */
+ while (PeekMessage (&msg, NULL, 0, 0, PM_REMOVE))
+ {
+ DispatchMessage (&msg);
+ }
+ }
+
/* Check if modifier keys are pressed, and if so, fake a press */
{
diff --git a/xorg-server/hw/xwin/winkeybd.h b/xorg-server/hw/xwin/winkeybd.h
index 6701f0959..545aef751 100644
--- a/xorg-server/hw/xwin/winkeybd.h
+++ b/xorg-server/hw/xwin/winkeybd.h
@@ -39,8 +39,10 @@
#define WIN_KEYMAP_COLS 3
-/* Rows 160 through 165 correspond to software-generated codes, which
- * may not be associated with the appropriate scan code.
+/* ASCII column, rows 33 through 40 are for Speech Recognition with
+ * num-lock asserted.
+ * Rows 160 through 165 correspond to software-generated codes, which
+ * may not be associated with the appropriate scan code/extended bit
*/
const int
g_iKeyMap[] = {
@@ -78,14 +80,14 @@ const int
/* 30 */ 0, 0, 0,
/* 31 */ 0, 0, 0,
/* 32 */ 0, 0, 0,
- /* 33 */ VK_PRIOR, 0, KEY_PgUp,
- /* 34 */ VK_NEXT, 0, KEY_PgDown,
- /* 35 */ VK_END, 0, KEY_End,
- /* 36 */ VK_HOME, 0, KEY_Home,
- /* 37 */ VK_LEFT, 0, KEY_Left,
- /* 38 */ VK_UP, 0, KEY_Up,
- /* 39 */ VK_RIGHT, 0, KEY_Right,
- /* 40 */ VK_DOWN, 0, KEY_Down,
+ /* 33 */ VK_PRIOR, KEY_PgUp, KEY_PgUp,
+ /* 34 */ VK_NEXT, KEY_PgDown, KEY_PgDown,
+ /* 35 */ VK_END, KEY_End, KEY_End,
+ /* 36 */ VK_HOME, KEY_Home, KEY_Home,
+ /* 37 */ VK_LEFT, KEY_Left, KEY_Left,
+ /* 38 */ VK_UP, KEY_Up, KEY_Up,
+ /* 39 */ VK_RIGHT, KEY_Right, KEY_Right,
+ /* 40 */ VK_DOWN, KEY_Down, KEY_Down,
/* 41 */ 0, 0, 0,
/* 42 */ 0, 0, 0,
/* 43 */ 0, 0, 0,
@@ -205,12 +207,12 @@ const int
/* 157 */ 0, 0, 0,
/* 158 */ 0, 0, 0,
/* 159 */ 0, 0, 0,
- /* 160 */ VK_LSHIFT, KEY_ShiftL, 0,
- /* 161 */ VK_RSHIFT, KEY_ShiftR, 0,
- /* 162 */ VK_LCONTROL, KEY_LCtrl, 0,
- /* 163 */ VK_RCONTROL, KEY_RCtrl, 0,
- /* 164 */ VK_LMENU, KEY_Alt, 0,
- /* 165 */ VK_RMENU, KEY_AltLang, 0,
+ /* 160 */ VK_LSHIFT, KEY_ShiftL, KEY_ShiftL,
+ /* 161 */ VK_RSHIFT, KEY_ShiftR, KEY_ShiftR,
+ /* 162 */ VK_LCONTROL, KEY_LCtrl, KEY_LCtrl,
+ /* 163 */ VK_RCONTROL, KEY_RCtrl, KEY_RCtrl,
+ /* 164 */ VK_LMENU, KEY_Alt, KEY_Alt,
+ /* 165 */ VK_RMENU, KEY_AltLang, KEY_AltLang,
/* 166 */ 0, 0, 0,
/* 167 */ 0, 0, 0,
/* 168 */ 0, 0, 0,
@@ -268,7 +270,7 @@ const int
/* 220 */ 0, 0, 0,
/* 221 */ 0, 0, 0,
/* 222 */ 0, 0, 0,
- /* 223 */ VK_OEM_8, 0, KEY_RCtrl,
+ /* 223 */ VK_OEM_8, 0, KEY_RCtrl,
/* at least on Canadian Multilingual Standard layout */
/* 224 */ 0, 0, 0,
/* 225 */ 0, 0, 0,
@@ -301,7 +303,7 @@ const int
/* 252 */ 0, 0, 0,
/* 253 */ 0, 0, 0,
/* 254 */ 0, 0, 0,
- /* 255 */ VK_FN, 0, KEY_Fn
+ /* 255 */ VK_FN, 0, KEY_Fn
/* Most keyboards don't generate a scancode for Fn, but a few do... */
};
diff --git a/xorg-server/hw/xwin/winlayouts.h b/xorg-server/hw/xwin/winlayouts.h
index 8b6b98407..0aae18b00 100644
--- a/xorg-server/hw/xwin/winlayouts.h
+++ b/xorg-server/hw/xwin/winlayouts.h
@@ -64,6 +64,7 @@ WinKBLayoutRec winKBLayouts[] = {
{0x0000040b, -1, "pc105", "fi", NULL, NULL, "Finnish"},
{0x0000040c, -1, "pc105", "fr", NULL, NULL, "French (Standard)"},
{0x0000080c, -1, "pc105", "be", NULL, NULL, "French (Belgian)"},
+ {0x0001080c, -1, "pc105", "be", NULL, NULL, "Belgian (Comma)"},
{0x00000c0c, -1, "pc105", "ca", "fr-legacy", NULL,
"French (Canada, Legacy)"},
{0x0000100c, -1, "pc105", "ch", "fr", NULL, "French (Switzerland)"},
diff --git a/xorg-server/hw/xwin/winmisc.c b/xorg-server/hw/xwin/winmisc.c
index 10f97322f..f810ed073 100644
--- a/xorg-server/hw/xwin/winmisc.c
+++ b/xorg-server/hw/xwin/winmisc.c
@@ -44,7 +44,7 @@ void
winQueryBestSizeNativeGDI(int class, unsigned short *pWidth,
unsigned short *pHeight, ScreenPtr pScreen)
{
- ErrorF("winQueryBestSizeNativeGDI\n");
+ winDebug ("winQueryBestSizeNativeGDI\n");
}
#endif
diff --git a/xorg-server/hw/xwin/winmonitors.c b/xorg-server/hw/xwin/winmonitors.c
index 955fb9214..916b8b0bb 100644
--- a/xorg-server/hw/xwin/winmonitors.c
+++ b/xorg-server/hw/xwin/winmonitors.c
@@ -32,6 +32,8 @@ from The Open Group.
#endif
#include "win.h"
+#define COMPILE_MULTIMON_STUBS
+#include <multimon.h>
#include "winmonitors.h"
/*
@@ -68,7 +70,5 @@ QueryMonitor(int i, struct GetMonitorInfoData *data)
data->requestedMonitor = i;
/* query information */
- EnumDisplayMonitors(NULL, NULL, getMonitorInfo, (LPARAM) data);
-
- return TRUE;
+ return !EnumDisplayMonitors(NULL, NULL, getMonitorInfo, (LPARAM) data);
}
diff --git a/xorg-server/hw/xwin/winmouse.c b/xorg-server/hw/xwin/winmouse.c
index bbe21cba6..6b293f0ab 100644
--- a/xorg-server/hw/xwin/winmouse.c
+++ b/xorg-server/hw/xwin/winmouse.c
@@ -36,6 +36,13 @@
#endif
#include "win.h"
+#ifdef XKB
+#ifndef XKB_IN_SERVER
+#define XKB_IN_SERVER
+#endif
+#include <xkbsrv.h>
+#endif
+
#include "inputstr.h"
#include "exevents.h" /* for button/axes labels */
#include "xserver-properties.h"
@@ -45,18 +52,6 @@
static CARD8 const *g_winMouseButtonMap = NULL;
/*
- * Local prototypes
- */
-
-static void
- winMouseCtrl(DeviceIntPtr pDevice, PtrCtrl * pCtrl);
-
-static void
-winMouseCtrl(DeviceIntPtr pDevice, PtrCtrl * pCtrl)
-{
-}
-
-/*
* See Porting Layer Definition - p. 18
* This is known as a DeviceProc
*/
@@ -75,7 +70,7 @@ winMouseProc(DeviceIntPtr pDeviceInt, int iState)
case DEVICE_INIT:
/* Get number of mouse buttons */
lngMouseButtons = GetSystemMetrics(SM_CMOUSEBUTTONS);
- winMsg(X_PROBED, "%d mouse buttons found\n", lngMouseButtons);
+ winDebug("%d mouse buttons found\n", lngMouseButtons);
/* Mapping of windows events to X events:
* LEFT:1 MIDDLE:2 RIGHT:3
@@ -122,7 +117,7 @@ winMouseProc(DeviceIntPtr pDeviceInt, int iState)
map,
lngMouseButtons + lngWheelEvents,
btn_labels,
- winMouseCtrl,
+ (PtrCtrlProcPtr)NoopDDA,
GetMotionHistorySize(), 2, axes_labels);
free(map);
@@ -231,10 +226,8 @@ winMouseButtonsSendEvent(int iEventType, int iButton)
QueuePointerEvents(g_pwinPointer, iEventType, iButton,
POINTER_RELATIVE, &mask);
-#if CYGDEBUG
- ErrorF("winMouseButtonsSendEvent: iEventType: %d, iButton: %d\n",
+ winDebug("winMouseButtonsSendEvent: iEventType: %d, iButton: %d\n",
iEventType, iButton);
-#endif
}
/*
diff --git a/xorg-server/hw/xwin/winmsg.c b/xorg-server/hw/xwin/winmsg.c
index 56e7a097c..7831a3b36 100644
--- a/xorg-server/hw/xwin/winmsg.c
+++ b/xorg-server/hw/xwin/winmsg.c
@@ -33,72 +33,16 @@
#endif
#include "win.h"
#include "winmsg.h"
-#if CYGDEBUG
+#ifdef WINDBG
#include "winmessages.h"
#endif
#include <stdarg.h>
-void
-winVMsg(int, MessageType, int verb, const char *, va_list)
-_X_ATTRIBUTE_PRINTF(4, 0);
-
-void
-winVMsg(int scrnIndex, MessageType type, int verb, const char *format,
- va_list ap)
-{
- LogVMessageVerb(type, verb, format, ap);
-}
+#ifdef WINDBG
-void
-winDrvMsg(int scrnIndex, MessageType type, const char *format, ...)
-{
- va_list ap;
- va_start(ap, format);
- LogVMessageVerb(type, 0, format, ap);
- va_end(ap);
-}
-void
-winMsg(MessageType type, const char *format, ...)
-{
- va_list ap;
- va_start(ap, format);
- LogVMessageVerb(type, 1, format, ap);
- va_end(ap);
-}
-
-void
-winDrvMsgVerb(int scrnIndex, MessageType type, int verb, const char *format,
- ...)
-{
- va_list ap;
-
- va_start(ap, format);
- LogVMessageVerb(type, verb, format, ap);
- va_end(ap);
-}
-
-void
-winMsgVerb(MessageType type, int verb, const char *format, ...)
-{
- va_list ap;
-
- va_start(ap, format);
- LogVMessageVerb(type, verb, format, ap);
- va_end(ap);
-}
-
-void
-winErrorFVerb(int verb, const char *format, ...)
-{
- va_list ap;
-
- va_start(ap, format);
- LogVMessageVerb(X_NONE, verb, format, ap);
- va_end(ap);
-}
void
winDebug(const char *format, ...)
@@ -111,23 +55,24 @@ winDebug(const char *format, ...)
}
void
-winTrace(const char *format, ...)
+winDebug4 (const char *format, ...)
{
va_list ap;
va_start(ap, format);
- LogVMessageVerb(X_NONE, 10, format, ap);
+ LogVMessageVerb(X_NONE, 4, format, ap);
va_end(ap);
}
+#endif
void
-winW32Error(int verb, const char *msg)
+winW32Error(const char *msg)
{
- winW32ErrorEx(verb, msg, GetLastError());
+ winW32ErrorEx(msg, GetLastError());
}
void
-winW32ErrorEx(int verb, const char *msg, DWORD errorcode)
+winW32ErrorEx(const char *msg, DWORD errorcode)
{
LPVOID buffer;
@@ -138,15 +83,16 @@ winW32ErrorEx(int verb, const char *msg, DWORD errorcode)
errorcode,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
(LPTSTR) &buffer, 0, NULL)) {
- winErrorFVerb(verb, "Unknown error in FormatMessage!\n");
+ ErrorF(msg);
+ ErrorF("Unknown error in FormatMessage!\n");
}
else {
- winErrorFVerb(verb, "%s %s", msg, (char *) buffer);
+ ErrorF("%s %s", msg, (char *)buffer);
LocalFree(buffer);
}
}
-#if CYGDEBUG
+#ifdef WINDBG
void
winDebugWin32Message(const char *function, HWND hwnd, UINT message,
WPARAM wParam, LPARAM lParam)
@@ -175,10 +121,4 @@ winDebugWin32Message(const char *function, HWND hwnd, UINT message,
}
}
}
-#else
-void
-winDebugWin32Message(const char *function, HWND hwnd, UINT message,
- WPARAM wParam, LPARAM lParam)
-{
-}
#endif
diff --git a/xorg-server/hw/xwin/winmsg.h b/xorg-server/hw/xwin/winmsg.h
index b638f2cb3..beb6683ed 100644
--- a/xorg-server/hw/xwin/winmsg.h
+++ b/xorg-server/hw/xwin/winmsg.h
@@ -33,33 +33,21 @@
/*
* Function prototypes
*/
+
+#include "os.h"
-void
-winDrvMsgVerb(int scrnIndex,
- MessageType type, int verb, const char *format, ...)
-_X_ATTRIBUTE_PRINTF(4, 5);
-void
-winDrvMsg(int scrnIndex, MessageType type, const char *format, ...)
-_X_ATTRIBUTE_PRINTF(3, 4);
-void
-winMsgVerb(MessageType type, int verb, const char *format, ...)
-_X_ATTRIBUTE_PRINTF(3, 4);
-void
-winMsg(MessageType type, const char *format, ...)
-_X_ATTRIBUTE_PRINTF(2, 3);
-void
-winDebug(const char *format, ...)
-_X_ATTRIBUTE_PRINTF(1, 2);
-void
-winTrace(const char *format, ...)
-_X_ATTRIBUTE_PRINTF(1, 2);
+#if !defined(_MSC_VER) || defined(_DEBUG)
+#define WINDBG
+void winDebug (const char *format, ...);
+void winDebug4 (const char *format, ...);
+void winDebugWin32Message(const char* function, HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);
+#else
+#define winDebug(...)
+#define winDebug4(...)
+#define winDebugWin32Message(...)
+#endif
-void
-winErrorFVerb(int verb, const char *format, ...)
-_X_ATTRIBUTE_PRINTF(2, 3);
-void winW32Error(int verb, const char *message);
-void winW32ErrorEx(int verb, const char *message, DWORD errorcode);
-void winDebugWin32Message(const char *function, HWND hwnd, UINT message,
- WPARAM wParam, LPARAM lParam);
+void winW32Error(const char *message);
+void winW32ErrorEx(const char *message, DWORD errorcode);
#endif
diff --git a/xorg-server/hw/xwin/winmsgwindow.c b/xorg-server/hw/xwin/winmsgwindow.c
index 8067c693c..e48a46af7 100644
--- a/xorg-server/hw/xwin/winmsgwindow.c
+++ b/xorg-server/hw/xwin/winmsgwindow.c
@@ -22,6 +22,9 @@
*
*/
+#ifdef HAVE_XWIN_CONFIG_H
+#include <xwin-config.h>
+#endif
#include "win.h"
/*
diff --git a/xorg-server/hw/xwin/winmultiwindowclass.c b/xorg-server/hw/xwin/winmultiwindowclass.c
index 6787332a3..ec283610e 100644
--- a/xorg-server/hw/xwin/winmultiwindowclass.c
+++ b/xorg-server/hw/xwin/winmultiwindowclass.c
@@ -134,8 +134,9 @@ winMultiWindowGetWMHints(WindowPtr pWin, WinXWMHints * hints)
memset(hints, 0, sizeof(WinXWMHints));
while (prop) {
- if (prop->propertyName == XA_WM_HINTS && prop->data) {
- memcpy(hints, prop->data, sizeof(WinXWMHints));
+ if (prop->propertyName == XA_WM_HINTS && prop->data
+ && prop->format == 32) {
+ memcpy (hints, prop->data, 4*(int)prop->size); /* format/8 = 4 */
return 1;
}
else
@@ -208,8 +209,9 @@ winMultiWindowGetWMNormalHints(WindowPtr pWin, WinXSizeHints * hints)
memset(hints, 0, sizeof(WinXSizeHints));
while (prop) {
- if (prop->propertyName == XA_WM_NORMAL_HINTS && prop->data) {
- memcpy(hints, prop->data, sizeof(WinXSizeHints));
+ if (prop->propertyName == XA_WM_NORMAL_HINTS && prop->data
+ && prop->format == 32) {
+ memcpy (hints, prop->data, 4*(int)prop->size); /* format/8 = 4 */
return 1;
}
else
@@ -241,9 +243,11 @@ winMultiWindowGetTransientFor(WindowPtr pWin, Window *pDaddyId)
*pDaddyId = 0;
while (prop) {
- if (prop->propertyName == XA_WM_TRANSIENT_FOR) {
+ if (prop->propertyName == XA_WM_TRANSIENT_FOR
+ && prop->format == 32
+ && prop->data) {
if (pDaddyId)
- memcpy(pDaddyId, prop->data, sizeof(Window));
+ memcpy (pDaddyId, prop->data, 4*(int)prop->size); /* format/8 = 4 */
return 1;
}
else
diff --git a/xorg-server/hw/xwin/winmultiwindowclass.h b/xorg-server/hw/xwin/winmultiwindowclass.h
index 3244f78e3..cb47ce943 100644
--- a/xorg-server/hw/xwin/winmultiwindowclass.h
+++ b/xorg-server/hw/xwin/winmultiwindowclass.h
@@ -47,16 +47,6 @@ typedef struct {
/* this structure may be extended in the future */
} WinXWMHints;
-/* Window manager hints mask bits */
-#define InputHint (1L << 0)
-#define StateHint (1L << 1)
-#define IconPixmapHint (1L << 2)
-#define IconWindowHint (1L << 3)
-#define IconPositionHint (1L << 4)
-#define IconMaskHint (1L << 5)
-#define WindowGroupHint (1L << 6)
-#define UrgencyHint (1L << 8)
-#define AllHints (InputHint|StateHint|IconPixmapHint|IconWindowHint|IconPositionHint|IconMaskHint|WindowGroupHint)
/*
* new version containing base_width, base_height, and win_gravity fields;
diff --git a/xorg-server/hw/xwin/winmultiwindowicons.c b/xorg-server/hw/xwin/winmultiwindowicons.c
index 0531ad6c7..74d0af1ba 100644
--- a/xorg-server/hw/xwin/winmultiwindowicons.c
+++ b/xorg-server/hw/xwin/winmultiwindowicons.c
@@ -237,18 +237,20 @@ NetWMToWinIconAlpha(uint32_t * icon)
HDC hdc = GetDC(NULL);
uint32_t *DIB_pixels;
ICONINFO ii;
- BITMAPV4HEADER bmh = { sizeof(bmh) };
+ BITMAPV5HEADER bmh;
/* Define an ARGB pixel format used for Color+Alpha icons */
- bmh.bV4Width = width;
- bmh.bV4Height = -height; /* Invert the image */
- bmh.bV4Planes = 1;
- bmh.bV4BitCount = 32;
- bmh.bV4V4Compression = BI_BITFIELDS;
- bmh.bV4AlphaMask = 0xFF000000;
- bmh.bV4RedMask = 0x00FF0000;
- bmh.bV4GreenMask = 0x0000FF00;
- bmh.bV4BlueMask = 0x000000FF;
+ ZeroMemory(&bmh,sizeof(bmh));
+ bmh.bV5Size = sizeof(bmh);
+ bmh.bV5Width = width;
+ bmh.bV5Height = -height; /* Invert the image */
+ bmh.bV5Planes = 1;
+ bmh.bV5BitCount = 32;
+ bmh.bV5Compression = BI_BITFIELDS;
+ bmh.bV5AlphaMask = 0xFF000000;
+ bmh.bV5RedMask = 0x00FF0000;
+ bmh.bV5GreenMask = 0x0000FF00;
+ bmh.bV5BlueMask = 0x000000FF;
ii.fIcon = TRUE;
ii.xHotspot = 0; /* ignored */
@@ -351,7 +353,7 @@ NetWMToWinIcon(int bpp, uint32_t * icon)
dwlConditionMask);
versionChecked = TRUE;
- ErrorF("OS has icon alpha channel support: %s\n",
+ winDebug("OS has icon alpha channel support: %s\n",
hasIconAlphaChannel ? "yes" : "no");
}
diff --git a/xorg-server/hw/xwin/winmultiwindowshape.c b/xorg-server/hw/xwin/winmultiwindowshape.c
index cb0f38950..0a00e79ee 100644
--- a/xorg-server/hw/xwin/winmultiwindowshape.c
+++ b/xorg-server/hw/xwin/winmultiwindowshape.c
@@ -46,9 +46,7 @@ winSetShapeMultiWindow(WindowPtr pWin, int kind)
winScreenPriv(pScreen);
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("winSetShapeMultiWindow - pWin: %08x kind: %i\n", pWin, kind);
-#endif
+ winDebug ("winSetShapeMultiWindow - pWin: %08x kind: %i\n", pWin, kind);
WIN_UNWRAP(SetShape);
(*pScreen->SetShape) (pWin, kind);
@@ -89,9 +87,7 @@ winReshapeMultiWindow(WindowPtr pWin)
winWindowPriv(pWin);
-#if CYGDEBUG
winDebug("winReshape ()\n");
-#endif
/* Bail if the window is the root window */
if (pWin->parent == NULL)
@@ -197,3 +193,14 @@ winReshapeMultiWindow(WindowPtr pWin)
return;
}
+
+void
+winShapeRgnUpdateMultiwindow(HWND hwnd)
+{
+ WindowPtr pWin = GetProp (hwnd, WIN_WINDOW_PROP);
+ if (pWin)
+ {
+ winReshapeMultiWindow(pWin);
+ winUpdateRgnMultiWindow(pWin);
+ }
+}
diff --git a/xorg-server/hw/xwin/winmultiwindowwindow.c b/xorg-server/hw/xwin/winmultiwindowwindow.c
index 44ad19302..94956863b 100644
--- a/xorg-server/hw/xwin/winmultiwindowwindow.c
+++ b/xorg-server/hw/xwin/winmultiwindowwindow.c
@@ -83,7 +83,7 @@ winInitMultiWindowClass(void)
wcx.hIconSm = hIconSmall;
#if CYGMULTIWINDOW_DEBUG
- ErrorF("winCreateWindowsWindow - Creating class: %s\n", WINDOW_CLASS_X);
+ winDebug ("winCreateWindowsWindow - Creating class: %s\n", WINDOW_CLASS_X);
#endif
atomXWinClass = RegisterClassEx(&wcx);
@@ -104,7 +104,7 @@ winCreateWindowMultiWindow(WindowPtr pWin)
winScreenPriv(pScreen);
#if CYGMULTIWINDOW_DEBUG
- winTrace("winCreateWindowMultiWindow - pWin: %p\n", pWin);
+ winDebug ("winCreateWindowMultiWindow - pWin: %p\n", pWin);
#endif
WIN_UNWRAP(CreateWindow);
@@ -137,7 +137,7 @@ winDestroyWindowMultiWindow(WindowPtr pWin)
winScreenPriv(pScreen);
#if CYGMULTIWINDOW_DEBUG
- ErrorF("winDestroyWindowMultiWindow - pWin: %p\n", pWin);
+ winDebug ("winDestroyWindowMultiWindow - pWin: %p\n", pWin);
#endif
WIN_UNWRAP(DestroyWindow);
@@ -175,30 +175,29 @@ winPositionWindowMultiWindow(WindowPtr pWin, int x, int y)
RECT rcNew;
RECT rcOld;
-#if CYGMULTIWINDOW_DEBUG
+#ifdef WINDBG
RECT rcClient;
RECT *lpRc;
#endif
DWORD dwExStyle;
DWORD dwStyle;
-#if CYGMULTIWINDOW_DEBUG
- winTrace("winPositionWindowMultiWindow - pWin: %p\n", pWin);
-#endif
+ winDebug ("winPositionWindowMultiWindow - pWin: %p\n", pWin);
WIN_UNWRAP(PositionWindow);
fResult = (*pScreen->PositionWindow) (pWin, x, y);
WIN_WRAP(PositionWindow, winPositionWindowMultiWindow);
-#if CYGWINDOWING_DEBUG
- ErrorF("winPositionWindowMultiWindow: (x, y) = (%d, %d)\n", x, y);
-#endif
+ winDebug ("winPositionWindowMultiWindow: (x, y) = (%d, %d)\n", x, y);
/* Bail out if the Windows window handle is bad */
if (!hWnd) {
-#if CYGWINDOWING_DEBUG
- ErrorF("\timmediately return since hWnd is NULL\n");
-#endif
+ winDebug ("\timmediately return since hWnd is NULL\n");
+ if (pWin->redirectDraw != RedirectDrawNone)
+ {
+ winDebug("winPositionWindowMultiWindow: Calling compReallocPixmap to make sure the pixmap buffer is valid.\n");
+ compReallocPixmap(pWin, x, y, pWin->drawable.width, pWin->drawable.height, pWin->borderWidth);
+ }
return fResult;
}
@@ -219,7 +218,7 @@ winPositionWindowMultiWindow(WindowPtr pWin, int x, int y)
#if CYGMULTIWINDOW_DEBUG
lpRc = &rcNew;
- ErrorF("winPositionWindowMultiWindow - (%d ms)drawable (%d, %d)-(%d, %d)\n",
+ winDebug ("winPositionWindowMultiWindow - (%d ms)drawable (%d, %d)-(%d, %d)\n",
GetTickCount(), lpRc->left, lpRc->top, lpRc->right, lpRc->bottom);
#endif
@@ -237,37 +236,41 @@ winPositionWindowMultiWindow(WindowPtr pWin, int x, int y)
GetClientRect(hWnd, &rcClient);
lpRc = &rcNew;
- ErrorF("winPositionWindowMultiWindow - (%d ms)rcNew (%d, %d)-(%d, %d)\n",
+ winDebug ("winPositionWindowMultiWindow - (%d ms)rcNew (%d, %d)-(%d, %d)\n",
GetTickCount(), lpRc->left, lpRc->top, lpRc->right, lpRc->bottom);
lpRc = &rcOld;
- ErrorF("winPositionWindowMultiWindow - (%d ms)rcOld (%d, %d)-(%d, %d)\n",
+ winDebug ("winPositionWindowMultiWindow - (%d ms)rcOld (%d, %d)-(%d, %d)\n",
GetTickCount(), lpRc->left, lpRc->top, lpRc->right, lpRc->bottom);
lpRc = &rcClient;
- ErrorF("(%d ms)rcClient (%d, %d)-(%d, %d)\n",
+ winDebug ("(%d ms)rcClient (%d, %d)-(%d, %d)\n",
GetTickCount(), lpRc->left, lpRc->top, lpRc->right, lpRc->bottom);
#endif
/* Check if the old rectangle and new rectangle are the same */
if (!EqualRect(&rcNew, &rcOld)) {
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("winPositionWindowMultiWindow - Need to move\n");
-#endif
-
-#if CYGWINDOWING_DEBUG
- ErrorF("\tMoveWindow to (%ld, %ld) - %ldx%ld\n", rcNew.left, rcNew.top,
+ winDebug ("winPositionWindowMultiWindow - Need to move\n");
+ winDebug ("\tMoveWindow to (%ld, %ld) - %ldx%ld\n", rcNew.left, rcNew.top,
rcNew.right - rcNew.left, rcNew.bottom - rcNew.top);
-#endif
+
/* Change the position and dimensions of the Windows window */
- MoveWindow(hWnd,
- rcNew.left, rcNew.top,
- rcNew.right - rcNew.left, rcNew.bottom - rcNew.top, TRUE);
+ if (pWinPriv->fWglUsed)
+ {
+ int iWidth=rcNew.right - rcNew.left;
+ int iHeight=rcNew.bottom - rcNew.top;
+ ScreenToClient(GetParent(hWnd), (LPPOINT)&rcNew);
+ MoveWindow (hWnd,
+ rcNew.left, rcNew.top,
+ iWidth, iHeight, TRUE);
+ }
+ else
+ MoveWindow (hWnd,
+ rcNew.left, rcNew.top,
+ rcNew.right - rcNew.left, rcNew.bottom - rcNew.top, TRUE);
}
else {
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("winPositionWindowMultiWindow - Not need to move\n");
-#endif
+ winDebug ("winPositionWindowMultiWindow - Not need to move\n");
}
return fResult;
@@ -285,9 +288,7 @@ winChangeWindowAttributesMultiWindow(WindowPtr pWin, unsigned long mask)
winScreenPriv(pScreen);
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("winChangeWindowAttributesMultiWindow - pWin: %08x\n", pWin);
-#endif
+ winDebug ("winChangeWindowAttributesMultiWindow - pWin: %08x\n", pWin);
WIN_UNWRAP(ChangeWindowAttributes);
fResult = (*pScreen->ChangeWindowAttributes) (pWin, mask);
@@ -315,7 +316,7 @@ winUnmapWindowMultiWindow(WindowPtr pWin)
winScreenPriv(pScreen);
#if CYGMULTIWINDOW_DEBUG
- ErrorF("winUnmapWindowMultiWindow - pWin: %08x\n", pWin);
+ winDebug ("winUnmapWindowMultiWindow - pWin: %08x\n", pWin);
#endif
WIN_UNWRAP(UnrealizeWindow);
@@ -346,7 +347,7 @@ winMapWindowMultiWindow(WindowPtr pWin)
winScreenPriv(pScreen);
#if CYGMULTIWINDOW_DEBUG
- ErrorF("winMapWindowMultiWindow - pWin: %08x\n", pWin);
+ winDebug ("winMapWindowMultiWindow - pWin: %08x\n", pWin);
#endif
WIN_UNWRAP(RealizeWindow);
@@ -398,76 +399,23 @@ winReparentWindowMultiWindow(WindowPtr pWin, WindowPtr pPriorParent)
void
winRestackWindowMultiWindow(WindowPtr pWin, WindowPtr pOldNextSib)
{
-#if 0
- WindowPtr pPrevWin;
- UINT uFlags;
- HWND hInsertAfter;
- HWND hWnd = NULL;
-#endif
ScreenPtr pScreen = pWin->drawable.pScreen;
winScreenPriv(pScreen);
-#if CYGMULTIWINDOW_DEBUG || CYGWINDOWING_DEBUG
- winTrace("winRestackMultiWindow - %08x\n", pWin);
-#endif
+ winDebug ("winRestackMultiWindow - %08x\n", pWin);
WIN_UNWRAP(RestackWindow);
if (pScreen->RestackWindow)
(*pScreen->RestackWindow) (pWin, pOldNextSib);
WIN_WRAP(RestackWindow, winRestackWindowMultiWindow);
-#if 1
/*
* Calling winReorderWindowsMultiWindow here means our window manager
* (i.e. Windows Explorer) has initiative to determine Z order.
*/
if (pWin->nextSib != pOldNextSib)
winReorderWindowsMultiWindow();
-#else
- /* Bail out if no window privates or window handle is invalid */
- if (!pWinPriv || !pWinPriv->hWnd)
- return;
-
- /* Get a pointer to our previous sibling window */
- pPrevWin = pWin->prevSib;
-
- /*
- * Look for a sibling window with
- * valid privates and window handle
- */
- while (pPrevWin && !winGetWindowPriv(pPrevWin)
- && !winGetWindowPriv(pPrevWin)->hWnd)
- pPrevWin = pPrevWin->prevSib;
-
- /* Check if we found a valid sibling */
- if (pPrevWin) {
- /* Valid sibling - get handle to insert window after */
- hInsertAfter = winGetWindowPriv(pPrevWin)->hWnd;
- uFlags = SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE;
-
- hWnd = GetNextWindow(pWinPriv->hWnd, GW_HWNDPREV);
-
- do {
- if (GetProp(hWnd, WIN_WINDOW_PROP)) {
- if (hWnd == winGetWindowPriv(pPrevWin)->hWnd) {
- uFlags |= SWP_NOZORDER;
- }
- break;
- }
- hWnd = GetNextWindow(hWnd, GW_HWNDPREV);
- }
- while (hWnd);
- }
- else {
- /* No valid sibling - make this window the top window */
- hInsertAfter = HWND_TOP;
- uFlags = SWP_NOMOVE | SWP_NOSIZE;
- }
-
- /* Perform the restacking operation in Windows */
- SetWindowPos(pWinPriv->hWnd, hInsertAfter, 0, 0, 0, 0, uFlags);
-#endif
}
/*
@@ -502,15 +450,36 @@ winCreateWindowsWindow(WindowPtr pWin)
iHeight = pWin->drawable.height;
/* If it's an InputOutput window, and so is going to end up being made visible,
- make sure the window actually ends up somewhere where it will be visible */
+ make sure the window actually ends up somewhere where it will be visible
+ Dont't do it by making just one of the two iX and iY CW_USEDEFAULT since
+ this will create a window at place CW_USEDEFAULT which is 0x80000000 */
if (pWin->drawable.class != InputOnly) {
- if ((iX < GetSystemMetrics(SM_XVIRTUALSCREEN)) ||
- (iX > GetSystemMetrics(SM_CXVIRTUALSCREEN)))
- iX = CW_USEDEFAULT;
-
- if ((iY < GetSystemMetrics(SM_YVIRTUALSCREEN)) ||
- (iY > GetSystemMetrics(SM_CYVIRTUALSCREEN)))
- iY = CW_USEDEFAULT;
+ while (1) {
+ if (iX < GetSystemMetrics (SM_XVIRTUALSCREEN)) {
+ iX = GetSystemMetrics (SM_XVIRTUALSCREEN);
+ ErrorF("Resetting iX to %d\n",iX);
+ }
+ else if (iX > GetSystemMetrics (SM_CXVIRTUALSCREEN))
+ {
+ iX = GetSystemMetrics (SM_CXVIRTUALSCREEN)-iWidth;
+ ErrorF("Resetting iX to %d\n",iX);
+ }
+ else
+ break;
+ }
+
+ while (1) {
+ if (iY < GetSystemMetrics (SM_YVIRTUALSCREEN)) {
+ iY = GetSystemMetrics (SM_YVIRTUALSCREEN);
+ ErrorF("Resetting iY to %d\n",iY);
+ }
+ else if (iY > GetSystemMetrics (SM_CYVIRTUALSCREEN)) {
+ iY = GetSystemMetrics (SM_CYVIRTUALSCREEN)-iHeight;
+ ErrorF("Resetting iY to %d\n",iY);
+ }
+ else
+ break;
+ }
}
winDebug("winCreateWindowsWindow - %dx%d @ %dx%d\n", iWidth, iHeight, iX,
@@ -577,16 +546,20 @@ winCreateWindowsWindow(WindowPtr pWin)
}
pWinPriv->hWnd = hWnd;
+ /* If we asked the native WM to place the window, synchronize the X window position.
+ Do this before the next SetWindowPos because this one is generating a WM_STYLECHANGED
+ message which is causing a window move, which is wrong if the Xwindow does not
+ have the correct coordinates yet */
+ if (iX == CW_USEDEFAULT) {
+ winAdjustXWindow(pWin, hWnd);
+ }
/* Change style back to popup, already placed... */
SetWindowLongPtr(hWnd, GWL_STYLE,
WS_POPUP | WS_CLIPCHILDREN | WS_CLIPSIBLINGS);
SetWindowPos(hWnd, 0, 0, 0, 0, 0,
SWP_FRAMECHANGED | SWP_NOZORDER | SWP_NOMOVE | SWP_NOSIZE |
SWP_NOACTIVATE);
-
- /* Adjust the X window to match the window placement we actually got... */
- winAdjustXWindow(pWin, hWnd);
-
+
/* Make sure it gets the proper system menu for a WS_POPUP, too */
GetSystemMenu(hWnd, TRUE);
@@ -670,7 +643,7 @@ winUpdateWindowsWindow(WindowPtr pWin)
HWND hWnd = pWinPriv->hWnd;
#if CYGMULTIWINDOW_DEBUG
- ErrorF("winUpdateWindowsWindow\n");
+ winDebug("winUpdateWindowsWindow\n");
#endif
/* Check if the Windows window's parents have been destroyed */
@@ -689,13 +662,44 @@ winUpdateWindowsWindow(WindowPtr pWin)
UpdateWindow(pWinPriv->hWnd);
}
else if (hWnd != NULL) {
- /* Destroy the Windows window if its parents are destroyed */
- winDestroyWindowsWindow(pWin);
- assert(pWinPriv->hWnd == NULL);
+ if (pWinPriv->fWglUsed) {
+ /* We do not need to destroy the window but to reparent it and move it to the
+ correct place when it is an opengl window */
+ int offsetx;
+ int offsety;
+ HWND hParentWnd;
+ WindowPtr pParent=pWin->parent;
+
+ while (pParent) {
+ winWindowPriv(pParent);
+ hParentWnd=pWinPriv->hWnd;
+ if (hParentWnd)
+ break;
+ pParent=pParent->parent;
+ }
+
+ if (pParent) {
+ offsetx=pParent->drawable.x;
+ offsety=pParent->drawable.y;
+ }
+ else {
+ offsetx=0;
+ offsety=0;
+ }
+ winDebug ("-winUpdateWindowsWindow: %x changing parent to %x and moving to %d,%d\n",pWinPriv->hWnd,hParentWnd,pWin->drawable.x-offsetx,pWin->drawable.y-offsety);
+ SetParent(pWinPriv->hWnd,hParentWnd);
+ SetWindowPos(pWinPriv->hWnd,NULL,pWin->drawable.x-offsetx,pWin->drawable.y-offsety,0,0,SWP_NOSIZE|SWP_NOZORDER|SWP_SHOWWINDOW);
+ }
+ else {
+ /* Destroy the Windows window if its parents are destroyed */
+ /* First check if we need to release the DC when it is an opengl window */
+ winDestroyWindowsWindow (pWin);
+ assert (pWinPriv->hWnd == NULL);
+ }
}
#if CYGMULTIWINDOW_DEBUG
- ErrorF("-winUpdateWindowsWindow\n");
+ winDebug ("-winUpdateWindowsWindow\n");
#endif
}
@@ -713,7 +717,7 @@ winGetWindowID(WindowPtr pWin)
FindClientResourcesByType(c, RT_WINDOW, winFindWindow, &wi);
#if CYGMULTIWINDOW_DEBUG
- ErrorF("winGetWindowID - Window ID: %d\n", wi.id);
+ winDebug("winGetWindowID - Window ID: %d\n", wi.id);
#endif
return wi.id;
@@ -748,16 +752,12 @@ winReorderWindowsMultiWindow(void)
DWORD dwCurrentProcessID = GetCurrentProcessId();
DWORD dwWindowProcessID = 0;
-#if CYGMULTIWINDOW_DEBUG || CYGWINDOWING_DEBUG
- winTrace("winReorderWindowsMultiWindow\n");
-#endif
+ winDebug("winReorderWindowsMultiWindow\n");
if (fRestacking) {
/* It is a recusive call so immediately exit */
-#if CYGWINDOWING_DEBUG
- ErrorF("winReorderWindowsMultiWindow - "
+ winDebug("winReorderWindowsMultiWindow - "
"exit because fRestacking == TRUE\n");
-#endif
return;
}
fRestacking = TRUE;
@@ -809,9 +809,7 @@ winMinimizeWindow(Window id)
ScreenPtr pScreen = NULL;
winPrivScreenPtr pScreenPriv = NULL;
-#if CYGWINDOWING_DEBUG
- ErrorF("winMinimizeWindow\n");
-#endif
+ winDebug("winMinimizeWindow\n");
dixLookupResourceByType((pointer) &pWin, id, RT_WINDOW, NullClient,
DixUnknownAccess);
@@ -824,7 +822,7 @@ winMinimizeWindow(Window id)
if (pScreen)
pScreenPriv = winGetScreenPriv(pScreen);
-#ifdef XWIN_MULTIWINDOWEXTWM
+#ifdef XWIN_MULTIWINDOWINTWM
if (pScreenPriv && pScreenPriv->pScreenInfo->fInternalWM) {
pRLWinPriv =
(win32RootlessWindowPtr) RootlessFrameForWindow(pWin, FALSE);
@@ -852,9 +850,8 @@ winCopyWindowMultiWindow(WindowPtr pWin, DDXPointRec oldpt, RegionPtr oldRegion)
winScreenPriv(pScreen);
-#if CYGWINDOWING_DEBUG
- ErrorF("CopyWindowMultiWindow\n");
-#endif
+ winDebug("CopyWindowMultiWindow\n");
+
WIN_UNWRAP(CopyWindow);
(*pScreen->CopyWindow) (pWin, oldpt, oldRegion);
WIN_WRAP(CopyWindow, winCopyWindowMultiWindow);
@@ -871,9 +868,7 @@ winMoveWindowMultiWindow(WindowPtr pWin, int x, int y,
winScreenPriv(pScreen);
-#if CYGWINDOWING_DEBUG
- ErrorF("MoveWindowMultiWindow to (%d, %d)\n", x, y);
-#endif
+ winDebug("MoveWindowMultiWindow to (%d, %d)\n", x, y);
WIN_UNWRAP(MoveWindow);
(*pScreen->MoveWindow) (pWin, x, y, pSib, kind);
@@ -891,9 +886,8 @@ winResizeWindowMultiWindow(WindowPtr pWin, int x, int y, unsigned int w,
winScreenPriv(pScreen);
-#if CYGWINDOWING_DEBUG
- ErrorF("ResizeWindowMultiWindow to (%d, %d) - %dx%d\n", x, y, w, h);
-#endif
+ winDebug("ResizeWindowMultiWindow to (%d, %d) - %dx%d\n", x, y, w, h);
+
WIN_UNWRAP(ResizeWindow);
(*pScreen->ResizeWindow) (pWin, x, y, w, h, pSib);
WIN_WRAP(ResizeWindow, winResizeWindowMultiWindow);
@@ -922,14 +916,10 @@ winAdjustXWindow(WindowPtr pWin, HWND hwnd)
#define WIDTH(rc) (rc.right - rc.left)
#define HEIGHT(rc) (rc.bottom - rc.top)
-#if CYGWINDOWING_DEBUG
- ErrorF("winAdjustXWindow\n");
-#endif
+ winDebug("winAdjustXWindow\n");
if (IsIconic(hwnd)) {
-#if CYGWINDOWING_DEBUG
- ErrorF("\timmediately return because the window is iconized\n");
-#endif
+ winDebug("\timmediately return because the window is iconized\n");
/*
* If the Windows window is minimized, its WindowRect has
* meaningless values so we don't adjust X window to it.
@@ -945,34 +935,26 @@ winAdjustXWindow(WindowPtr pWin, HWND hwnd)
x = pDraw->x + GetSystemMetrics(SM_XVIRTUALSCREEN);
y = pDraw->y + GetSystemMetrics(SM_YVIRTUALSCREEN);
SetRect(&rcDraw, x, y, x + pDraw->width, y + pDraw->height);
-#ifdef CYGMULTIWINDOW_DEBUG
winDebug("\tDrawable extend {%d, %d, %d, %d}, {%d, %d}\n",
rcDraw.left, rcDraw.top, rcDraw.right, rcDraw.bottom,
rcDraw.right - rcDraw.left, rcDraw.bottom - rcDraw.top);
-#endif
dwExStyle = GetWindowLongPtr(hwnd, GWL_EXSTYLE);
dwStyle = GetWindowLongPtr(hwnd, GWL_STYLE);
-#ifdef CYGMULTIWINDOW_DEBUG
winDebug("\tWindowStyle: %08x %08x\n", dwStyle, dwExStyle);
-#endif
AdjustWindowRectEx(&rcDraw, dwStyle, FALSE, dwExStyle);
/* The source of adjust */
GetWindowRect(hwnd, &rcWin);
-#ifdef CYGMULTIWINDOW_DEBUG
winDebug("\tWindow extend {%d, %d, %d, %d}, {%d, %d}\n",
rcWin.left, rcWin.top, rcWin.right, rcWin.bottom,
rcWin.right - rcWin.left, rcWin.bottom - rcWin.top);
winDebug("\tDraw extend {%d, %d, %d, %d}, {%d, %d}\n",
rcDraw.left, rcDraw.top, rcDraw.right, rcDraw.bottom,
rcDraw.right - rcDraw.left, rcDraw.bottom - rcDraw.top);
-#endif
if (EqualRect(&rcDraw, &rcWin)) {
/* Bail if no adjust is needed */
-#if CYGWINDOWING_DEBUG
- ErrorF("\treturn because already adjusted\n");
-#endif
+ winDebug("\treturn because already adjusted\n");
return 0;
}
@@ -992,10 +974,8 @@ winAdjustXWindow(WindowPtr pWin, HWND hwnd)
vlist[1] = pDraw->y + dY - wBorderWidth(pWin);
vlist[2] = pDraw->width + dW;
vlist[3] = pDraw->height + dH;
-#if CYGWINDOWING_DEBUG
- ErrorF("\tConfigureWindow to (%ld, %ld) - %ldx%ld\n", vlist[0], vlist[1],
- vlist[2], vlist[3]);
-#endif
+ winDebug("\tConfigureWindow to (%ld, %ld) - %ldx%ld\n", vlist[0], vlist[1],
+ vlist[2], vlist[3]);
return ConfigureWindow(pWin, CWX | CWY | CWWidth | CWHeight,
vlist, wClient(pWin));
diff --git a/xorg-server/hw/xwin/winmultiwindowwm.c b/xorg-server/hw/xwin/winmultiwindowwm.c
index 3c44f05e4..8cd1e0dbb 100644
--- a/xorg-server/hw/xwin/winmultiwindowwm.c
+++ b/xorg-server/hw/xwin/winmultiwindowwm.c
@@ -43,12 +43,14 @@
#include <fcntl.h>
#include <setjmp.h>
#define HANDLE void *
+#ifdef _MSC_VER
+typedef int pid_t;
+#endif
#include <pthread.h>
#undef HANDLE
#include <X11/X.h>
#include <X11/Xatom.h>
#include <X11/Xlib.h>
-#include <X11/Xlocale.h>
#include <X11/Xproto.h>
#include <X11/Xutil.h>
#include <X11/cursorfont.h>
@@ -59,9 +61,12 @@
#include "winprefs.h"
#include "window.h"
#include "pixmapstr.h"
+#include "winmsg.h"
#include "windowstr.h"
+#include "winmultiwindowclass.h"
#ifdef XWIN_MULTIWINDOWEXTWM
+#define _WINDOWSWM_SERVER_
#include <X11/extensions/windowswmstr.h>
#else
/* We need the native HWND atom for intWM, so for consistency use the
@@ -73,10 +78,6 @@ extern void winDebug(const char *format, ...);
extern void winReshapeMultiWindow(WindowPtr pWin);
extern void winUpdateRgnMultiWindow(WindowPtr pWin);
-#ifndef CYGDEBUG
-#define CYGDEBUG NO
-#endif
-
/*
* Constant defines
*/
@@ -103,7 +104,9 @@ typedef struct _WMMsgQueueRec {
struct _WMMsgNodeRec *pTail;
pthread_mutex_t pmMutex;
pthread_cond_t pcNotEmpty;
+#ifdef _DEBUG
int nQueueSize;
+#endif
} WMMsgQueueRec, *WMMsgQueuePtr;
typedef struct _WMInfo {
@@ -112,7 +115,9 @@ typedef struct _WMInfo {
Atom atmWmProtos;
Atom atmWmDelete;
Atom atmPrivMap;
+#ifdef XWIN_MULTIWINDOWINTWM
Bool fAllowOtherWM;
+#endif
} WMInfoRec, *WMInfoPtr;
typedef struct _WMProcArgRec {
@@ -166,17 +171,15 @@ static int
static int
winMultiWindowXMsgProcIOErrorHandler(Display * pDisplay);
+static void
+winMultiWindowThreadExit(void *arg);
+
static int
winRedirectErrorHandler(Display * pDisplay, XErrorEvent * pErr);
static void
winInitMultiWindowWM(WMInfoPtr pWMInfo, WMProcArgPtr pProcArg);
-#if 0
-static void
- PreserveWin32Stack(WMInfoPtr pWMInfo, Window iWindow, UINT direction);
-#endif
-
static Bool
CheckAnotherWindowManager(Display * pDisplay, DWORD dwScreen,
@@ -224,46 +227,10 @@ PushMessage(WMMsgQueuePtr pQueue, WMMsgNodePtr pNode)
pQueue->pHead = pNode;
}
-#if 0
- switch (pNode->msg.msg) {
- case WM_WM_MOVE:
- ErrorF("\tWM_WM_MOVE\n");
- break;
- case WM_WM_SIZE:
- ErrorF("\tWM_WM_SIZE\n");
- break;
- case WM_WM_RAISE:
- ErrorF("\tWM_WM_RAISE\n");
- break;
- case WM_WM_LOWER:
- ErrorF("\tWM_WM_LOWER\n");
- break;
- case WM_WM_MAP:
- ErrorF("\tWM_WM_MAP\n");
- break;
- case WM_WM_MAP2:
- ErrorF("\tWM_WM_MAP2\n");
- break;
- case WM_WM_MAP3:
- ErrorF("\tWM_WM_MAP3\n");
- break;
- case WM_WM_UNMAP:
- ErrorF("\tWM_WM_UNMAP\n");
- break;
- case WM_WM_KILL:
- ErrorF("\tWM_WM_KILL\n");
- break;
- case WM_WM_ACTIVATE:
- ErrorF("\tWM_WM_ACTIVATE\n");
- break;
- default:
- ErrorF("\tUnknown Message.\n");
- break;
- }
-#endif
-
+#ifdef _DEBUG
/* Increase the count of elements in the queue by one */
++(pQueue->nQueueSize);
+#endif
/* Release the queue mutex */
pthread_mutex_unlock(&pQueue->pmMutex);
@@ -272,7 +239,7 @@ PushMessage(WMMsgQueuePtr pQueue, WMMsgNodePtr pNode)
pthread_cond_signal(&pQueue->pcNotEmpty);
}
-#if CYGMULTIWINDOW_DEBUG
+#ifdef WINDBG
/*
* QueueSize - Return the size of the queue
*/
@@ -317,12 +284,12 @@ PopMessage(WMMsgQueuePtr pQueue, WMInfoPtr pWMInfo)
pQueue->pTail = NULL;
}
+ #ifdef _DEBUG
/* Drop the number of elements in the queue by one */
--(pQueue->nQueueSize);
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("Queue Size %d %d\n", pQueue->nQueueSize, QueueSize(pQueue));
-#endif
+ winDebug ("Queue Size %d %d\n", pQueue->nQueueSize, QueueSize(pQueue));
+ #endif
/* Release the queue mutex */
pthread_mutex_unlock(&pQueue->pmMutex);
@@ -368,24 +335,24 @@ InitQueue(WMMsgQueuePtr pQueue)
pQueue->pTail = NULL;
/* There are no elements initially */
+ #ifdef _DEBUG
pQueue->nQueueSize = 0;
-#if CYGMULTIWINDOW_DEBUG
winDebug("InitQueue - Queue Size %d %d\n", pQueue->nQueueSize,
QueueSize(pQueue));
-#endif
+ #endif
- winDebug("InitQueue - Calling pthread_mutex_init\n");
+ winDebug ("InitQueue - Calling pthread_mutex_init\n");
/* Create synchronization objects */
pthread_mutex_init(&pQueue->pmMutex, NULL);
- winDebug("InitQueue - pthread_mutex_init returned\n");
- winDebug("InitQueue - Calling pthread_cond_init\n");
+ winDebug ("InitQueue - pthread_mutex_init returned\n");
+ winDebug ("InitQueue - Calling pthread_cond_init\n");
pthread_cond_init(&pQueue->pcNotEmpty, NULL);
- winDebug("InitQueue - pthread_cond_init returned\n");
+ winDebug ("InitQueue - pthread_cond_init returned\n");
return TRUE;
}
@@ -431,9 +398,7 @@ GetWindowName(Display * pDisplay, Window iWin, char **ppWindowName)
XTextProperty xtpWindowName;
char *pszWindowName;
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("GetWindowName\n");
-#endif
+ winDebug ("GetWindowName\n");
/* Intialize ppWindowName to NULL */
*ppWindowName = NULL;
@@ -441,9 +406,7 @@ GetWindowName(Display * pDisplay, Window iWin, char **ppWindowName)
/* Try to get window name */
nResult = XGetWMName(pDisplay, iWin, &xtpWindowName);
if (!nResult || !xtpWindowName.value || !xtpWindowName.nitems) {
-#if CYGMULTIWINDOW_DEBUG
ErrorF("GetWindowName - XGetWMName failed. No name.\n");
-#endif
return;
}
@@ -488,7 +451,7 @@ getHwnd(WMInfoPtr pWMInfo, Window iWindow)
iWindow,
pWMInfo->atmPrivMap,
0,
- 1,
+ sizeof(HWND)/4,
False,
XA_INTEGER,
&atmType,
@@ -680,21 +643,23 @@ winMultiWindowWMProc(void *pArg)
WMProcArgPtr pProcArg = (WMProcArgPtr) pArg;
WMInfoPtr pWMInfo = pProcArg->pWMInfo;
+ pthread_cleanup_push(&winMultiWindowThreadExit, NULL);
+
/* Initialize the Window Manager */
winInitMultiWindowWM(pWMInfo, pProcArg);
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("winMultiWindowWMProc ()\n");
-#endif
+ winDebug ("winMultiWindowWMProc ()\n");
/* Loop until we explicitly break out */
for (;;) {
WMMsgNodePtr pNode;
+#ifdef XWIN_MULTIWINDOWINTWM
if (g_fAnotherWMRunning) { /* Another Window manager exists. */
Sleep(1000);
continue;
}
+#endif
/* Pop a message off of our queue */
pNode = PopMessage(&pWMInfo->wmMsgQueue, pWMInfo);
@@ -705,75 +670,52 @@ winMultiWindowWMProc(void *pArg)
pthread_exit(NULL);
}
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("winMultiWindowWMProc - %d ms MSG: %d ID: %d\n",
- GetTickCount(), (int) pNode->msg.msg, (int) pNode->msg.dwID);
-#endif
+ winDebug ("winMultiWindowWMProc - %d ms MSG: %d ID: %d\n",
+ GetTickCount(), (int) pNode->msg.msg, (int) pNode->msg.dwID);
/* Branch on the message type */
switch (pNode->msg.msg) {
-#if 0
- case WM_WM_MOVE:
- ErrorF("\tWM_WM_MOVE\n");
- break;
-
- case WM_WM_SIZE:
- ErrorF("\tWM_WM_SIZE\n");
- break;
-#endif
-
case WM_WM_RAISE:
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("\tWM_WM_RAISE\n");
-#endif
+ winDebug ("\tWM_WM_RAISE\n");
/* Raise the window */
XRaiseWindow(pWMInfo->pDisplay, pNode->msg.iWindow);
-#if 0
- PreserveWin32Stack(pWMInfo, pNode->msg.iWindow, GW_HWNDPREV);
-#endif
break;
case WM_WM_LOWER:
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("\tWM_WM_LOWER\n");
-#endif
+ winDebug ("\tWM_WM_LOWER\n");
/* Lower the window */
XLowerWindow(pWMInfo->pDisplay, pNode->msg.iWindow);
break;
case WM_WM_MAP:
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("\tWM_WM_MAP\n");
-#endif
+ winDebug ("\tWM_WM_MAP\n");
/* Put a note as to the HWND associated with this Window */
XChangeProperty(pWMInfo->pDisplay, pNode->msg.iWindow, pWMInfo->atmPrivMap, XA_INTEGER, //pWMInfo->atmPrivMap,
32,
PropModeReplace,
- (unsigned char *) &(pNode->msg.hwndWindow), 1);
+ (unsigned char *) &(pNode->msg.hwndWindow), sizeof(HWND)/4);
UpdateName(pWMInfo, pNode->msg.iWindow);
UpdateIcon(pWMInfo, pNode->msg.iWindow);
break;
case WM_WM_MAP2:
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("\tWM_WM_MAP2\n");
-#endif
+ winDebug ("\tWM_WM_MAP2\n");
+
XChangeProperty(pWMInfo->pDisplay, pNode->msg.iWindow, pWMInfo->atmPrivMap, XA_INTEGER, //pWMInfo->atmPrivMap,
32,
PropModeReplace,
- (unsigned char *) &(pNode->msg.hwndWindow), 1);
+ (unsigned char *) &(pNode->msg.hwndWindow), sizeof(HWND)/4);
break;
case WM_WM_MAP3:
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("\tWM_WM_MAP3\n");
-#endif
+ winDebug ("\tWM_WM_MAP3\n");
+
/* Put a note as to the HWND associated with this Window */
XChangeProperty(pWMInfo->pDisplay, pNode->msg.iWindow, pWMInfo->atmPrivMap, XA_INTEGER, //pWMInfo->atmPrivMap,
32,
PropModeReplace,
- (unsigned char *) &(pNode->msg.hwndWindow), 1);
+ (unsigned char *) &(pNode->msg.hwndWindow), sizeof(HWND)/4);
UpdateName(pWMInfo, pNode->msg.iWindow);
UpdateIcon(pWMInfo, pNode->msg.iWindow);
UpdateStyle(pWMInfo, pNode->msg.iWindow);
@@ -792,18 +734,14 @@ winMultiWindowWMProc(void *pArg)
break;
case WM_WM_UNMAP:
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("\tWM_WM_UNMAP\n");
-#endif
+ winDebug ("\tWM_WM_UNMAP\n");
/* Unmap the window */
XUnmapWindow(pWMInfo->pDisplay, pNode->msg.iWindow);
break;
case WM_WM_KILL:
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("\tWM_WM_KILL\n");
-#endif
+ winDebug ("\tWM_WM_KILL\n");
{
int i, n, found = 0;
Atom *protocols;
@@ -829,9 +767,7 @@ winMultiWindowWMProc(void *pArg)
break;
case WM_WM_ACTIVATE:
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("\tWM_WM_ACTIVATE\n");
-#endif
+ winDebug ("\tWM_WM_ACTIVATE\n");
/* Set the input focus */
XSetInputFocus(pWMInfo->pDisplay,
@@ -887,9 +823,10 @@ winMultiWindowWMProc(void *pArg)
/* Free the passed-in argument */
free(pProcArg);
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("-winMultiWindowWMProc ()\n");
-#endif
+ winDebug("-winMultiWindowWMProc ()\n");
+
+ pthread_cleanup_pop(0);
+
return NULL;
}
@@ -913,6 +850,8 @@ winMultiWindowXMsgProc(void *pArg)
int iReturn;
XIconSize *xis;
+ pthread_cleanup_push(&winMultiWindowThreadExit, NULL);
+
winDebug("winMultiWindowXMsgProc - Hello\n");
/* Check that argument pointer is not invalid */
@@ -921,7 +860,7 @@ winMultiWindowXMsgProc(void *pArg)
pthread_exit(NULL);
}
- ErrorF("winMultiWindowXMsgProc - Calling pthread_mutex_lock ()\n");
+ winDebug("winMultiWindowXMsgProc - Calling pthread_mutex_lock ()\n");
/* Grab the server started mutex - pause until we get it */
iReturn = pthread_mutex_lock(pProcArg->ppmServerStarted);
@@ -931,23 +870,12 @@ winMultiWindowXMsgProc(void *pArg)
pthread_exit(NULL);
}
- ErrorF("winMultiWindowXMsgProc - pthread_mutex_lock () returned.\n");
-
- /* Allow multiple threads to access Xlib */
- if (XInitThreads() == 0) {
- ErrorF("winMultiWindowXMsgProc - XInitThreads () failed. Exiting.\n");
- pthread_exit(NULL);
- }
-
- /* See if X supports the current locale */
- if (XSupportsLocale() == False) {
- ErrorF("winMultiWindowXMsgProc - Warning: locale not supported by X\n");
- }
+ winDebug("winMultiWindowXMsgProc - pthread_mutex_lock () returned.\n");
/* Release the server started mutex */
pthread_mutex_unlock(pProcArg->ppmServerStarted);
- ErrorF("winMultiWindowXMsgProc - pthread_mutex_unlock () returned.\n");
+ winDebug("winMultiWindowXMsgProc - pthread_mutex_unlock () returned.\n");
/* Install our error handler */
XSetErrorHandler(winMultiWindowXMsgProcErrorHandler);
@@ -971,11 +899,10 @@ winMultiWindowXMsgProc(void *pArg)
}
/* Setup the display connection string x */
- snprintf(pszDisplay,
- 512, "127.0.0.1:%s.%d", display, (int) pProcArg->dwScreen);
+ winGetDisplayName(pszDisplay, (int)pProcArg->dwScreen);
/* Print the display connection string */
- ErrorF("winMultiWindowXMsgProc - DISPLAY=%s\n", pszDisplay);
+ winDebug("winMultiWindowXMsgProc - DISPLAY=%s\n", pszDisplay);
/* Use our generated cookie for authentication */
winSetAuthorization();
@@ -988,8 +915,8 @@ winMultiWindowXMsgProc(void *pArg)
/* Try to open the display */
pProcArg->pDisplay = XOpenDisplay(pszDisplay);
if (pProcArg->pDisplay == NULL) {
- ErrorF("winMultiWindowXMsgProc - Could not open display, try: %d, "
- "sleeping: %d\n", iRetries + 1, WIN_CONNECT_DELAY);
+ winDebug("winMultiWindowXMsgProc - Could not open display, try: %d, "
+ "sleeping: %d\n", iRetries + 1, WIN_CONNECT_DELAY);
++iRetries;
sleep(WIN_CONNECT_DELAY);
continue;
@@ -1006,15 +933,25 @@ winMultiWindowXMsgProc(void *pArg)
pthread_exit(NULL);
}
- ErrorF("winMultiWindowXMsgProc - XOpenDisplay () returned and "
- "successfully opened the display.\n");
+ winDebug("winMultiWindowXMsgProc - XOpenDisplay () returned and "
+ "successfully opened the display.\n");
/* Check if another window manager is already running */
+#ifdef XWIN_MULTIWINDOWINTWM
g_fAnotherWMRunning =
CheckAnotherWindowManager(pProcArg->pDisplay, pProcArg->dwScreen,
pProcArg->pWMInfo->fAllowOtherWM);
+#else
+ g_fAnotherWMRunning =
+ CheckAnotherWindowManager(pProcArg->pDisplay, pProcArg->dwScreen,
+ FALSE);
+#endif
- if (g_fAnotherWMRunning && !pProcArg->pWMInfo->fAllowOtherWM) {
+ if (g_fAnotherWMRunning
+#ifdef XWIN_MULTIWINDOWINTWM
+ && !pProcArg->pWMInfo->fAllowOtherWM
+#endif
+ ) {
ErrorF("winMultiWindowXMsgProc - "
"another window manager is running. Exiting.\n");
pthread_exit(NULL);
@@ -1056,31 +993,33 @@ winMultiWindowXMsgProc(void *pArg)
if (g_shutdown)
break;
+#ifdef XWIN_MULTIWINDOWINTWM
if (pProcArg->pWMInfo->fAllowOtherWM && !XPending(pProcArg->pDisplay)) {
if (CheckAnotherWindowManager
(pProcArg->pDisplay, pProcArg->dwScreen, TRUE)) {
if (!g_fAnotherWMRunning) {
g_fAnotherWMRunning = TRUE;
- SendMessage(*(HWND *) pProcArg->hwndScreen, WM_UNMANAGE, 0,
+ SendMessage(pProcArg->hwndScreen, WM_UNMANAGE, 0,
0);
}
}
else {
if (g_fAnotherWMRunning) {
g_fAnotherWMRunning = FALSE;
- SendMessage(*(HWND *) pProcArg->hwndScreen, WM_MANAGE, 0,
+ SendMessage(pProcArg->hwndScreen, WM_MANAGE, 0,
0);
}
}
Sleep(500);
continue;
}
+#endif
/* Fetch next event */
XNextEvent(pProcArg->pDisplay, &event);
/* Branch on event type */
- if (event.type == CreateNotify) {
+ if (event.type == MapNotify /* CreateNotify */) {
XWindowAttributes attr;
XSelectInput(pProcArg->pDisplay,
@@ -1090,7 +1029,7 @@ winMultiWindowXMsgProc(void *pArg)
XGetWindowAttributes(pProcArg->pDisplay,
event.xcreatewindow.window, &attr);
- if (!attr.override_redirect)
+ if (!attr.override_redirect && attr.class != InputOnly)
XSetWindowBorderWidth(pProcArg->pDisplay,
event.xcreatewindow.window, 0);
}
@@ -1138,6 +1077,7 @@ winMultiWindowXMsgProc(void *pArg)
event_send.xreparent.parent = parent;
event_send.xreparent.x = attr.x;
event_send.xreparent.y = attr.y;
+ event_send.xreparent.override_redirect = False;
XSendEvent(event.xmap.display,
event.xmap.window,
@@ -1210,7 +1150,7 @@ winMultiWindowXMsgProc(void *pArg)
else if (event.type == ClientMessage
&& event.xclient.message_type == atmWmChange
&& event.xclient.data.l[0] == IconicState) {
- ErrorF("winMultiWindowXMsgProc - WM_CHANGE_STATE - IconicState\n");
+ winDebug("winMultiWindowXMsgProc - WM_CHANGE_STATE - IconicState\n");
memset(&msg, 0, sizeof(msg));
@@ -1222,7 +1162,7 @@ winMultiWindowXMsgProc(void *pArg)
}
XCloseDisplay(pProcArg->pDisplay);
- pthread_exit(NULL);
+ pthread_cleanup_pop(0);
return NULL;
}
@@ -1259,7 +1199,9 @@ winInitWM(void **ppWMInfo,
/* Set a return pointer to the Window Manager info structure */
*ppWMInfo = pWMInfo;
+#ifdef XWIN_MULTIWINDOWINTWM
pWMInfo->fAllowOtherWM = allowOtherWM;
+#endif
/* Setup the argument structure for the thread function */
pArg->dwScreen = dwScreen;
@@ -1290,9 +1232,7 @@ winInitWM(void **ppWMInfo,
return FALSE;
}
-#if CYGDEBUG || YES
winDebug("winInitWM - Returning.\n");
-#endif
return TRUE;
}
@@ -1316,7 +1256,7 @@ winInitMultiWindowWM(WMInfoPtr pWMInfo, WMProcArgPtr pProcArg)
pthread_exit(NULL);
}
- ErrorF("winInitMultiWindowWM - Calling pthread_mutex_lock ()\n");
+ winDebug("winInitMultiWindowWM - Calling pthread_mutex_lock ()\n");
/* Grab our garbage mutex to satisfy pthread_cond_wait */
iReturn = pthread_mutex_lock(pProcArg->ppmServerStarted);
@@ -1326,23 +1266,12 @@ winInitMultiWindowWM(WMInfoPtr pWMInfo, WMProcArgPtr pProcArg)
pthread_exit(NULL);
}
- ErrorF("winInitMultiWindowWM - pthread_mutex_lock () returned.\n");
-
- /* Allow multiple threads to access Xlib */
- if (XInitThreads() == 0) {
- ErrorF("winInitMultiWindowWM - XInitThreads () failed. Exiting.\n");
- pthread_exit(NULL);
- }
-
- /* See if X supports the current locale */
- if (XSupportsLocale() == False) {
- ErrorF("winInitMultiWindowWM - Warning: Locale not supported by X.\n");
- }
+ winDebug("winInitMultiWindowWM - pthread_mutex_lock () returned.\n");
/* Release the server started mutex */
pthread_mutex_unlock(pProcArg->ppmServerStarted);
- ErrorF("winInitMultiWindowWM - pthread_mutex_unlock () returned.\n");
+ winDebug("winInitMultiWindowWM - pthread_mutex_unlock () returned.\n");
/* Install our error handler */
XSetErrorHandler(winMultiWindowWMErrorHandler);
@@ -1366,11 +1295,10 @@ winInitMultiWindowWM(WMInfoPtr pWMInfo, WMProcArgPtr pProcArg)
}
/* Setup the display connection string x */
- snprintf(pszDisplay,
- 512, "127.0.0.1:%s.%d", display, (int) pProcArg->dwScreen);
+ winGetDisplayName(pszDisplay, (int)pProcArg->dwScreen);
/* Print the display connection string */
- ErrorF("winInitMultiWindowWM - DISPLAY=%s\n", pszDisplay);
+ winDebug("winInitMultiWindowWM - DISPLAY=%s\n", pszDisplay);
/* Use our generated cookie for authentication */
winSetAuthorization();
@@ -1398,8 +1326,8 @@ winInitMultiWindowWM(WMInfoPtr pWMInfo, WMProcArgPtr pProcArg)
pthread_exit(NULL);
}
- ErrorF("winInitMultiWindowWM - XOpenDisplay () returned and "
- "successfully opened the display.\n");
+ winDebug("winInitMultiWindowWM - XOpenDisplay () returned and "
+ "successfully opened the display.\n");
/* Create some atoms */
pWMInfo->atmWmProtos = XInternAtom(pWMInfo->pDisplay,
@@ -1430,9 +1358,7 @@ winSendMessageToWM(void *pWMInfo, winWMMessagePtr pMsg)
{
WMMsgNodePtr pNode;
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("winSendMessageToWM ()\n");
-#endif
+ winDebug("winSendMessageToWM ()\n");
pNode = (WMMsgNodePtr) malloc(sizeof(WMMsgNodeRec));
if (pNode != NULL) {
@@ -1458,7 +1384,18 @@ winMultiWindowWMErrorHandler(Display * pDisplay, XErrorEvent * pErr)
}
XGetErrorText(pDisplay, pErr->error_code, pszErrorMsg, sizeof(pszErrorMsg));
- ErrorF("winMultiWindowWMErrorHandler - ERROR: %s\n", pszErrorMsg);
+ ErrorF("winMultiWindowWMErrorHandler - ERROR: %s\n"
+ " errorCode %d\n"
+ " serial %d\n"
+ " resourceID 0x%x\n"
+ " majorCode %d\n"
+ " minorCode %d\n"
+ , pszErrorMsg
+ , pErr->error_code
+ , pErr->serial
+ , pErr->resourceid
+ , pErr->request_code
+ , pErr->minor_code);
return 0;
}
@@ -1496,9 +1433,18 @@ winMultiWindowXMsgProcErrorHandler(Display * pDisplay, XErrorEvent * pErr)
char pszErrorMsg[100];
XGetErrorText(pDisplay, pErr->error_code, pszErrorMsg, sizeof(pszErrorMsg));
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("winMultiWindowXMsgProcErrorHandler - ERROR: %s\n", pszErrorMsg);
-#endif
+ ErrorF("winMultiWindowXMsgProcErrorHandler - ERROR: %s\n"
+ " errorCode %d\n"
+ " serial %d\n"
+ " resourceID 0x%x\n"
+ " majorCode %d\n"
+ " minorCode %d\n"
+ , pszErrorMsg
+ , pErr->error_code
+ , pErr->serial
+ , pErr->resourceid
+ , pErr->request_code
+ , pErr->minor_code);
return 0;
}
@@ -1524,6 +1470,18 @@ winMultiWindowXMsgProcIOErrorHandler(Display * pDisplay)
}
/*
+ * winMultiWindowThreadExit - Thread exit handler
+ */
+
+static void
+winMultiWindowThreadExit(void *arg)
+{
+ AbortDDX(EXIT_ERR_ABORT);
+
+ /* multiwindow client thread has exited, stop server as well */
+ TerminateProcess(GetCurrentProcess(),1);
+}
+/*
* Catch RedirectError to detect other window manager running
*/
@@ -1574,7 +1532,7 @@ CheckAnotherWindowManager(Display * pDisplay, DWORD dwScreen,
void
winDeinitMultiWindowWM(void)
{
- ErrorF("winDeinitMultiWindowWM - Noting shutdown in progress\n");
+ winDebug("winDeinitMultiWindowWM - Noting shutdown in progress\n");
g_shutdown = TRUE;
}
@@ -1603,7 +1561,9 @@ winApplyHints(Display * pDisplay, Window iWindow, HWND hWnd, HWND * zstyle)
int format;
unsigned long hint = 0, maxmin = 0, nitems = 0, left = 0;
unsigned long style, exStyle;
+ WindowPtr pWin = GetProp (hWnd, WIN_WINDOW_PROP);
MwmHints *mwm_hint = NULL;
+ WinXSizeHints SizeHints;
if (!hWnd)
return;
@@ -1730,17 +1690,18 @@ winApplyHints(Display * pDisplay, Window iWindow, HWND hWnd, HWND * zstyle)
*/
{
XClassHint class_hint = { 0, 0 };
- char *window_name = 0;
char *application_id = 0;
if (XGetClassHint(pDisplay, iWindow, &class_hint)) {
+ char *window_name = 0;
+ char *application_id = 0;
XFetchName(pDisplay, iWindow, &window_name);
style =
winOverrideStyle(class_hint.res_name, class_hint.res_class,
window_name);
-#define APPLICATION_ID_FORMAT "%s.xwin.%s"
+#define APPLICATION_ID_FORMAT "%s.vcxsrv.%s"
#define APPLICATION_ID_UNKNOWN "unknown"
if (class_hint.res_class) {
asprintf(&application_id, APPLICATION_ID_FORMAT, XVENDORNAME,
@@ -1786,12 +1747,10 @@ winApplyHints(Display * pDisplay, Window iWindow, HWND hWnd, HWND * zstyle)
HINT_SIZEBOX;
else if (style & STYLE_OUTLINE)
hint =
- (hint & ~HINT_NOFRAME & ~HINT_SIZEBOX & ~HINT_CAPTION) |
- HINT_BORDER;
+ (hint & ~HINT_NOFRAME & ~HINT_CAPTION) | HINT_BORDER;
else if (style & STYLE_NOFRAME)
hint =
- (hint & ~HINT_BORDER & ~HINT_CAPTION & ~HINT_SIZEBOX) |
- HINT_NOFRAME;
+ (hint & ~HINT_BORDER & ~HINT_CAPTION) | HINT_NOFRAME;
/* Now apply styles to window */
style = GetWindowLongPtr(hWnd, GWL_STYLE);
@@ -1801,7 +1760,7 @@ winApplyHints(Display * pDisplay, Window iWindow, HWND hWnd, HWND * zstyle)
style &= ~WS_CAPTION & ~WS_SIZEBOX; /* Just in case */
if (!(hint & ~HINT_SKIPTASKBAR)) /* No hints, default */
- style = style | WS_CAPTION | WS_SIZEBOX;
+ style = style | WS_CAPTION;
else if (hint & HINT_NOFRAME) /* No frame, no decorations */
style = style & ~WS_CAPTION & ~WS_SIZEBOX;
else
@@ -1821,6 +1780,19 @@ winApplyHints(Display * pDisplay, Window iWindow, HWND hWnd, HWND * zstyle)
if (hint & HINT_SKIPTASKBAR)
style = style & ~WS_MINIMIZEBOX; /* window will become lost if minimized */
+ if (!IsWindow (hWnd))
+ {
+ ErrorF("Windows window 0x%x has become invalid, so returning without applying hints\n",hWnd);
+ return;
+ }
+
+ if (winMultiWindowGetWMNormalHints(pWin, &SizeHints))
+ {
+ if (!(SizeHints.max_width&&SizeHints.max_height&&(SizeHints.min_width == SizeHints.max_width)&&(SizeHints.min_height == SizeHints.max_height) ))
+ style|=WS_SIZEBOX;
+ }
+ else
+ style|=WS_SIZEBOX;
SetWindowLongPtr(hWnd, GWL_STYLE, style);
exStyle = GetWindowLongPtr(hWnd, GWL_EXSTYLE);
@@ -1861,9 +1833,6 @@ winUpdateWindowPosition(HWND hWnd, HWND * zstyle)
/* Setup a rectangle with the X window position and size */
SetRect(&rcNew, iX, iY, iX + iWidth, iY + iHeight);
- winDebug("winUpdateWindowPosition - drawable extent (%d, %d)-(%d, %d)\n",
- rcNew.left, rcNew.top, rcNew.right, rcNew.bottom);
-
AdjustWindowRectEx(&rcNew, GetWindowLongPtr(hWnd, GWL_STYLE), FALSE,
GetWindowLongPtr(hWnd, GWL_EXSTYLE));
@@ -1880,9 +1849,6 @@ winUpdateWindowPosition(HWND hWnd, HWND * zstyle)
rcNew.bottom += iDy;
}
- winDebug("winUpdateWindowPosition - Window extent (%d, %d)-(%d, %d)\n",
- rcNew.left, rcNew.top, rcNew.right, rcNew.bottom);
-
/* Position the Windows window */
SetWindowPos(hWnd, *zstyle, rcNew.left, rcNew.top,
rcNew.right - rcNew.left, rcNew.bottom - rcNew.top, 0);
diff --git a/xorg-server/hw/xwin/winmultiwindowwndproc.c b/xorg-server/hw/xwin/winmultiwindowwndproc.c
index 9292e73ca..1488a657c 100644
--- a/xorg-server/hw/xwin/winmultiwindowwndproc.c
+++ b/xorg-server/hw/xwin/winmultiwindowwndproc.c
@@ -35,6 +35,10 @@
#ifdef HAVE_XWIN_CONFIG_H
#include <xwin-config.h>
#endif
+#define GC tempGC // This is to avoid name conflicts when including the next headers which also define GC
+#include <X11/Xutil.h>
+#undef GC
+
#include "win.h"
#include "dixevents.h"
#include "winmultiwindowclass.h"
@@ -44,6 +48,14 @@
extern void winUpdateWindowPosition(HWND hWnd, HWND * zstyle);
+#ifdef XKB
+#ifndef XKB_IN_SERVER
+#define XKB_IN_SERVER
+#endif
+#include <xkbsrv.h>
+#endif
+
+
/*
* Local globals
*/
@@ -316,11 +328,10 @@ winTopLevelWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
static Bool s_fTracking = FALSE;
Bool needRestack = FALSE;
LRESULT ret;
+ static Bool hasEnteredSizeMove = FALSE;
-#if CYGDEBUG
winDebugWin32Message("winTopLevelWindowProc", hwnd, message, wParam,
lParam);
-#endif
/* Check if the Windows window property for our X window pointer is valid */
if ((pWin = GetProp(hwnd, WIN_WINDOW_PROP)) != NULL) {
@@ -352,32 +363,13 @@ winTopLevelWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
fWMMsgInitialized = TRUE;
-#if 0
- /*
- * Print some debugging information
- */
-
- ErrorF("hWnd %08X\n", hwnd);
- ErrorF("pWin %08X\n", pWin);
- ErrorF("pDraw %08X\n", pDraw);
- ErrorF("\ttype %08X\n", pWin->drawable.type);
- ErrorF("\tclass %08X\n", pWin->drawable.class);
- ErrorF("\tdepth %08X\n", pWin->drawable.depth);
- ErrorF("\tbitsPerPixel %08X\n", pWin->drawable.bitsPerPixel);
- ErrorF("\tid %08X\n", pWin->drawable.id);
- ErrorF("\tx %08X\n", pWin->drawable.x);
- ErrorF("\ty %08X\n", pWin->drawable.y);
- ErrorF("\twidth %08X\n", pWin->drawable.width);
- ErrorF("\thenght %08X\n", pWin->drawable.height);
- ErrorF("\tpScreen %08X\n", pWin->drawable.pScreen);
- ErrorF("\tserialNumber %08X\n", pWin->drawable.serialNumber);
- ErrorF("g_iWindowPrivateKey %p\n", g_iWindowPrivateKey);
- ErrorF("pWinPriv %08X\n", pWinPriv);
- ErrorF("s_pScreenPriv %08X\n", s_pScreenPriv);
- ErrorF("s_pScreenInfo %08X\n", s_pScreenInfo);
- ErrorF("hwndScreen %08X\n", hwndScreen);
-#endif
}
+ #ifdef _DEBUG
+ else if (message!=WM_CREATE)
+ {
+ winDebug("Warning: message 0x%x received when WIN_WINDOW_PROP NULL\n",message);
+ }
+ #endif
/* Branch on message type */
switch (message) {
@@ -409,10 +401,9 @@ winTopLevelWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
GetWindowRect(hwnd, &rWindow);
hRgnWindow = CreateRectRgnIndirect(&rWindow);
SetWindowRgn(hwnd, hRgnWindow, TRUE);
- DeleteObject(hRgnWindow);
}
- SetWindowLongPtr(hwnd, GWLP_USERDATA, (LONG_PTR) XMING_SIGNATURE);
+ SetWindowLongPtr(hwnd, GWLP_USERDATA, (LONG_PTR)VCXSRV_SIGNATURE);
return 0;
@@ -593,6 +584,9 @@ winTopLevelWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
break;
case WM_MOUSELEAVE:
+ /* We can't do anything without privates */
+ if (s_pScreenPriv == NULL || s_pScreenInfo->fIgnoreInput)
+ break;
/* Mouse has left our client area */
/* Flag that we are no longer tracking */
@@ -756,7 +750,7 @@ winTopLevelWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
if (wParam == VK_F4 && (GetKeyState(VK_MENU) & 0x8000))
break;
-#if CYGWINDOWING_DEBUG
+#ifdef WINDBG
if (wParam == VK_ESCAPE) {
/* Place for debug: put any tests and dumps here */
WINDOWPLACEMENT windPlace;
@@ -766,25 +760,25 @@ winTopLevelWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
windPlace.length = sizeof(WINDOWPLACEMENT);
GetWindowPlacement(hwnd, &windPlace);
pRect = &windPlace.rcNormalPosition;
- ErrorF("\nCYGWINDOWING Dump:\n"
+ winDebug ("\nCYGWINDOWING Dump:\n"
"\tdrawable: (%hd, %hd) - %hdx%hd\n", pDraw->x,
pDraw->y, pDraw->width, pDraw->height);
- ErrorF("\twindPlace: (%ld, %ld) - %ldx%ld\n", pRect->left,
- pRect->top, pRect->right - pRect->left,
- pRect->bottom - pRect->top);
+ winDebug ("\twindPlace: (%ld, %ld) - %ldx%ld\n", pRect->left,
+ pRect->top, pRect->right - pRect->left,
+ pRect->bottom - pRect->top);
if (GetClientRect(hwnd, &rc)) {
pRect = &rc;
- ErrorF("\tClientRect: (%ld, %ld) - %ldx%ld\n", pRect->left,
- pRect->top, pRect->right - pRect->left,
- pRect->bottom - pRect->top);
+ winDebug ("\tClientRect: (%ld, %ld) - %ldx%ld\n", pRect->left,
+ pRect->top, pRect->right - pRect->left,
+ pRect->bottom - pRect->top);
}
if (GetWindowRect(hwnd, &rc)) {
pRect = &rc;
- ErrorF("\tWindowRect: (%ld, %ld) - %ldx%ld\n", pRect->left,
- pRect->top, pRect->right - pRect->left,
- pRect->bottom - pRect->top);
+ winDebug ("\tWindowRect: (%ld, %ld) - %ldx%ld\n", pRect->left,
+ pRect->top, pRect->right - pRect->left,
+ pRect->bottom - pRect->top);
}
- ErrorF("\n");
+ winDebug ("\n");
}
#endif
@@ -819,13 +813,12 @@ winTopLevelWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
/* Tell our Window Manager thread to activate the window */
wmMsg.msg = WM_WM_ACTIVATE;
- if (fWMMsgInitialized)
- if (!pWin || !pWin->overrideRedirect) /* for OOo menus */
- winSendMessageToWM(s_pScreenPriv->pWMInfo, &wmMsg);
+ if (fWMMsgInitialized && pWin->realized && !pWin->overrideRedirect /* for OOo menus */)
+ winSendMessageToWM (s_pScreenPriv->pWMInfo, &wmMsg);
}
/* Prevent the mouse wheel from stalling when another window is minimized */
if (HIWORD(wParam) == 0 && LOWORD(wParam) == WA_ACTIVE &&
- (HWND) lParam != NULL && (HWND) lParam != (HWND) GetParent(hwnd))
+ (HWND) lParam != NULL && (HWND) lParam != GetParent(hwnd))
SetFocus(hwnd);
return 0;
@@ -856,7 +849,7 @@ winTopLevelWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
/* Branch on if the window was killed in X already */
if (pWinPriv && !pWinPriv->fXKilled) {
- ErrorF("winTopLevelWindowProc - WM_DESTROY - WM_WM_KILL\n");
+ winDebug ("winTopLevelWindowProc - WM_DESTROY - WM_WM_KILL\n");
/* Tell our Window Manager thread to kill the window */
wmMsg.msg = WM_WM_KILL;
@@ -872,7 +865,8 @@ winTopLevelWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
case WM_MOVE:
/* Adjust the X Window to the moved Windows window */
- winAdjustXWindow(pWin, hwnd);
+ if (!hasEnteredSizeMove) winAdjustXWindow (pWin, hwnd);
+ /* else: Wait for WM_EXITSIZEMOVE */
return 0;
case WM_SHOWWINDOW:
@@ -920,13 +914,10 @@ winTopLevelWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
else { /* It is an overridden window so make it top of Z stack */
HWND forHwnd = GetForegroundWindow();
-
-#if CYGWINDOWING_DEBUG
- ErrorF("overridden window is shown\n");
-#endif
+ winDebug ("overridden window is shown\n");
if (forHwnd != NULL) {
if (GetWindowLongPtr(forHwnd, GWLP_USERDATA) & (LONG_PTR)
- XMING_SIGNATURE) {
+ VCXSRV_SIGNATURE) {
if (GetWindowLongPtr(forHwnd, GWL_EXSTYLE) & WS_EX_TOPMOST)
SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, 0, 0,
SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
@@ -951,6 +942,26 @@ winTopLevelWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
/* for applications like xterm */
return ValidateSizing(hwnd, pWin, wParam, lParam);
+ case WM_WINDOWPOSCHANGING:
+ {
+ /*
+ When window is moved or resized, force it to be redrawn, so that
+ any OpenGL content is re-drawn correctly, rather than copying bits
+ (which seem to be wrong, either because we are copying the wrong
+ window in the window heirarchy, or because we don't have the bits
+ drawn by OpenGL at all)
+
+ XXX: really this should check if any child has fWglUsed set, but
+ that might be expensive to check....
+ */
+ if (g_fNativeGl)
+ {
+ LPWINDOWPOS pWinPos = (LPWINDOWPOS)lParam;
+ pWinPos->flags |= SWP_NOCOPYBITS;
+ }
+ }
+ break;
+
case WM_WINDOWPOSCHANGED:
{
LPWINDOWPOS pWinPos = (LPWINDOWPOS) lParam;
@@ -1005,9 +1016,19 @@ winTopLevelWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
*/
break;
+ case WM_ENTERSIZEMOVE:
+ hasEnteredSizeMove = TRUE;
+ return 0;
+
+ case WM_EXITSIZEMOVE:
+ /* Adjust the X Window to the moved Windows window */
+ hasEnteredSizeMove = FALSE;
+ winAdjustXWindow (pWin, hwnd);
+ return 0;
+
case WM_SIZE:
/* see dix/window.c */
-#if CYGWINDOWING_DEBUG
+#ifdef WINDBG
{
char buf[64];
@@ -1024,84 +1045,28 @@ winTopLevelWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
default:
strcpy(buf, "UNKNOWN_FLAG");
}
- ErrorF("winTopLevelWindowProc - WM_SIZE to %dx%d (%s) - %d ms\n",
- (int) LOWORD(lParam), (int) HIWORD(lParam), buf,
- (int) (GetTickCount()));
+ winDebug ("winTopLevelWindowProc - WM_SIZE to %dx%d (%s) - %d ms\n",
+ (int) LOWORD(lParam), (int) HIWORD(lParam), buf,
+ (int) (GetTickCount()));
}
#endif
- /* Adjust the X Window to the moved Windows window */
- winAdjustXWindow(pWin, hwnd);
- return 0; /* end of WM_SIZE handler */
-
- case WM_STYLECHANGING:
- /*
- When the style changes, adjust the Windows window size so the client area remains the same size,
- and adjust the Windows window position so that the client area remains in the same place.
- */
- {
- RECT newWinRect;
- DWORD dwExStyle;
- DWORD dwStyle;
- DWORD newStyle = ((STYLESTRUCT *) lParam)->styleNew;
- WINDOWINFO wi;
-
- dwExStyle = GetWindowLongPtr(hwnd, GWL_EXSTYLE);
- dwStyle = GetWindowLongPtr(hwnd, GWL_STYLE);
-
- winDebug("winTopLevelWindowProc - WM_STYLECHANGING from %08x %08x\n",
- dwStyle, dwExStyle);
-
- if (wParam == GWL_EXSTYLE)
- dwExStyle = newStyle;
-
- if (wParam == GWL_STYLE)
- dwStyle = newStyle;
-
- winDebug("winTopLevelWindowProc - WM_STYLECHANGING to %08x %08x\n",
- dwStyle, dwExStyle);
-
- /* Get client rect in screen coordinates */
- wi.cbSize = sizeof(WINDOWINFO);
- GetWindowInfo(hwnd, &wi);
-
- winDebug
- ("winTopLevelWindowProc - WM_STYLECHANGING client area {%d, %d, %d, %d}, {%d x %d}\n",
- wi.rcClient.left, wi.rcClient.top, wi.rcClient.right,
- wi.rcClient.bottom, wi.rcClient.right - wi.rcClient.left,
- wi.rcClient.bottom - wi.rcClient.top);
-
- newWinRect = wi.rcClient;
- if (!AdjustWindowRectEx(&newWinRect, dwStyle, FALSE, dwExStyle))
- winDebug
- ("winTopLevelWindowProc - WM_STYLECHANGING AdjustWindowRectEx failed\n");
-
- winDebug
- ("winTopLevelWindowProc - WM_STYLECHANGING window area should be {%d, %d, %d, %d}, {%d x %d}\n",
- newWinRect.left, newWinRect.top, newWinRect.right,
- newWinRect.bottom, newWinRect.right - newWinRect.left,
- newWinRect.bottom - newWinRect.top);
-
- /*
- Style change hasn't happened yet, so we can't adjust the window size yet, as the winAdjustXWindow()
- which WM_SIZE does will use the current (unchanged) style. Instead make a note to change it when
- WM_STYLECHANGED is received...
- */
- pWinPriv->hDwp = BeginDeferWindowPos(1);
- pWinPriv->hDwp =
- DeferWindowPos(pWinPriv->hDwp, hwnd, NULL, newWinRect.left,
- newWinRect.top, newWinRect.right - newWinRect.left,
- newWinRect.bottom - newWinRect.top,
- SWP_NOACTIVATE | SWP_NOZORDER);
+ if (!hasEnteredSizeMove)
+ {
+ /* Adjust the X Window to the moved Windows window */
+ winAdjustXWindow (pWin, hwnd);
+ if (wParam == SIZE_MINIMIZED) winReorderWindowsMultiWindow();
}
- return 0;
+ /* else: wait for WM_EXITSIZEMOVE */
+ return 0; /* end of WM_SIZE handler */
case WM_STYLECHANGED:
+ /* when the style changes, adjust the window size so the client area remains the same */
{
- if (pWinPriv->hDwp) {
- EndDeferWindowPos(pWinPriv->hDwp);
- pWinPriv->hDwp = NULL;
- }
- winDebug("winTopLevelWindowProc - WM_STYLECHANGED done\n");
+ LONG x,y;
+ DrawablePtr pDraw = &pWin->drawable;
+ x = pDraw->x - wBorderWidth(pWin);
+ y = pDraw->y - wBorderWidth(pWin);
+ winPositionWindowMultiWindow(pWin, x, y);
}
return 0;
@@ -1109,10 +1074,8 @@ winTopLevelWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
/* Check if this window needs to be made active when clicked */
if (!GetProp(pWinPriv->hWnd, WIN_NEEDMANAGE_PROP)) {
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("winTopLevelWindowProc - WM_MOUSEACTIVATE - "
- "MA_NOACTIVATE\n");
-#endif
+ winDebug ("winTopLevelWindowProc - WM_MOUSEACTIVATE - "
+ "MA_NOACTIVATE\n");
/* */
return MA_NOACTIVATE;
diff --git a/xorg-server/hw/xwin/winnativegdi.c b/xorg-server/hw/xwin/winnativegdi.c
index a2a5123a0..3cd565313 100644
--- a/xorg-server/hw/xwin/winnativegdi.c
+++ b/xorg-server/hw/xwin/winnativegdi.c
@@ -109,7 +109,7 @@ winCloseScreenNativeGDI(ScreenPtr pScreen)
winScreenPriv(pScreen);
winScreenInfo *pScreenInfo = pScreenPriv->pScreenInfo;
- ErrorF("winCloseScreenNativeGDI - Freeing screen resources\n");
+ winDebug ("winCloseScreenNativeGDI - Freeing screen resources\n");
/* Flag that the screen is closed */
pScreenPriv->fClosed = TRUE;
@@ -123,7 +123,7 @@ winCloseScreenNativeGDI(ScreenPtr pScreen)
/* Delete the window property */
RemoveProp(pScreenPriv->hwndScreen, WIN_SCR_PROP);
- ErrorF("winCloseScreenNativeGDI - Destroying window\n");
+ winDebug ("winCloseScreenNativeGDI - Destroying window\n");
/* Delete tray icon, if we have one */
if (!pScreenInfo->fNoTrayIcon)
@@ -147,7 +147,7 @@ winCloseScreenNativeGDI(ScreenPtr pScreen)
/* Free the screen privates for this screen */
free(pScreenPriv);
- ErrorF("winCloseScreenNativeGDI - Returning\n");
+ winDebug ("winCloseScreenNativeGDI - Returning\n");
return TRUE;
}
@@ -202,8 +202,8 @@ winInitVisualsNativeGDI(ScreenPtr pScreen)
}
/* Tell the user how many bits per RGB we are using */
- ErrorF("winInitVisualsNativeGDI - Using dwBitsPerRGB: %d\n",
- (int) pScreenPriv->dwBitsPerRGB);
+ winDebug ("winInitVisualsNativeGDI - Using dwBitsPerRGB: %d\n",
+ (int) pScreenPriv->dwBitsPerRGB);
/* Create a single visual according to the Windows screen depth */
switch (pScreenInfo->dwDepth) {
@@ -223,7 +223,7 @@ winInitVisualsNativeGDI(ScreenPtr pScreen)
break;
case 8:
- ErrorF("winInitVisuals - Calling miSetVisualTypesAndMasks\n");
+ winDebug ("winInitVisuals - Calling miSetVisualTypesAndMasks\n");
if (!miSetVisualTypesAndMasks(pScreenInfo->dwDepth,
StaticColorMask,
pScreenPriv->dwBitsPerRGB,
@@ -241,9 +241,7 @@ winInitVisualsNativeGDI(ScreenPtr pScreen)
return FALSE;
}
-#if 1
- ErrorF("winInitVisualsNativeGDI - Returning\n");
-#endif
+ winDebug ("winInitVisualsNativeGDI - Returning\n");
return TRUE;
}
@@ -359,11 +357,13 @@ winCreateDIBNativeGDI(int iWidth, int iHeight, int iDepth,
pbmih->biPlanes = 1;
pbmih->biBitCount = iDepth;
pbmih->biCompression = BI_RGB;
+ /*
pbmih->biSizeImage = 0;
pbmih->biXPelsPerMeter = 0;
pbmih->biYPelsPerMeter = 0;
pbmih->biClrUsed = 0;
pbmih->biClrImportant = 0;
+ */
/* Setup color table for mono DIBs */
if (iDepth == 1) {
diff --git a/xorg-server/hw/xwin/winpfbdd.c b/xorg-server/hw/xwin/winpfbdd.c
index f87000726..12f3b172f 100644
--- a/xorg-server/hw/xwin/winpfbdd.c
+++ b/xorg-server/hw/xwin/winpfbdd.c
@@ -73,7 +73,7 @@ winAllocateFBPrimaryDD(ScreenPtr pScreen)
DDSURFACEDESC *pddsdOffscreen = NULL;
RECT rcClient;
- ErrorF("winAllocateFBPrimaryDD\n");
+ winDebug ("winAllocateFBPrimaryDD\n");
/* Get client area location in screen coords */
GetClientRect(pScreenPriv->hwndScreen, &rcClient);
@@ -95,7 +95,7 @@ winAllocateFBPrimaryDD(ScreenPtr pScreen)
return FALSE;
}
- ErrorF("winAllocateFBPrimaryDD - Created and initialized DD\n");
+ winDebug ("winAllocateFBPrimaryDD - Created and initialized DD\n");
/* Are we windowed or fullscreen? */
if (pScreenInfo->fFullScreen) {
@@ -141,7 +141,7 @@ winAllocateFBPrimaryDD(ScreenPtr pScreen)
FatalError("winAllocateFBPrimaryDD - Could not create primary "
"surface %08x\n", (unsigned int) ddrval);
- ErrorF("winAllocateFBPrimaryDD - Created primary\n");
+ winDebug ("winAllocateFBPrimaryDD - Created primary\n");
/* Allocate a DD surface description for our screen privates */
pddsdPrimary = pScreenPriv->pddsdPrimary = malloc(sizeof(DDSURFACEDESC));
@@ -175,7 +175,7 @@ winAllocateFBPrimaryDD(ScreenPtr pScreen)
FatalError("winAllocateFBPrimaryDD - Could not create shadow "
"surface\n");
- ErrorF("winAllocateFBPrimaryDD - Created offscreen\n");
+ winDebug ("winAllocateFBPrimaryDD - Created offscreen\n");
/* Allocate a DD surface description for our screen privates */
pddsdOffscreen = pScreenPriv->pddsdOffscreen
@@ -186,7 +186,7 @@ winAllocateFBPrimaryDD(ScreenPtr pScreen)
ZeroMemory(pddsdOffscreen, sizeof(*pddsdOffscreen));
pddsdOffscreen->dwSize = sizeof(*pddsdOffscreen);
- ErrorF("winAllocateFBPrimaryDD - Locking primary\n");
+ winDebug ("winAllocateFBPrimaryDD - Locking primary\n");
/* Lock the primary surface */
ddrval = IDirectDrawSurface2_Lock(pScreenPriv->pddsPrimary,
@@ -197,7 +197,7 @@ winAllocateFBPrimaryDD(ScreenPtr pScreen)
FatalError("winAllocateFBPrimaryDD - Could not lock "
"primary surface\n");
- ErrorF("winAllocateFBPrimaryDD - Locked primary\n");
+ winDebug ("winAllocateFBPrimaryDD - Locked primary\n");
/* We don't know how to deal with anything other than RGB */
if (!(pddsdPrimary->ddpfPixelFormat.dwFlags & DDPF_RGB))
@@ -215,7 +215,7 @@ winAllocateFBPrimaryDD(ScreenPtr pScreen)
pScreenPriv->dwGreenMask = pddsdPrimary->ddpfPixelFormat.u3.dwGBitMask;
pScreenPriv->dwBlueMask = pddsdPrimary->ddpfPixelFormat.u4.dwBBitMask;
- ErrorF("winAllocateFBPrimaryDD - Returning\n");
+ winDebug ("winAllocateFBPrimaryDD - Returning\n");
return TRUE;
}
@@ -339,11 +339,11 @@ winInitVisualsPrimaryDD(ScreenPtr pScreen)
else
pScreenPriv->dwBitsPerRGB = dwBlueBits;
- ErrorF("winInitVisualsPrimaryDD - Masks: %08x %08x %08x bpRGB: %d\n",
- (unsigned int) pScreenPriv->dwRedMask,
- (unsigned int) pScreenPriv->dwGreenMask,
- (unsigned int) pScreenPriv->dwBlueMask,
- (int) pScreenPriv->dwBitsPerRGB);
+ winDebug ("winInitVisualsPrimaryDD - Masks: %08x %08x %08x bpRGB: %d\n",
+ (unsigned int) pScreenPriv->dwRedMask,
+ (unsigned int) pScreenPriv->dwGreenMask,
+ (unsigned int) pScreenPriv->dwBlueMask,
+ (int) pScreenPriv->dwBitsPerRGB);
/* Create a single visual according to the Windows screen depth */
switch (pScreenInfo->dwDepth) {
@@ -364,9 +364,7 @@ winInitVisualsPrimaryDD(ScreenPtr pScreen)
break;
case 8:
-#if CYGDEBUG
winDebug("winInitVisuals - Calling miSetVisualTypesAndMasks\n");
-#endif /* CYGDEBUG */
if (!miSetVisualTypesAndMasks(pScreenInfo->dwDepth,
PseudoColorMask,
pScreenPriv->dwBitsPerRGB,
@@ -378,10 +376,8 @@ winInitVisualsPrimaryDD(ScreenPtr pScreen)
"miSetVisualTypesAndMasks failed\n");
return FALSE;
}
-#if CYGDEBUG
winDebug("winInitVisualsPrimaryDD - Returned from "
"miSetVisualTypesAndMasks\n");
-#endif /* CYGDEBUG */
break;
default:
@@ -389,7 +385,7 @@ winInitVisualsPrimaryDD(ScreenPtr pScreen)
return FALSE;
}
- ErrorF("winInitVisualsPrimaryDD - Returning\n");
+ winDebug ("winInitVisualsPrimaryDD - Returning\n");
return TRUE;
}
@@ -516,7 +512,7 @@ winHotKeyAltTabPrimaryDD(ScreenPtr pScreen)
winScreenPriv(pScreen);
HRESULT ddrval = DD_OK;
- ErrorF("\nwinHotKeyAltTabPrimaryDD\n\n");
+ winDebug ("\nwinHotKeyAltTabPrimaryDD\n\n");
/* Alt+Tab was pressed, we will lose focus very soon */
pScreenPriv->fActive = FALSE;
diff --git a/xorg-server/hw/xwin/winpixmap.c b/xorg-server/hw/xwin/winpixmap.c
index d8a12d58e..43c0c3c14 100644
--- a/xorg-server/hw/xwin/winpixmap.c
+++ b/xorg-server/hw/xwin/winpixmap.c
@@ -68,11 +68,9 @@ winCreatePixmapNativeGDI(ScreenPtr pScreen,
return NullPixmap;
}
-#if CYGDEBUG
winDebug("winCreatePixmap () - w %d h %d d %d uh %d bw %d\n",
iWidth, iHeight, iDepth, usage_hint,
PixmapBytePad(iWidth, iDepth));
-#endif
/* Setup pixmap values */
pPixmap->drawable.type = DRAWABLE_PIXMAP;
@@ -112,11 +110,9 @@ winCreatePixmapNativeGDI(ScreenPtr pScreen,
(BITMAPINFO **) &pPixmapPriv->
pbmih);
-#if CYGDEBUG
winDebug("winCreatePixmap () - Created a pixmap %08x, %dx%dx%d, for "
"screen: %08x\n",
pPixmapPriv->hBitmap, iWidth, iHeight, iDepth, pScreen);
-#endif
return pPixmap;
}
@@ -132,9 +128,7 @@ winDestroyPixmapNativeGDI(PixmapPtr pPixmap)
{
winPrivPixmapPtr pPixmapPriv = NULL;
-#if CYGDEBUG
winDebug("winDestroyPixmapNativeGDI ()\n");
-#endif
/* Bail early if there is not a pixmap to destroy */
if (pPixmap == NULL) {
@@ -145,10 +139,8 @@ winDestroyPixmapNativeGDI(PixmapPtr pPixmap)
/* Get a handle to the pixmap privates */
pPixmapPriv = winGetPixmapPriv(pPixmap);
-#if CYGDEBUG
winDebug("winDestroyPixmapNativeGDI - pPixmapPriv->hBitmap: %08x\n",
pPixmapPriv->hBitmap);
-#endif
/* Decrement reference count, return if nonzero */
--pPixmap->refcnt;
@@ -184,40 +176,3 @@ winModifyPixmapHeaderNativeGDI(PixmapPtr pPixmap,
return TRUE;
}
-#if 0
-/*
- * Not used yet.
- * See cfb/cfbpixmap.c
- */
-
-static void
-winXRotatePixmapNativeGDI(PixmapPtr pPix, int rw)
-{
- ErrorF("winXRotatePixmap()\n");
- /* fill in this function, look at CFB */
-}
-
-/*
- * Not used yet.
- * See cfb/cfbpixmap.c
- */
-static void
-winYRotatePixmapNativeGDI(PixmapPtr pPix, int rh)
-{
- ErrorF("winYRotatePixmap()\n");
- /* fill in this function, look at CFB */
-}
-
-/*
- * Not used yet.
- * See cfb/cfbpixmap.c
- */
-
-static void
-winCopyRotatePixmapNativeGDI(PixmapPtr psrcPix, PixmapPtr *ppdstPix,
- int xrot, int yrot)
-{
- ErrorF("winCopyRotatePixmap()\n");
- /* fill in this function, look at CFB */
-}
-#endif
diff --git a/xorg-server/hw/xwin/winpolyline.c b/xorg-server/hw/xwin/winpolyline.c
index 8b7e10645..ce7c8de28 100644
--- a/xorg-server/hw/xwin/winpolyline.c
+++ b/xorg-server/hw/xwin/winpolyline.c
@@ -41,7 +41,7 @@ winPolyLineNativeGDI(DrawablePtr pDrawable,
switch (pGC->lineStyle) {
case LineSolid:
if (pGC->lineWidth == 0)
- return miZeroLine(pDrawable, pGC, mode, npt, ppt);
+ miZeroLine (pDrawable, pGC, mode, npt, ppt);
else
miWideLine(pDrawable, pGC, mode, npt, ppt);
break;
diff --git a/xorg-server/hw/xwin/winprefs.c b/xorg-server/hw/xwin/winprefs.c
index 8936aae63..5a51f3b3b 100644
--- a/xorg-server/hw/xwin/winprefs.c
+++ b/xorg-server/hw/xwin/winprefs.c
@@ -51,6 +51,8 @@
extern const char *winGetBaseDir(void);
+extern const char *g_pszLogFile;
+
/* From winprefslex.l, the real parser */
extern int parse_file(FILE * fp);
@@ -353,8 +355,8 @@ HandleCustomWM_COMMAND(unsigned long hwndIn, int command)
memset(&start, 0, sizeof(start));
start.cb = sizeof(start);
- start.dwFlags = STARTF_USESHOWWINDOW;
- start.wShowWindow = SW_HIDE;
+ //start.dwFlags = STARTF_USESHOWWINDOW;
+ //start.wShowWindow = SW_HIDE;
memset(&child, 0, sizeof(child));
@@ -366,7 +368,7 @@ HandleCustomWM_COMMAND(unsigned long hwndIn, int command)
}
else
MessageBox(NULL, m->menuItem[j].param,
- "Mingrc Exec Command Error!",
+ "VcXsrv Exec Command Error!",
MB_OK | MB_ICONEXCLAMATION);
}
return TRUE;
@@ -723,16 +725,13 @@ LoadPreferences(void)
}
/* Setup a DISPLAY environment variable, need to allocate on heap */
- /* because putenv doesn't copy the argument... */
- snprintf(szDisplay, 512, "DISPLAY=127.0.0.1:%s.0", display);
- szEnvDisplay = (char *) (malloc(strlen(szDisplay) + 1));
- if (szEnvDisplay) {
- strcpy(szEnvDisplay, szDisplay);
- putenv(szEnvDisplay);
- }
+ /* because putenv doesn't copy the argument... Always use screen 0 */
+ winGetDisplayName(szDisplay, 0);
+ szEnvDisplay = (char *)(malloc(strlen(szDisplay)+9/*strlen("DISPLAY=")+1*/));
+ snprintf(szEnvDisplay, 512, "DISPLAY=%s", szDisplay);
+ putenv (szEnvDisplay);
/* Replace any "%display%" in menu commands with display string */
- snprintf(szDisplay, 512, "127.0.0.1:%s.0", display);
for (i = 0; i < pref.menuItems; i++) {
for (j = 0; j < pref.menu[i].menuItems; j++) {
if (pref.menu[i].menuItem[j].cmd == CMD_EXEC) {
@@ -744,6 +743,11 @@ LoadPreferences(void)
dstParam += strlen(szDisplay);
srcParam += 9;
}
+ else if (!strncmp(srcParam, "%logfile%", 9)) {
+ memcpy (dstParam, g_pszLogFile, strlen(g_pszLogFile));
+ dstParam += strlen(g_pszLogFile);
+ srcParam += 9;
+ }
else {
*dstParam = *srcParam;
dstParam++;
diff --git a/xorg-server/hw/xwin/winprefslex.l b/xorg-server/hw/xwin/winprefslex.l
index 15f707766..66d12ede7 100644
--- a/xorg-server/hw/xwin/winprefslex.l
+++ b/xorg-server/hw/xwin/winprefslex.l
@@ -39,8 +39,6 @@
extern int yyparse(void);
-extern void ErrorF (const char* /*f*/, ...);
-
/* Copy the parsed string, must be free()d in yacc parser */
static char *makestr(char *str)
{
diff --git a/xorg-server/hw/xwin/winprefsyacc.y b/xorg-server/hw/xwin/winprefsyacc.y
index 3b376b3e7..ff051f233 100644
--- a/xorg-server/hw/xwin/winprefsyacc.y
+++ b/xorg-server/hw/xwin/winprefsyacc.y
@@ -40,6 +40,7 @@
#define _STDLIB_H 1 /* bison checks this to know if stdlib has been included */
#include <string.h>
#include "winprefs.h"
+#include "winmsg.h"
/* The following give better error messages in bison at the cost of a few KB */
#define YYERROR_VERBOSE 1
@@ -84,6 +85,9 @@ static int yyerror (char *s);
extern char *yytext;
extern int yylex(void);
+#define YYMALLOC malloc
+#define YYFREE free
+
%}
%union {
@@ -243,7 +247,7 @@ forceexit: FORCEEXIT NEWLINE { pref.fForceExit = TRUE; }
silentexit: SILENTEXIT NEWLINE { pref.fSilentExit = TRUE; }
;
-debug: DEBUGOUTPUT STRING NEWLINE { ErrorF("LoadPreferences: %s\n", $2); free($2); }
+debug: DEBUGOUTPUT STRING NEWLINE { winDebug("LoadPreferences: %s\n", $2); free($2); }
;
@@ -354,7 +358,7 @@ static void
OpenIcons (void)
{
if (pref.icon != NULL) {
- ErrorF("LoadPreferences: Redefining icon mappings\n");
+ winDebug("LoadPreferences: Redefining icon mappings\n");
free(pref.icon);
pref.icon = NULL;
}
@@ -390,7 +394,7 @@ static void
OpenStyles (void)
{
if (pref.style != NULL) {
- ErrorF("LoadPreferences: Redefining window style\n");
+ winDebug("LoadPreferences: Redefining window style\n");
free(pref.style);
pref.style = NULL;
}
@@ -423,7 +427,7 @@ static void
OpenSysMenu (void)
{
if (pref.sysMenu != NULL) {
- ErrorF("LoadPreferences: Redefining system menu\n");
+ winDebug("LoadPreferences: Redefining system menu\n");
free(pref.sysMenu);
pref.sysMenu = NULL;
}
diff --git a/xorg-server/hw/xwin/winprocarg.c b/xorg-server/hw/xwin/winprocarg.c
index 858be4a56..570b91721 100644
--- a/xorg-server/hw/xwin/winprocarg.c
+++ b/xorg-server/hw/xwin/winprocarg.c
@@ -44,6 +44,7 @@ from The Open Group.
#ifdef XWIN_CLIPBOARD
extern Bool g_fUnicodeClipboard;
extern Bool g_fClipboard;
+extern Bool g_fClipboardPrimary;
#endif
/*
@@ -84,9 +85,9 @@ winInitializeScreenDefaults(void)
dwWidth = GetSystemMetrics(SM_CXSCREEN);
dwHeight = GetSystemMetrics(SM_CYSCREEN);
- winErrorFVerb(2,
- "winInitializeScreenDefaults - primary monitor w %d h %d\n",
- (int) dwWidth, (int) dwHeight);
+ winDebug (
+ "winInitializeScreenDefaults - primary monitor w %d h %d\n",
+ (int) dwWidth, (int) dwHeight);
/* Set a default DPI, if no '-dpi' option was used */
if (monitorResolution == 0) {
@@ -96,17 +97,17 @@ winInitializeScreenDefaults(void)
int dpiX = GetDeviceCaps(hdc, LOGPIXELSX);
int dpiY = GetDeviceCaps(hdc, LOGPIXELSY);
- winErrorFVerb(2,
- "winInitializeScreenDefaults - native DPI x %d y %d\n",
- dpiX, dpiY);
+ winDebug(
+ "winInitializeScreenDefaults - native DPI x %d y %d\n",
+ dpiX, dpiY);
monitorResolution = dpiY;
ReleaseDC(NULL, hdc);
}
else {
- winErrorFVerb(1,
- "winInitializeScreenDefaults - Failed to retrieve native DPI, falling back to default of %d DPI\n",
- WIN_DEFAULT_DPI);
+ winDebug(
+ "winInitializeScreenDefaults - Failed to retrieve native DPI, falling back to default of %d DPI\n",
+ WIN_DEFAULT_DPI);
monitorResolution = WIN_DEFAULT_DPI;
}
}
@@ -131,6 +132,8 @@ winInitializeScreenDefaults(void)
defaultScreenInfo.fDecoration = TRUE;
#ifdef XWIN_MULTIWINDOWEXTWM
defaultScreenInfo.fMWExtWM = FALSE;
+#endif
+#ifdef XWIN_MULTIWINDOWINTWM
defaultScreenInfo.fInternalWM = FALSE;
#endif
defaultScreenInfo.fRootless = FALSE;
@@ -157,7 +160,7 @@ winInitializeScreenDefaults(void)
static void
winInitializeScreen(int i)
{
- winErrorFVerb(3, "winInitializeScreen - %d\n", i);
+ winDebug ("winInitializeScreen - %d\n",i);
/* Initialize default screen values, if needed */
winInitializeScreenDefaults();
@@ -174,7 +177,7 @@ winInitializeScreens(int maxscreens)
{
int i;
- winErrorFVerb(3, "winInitializeScreens - %i\n", maxscreens);
+ winDebug ("winInitializeScreens - %i\n", maxscreens);
if (maxscreens > g_iNumScreens) {
/* Reallocate the memory for DDX-specific screen info */
@@ -248,23 +251,22 @@ ddxProcessArgument(int argc, char *argv[], int i)
* OsVendorInit () gets called, otherwise we will overwrite
* settings changed by parameters such as -fullscreen, etc.
*/
- winErrorFVerb(2, "ddxProcessArgument - Initializing default "
- "screens\n");
+ winDebug ("ddxProcessArgument - Initializing default "
+ "screens\n");
winInitializeScreenDefaults();
}
}
-#if CYGDEBUG
winDebug("ddxProcessArgument - arg: %s\n", argv[i]);
-#endif
/*
* Look for the '-help' and similar options
*/
if (IS_OPTION("-help") || IS_OPTION("-h") || IS_OPTION("--help")) {
/* Reset logfile. We don't need that helpmessage in the logfile */
- g_pszLogFile = NULL;
+#ifdef _DEBUG
g_fNoHelpMessageBox = TRUE;
+#endif
UseMsg();
exit(0);
return 1;
@@ -272,7 +274,6 @@ ddxProcessArgument(int argc, char *argv[], int i)
if (IS_OPTION("-version") || IS_OPTION("--version")) {
/* Reset logfile. We don't need that versioninfo in the logfile */
- g_pszLogFile = NULL;
winLogVersionInfo();
exit(0);
return 1;
@@ -287,9 +288,7 @@ ddxProcessArgument(int argc, char *argv[], int i)
int iWidth, iHeight, iX, iY;
int iMonitor;
-#if CYGDEBUG
winDebug("ddxProcessArgument - screen - argc: %d i: %d\n", argc, i);
-#endif
/* Display the usage message if the argument is malformed */
if (i + 1 >= argc) {
@@ -324,9 +323,9 @@ ddxProcessArgument(int argc, char *argv[], int i)
("ddxProcessArgument - screen - Querying monitors failed\n");
}
else if (data.bMonitorSpecifiedExists == TRUE) {
- winErrorFVerb(2,
- "ddxProcessArgument - screen - Found Valid ``@Monitor'' = %d arg\n",
- iMonitor);
+ winDebug(
+ "ddxProcessArgument - screen - Found Valid ``@Monitor'' = %d arg\n",
+ iMonitor);
iArgsProcessed = 3;
g_ScreenInfo[nScreenNum].fUserGaveHeightAndWidth = FALSE;
g_ScreenInfo[nScreenNum].fUserGavePosition = TRUE;
@@ -354,8 +353,8 @@ ddxProcessArgument(int argc, char *argv[], int i)
else if (i + 2 < argc
&& 2 == sscanf(argv[i + 2], "%dx%d",
(int *) &iWidth, (int *) &iHeight)) {
- winErrorFVerb(2,
- "ddxProcessArgument - screen - Found ``WxD'' arg\n");
+ winDebug (
+ "ddxProcessArgument - screen - Found ``WxD'' arg\n");
iArgsProcessed = 3;
g_ScreenInfo[nScreenNum].fUserGaveHeightAndWidth = TRUE;
g_ScreenInfo[nScreenNum].dwWidth = iWidth;
@@ -365,8 +364,8 @@ ddxProcessArgument(int argc, char *argv[], int i)
/* Look for WxD+X+Y */
if (2 == sscanf(argv[i + 2], "%*dx%*d+%d+%d",
(int *) &iX, (int *) &iY)) {
- winErrorFVerb(2,
- "ddxProcessArgument - screen - Found ``X+Y'' arg\n");
+ winDebug (
+ "ddxProcessArgument - screen - Found ``X+Y'' arg\n");
g_ScreenInfo[nScreenNum].fUserGavePosition = TRUE;
g_ScreenInfo[nScreenNum].dwInitialX = iX;
g_ScreenInfo[nScreenNum].dwInitialY = iY;
@@ -410,9 +409,9 @@ ddxProcessArgument(int argc, char *argv[], int i)
("ddxProcessArgument - screen - Querying monitors failed\n");
}
else if (data.bMonitorSpecifiedExists == TRUE) {
- winErrorFVerb(2,
- "ddxProcessArgument - screen - Found Valid ``@Monitor'' = %d arg\n",
- iMonitor);
+ winDebug (
+ "ddxProcessArgument - screen - Found Valid ``@Monitor'' = %d arg\n",
+ iMonitor);
g_ScreenInfo[nScreenNum].fUserGavePosition = TRUE;
g_ScreenInfo[nScreenNum].iMonitor = iMonitor;
g_ScreenInfo[nScreenNum].hMonitor = data.monitorHandle;
@@ -433,7 +432,7 @@ ddxProcessArgument(int argc, char *argv[], int i)
}
else if (i + 3 < argc && 1 == sscanf(argv[i + 2], "%d", (int *) &iWidth)
&& 1 == sscanf(argv[i + 3], "%d", (int *) &iHeight)) {
- winErrorFVerb(2,
+ winDebug (
"ddxProcessArgument - screen - Found ``W D'' arg\n");
iArgsProcessed = 4;
g_ScreenInfo[nScreenNum].fUserGaveHeightAndWidth = TRUE;
@@ -443,7 +442,7 @@ ddxProcessArgument(int argc, char *argv[], int i)
g_ScreenInfo[nScreenNum].dwUserHeight = iHeight;
if (i + 5 < argc && 1 == sscanf(argv[i + 4], "%d", (int *) &iX)
&& 1 == sscanf(argv[i + 5], "%d", (int *) &iY)) {
- winErrorFVerb(2,
+ winDebug (
"ddxProcessArgument - screen - Found ``X Y'' arg\n");
iArgsProcessed = 6;
g_ScreenInfo[nScreenNum].fUserGavePosition = TRUE;
@@ -452,11 +451,11 @@ ddxProcessArgument(int argc, char *argv[], int i)
}
}
else {
- winErrorFVerb(2,
+ ErrorF (
"ddxProcessArgument - screen - Did not find size arg. "
- "dwWidth: %d dwHeight: %d\n",
- (int) g_ScreenInfo[nScreenNum].dwWidth,
- (int) g_ScreenInfo[nScreenNum].dwHeight);
+ "dwWidth: %d dwHeight: %d\n",
+ (int) g_ScreenInfo[nScreenNum].dwWidth,
+ (int) g_ScreenInfo[nScreenNum].dwHeight);
iArgsProcessed = 2;
g_ScreenInfo[nScreenNum].fUserGaveHeightAndWidth = FALSE;
}
@@ -533,6 +532,8 @@ ddxProcessArgument(int argc, char *argv[], int i)
screenInfoPtr->fMultipleMonitors = FALSE;
#endif
screenInfoPtr->fFullScreen = TRUE;
+ // resizing is not allowed in full screen so change the default to not allowed
+ screenInfoPtr->iResizeMode=notAllowed;
/* Indicate that we have processed this argument */
return 1;
@@ -574,6 +575,8 @@ ddxProcessArgument(int argc, char *argv[], int i)
/* Indicate that we have processed this argument */
return 1;
}
+#endif
+#ifdef XWIN_MULTIWINDOWINTWM
/*
* Look for the '-internalwm' argument
*/
@@ -716,6 +719,30 @@ ddxProcessArgument(int argc, char *argv[], int i)
/* Indicate that we have processed this argument */
return 1;
}
+
+ /*
+ * Look for the '-clipboard' argument
+ */
+ if (IS_OPTION ("-clipboardprimary"))
+ {
+ /* Now the default, we still accept the arg for backwards compatibility */
+ g_fClipboardPrimary = TRUE;
+
+ /* Indicate that we have processed this argument */
+ return 1;
+ }
+
+ /*
+ * Look for the '-noclipboard' argument
+ */
+ if (IS_OPTION ("-noclipboardprimary"))
+ {
+ g_fClipboardPrimary = FALSE;
+
+ /* Indicate that we have processed this argument */
+ return 1;
+ }
+
#endif
/*
@@ -1004,6 +1031,7 @@ ddxProcessArgument(int argc, char *argv[], int i)
if (IS_OPTION("-logverbose")) {
CHECK_ARGS(1);
g_iLogVerbose = atoi(argv[++i]);
+ LogSetParameter(XLOG_VERBOSITY, g_iLogVerbose);
return 2;
}
@@ -1069,10 +1097,27 @@ ddxProcessArgument(int argc, char *argv[], int i)
return 1;
}
- if (IS_OPTION("-nowgl")) {
+ else if (IS_OPTION("-nowgl")) {
g_fNativeGl = FALSE;
return 1;
}
+ else if (IS_OPTION("-swrastwgl"))
+ {
+ g_fswrastwgl = TRUE;
+ return 1;
+ }
+ else if (IS_OPTION("-parentprocessid"))
+ {
+ DWORD dwProcessId;
+ CHECK_ARGS (1);
+ dwProcessId = atoi(argv[++i]);
+ if (!AllowSetForegroundWindow(dwProcessId))
+ {
+ winMessageBoxF ("Error calling AllowSetForegroundWindow.", MB_ICONINFORMATION);
+ return 0;
+ }
+ return 2;
+ }
return 0;
}
@@ -1140,7 +1185,7 @@ winLogCommandLine(int argc, char *argv[])
iCurrLen += strlen(argv[i]);
}
- ErrorF("XWin was started with the following command line:\n\n"
+ winDebug ("XWin was started with the following command line:\n\n"
"%s\n\n", g_pszCommandLine);
}
@@ -1157,9 +1202,9 @@ winLogVersionInfo(void)
return;
s_fBeenHere = TRUE;
- ErrorF("Welcome to the XWin X Server\n");
+ ErrorF("Welcome to the VcXsrv X Server\n");
ErrorF("Vendor: %s\n", XVENDORNAME);
- ErrorF("Release: %d.%d.%d.%d\n", XORG_VERSION_MAJOR,
+ ErrorF("Release: %d.%d.%d.%d\n\n", XORG_VERSION_MAJOR,
XORG_VERSION_MINOR, XORG_VERSION_PATCH, XORG_VERSION_SNAP);
if (strlen(BUILDERSTRING))
ErrorF("%s\n", BUILDERSTRING);
diff --git a/xorg-server/hw/xwin/winresource.h b/xorg-server/hw/xwin/winresource.h
index a14d402e1..bb419188a 100644
--- a/xorg-server/hw/xwin/winresource.h
+++ b/xorg-server/hw/xwin/winresource.h
@@ -49,4 +49,6 @@
#define ID_ABOUT_CHANGELOG 302
#define ID_ABOUT_WEBSITE 303
+#define IDC_HOSTLIST 100
+
#endif
diff --git a/xorg-server/hw/xwin/winscrinit.c b/xorg-server/hw/xwin/winscrinit.c
index 23152cbd2..ae52f8a2c 100644
--- a/xorg-server/hw/xwin/winscrinit.c
+++ b/xorg-server/hw/xwin/winscrinit.c
@@ -88,10 +88,8 @@ winScreenInit(ScreenPtr pScreen, int argc, char **argv)
HDC hdc;
DWORD dwInitialBPP;
-#if CYGDEBUG || YES
winDebug("winScreenInit - dwWidth: %ld dwHeight: %ld\n",
pScreenInfo->dwWidth, pScreenInfo->dwHeight);
-#endif
/* Allocate privates for this screen */
if (!winAllocatePrivates(pScreen)) {
@@ -122,27 +120,27 @@ winScreenInit(ScreenPtr pScreen, int argc, char **argv)
/* Horribly misnamed function: Allow engine to adjust BPP for screen */
dwInitialBPP = pScreenInfo->dwBPP;
-
- if (!(*pScreenPriv->pwinAdjustVideoMode) (pScreen)) {
+
+ if (pScreenPriv->pwinAdjustVideoMode && !(*pScreenPriv->pwinAdjustVideoMode) (pScreen)) {
ErrorF("winScreenInit - winAdjustVideoMode () failed\n");
return FALSE;
}
if (dwInitialBPP == WIN_DEFAULT_BPP) {
/* No -depth parameter was passed, let the user know the depth being used */
- ErrorF
+ winDebug
("winScreenInit - Using Windows display depth of %d bits per pixel\n",
(int) pScreenInfo->dwBPP);
}
else if (dwInitialBPP != pScreenInfo->dwBPP) {
/* Warn user if engine forced a depth different to -depth parameter */
- ErrorF
+ winDebug
("winScreenInit - Command line depth of %d bpp overidden by engine, using %d bpp\n",
(int) dwInitialBPP, (int) pScreenInfo->dwBPP);
}
else {
- ErrorF("winScreenInit - Using command line depth of %d bpp\n",
- (int) pScreenInfo->dwBPP);
+ winDebug("winScreenInit - Using command line depth of %d bpp\n",
+ (int) pScreenInfo->dwBPP);
}
/* Check for supported display depth */
@@ -175,7 +173,7 @@ winScreenInit(ScreenPtr pScreen, int argc, char **argv)
}
/* Create display window */
- if (!(*pScreenPriv->pwinCreateBoundingWindow) (pScreen)) {
+ if (pScreenPriv->pwinCreateBoundingWindow && !(*pScreenPriv->pwinCreateBoundingWindow) (pScreen)) {
ErrorF("winScreenInit - pwinCreateBoundingWindow () " "failed\n");
return FALSE;
}
@@ -202,7 +200,7 @@ winScreenInit(ScreenPtr pScreen, int argc, char **argv)
miClearVisualTypes();
/* Call the engine dependent screen initialization procedure */
- if (!((*pScreenPriv->pwinFinishScreenInit) (pScreen->myNum, pScreen, argc, argv))) {
+ if (pScreenPriv->pwinFinishScreenInit && !((*pScreenPriv->pwinFinishScreenInit) (pScreen->myNum, pScreen, argc, argv))) {
ErrorF("winScreenInit - winFinishScreenInit () failed\n");
/* call the engine dependent screen close procedure to clean up from a failure */
@@ -213,8 +211,10 @@ winScreenInit(ScreenPtr pScreen, int argc, char **argv)
if (!g_fSoftwareCursor)
winInitCursor(pScreen);
+#ifdef WINDBG
else
- winErrorFVerb(2, "winScreenInit - Using software cursor\n");
+ winDebug("winScreenInit - Using software cursor\n");
+#endif
/*
Note the screen origin in a normalized coordinate space where (0,0) is at the top left
@@ -223,12 +223,9 @@ winScreenInit(ScreenPtr pScreen, int argc, char **argv)
pScreen->x = pScreenInfo->dwInitialX - GetSystemMetrics(SM_XVIRTUALSCREEN);
pScreen->y = pScreenInfo->dwInitialY - GetSystemMetrics(SM_YVIRTUALSCREEN);
- ErrorF("Screen %d added at virtual desktop coordinate (%d,%d).\n",
+ winDebug("Screen %d added at virtual desktop coordinate (%d,%d).\n",
pScreen->myNum, pScreen->x, pScreen->y);
-
-#if CYGDEBUG || YES
winDebug("winScreenInit - returning\n");
-#endif
return TRUE;
}
@@ -281,10 +278,10 @@ winFinishScreenInitFB(int i, ScreenPtr pScreen, int argc, char **argv)
+ winCountBits(pScreenPriv->dwGreenMask)
+ winCountBits(pScreenPriv->dwBlueMask);
- winErrorFVerb(2, "winFinishScreenInitFB - Masks: %08x %08x %08x\n",
- (unsigned int) pScreenPriv->dwRedMask,
- (unsigned int) pScreenPriv->dwGreenMask,
- (unsigned int) pScreenPriv->dwBlueMask);
+ winDebug ("winFinishScreenInitFB - Masks: %08x %08x %08x\n",
+ (unsigned int) pScreenPriv->dwRedMask,
+ (unsigned int) pScreenPriv->dwGreenMask,
+ (unsigned int) pScreenPriv->dwBlueMask);
/* Init visuals */
if (!(*pScreenPriv->pwinInitVisuals) (pScreen)) {
@@ -367,16 +364,12 @@ winFinishScreenInitFB(int i, ScreenPtr pScreen, int argc, char **argv)
#endif
/* Setup the cursor routines */
-#if CYGDEBUG
winDebug("winFinishScreenInitFB - Calling miDCInitialize ()\n");
-#endif
miDCInitialize(pScreen, &g_winPointerCursorFuncs);
/* KDrive does winCreateDefColormap right after miDCInitialize */
/* Create a default colormap */
-#if CYGDEBUG
winDebug("winFinishScreenInitFB - Calling winCreateDefColormap ()\n");
-#endif
if (!winCreateDefColormap(pScreen)) {
ErrorF("winFinishScreenInitFB - Could not create colormap\n");
return FALSE;
@@ -390,9 +383,7 @@ winFinishScreenInitFB(int i, ScreenPtr pScreen, int argc, char **argv)
&& !pScreenInfo->fMWExtWM
#endif
) {
-#if CYGDEBUG
winDebug("winFinishScreenInitFB - Calling shadowSetup ()\n");
-#endif
if (!shadowSetup(pScreen)) {
ErrorF("winFinishScreenInitFB - shadowSetup () failed\n");
return FALSE;
@@ -533,13 +524,11 @@ winFinishScreenInitFB(int i, ScreenPtr pScreen, int argc, char **argv)
#ifdef XWIN_MULTIWINDOW
|| pScreenInfo->fMultiWindow
#endif
-#ifdef XWIN_MULTIWINDOWEXTWM
+#ifdef XWIN_MULTIWINDOWINTWM
|| pScreenInfo->fInternalWM
#endif
) {
-#if CYGDEBUG || YES
winDebug("winFinishScreenInitFB - Calling winInitWM.\n");
-#endif
/* Initialize multi window mode */
if (!winInitWM(&pScreenPriv->pWMInfo,
@@ -547,7 +536,7 @@ winFinishScreenInitFB(int i, ScreenPtr pScreen, int argc, char **argv)
&pScreenPriv->ptXMsgProc,
&pScreenPriv->pmServerStarted,
pScreenInfo->dwScreen, (HWND) &pScreenPriv->hwndScreen,
-#ifdef XWIN_MULTIWINDOWEXTWM
+#ifdef XWIN_MULTIWINDOWINTWM
pScreenInfo->fInternalWM ||
#endif
FALSE)) {
@@ -563,9 +552,7 @@ winFinishScreenInitFB(int i, ScreenPtr pScreen, int argc, char **argv)
/* Tell the server that we have a valid depth */
pScreenPriv->fBadDepth = FALSE;
-#if CYGDEBUG || YES
winDebug("winFinishScreenInitFB - returning\n");
-#endif
return TRUE;
}
@@ -675,7 +662,7 @@ winFinishScreenInitNativeGDI(int i,
/* Bitmap */
pScreen->BitmapToRegion = winPixmapToRegionNativeGDI;
- ErrorF("winFinishScreenInitNativeGDI - calling miDCInitialize\n");
+ winDebug ("winFinishScreenInitNativeGDI - calling miDCInitialize\n");
/* Set the default white and black pixel positions */
pScreen->whitePixel = pScreen->blackPixel = (Pixel) 0;
@@ -693,8 +680,8 @@ winFinishScreenInitNativeGDI(int i,
return FALSE;
}
- ErrorF("winFinishScreenInitNativeGDI - miCreateDefColormap () "
- "returned\n");
+ winDebug ("winFinishScreenInitNativeGDI - miCreateDefColormap () "
+ "returned\n");
/* mi doesn't use a CloseScreen procedure, so no need to wrap */
pScreen->CloseScreen = pScreenPriv->pwinCloseScreen;
@@ -702,8 +689,8 @@ winFinishScreenInitNativeGDI(int i,
/* Tell the server that we are enabled */
pScreenPriv->fEnabled = TRUE;
- ErrorF("winFinishScreenInitNativeGDI - Successful addition of "
- "screen %p\n", pScreen);
+ winDebug ("winFinishScreenInitNativeGDI - Successful addition of "
+ "screen %p\n", pScreen);
return TRUE;
}
diff --git a/xorg-server/hw/xwin/winsetsp.c b/xorg-server/hw/xwin/winsetsp.c
index f102f9ff5..001e50e11 100644
--- a/xorg-server/hw/xwin/winsetsp.c
+++ b/xorg-server/hw/xwin/winsetsp.c
@@ -34,6 +34,11 @@
#endif
#include "win.h"
+typedef struct mybitmap
+{
+ BITMAPINFOHEADER bmiHeader;
+ RGBQUAD bmiColors[256]; /* Maximum palette used in case of 8-bit per pixel */
+} mybitmap_t;
/* See Porting Layer Definition - p. 55 */
void
winSetSpansNativeGDI(DrawablePtr pDrawable,
@@ -46,7 +51,7 @@ winSetSpansNativeGDI(DrawablePtr pDrawable,
PixmapPtr pPixmap = NULL;
winPrivPixmapPtr pPixmapPriv = NULL;
HBITMAP hbmpOrig = NULL;
- BITMAPINFO bmi;
+ mybitmap_t bmi;
HRGN hrgn = NULL, combined = NULL;
int nbox;
BoxPtr pbox;
@@ -86,7 +91,7 @@ winSetSpansNativeGDI(DrawablePtr pDrawable,
"failed on pPixmapPriv->hBitmap\n");
while (iSpans--) {
- ZeroMemory(&bmi, sizeof(BITMAPINFO));
+ ZeroMemory (&bmi, sizeof (mybitmap_t));
bmi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
bmi.bmiHeader.biWidth = *piWidths;
bmi.bmiHeader.biHeight = 1;
@@ -129,7 +134,7 @@ winSetSpansNativeGDI(DrawablePtr pDrawable,
combined = NULL;
while (iSpans--) {
- ZeroMemory(&bmi, sizeof(BITMAPINFO));
+ ZeroMemory (&bmi, sizeof (mybitmap_t));
bmi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
bmi.bmiHeader.biWidth = *piWidths;
bmi.bmiHeader.biHeight = 1;
diff --git a/xorg-server/hw/xwin/winshaddd.c b/xorg-server/hw/xwin/winshaddd.c
index 2e7060838..5a117aace 100644
--- a/xorg-server/hw/xwin/winshaddd.c
+++ b/xorg-server/hw/xwin/winshaddd.c
@@ -113,9 +113,7 @@ winCreatePrimarySurfaceShadowDD(ScreenPtr pScreen)
return FALSE;
}
-#if CYGDEBUG
winDebug("winCreatePrimarySurfaceShadowDD - Created primary surface\n");
-#endif
/*
* Attach a clipper to the primary surface that will clip our blits to our
@@ -129,10 +127,8 @@ winCreatePrimarySurfaceShadowDD(ScreenPtr pScreen)
return FALSE;
}
-#if CYGDEBUG
winDebug("winCreatePrimarySurfaceShadowDD - Attached clipper to "
"primary surface\n");
-#endif
/* Everything was correct */
return TRUE;
@@ -148,7 +144,7 @@ winReleasePrimarySurfaceShadowDD(ScreenPtr pScreen)
{
winScreenPriv(pScreen);
- ErrorF("winReleasePrimarySurfaceShadowDD - Hello\n");
+ winDebug ("winReleasePrimarySurfaceShadowDD - Hello\n");
/* Release the primary surface and clipper, if they exist */
if (pScreenPriv->pddsPrimary) {
@@ -158,14 +154,14 @@ winReleasePrimarySurfaceShadowDD(ScreenPtr pScreen)
*/
IDirectDrawSurface2_SetClipper(pScreenPriv->pddsPrimary, NULL);
- ErrorF("winReleasePrimarySurfaceShadowDD - Detached clipper\n");
+ winDebug ("winReleasePrimarySurfaceShadowDD - Detached clipper\n");
/* Release the primary surface */
IDirectDrawSurface2_Release(pScreenPriv->pddsPrimary);
pScreenPriv->pddsPrimary = NULL;
}
- ErrorF("winReleasePrimarySurfaceShadowDD - Released primary surface\n");
+ winDebug ("winReleasePrimarySurfaceShadowDD - Released primary surface\n");
return TRUE;
}
@@ -187,9 +183,7 @@ winAllocateFBShadowDD(ScreenPtr pScreen)
DDSURFACEDESC ddsd;
DDSURFACEDESC *pddsdShadow = NULL;
-#if CYGDEBUG
winDebug("winAllocateFBShadowDD\n");
-#endif
/* Create a clipper */
ddrval = (*g_fpDirectDrawCreateClipper) (0,
@@ -200,9 +194,7 @@ winAllocateFBShadowDD(ScreenPtr pScreen)
return FALSE;
}
-#if CYGDEBUG
winDebug("winAllocateFBShadowDD - Created a clipper\n");
-#endif
/* Attach the clipper to our display window */
ddrval = IDirectDrawClipper_SetHWnd(pScreenPriv->pddcPrimary,
@@ -213,9 +205,7 @@ winAllocateFBShadowDD(ScreenPtr pScreen)
return FALSE;
}
-#if CYGDEBUG
winDebug("winAllocateFBShadowDD - Attached clipper to window\n");
-#endif
/* Create a DirectDraw object, store the address at lpdd */
ddrval = (*g_fpDirectDrawCreate) (NULL, &pScreenPriv->pdd, NULL);
@@ -225,9 +215,7 @@ winAllocateFBShadowDD(ScreenPtr pScreen)
return FALSE;
}
-#if CYGDEBUG
winDebug("winAllocateFBShadowDD () - Created and initialized DD\n");
-#endif
/* Get a DirectDraw2 interface pointer */
ddrval = IDirectDraw_QueryInterface(pScreenPriv->pdd,
@@ -300,7 +288,7 @@ winAllocateFBShadowDD(ScreenPtr pScreen)
|| pScreenInfo->dwHeight != GetSystemMetrics(SM_CYSCREEN)
|| pScreenInfo->dwBPP != GetDeviceCaps(hdc, BITSPIXEL)
|| pScreenInfo->dwRefreshRate != 0)) {
- ErrorF("winAllocateFBShadowDD - Changing video mode\n");
+ winDebug ("winAllocateFBShadowDD - Changing video mode\n");
/* Change the video mode to the mode requested, and use the driver default refresh rate on failure */
ddrval = IDirectDraw2_SetDisplayMode(pScreenPriv->pdd2,
@@ -329,7 +317,7 @@ winAllocateFBShadowDD(ScreenPtr pScreen)
}
}
else {
- ErrorF("winAllocateFBShadowDD - Not changing video mode\n");
+ winDebug ("winAllocateFBShadowDD - Not changing video mode\n");
}
/* Release our DC */
@@ -379,9 +367,7 @@ winAllocateFBShadowDD(ScreenPtr pScreen)
return FALSE;
}
-#if CYGDEBUG
winDebug("winAllocateFBShadowDD - Created shadow\n");
-#endif
/* Allocate a DD surface description for our screen privates */
pddsdShadow = pScreenPriv->pddsdShadow = malloc(sizeof(DDSURFACEDESC));
@@ -393,9 +379,7 @@ winAllocateFBShadowDD(ScreenPtr pScreen)
ZeroMemory(pddsdShadow, sizeof(*pddsdShadow));
pddsdShadow->dwSize = sizeof(*pddsdShadow);
-#if CYGDEBUG
winDebug("winAllocateFBShadowDD - Locking shadow\n");
-#endif
/* Lock the shadow surface */
ddrval = IDirectDrawSurface2_Lock(pScreenPriv->pddsShadow,
@@ -406,9 +390,7 @@ winAllocateFBShadowDD(ScreenPtr pScreen)
return FALSE;
}
-#if CYGDEBUG
winDebug("winAllocateFBShadowDD - Locked shadow\n");
-#endif
/* We don't know how to deal with anything other than RGB */
if (!(pddsdShadow->ddpfPixelFormat.dwFlags & DDPF_RGB)) {
@@ -428,9 +410,7 @@ winAllocateFBShadowDD(ScreenPtr pScreen)
pScreenPriv->dwGreenMask = pddsdShadow->ddpfPixelFormat.u3.dwGBitMask;
pScreenPriv->dwBlueMask = pddsdShadow->ddpfPixelFormat.u4.dwBBitMask;
-#if CYGDEBUG
winDebug("winAllocateFBShadowDD - Returning\n");
-#endif
return TRUE;
}
@@ -594,6 +574,7 @@ winShadowUpdateDD(ScreenPtr pScreen, shadowBufPtr pBuf)
/* Has our memory pointer changed? */
if (pScreenInfo->pfb != pScreenPriv->pddsdShadow->lpSurface) {
+ extern const char *g_pszLogFile;
ErrorF("winShadowUpdateDD - Memory location of the shadow "
"surface has changed, trying to update the root window "
"pixmap header to point to the new address. If you get "
@@ -630,9 +611,7 @@ winCloseScreenShadowDD(ScreenPtr pScreen)
winScreenInfo *pScreenInfo = pScreenPriv->pScreenInfo;
Bool fReturn;
-#if CYGDEBUG
winDebug("winCloseScreenShadowDD - Freeing screen resources\n");
-#endif
/* Flag that the screen is closed */
pScreenPriv->fClosed = TRUE;
@@ -669,7 +648,7 @@ winCloseScreenShadowDD(ScreenPtr pScreen)
#if defined(XWIN_CLIPBOARD) || defined(XWIN_MULTIWINDOW)
/* Destroy the thread startup mutex */
- pthread_mutex_destroy(&pScreenPriv->pmServerStarted);
+ if (pScreenPriv->pmServerStarted) pthread_mutex_destroy (&pScreenPriv->pmServerStarted);
#endif
/* Kill our screeninfo's pointer to the screen */
@@ -711,13 +690,13 @@ winInitVisualsShadowDD(ScreenPtr pScreen)
else
pScreenPriv->dwBitsPerRGB = dwBlueBits;
- ErrorF("winInitVisualsShadowDD - Masks %08x %08x %08x BPRGB %d d %d "
- "bpp %d\n",
- (unsigned int) pScreenPriv->dwRedMask,
- (unsigned int) pScreenPriv->dwGreenMask,
- (unsigned int) pScreenPriv->dwBlueMask,
- (int) pScreenPriv->dwBitsPerRGB,
- (int) pScreenInfo->dwDepth, (int) pScreenInfo->dwBPP);
+ winDebug ("winInitVisualsShadowDD - Masks %08x %08x %08x BPRGB %d d %d "
+ "bpp %d\n",
+ (unsigned int) pScreenPriv->dwRedMask,
+ (unsigned int) pScreenPriv->dwGreenMask,
+ (unsigned int) pScreenPriv->dwBlueMask,
+ (int) pScreenPriv->dwBitsPerRGB,
+ (int) pScreenInfo->dwDepth, (int) pScreenInfo->dwBPP);
/* Create a single visual according to the Windows screen depth */
switch (pScreenInfo->dwDepth) {
@@ -771,9 +750,7 @@ winInitVisualsShadowDD(ScreenPtr pScreen)
return FALSE;
}
-#if CYGDEBUG
winDebug("winInitVisualsShadowDD - Returning\n");
-#endif
return TRUE;
}
@@ -1144,10 +1121,8 @@ winDestroyColormapShadowDD(ColormapPtr pColormap)
* we need to handle the default colormap in a special way.
*/
if (pColormap->flags & IsDefault) {
-#if CYGDEBUG
winDebug("winDestroyColormapShadowDD - Destroying default "
"colormap\n");
-#endif
/*
* FIXME: Walk the list of all screens, popping the default
diff --git a/xorg-server/hw/xwin/winshadddnl.c b/xorg-server/hw/xwin/winshadddnl.c
index 01097f295..af13aba52 100644
--- a/xorg-server/hw/xwin/winshadddnl.c
+++ b/xorg-server/hw/xwin/winshadddnl.c
@@ -87,6 +87,65 @@ static Bool
static Bool
winReleasePrimarySurfaceShadowDDNL(ScreenPtr pScreen);
+static HRESULT myIDirectDrawSurface4_Blt( ScreenPtr pScreen, RECT *pRect, RECT *prcSrc)
+{
+ HRESULT ddrval = DD_OK;
+ unsigned i;
+ winScreenPriv(pScreen);
+
+
+ for (i = 0; i < 3; ++i)
+ {
+ if (pScreenPriv->pddsPrimary4)
+ ddrval = IDirectDrawSurface4_Blt(pScreenPriv->pddsPrimary4, pRect, pScreenPriv->pddsShadow4, prcSrc, DDBLT_WAIT, NULL);
+ else
+ ddrval = DDERR_SURFACELOST; // Surface has been closed
+ /* Try to regain the primary surface and blit again if we've lost it */
+ if (ddrval == DDERR_SURFACELOST)
+ {
+ /* Surface was lost */
+ ErrorF ("IDirectDrawSurface4_Blt reported that the primary "
+ "surface was lost, trying to restore, retry: %d\n", i + 1);
+
+ /* Try to restore the surface, once */
+
+ if (i==1)
+ {
+ ErrorF("Recreating DDraw surface because restoring of surface didn't work.\n");
+ winAllocateFBShadowDDNL(pScreen);
+ }
+ else
+ {
+ ddrval = IDirectDraw4_RestoreAllSurfaces (pScreenPriv->pdd4);
+ ErrorF ("IDirectDraw4_RestoreAllSurfaces returned: ");
+ if (ddrval == DD_OK)
+ ErrorF ("DD_OK\n");
+ else if (ddrval == DDERR_WRONGMODE)
+ ErrorF ("DDERR_WRONGMODE\n");
+ else if (ddrval == DDERR_INCOMPATIBLEPRIMARY)
+ ErrorF ("DDERR_INCOMPATIBLEPRIMARY\n");
+ else if (ddrval == DDERR_UNSUPPORTED)
+ ErrorF ("DDERR_UNSUPPORTED\n");
+ else if (ddrval == DDERR_INVALIDPARAMS)
+ ErrorF ("DDERR_INVALIDPARAMS\n");
+ else if (ddrval == DDERR_INVALIDOBJECT)
+ ErrorF ("DDERR_INVALIDOBJECT\n");
+ else
+ ErrorF ("unknown error: %08x\n", ddrval);
+ }
+ /* Loop around to try the blit one more time */
+ continue;
+ }
+ else if (FAILED (ddrval))
+ {
+ ErrorF ("IDirectDrawSurface4_Blt failed, but surface not "
+ "lost: %08x %d\n", ddrval, ddrval);
+ }
+ break;
+ }
+ return ddrval;
+}
+
/*
* Create the primary surface and attach the clipper.
* Used for both the initial surface creation and during
@@ -127,9 +186,7 @@ winCreatePrimarySurfaceShadowDDNL(ScreenPtr pScreen)
return FALSE;
}
-#if 1
winDebug("winCreatePrimarySurfaceShadowDDNL - Created primary surface\n");
-#endif
/* Attach our clipper to our primary surface handle */
ddrval = IDirectDrawSurface4_SetClipper(pScreenPriv->pddsPrimary4,
@@ -140,34 +197,22 @@ winCreatePrimarySurfaceShadowDDNL(ScreenPtr pScreen)
return FALSE;
}
-#if 1
winDebug("winCreatePrimarySurfaceShadowDDNL - Attached clipper to primary "
"surface\n");
-#endif
/* Everything was correct */
return TRUE;
}
-/*
- * Detach the clipper and release the primary surface.
- * Called from WM_DISPLAYCHANGE.
- */
-
-static Bool
-winReleasePrimarySurfaceShadowDDNL(ScreenPtr pScreen)
+static void ClosePrimarySurfaceShadowDDNL (winPrivScreenPtr pScreenPriv)
{
- winScreenPriv(pScreen);
-
- winDebug("winReleasePrimarySurfaceShadowDDNL - Hello\n");
-
/* Release the primary surface and clipper, if they exist */
if (pScreenPriv->pddsPrimary4) {
/*
* Detach the clipper from the primary surface.
* NOTE: We do this explicity for clarity. The Clipper is not released.
*/
- IDirectDrawSurface4_SetClipper(pScreenPriv->pddsPrimary4, NULL);
+ IDirectDrawSurface4_SetClipper (pScreenPriv->pddsPrimary4, NULL);
winDebug("winReleasePrimarySurfaceShadowDDNL - Detached clipper\n");
@@ -176,6 +221,47 @@ winReleasePrimarySurfaceShadowDDNL(ScreenPtr pScreen)
pScreenPriv->pddsPrimary4 = NULL;
}
+}
+
+static void ReleaseDDNL(winPrivScreenPtr pScreenPriv)
+{
+ /* Release the clipper object */
+ if (pScreenPriv->pddcPrimary)
+ {
+ IDirectDrawClipper_Release (pScreenPriv->pddcPrimary);
+ pScreenPriv->pddcPrimary = NULL;
+ }
+
+ /* Free the DirectDraw4 object, if there is one */
+ if (pScreenPriv->pdd4)
+ {
+ IDirectDraw4_RestoreDisplayMode (pScreenPriv->pdd4);
+ IDirectDraw4_Release (pScreenPriv->pdd4);
+ pScreenPriv->pdd4 = NULL;
+ }
+
+ /* Free the DirectDraw object, if there is one */
+ if (pScreenPriv->pdd)
+ {
+ IDirectDraw_Release (pScreenPriv->pdd);
+ pScreenPriv->pdd = NULL;
+ }
+}
+
+/*
+ * Detach the clipper and release the primary surface.
+ * Called from WM_DISPLAYCHANGE.
+ */
+
+static Bool
+winReleasePrimarySurfaceShadowDDNL (ScreenPtr pScreen)
+{
+ winScreenPriv(pScreen);
+
+ winDebug ("winReleasePrimarySurfaceShadowDDNL - Hello\n");
+
+ ClosePrimarySurfaceShadowDDNL(pScreenPriv);
+
winDebug("winReleasePrimarySurfaceShadowDDNL - Released primary surface\n");
return TRUE;
@@ -199,28 +285,41 @@ winAllocateFBShadowDDNL(ScreenPtr pScreen)
char *lpSurface = NULL;
DDPIXELFORMAT ddpfPrimary;
-#if CYGDEBUG
winDebug("winAllocateFBShadowDDNL - w %d h %d d %d\n",
pScreenInfo->dwWidth, pScreenInfo->dwHeight, pScreenInfo->dwDepth);
-#endif
/* Set the padded screen width */
pScreenInfo->dwPaddedWidth = PixmapBytePad(pScreenInfo->dwWidth,
pScreenInfo->dwBPP);
- /* Allocate memory for our shadow surface */
- lpSurface = malloc(pScreenInfo->dwPaddedWidth * pScreenInfo->dwHeight);
- if (lpSurface == NULL) {
- ErrorF("winAllocateFBShadowDDNL - Could not allocate bits\n");
- return FALSE;
- }
-
- /*
- * Initialize the framebuffer memory so we don't get a
- * strange display at startup
- */
- ZeroMemory(lpSurface, pScreenInfo->dwPaddedWidth * pScreenInfo->dwHeight);
+ if ( pScreenInfo->pfb)
+ {
+ ErrorF("winAllocateFBShadowDDNL calling for the second time, reallocating\n");
+ lpSurface=pScreenInfo->pfb;
+ if (pScreenPriv->pddsShadow4)
+ {
+ IDirectDrawSurface4_Release (pScreenPriv->pddsShadow4);
+ pScreenPriv->pddsShadow4 = NULL;
+ }
+ ClosePrimarySurfaceShadowDDNL(pScreenPriv);
+ ReleaseDDNL(pScreenPriv);
+ }
+ else
+ {
+ /* Allocate memory for our shadow surface */
+ lpSurface = malloc (pScreenInfo->dwPaddedWidth * pScreenInfo->dwHeight);
+ if (lpSurface == NULL) {
+ ErrorF ("winAllocateFBShadowDDNL - Could not allocate bits\n");
+ return FALSE;
+ }
+
+ /*
+ * Initialize the framebuffer memory so we don't get a
+ * strange display at startup
+ */
+ ZeroMemory (lpSurface, pScreenInfo->dwPaddedWidth * pScreenInfo->dwHeight);
+ }
/* Create a clipper */
ddrval = (*g_fpDirectDrawCreateClipper) (0,
&pScreenPriv->pddcPrimary, NULL);
@@ -230,9 +329,7 @@ winAllocateFBShadowDDNL(ScreenPtr pScreen)
return FALSE;
}
-#if CYGDEBUG
winDebug("winAllocateFBShadowDDNL - Created a clipper\n");
-#endif
/* Attach the clipper to our display window */
ddrval = IDirectDrawClipper_SetHWnd(pScreenPriv->pddcPrimary,
@@ -243,9 +340,7 @@ winAllocateFBShadowDDNL(ScreenPtr pScreen)
return FALSE;
}
-#if CYGDEBUG
winDebug("winAllocateFBShadowDDNL - Attached clipper to window\n");
-#endif
/* Create a DirectDraw object, store the address at lpdd */
ddrval = (*g_fpDirectDrawCreate) (NULL,
@@ -257,9 +352,7 @@ winAllocateFBShadowDDNL(ScreenPtr pScreen)
return FALSE;
}
-#if CYGDEBUG
winDebug("winAllocateFBShadowDDNL - Created and initialized DD\n");
-#endif
/* Get a DirectDraw4 interface pointer */
ddrval = IDirectDraw_QueryInterface(pScreenPriv->pdd,
@@ -398,13 +491,11 @@ winAllocateFBShadowDDNL(ScreenPtr pScreen)
return FALSE;
}
-#if CYGDEBUG
winDebug("winAllocateFBShadowDDNL - Primary masks: %08x %08x %08x "
"dwRGBBitCount: %d\n",
ddpfPrimary.u2.dwRBitMask,
ddpfPrimary.u3.dwGBitMask,
ddpfPrimary.u4.dwBBitMask, ddpfPrimary.u1.dwRGBBitCount);
-#endif
/* Describe the shadow surface to be created */
/*
@@ -439,19 +530,15 @@ winAllocateFBShadowDDNL(ScreenPtr pScreen)
return FALSE;
}
-#if CYGDEBUG || YES
winDebug("winAllocateFBShadowDDNL - Created shadow pitch: %d\n",
(int) ddsdShadow.u1.lPitch);
-#endif
/* Grab the pitch from the surface desc */
pScreenInfo->dwStride = (ddsdShadow.u1.lPitch * 8)
/ pScreenInfo->dwBPP;
-#if CYGDEBUG || YES
winDebug("winAllocateFBShadowDDNL - Created shadow stride: %d\n",
(int) pScreenInfo->dwStride);
-#endif
/* Save the pointer to our surface memory */
pScreenInfo->pfb = lpSurface;
@@ -461,9 +548,7 @@ winAllocateFBShadowDDNL(ScreenPtr pScreen)
pScreenPriv->dwGreenMask = ddsdShadow.u4.ddpfPixelFormat.u3.dwGBitMask;
pScreenPriv->dwBlueMask = ddsdShadow.u4.ddpfPixelFormat.u4.dwBBitMask;
-#if CYGDEBUG
winDebug("winAllocateFBShadowDDNL - Returning\n");
-#endif
return TRUE;
}
@@ -485,24 +570,7 @@ winFreeFBShadowDDNL(ScreenPtr pScreen)
/* Detach the clipper from the primary surface and release the primary surface, if there is one */
winReleasePrimarySurfaceShadowDDNL(pScreen);
- /* Release the clipper object */
- if (pScreenPriv->pddcPrimary) {
- IDirectDrawClipper_Release(pScreenPriv->pddcPrimary);
- pScreenPriv->pddcPrimary = NULL;
- }
-
- /* Free the DirectDraw4 object, if there is one */
- if (pScreenPriv->pdd4) {
- IDirectDraw4_RestoreDisplayMode(pScreenPriv->pdd4);
- IDirectDraw4_Release(pScreenPriv->pdd4);
- pScreenPriv->pdd4 = NULL;
- }
-
- /* Free the DirectDraw object, if there is one */
- if (pScreenPriv->pdd) {
- IDirectDraw_Release(pScreenPriv->pdd);
- pScreenPriv->pdd = NULL;
- }
+ ReleaseDDNL(pScreenPriv);
/* Invalidate the ScreenInfo's fb pointer */
pScreenInfo->pfb = NULL;
@@ -518,7 +586,6 @@ winShadowUpdateDDNL(ScreenPtr pScreen, shadowBufPtr pBuf)
winScreenPriv(pScreen);
winScreenInfo *pScreenInfo = pScreenPriv->pScreenInfo;
RegionPtr damage = shadowDamage(pBuf);
- HRESULT ddrval = DD_OK;
RECT rcDest, rcSrc;
POINT ptOrigin;
DWORD dwBox = RegionNumRects(damage);
@@ -565,27 +632,10 @@ winShadowUpdateDDNL(ScreenPtr pScreen, shadowBufPtr pBuf)
rcDest.bottom = ptOrigin.y + rcSrc.bottom;
/* Blit the damaged areas */
- ddrval = IDirectDrawSurface4_Blt(pScreenPriv->pddsPrimary4,
- &rcDest,
- pScreenPriv->pddsShadow4,
- &rcSrc, DDBLT_WAIT, NULL);
- if (FAILED(ddrval)) {
- static int s_iFailCount = 0;
-
- if (s_iFailCount < FAIL_MSG_MAX_BLT) {
- ErrorF("winShadowUpdateDDNL - IDirectDrawSurface4_Blt () "
- "failed: %08x\n", (unsigned int) ddrval);
-
- ++s_iFailCount;
-
- if (s_iFailCount == FAIL_MSG_MAX_BLT) {
- ErrorF("winShadowUpdateDDNL - IDirectDrawSurface4_Blt "
- "failure message maximum (%d) reached. No "
- "more failure messages will be printed.\n",
- FAIL_MSG_MAX_BLT);
- }
- }
- }
+ if (pScreenPriv->pddsPrimary4)
+ myIDirectDrawSurface4_Blt (pScreen,
+ &rcDest,
+ &rcSrc);
/* Get a pointer to the next box */
++pBox;
@@ -604,11 +654,9 @@ winShadowUpdateDDNL(ScreenPtr pScreen, shadowBufPtr pBuf)
DeleteObject(hrgnCombined);
hrgnCombined = NULL;
-#if CYGDEBUG
winDebug("winShadowUpdateDDNL - be x1 %d y1 %d x2 %d y2 %d\n",
pBoxExtents->x1, pBoxExtents->y1,
pBoxExtents->x2, pBoxExtents->y2);
-#endif
/* Calculating a bounding box for the source is easy */
rcSrc.left = pBoxExtents->x1;
@@ -623,10 +671,7 @@ winShadowUpdateDDNL(ScreenPtr pScreen, shadowBufPtr pBuf)
rcDest.bottom = ptOrigin.y + rcSrc.bottom;
/* Our Blt should be clipped to the invalidated region */
- ddrval = IDirectDrawSurface4_Blt(pScreenPriv->pddsPrimary4,
- &rcDest,
- pScreenPriv->pddsShadow4,
- &rcSrc, DDBLT_WAIT, NULL);
+ myIDirectDrawSurface4_Blt (pScreen, &rcDest, &rcSrc);
/* Reset the clip region */
SelectClipRgn(pScreenPriv->hdcScreen, NULL);
@@ -655,11 +700,9 @@ winCloseScreenShadowDDNL(ScreenPtr pScreen)
{
winScreenPriv(pScreen);
winScreenInfo *pScreenInfo = pScreenPriv->pScreenInfo;
- Bool fReturn;
+ Bool fReturn=FALSE;
-#if CYGDEBUG
winDebug("winCloseScreenShadowDDNL - Freeing screen resources\n");
-#endif
/* Flag that the screen is closed */
pScreenPriv->fClosed = TRUE;
@@ -696,7 +739,7 @@ winCloseScreenShadowDDNL(ScreenPtr pScreen)
#if defined(XWIN_CLIPBOARD) || defined(XWIN_MULTIWINDOW)
/* Destroy the thread startup mutex */
- pthread_mutex_destroy(&pScreenPriv->pmServerStarted);
+ if (pScreenPriv->pmServerStarted) pthread_mutex_destroy (&pScreenPriv->pmServerStarted);
#endif
/* Kill our screeninfo's pointer to the screen */
@@ -798,9 +841,7 @@ winInitVisualsShadowDDNL(ScreenPtr pScreen)
return FALSE;
}
-#if CYGDEBUG
winDebug("winInitVisualsShadowDDNL - Returning\n");
-#endif
return TRUE;
}
@@ -892,58 +933,14 @@ winBltExposedRegionsShadowDDNL(ScreenPtr pScreen)
rcSrc.right = pScreenInfo->dwWidth;
rcSrc.bottom = pScreenInfo->dwHeight;
- /* Try to regain the primary surface and blit again if we've lost it */
- for (i = 0; i <= WIN_REGAIN_SURFACE_RETRIES; ++i) {
- /* Our Blt should be clipped to the invalidated region */
- ddrval = IDirectDrawSurface4_Blt(pScreenPriv->pddsPrimary4,
- &rcDest,
- pScreenPriv->pddsShadow4,
- &rcSrc, DDBLT_WAIT, NULL);
- if (ddrval == DDERR_SURFACELOST) {
- /* Surface was lost */
- winErrorFVerb(1, "winBltExposedRegionsShadowDDNL - "
- "IDirectDrawSurface4_Blt reported that the primary "
- "surface was lost, trying to restore, retry: %d\n",
- i + 1);
-
- /* Try to restore the surface, once */
-
- ddrval = IDirectDrawSurface4_Restore(pScreenPriv->pddsPrimary4);
- winDebug("winBltExposedRegionsShadowDDNL - "
- "IDirectDrawSurface4_Restore returned: ");
- if (ddrval == DD_OK)
- winDebug("DD_OK\n");
- else if (ddrval == DDERR_WRONGMODE)
- winDebug("DDERR_WRONGMODE\n");
- else if (ddrval == DDERR_INCOMPATIBLEPRIMARY)
- winDebug("DDERR_INCOMPATIBLEPRIMARY\n");
- else if (ddrval == DDERR_UNSUPPORTED)
- winDebug("DDERR_UNSUPPORTED\n");
- else if (ddrval == DDERR_INVALIDPARAMS)
- winDebug("DDERR_INVALIDPARAMS\n");
- else if (ddrval == DDERR_INVALIDOBJECT)
- winDebug("DDERR_INVALIDOBJECT\n");
- else
- winDebug("unknown error: %08x\n", (unsigned int) ddrval);
-
- /* Loop around to try the blit one more time */
- continue;
- }
- else if (FAILED(ddrval)) {
- fReturn = FALSE;
- winErrorFVerb(1, "winBltExposedRegionsShadowDDNL - "
- "IDirectDrawSurface4_Blt failed, but surface not "
- "lost: %08x %d\n",
- (unsigned int) ddrval, (int) ddrval);
- goto winBltExposedRegionsShadowDDNL_Exit;
- }
- else {
- /* Success, stop looping */
- break;
- }
+ /* Our Blt should be clipped to the invalidated region */
+ ddrval = myIDirectDrawSurface4_Blt (pScreen, &rcDest, &rcSrc);
+ if (FAILED (ddrval))
+ {
+ fReturn = FALSE;
}
- winBltExposedRegionsShadowDDNL_Exit:
+winBltExposedRegionsShadowDDNL_Exit:
/* EndPaint frees the DC */
if (hdcUpdate != NULL)
EndPaint(pScreenPriv->hwndScreen, &ps);
@@ -982,7 +979,6 @@ winRedrawScreenShadowDDNL(ScreenPtr pScreen)
{
winScreenPriv(pScreen);
winScreenInfo *pScreenInfo = pScreenPriv->pScreenInfo;
- HRESULT ddrval = DD_OK;
RECT rcSrc, rcDest;
POINT ptOrigin;
@@ -1003,15 +999,7 @@ winRedrawScreenShadowDDNL(ScreenPtr pScreen)
rcSrc.bottom = pScreenInfo->dwHeight;
/* Redraw the whole window, to take account for the new colors */
- ddrval = IDirectDrawSurface4_Blt(pScreenPriv->pddsPrimary4,
- &rcDest,
- pScreenPriv->pddsShadow4,
- &rcSrc, DDBLT_WAIT, NULL);
- if (FAILED(ddrval)) {
- ErrorF("winRedrawScreenShadowDDNL - IDirectDrawSurface4_Blt () "
- "failed: %08x\n", (unsigned int) ddrval);
- }
-
+ myIDirectDrawSurface4_Blt (pScreen, &rcDest, &rcSrc);
return TRUE;
}
@@ -1139,10 +1127,8 @@ winDestroyColormapShadowDDNL(ColormapPtr pColormap)
* we need to handle the default colormap in a special way.
*/
if (pColormap->flags & IsDefault) {
-#if CYGDEBUG
winDebug
("winDestroyColormapShadowDDNL - Destroying default colormap\n");
-#endif
/*
* FIXME: Walk the list of all screens, popping the default
diff --git a/xorg-server/hw/xwin/winshadgdi.c b/xorg-server/hw/xwin/winshadgdi.c
index ebc233924..9e981cea7 100644
--- a/xorg-server/hw/xwin/winshadgdi.c
+++ b/xorg-server/hw/xwin/winshadgdi.c
@@ -92,8 +92,7 @@ winQueryScreenDIBFormat(ScreenPtr pScreen, BITMAPINFOHEADER * pbmih)
{
winScreenPriv(pScreen);
HBITMAP hbmp;
-
-#if CYGDEBUG
+#ifdef WINDBG
LPDWORD pdw = NULL;
#endif
@@ -116,7 +115,7 @@ winQueryScreenDIBFormat(ScreenPtr pScreen, BITMAPINFOHEADER * pbmih)
return FALSE;
}
-#if CYGDEBUG
+#ifdef WINDBG
/* Get a pointer to bitfields */
pdw = (DWORD *) ((CARD8 *) pbmih + sizeof(BITMAPINFOHEADER));
@@ -169,8 +168,8 @@ winQueryRGBBitsAndMasks(ScreenPtr pScreen)
/* Color masks for 24 bpp are standardized */
if (GetDeviceCaps(pScreenPriv->hdcScreen, PLANES)
* GetDeviceCaps(pScreenPriv->hdcScreen, BITSPIXEL) == 24) {
- ErrorF("winQueryRGBBitsAndMasks - GetDeviceCaps (BITSPIXEL) "
- "returned 24 for the screen. Using default 24bpp masks.\n");
+ winDebug ("winQueryRGBBitsAndMasks - GetDeviceCaps (BITSPIXEL) "
+ "returned 24 for the screen. Using default 24bpp masks.\n");
/* 8 bits per primary color */
pScreenPriv->dwBitsPerRGB = 8;
@@ -196,7 +195,7 @@ winQueryRGBBitsAndMasks(ScreenPtr pScreen)
/* Get a pointer to bitfields */
pdw = (DWORD *) ((CARD8 *) pbmih + sizeof(BITMAPINFOHEADER));
-#if CYGDEBUG
+#ifdef WINDBG
winDebug("%s - Masks: %08x %08x %08x\n", __FUNCTION__,
pdw[0], pdw[1], pdw[2]);
winDebug("%s - Bitmap: %dx%d %d bpp %d planes\n", __FUNCTION__,
@@ -328,10 +327,10 @@ winAllocateFBShadowGDI(ScreenPtr pScreen)
pScreenPriv->pbmih->biWidth = pScreenInfo->dwWidth;
pScreenPriv->pbmih->biHeight = -pScreenInfo->dwHeight;
- ErrorF("winAllocateFBShadowGDI - Creating DIB with width: %d height: %d "
- "depth: %d\n",
- (int) pScreenPriv->pbmih->biWidth,
- (int) -pScreenPriv->pbmih->biHeight, pScreenPriv->pbmih->biBitCount);
+ winDebug ("winAllocateFBShadowGDI - Creating DIB with width: %d height: %d "
+ "depth: %d\n",
+ (int) pScreenPriv->pbmih->biWidth,
+ (int) -pScreenPriv->pbmih->biHeight, pScreenPriv->pbmih->biBitCount);
/* Create a DI shadow bitmap with a bit pointer */
pScreenPriv->hbmpShadow = CreateDIBSection(pScreenPriv->hdcScreen,
@@ -340,32 +339,26 @@ winAllocateFBShadowGDI(ScreenPtr pScreen)
(VOID **) &pScreenInfo->pfb,
NULL, 0);
if (pScreenPriv->hbmpShadow == NULL || pScreenInfo->pfb == NULL) {
- winW32Error(2, "winAllocateFBShadowGDI - CreateDIBSection failed:");
+ winW32Error ("winAllocateFBShadowGDI - CreateDIBSection failed:");
return FALSE;
}
else {
-#if CYGDEBUG
winDebug("winAllocateFBShadowGDI - Shadow buffer allocated\n");
-#endif
}
/* Get information about the bitmap that was allocated */
GetObject(pScreenPriv->hbmpShadow, sizeof(dibsection), &dibsection);
-#if CYGDEBUG || YES
/* Print information about bitmap allocated */
winDebug("winAllocateFBShadowGDI - Dibsection width: %d height: %d "
"depth: %d size image: %d\n",
(int) dibsection.dsBmih.biWidth, (int) dibsection.dsBmih.biHeight,
dibsection.dsBmih.biBitCount, (int) dibsection.dsBmih.biSizeImage);
-#endif
/* Select the shadow bitmap into the shadow DC */
SelectObject(pScreenPriv->hdcShadow, pScreenPriv->hbmpShadow);
-#if CYGDEBUG
winDebug("winAllocateFBShadowGDI - Attempting a shadow blit\n");
-#endif
/* Do a test blit from the shadow to the screen, I think */
fReturn = BitBlt(pScreenPriv->hdcScreen,
@@ -373,20 +366,14 @@ winAllocateFBShadowGDI(ScreenPtr pScreen)
pScreenInfo->dwWidth, pScreenInfo->dwHeight,
pScreenPriv->hdcShadow, 0, 0, SRCCOPY);
if (fReturn) {
-#if CYGDEBUG
winDebug("winAllocateFBShadowGDI - Shadow blit success\n");
-#endif
}
else {
- winW32Error(2, "winAllocateFBShadowGDI - Shadow blit failure\n");
-#if 0
- return FALSE;
-#else
+ winW32Error ("winAllocateFBShadowGDI - Shadow blit failure\n");
/* ago: ignore this error. The blit fails with wine, but does not
* cause any problems later. */
fReturn = TRUE;
-#endif
}
/* Look for height weirdness */
@@ -399,10 +386,8 @@ winAllocateFBShadowGDI(ScreenPtr pScreen)
/ dibsection.dsBmih.biHeight)
* 8) / pScreenInfo->dwBPP;
-#if CYGDEBUG || YES
winDebug("winAllocateFBShadowGDI - Created shadow stride: %d\n",
(int) pScreenInfo->dwStride);
-#endif
#ifdef XWIN_MULTIWINDOW
/* Redraw all windows */
@@ -462,15 +447,16 @@ winShadowUpdateGDI(ScreenPtr pScreen, shadowBufPtr pBuf)
if (dwBox != 1) {
++s_dwNonUnitRegions;
- ErrorF("winShadowUpdatGDI - dwBox: %d\n", dwBox);
+ winDebug ("winShadowUpdatGDI - dwBox: %d\n", dwBox);
}
if ((s_dwTotalUpdates % 100) == 0)
- ErrorF("winShadowUpdateGDI - %d%% non-unity regions, avg boxes: %d "
- "nu: %d tu: %d\n",
- (s_dwNonUnitRegions * 100) / s_dwTotalUpdates,
- s_dwTotalBoxes / s_dwTotalUpdates,
- s_dwNonUnitRegions, s_dwTotalUpdates);
+ winDebug ("winShadowUpdateGDI - %d%% non-unity regions, avg boxes: %d "
+ "nu: %d tu: %d\n",
+ (s_dwNonUnitRegions * 100) / s_dwTotalUpdates,
+ s_dwTotalBoxes / s_dwTotalUpdates,
+ s_dwNonUnitRegions, s_dwTotalUpdates);
+ }
#endif /* XWIN_UPDATESTATS */
/*
@@ -580,9 +566,7 @@ winCloseScreenShadowGDI(ScreenPtr pScreen)
winScreenInfo *pScreenInfo = pScreenPriv->pScreenInfo;
Bool fReturn;
-#if CYGDEBUG
winDebug("winCloseScreenShadowGDI - Freeing screen resources\n");
-#endif
/* Flag that the screen is closed */
pScreenPriv->fClosed = TRUE;
@@ -622,7 +606,7 @@ winCloseScreenShadowGDI(ScreenPtr pScreen)
#if defined(XWIN_CLIPBOARD) || defined(XWIN_MULTIWINDOW)
/* Destroy the thread startup mutex */
- pthread_mutex_destroy(&pScreenPriv->pmServerStarted);
+ if (pScreenPriv->pmServerStarted) pthread_mutex_destroy (&pScreenPriv->pmServerStarted);
#endif
/* Invalidate our screeninfo's pointer to the screen */
@@ -649,13 +633,13 @@ winInitVisualsShadowGDI(ScreenPtr pScreen)
winScreenInfo *pScreenInfo = pScreenPriv->pScreenInfo;
/* Display debugging information */
- ErrorF("winInitVisualsShadowGDI - Masks %08x %08x %08x BPRGB %d d %d "
- "bpp %d\n",
- (unsigned int) pScreenPriv->dwRedMask,
- (unsigned int) pScreenPriv->dwGreenMask,
- (unsigned int) pScreenPriv->dwBlueMask,
- (int) pScreenPriv->dwBitsPerRGB,
- (int) pScreenInfo->dwDepth, (int) pScreenInfo->dwBPP);
+ winDebug ("winInitVisualsShadowGDI - Masks %08x %08x %08x BPRGB %d d %d "
+ "bpp %d\n",
+ (unsigned int) pScreenPriv->dwRedMask,
+ (unsigned int) pScreenPriv->dwGreenMask,
+ (unsigned int) pScreenPriv->dwBlueMask,
+ (int) pScreenPriv->dwBitsPerRGB,
+ (int) pScreenInfo->dwDepth, (int) pScreenInfo->dwBPP);
/* Create a single visual according to the Windows screen depth */
switch (pScreenInfo->dwDepth) {
@@ -707,9 +691,7 @@ winInitVisualsShadowGDI(ScreenPtr pScreen)
return FALSE;
}
-#if CYGDEBUG
winDebug("winInitVisualsShadowGDI - Returning\n");
-#endif
return TRUE;
}
@@ -868,16 +850,12 @@ winRealizeInstalledPaletteShadowGDI(ScreenPtr pScreen)
winScreenPriv(pScreen);
winPrivCmapPtr pCmapPriv = NULL;
-#if CYGDEBUG
winDebug("winRealizeInstalledPaletteShadowGDI\n");
-#endif
/* Don't do anything if there is not a colormap */
if (pScreenPriv->pcmapInstalled == NULL) {
-#if CYGDEBUG
winDebug("winRealizeInstalledPaletteShadowGDI - No colormap "
"installed\n");
-#endif
return TRUE;
}
@@ -1082,10 +1060,8 @@ winDestroyColormapShadowGDI(ColormapPtr pColormap)
* we need to handle the default colormap in a special way.
*/
if (pColormap->flags & IsDefault) {
-#if CYGDEBUG
winDebug("winDestroyColormapShadowGDI - Destroying default "
"colormap\n");
-#endif
/*
* FIXME: Walk the list of all screens, popping the default
diff --git a/xorg-server/hw/xwin/wintrayicon.c b/xorg-server/hw/xwin/wintrayicon.c
index f168b884a..bcea0cc81 100644
--- a/xorg-server/hw/xwin/wintrayicon.c
+++ b/xorg-server/hw/xwin/wintrayicon.c
@@ -36,34 +36,57 @@
#include <shellapi.h>
#include "winprefs.h"
+static NOTIFYICONDATA nid;
/*
* Initialize the tray icon
*/
void
-winInitNotifyIcon(winPrivScreenPtr pScreenPriv)
+winInitNotifyIcon(winPrivScreenPtr pScreenPriv, Bool Modify)
{
winScreenInfo *pScreenInfo = pScreenPriv->pScreenInfo;
- NOTIFYICONDATA nid = { 0 };
+ char HostName[256];
- nid.cbSize = sizeof(NOTIFYICONDATA);
- nid.hWnd = pScreenPriv->hwndScreen;
- nid.uID = pScreenInfo->dwScreen;
- nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
- nid.uCallbackMessage = WM_TRAYICON;
- nid.hIcon = winTaskbarIcon();
+ if (!Modify)
+ {
+ nid.cbSize = sizeof(NOTIFYICONDATA);
+ nid.hWnd = pScreenPriv->hwndScreen;
+ nid.uID = pScreenInfo->dwScreen;
+ nid.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
+ nid.uCallbackMessage = WM_TRAYICON;
+ nid.hIcon = winTaskbarIcon();
+
+ /* Save handle to the icon so it can be freed later */
+ pScreenPriv->hiconNotifyIcon = nid.hIcon;
+ }
- /* Save handle to the icon so it can be freed later */
- pScreenPriv->hiconNotifyIcon = nid.hIcon;
+ gethostname(HostName,256);
/* Set display and screen-specific tooltip text */
- snprintf(nid.szTip,
- sizeof(nid.szTip),
- PROJECT_NAME " Server:%s.%d",
- display, (int) pScreenInfo->dwScreen);
+ if (g_pszQueryHost)
+ {
+ snprintf(nid.szTip,
+ sizeof(nid.szTip),
+ "%s - %s:%s.%d - %d clients",
+ g_pszQueryHost,
+ HostName,
+ display,
+ (int) pScreenInfo->dwScreen,
+ pScreenPriv->iConnectedClients);
+ }
+ else
+ {
+ snprintf (nid.szTip,
+ sizeof (nid.szTip),
+ "%s:%s.%d - %d clients",
+ HostName,
+ display,
+ (int) pScreenInfo->dwScreen,
+ pScreenPriv->iConnectedClients);
+ }
/* Add the tray icon */
- if (!Shell_NotifyIcon(NIM_ADD, &nid))
+ if (!Shell_NotifyIcon ((Modify) ? NIM_MODIFY : NIM_ADD, &nid))
ErrorF("winInitNotifyIcon - Shell_NotifyIcon Failed\n");
}
@@ -75,27 +98,16 @@ void
winDeleteNotifyIcon(winPrivScreenPtr pScreenPriv)
{
winScreenInfo *pScreenInfo = pScreenPriv->pScreenInfo;
- NOTIFYICONDATA nid = { 0 };
-
-#if 0
- ErrorF("winDeleteNotifyIcon\n");
-#endif
- nid.cbSize = sizeof(NOTIFYICONDATA);
- nid.hWnd = pScreenPriv->hwndScreen;
- nid.uID = pScreenInfo->dwScreen;
+ if (!pScreenPriv->hiconNotifyIcon)
+ return;
/* Delete the tray icon */
- if (!Shell_NotifyIcon(NIM_DELETE, &nid)) {
- ErrorF("winDeleteNotifyIcon - Shell_NotifyIcon failed\n");
- return;
- }
+ Shell_NotifyIcon (NIM_DELETE, &nid);
/* Free the icon that was loaded */
- if (pScreenPriv->hiconNotifyIcon != NULL
- && DestroyIcon(pScreenPriv->hiconNotifyIcon) == 0) {
- ErrorF("winDeleteNotifyIcon - DestroyIcon failed\n");
- }
+ DestroyIcon (pScreenPriv->hiconNotifyIcon);
+
pScreenPriv->hiconNotifyIcon = NULL;
}
@@ -112,6 +124,17 @@ winHandleIconMessage(HWND hwnd, UINT message,
#endif
switch (lParam) {
+ case WM_MOUSEMOVE:
+ {
+ static int PrevNrClients;
+ int NrClients=GetLiveClients(pScreenPriv);
+ if (NrClients!=PrevNrClients)
+ {
+ PrevNrClients=NrClients;
+ winInitNotifyIcon (pScreenPriv, TRUE);
+ }
+ }
+ break;
case WM_LBUTTONUP:
/* Restack and bring all windows to top */
SetForegroundWindow (pScreenPriv->hwndScreen);
diff --git a/xorg-server/hw/xwin/winwin32rootless.c b/xorg-server/hw/xwin/winwin32rootless.c
index 724976a84..7ea7f0c4d 100644
--- a/xorg-server/hw/xwin/winwin32rootless.c
+++ b/xorg-server/hw/xwin/winwin32rootless.c
@@ -83,8 +83,7 @@ winMWExtWMQueryDIBFormat(win32RootlessWindowPtr pRLWinPriv,
BITMAPINFOHEADER * pbmih)
{
HBITMAP hbmp;
-
-#if CYGMULTIWINDOW_DEBUG
+#ifdef _DEBUG
LPDWORD pdw = NULL;
#endif
@@ -107,7 +106,7 @@ winMWExtWMQueryDIBFormat(win32RootlessWindowPtr pRLWinPriv,
return FALSE;
}
-#if CYGMULTIWINDOW_DEBUG
+#ifdef _DEBUG
/* Get a pointer to bitfields */
pdw = (DWORD *) ((CARD8 *) pbmih + sizeof(BITMAPINFOHEADER));
@@ -209,10 +208,8 @@ winMWExtWMCreateFrame(RootlessWindowPtr pFrame, ScreenPtr pScreen,
char *res_name, *res_class, *res_role;
static int s_iWindowID = 0;
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMCreateFrame %d %d - %d %d\n",
newX, newY, pFrame->width, pFrame->height);
-#endif
pRLWinPriv =
(win32RootlessWindowPtr) malloc(sizeof(win32RootlessWindowRec));
@@ -262,9 +259,7 @@ winMWExtWMCreateFrame(RootlessWindowPtr pFrame, ScreenPtr pScreen,
pszWindowID[sizeof(pszWindowID) - 1] = 0;
strcat(pszClass, pszWindowID);
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMCreateFrame - Creating class: %s\n", pszClass);
-#endif
/* Setup our window class */
wc.cbSize = sizeof(wc);
@@ -300,9 +295,7 @@ winMWExtWMCreateFrame(RootlessWindowPtr pFrame, ScreenPtr pScreen,
fResult = FALSE;
}
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMCreateFrame - ShowWindow\n");
-#endif
//ShowWindow (pRLWinPriv->hWnd, SW_SHOWNOACTIVATE);
g_fNoConfigureWindow = FALSE;
@@ -311,28 +304,8 @@ winMWExtWMCreateFrame(RootlessWindowPtr pFrame, ScreenPtr pScreen,
winMWExtWMReshapeFrame(pFrame->wid, pShape);
}
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMCreateFrame - (%p) %p\n",
pFrame->wid, pRLWinPriv->hWnd);
-#if 0
- {
- WindowPtr pWin2 = NULL;
- win32RootlessWindowPtr pRLWinPriv2 = NULL;
-
- /* Check if the Windows window property for our X window pointer is valid */
- if ((pWin2 =
- (WindowPtr) GetProp(pRLWinPriv->hWnd, WIN_WINDOW_PROP)) != NULL) {
- pRLWinPriv2 =
- (win32RootlessWindowPtr) RootlessFrameForWindow(pWin2, FALSE);
- }
- winDebug("winMWExtWMCreateFrame2 (%08x) %08x\n",
- pRLWinPriv2, pRLWinPriv2->hWnd);
- if (pRLWinPriv != pRLWinPriv2 || pRLWinPriv->hWnd != pRLWinPriv2->hWnd) {
- winDebug("Error param missmatch\n");
- }
- }
-#endif
-#endif
winMWExtWMSetNativeProperty(pFrame);
@@ -349,29 +322,8 @@ winMWExtWMDestroyFrame(RootlessFrameID wid)
int iReturn;
char pszClass[CLASS_NAME_LENGTH];
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMDestroyFrame (%p) %p\n",
pRLWinPriv, pRLWinPriv->hWnd);
-#if 0
- {
- WindowPtr pWin2 = NULL;
- win32RootlessWindowPtr pRLWinPriv2 = NULL;
-
- /* Check if the Windows window property for our X window pointer is valid */
- if ((pWin2 =
- (WindowPtr) GetProp(pRLWinPriv->hWnd, WIN_WINDOW_PROP)) != NULL) {
- pRLWinPriv2 =
- (win32RootlessWindowPtr) RootlessFrameForWindow(pWin2, FALSE);
- }
- winDebug("winMWExtWMDestroyFrame2 (%08x) %08x\n",
- pRLWinPriv2, pRLWinPriv2->hWnd);
- if (pRLWinPriv != pRLWinPriv2 || pRLWinPriv->hWnd != pRLWinPriv2->hWnd) {
- winDebug("Error param missmatch\n");
- *(int *) 0 = 1; //raise exseption
- }
- }
-#endif
-#endif
/* Store the info we need to destroy after this window is gone */
hInstance = (HINSTANCE) GetClassLongPtr(pRLWinPriv->hWnd, GCLP_HMODULE);
@@ -387,22 +339,16 @@ winMWExtWMDestroyFrame(RootlessFrameID wid)
/* Only if we were able to get the name */
if (iReturn) {
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMDestroyFrame - Unregistering %s: ", pszClass);
-#endif
iReturn = UnregisterClass(pszClass, hInstance);
+
+ winDebug ("winMWExtWMDestroyFramew - Deleting Icon\n");
}
-#if CYGMULTIWINDOW_DEBUG
- winDebug("winMWExtWMDestroyFramew - Deleting Icon\n");
-#endif
-
- winDestroyIcon(hIcon);
- winDestroyIcon(hIconSm);
+ winDestroyIcon(hiconClass);
+ winDestroyIcon(hiconSmClass);
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMDestroyFrame - done\n");
-#endif
}
void
@@ -415,10 +361,8 @@ winMWExtWMMoveFrame(RootlessFrameID wid, ScreenPtr pScreen, int iNewX,
DWORD dwStyle;
int iX, iY, iWidth, iHeight;
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMMoveFrame (%p) (%d %d)\n", pRLWinPriv, iNewX,
iNewY);
-#endif
/* Get the Windows window style and extended style */
dwExStyle = GetWindowLongPtr(pRLWinPriv->hWnd, GWL_EXSTYLE);
@@ -435,29 +379,23 @@ winMWExtWMMoveFrame(RootlessFrameID wid, ScreenPtr pScreen, int iNewX,
/* Store the origin, height, and width in a rectangle structure */
SetRect(&rcNew, iX, iY, iX + iWidth, iY + iHeight);
-#ifdef CYGMULTIWINDOW_DEBUG
winDebug("\tWindow {%d, %d, %d, %d}, {%d, %d}\n",
rcNew.left, rcNew.top, rcNew.right, rcNew.bottom,
rcNew.right - rcNew.left, rcNew.bottom - rcNew.top);
-#endif
/*
* Calculate the required size of the Windows window rectangle,
* given the size of the Windows window client area.
*/
AdjustWindowRectEx(&rcNew, dwStyle, FALSE, dwExStyle);
-#ifdef CYGMULTIWINDOW_DEBUG
winDebug("\tAdjusted {%d, %d, %d, %d}, {%d, %d}\n",
rcNew.left, rcNew.top, rcNew.right, rcNew.bottom,
rcNew.right - rcNew.left, rcNew.bottom - rcNew.top);
-#endif
g_fNoConfigureWindow = TRUE;
SetWindowPos(pRLWinPriv->hWnd, NULL, rcNew.left, rcNew.top, 0, 0,
SWP_NOACTIVATE | SWP_NOSIZE | SWP_NOZORDER);
g_fNoConfigureWindow = FALSE;
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMMoveFrame (%p) done\n", pRLWinPriv);
-#endif
}
void
@@ -473,10 +411,8 @@ winMWExtWMResizeFrame(RootlessFrameID wid, ScreenPtr pScreen,
DWORD dwStyle;
int iX, iY;
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMResizeFrame (%p) (%d %d)-(%d %d)\n",
pRLWinPriv, iNewX, iNewY, uiNewWidth, uiNewHeight);
-#endif
pRLWinPriv->fResized = TRUE;
@@ -525,9 +461,8 @@ winMWExtWMRestackFrame(RootlessFrameID wid, RootlessFrameID nextWid)
Bool fFirst = TRUE;
Bool fNeedRestack = TRUE;
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMRestackFrame (%p)\n", pRLWinPriv);
-#endif
+
if (pScreenPriv && pScreenPriv->fRestacking)
return;
@@ -542,18 +477,16 @@ winMWExtWMRestackFrame(RootlessFrameID wid, RootlessFrameID nextWid)
ShowWindow(pRLWinPriv->hWnd, SW_SHOWNOACTIVATE);
if (pRLNextWinPriv == NULL) {
-#if CYGMULTIWINDOW_DEBUG
winDebug("Win %08x is top\n", pRLWinPriv);
-#endif
pScreenPriv->widTop = wid;
SetWindowPos(pRLWinPriv->hWnd, HWND_TOP,
0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
}
- else if (winIsInternalWMRunning(pScreenInfo)) {
- /* using mulwinidow wm */
-#if CYGMULTIWINDOW_DEBUG
+#ifdef XWIN_MULTIWINDOWINTWM
+ else if (winIsInternalWMRunning(pScreenInfo)) {
+ /* using mulwinidow wm */
winDebug("Win %08x is not top\n", pRLWinPriv);
-#endif
+
for (hWnd = GetNextWindow(pRLWinPriv->hWnd, GW_HWNDPREV);
fNeedRestack && hWnd != NULL;
hWnd = GetNextWindow(hWnd, GW_HWNDPREV)) {
@@ -564,18 +497,14 @@ winMWExtWMRestackFrame(RootlessFrameID wid, RootlessFrameID nextWid)
if (hWnd == pRLNextWinPriv->hWnd) {
/* Enable interleave X window and Windows window */
if (!fFirst) {
-#if CYGMULTIWINDOW_DEBUG
winDebug("raise: Insert after Win %08x\n",
pRLNextWinPriv);
-#endif
SetWindowPos(pRLWinPriv->hWnd, pRLNextWinPriv->hWnd,
0, 0, 0, 0,
SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
}
else {
-#if CYGMULTIWINDOW_DEBUG
winDebug("No change\n");
-#endif
}
fNeedRestack = FALSE;
break;
@@ -593,9 +522,8 @@ winMWExtWMRestackFrame(RootlessFrameID wid, RootlessFrameID nextWid)
if ((dwWindowProcessID == dwCurrentProcessID)
&& GetProp(hWnd, WIN_WINDOW_PROP)) {
if (hWnd == pRLNextWinPriv->hWnd) {
-#if CYGMULTIWINDOW_DEBUG
winDebug("lower: Insert after Win %08x\n", pRLNextWinPriv);
-#endif
+
SetWindowPos(pRLWinPriv->hWnd, pRLNextWinPriv->hWnd,
0, 0, 0, 0,
SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
@@ -605,15 +533,14 @@ winMWExtWMRestackFrame(RootlessFrameID wid, RootlessFrameID nextWid)
}
}
}
+#endif
else {
/* using general wm like twm, wmaker etc.
Interleave X window and Windows window will cause problem. */
SetWindowPos(pRLWinPriv->hWnd, pRLNextWinPriv->hWnd,
0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
}
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMRestackFrame - done (%p)\n", pRLWinPriv);
-#endif
pRLWinPriv->fRestackingNow = FALSE;
}
@@ -625,9 +552,7 @@ winMWExtWMReshapeFrame(RootlessFrameID wid, RegionPtr pShape)
HRGN hRgn, hRgnWindow, hRgnClient;
RECT rcWindow, rcClient;
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMReshapeFrame (%p)\n", pRLWinPriv);
-#endif
hRgn = winMWExtWMCreateRgnFromRegion(pShape);
@@ -654,9 +579,7 @@ winMWExtWMUnmapFrame(RootlessFrameID wid)
{
win32RootlessWindowPtr pRLWinPriv = (win32RootlessWindowPtr) wid;
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMUnmapFrame (%p)\n", pRLWinPriv);
-#endif
g_fNoConfigureWindow = TRUE;
//ShowWindow (pRLWinPriv->hWnd, SW_MINIMIZE);
@@ -679,10 +602,8 @@ winMWExtWMStartDrawing(RootlessFrameID wid, char **pixelData, int *bytesPerRow)
HDC hdcNew;
HBITMAP hbmpNew;
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMStartDrawing (%p) %08x\n", pRLWinPriv,
pRLWinPriv->fDestroyed);
-#endif
if (!pRLWinPriv->fDestroyed) {
pScreen = pRLWinPriv->pFrame->win->drawable.pScreen;
@@ -691,12 +612,11 @@ winMWExtWMStartDrawing(RootlessFrameID wid, char **pixelData, int *bytesPerRow)
if (pScreenPriv)
pScreenInfo = pScreenPriv->pScreenInfo;
-#if CYGMULTIWINDOW_DEBUG
winDebug("\tpScreenPriv %p\n", pScreenPriv);
winDebug("\tpScreenInfo %p\n", pScreenInfo);
winDebug("\t(%d, %d)\n", (int) pRLWinPriv->pFrame->width,
(int) pRLWinPriv->pFrame->height);
-#endif
+
if (pRLWinPriv->hdcScreen == NULL) {
InitWin32RootlessEngine(pRLWinPriv);
}
@@ -731,15 +651,12 @@ winMWExtWMStartDrawing(RootlessFrameID wid, char **pixelData, int *bytesPerRow)
//return FALSE;
}
else {
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMStartDrawing - Shadow buffer allocated\n");
-#endif
}
/* Get information about the bitmap that was allocated */
GetObject(hbmpNew, sizeof(dibsection), &dibsection);
-#if CYGMULTIWINDOW_DEBUG
/* Print information about bitmap allocated */
winDebug("winMWExtWMStartDrawing - Dibsection width: %d height: %d "
"depth: %d size image: %d\n",
@@ -747,14 +664,11 @@ winMWExtWMStartDrawing(RootlessFrameID wid, char **pixelData, int *bytesPerRow)
(unsigned int) dibsection.dsBmih.biHeight,
(unsigned int) dibsection.dsBmih.biBitCount,
(unsigned int) dibsection.dsBmih.biSizeImage);
-#endif
/* Select the shadow bitmap into the shadow DC */
SelectObject(hdcNew, hbmpNew);
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMStartDrawing - Attempting a shadow blit\n");
-#endif
/* Blit from the old shadow to the new shadow */
fReturn = BitBlt(hdcNew,
@@ -763,9 +677,7 @@ winMWExtWMStartDrawing(RootlessFrameID wid, char **pixelData, int *bytesPerRow)
pRLWinPriv->pFrame->height, pRLWinPriv->hdcShadow,
0, 0, SRCCOPY);
if (fReturn) {
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMStartDrawing - Shadow blit success\n");
-#endif
}
else {
ErrorF("winMWExtWMStartDrawing - Shadow blit failure\n");
@@ -784,10 +696,8 @@ winMWExtWMStartDrawing(RootlessFrameID wid, char **pixelData, int *bytesPerRow)
pRLWinPriv->dwWidthBytes = dibsection.dsBm.bmWidthBytes;
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMStartDrawing - bytesPerRow: %d\n",
(unsigned int) dibsection.dsBm.bmWidthBytes);
-#endif
/* Free the old shadow bitmap */
DeleteObject(pRLWinPriv->hdcShadow);
@@ -797,22 +707,18 @@ winMWExtWMStartDrawing(RootlessFrameID wid, char **pixelData, int *bytesPerRow)
pRLWinPriv->hbmpShadow = hbmpNew;
pRLWinPriv->fResized = FALSE;
-#if CYGMULTIWINDOW_DEBUG && FALSE
winDebug("winMWExtWMStartDrawing - 0x%08x %d\n",
(unsigned int) pRLWinPriv->pfb,
(unsigned int) dibsection.dsBm.bmWidthBytes);
-#endif
}
}
else {
ErrorF("winMWExtWMStartDrawing - Already window was destroyed \n");
}
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMStartDrawing - done (%p) %p %d\n",
pRLWinPriv,
pRLWinPriv->pfb,
(unsigned int) pRLWinPriv->dwWidthBytes);
-#endif
*pixelData = pRLWinPriv->pfb;
*bytesPerRow = pRLWinPriv->dwWidthBytes;
}
@@ -820,31 +726,6 @@ winMWExtWMStartDrawing(RootlessFrameID wid, char **pixelData, int *bytesPerRow)
void
winMWExtWMStopDrawing(RootlessFrameID wid, Bool fFlush)
{
-#if 0
- win32RootlessWindowPtr pRLWinPriv = (win32RootlessWindowPtr) wid;
- BLENDFUNCTION bfBlend;
- SIZE szWin;
- POINT ptSrc;
-
-#if CYGMULTIWINDOW_DEBUG || TRUE
- winDebug("winMWExtWMStopDrawing (%08x)\n", pRLWinPriv);
-#endif
- szWin.cx = pRLWinPriv->dwWidth;
- szWin.cy = pRLWinPriv->dwHeight;
- ptSrc.x = 0;
- ptSrc.y = 0;
- bfBlend.BlendOp = AC_SRC_OVER;
- bfBlend.BlendFlags = 0;
- bfBlend.SourceConstantAlpha = 255;
- bfBlend.AlphaFormat = AC_SRC_ALPHA;
-
- if (!UpdateLayeredWindow(pRLWinPriv->hWnd,
- NULL, NULL, &szWin,
- pRLWinPriv->hdcShadow, &ptSrc,
- 0, &bfBlend, ULW_ALPHA)) {
- ErrorF("winMWExtWMStopDrawing - UpdateLayeredWindow failed\n");
- }
-#endif
}
void
@@ -852,44 +733,6 @@ winMWExtWMUpdateRegion(RootlessFrameID wid, RegionPtr pDamage)
{
win32RootlessWindowPtr pRLWinPriv = (win32RootlessWindowPtr) wid;
-#if 0
- BLENDFUNCTION bfBlend;
- SIZE szWin;
- POINT ptSrc;
-#endif
-#if CYGMULTIWINDOW_DEBUG && 0
- winDebug("winMWExtWMUpdateRegion (%08x)\n", pRLWinPriv);
-#endif
-#if 0
- szWin.cx = pRLWinPriv->dwWidth;
- szWin.cy = pRLWinPriv->dwHeight;
- ptSrc.x = 0;
- ptSrc.y = 0;
- bfBlend.BlendOp = AC_SRC_OVER;
- bfBlend.BlendFlags = 0;
- bfBlend.SourceConstantAlpha = 255;
- bfBlend.AlphaFormat = AC_SRC_ALPHA;
-
- if (!UpdateLayeredWindow(pRLWinPriv->hWnd,
- NULL, NULL, &szWin,
- pRLWinPriv->hdcShadow, &ptSrc,
- 0, &bfBlend, ULW_ALPHA)) {
- LPVOID lpMsgBuf;
-
- /* Display a fancy error message */
- FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
- FORMAT_MESSAGE_FROM_SYSTEM |
- FORMAT_MESSAGE_IGNORE_INSERTS,
- NULL,
- GetLastError(),
- MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
- (LPTSTR) &lpMsgBuf, 0, NULL);
-
- ErrorF("winMWExtWMUpdateRegion - UpdateLayeredWindow failed: %s\n",
- (LPSTR) lpMsgBuf);
- LocalFree(lpMsgBuf);
- }
-#endif
if (!g_fNoConfigureWindow)
UpdateWindow(pRLWinPriv->hWnd);
}
@@ -901,10 +744,8 @@ winMWExtWMDamageRects(RootlessFrameID wid, int nCount, const BoxRec * pRects,
win32RootlessWindowPtr pRLWinPriv = (win32RootlessWindowPtr) wid;
const BoxRec *pEnd;
-#if CYGMULTIWINDOW_DEBUG && 0
winDebug("winMWExtWMDamageRects (%08x, %d, %08x, %d, %d)\n",
pRLWinPriv, nCount, pRects, shift_x, shift_y);
-#endif
for (pEnd = pRects + nCount; pRects < pEnd; pRects++) {
RECT rcDmg;
@@ -923,10 +764,8 @@ winMWExtWMRootlessSwitchWindow(RootlessWindowPtr pFrame, WindowPtr oldWin)
{
win32RootlessWindowPtr pRLWinPriv = (win32RootlessWindowPtr) pFrame->wid;
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMRootlessSwitchWindow (%p) %p\n",
pRLWinPriv, pRLWinPriv->hWnd);
-#endif
pRLWinPriv->pFrame = pFrame;
pRLWinPriv->fResized = TRUE;
@@ -938,26 +777,6 @@ winMWExtWMRootlessSwitchWindow(RootlessWindowPtr pFrame, WindowPtr oldWin)
DeleteProperty(serverClient, oldWin, AtmWindowsWmNativeHwnd());
winMWExtWMSetNativeProperty(pFrame);
-#if CYGMULTIWINDOW_DEBUG
-#if 0
- {
- WindowPtr pWin2 = NULL;
- win32RootlessWindowPtr pRLWinPriv2 = NULL;
-
- /* Check if the Windows window property for our X window pointer is valid */
- if ((pWin2 =
- (WindowPtr) GetProp(pRLWinPriv->hWnd, WIN_WINDOW_PROP)) != NULL) {
- pRLWinPriv2 =
- (win32RootlessWindowPtr) RootlessFrameForWindow(pWin2, FALSE);
- }
- winDebug("winMWExtWMSwitchFrame2 (%08x) %08x\n",
- pRLWinPriv2, pRLWinPriv2->hWnd);
- if (pRLWinPriv != pRLWinPriv2 || pRLWinPriv->hWnd != pRLWinPriv2->hWnd) {
- winDebug("Error param missmatch\n");
- }
- }
-#endif
-#endif
}
void
@@ -965,9 +784,7 @@ winMWExtWMCopyBytes(unsigned int width, unsigned int height,
const void *src, unsigned int srcRowBytes,
void *dst, unsigned int dstRowBytes)
{
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMCopyBytes - Not implemented\n");
-#endif
}
void
@@ -978,19 +795,15 @@ winMWExtWMCopyWindow(RootlessFrameID wid, int nDstRects,
const BoxRec *pEnd;
RECT rcDmg;
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMCopyWindow (%p, %d, %p, %d, %d)\n",
pRLWinPriv, nDstRects, pDstRects, nDx, nDy);
-#endif
for (pEnd = pDstRects + nDstRects; pDstRects < pEnd; pDstRects++) {
-#if CYGMULTIWINDOW_DEBUG
winDebug("BitBlt (%d, %d, %d, %d) (%d, %d)\n",
pDstRects->x1, pDstRects->y1,
pDstRects->x2 - pDstRects->x1,
pDstRects->y2 - pDstRects->y1,
pDstRects->x1 + nDx, pDstRects->y1 + nDy);
-#endif
if (!BitBlt(pRLWinPriv->hdcShadow,
pDstRects->x1, pDstRects->y1,
@@ -1008,9 +821,7 @@ winMWExtWMCopyWindow(RootlessFrameID wid, int nDstRects,
InvalidateRect(pRLWinPriv->hWnd, &rcDmg, FALSE);
}
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMCopyWindow - done\n");
-#endif
}
/*
diff --git a/xorg-server/hw/xwin/winwin32rootlesswindow.c b/xorg-server/hw/xwin/winwin32rootlesswindow.c
index 1faa531df..693fbcec0 100644
--- a/xorg-server/hw/xwin/winwin32rootlesswindow.c
+++ b/xorg-server/hw/xwin/winwin32rootlesswindow.c
@@ -194,22 +194,17 @@ winMWExtWMUpdateWindowDecoration(win32RootlessWindowPtr pRLWinPriv,
/* Get current window placement */
GetWindowPlacement(pRLWinPriv->hWnd, &wndPlace);
+#ifdef XWIN_MULTIWINDOWINTWM
if (winIsInternalWMRunning(pScreenInfo)) {
if (!pRLWinPriv->pFrame->win->overrideRedirect)
fDecorate = TRUE;
}
-#if 0
- if (wndPlace.showCmd == SW_HIDE)
- return; //showCmd = SWP_HIDEWINDOW;
- else
- showCmd = SWP_SHOWWINDOW;
-#else
+#endif
if (wndPlace.showCmd == SW_HIDE)
return;
if (IsWindowVisible(pRLWinPriv->hWnd))
showCmd = SWP_SHOWWINDOW;
-#endif
showCmd |= SWP_NOMOVE | SWP_FRAMECHANGED | SWP_NOACTIVATE | SWP_NOZORDER;
@@ -344,6 +339,7 @@ winMWExtWMUpdateWindowDecoration(win32RootlessWindowPtr pRLWinPriv,
}
}
+#ifdef XWIN_MULTIWINDOWINTWM
/*
* winIsInternalWMRunning (winScreenInfoPtr pScreenInfo)
*/
@@ -352,7 +348,7 @@ winIsInternalWMRunning(winScreenInfoPtr pScreenInfo)
{
return pScreenInfo->fInternalWM && !pScreenInfo->fAnotherWMRunning;
}
-
+#endif
/*
* winMWExtWMRestackWindows
*/
diff --git a/xorg-server/hw/xwin/winwin32rootlesswndproc.c b/xorg-server/hw/xwin/winwin32rootlesswndproc.c
index 001d0d2fc..0c5856d6e 100644
--- a/xorg-server/hw/xwin/winwin32rootlesswndproc.c
+++ b/xorg-server/hw/xwin/winwin32rootlesswndproc.c
@@ -413,7 +413,6 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
wmMsg.iHeight = pRLWinPriv->pFrame->height;
fWMMsgInitialized = TRUE;
-#if CYGDEBUG
winDebugWin32Message("winMWExtWMWindowProc", hwnd, message, wParam,
lParam);
@@ -423,7 +422,6 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
winDebug("\thwndScreen %08X\n", hwndScreen);
winDebug("winMWExtWMWindowProc (%08x) %08x %08x %08x\n",
pRLWinPriv, message, wParam, lParam);
-#endif
}
/* Branch on message type */
switch (message) {
@@ -438,20 +436,21 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
return 0;
case WM_CLOSE:
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMWindowProc - WM_CLOSE %d\n", pRLWinPriv->fClose);
-#endif
+
/* Tell window-manager to close window */
if (pRLWinPriv->fClose) {
DestroyWindow(hwnd);
}
else {
if (winIsInternalWMRunning(pScreenInfo)) {
+#ifdef XWIN_MULTIWINDOWINTWM
/* Tell our Window Manager thread to kill the window */
wmMsg.msg = WM_WM_KILL;
if (fWMMsgInitialized)
winSendMessageToWM(pScreenPriv->pWMInfo, &wmMsg);
}
+#endif
winWindowsWMSendEvent(WindowsWMControllerNotify,
WindowsWMControllerNotifyMask,
1,
@@ -677,22 +676,23 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
return 0;
case WM_MOUSEACTIVATE:
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMWindowProc - WM_MOUSEACTIVATE\n");
-#endif
-#if 1
+
+#ifdef XWIN_MULTIWINDOWINTWM
/* Check if this window needs to be made active when clicked */
if (winIsInternalWMRunning(pScreenInfo) && pWin->overrideRedirect) {
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMWindowProc - WM_MOUSEACTIVATE - "
"MA_NOACTIVATE\n");
-#endif
/* */
return MA_NOACTIVATE;
}
#endif
- if (!winIsInternalWMRunning(pScreenInfo) && !IsMouseActive(pWin))
+ if (
+#ifdef XWIN_MULTIWINDOWINTWM
+ !winIsInternalWMRunning(pScreenInfo) &&
+#endif
+ !IsMouseActive (pWin))
return MA_NOACTIVATE;
break;
@@ -758,9 +758,7 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
return 0;
case WM_ERASEBKGND:
-#if CYGDEBUG
winDebug("winMWExtWMWindowProc - WM_ERASEBKGND\n");
-#endif
/*
* Pretend that we did erase the background but we don't care,
* since we repaint the entire region anyhow
@@ -801,11 +799,10 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
break;
case WM_ACTIVATE:
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMWindowProc - WM_ACTIVATE\n");
-#endif
if (LOWORD(wParam) != WA_INACTIVE) {
if (winIsInternalWMRunning(pScreenInfo)) {
+#ifdef XWIN_MULTIWINDOWINTWM
#if 0
/* Raise the window to the top in Z order */
wmMsg.msg = WM_WM_RAISE;
@@ -818,6 +815,7 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
if (!pWin || !pWin->overrideRedirect) /* for OOo menus */
winSendMessageToWM(pScreenPriv->pWMInfo, &wmMsg);
}
+#endif
winWindowsWMSendEvent(WindowsWMControllerNotify,
WindowsWMControllerNotifyMask,
1,
@@ -831,26 +829,24 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
pWinPos = (LPWINDOWPOS) lParam;
if (!(pWinPos->flags & SWP_NOZORDER)) {
if (pRLWinPriv->fRestackingNow || pScreenPriv->fRestacking) {
-#if CYGMULTIWINDOW_DEBUG
winDebug("Win %p is now restacking.\n",
pRLWinPriv);
-#endif
break;
}
- if (winIsInternalWMRunning(pScreenInfo) || IsRaiseOnClick(pWin)) {
-#if CYGMULTIWINDOW_DEBUG
+ if (
+#ifdef XWIN_MULTIWINDOWINTWM
+ winIsInternalWMRunning(pScreenInfo) ||
+#endif
+ IsRaiseOnClick (pWin))
winDebug("Win %p has WINDOWSWM_RAISE_ON_CLICK.\n",
pRLWinPriv);
-#endif
break;
}
-#if CYGMULTIWINDOW_DEBUG
winDebug("Win %p forbid to change z order (%p).\n",
pRLWinPriv,
pWinPos->hwndInsertAfter);
-#endif
pWinPos->flags |= SWP_NOZORDER;
}
break;
@@ -885,14 +881,13 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
}
#endif
-#if CYGMULTIWINDOW_DEBUG
winDebug("\t(%d, %d)\n", (short) LOWORD(lParam),
(short) HIWORD(lParam));
-#endif
if (!pRLWinPriv->fMovingOrSizing) {
+#ifdef XWIN_MULTIWINDOWINTWM
if (winIsInternalWMRunning(pScreenInfo))
winAdjustXWindow(pWin, hwnd);
-
+#endif
winMWExtWMMoveXWindow(pWin, (LOWORD(lParam) - wBorderWidth(pWin)
- GetSystemMetrics(SM_XVIRTUALSCREEN)),
(HIWORD(lParam) - wBorderWidth(pWin)
@@ -901,23 +896,22 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
return 0;
case WM_SHOWWINDOW:
-#if CYGMULTIWINDOW_DEBUG || TRUE
winDebug("winMWExtWMWindowProc - WM_SHOWWINDOW - %d ms\n",
(unsigned int) GetTickCount());
-#endif
+
/* Bail out if the window is being hidden */
if (!wParam)
return 0;
+#ifdef XWIN_MULTIWINDOWINTWM
if (!pScreenInfo->fInternalWM) //XXXX
return 0;
winMWExtWMUpdateWindowDecoration(pRLWinPriv, pScreenInfo);
if (winIsInternalWMRunning(pScreenInfo)) {
-#if CYGMULTIWINDOW_DEBUG || TRUE
winDebug("\tMapWindow\n");
-#endif
+
/* Tell X to map the window */
MapWindow(pWin, wClient(pWin));
@@ -934,6 +928,9 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
if (fWMMsgInitialized)
winSendMessageToWM(pScreenPriv->pWMInfo, &wmMsg);
}
+#else
+ return 0;
+#endif
break;
case WM_SIZING:
@@ -944,7 +941,7 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
case WM_WINDOWPOSCHANGED:
{
pWinPos = (LPWINDOWPOS) lParam;
-#if CYGMULTIWINDOW_DEBUG
+#ifdef _DEBUG
winDebug("winMWExtWMWindowProc - WM_WINDOWPOSCHANGED\n");
winDebug("\tflags: %s%s%s%s%s%s%s%s%s%s%s%s\n",
(pWinPos->flags & SWP_DRAWFRAME) ? "SWP_DRAWFRAME " : "",
@@ -969,20 +966,19 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
if (pWinPos->flags & SWP_HIDEWINDOW)
break;
+#ifdef XWIN_MULTIWINDOWINTWM
/* Reorder if window z order was changed */
if ((pScreenPriv != NULL)
&& !(pWinPos->flags & SWP_NOZORDER)
&& !(pWinPos->flags & SWP_SHOWWINDOW)
&& winIsInternalWMRunning(pScreenInfo)) {
-#if CYGMULTIWINDOW_DEBUG
winDebug("\twindow z order was changed\n");
-#endif
+
if (pWinPos->hwndInsertAfter == HWND_TOP
|| pWinPos->hwndInsertAfter == HWND_TOPMOST
|| pWinPos->hwndInsertAfter == HWND_NOTOPMOST) {
-#if CYGMULTIWINDOW_DEBUG
winDebug("\traise to top\n");
-#endif
+
/* Raise the window to the top in Z order */
wmMsg.msg = WM_WM_RAISE;
if (fWMMsgInitialized)
@@ -1012,9 +1008,8 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
/* If this is top of X windows in Windows stack,
raise it in X stack. */
if (hWndAbove == NULL) {
-#if CYGMULTIWINDOW_DEBUG
winDebug("\traise to top\n");
-#endif
+
/* Raise the window to the top in Z order */
wmMsg.msg = WM_WM_RAISE;
if (fWMMsgInitialized)
@@ -1023,18 +1018,19 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
}
#endif
}
+#endif
if (!(pWinPos->flags & SWP_NOSIZE)) {
if (IsIconic(hwnd)) {
-#if CYGMULTIWINDOW_DEBUG
winDebug("\tIconic -> MINIMIZED\n");
-#endif
+#ifdef XWIN_MULTIWINDOWINTWM
if (winIsInternalWMRunning(pScreenInfo)) {
/* Raise the window to the top in Z order */
wmMsg.msg = WM_WM_LOWER;
if (fWMMsgInitialized)
winSendMessageToWM(pScreenPriv->pWMInfo, &wmMsg);
}
+#endif
winWindowsWMSendEvent(WindowsWMControllerNotify,
WindowsWMControllerNotifyMask,
1,
@@ -1042,9 +1038,8 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
pWin->drawable.id, 0, 0, 0, 0);
}
else if (IsZoomed(hwnd)) {
-#if CYGMULTIWINDOW_DEBUG
winDebug("\tZoomed -> MAXIMIZED\n");
-#endif
+
winWindowsWMSendEvent(WindowsWMControllerNotify,
WindowsWMControllerNotifyMask,
1,
@@ -1052,9 +1047,8 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
pWin->drawable.id, 0, 0, 0, 0);
}
else {
-#if CYGMULTIWINDOW_DEBUG
winDebug("\tnone -> RESTORED\n");
-#endif
+
winWindowsWMSendEvent(WindowsWMControllerNotify,
WindowsWMControllerNotifyMask,
1,
@@ -1071,12 +1065,12 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
if (!(pWinPos->flags & SWP_NOMOVE)
&& !(pWinPos->flags & SWP_NOSIZE)) {
-#if CYGMULTIWINDOW_DEBUG
winDebug("\tmove & resize\n");
-#endif
+
+#ifdef XWIN_MULTIWINDOWINTWM
if (winIsInternalWMRunning(pScreenInfo))
winAdjustXWindow(pWin, hwnd);
-
+#endif
winMWExtWMMoveResizeXWindow(pWin,
rcClient.left -
wBorderWidth(pWin)
@@ -1094,12 +1088,11 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
wBorderWidth(pWin) * 2);
}
else if (!(pWinPos->flags & SWP_NOMOVE)) {
-#if CYGMULTIWINDOW_DEBUG
winDebug("\tmove\n");
-#endif
+#ifdef XWIN_MULTIWINDOWINTWM
if (winIsInternalWMRunning(pScreenInfo))
winAdjustXWindow(pWin, hwnd);
-
+#endif
winMWExtWMMoveResizeXWindow(pWin,
rcClient.left -
wBorderWidth(pWin)
@@ -1117,12 +1110,12 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
wBorderWidth(pWin) * 2);
}
else if (!(pWinPos->flags & SWP_NOMOVE)) {
-#if CYGMULTIWINDOW_DEBUG
winDebug("\tmove\n");
-#endif
+
+#ifdef XWIN_MULTIWINDOWINTWM
if (winIsInternalWMRunning(pScreenInfo))
winAdjustXWindow(pWin, hwnd);
-
+#endif
winMWExtWMMoveXWindow(pWin,
rcClient.left - wBorderWidth(pWin)
- GetSystemMetrics(SM_XVIRTUALSCREEN),
@@ -1131,12 +1124,11 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
GetSystemMetrics(SM_YVIRTUALSCREEN));
}
else if (!(pWinPos->flags & SWP_NOSIZE)) {
-#if CYGMULTIWINDOW_DEBUG
winDebug("\tresize\n");
-#endif
+#ifdef XWIN_MULTIWINDOWINTWM
if (winIsInternalWMRunning(pScreenInfo))
winAdjustXWindow(pWin, hwnd);
-
+#endif
winMWExtWMResizeXWindow(pWin,
rcClient.right - rcClient.left
- wBorderWidth(pWin) * 2,
@@ -1146,37 +1138,34 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
}
}
}
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMWindowProc - WM_WINDOWPOSCHANGED - done.\n");
-#endif
+
return 0;
case WM_SIZE:
/* see dix/window.c */
/* FIXME: Maximize/Restore? */
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMWindowProc - WM_SIZE - %d ms\n",
(unsigned int) GetTickCount());
-#endif
-#if CYGMULTIWINDOW_DEBUG
+
winDebug("\t(%d, %d) %d\n", (short) LOWORD(lParam),
(short) HIWORD(lParam), g_fNoConfigureWindow);
-#endif
if (g_fNoConfigureWindow)
break;
/* Branch on type of resizing occurring */
switch (wParam) {
case SIZE_MINIMIZED:
-#if CYGMULTIWINDOW_DEBUG
winDebug("\tSIZE_MINIMIZED\n");
-#endif
+
+#ifdef XWIN_MULTIWINDOWINTWM
if (winIsInternalWMRunning(pScreenInfo)) {
/* Raise the window to the top in Z order */
wmMsg.msg = WM_WM_LOWER;
if (fWMMsgInitialized)
winSendMessageToWM(pScreenPriv->pWMInfo, &wmMsg);
}
+#endif
winWindowsWMSendEvent(WindowsWMControllerNotify,
WindowsWMControllerNotifyMask,
1,
@@ -1186,9 +1175,8 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
break;
case SIZE_RESTORED:
-#if CYGMULTIWINDOW_DEBUG
winDebug("\tSIZE_RESTORED\n");
-#endif
+
winWindowsWMSendEvent(WindowsWMControllerNotify,
WindowsWMControllerNotifyMask,
1,
@@ -1212,9 +1200,10 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
/* Perform the resize and notify the X client */
if (!pRLWinPriv->fMovingOrSizing) {
+#ifdef XWIN_MULTIWINDOWINTWM
if (winIsInternalWMRunning(pScreenInfo))
winAdjustXWindow(pWin, hwnd);
-
+#endif
winMWExtWMResizeXWindow(pWin, (short) LOWORD(lParam)
- wBorderWidth(pWin) * 2,
(short) HIWORD(lParam)
@@ -1229,9 +1218,11 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
#endif
if (wParam) {
if (winIsInternalWMRunning(pScreenInfo)) {
+#ifdef XWIN_MULTIWINDOWINTWM
}
else {
}
+#endif
winWindowsWMSendEvent(WindowsWMActivationNotify,
WindowsWMActivationNotifyMask,
1,
@@ -1256,26 +1247,26 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
break;
case WM_ENTERSIZEMOVE:
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMWindowProc - WM_ENTERSIZEMOVE - %d ms\n",
(unsigned int) GetTickCount());
-#endif
+
pRLWinPriv->fMovingOrSizing = TRUE;
break;
case WM_EXITSIZEMOVE:
-#if CYGMULTIWINDOW_DEBUG
winDebug("winMWExtWMWindowProc - WM_EXITSIZEMOVE - %d ms\n",
(unsigned int) GetTickCount());
-#endif
+
pRLWinPriv->fMovingOrSizing = FALSE;
GetClientRect(hwnd, &rcClient);
MapWindowPoints(hwnd, HWND_DESKTOP, (LPPOINT) &rcClient, 2);
+#ifdef XWIN_MULTIWINDOWINTWM
if (winIsInternalWMRunning(pScreenInfo))
winAdjustXWindow(pWin, hwnd);
+#endif
winMWExtWMMoveResizeXWindow(pWin, rcClient.left - wBorderWidth(pWin)
- GetSystemMetrics(SM_XVIRTUALSCREEN),
@@ -1288,11 +1279,11 @@ winMWExtWMWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
break;
case WM_MANAGE:
- ErrorF("winMWExtWMWindowProc - WM_MANAGE\n");
+ winDebug ("winMWExtWMWindowProc - WM_MANAGE\n");
break;
case WM_UNMANAGE:
- ErrorF("winMWExtWMWindowProc - WM_UNMANAGE\n");
+ winDebug ("winMWExtWMWindowProc - WM_UNMANAGE\n");
break;
default:
diff --git a/xorg-server/hw/xwin/winwindow.c b/xorg-server/hw/xwin/winwindow.c
index 029bd855d..e3bac41d9 100644
--- a/xorg-server/hw/xwin/winwindow.c
+++ b/xorg-server/hw/xwin/winwindow.c
@@ -61,9 +61,7 @@ winCreateWindowNativeGDI(WindowPtr pWin)
winScreenPriv(pScreen);
-#if CYGDEBUG
- winTrace("winCreateWindowNativeGDI (%p)\n", pWin);
-#endif
+ winDebug ("winCreateWindowNativeGDI (%p)\n", pWin);
WIN_UNWRAP(CreateWindow);
fResult = (*pScreen->CreateWindow) (pWin);
@@ -83,9 +81,7 @@ winDestroyWindowNativeGDI(WindowPtr pWin)
winScreenPriv(pScreen);
-#if CYGDEBUG
- winTrace("winDestroyWindowNativeGDI (%p)\n", pWin);
-#endif
+ winDebug ("winDestroyWindowNativeGDI (%p)\n", pWin);
WIN_UNWRAP(DestroyWindow);
fResult = (*pScreen->DestroyWindow) (pWin);
@@ -105,9 +101,7 @@ winPositionWindowNativeGDI(WindowPtr pWin, int x, int y)
winScreenPriv(pScreen);
-#if CYGDEBUG
- winTrace("winPositionWindowNativeGDI (%p)\n", pWin);
-#endif
+ winDebug ("winPositionWindowNativeGDI (%p)\n", pWin);
WIN_UNWRAP(PositionWindow);
fResult = (*pScreen->PositionWindow) (pWin, x, y);
@@ -133,9 +127,6 @@ winCopyWindowNativeGDI(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc)
winScreenPriv(pScreen);
-#if 0
- ErrorF("winCopyWindow\n");
-#endif
/* Create a region for the destination */
prgnDst = RegionCreate(NULL, 1);
@@ -171,18 +162,8 @@ winCopyWindowNativeGDI(WindowPtr pWin, DDXPointRec ptOldOrg, RegionPtr prgnSrc)
pBoxDst = RegionRects(prgnDst);
ppt = pptSrc;
-#if 0
- ErrorF("winCopyWindow - x1\tx2\ty1\ty2\tx\ty\n");
-#endif
-
/* BitBlt each source to the destination point */
for (i = nbox; --i >= 0; pBoxDst++, ppt++) {
-#if 0
- ErrorF("winCopyWindow - %d\t%d\t%d\t%d\t%d\t%d\n",
- pBoxDst->x1, pBoxDst->x2, pBoxDst->y1, pBoxDst->y2,
- ppt->x, ppt->y);
-#endif
-
BitBlt(pScreenPriv->hdcScreen,
pBoxDst->x1, pBoxDst->y1,
pBoxDst->x2 - pBoxDst->x1, pBoxDst->y2 - pBoxDst->y1,
@@ -205,9 +186,7 @@ winChangeWindowAttributesNativeGDI(WindowPtr pWin, unsigned long mask)
winScreenPriv(pScreen);
-#if CYGDEBUG
- winTrace("winChangeWindowAttributesNativeGDI (%p)\n", pWin);
-#endif
+ winDebug ("winChangeWindowAttributesNativeGDI (%p)\n", pWin);
WIN_UNWRAP(ChangeWindowAttributes);
fResult = (*pScreen->ChangeWindowAttributes) (pWin, mask);
@@ -232,9 +211,7 @@ winUnmapWindowNativeGDI(WindowPtr pWin)
winScreenPriv(pScreen);
-#if CYGDEBUG
- winTrace("winUnmapWindowNativeGDI (%p)\n", pWin);
-#endif
+ winDebug ("winUnmapWindowNativeGDI (%p)\n", pWin);
WIN_UNWRAP(UnrealizeWindow);
fResult = (*pScreen->UnrealizeWindow) (pWin);
@@ -255,9 +232,7 @@ winMapWindowNativeGDI(WindowPtr pWin)
winScreenPriv(pScreen);
-#if CYGDEBUG
- winTrace("winMapWindowNativeGDI (%p)\n", pWin);
-#endif
+ winDebug ("winMapWindowNativeGDI (%p)\n", pWin);
WIN_UNWRAP(RealizeWindow);
fResult = (*pScreen->RealizeWindow) (pWin);
@@ -280,9 +255,7 @@ winCreateWindowRootless(WindowPtr pWin)
winWindowPriv(pWin);
winScreenPriv(pScreen);
-#if CYGDEBUG
- winTrace("winCreateWindowRootless (%p)\n", pWin);
-#endif
+ winDebug ("winCreateWindowRootless (%p)\n", pWin);
WIN_UNWRAP(CreateWindow);
fResult = (*pScreen->CreateWindow) (pWin);
@@ -305,9 +278,7 @@ winDestroyWindowRootless(WindowPtr pWin)
winWindowPriv(pWin);
winScreenPriv(pScreen);
-#if CYGDEBUG
- winTrace("winDestroyWindowRootless (%p)\n", pWin);
-#endif
+ winDebug ("winDestroyWindowRootless (%p)\n", pWin);
WIN_UNWRAP(DestroyWindow);
fResult = (*pScreen->DestroyWindow) (pWin);
@@ -334,9 +305,7 @@ winPositionWindowRootless(WindowPtr pWin, int x, int y)
winScreenPriv(pScreen);
-#if CYGDEBUG
- winTrace("winPositionWindowRootless (%p)\n", pWin);
-#endif
+ winDebug ("winPositionWindowRootless (%p)\n", pWin);
WIN_UNWRAP(PositionWindow);
fResult = (*pScreen->PositionWindow) (pWin, x, y);
@@ -358,9 +327,7 @@ winChangeWindowAttributesRootless(WindowPtr pWin, unsigned long mask)
winScreenPriv(pScreen);
-#if CYGDEBUG
- winTrace("winChangeWindowAttributesRootless (%p)\n", pWin);
-#endif
+ winDebug ("winChangeWindowAttributesRootless (%p)\n", pWin);
WIN_UNWRAP(ChangeWindowAttributes);
fResult = (*pScreen->ChangeWindowAttributes) (pWin, mask);
@@ -384,9 +351,7 @@ winUnmapWindowRootless(WindowPtr pWin)
winWindowPriv(pWin);
winScreenPriv(pScreen);
-#if CYGDEBUG
- winTrace("winUnmapWindowRootless (%p)\n", pWin);
-#endif
+ winDebug ("winUnmapWindowRootless (%p)\n", pWin);
WIN_UNWRAP(UnrealizeWindow);
fResult = (*pScreen->UnrealizeWindow) (pWin);
@@ -414,9 +379,7 @@ winMapWindowRootless(WindowPtr pWin)
winScreenPriv(pScreen);
-#if CYGDEBUG
- winTrace("winMapWindowRootless (%p)\n", pWin);
-#endif
+ winDebug ("winMapWindowRootless (%p)\n", pWin);
WIN_UNWRAP(RealizeWindow);
fResult = (*pScreen->RealizeWindow) (pWin);
@@ -436,9 +399,7 @@ winSetShapeRootless(WindowPtr pWin, int kind)
winScreenPriv(pScreen);
-#if CYGDEBUG
- winTrace("winSetShapeRootless (%p, %i)\n", pWin, kind);
-#endif
+ winDebug ("winSetShapeRootless (%p, %i)\n", pWin, kind);
WIN_UNWRAP(SetShape);
(*pScreen->SetShape) (pWin, kind);
@@ -466,9 +427,7 @@ winAddRgn(WindowPtr pWin, pointer data)
/* If pWin is not Root */
if (pWin->parent != NULL) {
-#if CYGDEBUG
winDebug("winAddRgn ()\n");
-#endif
if (pWin->mapped) {
iBorder = wBorderWidth(pWin);
@@ -481,9 +440,9 @@ winAddRgn(WindowPtr pWin, pointer data)
hRgnWin = CreateRectRgn(0, 0, iWidth, iHeight);
if (hRgnWin == NULL) {
- ErrorF("winAddRgn - CreateRectRgn () failed\n");
- ErrorF(" Rect %d %d %d %d\n",
- iX, iY, iX + iWidth, iY + iHeight);
+ winDebug ("winAddRgn - CreateRectRgn () failed\n");
+ winDebug (" Rect %d %d %d %d\n",
+ iX, iY, iX + iWidth, iY + iHeight);
}
if (pWinPriv->hRgn) {
@@ -539,9 +498,7 @@ winReshapeRootless(WindowPtr pWin)
winWindowPriv(pWin);
-#if CYGDEBUG
winDebug("winReshapeRootless ()\n");
-#endif
/* Bail if the window is the root window */
if (pWin->parent == NULL)
diff --git a/xorg-server/hw/xwin/winwindow.h b/xorg-server/hw/xwin/winwindow.h
index 7e6bd565c..3ab7148d7 100644
--- a/xorg-server/hw/xwin/winwindow.h
+++ b/xorg-server/hw/xwin/winwindow.h
@@ -41,30 +41,24 @@
/* Constant strings */
#ifndef PROJECT_NAME
-#define PROJECT_NAME "Cygwin/X"
+#define PROJECT_NAME "VcXsrv"
#endif
-#define EXECUTABLE_NAME "XWin"
-#define WINDOW_CLASS "cygwin/x"
-#define WINDOW_TITLE PROJECT_NAME ":%s.%d"
-#define WINDOW_TITLE_XDMCP "%s:%s.%d"
-#define WIN_SCR_PROP "cyg_screen_prop rl"
-#define WINDOW_CLASS_X "cygwin/x X rl"
-#define WINDOW_CLASS_X_MSG "cygwin/x X msg"
-#define WINDOW_TITLE_X PROJECT_NAME " X"
-#define WIN_WINDOW_PROP "cyg_window_prop_rl"
+#define EXECUTABLE_NAME "VcXsrv"
+#define WINDOW_CLASS "VcXsrv/x"
+#define WINDOW_TITLE PROJECT_NAME " Server - Display %s:%s.%d"
+#define WINDOW_TITLE_XDMCP PROJECT_NAME " Server - %s - Display %s:%s.%d"
+extern const char WIN_SCR_PROP[];
+#define WINDOW_CLASS_X "vcxsrv/x X rl"
+#define WINDOW_CLASS_X_MSG "vcxsrv/x X msg"
+#define WINDOW_TITLE_X PROJECT_NAME " X"
+extern const char WIN_WINDOW_PROP[];
#ifdef HAS_DEVWINDOWS
-#define WIN_MSG_QUEUE_FNAME "/dev/windows"
-#endif
-#define WIN_WID_PROP "cyg_wid_prop_rl"
-#define WIN_NEEDMANAGE_PROP "cyg_override_redirect_prop_rl"
-#ifndef CYGMULTIWINDOW_DEBUG
-#define CYGMULTIWINDOW_DEBUG NO
-#endif
-#ifndef CYGWINDOWING_DEBUG
-#define CYGWINDOWING_DEBUG NO
+#define WIN_MSG_QUEUE_FNAME "/dev/windows"
#endif
+extern const char WIN_WID_PROP[];
+extern const char WIN_NEEDMANAGE_PROP[];
-#define XMING_SIGNATURE 0x12345678L
+#define VCXSRV_SIGNATURE 0xdeaddeadL
typedef struct _winPrivScreenRec *winPrivScreenPtr;
@@ -76,6 +70,7 @@ typedef struct {
DWORD dwDummy;
HRGN hRgn;
HWND hWnd;
+ BOOL OpenGlWindow;
winPrivScreenPtr pScreenPriv;
Bool fXKilled;
HDWP hDwp;
@@ -114,6 +109,8 @@ typedef struct _winWMMessageRec {
#define WM_WM_HINTS_EVENT (WM_USER + 14)
#define WM_MANAGE (WM_USER + 100)
#define WM_UNMANAGE (WM_USER + 102)
+#define WM_WM_REINIT (WM_USER + 200)
+
#define MwmHintsDecorations (1L << 1)
@@ -151,6 +148,15 @@ void
winMinimizeWindow(Window id);
void
+winTaskbarInit (void);
+
+void
+winTaskbarDestroy (void);
+
+void
+winSetAppID (HWND hWnd, const char* AppID);
+
+void
winPropertyStoreInit(void);
void
diff --git a/xorg-server/hw/xwin/winwindowswm.c b/xorg-server/hw/xwin/winwindowswm.c
index be43265e0..36f4ce0ae 100644
--- a/xorg-server/hw/xwin/winwindowswm.c
+++ b/xorg-server/hw/xwin/winwindowswm.c
@@ -234,26 +234,20 @@ winWindowsWMSendEvent(int type, unsigned int mask, int which, int arg,
WMEventPtr *pHead, pEvent;
ClientPtr client;
xWindowsWMNotifyEvent se;
-
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("winWindowsWMSendEvent %d %d %d %d, %d %d - %d %d\n",
- type, mask, which, arg, x, y, w, h);
-#endif
+ winDebug ("winWindowsWMSendEvent %d %d %d %d, %d %d - %d %d\n",
+ type, mask, which, arg, x, y, w, h);
dixLookupResourceByType((pointer) &pHead, eventResource, eventResourceType,
NullClient, DixUnknownAccess);
if (!pHead)
return;
for (pEvent = *pHead; pEvent; pEvent = pEvent->next) {
client = pEvent->client;
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("winWindowsWMSendEvent - %p\n", client);
-#endif
+ winDebug ("winWindowsWMSendEvent - %p\n", client);
if ((pEvent->mask & mask) == 0) {
continue;
}
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("winWindowsWMSendEvent - send\n");
-#endif
+ winDebug ("winWindowsWMSendEvent - send\n");
+
se.type = type + WMEventBase;
se.kind = which;
se.window = window;
@@ -311,10 +305,8 @@ ProcWindowsWMFrameGetRect(ClientPtr client)
REQUEST(xWindowsWMFrameGetRectReq);
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("ProcWindowsWMFrameGetRect %d %d\n",
- (sizeof(xWindowsWMFrameGetRectReq) >> 2), (int) client->req_len);
-#endif
+ winDebug ("ProcWindowsWMFrameGetRect %d %d\n",
+ (sizeof(xWindowsWMFrameGetRectReq) >> 2), (int) client->req_len);
REQUEST_SIZE_MATCH(xWindowsWMFrameGetRectReq);
rep.type = X_Reply;
@@ -330,10 +322,8 @@ ProcWindowsWMFrameGetRect(ClientPtr client)
SetRect(&rcNew, stuff->ix, stuff->iy,
stuff->ix + stuff->iw, stuff->iy + stuff->ih);
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("ProcWindowsWMFrameGetRect - %d %d %d %d\n",
- stuff->ix, stuff->iy, stuff->ix + stuff->iw, stuff->iy + stuff->ih);
-#endif
+ winDebug ("ProcWindowsWMFrameGetRect - %d %d %d %d\n",
+ stuff->ix, stuff->iy, stuff->ix + stuff->iw, stuff->iy + stuff->ih);
/*
* Calculate the required size of the Windows window rectangle,
@@ -345,10 +335,8 @@ ProcWindowsWMFrameGetRect(ClientPtr client)
rep.y = rcNew.top;
rep.w = rcNew.right - rcNew.left;
rep.h = rcNew.bottom - rcNew.top;
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("ProcWindowsWMFrameGetRect - %d %d %d %d\n",
+ winDebug ("ProcWindowsWMFrameGetRect - %d %d %d %d\n",
rep.x, rep.y, rep.w, rep.h);
-#endif
WriteToClient(client, sizeof(xWindowsWMFrameGetRectReply), &rep);
return Success;
@@ -366,27 +354,23 @@ ProcWindowsWMFrameDraw(ClientPtr client)
REQUEST_SIZE_MATCH(xWindowsWMFrameDrawReq);
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("ProcWindowsWMFrameDraw\n");
-#endif
+ winDebug ("ProcWindowsWMFrameDraw\n");
+
rc = dixLookupWindow(&pWin, stuff->window, client, DixReadAccess);
if (rc != Success)
return rc;
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("ProcWindowsWMFrameDraw - Window found\n");
-#endif
+
+ winDebug ("ProcWindowsWMFrameDraw - Window found\n");
pRLWinPriv = (win32RootlessWindowPtr) RootlessFrameForWindow(pWin, TRUE);
if (pRLWinPriv == 0)
return BadWindow;
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("ProcWindowsWMFrameDraw - HWND %p 0x%08x 0x%08x\n",
- pRLWinPriv->hWnd, (int) stuff->frame_style,
- (int) stuff->frame_style_ex);
- ErrorF("ProcWindowsWMFrameDraw - %d %d %d %d\n",
- stuff->ix, stuff->iy, stuff->iw, stuff->ih);
-#endif
+ winDebug ("ProcWindowsWMFrameDraw - HWND %p 0x%08x 0x%08x\n",
+ pRLWinPriv->hWnd, (int) stuff->frame_style,
+ (int) stuff->frame_style_ex);
+ winDebug ("ProcWindowsWMFrameDraw - %d %d %d %d\n",
+ stuff->ix, stuff->iy, stuff->iw, stuff->ih);
/* Store the origin, height, and width in a rectangle structure */
SetRect(&rcNew, stuff->ix, stuff->iy,
@@ -433,9 +417,7 @@ ProcWindowsWMFrameDraw(ClientPtr client)
winMWExtWMReshapeFrame(pRLWinPriv, &newShape);
RegionUninit(&newShape);
}
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("ProcWindowsWMFrameDraw - done\n");
-#endif
+ winDebug ("ProcWindowsWMFrameDraw - done\n");
return Success;
}
@@ -451,18 +433,14 @@ ProcWindowsWMFrameSetTitle(ClientPtr client)
win32RootlessWindowPtr pRLWinPriv;
int rc;
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("ProcWindowsWMFrameSetTitle\n");
-#endif
+ winDebug ("ProcWindowsWMFrameSetTitle\n");
REQUEST_AT_LEAST_SIZE(xWindowsWMFrameSetTitleReq);
rc = dixLookupWindow(&pWin, stuff->window, client, DixReadAccess);
if (rc != Success)
return rc;
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("ProcWindowsWMFrameSetTitle - Window found\n");
-#endif
+ winDebug ("ProcWindowsWMFrameSetTitle - Window found\n");
title_length = stuff->title_length;
title_max = (stuff->length << 2) - sizeof(xWindowsWMFrameSetTitleReq);
@@ -470,9 +448,7 @@ ProcWindowsWMFrameSetTitle(ClientPtr client)
if (title_max < title_length)
return BadValue;
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("ProcWindowsWMFrameSetTitle - length is valid\n");
-#endif
+ winDebug ("ProcWindowsWMFrameSetTitle - length is valid\n");
title_bytes = malloc(title_length + 1);
strncpy(title_bytes, (char *) &stuff[1], title_length);
@@ -490,9 +466,7 @@ ProcWindowsWMFrameSetTitle(ClientPtr client)
free(title_bytes);
-#if CYGMULTIWINDOW_DEBUG
- ErrorF("ProcWindowsWMFrameSetTitle - done\n");
-#endif
+ winDebug ("ProcWindowsWMFrameSetTitle - done\n");
return Success;
}
diff --git a/xorg-server/hw/xwin/winwndproc.c b/xorg-server/hw/xwin/winwndproc.c
index c73a75c6f..6d4cb3a51 100644
--- a/xorg-server/hw/xwin/winwndproc.c
+++ b/xorg-server/hw/xwin/winwndproc.c
@@ -43,10 +43,16 @@
#include "winmonitors.h"
#include "inputstr.h"
+#ifndef XKB_IN_SERVER
+#define XKB_IN_SERVER
+#endif
+#include <xkbsrv.h>
+
/*
* Global variables
*/
+extern Bool g_fClipboardStarted;
Bool g_fCursor = TRUE;
Bool g_fButton[3] = { FALSE, FALSE, FALSE };
@@ -68,9 +74,7 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
int iScanCode;
int i;
-#if CYGDEBUG
winDebugWin32Message("winWindowProc", hwnd, message, wParam, lParam);
-#endif
/* Watch for server regeneration */
if (g_ulServerGeneration != s_ulServerGeneration) {
@@ -81,9 +85,7 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
/* Only retrieve new privates pointers if window handle is null or changed */
if ((s_pScreenPriv == NULL || hwnd != s_hwndLastPrivates)
&& (s_pScreenPriv = GetProp(hwnd, WIN_SCR_PROP)) != NULL) {
-#if CYGDEBUG
winDebug("winWindowProc - Setting privates handle\n");
-#endif
s_pScreenInfo = s_pScreenPriv->pScreenInfo;
s_pScreen = s_pScreenInfo->pScreen;
s_hwndLastPrivates = hwnd;
@@ -102,9 +104,7 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
s_pScreenPriv);
case WM_CREATE:
-#if CYGDEBUG
winDebug("winWindowProc - WM_CREATE\n");
-#endif
/*
* Add a property to our display window that references
@@ -135,7 +135,7 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
s_pScreenPriv->hwndScreen = hwnd;
- winInitNotifyIcon(s_pScreenPriv);
+ winInitNotifyIcon(s_pScreenPriv,FALSE);
}
return 0;
@@ -168,9 +168,9 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
break;
}
- ErrorF("winWindowProc - WM_DISPLAYCHANGE - new width: %d "
- "new height: %d new bpp: %d\n",
- LOWORD(lParam), HIWORD(lParam), wParam);
+ winDebug ("winWindowProc - WM_DISPLAYCHANGE - new width: %d "
+ "new height: %d new bpp: %d\n",
+ LOWORD(lParam), HIWORD(lParam), wParam);
/* 0 bpp has no defined meaning, ignore this message */
if (wParam == 0)
@@ -194,7 +194,7 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
#endif
)) {
/* Cannot display the visual until the depth is restored */
- ErrorF("winWindowProc - Disruptive change in depth\n");
+ winDebug ("winWindowProc - Disruptive change in depth\n");
/* Display depth change dialog */
winDisplayDepthChangeDialog(s_pScreenPriv);
@@ -244,7 +244,7 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
fMultiWindow
#endif
)) {
- DWORD dwWidth, dwHeight;
+ DWORD dwWidth = 0, dwHeight = 0;
if (s_pScreenInfo->fMultipleMonitors) {
/* resize to new virtual desktop size */
@@ -308,25 +308,31 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
winDebug
("winWindowProc - WM_DISPLAYCHANGE - Releasing and recreating primary surface\n");
- /* Release the old primary surface */
- (*s_pScreenPriv->pwinReleasePrimarySurface) (s_pScreen);
+ /* Reallocate the framebuffer used by the drawing engine */
+ (*s_pScreenPriv->pwinFreeFB)(s_pScreen);
+ if (!(*s_pScreenPriv->pwinAllocateFB)(s_pScreen))
+ {
+ ErrorF ("winWindowProc - WM_DISPLAYCHANGE - Could not reallocate framebuffer\n");
+ }
+ /* Update the screen pixmap to point to the new framebuffer */
+ winUpdateFBPointer(s_pScreen, s_pScreenPriv->pScreenInfo->pfb);
+ // Restore the ability to update screen, now with new dimensions
+ SetRootClip(s_pScreen, TRUE);
- /* Create the new primary surface */
- (*s_pScreenPriv->pwinCreatePrimarySurface) (s_pScreen);
+ // and arrange for it to be repainted
+ miPaintWindow(s_pScreen->root, &s_pScreen->root->borderClip, PW_BACKGROUND);
}
}
break;
-
+
case WM_SIZE:
{
SCROLLINFO si;
RECT rcWindow;
int iWidth, iHeight;
-#if CYGDEBUG
winDebug("winWindowProc - WM_SIZE\n");
-#endif
/* Break if we do not allow resizing */
if ((s_pScreenInfo->iResizeMode == notAllowed)
@@ -345,8 +351,8 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
if (wParam == SIZE_MINIMIZED)
return 0;
- ErrorF("winWindowProc - WM_SIZE - new client area w: %d h: %d\n",
- LOWORD(lParam), HIWORD(lParam));
+ winDebug ("winWindowProc - WM_SIZE - new client area w: %d h: %d\n",
+ LOWORD(lParam), HIWORD(lParam));
if (s_pScreenInfo->iResizeMode == resizeWithRandr) {
/* Actual resizing is done on WM_EXITSIZEMOVE */
@@ -425,20 +431,22 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
s_pScreenInfo->dwYOffset = -si.nPos;
}
return 0;
-
- case WM_SYSCOMMAND:
- if (s_pScreenInfo->iResizeMode == resizeWithRandr &&
- ((wParam & 0xfff0) == SC_MAXIMIZE ||
- (wParam & 0xfff0) == SC_RESTORE))
- PostMessage(hwnd, WM_EXITSIZEMOVE, 0, 0);
+
+ case WM_SYSCOMMAND:
+ if ((wParam & 0xfff0) == SC_MAXIMIZE ||
+ (wParam & 0xfff0) == SC_RESTORE)
+ {
+ winDebug("Posting WM_EXITSIZEMOVE message since windows does not send it when the maximised/restored button is clicked.\n");
+ PostMessage(hwnd, WM_EXITSIZEMOVE, 0, 0);
+ }
break;
case WM_ENTERSIZEMOVE:
- ErrorF("winWindowProc - WM_ENTERSIZEMOVE\n");
+ winDebug("winWindowProc - WM_ENTERSIZEMOVE\n");
break;
case WM_EXITSIZEMOVE:
- ErrorF("winWindowProc - WM_EXITSIZEMOVE\n");
+ winDebug("winWindowProc - WM_EXITSIZEMOVE\n");
if (s_pScreenInfo->iResizeMode == resizeWithRandr) {
/* Set screen size to match new client area, if it is different to current */
@@ -467,9 +475,7 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
SCROLLINFO si;
int iVertPos;
-#if CYGDEBUG
winDebug("winWindowProc - WM_VSCROLL\n");
-#endif
/* Get vertical scroll bar info */
si.cbSize = sizeof(si);
@@ -546,9 +552,7 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
SCROLLINFO si;
int iHorzPos;
-#if CYGDEBUG
winDebug("winWindowProc - WM_HSCROLL\n");
-#endif
/* Get horizontal scroll bar info */
si.cbSize = sizeof(si);
@@ -625,10 +629,8 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
int iCaptionHeight;
int iBorderHeight, iBorderWidth;
-#if CYGDEBUG
winDebug("winWindowProc - WM_GETMINMAXINFO - pScreenInfo: %08x\n",
s_pScreenInfo);
-#endif
/* Can't do anything without screen info */
if (s_pScreenInfo == NULL
@@ -669,9 +671,7 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
return 0;
case WM_ERASEBKGND:
-#if CYGDEBUG
winDebug("winWindowProc - WM_ERASEBKGND\n");
-#endif
/*
* Pretend that we did erase the background but we don't care,
* the application uses the full window estate. This avoids some
@@ -680,9 +680,6 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
return TRUE;
case WM_PAINT:
-#if CYGDEBUG
- winDebug("winWindowProc - WM_PAINT\n");
-#endif
/* Only paint if we have privates and the server is enabled */
if (s_pScreenPriv == NULL
|| !s_pScreenPriv->fEnabled
@@ -702,9 +699,7 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
case WM_PALETTECHANGED:
{
-#if CYGDEBUG
winDebug("winWindowProc - WM_PALETTECHANGED\n");
-#endif
/*
* Don't process if we don't have privates or a colormap,
* or if we have an invalid depth.
@@ -955,11 +950,11 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
wShift = (GetKeyState(VK_SHIFT) & 0x8000) ? MK_SHIFT : 0;
wCtrl = (GetKeyState(VK_CONTROL) & 0x8000) ? MK_CONTROL : 0;
lPos = MAKELPARAM(point.x, point.y);
- if (g_fButton[0] & !wL)
+ if (g_fButton[0] && !wL)
PostMessage(hwnd, WM_LBUTTONUP, wCtrl | wM | wR | wShift, lPos);
- if (g_fButton[1] & !wM)
+ if (g_fButton[1] && !wM)
PostMessage(hwnd, WM_MBUTTONUP, wCtrl | wL | wR | wShift, lPos);
- if (g_fButton[2] & !wR)
+ if (g_fButton[2] && !wR)
PostMessage(hwnd, WM_RBUTTONUP, wCtrl | wL | wM | wShift, lPos);
}
}
@@ -973,9 +968,7 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
case WM_MOUSEWHEEL:
if (s_pScreenPriv == NULL || s_pScreenInfo->fIgnoreInput)
break;
-#if CYGDEBUG
winDebug("winWindowProc - WM_MOUSEWHEEL\n");
-#endif
/* Button4 = WheelUp */
/* Button5 = WheelDown */
winMouseWheel(&(s_pScreenPriv->iDeltaZ), GET_WHEEL_DELTA_WPARAM(wParam), Button4, Button5);
@@ -984,9 +977,7 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
case WM_MOUSEHWHEEL:
if (s_pScreenPriv == NULL || s_pScreenInfo->fIgnoreInput)
break;
-#if CYGDEBUG
winDebug("winWindowProc - WM_MOUSEHWHEEL\n");
-#endif
/* Button7 = TiltRight */
/* Button6 = TiltLeft */
winMouseWheel(&(s_pScreenPriv->iDeltaV), GET_WHEEL_DELTA_WPARAM(wParam), 7, 6);
@@ -1039,21 +1030,13 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
* user enters Alt + F4 and is surprised when the application
* quits.
*/
- ErrorF("winWindowProc - WM_*KEYDOWN - Closekey hit, quitting\n");
+ winDebug ("winWindowProc - WM_*KEYDOWN - Closekey hit, quitting\n");
/* Display Exit dialog */
winDisplayExitDialog(s_pScreenPriv);
return 0;
}
- /*
- * Don't do anything for the Windows keys, as focus will soon
- * be returned to Windows. We may be able to trap the Windows keys,
- * but we should determine if that is desirable before doing so.
- */
- if ((wParam == VK_LWIN || wParam == VK_RWIN) && !g_fKeyboardHookLL)
- break;
-
/* Discard fake Ctrl_L events that precede AltGR on non-US keyboards */
if (winIsFakeCtrl_L(message, wParam, lParam))
return 0;
@@ -1093,14 +1076,6 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
if (s_pScreenPriv == NULL || s_pScreenInfo->fIgnoreInput)
break;
- /*
- * Don't do anything for the Windows keys, as focus will soon
- * be returned to Windows. We may be able to trap the Windows keys,
- * but we should determine if that is desirable before doing so.
- */
- if ((wParam == VK_LWIN || wParam == VK_RWIN) && !g_fKeyboardHookLL)
- break;
-
/* Ignore the fake Ctrl_L that follows an AltGr release */
if (winIsFakeCtrl_L(message, wParam, lParam))
return 0;
@@ -1128,7 +1103,7 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
/* TODO: Override display of window when we have a bad depth */
if (LOWORD(wParam) != WA_INACTIVE && s_pScreenPriv->fBadDepth) {
- ErrorF("winWindowProc - WM_ACTIVATE - Bad depth, trying "
+ winDebug ("winWindowProc - WM_ACTIVATE - Bad depth, trying "
"to override window activation\n");
/* Minimize the window */
@@ -1148,9 +1123,7 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
return 0;
}
-#if CYGDEBUG
winDebug("winWindowProc - WM_ACTIVATE\n");
-#endif
/*
* Focus is being changed to another window.
@@ -1174,9 +1147,7 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
if (s_pScreenPriv == NULL || s_pScreenInfo->fIgnoreInput)
break;
-#if CYGDEBUG || TRUE
winDebug("winWindowProc - WM_ACTIVATEAPP\n");
-#endif
/* Activate or deactivate */
s_pScreenPriv->fActive = wParam;
@@ -1190,13 +1161,13 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
#ifdef XWIN_CLIPBOARD
/* Make sure the clipboard chain is ok. */
- winFixClipboardChain();
+ winFixClipboardChain(0);
#endif
/* Call engine specific screen activation/deactivation function */
(*s_pScreenPriv->pwinActivateApp) (s_pScreen);
-#ifdef XWIN_MULTIWINDOWEXTWM
+#ifdef XWIN_MULTIWINDOWINTWM
if (s_pScreenPriv->fActive) {
/* Restack all window unless using built-in wm. */
if (s_pScreenInfo->fInternalWM && s_pScreenInfo->fAnotherWMRunning)
@@ -1241,6 +1212,7 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
if (s_pScreenInfo->fMultiWindow)
winDeinitMultiWindowWM();
#endif
+ g_fClipboardStarted=FALSE; /* This is to avoid dead-locls caused by the clipboard thread still doing some stuff */
GiveUp(0);
return 0;
@@ -1259,29 +1231,33 @@ winWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
#ifdef XWIN_MULTIWINDOWEXTWM
case WM_MANAGE:
- ErrorF("winWindowProc - WM_MANAGE\n");
+ winDebug("winWindowProc - WM_MANAGE\n");
s_pScreenInfo->fAnotherWMRunning = FALSE;
+#ifdef XWIN_MULTIWINDOWINTWM
if (s_pScreenInfo->fInternalWM) {
EnumThreadWindows(g_dwCurrentThreadID, winMWExtWMDecorateWindow, 0);
//RootlessRepositionWindows (s_pScreen);
}
+#endif
break;
case WM_UNMANAGE:
- ErrorF("winWindowProc - WM_UNMANAGE\n");
+ winDebug("winWindowProc - WM_UNMANAGE\n");
s_pScreenInfo->fAnotherWMRunning = TRUE;
+#ifdef XWIN_MULTIWINDOWINTWM
if (s_pScreenInfo->fInternalWM) {
EnumThreadWindows(g_dwCurrentThreadID, winMWExtWMDecorateWindow, 0);
winMWExtWMRestackWindows(s_pScreen);
}
+#endif
break;
#endif
default:
if (message == s_uTaskbarRestart) {
- winInitNotifyIcon(s_pScreenPriv);
+ winInitNotifyIcon(s_pScreenPriv,FALSE);
}
break;
}
diff --git a/xorg-server/hw/xwin/xdmcphostselect.c b/xorg-server/hw/xwin/xdmcphostselect.c
new file mode 100644
index 000000000..9b8b62b93
--- /dev/null
+++ b/xorg-server/hw/xwin/xdmcphostselect.c
@@ -0,0 +1,180 @@
+#ifdef HAVE_XWIN_CONFIG_H
+#include <xwin-config.h>
+#endif
+#include "win.h"
+
+void XdmcpHostSelected(int HostIndex);
+
+static HWND g_hDlgHosts;
+static char HostToConnect[128];
+
+static void SelectHost(int Index)
+{
+ int i;
+ char HostName[128];
+ int HostIndex=SendDlgItemMessage(g_hDlgHosts, IDC_HOSTLIST, LB_GETITEMDATA, (WPARAM)Index, 0);
+
+ HostToConnect[0]=0;
+ SendDlgItemMessage(g_hDlgHosts, IDC_HOSTLIST, LB_GETTEXT, (WPARAM)Index, (LPARAM)HostToConnect);
+ g_pszQueryHost=HostToConnect;
+
+ gethostname(HostName,128);
+
+ XdmcpHostSelected(HostIndex);
+
+ for (i = 0; i < g_iNumScreens; ++i)
+ {
+ /* Change the window title to reflect the host we are connecting to */
+ if (g_ScreenInfo[i].pScreen)
+ {
+ char szTitle[256];
+
+ winScreenPriv(g_ScreenInfo[i].pScreen);
+ winScreenInfo *pScreenInfo = pScreenPriv->pScreenInfo;
+ snprintf (szTitle, sizeof (szTitle), WINDOW_TITLE_XDMCP, HostToConnect, HostName, display, (int) pScreenInfo->dwScreen);
+ SetWindowText(pScreenPriv->hwndScreen,szTitle);
+ }
+ }
+
+ DestroyWindow (g_hDlgHosts);
+ g_hDlgHosts = NULL;
+}
+
+/*
+ * Process messages for the about dialog.
+ */
+
+static INT_PTR CALLBACK DisplayXdmcpHostsDlgProc (HWND hwndDialog, UINT message, WPARAM wParam, LPARAM lParam)
+{
+ /* Branch on message type */
+ switch (message)
+ {
+ case WM_INITDIALOG:
+ {
+ HWND hwndDesk=GetForegroundWindow();
+ RECT rc, rcDlg, rcDesk;
+
+ GetWindowRect (hwndDesk, &rcDesk);
+ GetWindowRect (hwndDialog, &rcDlg);
+ CopyRect (&rc, &rcDesk);
+
+ OffsetRect (&rcDlg, -rcDlg.left, -rcDlg.top);
+ OffsetRect (&rc, -rc.left, -rc.top);
+ OffsetRect (&rc, -rcDlg.right, -rcDlg.bottom);
+
+ SetWindowPos (hwndDialog,
+ HWND_TOPMOST,
+ rcDesk.left + (rc.right / 2),
+ rcDesk.top + (rc.bottom / 2),
+ 0, 0,
+ SWP_NOSIZE | SWP_FRAMECHANGED);
+ return TRUE;
+ }
+ break;
+
+ case WM_COMMAND:
+ switch (LOWORD (wParam))
+ {
+ case IDOK:
+ {
+ int Index;
+ winDebug ("DisplayXdmcpHostsDlgProc - WM_COMMAND - IDOK or IDCANCEL\n");
+
+ /* Retreive the host to connect to */
+ Index=SendDlgItemMessage(g_hDlgHosts, IDC_HOSTLIST, LB_GETCURSEL, 0, 0);
+ if (Index==LB_ERR)
+ {
+ MessageBox(hwndDialog,"Please select a host to connect to!","Error",MB_OK);
+ }
+ else
+ {
+ SelectHost(Index);
+ }
+
+ return TRUE;
+ }
+ break;
+ case IDCANCEL:
+ winDebug ("DisplayXdmcpHostsDlgProc - WM_COMMAND - IDCANCEL\n");
+
+ DestroyWindow (g_hDlgHosts);
+ AbortDDX(EXIT_ERR_ABORT);
+ TerminateProcess(GetCurrentProcess(),1); /* Exit the application */
+
+ return TRUE;
+ break;
+ case IDC_HOSTLIST:
+ if (HIWORD(wParam)==LBN_DBLCLK)
+ {
+ int Index=SendDlgItemMessage(g_hDlgHosts, IDC_HOSTLIST, LB_GETCURSEL, 0, 0);
+ SelectHost(Index);
+ return TRUE;
+ }
+ break;
+ }
+ break;
+
+ case WM_CLOSE:
+ ErrorF ("DisplayXdmcpHostsDlgProc - WM_CLOSE\n");
+
+ DestroyWindow (g_hDlgHosts);
+ g_hDlgHosts = NULL;
+ AbortDDX(EXIT_ERR_ABORT);
+ TerminateProcess(GetCurrentProcess(),1); /* Exit the application */
+
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+int XdmcpHostAddName(const char *HostName, int HostIndex)
+{
+ int Index=SendDlgItemMessage(g_hDlgHosts, IDC_HOSTLIST, LB_FINDSTRINGEXACT, -1, (LPARAM)HostName);
+ if (LB_ERR==Index)
+ {
+ Index=SendDlgItemMessage(g_hDlgHosts, IDC_HOSTLIST, LB_ADDSTRING, 0, (LPARAM)HostName);
+ SendDlgItemMessage(g_hDlgHosts, IDC_HOSTLIST, LB_SETITEMDATA, (WPARAM)Index, (LPARAM)HostIndex);
+ return -1;
+ }
+ else
+ return SendDlgItemMessage(g_hDlgHosts, IDC_HOSTLIST, LB_GETITEMDATA, (WPARAM)Index, 0);
+}
+/*
+ * Display the host selection dialog box
+ */
+
+void DisplayXdmcpHostsDialog(void)
+{
+ /* Check if dialog already exists */
+ if (g_hDlgHosts != NULL)
+ {
+ /* Dialog box already exists, display it */
+ ShowWindow (g_hDlgHosts, SW_SHOWDEFAULT);
+
+ /* User has lost the dialog. Show them where it is. */
+ SetForegroundWindow (g_hDlgHosts);
+
+ return;
+ }
+
+ /* Show an arrow cursor as long as the selection dialog is shown */
+ {
+ winScreenPriv(screenInfo.screens[0]);
+ pScreenPriv->cursor.handle=LoadCursor(NULL,IDC_ARROW);
+ }
+
+ /*
+ * Display the about box
+ */
+ g_hDlgHosts = CreateDialogParam (g_hInstance, "XDMCP_HOSTS", NULL, DisplayXdmcpHostsDlgProc, 0);
+
+ /* Show the dialog box */
+ ShowWindow (g_hDlgHosts, SW_SHOW);
+
+ /* Needed to get keyboard controls (tab, arrows, enter, esc) to work */
+ SetForegroundWindow (g_hDlgHosts);
+
+ /* Set focus to the OK button */
+ PostMessage (g_hDlgAbout, WM_NEXTDLGCTL, (WPARAM)GetDlgItem (g_hDlgHosts, IDOK), TRUE);
+}
diff --git a/xorg-server/hw/xwin/xlaunch/COPYING b/xorg-server/hw/xwin/xlaunch/COPYING
new file mode 100644
index 000000000..c7fa84400
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/COPYING
@@ -0,0 +1,25 @@
+
+ Copyright (c) 2005 Alexander Gottwald
+
+ Permission is hereby granted, free of charge, to any person obtaining a
+ copy of this software and associated documentation files (the "Software"),
+ to deal in the Software without restriction, including without limitation
+ the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ and/or sell copies of the Software, and to permit persons to whom the
+ Software is furnished to do so, subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be included in
+ all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ DEALINGS IN THE SOFTWARE.
+
+ Except as contained in this notice, the name(s) of the above copyright
+ holders shall not be used in advertising or otherwise to promote the sale,
+ use or other dealings in this Software without prior written authorization.
+
diff --git a/xorg-server/hw/xwin/xlaunch/config.cc b/xorg-server/hw/xwin/xlaunch/config.cc
new file mode 100644
index 000000000..fc268e2e8
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/config.cc
@@ -0,0 +1,200 @@
+/*
+ * Copyright (c) 2005 Alexander Gottwald
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the name(s) of the above copyright
+ * holders shall not be used in advertising or otherwise to promote the sale,
+ * use or other dealings in this Software without prior written authorization.
+ */
+#include <libxml/parser.h>
+#include <libxml/tree.h>
+#include "config.h"
+#include "window/util.h"
+#include <stdexcept>
+
+xmlDocPtr CreateDocument()
+{
+ xmlDocPtr doc = xmlNewDoc(BAD_CAST "1.0");
+ xmlNodePtr root_node = xmlNewNode(NULL, BAD_CAST "XLaunch");
+ xmlDocSetRootElement(doc, root_node);
+
+ return doc;
+
+}
+
+void setAttribute(xmlNodePtr elem, const char *name, const char *value)
+{
+ xmlNewProp(elem, BAD_CAST name, BAD_CAST value);
+}
+
+void CConfig::Save(const char *filename)
+{
+ xmlDocPtr doc = CreateDocument();
+ xmlNodePtr root = xmlDocGetRootElement(doc);
+
+ switch (window)
+ {
+ case MultiWindow:
+ setAttribute(root, "WindowMode", "MultiWindow");
+ break;
+ case Fullscreen:
+ setAttribute(root, "WindowMode", "Fullscreen");
+ break;
+ default:
+ case Windowed:
+ setAttribute(root, "WindowMode", "Windowed");
+ break;
+ case Nodecoration:
+ setAttribute(root, "WindowMode", "Nodecoration");
+ break;
+ }
+ switch (client)
+ {
+ default:
+ case NoClient:
+ setAttribute(root, "ClientMode", "NoClient");
+ break;
+ case StartProgram:
+ setAttribute(root, "ClientMode", "StartProgram");
+ break;
+ case XDMCP:
+ setAttribute(root, "ClientMode", "XDMCP");
+ break;
+ }
+ setAttribute(root, "LocalClient", local?"True":"False");
+ setAttribute(root, "Display", display.c_str());
+ setAttribute(root, "LocalProgram", localprogram.c_str());
+ setAttribute(root, "RemoteProgram", remoteprogram.c_str());
+ setAttribute(root, "RemotePassword", remotepassword.c_str());
+ setAttribute(root, "PrivateKey", privatekey.c_str());
+ setAttribute(root, "RemoteHost", host.c_str());
+ setAttribute(root, "RemoteUser", user.c_str());
+ setAttribute(root, "XDMCPHost", xdmcp_host.c_str());
+ setAttribute(root, "XDMCPBroadcast", broadcast?"True":"False");
+ setAttribute(root, "XDMCPIndirect", indirect?"True":"False");
+ setAttribute(root, "Clipboard", clipboard?"True":"False");
+ setAttribute(root, "ClipboardPrimary", clipboardprimary?"True":"False");
+ setAttribute(root, "ExtraParams", extra_params.c_str());
+ setAttribute(root, "Wgl", wgl?"True":"False");
+ setAttribute(root, "DisableAC", disableac?"True":"False");
+ setAttribute(root, "XDMCPTerminate", xdmcpterminate?"True":"False");
+
+ xmlSaveFormatFileEnc(filename, doc, "UTF-8", 1);
+
+ /*free the document */
+ xmlFreeDoc(doc);
+
+ /*
+ *Free the global variables that may
+ *have been allocated by the parser.
+ */
+ xmlCleanupParser();
+}
+
+BOOL getAttribute(xmlNodePtr elem, const char *name, std::string &ret)
+{
+ char *pVal=(char*)xmlGetProp(elem,BAD_CAST name);
+ if (!pVal)
+ return false;
+ ret=pVal;
+ return true;
+}
+
+BOOL getAttributeBool(xmlNodePtr elem, const char *name, bool &ret)
+{
+ const char *pVal=(char*)xmlGetProp(elem, BAD_CAST name);
+ if (!pVal)
+ return false;
+
+ std::string str(pVal);
+
+ if (str == "True")
+ ret = true;
+ else
+ ret = false;
+ return true;
+}
+
+
+void CConfig::Load(const char *filename)
+{
+ xmlDocPtr doc = xmlReadFile(filename, NULL, 0);
+
+ xmlNodePtr root;
+
+ if (doc == NULL)
+ {
+ return;
+ }
+
+ root = xmlDocGetRootElement(doc);
+
+ std::string windowMode;
+ std::string clientMode;
+
+ if (getAttribute(root, "WindowMode", windowMode))
+ {
+ if (windowMode == "MultiWindow")
+ window = MultiWindow;
+ else if (windowMode == "Fullscreen")
+ window = Fullscreen;
+ else if (windowMode == "Windowed")
+ window = Windowed;
+ else if (windowMode == "Nodecoration")
+ window = Nodecoration;
+ }
+ if (getAttribute(root, "ClientMode", clientMode))
+ {
+ if (clientMode == "NoClient")
+ client = NoClient;
+ else if (clientMode == "StartProgram")
+ client = StartProgram;
+ else if (clientMode == "XDMCP")
+ client = XDMCP;
+ }
+
+ getAttributeBool(root, "LocalClient", local);
+ getAttribute(root, "Display", display);
+ getAttribute(root, "LocalProgram", localprogram);
+ getAttribute(root, "RemoteProgram", remoteprogram);
+ getAttribute(root, "RemotePassword", remotepassword);
+ getAttribute(root, "PrivateKey", privatekey);
+ getAttribute(root, "RemoteHost", host);
+ getAttribute(root, "RemoteUser", user);
+ getAttribute(root, "XDMCPHost", xdmcp_host);
+ getAttributeBool(root, "XDMCPBroadcast", broadcast);
+ getAttributeBool(root, "XDMCPIndirect", indirect);
+ getAttributeBool(root, "Clipboard", clipboard);
+ getAttributeBool(root, "ClipboardPrimary", clipboardprimary);
+ getAttribute(root, "ExtraParams", extra_params);
+ getAttributeBool(root, "Wgl", wgl);
+ getAttributeBool(root, "DisableAC", disableac);
+ getAttributeBool(root, "XDMCPTerminate", xdmcpterminate);
+
+ /*free the document */
+ xmlFreeDoc(doc);
+
+ /*
+ *Free the global variables that may
+ *have been allocated by the parser.
+ */
+ xmlCleanupParser();
+}
+
diff --git a/xorg-server/hw/xwin/xlaunch/config.h b/xorg-server/hw/xwin/xlaunch/config.h
new file mode 100644
index 000000000..d4ae5e35d
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/config.h
@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) 2005 Alexander Gottwald
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the name(s) of the above copyright
+ * holders shall not be used in advertising or otherwise to promote the sale,
+ * use or other dealings in this Software without prior written authorization.
+ *
+ * Authors: Alexander Gottwald, Colin Harrison
+ */
+#ifndef __CONFIG_H__
+#define __CONFIG_H__
+#define UNICODE
+#define _UNICODE
+
+#define PROG_NUMBER 10
+#define HOST_NUMBER 10
+#define MAX_MESSAGE 256
+#define MAX_CAPTION 128
+
+#include <windows.h>
+#include <string>
+#include <vector>
+struct CConfig
+{
+ enum {MultiWindow, Fullscreen, Windowed, Nodecoration} window;
+ enum {NoClient, StartProgram, XDMCP} client;
+ bool local;
+ std::string display;
+ std::string localprogram;
+ std::string remoteprogram;
+ bool compress;
+ std::string host;
+ std::string user;
+ std::string remotepassword;
+ std::string privatekey;
+ bool broadcast;
+ bool indirect;
+ std::string xdmcp_host;
+ bool clipboard;
+ bool clipboardprimary;
+ bool wgl;
+ bool disableac;
+ bool xdmcpterminate;
+ std::string extra_params;
+ CConfig() : window(MultiWindow), client(NoClient), display("-1"),
+ local(false),
+ remotepassword(""),
+ privatekey(""),
+ localprogram("xcalc"),
+ remoteprogram("xterm"),
+ compress(false),
+ host(""),
+ user(""),
+ broadcast(false),
+ indirect(false),
+ xdmcp_host(""),
+ clipboard(true),
+ clipboardprimary(true),
+ extra_params(),
+ disableac(false),
+ wgl(true),
+ xdmcpterminate(false)
+ {
+ };
+ void Load(const char * filename);
+ void Save(const char * filename);
+};
+
+#endif
diff --git a/xorg-server/hw/xwin/xlaunch/main.cc b/xorg-server/hw/xwin/xlaunch/main.cc
new file mode 100644
index 000000000..bf4f5e6a5
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/main.cc
@@ -0,0 +1,982 @@
+/*
+ * Copyright (c) 2005 Alexander Gottwald
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the name(s) of the above copyright
+ * holders shall not be used in advertising or otherwise to promote the sale,
+ * use or other dealings in this Software without prior written authorization.
+ */
+#define SAVEPOSIX _POSIX_
+#undef _POSIX_
+#include <io.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <stdio.h>
+#define _POSIX_ SAVEPOSIX
+
+#include "window/util.h"
+#include "window/wizard.h"
+#include "resources/resources.h"
+#include "config.h"
+#include <prsht.h>
+#include <commctrl.h>
+
+#include <stdexcept>
+
+#include <X11/Xlib.h>
+
+#include <sstream>
+
+static bool ContainPrintableChars(const char *Buf, unsigned Nbr)
+{
+ for (int i=0; i<Nbr; i++)
+ {
+ if (Buf[i]>0x20)
+ return true;
+ }
+ return false;
+}
+
+/*
+ * Process messages for the prompt dialog.
+ */
+
+static INT_PTR CALLBACK DisplayPromptDlgProc (HWND hwndDialog, UINT message, WPARAM wParam, LPARAM lParam)
+{
+ static LPARAM Param;
+ static UINT PasswordChar;
+ switch (message)
+ {
+ case WM_INITDIALOG:
+ {
+ HWND hwndDesk=GetForegroundWindow();
+ RECT rc, rcDlg, rcDesk;
+
+ PasswordChar=SendDlgItemMessage(hwndDialog, IDC_INPUT, EM_GETPASSWORDCHAR, 0, 0);
+
+ GetWindowRect (hwndDesk, &rcDesk);
+ GetWindowRect (hwndDialog, &rcDlg);
+ CopyRect (&rc, &rcDesk);
+
+ OffsetRect (&rcDlg, -rcDlg.left, -rcDlg.top);
+ OffsetRect (&rc, -rc.left, -rc.top);
+ OffsetRect (&rc, -rcDlg.right, -rcDlg.bottom);
+
+ SetWindowPos (hwndDialog,
+ HWND_TOPMOST,
+ rcDesk.left + (rc.right / 2),
+ rcDesk.top + (rc.bottom / 2),
+ 0, 0,
+ SWP_NOSIZE | SWP_FRAMECHANGED);
+
+ Param=lParam;
+ SendDlgItemMessage(hwndDialog, IDC_PROMPT_DESC, WM_SETTEXT, 0, lParam);
+ return TRUE;
+ }
+ break;
+
+ case WM_COMMAND:
+ switch (LOWORD (wParam))
+ {
+ case IDOK:
+ SendDlgItemMessage(hwndDialog, IDC_INPUT, WM_GETTEXT, 128, Param);
+ EndDialog(hwndDialog, Param);
+ return TRUE;
+ case IDCANCEL:
+ EndDialog(hwndDialog, NULL);
+ return TRUE;
+ case IDC_PASSWORD:
+ {
+ HWND hDlg=GetDlgItem(hwndDialog, IDC_INPUT);
+ if (HIWORD(wParam)==BN_CLICKED)
+ {
+ if (BST_CHECKED==SendDlgItemMessage(hwndDialog, IDC_PASSWORD, BM_GETCHECK, 0, 0))
+ SendMessage(hDlg, EM_SETPASSWORDCHAR, 0, 0);
+ else
+ SendMessage(hDlg, EM_SETPASSWORDCHAR, (WPARAM)PasswordChar, 0);
+ }
+ InvalidateRect(hDlg, NULL, TRUE);
+ }
+ return TRUE;
+ }
+ break;
+
+ case WM_CLOSE:
+ EndDialog (hwndDialog, NULL);
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+static bool CheckOutput(HANDLE hChildStdoutRd, int hStdOut, int hStdIn)
+{
+ DWORD NbrAvail=0;
+ PeekNamedPipe(hChildStdoutRd, NULL, NULL, NULL, &NbrAvail, NULL);
+ if (NbrAvail)
+ {
+ char Buf[128];
+ size_t Nbr = _read(hStdOut, Buf, sizeof(Buf)-1);
+ if (ContainPrintableChars(Buf,Nbr))
+ {
+ Buf[Nbr]=0;
+ INT_PTR Ret = DialogBoxParam (GetModuleHandle(NULL), "IDD_PROMPT", NULL, DisplayPromptDlgProc, (LPARAM)Buf);
+
+ if (Ret)
+ {
+ char *Data=(char*)Ret;
+ // Write it to the client
+ _write(hStdIn, Data, strlen(Data));
+ _write(hStdIn, "\x0d\x0a", 2);
+ }
+
+ return true;
+ }
+
+ }
+ return false;
+}
+
+
+/// @brief Send WM_ENDSESSION to all program windows.
+/// This will shutdown the started xserver
+BOOL CALLBACK KillWindowsProc(HWND hwnd, LPARAM lParam)
+{
+ SendMessage(hwnd, WM_ENDSESSION, 0, 0);
+ return TRUE;
+}
+
+/// @brief Actual wizard implementation.
+/// This is based on generic CWizard but handles the special dialogs
+class CMyWizard : public CWizard
+{
+ public:
+ private:
+ CConfig config; /// Storage for config options.
+ public:
+ /// @brief Constructor.
+ /// Set wizard pages.
+ CMyWizard() : CWizard()
+ {
+ AddPage(IDD_DISPLAY, IDS_DISPLAY_TITLE, IDS_DISPLAY_SUBTITLE);
+ AddPage(IDD_CLIENTS, IDS_CLIENTS_TITLE, IDS_CLIENTS_SUBTITLE);
+ AddPage(IDD_PROGRAM, IDS_PROGRAM_TITLE, IDS_PROGRAM_SUBTITLE);
+ AddPage(IDD_XDMCP, IDS_XDMCP_TITLE, IDS_XDMCP_SUBTITLE);
+ //AddPage(IDD_FONTPATH, IDS_FONTPATH_TITLE, IDS_FONTPATH_SUBTITLE);
+ AddPage(IDD_EXTRA, IDS_EXTRA_TITLE, IDS_EXTRA_SUBTITLE);
+ AddPage(IDD_FINISH, IDS_FINISH_TITLE, IDS_FINISH_SUBTITLE);
+ }
+
+ virtual void LoadConfig(const char *filename)
+ {
+ try {
+ config.Load(filename);
+ } catch (std::runtime_error &e)
+ {
+ char Message[255];
+ sprintf(Message,"Failure: %s\n", e.what());
+ MessageBox(NULL,Message,"Exception",MB_OK);
+ }
+ }
+
+ /// @brief Handle the PSN_WIZNEXT message.
+ /// @param hwndDlg Handle to active page dialog.
+ /// @param index Index of current page.
+ /// @return TRUE if the message was handled. FALSE otherwise.
+ virtual BOOL WizardNext(HWND hwndDlg, unsigned index)
+ {
+#ifdef _DEBUG
+ printf("%s %d\n", __FUNCTION__, index);
+#endif
+ switch (PageID(index))
+ {
+ case IDD_DISPLAY:
+ // Check for select window mode
+ if (IsDlgButtonChecked(hwndDlg, IDC_MULTIWINDOW))
+ config.window = CConfig::MultiWindow;
+ else if (IsDlgButtonChecked(hwndDlg, IDC_FULLSCREEN))
+ config.window = CConfig::Fullscreen;
+ else if (IsDlgButtonChecked(hwndDlg, IDC_WINDOWED))
+ config.window = CConfig::Windowed;
+ else if (IsDlgButtonChecked(hwndDlg, IDC_NODECORATION))
+ config.window = CConfig::Nodecoration;
+ else
+ {
+ SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, -1);
+ return TRUE;
+ }
+ // Get selected display number
+ {
+ char buffer[512];
+ GetDlgItemText(hwndDlg, IDC_DISPLAY, buffer, 512);
+ buffer[511] = 0;
+ config.display = buffer;
+ }
+ // Check for valid input
+ if (config.display.empty())
+ {
+ MessageBox(hwndDlg,"Please fill in a display number.","Error",MB_OK);
+ SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, -1);
+ }
+ else
+ SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, IDD_CLIENTS);
+ return TRUE;
+ case IDD_CLIENTS:
+ // Check for select client startup method
+ if (IsDlgButtonChecked(hwndDlg, IDC_CLIENT))
+ {
+ config.client = CConfig::StartProgram;
+ SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, IDD_PROGRAM);
+ } else if (IsDlgButtonChecked(hwndDlg, IDC_XDMCP))
+ {
+ config.client = CConfig::XDMCP;
+ SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, IDD_XDMCP);
+ } else if (IsDlgButtonChecked(hwndDlg, IDC_CLIENT_NONE))
+ {
+ config.client = CConfig::NoClient;
+ SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, IDD_EXTRA);
+ } else
+ SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, -1);
+ return TRUE;
+ case IDD_PROGRAM:
+ // Check wether local or remote client should be started
+ if (IsDlgButtonChecked(hwndDlg, IDC_CLIENT_LOCAL))
+ config.local = true;
+ else if (IsDlgButtonChecked(hwndDlg, IDC_CLIENT_REMOTE))
+ config.local = false;
+ else
+ {
+ SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, -1);
+ return TRUE;
+ }
+ // Read program, user and host name
+ {
+ char buffer[512];
+ GetDlgItemText(hwndDlg, IDC_CLIENT_USER, buffer, 512);
+ buffer[511] = 0;
+ config.user = buffer;
+ GetDlgItemText(hwndDlg, IDC_CLIENT_HOST, buffer, 512);
+ buffer[511] = 0;
+ config.host = buffer;
+ GetDlgItemText(hwndDlg, IDC_CLIENT_PROGRAM, buffer, 512);
+ buffer[511] = 0;
+ config.localprogram = buffer;
+ GetDlgItemText(hwndDlg, IDC_CLIENT_REMOTEPROGRAM, buffer, 512);
+ buffer[511] = 0;
+ config.remoteprogram = buffer;
+ GetDlgItemText(hwndDlg, IDC_CLIENT_PASSWORD, buffer, 512);
+ buffer[511] = 0;
+ config.remotepassword = buffer;
+ GetDlgItemText(hwndDlg, IDC_CLIENT_PRIVATEKEY, buffer, 512);
+ buffer[511] = 0;
+ config.privatekey = buffer;
+ }
+ // Check for valid input
+ if (!config.local && (config.host.empty() || config.localprogram.empty() || config.remoteprogram.empty()))
+ SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, -1);
+ else
+ SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, IDD_EXTRA);
+ return TRUE;
+ case IDD_XDMCP:
+ // Check for broadcast
+ if (IsDlgButtonChecked(hwndDlg, IDC_XDMCP_BROADCAST))
+ config.broadcast = true;
+ else if (IsDlgButtonChecked(hwndDlg, IDC_XDMCP_QUERY))
+ config.broadcast = false;
+ else
+ {
+ SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, -1);
+ return TRUE;
+ }
+ // Check for indirect mode
+ if (IsDlgButtonChecked(hwndDlg, IDC_XDMCP_INDIRECT))
+ config.indirect = true;
+ else
+ config.indirect = false;
+ // Read hostname
+ {
+ char buffer[512];
+ GetDlgItemText(hwndDlg, IDC_XDMCP_HOST, buffer, 512);
+ buffer[511] = 0;
+ config.xdmcp_host = buffer;
+ }
+ // Check for valid input
+ if (!config.broadcast && config.xdmcp_host.empty())
+ SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, -1);
+ else
+ SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, IDD_EXTRA);
+ if (IsDlgButtonChecked(hwndDlg, IDC_XDMCP_TERMINATE))
+ config.xdmcpterminate = true;
+ else
+ config.xdmcpterminate = false;
+ return TRUE;
+ case IDD_EXTRA:
+ // check for clipboard
+ if (IsDlgButtonChecked(hwndDlg, IDC_CLIPBOARD))
+ config.clipboard = true;
+ else
+ config.clipboard = false;
+ // check for clipboard primary selection
+ if (IsDlgButtonChecked(hwndDlg, IDC_CLIPBOARDPRIMARY))
+ config.clipboardprimary = true;
+ else
+ config.clipboardprimary = false;
+ // check for wgl
+ if (IsDlgButtonChecked(hwndDlg, IDC_WGL))
+ config.wgl = true;
+ else
+ config.wgl = false;
+ // check for access control
+ if (IsDlgButtonChecked(hwndDlg, IDC_DISABLEAC))
+ config.disableac = true;
+ else
+ config.disableac = false;
+ // read parameters
+ {
+ char buffer[512];
+ GetDlgItemText(hwndDlg, IDC_EXTRA_PARAMS, buffer, 512);
+ buffer[511] = 0;
+ config.extra_params = buffer;
+ }
+ SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, IDD_FINISH);
+ return TRUE;
+ default:
+ break;
+ }
+ return FALSE;
+ }
+ /// @brief Handle PSN_WIZFINISH message.
+ /// @param hwndDlg Handle to active page dialog.
+ /// @param index Index of current page.
+ /// @return TRUE if the message was handled. FALSE otherwise.
+ virtual BOOL WizardFinish(HWND hwndDlg, unsigned index)
+ {
+#ifdef _DEBUG
+ printf("finish %d\n", index);
+#endif
+ return FALSE;
+ }
+ /// @brief Handle PSN_WIZBACK message.
+ /// Basicly handles switching to proper page (skipping XDMCP or program page
+ /// if required).
+ /// @param hwndDlg Handle to active page dialog.
+ /// @param index Index of current page.
+ /// @return TRUE if the message was handled. FALSE otherwise.
+ virtual BOOL WizardBack(HWND hwndDlg, unsigned index)
+ {
+ switch (PageID(index))
+ {
+ case IDD_PROGRAM:
+ case IDD_XDMCP:
+ SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, IDD_CLIENTS);
+ return TRUE;
+ case IDD_FONTPATH:
+ case IDD_EXTRA: // temporary. fontpath is disabled
+ switch (config.client)
+ {
+ case CConfig::NoClient:
+ SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, IDD_CLIENTS);
+ return TRUE;
+ case CConfig::StartProgram:
+ SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, IDD_PROGRAM);
+ return TRUE;
+ case CConfig::XDMCP:
+ SetWindowLongPtr(hwndDlg, DWLP_MSGRESULT, IDD_XDMCP);
+ return TRUE;
+ }
+ break;
+ }
+ return FALSE;
+ }
+ /// @brief Handle PSN_SETACTIVE message.
+ /// @param hwndDlg Handle to active page dialog.
+ /// @param index Index of current page.
+ /// @return TRUE if the message was handled. FALSE otherwise.
+ virtual BOOL WizardActivate(HWND hwndDlg, unsigned index)
+ {
+#ifdef _DEBUG
+ printf("%s %d\n", __FUNCTION__, index);
+#endif
+ switch (PageID(index))
+ {
+ case IDD_CLIENTS:
+ // Enable or disable XDMCP radiobutton and text
+ if (config.window != CConfig::MultiWindow)
+ {
+ EnableWindow(GetDlgItem(hwndDlg, IDC_XDMCP), true);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_XDMCP_DESC), true);
+ }
+ else
+ {
+ if (IsDlgButtonChecked(hwndDlg, IDC_XDMCP))
+ CheckRadioButton(hwndDlg, IDC_CLIENT_NONE, IDC_CLIENT, IDC_CLIENT_NONE);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_XDMCP), false);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_XDMCP_DESC), false);
+ }
+ break;
+ }
+ return FALSE;
+ }
+ protected:
+ /// @brief Enable or disable the control for remote clients.
+ /// @param hwndDlg Handle to active page dialog.
+ /// @param state State of control group.
+ void EnableRemoteProgramGroup(HWND hwndDlg, BOOL state)
+ {
+ EnableWindow(GetDlgItem(hwndDlg, IDC_CLIENT_PASSWORD), state);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_CLIENT_HOST), state);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_CLIENT_USER), state);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_CLIENT_PASSWORD_DESC), state);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_CLIENT_HOST_DESC), state);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_CLIENT_USER_DESC), state);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_CLIENT_REMOTEPROGRAM), state);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_CLIENT_REMOTEPROGRAM_DESC), state);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_CLIENT_PRIVATEKEY), state);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_CLIENT_PRIVATEKEY_DESC), state);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_CLIENT_PROGRAM), !state);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_CLIENT_PROGRAM_DESC), !state);
+ }
+ /// @brief Enable or disable the control for XDMCP connection.
+ /// @param hwndDlg Handle to active page dialog.
+ /// @param state State of control group.
+ void EnableXDMCPQueryGroup(HWND hwndDlg, BOOL state)
+ {
+ EnableWindow(GetDlgItem(hwndDlg, IDC_XDMCP_HOST), state);
+ EnableWindow(GetDlgItem(hwndDlg, IDC_XDMCP_INDIRECT), state);
+ }
+ /// @brief Fill program box with default values.
+ /// @param hwndDlg Handle to active page dialog.
+ void FillProgramBox(HWND hwndDlg)
+ {
+ HWND cbwnd = GetDlgItem(hwndDlg, IDC_CLIENT_PROGRAM);
+ if (cbwnd == NULL)
+ return;
+ SendMessage(cbwnd, CB_RESETCONTENT, 0, 0);
+ SendMessage(cbwnd, CB_ADDSTRING, 0, (LPARAM) "xcalc");
+ SendMessage(cbwnd, CB_ADDSTRING, 0, (LPARAM) "xclock");
+ SendMessage(cbwnd, CB_ADDSTRING, 0, (LPARAM) "xwininfo");
+ SendMessage(cbwnd, CB_SETCURSEL, 0, 0);
+ }
+ void ShowSaveDialog(HWND parent)
+ {
+ char szTitle[512];
+ char szFilter[512];
+ char szFileTitle[512];
+ char szFile[MAX_PATH];
+ HINSTANCE hInst = GetModuleHandle(NULL);
+
+ LoadString(hInst, IDS_SAVE_TITLE, szTitle, sizeof(szTitle));
+ LoadString(hInst, IDS_SAVE_FILETITLE, szFileTitle, sizeof(szFileTitle));
+ LoadString(hInst, IDS_SAVE_FILTER, szFilter, sizeof(szFilter));
+ for (unsigned i=0; szFilter[i]; i++)
+ if (szFilter[i] == '%')
+ szFilter[i] = '\0';
+
+ strcpy(szFile, "config.xlaunch");
+
+ OPENFILENAME ofn;
+ memset(&ofn, 0, sizeof(OPENFILENAME));
+ ofn.lStructSize = sizeof(OPENFILENAME);
+ ofn.hwndOwner = parent;
+ ofn.lpstrFilter = szFilter;
+ ofn.lpstrFile= szFile;
+ ofn.nMaxFile = sizeof(szFile)/ sizeof(*szFile);
+ ofn.lpstrFileTitle = szFileTitle;
+ ofn.nMaxFileTitle = sizeof(szFileTitle);
+ ofn.lpstrInitialDir = (LPSTR)NULL;
+ ofn.Flags = OFN_SHOWHELP | OFN_OVERWRITEPROMPT;
+ ofn.lpstrTitle = szTitle;
+
+ if (GetSaveFileName(&ofn))
+ {
+ try {
+ config.Save(ofn.lpstrFile);
+ } catch (std::runtime_error &e)
+ {
+ char Message[255];
+ sprintf(Message,"Failure: %s\n", e.what());
+ MessageBox(NULL,Message,"Exception",MB_OK);
+ }
+ }
+ }
+ public:
+
+ /// @brief Handle messages fo the dialog pages.
+ /// @param hwndDlg Handle of active dialog.
+ /// @param uMsg Message code.
+ /// @param wParam Message parameter.
+ /// @param lParam Message parameter.
+ /// @param psp Handle to sheet paramters.
+ virtual INT_PTR PageDispatch(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam, PROPSHEETPAGE *psp)
+ {
+ HWND hwnd;
+ switch (uMsg)
+ {
+ case WM_INITDIALOG:
+ switch (PageID(PageIndex(psp)))
+ {
+ case IDD_DISPLAY:
+ // Init display dialog. Enable correct check buttons
+ switch (config.window)
+ {
+ default:
+ case CConfig::MultiWindow:
+ CheckRadioButton(hwndDlg, IDC_MULTIWINDOW, IDC_NODECORATION, IDC_MULTIWINDOW);
+ break;
+ case CConfig::Fullscreen:
+ CheckRadioButton(hwndDlg, IDC_MULTIWINDOW, IDC_NODECORATION, IDC_FULLSCREEN);
+ break;
+ case CConfig::Windowed:
+ CheckRadioButton(hwndDlg, IDC_MULTIWINDOW, IDC_NODECORATION, IDC_WINDOWED);
+ break;
+ case CConfig::Nodecoration:
+ CheckRadioButton(hwndDlg, IDC_MULTIWINDOW, IDC_NODECORATION, IDC_NODECORATION);
+ break;
+ }
+ // Set display number
+ SetDlgItemText(hwndDlg, IDC_DISPLAY, config.display.c_str());
+ break;
+ case IDD_CLIENTS:
+ // Init client dialog. Enable correct check buttons
+ switch (config.client)
+ {
+ default:
+ case CConfig::NoClient:
+ CheckRadioButton(hwndDlg, IDC_CLIENT_NONE, IDC_CLIENT, IDC_CLIENT_NONE);
+ break;
+ case CConfig::StartProgram:
+ CheckRadioButton(hwndDlg, IDC_CLIENT_NONE, IDC_CLIENT, IDC_CLIENT);
+ break;
+ case CConfig::XDMCP:
+ CheckRadioButton(hwndDlg, IDC_CLIENT_NONE, IDC_CLIENT, IDC_XDMCP);
+ break;
+ }
+ break;
+ case IDD_PROGRAM:
+ // Init program dialog. Check local and remote buttons
+ CheckRadioButton(hwndDlg, IDC_CLIENT_LOCAL, IDC_CLIENT_REMOTE, config.local?IDC_CLIENT_LOCAL:IDC_CLIENT_REMOTE);
+ EnableRemoteProgramGroup(hwndDlg, config.local?FALSE:TRUE);
+ // Fill combo boxes
+ FillProgramBox(hwndDlg);
+ // Set edit fields
+ SetDlgItemText(hwndDlg, IDC_CLIENT_PROGRAM, config.localprogram.c_str());
+ SetDlgItemText(hwndDlg, IDC_CLIENT_REMOTEPROGRAM, config.remoteprogram.c_str());
+ SetDlgItemText(hwndDlg, IDC_CLIENT_USER, config.user.c_str());
+ SetDlgItemText(hwndDlg, IDC_CLIENT_HOST, config.host.c_str());
+ SetDlgItemText(hwndDlg, IDC_CLIENT_PASSWORD, config.remotepassword.c_str());
+ SetDlgItemText(hwndDlg, IDC_CLIENT_PRIVATEKEY, config.privatekey.c_str());
+ break;
+ case IDD_XDMCP:
+ // Init XDMCP dialog. Check broadcast and indirect button
+ CheckRadioButton(hwndDlg, IDC_XDMCP_QUERY, IDC_XDMCP_BROADCAST, config.broadcast?IDC_XDMCP_BROADCAST:IDC_XDMCP_QUERY);
+ CheckDlgButton(hwndDlg, IDC_XDMCP_INDIRECT, config.indirect?BST_CHECKED:BST_UNCHECKED);
+ EnableXDMCPQueryGroup(hwndDlg, config.broadcast?FALSE:TRUE);
+ // Set hostname
+ SetDlgItemText(hwndDlg, IDC_XDMCP_HOST, config.xdmcp_host.c_str());
+ CheckDlgButton(hwndDlg, IDC_XDMCP_TERMINATE, config.xdmcpterminate?BST_CHECKED:BST_UNCHECKED);
+ break;
+ case IDD_EXTRA:
+ CheckDlgButton(hwndDlg, IDC_CLIPBOARD, config.clipboard?BST_CHECKED:BST_UNCHECKED);
+ CheckDlgButton(hwndDlg, IDC_CLIPBOARDPRIMARY, config.clipboardprimary?BST_CHECKED:BST_UNCHECKED);
+ CheckDlgButton(hwndDlg, IDC_WGL, config.wgl?BST_CHECKED:BST_UNCHECKED);
+ CheckDlgButton(hwndDlg, IDC_DISABLEAC, config.disableac?BST_CHECKED:BST_UNCHECKED);
+ SetDlgItemText(hwndDlg, IDC_EXTRA_PARAMS, config.extra_params.c_str());
+ break;
+
+ }
+ case WM_COMMAND:
+ // Handle control messages
+ switch (LOWORD(wParam))
+ {
+ // Handle clicks on images. Check proper radiobutton
+ case IDC_MULTIWINDOW_IMG:
+ case IDC_FULLSCREEN_IMG:
+ case IDC_WINDOWED_IMG:
+ case IDC_NODECORATION_IMG:
+ CheckRadioButton(hwndDlg, IDC_MULTIWINDOW, IDC_NODECORATION, LOWORD(wParam)-4);
+ SetFocus(GetDlgItem(hwndDlg, LOWORD(wParam)-4));
+ break;
+ // Disable unavailable controls
+ case IDC_CLIENT_REMOTE:
+ case IDC_CLIENT_LOCAL:
+ EnableRemoteProgramGroup(hwndDlg, LOWORD(wParam) == IDC_CLIENT_REMOTE);
+ break;
+ case IDC_XDMCP_QUERY:
+ case IDC_XDMCP_BROADCAST:
+ EnableXDMCPQueryGroup(hwndDlg, LOWORD(wParam) == IDC_XDMCP_QUERY);
+ break;
+ case IDC_FINISH_SAVE:
+ ShowSaveDialog(hwndDlg);
+ break;
+ }
+ }
+ // pass messages to parent
+ return CWizard::PageDispatch(hwndDlg, uMsg, wParam, lParam, psp);
+ }
+
+ /// @brief Try to connect to server.
+ /// Repeat until successful, server died or maximum number of retries
+ /// reached.
+ Display *WaitForServer(HANDLE serverProcess)
+ {
+ int ncycles = 120; /* # of cycles to wait */
+ int cycles; /* Wait cycle count */
+ Display *xd;
+
+ for (cycles = 0; cycles < ncycles; cycles++) {
+ if ((xd = XOpenDisplay(NULL))) {
+ return xd;
+ }
+ else {
+ if (WaitForSingleObject(serverProcess, 1000) == WAIT_TIMEOUT)
+ continue;
+ }
+ }
+ return NULL;
+ }
+
+ /// @brief Do the actual start of VCXsrv and clients
+ void StartUp()
+ {
+ std::string buffer;
+ std::string client;
+
+ // Construct display strings
+ int DisplayNbr=atoi(config.display.c_str());
+ std::string display_id = ":" + config.display;
+ std::string display = "DISPLAY=127.0.0.1" + display_id + ".0";
+
+ // Build Xsrv commandline
+ buffer = "vcxsrv ";
+ if (DisplayNbr!=-1)
+ buffer += display_id + " ";
+ switch (config.window)
+ {
+ case CConfig::MultiWindow:
+ buffer += "-multiwindow ";
+ break;
+ case CConfig::Fullscreen:
+ buffer += "-fullscreen ";
+ break;
+ case CConfig::Nodecoration:
+ buffer += "-nodecoration ";
+ break;
+ default:
+ break;
+ }
+ // Add XDMCP parameter
+ if (config.client == CConfig::XDMCP)
+ {
+ if (config.broadcast)
+ buffer += "-broadcast ";
+ else
+ {
+ if (config.indirect)
+ buffer += "-indirect ";
+ else
+ buffer += "-query ";
+ buffer += config.xdmcp_host;
+ buffer += " ";
+ }
+ if (config.xdmcpterminate)
+ buffer += "-terminate ";
+ }
+ if (config.clipboard)
+ buffer += "-clipboard ";
+ if (!config.clipboardprimary)
+ buffer += "-noclipboardprimary ";
+ if (config.wgl)
+ buffer += "-wgl ";
+ else
+ buffer += "-nowgl ";
+ if (config.disableac)
+ buffer += "-ac ";
+ if (!config.extra_params.empty())
+ {
+ buffer += config.extra_params;
+ buffer += " ";
+ }
+
+ int *pDisplayfd;
+ if (DisplayNbr==-1)
+ {
+ // Pass the handle of some shared memory to vcxsrv to getting back the display nbr
+ SECURITY_ATTRIBUTES sa;
+ sa.nLength=sizeof(sa);
+ sa.lpSecurityDescriptor=NULL;
+ sa.bInheritHandle=TRUE;
+ HANDLE hDisplayFdMem=CreateFileMapping(INVALID_HANDLE_VALUE, &sa, PAGE_READWRITE, 0, sizeof(int), NULL);
+ pDisplayfd=(int*)MapViewOfFile(hDisplayFdMem, FILE_MAP_READ|FILE_MAP_WRITE, 0, 0, 0);
+ *pDisplayfd=-1; // Not yet initialised
+ buffer+="-displayfd ";
+ std::stringstream ss;
+ ss<<(int)hDisplayFdMem;
+ buffer+=ss.str();
+ }
+ // Construct client commandline
+ if (config.client == CConfig::StartProgram)
+ {
+ if (!config.local)
+ {
+ char cmdline[512];
+ std::string host = config.host;
+ std::string remotepassword;
+ if (!config.user.empty())
+ host = config.user + "@" + config.host;
+ if (!config.remotepassword.empty())
+ remotepassword=std::string(" -pw ")+config.remotepassword;
+ if (!config.privatekey.empty())
+ remotepassword+=std::string(" -i \"")+config.privatekey+"\"";
+ _snprintf(cmdline,512,"plink -ssh -X%s %s %s",
+ remotepassword.c_str(), host.c_str(),config.remoteprogram.c_str());
+ client += cmdline;
+ }
+ else
+ {
+ client += config.localprogram.c_str();
+ }
+ }
+
+ // Prepare program startup
+ STARTUPINFO si, sic;
+ PROCESS_INFORMATION pi, pic;
+ DWORD hcount = 0;
+ Display *dpy = NULL;
+
+ ZeroMemory( &si, sizeof(si) );
+ si.cb = sizeof(si);
+ ZeroMemory( &pi, sizeof(pi) );
+ ZeroMemory( &sic, sizeof(sic) );
+ sic.cb = sizeof(sic);
+ ZeroMemory( &pic, sizeof(pic) );
+
+ // Start VCXsrv process.
+#ifdef _DEBUG
+ printf("%s\n", buffer.c_str());
+#endif
+ char CurDir[MAX_PATH];
+ GetModuleFileName(NULL,CurDir,MAX_PATH);
+ *strrchr(CurDir,'\\')=0;
+
+ if( !CreateProcess( NULL, (CHAR*)buffer.c_str(), NULL, NULL,
+ TRUE, 0, NULL, CurDir, &si, &pi ))
+ throw win32_error("CreateProcess failed");
+
+ if (!client.empty())
+ {
+ if (DisplayNbr==-1)
+ {
+ // Wait maximum 10 seconds
+ int Count=1000;
+ while (-1==*pDisplayfd)
+ {
+ if (Count-- < 0)
+ throw std::runtime_error("Connection to server failed");
+ Sleep(10);
+ }
+ std::stringstream ss;
+ ss<<*pDisplayfd;
+ display_id = ":" + ss.str();
+ display = "DISPLAY=127.0.0.1" + display_id + ".0";
+ }
+ // Set DISPLAY variable
+ _putenv(display.c_str());
+
+ // Wait for server to startup
+ dpy = WaitForServer(pi.hProcess);
+ if (dpy == NULL)
+ {
+ TerminateProcess(pi.hProcess, (DWORD)-1);
+ throw std::runtime_error("Connection to server failed");
+ }
+
+#ifdef _DEBUG
+ printf("%s\n", client.c_str());
+#endif
+
+ // Start the child process.
+
+ #if 1
+ // Create a console, otherwise some commands will not execute with plink
+ HWINSTA h=GetProcessWindowStation();
+ HWND hConsoleWnd=NULL;
+ if (h)
+ {
+ AllocConsole();
+ hConsoleWnd=GetConsoleWindow();
+ ShowWindow(hConsoleWnd, SW_HIDE ); // make it hidden, the disadvantage of this method is that the console window flashes
+ // but we must be able to show it when the client puts some output
+ }
+
+ HANDLE hChildStdinRd;
+ HANDLE hChildStdinWr;
+ HANDLE hChildStdoutRd;
+ HANDLE hChildStdoutWr;
+ SECURITY_ATTRIBUTES saAttr;
+ BOOL fSuccess;
+
+ saAttr.nLength = sizeof(SECURITY_ATTRIBUTES);
+ saAttr.bInheritHandle = TRUE;
+ saAttr.lpSecurityDescriptor = NULL;
+
+ if (!CreatePipe(&hChildStdinRd, &hChildStdinWr, &saAttr, 0))
+ throw win32_error("CreatePipe failed", GetLastError());
+
+ // Ensure the write handle to the pipe for STDIN is not inherited.
+ if ( ! SetHandleInformation(hChildStdinWr, HANDLE_FLAG_INHERIT, 0) )
+ throw win32_error("SetHandleInformation failed", GetLastError());
+
+ if (!CreatePipe(&hChildStdoutRd, &hChildStdoutWr, &saAttr, 0))
+ throw win32_error("CreatePipe failed", GetLastError());
+
+ // Ensure the read handle to the pipe for STDOUT is not inherited.
+ if ( ! SetHandleInformation(hChildStdoutRd, HANDLE_FLAG_INHERIT, 0) )
+ throw win32_error("SetHandleInformation failed", GetLastError());
+
+ sic.dwFlags = STARTF_USESTDHANDLES;
+ sic.hStdInput = hChildStdinRd;
+ sic.hStdOutput = hChildStdoutWr;
+ sic.hStdError = hChildStdoutWr;
+
+ if (!CreateProcess(NULL,(CHAR*)client.c_str(),NULL,NULL,TRUE,0,NULL, CurDir, &sic, &pic))
+ {
+ DWORD err = GetLastError();
+ TerminateProcess(pi.hProcess, (DWORD)-1);
+ throw win32_error("CreateProcess failed", err);
+ }
+ CloseHandle(hChildStdinRd);
+ CloseHandle(hChildStdoutWr);
+ CloseHandle(pic.hThread);
+
+ int hStdIn = _open_osfhandle((long)hChildStdinWr, _O_WRONLY|_O_BINARY);
+ int hStdOut = _open_osfhandle((long)hChildStdoutRd, _O_RDONLY|_O_BINARY);
+ HANDLE hConsoleInput=GetStdHandle(STD_INPUT_HANDLE);
+ HANDLE hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);
+ SetConsoleMode(hConsoleInput, 0); // Needed to disable local echo, and return only upon carriage return of read function
+ while (1)
+ {
+ if (!WaitForSingleObject(pic.hProcess, 20 ))
+ {
+ // Child does not exist anymore, but it could be that there is still error output in the pipes
+ // So wait some time, that then check the output again
+ Sleep(500);
+ CheckOutput(hChildStdoutRd, hStdOut, hStdIn);
+ break;
+ }
+ if (!WaitForSingleObject(pi.hProcess, 0))
+ {
+ TerminateProcess(pic.hProcess, (DWORD)-1);
+ break;
+ }
+ CheckOutput(hChildStdoutRd, hStdOut, hStdIn);
+ }
+ #else
+ // Hide a console window
+ // FIXME: This may make it impossible to enter the password
+ sic.dwFlags = STARTF_USESHOWWINDOW;
+ sic.wShowWindow = SW_HIDE;
+
+ if( !CreateProcess( NULL, (CHAR*)client.c_str(), NULL, NULL,
+ FALSE, 0, NULL, CurDir, &sic, &pic ))
+ {
+ DWORD err = GetLastError();
+ while (hcount--)
+ TerminateProcess(handles[hcount], (DWORD)-1);
+ throw win32_error("CreateProcess failed", err);
+ }
+ CloseHandle( pic.hThread );
+ #endif
+ }
+
+ // Wait until child process exits.
+ DWORD ret = WaitForSingleObject(pic.hProcess, INFINITE );
+
+#ifdef _DEBUG
+ printf("killing process!\n");
+#endif
+ // Check if Xsrv is still running, but only when we started a local program
+ if (config.local)
+ {
+ DWORD exitcode;
+ GetExitCodeProcess(pi.hProcess, &exitcode);
+ unsigned counter = 0;
+ while (exitcode == STILL_ACTIVE)
+ {
+ if (++counter > 10)
+ TerminateProcess(pi.hProcess, (DWORD)-1);
+ else
+ // Shutdown Xsrv (the soft way!)
+ EnumThreadWindows(pi.dwThreadId, KillWindowsProc, 0);
+ Sleep(500);
+ GetExitCodeProcess(pi.hProcess, &exitcode);
+ }
+ }
+
+ // Close process and thread handles.
+ CloseHandle( pi.hProcess );
+ CloseHandle( pi.hThread );
+ CloseHandle( pic.hProcess );
+ }
+};
+
+int main(int argc, char **argv)
+{
+ try {
+ InitCommonControls();
+ CMyWizard dialog;
+
+ bool skip_wizard = false;
+
+ for (int i = 1; i < argc; i++)
+ {
+ if (argv[i] == NULL)
+ continue;
+
+ std::string arg(argv[i]);
+ if (arg == "-load" && i + 1 < argc)
+ {
+ i++;
+ dialog.LoadConfig(argv[i]);
+ continue;
+ }
+ if (arg == "-run" && i + 1 < argc)
+ {
+ i++;
+ dialog.LoadConfig(argv[i]);
+ skip_wizard = true;
+ continue;
+ }
+ }
+
+ int ret = 0;
+ if (skip_wizard || (ret =dialog.ShowModal()) != 0)
+ dialog.StartUp();
+#ifdef _DEBUG
+ printf("return %d\n", ret);
+#endif
+ return 0;
+ } catch (std::runtime_error &e)
+ {
+ char Message[255];
+ sprintf(Message,"Failure: %s\n", e.what());
+ MessageBox(NULL,Message,"Exception",MB_OK);
+ return -1;
+ }
+}
diff --git a/xorg-server/hw/xwin/xlaunch/makefile b/xorg-server/hw/xwin/xlaunch/makefile
new file mode 100644
index 000000000..83426fe19
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/makefile
@@ -0,0 +1,22 @@
+INCLUDELIBFILES = window\$(OBJDIR)\window.lib \
+ $(MHMAKECONF)\libX11\$(OBJDIR)\libX11.lib \
+ $(MHMAKECONF)\libxcb\src\$(OBJDIR)\libxcb.lib \
+ $(MHMAKECONF)\libXau\$(OBJDIR)\libXau.lib
+
+CSRCS=config.cc main.cc
+
+INCLUDES += $(MHMAKECONF)\libxml2\include
+
+WINAPP = xlaunch
+
+RESOURCES = resources.rc
+
+$(OBJDIR)\%.res : resources\%.rc $(wildcard resources\*.rc)
+ $(RC) $(RCFLAGS) $(RCDEFINES:%=-d "%") $(RCINCLUDES:%=-i %) -Fo$(relpath $@) $<
+
+LIBDIRS=$(dir $(INCLUDELIBFILES))
+
+load_makefile $(LIBDIRS:%$(OBJDIR)\=%makefile MAKESERVER=0 DEBUG=$(DEBUG);)
+
+LINKLIBS += $(LIBXMLLIB) $(PTHREADLIB)
+
diff --git a/xorg-server/hw/xwin/xlaunch/resources/dialog.rc b/xorg-server/hw/xwin/xlaunch/resources/dialog.rc
new file mode 100644
index 000000000..3435329b2
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/resources/dialog.rc
@@ -0,0 +1,153 @@
+/*
+ * Copyright (c) 2005 Alexander Gottwald
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the name(s) of the above copyright
+ * holders shall not be used in advertising or otherwise to promote the sale,
+ * use or other dealings in this Software without prior written authorization.
+ */
+#include <windows.h>
+#include "resources.h"
+
+#ifndef STR_CAPTION_DISPLAY
+#include "strings.rc"
+#endif
+
+IDD_DISPLAY DIALOGEX 0, 0, 317, 143
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU | DS_CENTERMOUSE
+CAPTION STR_CAPTION_DISPLAY
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ AUTORADIOBUTTON STR_MULTIWINDOW,IDC_MULTIWINDOW,7,25,70,24,BS_MULTILINE|BS_TOP
+ AUTORADIOBUTTON STR_FULLSCREEN,IDC_FULLSCREEN,157,25,70,24,BS_MULTILINE|BS_TOP
+ AUTORADIOBUTTON STR_WINDOWED,IDC_WINDOWED,7,75,70,24,BS_MULTILINE|BS_TOP
+ AUTORADIOBUTTON STR_NODECORATION,IDC_NODECORATION,157,75,70,24,BS_MULTILINE|BS_TOP
+
+ CONTROL "IMG_MULTIWINDOW",IDC_MULTIWINDOW_IMG,"Static",SS_BITMAP | SS_NOTIFY,80,10,0,0
+ CONTROL "IMG_FULLSCREEN",IDC_FULLSCREEN_IMG,"Static",SS_BITMAP | SS_NOTIFY,230,10,0,0
+ CONTROL "IMG_WINDOWED",IDC_WINDOWED_IMG,"Static",SS_BITMAP | SS_NOTIFY,80,60,0,0
+ CONTROL "IMG_NODECORATION",IDC_NODECORATION_IMG,"Static",SS_BITMAP | SS_NOTIFY,230,60,0,0
+
+ LTEXT STR_DISPLAY_DESC,IDC_DISPLAY_DESC,7,120,64,12
+ LTEXT STR_DISPLAY_EXTRA_DESC,IDC_DISPLAY_EXTRA_DESC,7,132,200,12
+ EDITTEXT IDC_DISPLAY,80,118,67,12
+END
+
+IDD_CLIENTS DIALOGEX 0, 0, 317, 143
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU | DS_CENTERMOUSE
+CAPTION STR_CAPTION_CLIENTS
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ AUTORADIOBUTTON STR_CLIENT_NONE,IDC_CLIENT_NONE,7,14,300,10
+ AUTORADIOBUTTON STR_CLIENT,IDC_CLIENT,7,56,300,10
+ AUTORADIOBUTTON STR_XDMCP,IDC_XDMCP,7,98,300,10
+
+ LTEXT STR_CLIENT_NONE_DESC,IDC_CLIENT_NONE_DESC,19,28,280,27
+ LTEXT STR_CLIENT_DESC,IDC_CLIENT_DESC,19,70,280,27
+ LTEXT STR_XDMCP_DESC,IDC_XDMCP_DESC,19,112,280,27
+END
+
+IDD_PROGRAM DIALOGEX 0, 0, 317, 143
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU | DS_CENTERMOUSE
+CAPTION STR_CAPTION_PROGRAM
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ AUTORADIOBUTTON STR_CLIENT_LOCAL,IDC_CLIENT_LOCAL,7,14,300,10
+ AUTORADIOBUTTON STR_CLIENT_REMOTE,IDC_CLIENT_REMOTE,7,50,300,10
+
+ LTEXT STR_CLIENT_PROGRAM_DESC,IDC_CLIENT_PROGRAM_DESC,19,28,64,10
+ COMBOBOX IDC_CLIENT_PROGRAM,110,26,64,54,CBS_DROPDOWN | WS_VSCROLL
+
+
+ LTEXT STR_CLIENT_REMOTEPROGRAM_DESC,IDC_CLIENT_REMOTEPROGRAM_DESC,19,64,70,10
+ EDITTEXT IDC_CLIENT_REMOTEPROGRAM,110,62,200,12, WS_BORDER | WS_TABSTOP | ES_AUTOHSCROLL
+
+ LTEXT STR_CLIENT_PASSWORD_DESC,IDC_CLIENT_PASSWORD_DESC,19,78,70,10
+ EDITTEXT IDC_CLIENT_PASSWORD,110,76,64,12, WS_BORDER | WS_TABSTOP | ES_AUTOHSCROLL
+
+
+ LTEXT STR_CLIENT_HOST_DESC,IDC_CLIENT_HOST_DESC,19,92,70,10
+ EDITTEXT IDC_CLIENT_HOST,110,90,64,12, WS_BORDER | WS_TABSTOP | ES_AUTOHSCROLL
+
+ LTEXT STR_CLIENT_USER_DESC,IDC_CLIENT_USER_DESC,19,106,70,10
+ EDITTEXT IDC_CLIENT_USER,110,104,64,12, WS_BORDER | WS_TABSTOP | ES_AUTOHSCROLL
+
+ LTEXT STR_CLIENT_PRIVATEKEY_DESC,IDC_CLIENT_PRIVATEKEY_DESC,19,120,90,10
+ EDITTEXT IDC_CLIENT_PRIVATEKEY,110,118,200,12, WS_BORDER | WS_TABSTOP | ES_AUTOHSCROLL
+END
+
+IDD_XDMCP DIALOGEX 0, 0, 317, 143
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU | DS_CENTERMOUSE
+CAPTION STR_CAPTION_XDMCP
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ AUTORADIOBUTTON STR_XDMCP_QUERY, IDC_XDMCP_QUERY,7,14,64,10
+ EDITTEXT IDC_XDMCP_HOST,78,12,64,12
+ AUTOCHECKBOX STR_XDMCP_INDIRECT,IDC_XDMCP_INDIRECT,19,28,280,10
+ AUTORADIOBUTTON STR_XDMCP_BROADCAST, IDC_XDMCP_BROADCAST,7,42,300,10
+ LTEXT STR_XDMCP_QUERY_DESC,IDC_XDMCP_QUERY_DESC,7,66,300,42
+ AUTOCHECKBOX STR_XDMCP_TERMINATE,IDC_XDMCP_TERMINATE,7,94,300,10
+END
+
+IDD_EXTRA DIALOGEX 0, 0, 317, 143
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU | DS_CENTERMOUSE
+CAPTION STR_CAPTION_EXTRA
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ AUTOCHECKBOX STR_CLIPBOARD,IDC_CLIPBOARD,7,10,300,10
+ LTEXT STR_CLIPBOARD_DESC,IDC_CLIPBOARD_DESC,19,20,280,27
+
+ AUTOCHECKBOX STR_CLIPBOARDPRIMARY,IDC_CLIPBOARDPRIMARY,19,30,300,10
+ LTEXT STR_CLIPBOARDPRIMARY_DESC,IDC_CLIPBOARDPRIMARY_DESC,31,40,280,27
+
+ AUTOCHECKBOX STR_WGL,IDC_WGL,7,52,300,10
+ LTEXT STR_WGL_DESC,IDC_WGL_DESC,19,62,280,27
+
+ AUTOCHECKBOX STR_DISABLEAC,IDC_DISABLEAC,7,82,300,10
+ LTEXT STR_DISABLEAC_DESC,IDC_DISABLEAC_DESC,19,92,280,27
+
+ LTEXT STR_EXTRA_PARAMS_DESC,IDC_EXTRA_PARAMS_DESC,7,105,280,10
+ EDITTEXT IDC_EXTRA_PARAMS,7,115,300,12, WS_BORDER | WS_TABSTOP | ES_AUTOHSCROLL
+END
+
+IDD_FINISH DIALOGEX 0, 0, 317, 143
+STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU | DS_CENTERMOUSE
+CAPTION STR_CAPTION_FINISH
+FONT 8, "MS Shell Dlg", 400, 0, 0x1
+BEGIN
+ LTEXT STR_FINISH_DESC,IDC_FINISH_DESC,7,14,300,28
+ LTEXT STR_FINISH_SAVE_DESC,IDC_FINISH_SAVE_DESC,7,56,300,12
+ PUSHBUTTON STR_FINISH_SAVE,IDC_FINISH_SAVE,7,68,75,14
+END
+
+/* Prompting dialog */
+IDD_PROMPT DIALOGEX 32, 32, 260, 115
+STYLE DS_SETFONT | DS_CENTERMOUSE | WS_POPUP | WS_VISIBLE | WS_CAPTION
+EXSTYLE WS_EX_NOPARENTNOTIFY
+CAPTION "Input requested?"
+FONT 8, "MS Shell Dlg 2", 0, 0, 0x1
+BEGIN
+ LTEXT "",IDC_PROMPT_DESC,7,7,245,50, WS_BORDER
+ EDITTEXT IDC_INPUT,7,67,245,12, WS_BORDER | WS_TABSTOP | ES_AUTOHSCROLL | ES_PASSWORD
+ AUTOCHECKBOX "Show Characters", IDC_PASSWORD, 7,77,245,12, WS_TABSTOP
+ DEFPUSHBUTTON "OK",IDOK,61,95,50,15, WS_TABSTOP
+ PUSHBUTTON "Cancel",IDCANCEL,147,95,50,14, WS_TABSTOP
+END
+
diff --git a/xorg-server/hw/xwin/xlaunch/resources/fullscreen.bmp b/xorg-server/hw/xwin/xlaunch/resources/fullscreen.bmp
new file mode 100644
index 000000000..0d051f0b4
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/resources/fullscreen.bmp
Binary files differ
diff --git a/xorg-server/hw/xwin/xlaunch/resources/images.rc b/xorg-server/hw/xwin/xlaunch/resources/images.rc
new file mode 100644
index 000000000..2eac53c93
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/resources/images.rc
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2005 Alexander Gottwald
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the name(s) of the above copyright
+ * holders shall not be used in advertising or otherwise to promote the sale,
+ * use or other dealings in this Software without prior written authorization.
+ */
+IMG_MULTIWINDOW BITMAP "resources\\multiwindow.bmp"
+IMG_WINDOWED BITMAP "resources\\windowed.bmp"
+IMG_FULLSCREEN BITMAP "resources\\fullscreen.bmp"
+IMG_NODECORATION BITMAP "resources\\nodecoration.bmp"
diff --git a/xorg-server/hw/xwin/xlaunch/resources/multiwindow.bmp b/xorg-server/hw/xwin/xlaunch/resources/multiwindow.bmp
new file mode 100644
index 000000000..0755c87b4
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/resources/multiwindow.bmp
Binary files differ
diff --git a/xorg-server/hw/xwin/xlaunch/resources/nodecoration.bmp b/xorg-server/hw/xwin/xlaunch/resources/nodecoration.bmp
new file mode 100644
index 000000000..e9e1ce690
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/resources/nodecoration.bmp
Binary files differ
diff --git a/xorg-server/hw/xwin/xlaunch/resources/resources.h b/xorg-server/hw/xwin/xlaunch/resources/resources.h
new file mode 100644
index 000000000..256ebb9fa
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/resources/resources.h
@@ -0,0 +1,118 @@
+/*
+ * Copyright (c) 2005 Alexander Gottwald
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the name(s) of the above copyright
+ * holders shall not be used in advertising or otherwise to promote the sale,
+ * use or other dealings in this Software without prior written authorization.
+ */
+
+#define IDC_STATIC -1
+
+#define IDD_WELCOME 100
+#define IDD_FINISH 101
+#define IDD_DISPLAY 102
+#define IDD_CLIENTS 103
+#define IDD_PROGRAM 104
+#define IDD_XDMCP 105
+#define IDD_FONTPATH 106
+#define IDD_EXTRA 107
+
+#define IDI_XLAUNCH 108
+
+#define IDC_MULTIWINDOW 200
+#define IDC_WINDOWED 201
+#define IDC_FULLSCREEN 202
+#define IDC_NODECORATION 203
+#define IDC_MULTIWINDOW_IMG 204
+#define IDC_WINDOWED_IMG 205
+#define IDC_FULLSCREEN_IMG 206
+#define IDC_NODECORATION_IMG 207
+#define IDC_DISPLAY 208
+#define IDC_DISPLAY_DESC 209
+#define IDC_DISPLAY_EXTRA_DESC 210
+
+#define IDC_CLIENT_NONE 211
+#define IDC_XDMCP 212
+#define IDC_CLIENT 213
+#define IDC_CLIENT_LOCAL 214
+#define IDC_CLIENT_REMOTE 215
+#define IDC_CLIENT_HOST 216
+#define IDC_CLIENT_USER 217
+#define IDC_CLIENT_PASSWORD 218
+#define IDC_CLIENT_CONFIGURE 219
+#define IDC_CLIENT_PROGRAM 220
+#define IDC_XDMCP_QUERY 221
+#define IDC_XDMCP_BROADCAST 222
+#define IDC_XDMCP_INDIRECT 223
+#define IDC_XDMCP_HOST 224
+#define IDC_CLIENT_NONE_DESC 225
+#define IDC_XDMCP_DESC 226
+#define IDC_CLIENT_DESC 227
+#define IDC_XDMCP_QUERY_DESC 228
+#define IDC_CLIENT_PROGRAM_DESC 229
+#define IDC_CLIENT_HOST_DESC 230
+#define IDC_CLIENT_USER_DESC 231
+#define IDC_CLIENT_PASSWORD_DESC 232
+#define IDC_CLIENT_REMOTEPROGRAM 233
+#define IDC_CLIENT_REMOTEPROGRAM_DESC 234
+#define IDC_CLIENT_PRIVATEKEY 235
+#define IDC_CLIENT_PRIVATEKEY_DESC 236
+
+#define IDC_FONTPATH_DESC 240
+
+#define IDC_FINISH_DESC 250
+#define IDC_FINISH_SAVE 251
+#define IDC_FINISH_SAVE_DESC 252
+
+#define IDC_CLIPBOARD 260
+#define IDC_CLIPBOARD_DESC 261
+#define IDC_EXTRA_PARAMS 262
+#define IDC_EXTRA_PARAMS_DESC 263
+#define IDC_WGL 264
+#define IDC_WGL_DESC 265
+#define IDC_CLIPBOARDPRIMARY 266
+#define IDC_CLIPBOARDPRIMARY_DESC 267
+#define IDC_DISABLEAC 268
+#define IDC_DISABLEAC_DESC 269
+#define IDC_XDMCP_TERMINATE 270
+
+#define IDC_PROMPT_DESC 280
+#define IDC_INPUT 281
+#define IDC_PASSWORD 282
+
+#define IDS_DISPLAY_TITLE 300
+#define IDS_DISPLAY_SUBTITLE 301
+#define IDS_CLIENTS_TITLE 302
+#define IDS_CLIENTS_SUBTITLE 303
+#define IDS_PROGRAM_TITLE 304
+#define IDS_PROGRAM_SUBTITLE 305
+#define IDS_XDMCP_TITLE 306
+#define IDS_XDMCP_SUBTITLE 307
+#define IDS_FONTPATH_TITLE 308
+#define IDS_FONTPATH_SUBTITLE 309
+#define IDS_FINISH_TITLE 310
+#define IDS_FINISH_SUBTITLE 311
+#define IDS_EXTRA_TITLE 312
+#define IDS_EXTRA_SUBTITLE 313
+#define IDS_SAVE_TITLE 320
+#define IDS_SAVE_FILETITLE 321
+#define IDS_SAVE_FILTER 322
+
diff --git a/xorg-server/hw/xwin/xlaunch/resources/resources.rc b/xorg-server/hw/xwin/xlaunch/resources/resources.rc
new file mode 100644
index 000000000..e3df4610a
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/resources/resources.rc
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2005 Alexander Gottwald
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the name(s) of the above copyright
+ * holders shall not be used in advertising or otherwise to promote the sale,
+ * use or other dealings in this Software without prior written authorization.
+ */
+#include <windows.h>
+
+#include "resources.h"
+#include "images.rc"
+#include "dialog.rc"
+
+IDI_XLAUNCH ICON "..\\..\\X.ico"
diff --git a/xorg-server/hw/xwin/xlaunch/resources/strings.rc b/xorg-server/hw/xwin/xlaunch/resources/strings.rc
new file mode 100644
index 000000000..f34f46208
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/resources/strings.rc
@@ -0,0 +1,121 @@
+/*
+ * Copyright (c) 2005 Alexander Gottwald
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the name(s) of the above copyright
+ * holders shall not be used in advertising or otherwise to promote the sale,
+ * use or other dealings in this Software without prior written authorization.
+ */
+
+#define STR_CAPTION_DISPLAY "Display settings"
+#define STR_MULTIWINDOW "Multiple windows"
+#define STR_FULLSCREEN "Fullscreen"
+#define STR_WINDOWED "One large window"
+#define STR_NODECORATION "One window without titlebar"
+#define STR_DISPLAY_DESC "Display number"
+#define STR_DISPLAY_EXTRA_DESC "(Specify -1 to let vcxsrv automatically choose one)"
+
+#define STR_CAPTION_CLIENTS "Client startup"
+#define STR_CLIENT_NONE "Start no client"
+#define STR_CLIENT_NONE_DESC "This will just start the xserver. You will be able to start local clients later."
+#define STR_CLIENT "Start a program"
+#define STR_CLIENT_DESC "This will start a local or remote program which will connect to the xserver. You will be able to start local clients later too. Remote programs are started using SSH."
+#define STR_XDMCP "Open session via XDMCP"
+#define STR_XDMCP_DESC "This will start a remote XDMCP session. Starting local clients later is limited. This option is not available with the ""Multiple windows"" mode."
+
+#define STR_CAPTION_PROGRAM "Start program"
+#define STR_CLIENT_PROGRAM_DESC "Local program"
+#define STR_CLIENT_LOCAL "Start program on this computer"
+#define STR_CLIENT_REMOTE "Start program on remote computer"
+#define STR_CLIENT_PASSWORD_DESC "Password"
+#define STR_CLIENT_HOST_DESC "Connect to computer"
+#define STR_CLIENT_USER_DESC "Login as user"
+
+#define STR_CLIENT_REMOTEPROGRAM_DESC "Remote program"
+#define STR_CLIENT_PRIVATEKEY_DESC "Private key (putty format)"
+
+
+#define STR_CAPTION_XDMCP "XDMCP settings"
+#define STR_XDMCP_QUERY "Connect to host"
+#define STR_XDMCP_INDIRECT "Use indirect connect"
+#define STR_XDMCP_BROADCAST "Search for hosts (broadcast)"
+#define STR_XDMCP_QUERY_DESC "Some XDMCP servers must be configured to allow remote connections. Please check the documentation about configuring XDMCP servers."
+
+
+#define STR_CAPTION_FONTPATH "Fontpath settings"
+
+#define STR_CAPTION_EXTRA "Extra settings"
+#define STR_CLIPBOARD "Clipboard"
+#define STR_CLIPBOARD_DESC "Start the integrated clipboard manager"
+#define STR_CLIPBOARDPRIMARY "Primary Selection"
+#define STR_CLIPBOARDPRIMARY_DESC "Also map the PRIMARY selection to the windows clipboard."
+#define STR_WGL "Native opengl"
+#define STR_WGL_DESC "Use the native windows opengl library (wgl). Make sure to export the LIBGL_ALWAYS_INDIRECT environment variable."
+#define STR_EXTRA_PARAMS_DESC "Additional parameters for VcXsrv"
+
+#define STR_DISABLEAC "Disable access control"
+#define STR_DISABLEAC_DESC "Use this when you want vcxsrv to accept connections from all clients."
+
+#define STR_XDMCP_TERMINATE "Terminate on server reset."
+
+#define STR_CAPTION_FINISH "Finish configuration"
+#define STR_FINISH_DESC "Configuration is complete. Click Finish to start VcXsrv."
+#define STR_FINISH_SAVE_DESC "You may also save the configuration for later use."
+#define STR_FINISH_SAVE "Save configuration"
+
+#define STR_DISPLAY_TITLE "Select display settings"
+#define STR_DISPLAY_SUBTITLE "Choose how VcXsrv display programs"
+#define STR_CLIENTS_TITLE "Select how to start clients"
+#define STR_CLIENTS_SUBTITLE ""
+#define STR_PROGRAM_TITLE "Specify the program to start"
+#define STR_PROGRAM_SUBTITLE ""
+#define STR_XDMCP_TITLE "Configure a remote XDMCP connection"
+#define STR_XDMCP_SUBTITLE ""
+#define STR_FONTPATH_TITLE "Define font locations"
+#define STR_FONTPATH_SUBTITLE ""
+#define STR_FINISH_TITLE "Configuration complete"
+#define STR_FINISH_SUBTITLE ""
+#define STR_EXTRA_TITLE "Extra settings"
+#define STR_EXTRA_SUBTITLE ""
+
+#define STR_SAVE_TITLE "Save configuration"
+#define STR_SAVE_FILETITLE "Filename"
+#define STR_SAVE_FILTER "Xlaunch Files (*.xlaunch)%*.xlaunch%%"
+
+STRINGTABLE
+BEGIN
+ IDS_DISPLAY_TITLE STR_DISPLAY_TITLE
+ IDS_DISPLAY_SUBTITLE STR_DISPLAY_SUBTITLE
+ IDS_CLIENTS_TITLE STR_CLIENTS_TITLE
+ IDS_CLIENTS_SUBTITLE STR_CLIENTS_SUBTITLE
+ IDS_PROGRAM_TITLE STR_PROGRAM_TITLE
+ IDS_PROGRAM_SUBTITLE STR_PROGRAM_SUBTITLE
+ IDS_XDMCP_TITLE STR_XDMCP_TITLE
+ IDS_XDMCP_SUBTITLE STR_XDMCP_SUBTITLE
+ IDS_FONTPATH_TITLE STR_FONTPATH_TITLE
+ IDS_FONTPATH_SUBTITLE STR_FONTPATH_SUBTITLE
+ IDS_FINISH_TITLE STR_FINISH_TITLE
+ IDS_FINISH_SUBTITLE STR_FINISH_SUBTITLE
+ IDS_EXTRA_TITLE STR_EXTRA_TITLE
+ IDS_EXTRA_SUBTITLE STR_EXTRA_SUBTITLE
+ IDS_SAVE_TITLE STR_SAVE_TITLE
+ IDS_SAVE_FILETITLE STR_SAVE_FILETITLE
+ IDS_SAVE_FILTER STR_SAVE_FILTER
+END
diff --git a/xorg-server/hw/xwin/xlaunch/resources/windowed.bmp b/xorg-server/hw/xwin/xlaunch/resources/windowed.bmp
new file mode 100644
index 000000000..9eff2bff9
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/resources/windowed.bmp
Binary files differ
diff --git a/xorg-server/hw/xwin/xlaunch/window/dialog.cc b/xorg-server/hw/xwin/xlaunch/window/dialog.cc
new file mode 100644
index 000000000..76e5c35ac
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/window/dialog.cc
@@ -0,0 +1,86 @@
+/*
+ * Copyright (c) 2005 Alexander Gottwald
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the name(s) of the above copyright
+ * holders shall not be used in advertising or otherwise to promote the sale,
+ * use or other dealings in this Software without prior written authorization.
+ */
+#include <stdio.h>
+#include "dialog.h"
+#include "util.h"
+
+CBaseDialog::CBaseDialog() : CWindow(""), result(0)
+{
+}
+
+CDialog::CDialog(const char *res) : CBaseDialog(), resourcename(res)
+{
+}
+
+HWND CDialog::CreateWindowHandle()
+{
+ HWND ret = CreateDialog(
+ GetModuleHandle(NULL),
+ resourcename.c_str(),
+ NULL,
+ DialogProc);
+ if (ret == NULL)
+ throw win32_error("CreateDialog failed");
+ return ret;
+}
+
+INT_PTR CALLBACK CBaseDialog::DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+ MessageDebug::debug(hwndDlg, uMsg, wParam, lParam, __FUNCTION__);
+ CBaseDialog* dialog = (CDialog*)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
+ if (dialog != NULL)
+ return dialog->DlgDispatch(hwndDlg, uMsg, wParam, lParam);
+ return FALSE;
+}
+
+INT_PTR CBaseDialog::DlgDispatch(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+ switch (uMsg)
+ {
+ case WM_COMMAND:
+ switch (LOWORD(wParam))
+ {
+ case IDOK:
+ case IDCANCEL:
+ result = wParam;
+ EndDialog(hwndDlg, wParam);
+ DestroyWindow(hwndDlg);
+ return TRUE;
+ }
+ break;
+ }
+ return FALSE;
+}
+
+INT_PTR CDialog::DlgDispatch(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+ return CBaseDialog::DlgDispatch(hwndDlg, uMsg, wParam, lParam);
+}
+
+int CBaseDialog::Execute()
+{
+ return CWindow::ShowModal();
+}
diff --git a/xorg-server/hw/xwin/xlaunch/window/dialog.h b/xorg-server/hw/xwin/xlaunch/window/dialog.h
new file mode 100644
index 000000000..073394bb2
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/window/dialog.h
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2005 Alexander Gottwald
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the name(s) of the above copyright
+ * holders shall not be used in advertising or otherwise to promote the sale,
+ * use or other dealings in this Software without prior written authorization.
+ */
+#ifndef __DIALOG_H__
+#define __DIALOG_H__
+
+#include "window.h"
+class CBaseDialog : public CWindow
+{
+ private:
+ int result;
+ protected:
+ static INT_PTR CALLBACK DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
+ virtual INT_PTR DlgDispatch(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
+ public:
+ CBaseDialog();
+ int Execute();
+};
+
+class CDialog : public CBaseDialog
+{
+ private:
+ std::string resourcename;
+ protected:
+ virtual INT_PTR DlgDispatch(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
+ virtual HWND CreateWindowHandle();
+ public:
+ CDialog(const char *res);
+};
+
+
+#endif
diff --git a/xorg-server/hw/xwin/xlaunch/window/makefile b/xorg-server/hw/xwin/xlaunch/window/makefile
new file mode 100644
index 000000000..18a33e728
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/window/makefile
@@ -0,0 +1,4 @@
+CSRCS=dialog.cc util.cc window.cc wizard.cc
+
+LIBRARY = window
+
diff --git a/xorg-server/hw/xwin/xlaunch/window/util.cc b/xorg-server/hw/xwin/xlaunch/window/util.cc
new file mode 100644
index 000000000..6f768348e
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/window/util.cc
@@ -0,0 +1,1114 @@
+/*
+ * Copyright (c) 2005 Alexander Gottwald
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the name(s) of the above copyright
+ * holders shall not be used in advertising or otherwise to promote the sale,
+ * use or other dealings in this Software without prior written authorization.
+ */
+#include "util.h"
+
+const char * MessageDebug::notify_names[NOTIFY_NAMES_LEN];
+
+std::string win32_error::message(DWORD errorcode)
+{
+ LPVOID lpMsgBuf;
+ if (!FormatMessage(
+ FORMAT_MESSAGE_ALLOCATE_BUFFER |
+ FORMAT_MESSAGE_FROM_SYSTEM |
+ FORMAT_MESSAGE_IGNORE_INSERTS,
+ NULL,
+ errorcode,
+ MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
+ (LPTSTR) &lpMsgBuf,
+ 0,
+ NULL ))
+ {
+ return "Unknown error in FormatMessage";
+ }
+
+ std::string ret((LPCTSTR)lpMsgBuf);
+ LocalFree( lpMsgBuf );
+ return ret;
+}
+
+void MessageDebug::debug(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam, const char *prefix)
+{
+#ifdef _DEBUG
+ static const char *psn_notify[] = {
+ "PSN_SETACTIVE",
+ "PSN_KILLACTIVE",
+ "PSN_APPLY",
+ "PSN_RESET",
+ NULL,
+ "PSN_HELP",
+ "PSN_WIZBACK",
+ "PSN_WIZNEXT",
+ "PSN_WIZFINISH",
+ "PSN_QUERYCANCEL" };
+ if (uMsg == WM_NOTIFY)
+ {
+ LPNMHDR pnmh = (LPNMHDR)lParam;
+ int psn_index = -(int)pnmh->code - 200;
+ if (psn_index >= 0 && psn_index < 10 && psn_notify[psn_index])
+ printf("%s: %08x %04x WM_NOTIFY (%s)\n", prefix, hwnd, wParam, psn_notify[psn_index]);
+ else if (pnmh->code < NOTIFY_NAMES_LEN && notify_names[pnmh->code])
+ printf("%s: %08x %04x WM_NOTIFY (%s)\n", prefix, hwnd, wParam, notify_names[pnmh->code]);
+ else
+ printf("%s: %08x %04x WM_NOTIFY (%u)\n", prefix, hwnd, wParam, pnmh->code);
+ }
+ else if (uMsg >= MESSAGE_NAMES_LEN)
+ if (uMsg >= WM_USER)
+ printf("%s: %08x %04x %08x WM_USER + %d\n", prefix, hwnd, wParam, lParam, uMsg - WM_USER);
+ else
+ printf("%s: %08x %04x %08x %d\n", prefix, hwnd, wParam, lParam, uMsg);
+ else if (uMsg >= 0 && uMsg < MESSAGE_NAMES_LEN && message_names[uMsg])
+ printf("%s: %08x %04x %08x %s\n", prefix, hwnd, wParam, lParam, message_names[uMsg]);
+#endif
+}
+
+
+const char * MessageDebug::message_names[MESSAGE_NAMES_LEN] = {
+ "WM_NULL",
+ "WM_CREATE",
+ "WM_DESTROY",
+ "WM_MOVE",
+ "4",
+ "WM_SIZE",
+ "WM_ACTIVATE",
+ "WM_SETFOCUS",
+ "WM_KILLFOCUS",
+ "9",
+ "WM_ENABLE",
+ "WM_SETREDRAW",
+ "WM_SETTEXT",
+ "WM_GETTEXT",
+ "WM_GETTEXTLENGTH",
+ "WM_PAINT",
+ "WM_CLOSE",
+ "WM_QUERYENDSESSION",
+ "WM_QUIT",
+ "WM_QUERYOPEN",
+ "WM_ERASEBKGND",
+ "WM_SYSCOLORCHANGE",
+ "WM_ENDSESSION",
+ "23",
+ "WM_SHOWWINDOW",
+ "25",
+ "WM_WININICHANGE",
+ "WM_DEVMODECHANGE",
+ "WM_ACTIVATEAPP",
+ "WM_FONTCHANGE",
+ "WM_TIMECHANGE",
+ "WM_CANCELMODE",
+ NULL /* WM_SETCURSOR */,
+ "WM_MOUSEACTIVATE",
+ "WM_CHILDACTIVATE",
+ "WM_QUEUESYNC",
+ "WM_GETMINMAXINFO",
+ "37",
+ "WM_PAINTICON",
+ "WM_ICONERASEBKGND",
+ "WM_NEXTDLGCTL",
+ "41",
+ "WM_SPOOLERSTATUS",
+ "WM_DRAWITEM",
+ "WM_MEASUREITEM",
+ "WM_DELETEITEM",
+ "WM_VKEYTOITEM",
+ "WM_CHARTOITEM",
+ "WM_SETFONT",
+ "WM_GETFONT",
+ "WM_SETHOTKEY",
+ "WM_GETHOTKEY",
+ "52",
+ "53",
+ "54",
+ "WM_QUERYDRAGICON",
+ "56",
+ "WM_COMPAREITEM",
+ "58",
+ "59",
+ "60",
+ "61",
+ "62",
+ "63",
+ "64",
+ "WM_COMPACTING",
+ "66",
+ "67",
+ "WM_COMMNOTIFY",
+ "69",
+ "WM_WINDOWPOSCHANGING",
+ "WM_WINDOWPOSCHANGED",
+ "WM_POWER",
+ "73",
+ "WM_COPYDATA",
+ "WM_CANCELJOURNAL",
+ "76",
+ "77",
+ "WM_NOTIFY",
+ "79",
+ "WM_INPUTLANGCHANGEREQUEST",
+ "WM_INPUTLANGCHANGE",
+ "WM_TCARD",
+ "WM_HELP",
+ "WM_USERCHANGED",
+ "WM_NOTIFYFORMAT",
+ "86",
+ "87",
+ "88",
+ "89",
+ "90",
+ "91",
+ "92",
+ "93",
+ "94",
+ "95",
+ "96",
+ "97",
+ "98",
+ "99",
+ "100",
+ "101",
+ "102",
+ "103",
+ "104",
+ "105",
+ "106",
+ "107",
+ "108",
+ "109",
+ "110",
+ "111",
+ "112",
+ "113",
+ "114",
+ "115",
+ "116",
+ "117",
+ "118",
+ "119",
+ "120",
+ "121",
+ "122",
+ "WM_CONTEXTMENU",
+ "WM_STYLECHANGING",
+ "WM_STYLECHANGED",
+ "WM_DISPLAYCHANGE",
+ "WM_GETICON",
+ "WM_SETICON",
+ "WM_NCCREATE",
+ "WM_NCDESTROY",
+ "WM_NCCALCSIZE",
+ NULL /* WM_NCHITTEST */,
+ "WM_NCPAINT",
+ "WM_NCACTIVATE",
+ "WM_GETDLGCODE",
+ "WM_SYNCPAINT",
+ "137",
+ "138",
+ "139",
+ "140",
+ "141",
+ "142",
+ "143",
+ "144",
+ "145",
+ "146",
+ "147",
+ "148",
+ "149",
+ "150",
+ "151",
+ "152",
+ "153",
+ "154",
+ "155",
+ "156",
+ "157",
+ "158",
+ "159",
+ NULL /* WM_NCMOUSEMOVE */,
+ "WM_NCLBUTTONDOWN",
+ "WM_NCLBUTTONUP",
+ "WM_NCLBUTTONDBLCLK",
+ "WM_NCRBUTTONDOWN",
+ "WM_NCRBUTTONUP",
+ "WM_NCRBUTTONDBLCLK",
+ "WM_NCMBUTTONDOWN",
+ "WM_NCMBUTTONUP",
+ "WM_NCMBUTTONDBLCLK",
+ "170",
+ "171",
+ "172",
+ "173",
+ "174",
+ "175",
+ "176",
+ "177",
+ "178",
+ "179",
+ "180",
+ "181",
+ "182",
+ "183",
+ "184",
+ "185",
+ "186",
+ "187",
+ "188",
+ "189",
+ "190",
+ "191",
+ "192",
+ "193",
+ "194",
+ "195",
+ "196",
+ "197",
+ "198",
+ "199",
+ "200",
+ "201",
+ "202",
+ "203",
+ "204",
+ "205",
+ "206",
+ "207",
+ "208",
+ "209",
+ "210",
+ "211",
+ "212",
+ "213",
+ "214",
+ "215",
+ "216",
+ "217",
+ "218",
+ "219",
+ "220",
+ "221",
+ "222",
+ "223",
+ "224",
+ "225",
+ "226",
+ "227",
+ "228",
+ "229",
+ "230",
+ "231",
+ "232",
+ "233",
+ "234",
+ "235",
+ "236",
+ "237",
+ "238",
+ "239",
+ "240",
+ "241",
+ "242",
+ "243",
+ "244",
+ "245",
+ "246",
+ "247",
+ "248",
+ "249",
+ "250",
+ "251",
+ "252",
+ "253",
+ "254",
+ "255",
+ "WM_KEYDOWN",
+ "WM_KEYUP",
+ "WM_CHAR",
+ "WM_DEADCHAR",
+ "WM_SYSKEYDOWN",
+ "WM_SYSKEYUP",
+ "WM_SYSCHAR",
+ "WM_SYSDEADCHAR",
+ "WM_CONVERTREQUESTEX",
+ "265",
+ "266",
+ "267",
+ "268",
+ "WM_IME_STARTCOMPOSITION",
+ "WM_IME_ENDCOMPOSITION",
+ "WM_IME_KEYLAST",
+ "WM_INITDIALOG",
+ "WM_COMMAND",
+ "WM_SYSCOMMAND",
+ NULL /* WM_TIMER */,
+ "WM_HSCROLL",
+ "WM_VSCROLL",
+ "WM_INITMENU",
+ "WM_INITMENUPOPUP",
+ "280",
+ "281",
+ "282",
+ "283",
+ "284",
+ "285",
+ "286",
+ "WM_MENUSELECT",
+ "WM_MENUCHAR",
+ "WM_ENTERIDLE",
+ "290",
+ "291",
+ "292",
+ "293",
+ "294",
+ "295",
+ "296",
+ "297",
+ "298",
+ "299",
+ "300",
+ "301",
+ "302",
+ "303",
+ "304",
+ "305",
+ "WM_CTLCOLORMSGBOX",
+ "WM_CTLCOLOREDIT",
+ "WM_CTLCOLORLISTBOX",
+ "WM_CTLCOLORBTN",
+ "WM_CTLCOLORDLG",
+ "WM_CTLCOLORSCROLLBAR",
+ "WM_CTLCOLORSTATIC",
+ "313",
+ "314",
+ "315",
+ "316",
+ "317",
+ "318",
+ "319",
+ "320",
+ "321",
+ "322",
+ "323",
+ "324",
+ "325",
+ "326",
+ "327",
+ "328",
+ "329",
+ "330",
+ "331",
+ "332",
+ "333",
+ "334",
+ "335",
+ "336",
+ "337",
+ "338",
+ "339",
+ "340",
+ "341",
+ "342",
+ "343",
+ "344",
+ "345",
+ "346",
+ "347",
+ "348",
+ "349",
+ "350",
+ "351",
+ "352",
+ "353",
+ "354",
+ "355",
+ "356",
+ "357",
+ "358",
+ "359",
+ "360",
+ "361",
+ "362",
+ "363",
+ "364",
+ "365",
+ "366",
+ "367",
+ "368",
+ "369",
+ "370",
+ "371",
+ "372",
+ "373",
+ "374",
+ "375",
+ "376",
+ "377",
+ "378",
+ "379",
+ "380",
+ "381",
+ "382",
+ "383",
+ "384",
+ "385",
+ "386",
+ "387",
+ "388",
+ "389",
+ "390",
+ "391",
+ "392",
+ "393",
+ "394",
+ "395",
+ "396",
+ "397",
+ "398",
+ "399",
+ "400",
+ "401",
+ "402",
+ "403",
+ "404",
+ "405",
+ "406",
+ "407",
+ "408",
+ "409",
+ "410",
+ "411",
+ "412",
+ "413",
+ "414",
+ "415",
+ "416",
+ "417",
+ "418",
+ "419",
+ "420",
+ "421",
+ "422",
+ "423",
+ "424",
+ "425",
+ "426",
+ "427",
+ "428",
+ "429",
+ "430",
+ "431",
+ "432",
+ "433",
+ "434",
+ "435",
+ "436",
+ "437",
+ "438",
+ "439",
+ "440",
+ "441",
+ "442",
+ "443",
+ "444",
+ "445",
+ "446",
+ "447",
+ "448",
+ "449",
+ "450",
+ "451",
+ "452",
+ "453",
+ "454",
+ "455",
+ "456",
+ "457",
+ "458",
+ "459",
+ "460",
+ "461",
+ "462",
+ "463",
+ "464",
+ "465",
+ "466",
+ "467",
+ "468",
+ "469",
+ "470",
+ "471",
+ "472",
+ "473",
+ "474",
+ "475",
+ "476",
+ "477",
+ "478",
+ "479",
+ "480",
+ "481",
+ "482",
+ "483",
+ "484",
+ "485",
+ "486",
+ "487",
+ "488",
+ "489",
+ "490",
+ "491",
+ "492",
+ "493",
+ "494",
+ "495",
+ "496",
+ "497",
+ "498",
+ "499",
+ "500",
+ "501",
+ "502",
+ "503",
+ "504",
+ "505",
+ "506",
+ "507",
+ "508",
+ "509",
+ "510",
+ "511",
+ NULL /* WM_MOUSEMOVE */,
+ "WM_LBUTTONDOWN",
+ "WM_LBUTTONUP",
+ "WM_LBUTTONDBLCLK",
+ "WM_RBUTTONDOWN",
+ "WM_RBUTTONUP",
+ "WM_RBUTTONDBLCLK",
+ "WM_MBUTTONDOWN",
+ "WM_MBUTTONUP",
+ "WM_MBUTTONDBLCLK",
+ "WM_MOUSEWHEEL",
+ "WM_XBUTTONDOWN",
+ "WM_XBUTTONUP",
+ "WM_XBUTTONDBLCLK",
+ "526",
+ "527",
+ "WM_PARENTNOTIFY",
+ "WM_ENTERMENULOOP",
+ "WM_EXITMENULOOP",
+ "WM_NEXTMENU",
+ "WM_SIZING",
+ "WM_CAPTURECHANGED",
+ "WM_MOVING",
+ "535",
+ "WM_POWERBROADCAST",
+ "WM_DEVICECHANGE",
+ "538",
+ "539",
+ "540",
+ "541",
+ "542",
+ "543",
+ "WM_MDICREATE",
+ "WM_MDIDESTROY",
+ "WM_MDIACTIVATE",
+ "WM_MDIRESTORE",
+ "WM_MDINEXT",
+ "WM_MDIMAXIMIZE",
+ "WM_MDITILE",
+ "WM_MDICASCADE",
+ "WM_MDIICONARRANGE",
+ "WM_MDIGETACTIVE",
+ "554",
+ "555",
+ "556",
+ "557",
+ "558",
+ "559",
+ "WM_MDISETMENU",
+ "WM_ENTERSIZEMOVE",
+ "WM_EXITSIZEMOVE",
+ "WM_DROPFILES",
+ "WM_MDIREFRESHMENU",
+ "565",
+ "566",
+ "567",
+ "568",
+ "569",
+ "570",
+ "571",
+ "572",
+ "573",
+ "574",
+ "575",
+ "576",
+ "577",
+ "578",
+ "579",
+ "580",
+ "581",
+ "582",
+ "583",
+ "584",
+ "585",
+ "586",
+ "587",
+ "588",
+ "589",
+ "590",
+ "591",
+ "592",
+ "593",
+ "594",
+ "595",
+ "596",
+ "597",
+ "598",
+ "599",
+ "600",
+ "601",
+ "602",
+ "603",
+ "604",
+ "605",
+ "606",
+ "607",
+ "608",
+ "609",
+ "610",
+ "611",
+ "612",
+ "613",
+ "614",
+ "615",
+ "616",
+ "617",
+ "618",
+ "619",
+ "620",
+ "621",
+ "622",
+ "623",
+ "624",
+ "625",
+ "626",
+ "627",
+ "628",
+ "629",
+ "630",
+ "631",
+ "632",
+ "633",
+ "634",
+ "635",
+ "636",
+ "637",
+ "638",
+ "639",
+ "640",
+ "WM_IME_SETCONTEXT",
+ "WM_IME_NOTIFY",
+ "WM_IME_CONTROL",
+ "WM_IME_COMPOSITIONFULL",
+ "WM_IME_SELECT",
+ "WM_IME_CHAR",
+ "647",
+ "648",
+ "649",
+ "650",
+ "651",
+ "652",
+ "653",
+ "654",
+ "655",
+ "WM_IME_KEYDOWN",
+ "WM_IME_KEYUP",
+ "658",
+ "659",
+ "660",
+ "661",
+ "662",
+ "663",
+ "664",
+ "665",
+ "666",
+ "667",
+ "668",
+ "669",
+ "670",
+ "671",
+ "672",
+ "WM_MOUSEHOVER",
+ "674",
+ "WM_MOUSELEAVE",
+ "676",
+ "677",
+ "678",
+ "679",
+ "680",
+ "681",
+ "682",
+ "683",
+ "684",
+ "685",
+ "686",
+ "687",
+ "688",
+ "689",
+ "690",
+ "691",
+ "692",
+ "693",
+ "694",
+ "695",
+ "696",
+ "697",
+ "698",
+ "699",
+ "700",
+ "701",
+ "702",
+ "703",
+ "704",
+ "705",
+ "706",
+ "707",
+ "708",
+ "709",
+ "710",
+ "711",
+ "712",
+ "713",
+ "714",
+ "715",
+ "716",
+ "717",
+ "718",
+ "719",
+ "720",
+ "721",
+ "722",
+ "723",
+ "724",
+ "725",
+ "726",
+ "727",
+ "728",
+ "729",
+ "730",
+ "731",
+ "732",
+ "733",
+ "734",
+ "735",
+ "736",
+ "737",
+ "738",
+ "739",
+ "740",
+ "741",
+ "742",
+ "743",
+ "744",
+ "745",
+ "746",
+ "747",
+ "748",
+ "749",
+ "750",
+ "751",
+ "752",
+ "753",
+ "754",
+ "755",
+ "756",
+ "757",
+ "758",
+ "759",
+ "760",
+ "761",
+ "762",
+ "763",
+ "764",
+ "765",
+ "766",
+ "767",
+ "WM_CUT",
+ "WM_COPY",
+ "WM_PASTE",
+ "WM_CLEAR",
+ "WM_UNDO",
+ "WM_RENDERFORMAT",
+ "WM_RENDERALLFORMATS",
+ "WM_DESTROYCLIPBOARD",
+ "WM_DRAWCLIPBOARD",
+ "WM_PAINTCLIPBOARD",
+ "WM_VSCROLLCLIPBOARD",
+ "WM_SIZECLIPBOARD",
+ "WM_ASKCBFORMATNAME",
+ "WM_CHANGECBCHAIN",
+ "WM_HSCROLLCLIPBOARD",
+ "WM_QUERYNEWPALETTE",
+ "WM_PALETTEISCHANGING",
+ "WM_PALETTECHANGED",
+ "WM_HOTKEY",
+ "787",
+ "788",
+ "789",
+ "790",
+ "WM_PRINT",
+ "WM_PRINTCLIENT",
+ "793",
+ "794",
+ "795",
+ "796",
+ "797",
+ "798",
+ "799",
+ "800",
+ "801",
+ "802",
+ "803",
+ "804",
+ "805",
+ "806",
+ "807",
+ "808",
+ "809",
+ "810",
+ "811",
+ "812",
+ "813",
+ "814",
+ "815",
+ "816",
+ "817",
+ "818",
+ "819",
+ "820",
+ "821",
+ "822",
+ "823",
+ "824",
+ "825",
+ "826",
+ "827",
+ "828",
+ "829",
+ "830",
+ "831",
+ "832",
+ "833",
+ "834",
+ "835",
+ "836",
+ "837",
+ "838",
+ "839",
+ "840",
+ "841",
+ "842",
+ "843",
+ "844",
+ "845",
+ "846",
+ "847",
+ "848",
+ "849",
+ "850",
+ "851",
+ "852",
+ "853",
+ "854",
+ "855",
+ "856",
+ "857",
+ "858",
+ "859",
+ "860",
+ "861",
+ "862",
+ "863",
+ "864",
+ "865",
+ "866",
+ "867",
+ "868",
+ "869",
+ "870",
+ "871",
+ "872",
+ "873",
+ "874",
+ "875",
+ "876",
+ "877",
+ "878",
+ "879",
+ "880",
+ "881",
+ "882",
+ "883",
+ "884",
+ "885",
+ "886",
+ "887",
+ "888",
+ "889",
+ "890",
+ "891",
+ "892",
+ "893",
+ "894",
+ "895",
+ "896",
+ "897",
+ "898",
+ "899",
+ "900",
+ "901",
+ "902",
+ "903",
+ "904",
+ "905",
+ "906",
+ "907",
+ "908",
+ "909",
+ "910",
+ "911",
+ "912",
+ "913",
+ "914",
+ "915",
+ "916",
+ "917",
+ "918",
+ "919",
+ "920",
+ "921",
+ "922",
+ "923",
+ "924",
+ "925",
+ "926",
+ "927",
+ "928",
+ "929",
+ "930",
+ "931",
+ "932",
+ "933",
+ "934",
+ "935",
+ "936",
+ "937",
+ "938",
+ "939",
+ "940",
+ "941",
+ "942",
+ "943",
+ "944",
+ "945",
+ "946",
+ "947",
+ "948",
+ "949",
+ "950",
+ "951",
+ "952",
+ "953",
+ "954",
+ "955",
+ "956",
+ "957",
+ "958",
+ "959",
+ "960",
+ "961",
+ "962",
+ "963",
+ "964",
+ "965",
+ "966",
+ "967",
+ "968",
+ "969",
+ "970",
+ "971",
+ "972",
+ "973",
+ "974",
+ "975",
+ "976",
+ "977",
+ "978",
+ "979",
+ "980",
+ "981",
+ "982",
+ "983",
+ "984",
+ "985",
+ "986",
+ "987",
+ "988",
+ "989",
+ "990",
+ "991",
+ "992",
+ "993",
+ "994",
+ "995",
+ "996",
+ "997",
+ "998",
+ "999",
+ "1000",
+ "1001",
+ "1002",
+ "1003",
+ "1004",
+ "1005",
+ "1006",
+ "1007",
+ "1008",
+ "1009",
+ "1010",
+ "1011",
+ "1012",
+ "1013",
+ "1014",
+ "1015",
+ "1016",
+ "1017",
+ "1018",
+ "1019",
+ "1020",
+ "1021",
+ "1022",
+ "1023"
+};
+
diff --git a/xorg-server/hw/xwin/xlaunch/window/util.h b/xorg-server/hw/xwin/xlaunch/window/util.h
new file mode 100644
index 000000000..a1196b115
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/window/util.h
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2005 Alexander Gottwald
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the name(s) of the above copyright
+ * holders shall not be used in advertising or otherwise to promote the sale,
+ * use or other dealings in this Software without prior written authorization.
+ */
+#ifndef __UTIL_H__
+#define __UTIL_H__
+
+#include <windows.h>
+#include <stdexcept>
+#include <string>
+
+class win32_error : public std::runtime_error
+{
+ public:
+ static std::string message(DWORD code);
+ DWORD errorcode;
+ win32_error(const std::string &msg,DWORD code = GetLastError()) : std::runtime_error(msg + ":" + message(code)), errorcode(code) {};
+};
+
+#define MESSAGE_NAMES_LEN 1024
+#define NOTIFY_NAMES_LEN 1
+class MessageDebug
+{
+ protected:
+ static const char * message_names[MESSAGE_NAMES_LEN];
+ static const char * notify_names[NOTIFY_NAMES_LEN];
+ public:
+ static void debug(HWND handle, UINT uMsg, WPARAM wParam, LPARAM lParam, const char *prefix);
+};
+
+
+#endif
diff --git a/xorg-server/hw/xwin/xlaunch/window/window.cc b/xorg-server/hw/xwin/xlaunch/window/window.cc
new file mode 100644
index 000000000..cca3a485a
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/window/window.cc
@@ -0,0 +1,284 @@
+/*
+ * Copyright (c) 2005 Alexander Gottwald
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the name(s) of the above copyright
+ * holders shall not be used in advertising or otherwise to promote the sale,
+ * use or other dealings in this Software without prior written authorization.
+ */
+
+#include "window.h"
+#include "util.h"
+#include <stdio.h>
+#include <stdexcept>
+
+CWindow::CWindowClass CWindow::windowClass("CWINDOWCLASS", DefWindowProc);
+
+CWindow::CWindowClass::CWindowClass(const char *_name, WNDPROC _wndproc) :
+ wndproc(_wndproc), atom(0), classname(_name)
+{
+ Register();
+}
+
+CWindow::CWindowClass::~CWindowClass()
+{
+ UnregisterClass(classname.c_str(), GetModuleHandle(NULL));
+}
+
+void CWindow::CWindowClass::Register()
+{
+ WNDCLASSEX wndclass;
+ memset(&wndclass, 0, sizeof(wndclass));
+ wndclass.cbSize = sizeof(wndclass);
+ wndclass.style = 0;
+ wndclass.lpfnWndProc = wndproc;
+ wndclass.cbClsExtra = 0;
+ wndclass.cbWndExtra = 0;
+ wndclass.hInstance = GetModuleHandle(NULL);
+ wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
+ wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);
+ wndclass.hbrBackground = (HBRUSH)(1 + COLOR_BTNFACE);
+ wndclass.lpszMenuName = NULL;
+ wndclass.lpszClassName = classname.c_str();
+ wndclass.hIconSm = NULL;
+ atom = RegisterClassEx(&wndclass);
+ if (atom == 0)
+ throw win32_error("RegisterClassEx failed");
+}
+
+CWindow::CWindow(const char *_title) : title(_title), hwnd(NULL), parent(NULL), bounds(), owndproc(NULL), showing(FALSE)
+{
+ style = WS_CHILD;
+ exstyle = 0;
+}
+
+HWND CWindow::CreateWindowHandle()
+{
+ HWND ret = CreateWindowEx(
+ exstyle,
+ GetClassName(),
+ title.c_str(),
+ style,
+ bounds.left,
+ bounds.top,
+ bounds.width,
+ bounds.height,
+ parent,
+ NULL,
+ GetModuleHandle(NULL),
+ 0
+ );
+ if (ret == NULL)
+ throw win32_error("CreateWindowEx failed");
+ return ret;
+}
+
+void CWindow::Create()
+{
+ if (hwnd != NULL)
+ return;
+ hwnd = CreateWindowHandle();
+ if (hwnd == NULL)
+ throw win32_error("Could not create window");
+
+ // Reset the error code
+ DWORD err = 0;
+ SetLastError(err);
+
+ // Attach the object reference to the window handle
+ SetWindowLongPtr(hwnd, GWLP_USERDATA, (LONG_PTR)this);
+ err = GetLastError();
+ if (err != 0)
+ throw win32_error("SetWindowLongPtr failed",err);
+
+ // Set the window proc
+ owndproc = (WNDPROC)SetWindowLongPtr(hwnd, GWLP_WNDPROC, (LONG_PTR)WindowProc);
+ err = GetLastError();
+ if (err != 0)
+ throw win32_error("SetWindowLongPtr failed",err);
+}
+
+const char *CWindow::GetClassName()
+{
+ return windowClass.GetClassName();
+}
+
+LRESULT CALLBACK CWindow::WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+ MessageDebug::debug(hwnd, uMsg, wParam, lParam, __FUNCTION__);
+ CWindow* window = (CWindow*)GetWindowLongPtr(hwnd, GWLP_USERDATA);
+ if (window != NULL)
+ return window->Dispatch(hwnd, uMsg, wParam, lParam);
+ return DefWindowProc(hwnd, uMsg, wParam, lParam);
+}
+
+LRESULT CWindow::Dispatch(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+ switch (uMsg)
+ {
+ case WM_SIZE:
+ bounds.width = LOWORD(lParam);
+ bounds.height = LOWORD(lParam);
+ break;
+ case WM_MOVE:
+ bounds.left = LOWORD(lParam);
+ bounds.top = LOWORD(lParam);
+ break;
+ case WM_DESTROY:
+ showing = FALSE;
+ break;
+ }
+ if (owndproc)
+ return CallWindowProc(owndproc, hwnd, uMsg, wParam, lParam);
+ else
+ return DefWindowProc(hwnd, uMsg, wParam, lParam);
+}
+
+void CWindow::Show()
+{
+ if (hwnd == NULL)
+ Create();
+ ShowWindow(hwnd, SW_SHOWNORMAL);
+}
+
+int CWindow::ShowModal()
+{
+ MSG msg;
+ BOOL bRet;
+ showing = TRUE;
+ Show();
+
+ while( showing && (bRet = GetMessage( &msg, NULL, 0, 0 )) != 0)
+ {
+ if (bRet == -1)
+ {
+ // handle the error and possibly exit
+ }
+ else
+ {
+ TranslateMessage(&msg);
+ DispatchMessage(&msg);
+ }
+ }
+ return 0;
+}
+
+void CWindow::SetLeft(int left)
+{
+ bounds.left = left;
+ if (hwnd)
+ if (!SetWindowPos(hwnd, NULL,
+ bounds.left, bounds.top,
+ 0, 0,
+ SWP_NOZORDER | SWP_NOSIZE))
+ throw win32_error("SetWindowPos failed");
+}
+
+void CWindow::SetTop(int top)
+{
+ bounds.top = top;
+ if (hwnd)
+ if (!SetWindowPos(hwnd, NULL,
+ bounds.left, bounds.top,
+ 0, 0,
+ SWP_NOZORDER | SWP_NOSIZE))
+ throw win32_error("SetWindowPos failed");
+}
+
+void CWindow::SetWidth(int width)
+{
+ bounds.width = width;
+ if (hwnd)
+ if (!SetWindowPos(hwnd, NULL,
+ 0, 0,
+ bounds.width, bounds.height,
+ SWP_NOZORDER | SWP_NOMOVE))
+ throw win32_error("SetWindowPos failed");
+}
+void CWindow::SetHeight(int height)
+{
+ bounds.height = height;
+ if (hwnd)
+ if (!SetWindowPos(hwnd, NULL,
+ 0, 0,
+ bounds.width, bounds.height,
+ SWP_NOZORDER | SWP_NOMOVE))
+ throw win32_error("SetWindowPos failed");
+}
+
+void CWindow::SetBounds(int left, int top, int width, int height)
+{
+ bounds = CBoundary(left, top, width, height);
+ if (hwnd)
+ if (!SetWindowPos(hwnd, NULL,
+ bounds.left, bounds.top,
+ bounds.width, bounds.height,
+ SWP_NOZORDER))
+ throw win32_error("SetWindowPos failed");
+}
+
+void CWindow::SetBounds(const RECT &rect)
+{
+ bounds = rect;
+ if (hwnd)
+ if (!SetWindowPos(hwnd, NULL,
+ bounds.left, bounds.top,
+ bounds.width, bounds.height,
+ SWP_NOZORDER))
+ throw win32_error("SetWindowPos failed");
+}
+
+HWND CWindow::GetHandle()
+{
+ if (hwnd == NULL)
+ Create();
+ return hwnd;
+}
+
+void CWindow::SetParent(CWindow *window)
+{
+ parent = window->GetHandle();
+ if (hwnd != NULL)
+ if (::SetParent(hwnd, parent) == NULL)
+ throw win32_error("SetParent failed");
+
+}
+
+void CWindow::SetStyle(DWORD style)
+{
+ this->style = style;
+ SetLastError(0);
+ if (hwnd)
+ SetWindowLong(hwnd, GWL_STYLE, style);
+ int err = GetLastError();
+ if (err != 0)
+ throw win32_error("SetWindowLong failed", err);
+}
+
+void CWindow::SetExStyle(DWORD exstyle)
+{
+ this->exstyle = exstyle;
+ SetLastError(0);
+ if (hwnd)
+ SetWindowLong(hwnd, GWL_EXSTYLE, exstyle);
+ int err = GetLastError();
+ if (err != 0)
+ throw win32_error("SetWindowWLong failed", err);
+}
diff --git a/xorg-server/hw/xwin/xlaunch/window/window.h b/xorg-server/hw/xwin/xlaunch/window/window.h
new file mode 100644
index 000000000..baf401405
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/window/window.h
@@ -0,0 +1,114 @@
+/*
+ * Copyright (c) 2005 Alexander Gottwald
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the name(s) of the above copyright
+ * holders shall not be used in advertising or otherwise to promote the sale,
+ * use or other dealings in this Software without prior written authorization.
+ */
+#ifndef __WINDOW_H__
+#define __WINDOW_H__
+
+#include <windows.h>
+#include <string>
+
+class CDialog;
+class CWindow
+{
+ friend class CDialog;
+ public:
+ struct CBoundary
+ {
+ int left;
+ int top;
+ int width;
+ int height;
+ CBoundary() :
+ left(0), top(0), width(0), height(0) {};
+ CBoundary(int x, int y, int w, int h) :
+ left(x), top(y), width(w), height(h) {};
+ CBoundary(const RECT &r) :
+ left(r.left), top(r.top), width(r.right-r.left), height(r.bottom-r.top) {};
+ };
+ class CWindowClass
+ {
+ private:
+ WNDPROC wndproc;
+ ATOM atom;
+ std::string classname;
+ protected:
+ void Register();
+ public:
+ CWindowClass(const char *name, WNDPROC wndproc);
+ ~CWindowClass();
+ const char *GetClassName() { return classname.c_str(); };
+ };
+ private:
+ static CWindowClass windowClass;
+
+ std::string title;
+ DWORD exstyle;
+ DWORD style;
+ CBoundary bounds;
+ HWND hwnd;
+ HWND parent;
+ WNDPROC owndproc;
+
+ BOOL showing;
+
+ protected:
+
+ virtual const char *GetClassName();
+ virtual HWND CreateWindowHandle();
+ static LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
+ public:
+ CWindow(const char *title);
+ virtual void Create();
+
+ virtual int ShowModal();
+
+ void Show();
+ void Hide();
+
+ void SetWidth(int width);
+ void SetHeight(int height);
+ void SetLeft(int left);
+ void SetTop(int top);
+ int GetWidth() { return bounds.width; };
+ int GetHeight() { return bounds.height; };
+ int GetLeft() { return bounds.left; };
+ int GetTop() { return bounds.top; };
+
+ void SetBounds(int left, int top, int width, int height);
+ void SetBounds(const RECT &rect);
+
+ void SetStyle(DWORD style);
+ DWORD GetStyle() { return style; };
+
+ void SetExStyle(DWORD exstyle);
+ DWORD GetExStyle() { return exstyle; };
+
+ HWND GetHandle();
+ void SetParent(CWindow *window);
+
+ virtual LRESULT Dispatch(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
+};
+
+#endif
diff --git a/xorg-server/hw/xwin/xlaunch/window/wizard.cc b/xorg-server/hw/xwin/xlaunch/window/wizard.cc
new file mode 100644
index 000000000..9d6c71193
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/window/wizard.cc
@@ -0,0 +1,244 @@
+/*
+ * Copyright (c) 2005 Alexander Gottwald
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the name(s) of the above copyright
+ * holders shall not be used in advertising or otherwise to promote the sale,
+ * use or other dealings in this Software without prior written authorization.
+ */
+#include "wizard.h"
+#include "util.h"
+
+CWizard::CWizard() : pages()
+{
+};
+
+void CWizard::AddPage(const PROPSHEETPAGE &page)
+{
+ pages.push_back(page);
+}
+
+void CWizard::AddPage(const char *page, HINSTANCE instance)
+{
+ PROPSHEETPAGE psp;
+ if (instance == NULL)
+ instance = GetModuleHandle(NULL);
+
+ memset(&psp, 0, sizeof(psp));
+ psp.dwSize = sizeof(PROPSHEETPAGE);
+ psp.dwFlags = PSP_DEFAULT;
+ psp.hInstance = instance;
+ psp.pszTemplate = page;
+ psp.pfnDlgProc = WizardDialogProc;
+ psp.lParam = (LPARAM)this;
+
+ AddPage(psp);
+}
+
+void CWizard::AddPage(DWORD id, DWORD title, DWORD subtitle, HINSTANCE instance)
+{
+ PROPSHEETPAGE psp;
+ if (instance == NULL)
+ instance = GetModuleHandle(NULL);
+
+ memset(&psp, 0, sizeof(psp));
+ psp.dwSize = sizeof(PROPSHEETPAGE);
+ psp.dwFlags = PSP_DEFAULT;
+#if _WIN32_IE >= 0x0500
+ if (title != 0)
+ {
+ psp.dwFlags |= PSP_USEHEADERTITLE;
+ psp.pszHeaderTitle = MAKEINTRESOURCE(title);
+ }
+ if (subtitle != 0)
+ {
+ psp.dwFlags |= PSP_USEHEADERSUBTITLE;
+ psp.pszHeaderSubTitle = MAKEINTRESOURCE(subtitle);
+ }
+#endif
+
+ psp.hInstance = instance;
+ psp.pszTemplate = MAKEINTRESOURCE(id);
+ psp.pfnDlgProc = WizardDialogProc;
+ psp.lParam = (LPARAM)this;
+
+ AddPage(psp);
+}
+
+HWND CWizard::CreateWindowHandle()
+{
+ PROPSHEETHEADER psh;
+ HWND ret;
+
+ PrepareSheetHeader(psh, FALSE);
+ ret = (HWND)PropertySheet(&psh);
+ free(psh.phpage);
+ if (ret == NULL)
+ throw win32_error("PropertySheet failed");
+ return ret;
+}
+
+int CWizard::ShowModal()
+{
+ PROPSHEETHEADER psh;
+ int ret;
+
+ PrepareSheetHeader(psh, TRUE);
+ ret = PropertySheet(&psh);
+ free(psh.phpage);
+ return ret;
+}
+
+void CWizard::PrepareSheetHeader(PROPSHEETHEADER &psh, BOOL modal)
+{
+ HPROPSHEETPAGE *phpage = (HPROPSHEETPAGE*)malloc(pages.size() * sizeof(HPROPSHEETPAGE));
+ DWORD modeflag;
+
+ if (modal)
+ modeflag = 0;
+ else
+ modeflag = PSH_MODELESS;
+
+ for (unsigned i = 0; i < pages.size(); i++)
+ {
+ phpage[i] = CreatePropertySheetPage(&pages[i]);
+ if (phpage[i] == NULL)
+ {
+ DWORD err = GetLastError();
+ free(phpage);
+ throw win32_error("CreatePropertySheetPage failed", err);
+ }
+ }
+
+ memset(&psh, 0, sizeof(psh));
+ psh.dwSize = sizeof(PROPSHEETHEADER);
+#if _WIN32_IE >= 0x0500
+ psh.dwFlags = PSH_WIZARD97 | modeflag;
+#else
+ psh.dwFlags = PSH_WIZARD | modeflag;
+#endif
+ psh.hwndParent = NULL;
+ psh.hInstance = GetModuleHandle(NULL);
+ psh.pszIcon = NULL;
+ psh.pszCaption = (LPSTR) "Cell Properties";
+ psh.nPages = pages.size();
+ psh.nStartPage = 0;
+ psh.phpage = phpage;
+ psh.pfnCallback = NULL;
+}
+
+DWORD CWizard::PageID(unsigned index)
+{
+ if (index < pages.size() && IS_INTRESOURCE(pages[index].pszTemplate))
+ return (DWORD)pages[index].pszTemplate;
+ return (DWORD)-1;
+}
+
+unsigned CWizard::PageIndex(PROPSHEETPAGE *psp)
+{
+ for (unsigned i = 0; i < pages.size(); i++)
+ {
+ if (IS_INTRESOURCE(psp->pszTemplate) || IS_INTRESOURCE(pages[i].pszTemplate ))
+ {
+ if (psp->pszTemplate == pages[i].pszTemplate)
+ return i;
+ }
+ else if (psp->pszTemplate && pages[i].pszTemplate)
+ {
+ if (strcmp(psp->pszTemplate, pages[i].pszTemplate) == 0)
+ return i;
+ }
+ }
+ return (unsigned)-1;
+}
+
+INT_PTR CWizard::DlgDispatch(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+ return CBaseDialog::DlgDispatch(hwndDlg, uMsg, wParam, lParam);
+}
+
+INT_PTR CWizard::PageDispatch(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam, PROPSHEETPAGE *psp)
+{
+ LPNMHDR pnmh = (LPNMHDR)lParam;
+ DWORD flags;
+ unsigned pageindex;
+ switch (uMsg)
+ {
+ case WM_NOTIFY:
+ switch (pnmh->code)
+ {
+ case PSN_SETACTIVE:
+#ifdef _DEBUG
+ printf("PSN_SETACTIVE %d\n", PageIndex(psp));
+#endif
+ pageindex = PageIndex(psp);
+ if (pageindex != (unsigned)-1)
+ {
+ flags = 0;
+ if (pageindex > 0)
+ flags |= PSWIZB_BACK;
+ if ((unsigned)pageindex + 1 == pages.size())
+ flags |= PSWIZB_FINISH;
+ if ((unsigned)pageindex + 1 < pages.size())
+ flags |= PSWIZB_NEXT;
+ PropSheet_SetWizButtons(GetParent(hwndDlg), flags);
+ }
+ WizardActivate(hwndDlg, pageindex);
+ break;
+ case PSN_WIZNEXT:
+ if (WizardNext(hwndDlg, PageIndex(psp)))
+ return TRUE;
+ break;
+ case PSN_WIZBACK:
+ if (WizardBack(hwndDlg, PageIndex(psp)))
+ return TRUE;
+ break;
+ case PSN_WIZFINISH:
+ if (WizardFinish(hwndDlg, PageIndex(psp)))
+ return TRUE;
+ DestroyWindow(GetParent(hwndDlg));
+ case PSN_RESET:
+ if (WizardReset(hwndDlg, PageIndex(psp)))
+ return TRUE;
+ DestroyWindow(GetParent(hwndDlg));
+ break;
+ }
+ }
+ return DlgDispatch(hwndDlg, uMsg, wParam, lParam);
+}
+
+
+INT_PTR CALLBACK CWizard::WizardDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
+{
+ MessageDebug::debug(hwndDlg, uMsg, wParam, lParam, __FUNCTION__);
+ PROPSHEETPAGE *psp = (PROPSHEETPAGE*)lParam;
+ switch (uMsg)
+ {
+ case WM_INITDIALOG:
+ SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)psp);
+ break;
+ }
+ psp = (PROPSHEETPAGE*)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);
+ CWizard* wizard = psp?(CWizard*)psp->lParam:NULL;
+ if (wizard != NULL)
+ return wizard->PageDispatch(hwndDlg, uMsg, wParam, lParam, psp);
+ return FALSE;
+}
+
diff --git a/xorg-server/hw/xwin/xlaunch/window/wizard.h b/xorg-server/hw/xwin/xlaunch/window/wizard.h
new file mode 100644
index 000000000..c576cc093
--- /dev/null
+++ b/xorg-server/hw/xwin/xlaunch/window/wizard.h
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2005 Alexander Gottwald
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the name(s) of the above copyright
+ * holders shall not be used in advertising or otherwise to promote the sale,
+ * use or other dealings in this Software without prior written authorization.
+ */
+#ifndef __WIZARD_H__
+#define __WIZARD_H__
+
+#include "dialog.h"
+#include <vector>
+
+#include <prsht.h>
+
+class CWizard : public CBaseDialog
+{
+ private:
+ std::vector<PROPSHEETPAGE> pages;
+ void PrepareSheetHeader(PROPSHEETHEADER &psh, BOOL modal);
+ protected:
+ virtual HWND CreateWindowHandle();
+ static INT_PTR CALLBACK WizardDialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
+ virtual INT_PTR DlgDispatch(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
+ virtual INT_PTR PageDispatch(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam, PROPSHEETPAGE *psp);
+ virtual unsigned PageIndex(PROPSHEETPAGE *psp);
+ virtual DWORD PageID(unsigned index);
+ virtual BOOL WizardNext(HWND hwndDlg, unsigned index) { return FALSE; }
+ virtual BOOL WizardBack(HWND hwndDlg, unsigned index) { return FALSE; }
+ virtual BOOL WizardFinish(HWND hwndDlg, unsigned index) { return FALSE; }
+ virtual BOOL WizardReset(HWND hwndDlg, unsigned index) { return FALSE; }
+ virtual BOOL WizardActivate(HWND hwndDlg, unsigned index) { return FALSE; }
+ public:
+ CWizard();
+ void AddPage(const PROPSHEETPAGE &page);
+ void AddPage(const char *page, HINSTANCE instance = NULL);
+ void AddPage(DWORD id, DWORD title, DWORD subtitle, HINSTANCE instance = NULL);
+ virtual int ShowModal();
+};
+#endif