Index: configs/linux-dri
===================================================================
RCS file: /cvs/mesa/Mesa/configs/linux-dri,v
retrieving revision 1.17
diff -u -r1.17 linux-dri
--- configs/linux-dri 29 Oct 2004 00:10:43 -0000 1.17
+++ configs/linux-dri 11 Nov 2004 02:18:00 -0000
@@ -17,7 +17,7 @@
CFLAGS = -DDRI_NEW_INTERFACE_ONLY $(WARN_FLAGS) -g $(OPT_FLAGS) $(ASM_FLAGS) \
-std=c99 $(PIC_FLAGS) -ffast-math $(SOURCE_FLAGS) -DPTHREADS \
- -DUSE_EXTERNAL_DXTN_LIB=1 \
+ -DUSE_EXTERNAL_DXTN_LIB=1 -DGLX_USE_TLS -DHAVE_ALIAS \
-I/usr/X11R6/include -I/usr/X11R6/include/X11/extensions
CXXFLAGS = -DDRI_NEW_INTERFACE_ONLY $(WARN_FLAGS) -g $(OPT_FLAGS) -fPIC \
Index: src/glx/x11/dispatch.c
===================================================================
RCS file: /cvs/mesa/Mesa/src/glx/x11/dispatch.c,v
retrieving revision 1.1
diff -u -r1.1 dispatch.c
--- src/glx/x11/dispatch.c 25 Oct 2004 21:09:16 -0000 1.1
+++ src/glx/x11/dispatch.c 11 Nov 2004 02:18:00 -0000
@@ -56,16 +56,12 @@
#define NAME(func) gl##func
#define DISPATCH(func, args, msg) \
- const struct _glapi_table *dispatch; \
- dispatch = _glapi_Dispatch ? _glapi_Dispatch : _glapi_get_dispatch();\
- (dispatch->func) args
+ GL_CALL(func) args
#define RETURN_DISPATCH(func, args, msg) \
- const struct _glapi_table *dispatch; \
- dispatch = _glapi_Dispatch ? _glapi_Dispatch : _glapi_get_dispatch();\
- return (dispatch->func) args
-
+ return GL_CALL(func) args
+#include "glthread.h"
#include "glapitemp.h"
#endif /* USE_X86_ASM */
Index: src/glx/x11/dri_glx.c
===================================================================
RCS file: /cvs/mesa/Mesa/src/glx/x11/dri_glx.c,v
retrieving revision 1.1
diff -u -r1.1 dri_glx.c
--- src/glx/x11/dri_glx.c 25 Oct 2004 21:09:16 -0000 1.1
+++ src/glx/x11/dri_glx.c 11 Nov 2004 02:18:00 -0000
@@ -119,18 +119,26 @@
-/*
- * Extract the ith directory path out of a colon-separated list of
- * paths.
- * Input:
- * index - index of path to extract (starting at zero)
- * paths - the colon-separated list of paths
- * dirLen - max length of result to store in
- * Output:
- * dir - the extracted directory path, dir[0] will be zero when
- * extraction fails.
+/**
+ * Extract the ith directory path out of a colon-separated list of paths. No
+ * more than \c dirLen characters, including the terminating \c NUL, will be
+ * written to \c dir.
+ *
+ * \param index Index of path to extract (starting at zero)
+ * \param paths The colon-separated list of paths
+ * \param dirLen Maximum length of result to store in \c dir
+ * \param dir Buffer to hold the extracted directory path
+ *
+ * \returns
+ * The number of characters that would have been written to \c dir had there
+ * been enough room. This does not include the terminating \c NUL. When
+ * extraction fails, zero will be returned.
+ *
+ * \todo
+ * It seems like this function could be rewritten to use \c strchr.
*/
-static void ExtractDir(int index, const char *paths, int dirLen, char *dir)
+static size_t
+ExtractDir(int index, const char *paths, int dirLen, char *dir)
{
int i, len;
const char *start, *end;
@@ -146,7 +154,7 @@
else if (*start == 0) {
/* end of string and couldn't find ith colon */
dir[0] = 0;
- return;
+ return 0;
}
else {
start++;
@@ -168,22 +176,27 @@
len = dirLen - 1;
strncpy(dir, start, len);
dir[len] = 0;
+
+ return( end - start );
}
-/*
- * Try to dlopen() the named driver. This function adds the
- * "_dri.so" suffix to the driver name and searches the
- * directories specified by the LIBGL_DRIVERS_PATH env var
- * in order to find the driver.
- * Input:
- * driverName - a name like "tdfx", "i810", "mga", etc.
- * Return:
- * handle from dlopen, or NULL if driver file not found.
+/**
+ * Try to \c dlopen the named driver.
+ *
+ * This function adds the "_dri.so" suffix to the driver name and searches the
+ * directories specified by the \c LIBGL_DRIVERS_PATH environment variable in
+ * order to find the driver.
+ *
+ * \param driverName - a name like "tdfx", "i810", "mga", etc.
+ *
+ * \returns
+ * A handle from \c dlopen, or \c NULL if driver file not found.
*/
static __DRIdriver *OpenDriver(const char *driverName)
{
char *libPaths = NULL;
+ char libDir[1000];
int i;
__DRIdriver *driver;
@@ -204,16 +217,27 @@
if (!libPaths)
libPaths = DEFAULT_DRIVER_DIR;
- for (i = 0; ; i++) {
- char libDir[1000], realDriverName[200];
- void *handle;
- ExtractDir(i, libPaths, 1000, libDir);
- if (!libDir[0])
- break; /* ran out of paths to search */
- snprintf(realDriverName, 200, "%s/%s_dri.so", libDir, driverName);
+ for ( i = 0 ; ExtractDir(i, libPaths, 1000, libDir) != 0 ; i++ ) {
+ char realDriverName[200];
+ void *handle = NULL;
+
+
+ /* If TLS support is enabled, try to open the TLS version of the driver
+ * binary first. If that fails, try the non-TLS version.
+ */
+#ifdef GLX_USE_TLS
+ snprintf(realDriverName, 200, "%s/tls/%s_dri.so", libDir, driverName);
InfoMessageF("OpenDriver: trying %s\n", realDriverName);
handle = dlopen(realDriverName, RTLD_NOW | RTLD_GLOBAL);
- if (handle) {
+#endif
+
+ if ( handle == NULL ) {
+ snprintf(realDriverName, 200, "%s/%s_dri.so", libDir, driverName);
+ InfoMessageF("OpenDriver: trying %s\n", realDriverName);
+ handle = dlopen(realDriverName, RTLD_NOW | RTLD_GLOBAL);
+ }
+
+ if ( handle != NULL ) {
/* allocate __DRIdriver struct */
driver = (__DRIdriver *) Xmalloc(sizeof(__DRIdriver));
if (!driver)
Index: src/mesa/glapi/gl_x86_asm.py
===================================================================
RCS file: /cvs/mesa/Mesa/src/mesa/glapi/gl_x86_asm.py,v
retrieving revision 1.6
diff -u -r1.6 gl_x86_asm.py
--- src/mesa/glapi/gl_x86_asm.py 25 Aug 2004 15:10:51 -0000 1.6
+++ src/mesa/glapi/gl_x86_asm.py 11 Nov 2004 02:18:01 -0000
@@ -87,7 +87,17 @@
print '# define THREADS'
print '#endif'
print ''
- print '#if defined(PTHREADS)'
+ print '#ifdef GLX_USE_TLS'
+ print ''
+ print '# define GL_STUB(fn,off,fn_alt)\t\t\t\\'
+ print 'ALIGNTEXT16;\t\t\t\t\t\t\\'
+ print 'GLOBL_FN(GL_PREFIX(fn, fn_alt));\t\t\t\\'
+ print 'GL_PREFIX(fn, fn_alt):\t\t\t\t\t\\'
+ print '\tCALL(get_dispatch) ;\t\t\t\t\\'
+ print '\tNOP ;\t\t\t\t\t\t\\'
+ print '\tJMP(GL_OFFSET(off))'
+ print ''
+ print '#elif defined(PTHREADS)'
print '# define GL_STUB(fn,off,fn_alt)\t\t\t\\'
print 'ALIGNTEXT16;\t\t\t\t\t\t\\'
print 'GLOBL_FN(GL_PREFIX(fn, fn_alt));\t\t\t\\'
@@ -118,9 +128,25 @@
print '\tJMP(GL_OFFSET(off))'
print '#endif'
print ''
+ print '#ifdef HAVE_ALIAS'
+ print '# define GL_STUB_ALIAS(fn,off,fn_alt,alias,alias_alt)\t\\'
+ print '\t.globl\tGL_PREFIX(fn, fn_alt) ;\t\t\t\\'
+ print '\t.set\tGL_PREFIX(fn, fn_alt), GL_PREFIX(alias, alias_alt)'
+ print '#else'
+ print '# define GL_STUB_ALIAS(fn,off,fn_alt,alias,alias_alt)\t\\'
+ print ' GL_STUB(fn, off, fn_alt)'
+ print '#endif'
+ print ''
print 'SEG_TEXT'
print ''
- print '#ifdef PTHREADS'
+ print '#ifdef GLX_USE_TLS'
+ print ''
+ print 'ALIGNTEXT16'
+ print 'GLNAME(get_dispatch):'
+ print '\tmovl\t%gs:_glapi_tls_Dispatch@NTPOFF, %eax'
+ print '\tret'
+ print ''
+ print '#elif defined(PTHREADS)'
print 'EXTERN GLNAME(_glapi_Dispatch)'
print 'EXTERN GLNAME(_gl_DispatchTSD)'
print 'EXTERN GLNAME(pthread_getspecific)'
@@ -143,6 +169,19 @@
def printRealFooter(self):
print ''
+ print '#if defined(GLX_USE_TLS) && defined(__linux__)'
+ print ' .section ".note.ABI-tag", "a"'
+ print ' .p2align 2'
+ print ' .long 1f - 0f /* name length */'
+ print ' .long 3f - 2f /* data length */'
+ print ' .long 1 /* note length */'
+ print '0: .asciz "GNU" /* vendor name */'
+ print '1: .p2align 2'
+ print '2: .long 0 /* note data: the ABI tag */'
+ print ' .long 2,4,20 /* Minimum kernel version w/TLS */'
+ print '3: .p2align 2 /* pad out section */'
+ print '#endif /* GLX_USE_TLS */'
+ print ''
print '#endif /* __WIN32__ */'
return
@@ -150,7 +189,12 @@
stack = self.get_stack_size(f)
alt = "%s@%u" % (f.name, stack)
- print '\tGL_STUB(%s, _gloffset_%s, %s)' % (f.name, f.real_name, alt)
+ if f.fn_alias == None:
+ print '\tGL_STUB(%s, _gloffset_%s, %s)' % (f.name, f.real_name, alt)
+ else:
+ alias_alt = "%s@%u" % (f.real_name, stack)
+ print '\tGL_STUB_ALIAS(%s, _gloffset_%s, %s, %s, %s)' % \
+ (f.name, f.real_name, alt, f.real_name, alias_alt)
return
def show_usage():
Index: src/mesa/glapi/glapi.c
===================================================================
RCS file: /cvs/mesa/Mesa/src/mesa/glapi/glapi.c,v
retrieving revision 1.83
diff -u -r1.83 glapi.c
--- src/mesa/glapi/glapi.c 5 Nov 2004 18:32:02 -0000 1.83
+++ src/mesa/glapi/glapi.c 11 Nov 2004 02:18:01 -0000
@@ -134,6 +134,28 @@
#if defined(THREADS)
+#if defined(GLX_USE_TLS)
+
+__thread struct _glapi_table * _glapi_tls_Dispatch
+ __attribute__((tls_model("initial-exec")))
+ = (struct _glapi_table *) __glapi_noop_table;
+
+static __thread struct _glapi_table * _glapi_tls_RealDispatch
+ __attribute__((tls_model("initial-exec")))
+ = (struct _glapi_table *) __glapi_noop_table;
+
+__thread void * _glapi_tls_Context
+ __attribute__((tls_model("initial-exec")));
+
+/**
+ * Legacy per-thread dispatch pointer. This is only needed to support
+ * non-TLS DRI drivers.
+ */
+
+_glthread_TSD _gl_DispatchTSD;
+
+#else
+
/**
* \name Multi-threaded control support variables
*
@@ -167,6 +189,7 @@
static _glthread_TSD ContextTSD; /**< Per-thread context pointer */
/*@}*/
+#endif /* defined(GLX_USE_TLS) */
#define DISPATCH_TABLE_NAME __glapi_threadsafe_table
#define UNUSED_TABLE_NAME __usused_threadsafe_functions
@@ -186,16 +209,41 @@
+#if defined(GLX_USE_TLS)
+
+/**
+ * \name Old dispatch pointers
+ *
+ * Very old DRI based drivers assume that \c _glapi_Dispatch will never be
+ * \c NULL. Becuase of that, special "thread-safe" dispatch functions are
+ * needed here. Slightly more recent drivers detect the multi-threaded case
+ * by \c _glapi_DispatchTSD being \c NULL.
+ *
+ * \deprecated
+ *
+ * \warning
+ * \c _glapi_RealDispatch does not exist in TLS builds. I don't think it was
+ * ever used outside libGL.so, so this should be safe.
+ */
+/*@{*/
+const struct _glapi_table *_glapi_Dispatch = (struct _glapi_table *) __glapi_threadsafe_table;
+const struct _glapi_table *_glapi_DispatchTSD = NULL;
+const void *_glapi_Context = NULL;
+/*@}*/
+
+#else
+
struct _glapi_table *_glapi_Dispatch = (struct _glapi_table *) __glapi_noop_table;
#if defined( THREADS )
struct _glapi_table *_glapi_DispatchTSD = (struct _glapi_table *) __glapi_noop_table;
#endif
struct _glapi_table *_glapi_RealDispatch = (struct _glapi_table *) __glapi_noop_table;
-
-
/* Used when thread safety disabled */
void *_glapi_Context = NULL;
+#endif /* defined(GLX_USE_TLS) */
+
+
static GLboolean DispatchOverride = GL_FALSE;
@@ -224,7 +272,7 @@
void
_glapi_check_multithread(void)
{
-#if defined(THREADS)
+#if defined(THREADS) && !defined(GLX_USE_TLS)
if (!ThreadSafe) {
static unsigned long knownID;
static GLboolean firstCall = GL_TRUE;
@@ -246,7 +294,7 @@
-/*
+/**
* Set the current context pointer for this thread.
* The context pointer is an opaque type which should be cast to
* void from the real context pointer type.
@@ -254,7 +302,9 @@
void
_glapi_set_context(void *context)
{
-#if defined(THREADS)
+#if defined(GLX_USE_TLS)
+ _glapi_tls_Context = context;
+#elif defined(THREADS)
_glthread_SetTSD(&ContextTSD, context);
_glapi_Context = (ThreadSafe) ? NULL : context;
#else
@@ -264,7 +314,7 @@
-/*
+/**
* Get the current context pointer for this thread.
* The context pointer is an opaque type which should be cast from
* void to the real context pointer type.
@@ -272,7 +322,9 @@
void *
_glapi_get_context(void)
{
-#if defined(THREADS)
+#if defined(GLX_USE_TLS)
+ return _glapi_tls_Context;
+#elif defined(THREADS)
if (ThreadSafe) {
return _glthread_GetTSD(&ContextTSD);
}
@@ -302,7 +354,15 @@
}
#endif
-#if defined(THREADS)
+#if defined(GLX_USE_TLS)
+ if (DispatchOverride) {
+ _glapi_tls_RealDispatch = dispatch;
+ }
+ else {
+ _glthread_SetTSD(&_gl_DispatchTSD, (void *) dispatch);
+ _glapi_tls_Dispatch = dispatch;
+ }
+#elif defined(THREADS)
if (DispatchOverride) {
_glthread_SetTSD(&RealDispatchTSD, (void *) dispatch);
if (ThreadSafe)
@@ -340,7 +400,13 @@
struct _glapi_table *
_glapi_get_dispatch(void)
{
-#if defined(THREADS)
+#if defined(GLX_USE_TLS)
+ struct _glapi_table * api = (DispatchOverride)
+ ? _glapi_tls_RealDispatch : _glapi_tls_Dispatch;
+
+ assert( api != NULL );
+ return api;
+#elif defined(THREADS)
if (ThreadSafe) {
if (DispatchOverride) {
return (struct _glapi_table *) _glthread_GetTSD(&RealDispatchTSD);
@@ -397,7 +463,10 @@
_glapi_set_dispatch(real);
-#if defined(THREADS)
+#if defined(GLX_USE_TLS)
+ _glthread_SetTSD(&_gl_DispatchTSD, (void *) override);
+ _glapi_tls_Dispatch = override;
+#elif defined(THREADS)
_glthread_SetTSD(&_gl_DispatchTSD, (void *) override);
if ( ThreadSafe ) {
_glapi_Dispatch = (struct _glapi_table *) __glapi_threadsafe_table;
@@ -422,10 +491,14 @@
DispatchOverride = GL_FALSE;
_glapi_set_dispatch(real);
/* the rest of this isn't needed, just play it safe */
-#if defined(THREADS)
+#if defined(GLX_USE_TLS)
+ _glapi_tls_RealDispatch = NULL;
+#else
+# if defined(THREADS)
_glthread_SetTSD(&RealDispatchTSD, NULL);
-#endif
+# endif
_glapi_RealDispatch = NULL;
+#endif
}
@@ -437,7 +510,9 @@
}
else {
if (DispatchOverride) {
-#if defined(THREADS)
+#if defined(GLX_USE_TLS)
+ return (struct _glapi_table *) _glapi_tls_Dispatch;
+#elif defined(THREADS)
return (struct _glapi_table *) _glthread_GetTSD(&_gl_DispatchTSD);
#else
return _glapi_Dispatch;
@@ -500,7 +575,7 @@
#ifdef USE_X86_ASM
extern const GLubyte gl_dispatch_functions_start[];
-# if defined(THREADS)
+# if defined(THREADS) && !defined(GLX_USE_TLS)
# define X86_DISPATCH_FUNCTION_SIZE 32
# else
# define X86_DISPATCH_FUNCTION_SIZE 16
@@ -583,10 +658,14 @@
extern void __glapi_sparc_icache_flush(unsigned int *);
#endif
-/*
+/**
* Generate a dispatch function (entrypoint) which jumps through
* the given slot number (offset) in the current dispatch table.
* We need assembly language in order to accomplish this.
+ *
+ * \todo
+ * A TLS version of this is needed. The code right now will work on x86 in
+ * TLS mode, but it will be inefficient.
*/
static void *
generate_entrypoint(GLuint functionOffset)
Index: src/mesa/glapi/glapi.h
===================================================================
RCS file: /cvs/mesa/Mesa/src/mesa/glapi/glapi.h,v
retrieving revision 1.22
diff -u -r1.22 glapi.h
--- src/mesa/glapi/glapi.h 10 Sep 2004 00:45:12 -0000 1.22
+++ src/mesa/glapi/glapi.h 11 Nov 2004 02:18:01 -0000
@@ -52,10 +52,17 @@
typedef void (*_glapi_warning_func)(void *ctx, const char *str, ...);
-extern void *_glapi_Context;
+#if defined (GLX_USE_TLS)
+
+const extern struct _glapi_table *_glapi_Dispatch;
+const extern void *_glapi_Context;
+
+#else
extern struct _glapi_table *_glapi_Dispatch;
+extern void *_glapi_Context;
+#endif /* defined (GLX_USE_TLS) */
extern void
_glapi_noop_enable_warnings(GLboolean enable);
Index: src/mesa/glapi/glthread.h
===================================================================
RCS file: /cvs/mesa/Mesa/src/mesa/glapi/glthread.h,v
retrieving revision 1.16
diff -u -r1.16 glthread.h
--- src/mesa/glapi/glthread.h 14 Aug 2004 09:48:57 -0000 1.16
+++ src/mesa/glapi/glthread.h 11 Nov 2004 02:18:01 -0000
@@ -307,7 +307,14 @@
extern void
_glthread_SetTSD(_glthread_TSD *, void *);
-#ifndef GL_CALL
+#if defined(GLX_USE_TLS)
+
+extern __thread struct _glapi_table * _glapi_tls_Dispatch
+ __attribute__((tls_model("initial-exec")));
+
+# define GL_CALL(name) (*(_glapi_tls_Dispatch-> name))
+
+#elif !defined(GL_CALL)
# if defined(THREADS)
extern struct _glapi_table * _glapi_DispatchTSD;
# define GL_CALL(name) \
Index: src/mesa/main/dispatch.c
===================================================================
RCS file: /cvs/mesa/Mesa/src/mesa/main/dispatch.c,v
retrieving revision 1.32
diff -u -r1.32 dispatch.c
--- src/mesa/main/dispatch.c 27 May 2004 00:03:53 -0000 1.32
+++ src/mesa/main/dispatch.c 11 Nov 2004 02:18:01 -0000
@@ -83,6 +83,7 @@
#define GLAPIENTRY
#endif
+#include "glthread.h"
#include "glapitemp.h"
Index: src/mesa/x86/Makefile
===================================================================
RCS file: /cvs/mesa/Mesa/src/mesa/x86/Makefile,v
retrieving revision 1.2
diff -u -r1.2 Makefile
--- src/mesa/x86/Makefile 23 Oct 2004 16:57:45 -0000 1.2
+++ src/mesa/x86/Makefile 11 Nov 2004 02:18:01 -0000
@@ -21,7 +21,7 @@
# need some special rules here, unfortunately
matypes.h: ../main/mtypes.h ../tnl/t_context.h gen_matypes.c
- $(CC) $(INCLUDE_DIRS) $(CFLAGS) gen_matypes.c -o gen_matypes
+ gcc $(INCLUDE_DIRS) $(CFLAGS) gen_matypes.c -o gen_matypes
./gen_matypes > matypes.h
common_x86_asm.o: matypes.h
Index: src/mesa/x86/glapi_x86.S
===================================================================
RCS file: /cvs/mesa/Mesa/src/mesa/x86/glapi_x86.S,v
retrieving revision 1.44
diff -u -r1.44 glapi_x86.S
--- src/mesa/x86/glapi_x86.S 28 Oct 2004 11:14:03 -0000 1.44
+++ src/mesa/x86/glapi_x86.S 11 Nov 2004 02:18:02 -0000
@@ -57,7 +57,17 @@
# define THREADS
#endif
-#if defined(PTHREADS)
+#ifdef GLX_USE_TLS
+
+# define GL_STUB(fn,off,fn_alt) \
+ALIGNTEXT16; \
+GLOBL_FN(GL_PREFIX(fn, fn_alt)); \
+GL_PREFIX(fn, fn_alt): \
+ CALL(get_dispatch) ; \
+ NOP ; \
+ JMP(GL_OFFSET(off))
+
+#elif defined(PTHREADS)
# define GL_STUB(fn,off,fn_alt) \
ALIGNTEXT16; \
GLOBL_FN(GL_PREFIX(fn, fn_alt)); \
@@ -88,9 +98,25 @@
JMP(GL_OFFSET(off))
#endif
+#ifdef HAVE_ALIAS
+# define GL_STUB_ALIAS(fn,off,fn_alt,alias,alias_alt) \
+ .globl GL_PREFIX(fn, fn_alt) ; \
+ .set GL_PREFIX(fn, fn_alt), GL_PREFIX(alias, alias_alt)
+#else
+# define GL_STUB_ALIAS(fn,off,fn_alt,alias,alias_alt) \
+ GL_STUB(fn, off, fn_alt)
+#endif
+
SEG_TEXT
-#ifdef PTHREADS
+#ifdef GLX_USE_TLS
+
+ALIGNTEXT16
+GLNAME(get_dispatch):
+ movl %gs:_glapi_tls_Dispatch@NTPOFF, %eax
+ ret
+
+#elif defined(PTHREADS)
EXTERN GLNAME(_glapi_Dispatch)
EXTERN GLNAME(_gl_DispatchTSD)
EXTERN GLNAME(pthread_getspecific)
@@ -862,212 +888,225 @@
GL_STUB(BindAttribLocationARB, _gloffset_BindAttribLocationARB, BindAttribLocationARB@12)
GL_STUB(GetActiveAttribARB, _gloffset_GetActiveAttribARB, GetActiveAttribARB@28)
GL_STUB(GetAttribLocationARB, _gloffset_GetAttribLocationARB, GetAttribLocationARB@8)
- GL_STUB(ActiveTexture, _gloffset_ActiveTextureARB, ActiveTexture@4)
- GL_STUB(ClientActiveTexture, _gloffset_ClientActiveTextureARB, ClientActiveTexture@4)
- GL_STUB(MultiTexCoord1d, _gloffset_MultiTexCoord1dARB, MultiTexCoord1d@12)
- GL_STUB(MultiTexCoord1dv, _gloffset_MultiTexCoord1dvARB, MultiTexCoord1dv@8)
- GL_STUB(MultiTexCoord1f, _gloffset_MultiTexCoord1fARB, MultiTexCoord1f@8)
- GL_STUB(MultiTexCoord1fv, _gloffset_MultiTexCoord1fvARB, MultiTexCoord1fv@8)
- GL_STUB(MultiTexCoord1i, _gloffset_MultiTexCoord1iARB, MultiTexCoord1i@8)
- GL_STUB(MultiTexCoord1iv, _gloffset_MultiTexCoord1ivARB, MultiTexCoord1iv@8)
- GL_STUB(MultiTexCoord1s, _gloffset_MultiTexCoord1sARB, MultiTexCoord1s@8)
- GL_STUB(MultiTexCoord1sv, _gloffset_MultiTexCoord1svARB, MultiTexCoord1sv@8)
- GL_STUB(MultiTexCoord2d, _gloffset_MultiTexCoord2dARB, MultiTexCoord2d@20)
- GL_STUB(MultiTexCoord2dv, _gloffset_MultiTexCoord2dvARB, MultiTexCoord2dv@8)
- GL_STUB(MultiTexCoord2f, _gloffset_MultiTexCoord2fARB, MultiTexCoord2f@12)
- GL_STUB(MultiTexCoord2fv, _gloffset_MultiTexCoord2fvARB, MultiTexCoord2fv@8)
- GL_STUB(MultiTexCoord2i, _gloffset_MultiTexCoord2iARB, MultiTexCoord2i@12)
- GL_STUB(MultiTexCoord2iv, _gloffset_MultiTexCoord2ivARB, MultiTexCoord2iv@8)
- GL_STUB(MultiTexCoord2s, _gloffset_MultiTexCoord2sARB, MultiTexCoord2s@12)
- GL_STUB(MultiTexCoord2sv, _gloffset_MultiTexCoord2svARB, MultiTexCoord2sv@8)
- GL_STUB(MultiTexCoord3d, _gloffset_MultiTexCoord3dARB, MultiTexCoord3d@28)
- GL_STUB(MultiTexCoord3dv, _gloffset_MultiTexCoord3dvARB, MultiTexCoord3dv@8)
- GL_STUB(MultiTexCoord3f, _gloffset_MultiTexCoord3fARB, MultiTexCoord3f@16)
- GL_STUB(MultiTexCoord3fv, _gloffset_MultiTexCoord3fvARB, MultiTexCoord3fv@8)
- GL_STUB(MultiTexCoord3i, _gloffset_MultiTexCoord3iARB, MultiTexCoord3i@16)
- GL_STUB(MultiTexCoord3iv, _gloffset_MultiTexCoord3ivARB, MultiTexCoord3iv@8)
- GL_STUB(MultiTexCoord3s, _gloffset_MultiTexCoord3sARB, MultiTexCoord3s@16)
- GL_STUB(MultiTexCoord3sv, _gloffset_MultiTexCoord3svARB, MultiTexCoord3sv@8)
- GL_STUB(MultiTexCoord4d, _gloffset_MultiTexCoord4dARB, MultiTexCoord4d@36)
- GL_STUB(MultiTexCoord4dv, _gloffset_MultiTexCoord4dvARB, MultiTexCoord4dv@8)
- GL_STUB(MultiTexCoord4f, _gloffset_MultiTexCoord4fARB, MultiTexCoord4f@20)
- GL_STUB(MultiTexCoord4fv, _gloffset_MultiTexCoord4fvARB, MultiTexCoord4fv@8)
- GL_STUB(MultiTexCoord4i, _gloffset_MultiTexCoord4iARB, MultiTexCoord4i@20)
- GL_STUB(MultiTexCoord4iv, _gloffset_MultiTexCoord4ivARB, MultiTexCoord4iv@8)
- GL_STUB(MultiTexCoord4s, _gloffset_MultiTexCoord4sARB, MultiTexCoord4s@20)
- GL_STUB(MultiTexCoord4sv, _gloffset_MultiTexCoord4svARB, MultiTexCoord4sv@8)
- GL_STUB(LoadTransposeMatrixf, _gloffset_LoadTransposeMatrixfARB, LoadTransposeMatrixf@4)
- GL_STUB(LoadTransposeMatrixd, _gloffset_LoadTransposeMatrixdARB, LoadTransposeMatrixd@4)
- GL_STUB(MultTransposeMatrixf, _gloffset_MultTransposeMatrixfARB, MultTransposeMatrixf@4)
- GL_STUB(MultTransposeMatrixd, _gloffset_MultTransposeMatrixdARB, MultTransposeMatrixd@4)
- GL_STUB(SampleCoverage, _gloffset_SampleCoverageARB, SampleCoverage@8)
- GL_STUB(CompressedTexImage3D, _gloffset_CompressedTexImage3DARB, CompressedTexImage3D@36)
- GL_STUB(CompressedTexImage2D, _gloffset_CompressedTexImage2DARB, CompressedTexImage2D@32)
- GL_STUB(CompressedTexImage1D, _gloffset_CompressedTexImage1DARB, CompressedTexImage1D@28)
- GL_STUB(CompressedTexSubImage3D, _gloffset_CompressedTexSubImage3DARB, CompressedTexSubImage3D@44)
- GL_STUB(CompressedTexSubImage2D, _gloffset_CompressedTexSubImage2DARB, CompressedTexSubImage2D@36)
- GL_STUB(CompressedTexSubImage1D, _gloffset_CompressedTexSubImage1DARB, CompressedTexSubImage1D@28)
- GL_STUB(GetCompressedTexImage, _gloffset_GetCompressedTexImageARB, GetCompressedTexImage@12)
- GL_STUB(BlendFuncSeparate, _gloffset_BlendFuncSeparateEXT, BlendFuncSeparate@16)
- GL_STUB(FogCoordf, _gloffset_FogCoordfEXT, FogCoordf@4)
- GL_STUB(FogCoordfv, _gloffset_FogCoordfvEXT, FogCoordfv@4)
- GL_STUB(FogCoordd, _gloffset_FogCoorddEXT, FogCoordd@8)
- GL_STUB(FogCoorddv, _gloffset_FogCoorddvEXT, FogCoorddv@4)
- GL_STUB(FogCoordPointer, _gloffset_FogCoordPointerEXT, FogCoordPointer@12)
- GL_STUB(MultiDrawArrays, _gloffset_MultiDrawArraysEXT, MultiDrawArrays@16)
- GL_STUB(MultiDrawElements, _gloffset_MultiDrawElementsEXT, MultiDrawElements@20)
- GL_STUB(PointParameterf, _gloffset_PointParameterfEXT, PointParameterf@8)
- GL_STUB(PointParameterfv, _gloffset_PointParameterfvEXT, PointParameterfv@8)
- GL_STUB(PointParameteri, _gloffset_PointParameteriNV, PointParameteri@8)
- GL_STUB(PointParameteriv, _gloffset_PointParameterivNV, PointParameteriv@8)
- GL_STUB(SecondaryColor3b, _gloffset_SecondaryColor3bEXT, SecondaryColor3b@12)
- GL_STUB(SecondaryColor3bv, _gloffset_SecondaryColor3bvEXT, SecondaryColor3bv@4)
- GL_STUB(SecondaryColor3d, _gloffset_SecondaryColor3dEXT, SecondaryColor3d@24)
- GL_STUB(SecondaryColor3dv, _gloffset_SecondaryColor3dvEXT, SecondaryColor3dv@4)
- GL_STUB(SecondaryColor3f, _gloffset_SecondaryColor3fEXT, SecondaryColor3f@12)
- GL_STUB(SecondaryColor3fv, _gloffset_SecondaryColor3fvEXT, SecondaryColor3fv@4)
- GL_STUB(SecondaryColor3i, _gloffset_SecondaryColor3iEXT, SecondaryColor3i@12)
- GL_STUB(SecondaryColor3iv, _gloffset_SecondaryColor3ivEXT, SecondaryColor3iv@4)
- GL_STUB(SecondaryColor3s, _gloffset_SecondaryColor3sEXT, SecondaryColor3s@12)
- GL_STUB(SecondaryColor3sv, _gloffset_SecondaryColor3svEXT, SecondaryColor3sv@4)
- GL_STUB(SecondaryColor3ub, _gloffset_SecondaryColor3ubEXT, SecondaryColor3ub@12)
- GL_STUB(SecondaryColor3ubv, _gloffset_SecondaryColor3ubvEXT, SecondaryColor3ubv@4)
- GL_STUB(SecondaryColor3ui, _gloffset_SecondaryColor3uiEXT, SecondaryColor3ui@12)
- GL_STUB(SecondaryColor3uiv, _gloffset_SecondaryColor3uivEXT, SecondaryColor3uiv@4)
- GL_STUB(SecondaryColor3us, _gloffset_SecondaryColor3usEXT, SecondaryColor3us@12)
- GL_STUB(SecondaryColor3usv, _gloffset_SecondaryColor3usvEXT, SecondaryColor3usv@4)
- GL_STUB(SecondaryColorPointer, _gloffset_SecondaryColorPointerEXT, SecondaryColorPointer@16)
- GL_STUB(WindowPos2d, _gloffset_WindowPos2dMESA, WindowPos2d@16)
- GL_STUB(WindowPos2dv, _gloffset_WindowPos2dvMESA, WindowPos2dv@4)
- GL_STUB(WindowPos2f, _gloffset_WindowPos2fMESA, WindowPos2f@8)
- GL_STUB(WindowPos2fv, _gloffset_WindowPos2fvMESA, WindowPos2fv@4)
- GL_STUB(WindowPos2i, _gloffset_WindowPos2iMESA, WindowPos2i@8)
- GL_STUB(WindowPos2iv, _gloffset_WindowPos2ivMESA, WindowPos2iv@4)
- GL_STUB(WindowPos2s, _gloffset_WindowPos2sMESA, WindowPos2s@8)
- GL_STUB(WindowPos2sv, _gloffset_WindowPos2svMESA, WindowPos2sv@4)
- GL_STUB(WindowPos3d, _gloffset_WindowPos3dMESA, WindowPos3d@24)
- GL_STUB(WindowPos3dv, _gloffset_WindowPos3dvMESA, WindowPos3dv@4)
- GL_STUB(WindowPos3f, _gloffset_WindowPos3fMESA, WindowPos3f@12)
- GL_STUB(WindowPos3fv, _gloffset_WindowPos3fvMESA, WindowPos3fv@4)
- GL_STUB(WindowPos3i, _gloffset_WindowPos3iMESA, WindowPos3i@12)
- GL_STUB(WindowPos3iv, _gloffset_WindowPos3ivMESA, WindowPos3iv@4)
- GL_STUB(WindowPos3s, _gloffset_WindowPos3sMESA, WindowPos3s@12)
- GL_STUB(WindowPos3sv, _gloffset_WindowPos3svMESA, WindowPos3sv@4)
- GL_STUB(BindBuffer, _gloffset_BindBufferARB, BindBuffer@8)
- GL_STUB(BufferData, _gloffset_BufferDataARB, BufferData@16)
- GL_STUB(BufferSubData, _gloffset_BufferSubDataARB, BufferSubData@16)
- GL_STUB(DeleteBuffers, _gloffset_DeleteBuffersARB, DeleteBuffers@8)
- GL_STUB(GenBuffers, _gloffset_GenBuffersARB, GenBuffers@8)
- GL_STUB(GetBufferParameteriv, _gloffset_GetBufferParameterivARB, GetBufferParameteriv@12)
- GL_STUB(GetBufferPointerv, _gloffset_GetBufferPointervARB, GetBufferPointerv@12)
- GL_STUB(GetBufferSubData, _gloffset_GetBufferSubDataARB, GetBufferSubData@16)
- GL_STUB(IsBuffer, _gloffset_IsBufferARB, IsBuffer@4)
- GL_STUB(MapBuffer, _gloffset_MapBufferARB, MapBuffer@8)
- GL_STUB(UnmapBuffer, _gloffset_UnmapBufferARB, UnmapBuffer@4)
- GL_STUB(GenQueries, _gloffset_GenQueriesARB, GenQueries@8)
- GL_STUB(DeleteQueries, _gloffset_DeleteQueriesARB, DeleteQueries@8)
- GL_STUB(IsQuery, _gloffset_IsQueryARB, IsQuery@4)
- GL_STUB(BeginQuery, _gloffset_BeginQueryARB, BeginQuery@8)
- GL_STUB(EndQuery, _gloffset_EndQueryARB, EndQuery@4)
- GL_STUB(GetQueryiv, _gloffset_GetQueryivARB, GetQueryiv@12)
- GL_STUB(GetQueryObjectiv, _gloffset_GetQueryObjectivARB, GetQueryObjectiv@12)
- GL_STUB(GetQueryObjectuiv, _gloffset_GetQueryObjectuivARB, GetQueryObjectuiv@12)
- GL_STUB(PointParameterfARB, _gloffset_PointParameterfEXT, PointParameterfARB@8)
- GL_STUB(PointParameterfvARB, _gloffset_PointParameterfvEXT, PointParameterfvARB@8)
- GL_STUB(WindowPos2dARB, _gloffset_WindowPos2dMESA, WindowPos2dARB@16)
- GL_STUB(WindowPos2fARB, _gloffset_WindowPos2fMESA, WindowPos2fARB@8)
- GL_STUB(WindowPos2iARB, _gloffset_WindowPos2iMESA, WindowPos2iARB@8)
- GL_STUB(WindowPos2sARB, _gloffset_WindowPos2sMESA, WindowPos2sARB@8)
- GL_STUB(WindowPos2dvARB, _gloffset_WindowPos2dvMESA, WindowPos2dvARB@4)
- GL_STUB(WindowPos2fvARB, _gloffset_WindowPos2fvMESA, WindowPos2fvARB@4)
- GL_STUB(WindowPos2ivARB, _gloffset_WindowPos2ivMESA, WindowPos2ivARB@4)
- GL_STUB(WindowPos2svARB, _gloffset_WindowPos2svMESA, WindowPos2svARB@4)
- GL_STUB(WindowPos3dARB, _gloffset_WindowPos3dMESA, WindowPos3dARB@24)
- GL_STUB(WindowPos3fARB, _gloffset_WindowPos3fMESA, WindowPos3fARB@12)
- GL_STUB(WindowPos3iARB, _gloffset_WindowPos3iMESA, WindowPos3iARB@12)
- GL_STUB(WindowPos3sARB, _gloffset_WindowPos3sMESA, WindowPos3sARB@12)
- GL_STUB(WindowPos3dvARB, _gloffset_WindowPos3dvMESA, WindowPos3dvARB@4)
- GL_STUB(WindowPos3fvARB, _gloffset_WindowPos3fvMESA, WindowPos3fvARB@4)
- GL_STUB(WindowPos3ivARB, _gloffset_WindowPos3ivMESA, WindowPos3ivARB@4)
- GL_STUB(WindowPos3svARB, _gloffset_WindowPos3svMESA, WindowPos3svARB@4)
- GL_STUB(VertexAttrib1sARB, _gloffset_VertexAttrib1sNV, VertexAttrib1sARB@8)
- GL_STUB(VertexAttrib1fARB, _gloffset_VertexAttrib1fNV, VertexAttrib1fARB@8)
- GL_STUB(VertexAttrib1dARB, _gloffset_VertexAttrib1dNV, VertexAttrib1dARB@12)
- GL_STUB(VertexAttrib2sARB, _gloffset_VertexAttrib2sNV, VertexAttrib2sARB@12)
- GL_STUB(VertexAttrib2fARB, _gloffset_VertexAttrib2fNV, VertexAttrib2fARB@12)
- GL_STUB(VertexAttrib2dARB, _gloffset_VertexAttrib2dNV, VertexAttrib2dARB@20)
- GL_STUB(VertexAttrib3sARB, _gloffset_VertexAttrib3sNV, VertexAttrib3sARB@16)
- GL_STUB(VertexAttrib3fARB, _gloffset_VertexAttrib3fNV, VertexAttrib3fARB@16)
- GL_STUB(VertexAttrib3dARB, _gloffset_VertexAttrib3dNV, VertexAttrib3dARB@28)
- GL_STUB(VertexAttrib4sARB, _gloffset_VertexAttrib4sNV, VertexAttrib4sARB@20)
- GL_STUB(VertexAttrib4fARB, _gloffset_VertexAttrib4fNV, VertexAttrib4fARB@20)
- GL_STUB(VertexAttrib4dARB, _gloffset_VertexAttrib4dNV, VertexAttrib4dARB@36)
- GL_STUB(VertexAttrib4NubARB, _gloffset_VertexAttrib4ubNV, VertexAttrib4NubARB@20)
- GL_STUB(VertexAttrib1svARB, _gloffset_VertexAttrib1svNV, VertexAttrib1svARB@8)
- GL_STUB(VertexAttrib1fvARB, _gloffset_VertexAttrib1fvNV, VertexAttrib1fvARB@8)
- GL_STUB(VertexAttrib1dvARB, _gloffset_VertexAttrib1dvNV, VertexAttrib1dvARB@8)
- GL_STUB(VertexAttrib2svARB, _gloffset_VertexAttrib2svNV, VertexAttrib2svARB@8)
- GL_STUB(VertexAttrib2fvARB, _gloffset_VertexAttrib2fvNV, VertexAttrib2fvARB@8)
- GL_STUB(VertexAttrib2dvARB, _gloffset_VertexAttrib2dvNV, VertexAttrib2dvARB@8)
- GL_STUB(VertexAttrib3svARB, _gloffset_VertexAttrib3svNV, VertexAttrib3svARB@8)
- GL_STUB(VertexAttrib3fvARB, _gloffset_VertexAttrib3fvNV, VertexAttrib3fvARB@8)
- GL_STUB(VertexAttrib3dvARB, _gloffset_VertexAttrib3dvNV, VertexAttrib3dvARB@8)
- GL_STUB(VertexAttrib4svARB, _gloffset_VertexAttrib4svNV, VertexAttrib4svARB@8)
- GL_STUB(VertexAttrib4fvARB, _gloffset_VertexAttrib4fvNV, VertexAttrib4fvARB@8)
- GL_STUB(VertexAttrib4dvARB, _gloffset_VertexAttrib4dvNV, VertexAttrib4dvARB@8)
- GL_STUB(VertexAttrib4NubvARB, _gloffset_VertexAttrib4ubvNV, VertexAttrib4NubvARB@8)
- GL_STUB(BindProgramARB, _gloffset_BindProgramNV, BindProgramARB@8)
- GL_STUB(DeleteProgramsARB, _gloffset_DeleteProgramsNV, DeleteProgramsARB@8)
- GL_STUB(GenProgramsARB, _gloffset_GenProgramsNV, GenProgramsARB@8)
- GL_STUB(IsProgramARB, _gloffset_IsProgramNV, IsProgramARB@4)
- GL_STUB(GetVertexAttribdvARB, _gloffset_GetVertexAttribdvNV, GetVertexAttribdvARB@12)
- GL_STUB(GetVertexAttribfvARB, _gloffset_GetVertexAttribfvNV, GetVertexAttribfvARB@12)
- GL_STUB(GetVertexAttribivARB, _gloffset_GetVertexAttribivNV, GetVertexAttribivARB@12)
- GL_STUB(GetVertexAttribPointervARB, _gloffset_GetVertexAttribPointervNV, GetVertexAttribPointervARB@12)
- GL_STUB(BlendColorEXT, _gloffset_BlendColor, BlendColorEXT@16)
- GL_STUB(TexImage3DEXT, _gloffset_TexImage3D, TexImage3DEXT@40)
- GL_STUB(TexSubImage3DEXT, _gloffset_TexSubImage3D, TexSubImage3DEXT@44)
- GL_STUB(TexSubImage1DEXT, _gloffset_TexSubImage1D, TexSubImage1DEXT@28)
- GL_STUB(TexSubImage2DEXT, _gloffset_TexSubImage2D, TexSubImage2DEXT@36)
- GL_STUB(CopyTexImage1DEXT, _gloffset_CopyTexImage1D, CopyTexImage1DEXT@28)
- GL_STUB(CopyTexImage2DEXT, _gloffset_CopyTexImage2D, CopyTexImage2DEXT@32)
- GL_STUB(CopyTexSubImage1DEXT, _gloffset_CopyTexSubImage1D, CopyTexSubImage1DEXT@24)
- GL_STUB(CopyTexSubImage2DEXT, _gloffset_CopyTexSubImage2D, CopyTexSubImage2DEXT@32)
- GL_STUB(CopyTexSubImage3DEXT, _gloffset_CopyTexSubImage3D, CopyTexSubImage3DEXT@36)
- GL_STUB(HistogramEXT, _gloffset_Histogram, HistogramEXT@16)
- GL_STUB(MinmaxEXT, _gloffset_Minmax, MinmaxEXT@12)
- GL_STUB(ResetHistogramEXT, _gloffset_ResetHistogram, ResetHistogramEXT@4)
- GL_STUB(ResetMinmaxEXT, _gloffset_ResetMinmax, ResetMinmaxEXT@4)
- GL_STUB(ConvolutionFilter1DEXT, _gloffset_ConvolutionFilter1D, ConvolutionFilter1DEXT@24)
- GL_STUB(ConvolutionFilter2DEXT, _gloffset_ConvolutionFilter2D, ConvolutionFilter2DEXT@28)
- GL_STUB(ConvolutionParameterfEXT, _gloffset_ConvolutionParameterf, ConvolutionParameterfEXT@12)
- GL_STUB(ConvolutionParameterfvEXT, _gloffset_ConvolutionParameterfv, ConvolutionParameterfvEXT@12)
- GL_STUB(ConvolutionParameteriEXT, _gloffset_ConvolutionParameteri, ConvolutionParameteriEXT@12)
- GL_STUB(ConvolutionParameterivEXT, _gloffset_ConvolutionParameteriv, ConvolutionParameterivEXT@12)
- GL_STUB(CopyConvolutionFilter1DEXT, _gloffset_CopyConvolutionFilter1D, CopyConvolutionFilter1DEXT@20)
- GL_STUB(CopyConvolutionFilter2DEXT, _gloffset_CopyConvolutionFilter2D, CopyConvolutionFilter2DEXT@24)
- GL_STUB(SeparableFilter2DEXT, _gloffset_SeparableFilter2D, SeparableFilter2DEXT@32)
- GL_STUB(ColorTableSGI, _gloffset_ColorTable, ColorTableSGI@24)
- GL_STUB(ColorTableParameterfvSGI, _gloffset_ColorTableParameterfv, ColorTableParameterfvSGI@12)
- GL_STUB(ColorTableParameterivSGI, _gloffset_ColorTableParameteriv, ColorTableParameterivSGI@12)
- GL_STUB(CopyColorTableSGI, _gloffset_CopyColorTable, CopyColorTableSGI@20)
- GL_STUB(BindTextureEXT, _gloffset_BindTexture, BindTextureEXT@8)
- GL_STUB(DeleteTexturesEXT, _gloffset_DeleteTextures, DeleteTexturesEXT@8)
- GL_STUB(PrioritizeTexturesEXT, _gloffset_PrioritizeTextures, PrioritizeTexturesEXT@12)
- GL_STUB(ArrayElementEXT, _gloffset_ArrayElement, ArrayElementEXT@4)
- GL_STUB(DrawArraysEXT, _gloffset_DrawArrays, DrawArraysEXT@12)
- GL_STUB(GetPointervEXT, _gloffset_GetPointerv, GetPointervEXT@8)
- GL_STUB(BlendEquationEXT, _gloffset_BlendEquation, BlendEquationEXT@4)
- GL_STUB(ColorSubTableEXT, _gloffset_ColorSubTable, ColorSubTableEXT@24)
- GL_STUB(CopyColorSubTableEXT, _gloffset_CopyColorSubTable, CopyColorSubTableEXT@20)
- GL_STUB(ColorTableEXT, _gloffset_ColorTable, ColorTableEXT@24)
- GL_STUB(DrawRangeElementsEXT, _gloffset_DrawRangeElements, DrawRangeElementsEXT@24)
- GL_STUB(SampleMaskEXT, _gloffset_SampleMaskSGIS, SampleMaskEXT@8)
- GL_STUB(SamplePatternEXT, _gloffset_SamplePatternSGIS, SamplePatternEXT@4)
- GL_STUB(DrawBuffersATI, _gloffset_DrawBuffersARB, DrawBuffersATI@8)
- GL_STUB(BlendEquationSeparateATI, _gloffset_BlendEquationSeparateEXT, BlendEquationSeparateATI@8)
- GL_STUB(BlendFuncSeparateINGR, _gloffset_BlendFuncSeparateEXT, BlendFuncSeparateINGR@16)
- GL_STUB(PointParameterfSGIS, _gloffset_PointParameterfEXT, PointParameterfSGIS@8)
- GL_STUB(PointParameterfvSGIS, _gloffset_PointParameterfvEXT, PointParameterfvSGIS@8)
+ GL_STUB_ALIAS(ActiveTexture, _gloffset_ActiveTextureARB, ActiveTexture@4, ActiveTextureARB, ActiveTextureARB@4)
+ GL_STUB_ALIAS(ClientActiveTexture, _gloffset_ClientActiveTextureARB, ClientActiveTexture@4, ClientActiveTextureARB, ClientActiveTextureARB@4)
+ GL_STUB_ALIAS(MultiTexCoord1d, _gloffset_MultiTexCoord1dARB, MultiTexCoord1d@12, MultiTexCoord1dARB, MultiTexCoord1dARB@12)
+ GL_STUB_ALIAS(MultiTexCoord1dv, _gloffset_MultiTexCoord1dvARB, MultiTexCoord1dv@8, MultiTexCoord1dvARB, MultiTexCoord1dvARB@8)
+ GL_STUB_ALIAS(MultiTexCoord1f, _gloffset_MultiTexCoord1fARB, MultiTexCoord1f@8, MultiTexCoord1fARB, MultiTexCoord1fARB@8)
+ GL_STUB_ALIAS(MultiTexCoord1fv, _gloffset_MultiTexCoord1fvARB, MultiTexCoord1fv@8, MultiTexCoord1fvARB, MultiTexCoord1fvARB@8)
+ GL_STUB_ALIAS(MultiTexCoord1i, _gloffset_MultiTexCoord1iARB, MultiTexCoord1i@8, MultiTexCoord1iARB, MultiTexCoord1iARB@8)
+ GL_STUB_ALIAS(MultiTexCoord1iv, _gloffset_MultiTexCoord1ivARB, MultiTexCoord1iv@8, MultiTexCoord1ivARB, MultiTexCoord1ivARB@8)
+ GL_STUB_ALIAS(MultiTexCoord1s, _gloffset_MultiTexCoord1sARB, MultiTexCoord1s@8, MultiTexCoord1sARB, MultiTexCoord1sARB@8)
+ GL_STUB_ALIAS(MultiTexCoord1sv, _gloffset_MultiTexCoord1svARB, MultiTexCoord1sv@8, MultiTexCoord1svARB, MultiTexCoord1svARB@8)
+ GL_STUB_ALIAS(MultiTexCoord2d, _gloffset_MultiTexCoord2dARB, MultiTexCoord2d@20, MultiTexCoord2dARB, MultiTexCoord2dARB@20)
+ GL_STUB_ALIAS(MultiTexCoord2dv, _gloffset_MultiTexCoord2dvARB, MultiTexCoord2dv@8, MultiTexCoord2dvARB, MultiTexCoord2dvARB@8)
+ GL_STUB_ALIAS(MultiTexCoord2f, _gloffset_MultiTexCoord2fARB, MultiTexCoord2f@12, MultiTexCoord2fARB, MultiTexCoord2fARB@12)
+ GL_STUB_ALIAS(MultiTexCoord2fv, _gloffset_MultiTexCoord2fvARB, MultiTexCoord2fv@8, MultiTexCoord2fvARB, MultiTexCoord2fvARB@8)
+ GL_STUB_ALIAS(MultiTexCoord2i, _gloffset_MultiTexCoord2iARB, MultiTexCoord2i@12, MultiTexCoord2iARB, MultiTexCoord2iARB@12)
+ GL_STUB_ALIAS(MultiTexCoord2iv, _gloffset_MultiTexCoord2ivARB, MultiTexCoord2iv@8, MultiTexCoord2ivARB, MultiTexCoord2ivARB@8)
+ GL_STUB_ALIAS(MultiTexCoord2s, _gloffset_MultiTexCoord2sARB, MultiTexCoord2s@12, MultiTexCoord2sARB, MultiTexCoord2sARB@12)
+ GL_STUB_ALIAS(MultiTexCoord2sv, _gloffset_MultiTexCoord2svARB, MultiTexCoord2sv@8, MultiTexCoord2svARB, MultiTexCoord2svARB@8)
+ GL_STUB_ALIAS(MultiTexCoord3d, _gloffset_MultiTexCoord3dARB, MultiTexCoord3d@28, MultiTexCoord3dARB, MultiTexCoord3dARB@28)
+ GL_STUB_ALIAS(MultiTexCoord3dv, _gloffset_MultiTexCoord3dvARB, MultiTexCoord3dv@8, MultiTexCoord3dvARB, MultiTexCoord3dvARB@8)
+ GL_STUB_ALIAS(MultiTexCoord3f, _gloffset_MultiTexCoord3fARB, MultiTexCoord3f@16, MultiTexCoord3fARB, MultiTexCoord3fARB@16)
+ GL_STUB_ALIAS(MultiTexCoord3fv, _gloffset_MultiTexCoord3fvARB, MultiTexCoord3fv@8, MultiTexCoord3fvARB, MultiTexCoord3fvARB@8)
+ GL_STUB_ALIAS(MultiTexCoord3i, _gloffset_MultiTexCoord3iARB, MultiTexCoord3i@16, MultiTexCoord3iARB, MultiTexCoord3iARB@16)
+ GL_STUB_ALIAS(MultiTexCoord3iv, _gloffset_MultiTexCoord3ivARB, MultiTexCoord3iv@8, MultiTexCoord3ivARB, MultiTexCoord3ivARB@8)
+ GL_STUB_ALIAS(MultiTexCoord3s, _gloffset_MultiTexCoord3sARB, MultiTexCoord3s@16, MultiTexCoord3sARB, MultiTexCoord3sARB@16)
+ GL_STUB_ALIAS(MultiTexCoord3sv, _gloffset_MultiTexCoord3svARB, MultiTexCoord3sv@8, MultiTexCoord3svARB, MultiTexCoord3svARB@8)
+ GL_STUB_ALIAS(MultiTexCoord4d, _gloffset_MultiTexCoord4dARB, MultiTexCoord4d@36, MultiTexCoord4dARB, MultiTexCoord4dARB@36)
+ GL_STUB_ALIAS(MultiTexCoord4dv, _gloffset_MultiTexCoord4dvARB, MultiTexCoord4dv@8, MultiTexCoord4dvARB, MultiTexCoord4dvARB@8)
+ GL_STUB_ALIAS(MultiTexCoord4f, _gloffset_MultiTexCoord4fARB, MultiTexCoord4f@20, MultiTexCoord4fARB, MultiTexCoord4fARB@20)
+ GL_STUB_ALIAS(MultiTexCoord4fv, _gloffset_MultiTexCoord4fvARB, MultiTexCoord4fv@8, MultiTexCoord4fvARB, MultiTexCoord4fvARB@8)
+ GL_STUB_ALIAS(MultiTexCoord4i, _gloffset_MultiTexCoord4iARB, MultiTexCoord4i@20, MultiTexCoord4iARB, MultiTexCoord4iARB@20)
+ GL_STUB_ALIAS(MultiTexCoord4iv, _gloffset_MultiTexCoord4ivARB, MultiTexCoord4iv@8, MultiTexCoord4ivARB, MultiTexCoord4ivARB@8)
+ GL_STUB_ALIAS(MultiTexCoord4s, _gloffset_MultiTexCoord4sARB, MultiTexCoord4s@20, MultiTexCoord4sARB, MultiTexCoord4sARB@20)
+ GL_STUB_ALIAS(MultiTexCoord4sv, _gloffset_MultiTexCoord4svARB, MultiTexCoord4sv@8, MultiTexCoord4svARB, MultiTexCoord4svARB@8)
+ GL_STUB_ALIAS(LoadTransposeMatrixf, _gloffset_LoadTransposeMatrixfARB, LoadTransposeMatrixf@4, LoadTransposeMatrixfARB, LoadTransposeMatrixfARB@4)
+ GL_STUB_ALIAS(LoadTransposeMatrixd, _gloffset_LoadTransposeMatrixdARB, LoadTransposeMatrixd@4, LoadTransposeMatrixdARB, LoadTransposeMatrixdARB@4)
+ GL_STUB_ALIAS(MultTransposeMatrixf, _gloffset_MultTransposeMatrixfARB, MultTransposeMatrixf@4, MultTransposeMatrixfARB, MultTransposeMatrixfARB@4)
+ GL_STUB_ALIAS(MultTransposeMatrixd, _gloffset_MultTransposeMatrixdARB, MultTransposeMatrixd@4, MultTransposeMatrixdARB, MultTransposeMatrixdARB@4)
+ GL_STUB_ALIAS(SampleCoverage, _gloffset_SampleCoverageARB, SampleCoverage@8, SampleCoverageARB, SampleCoverageARB@8)
+ GL_STUB_ALIAS(CompressedTexImage3D, _gloffset_CompressedTexImage3DARB, CompressedTexImage3D@36, CompressedTexImage3DARB, CompressedTexImage3DARB@36)
+ GL_STUB_ALIAS(CompressedTexImage2D, _gloffset_CompressedTexImage2DARB, CompressedTexImage2D@32, CompressedTexImage2DARB, CompressedTexImage2DARB@32)
+ GL_STUB_ALIAS(CompressedTexImage1D, _gloffset_CompressedTexImage1DARB, CompressedTexImage1D@28, CompressedTexImage1DARB, CompressedTexImage1DARB@28)
+ GL_STUB_ALIAS(CompressedTexSubImage3D, _gloffset_CompressedTexSubImage3DARB, CompressedTexSubImage3D@44, CompressedTexSubImage3DARB, CompressedTexSubImage3DARB@44)
+ GL_STUB_ALIAS(CompressedTexSubImage2D, _gloffset_CompressedTexSubImage2DARB, CompressedTexSubImage2D@36, CompressedTexSubImage2DARB, CompressedTexSubImage2DARB@36)
+ GL_STUB_ALIAS(CompressedTexSubImage1D, _gloffset_CompressedTexSubImage1DARB, CompressedTexSubImage1D@28, CompressedTexSubImage1DARB, CompressedTexSubImage1DARB@28)
+ GL_STUB_ALIAS(GetCompressedTexImage, _gloffset_GetCompressedTexImageARB, GetCompressedTexImage@12, GetCompressedTexImageARB, GetCompressedTexImageARB@12)
+ GL_STUB_ALIAS(BlendFuncSeparate, _gloffset_BlendFuncSeparateEXT, BlendFuncSeparate@16, BlendFuncSeparateEXT, BlendFuncSeparateEXT@16)
+ GL_STUB_ALIAS(FogCoordf, _gloffset_FogCoordfEXT, FogCoordf@4, FogCoordfEXT, FogCoordfEXT@4)
+ GL_STUB_ALIAS(FogCoordfv, _gloffset_FogCoordfvEXT, FogCoordfv@4, FogCoordfvEXT, FogCoordfvEXT@4)
+ GL_STUB_ALIAS(FogCoordd, _gloffset_FogCoorddEXT, FogCoordd@8, FogCoorddEXT, FogCoorddEXT@8)
+ GL_STUB_ALIAS(FogCoorddv, _gloffset_FogCoorddvEXT, FogCoorddv@4, FogCoorddvEXT, FogCoorddvEXT@4)
+ GL_STUB_ALIAS(FogCoordPointer, _gloffset_FogCoordPointerEXT, FogCoordPointer@12, FogCoordPointerEXT, FogCoordPointerEXT@12)
+ GL_STUB_ALIAS(MultiDrawArrays, _gloffset_MultiDrawArraysEXT, MultiDrawArrays@16, MultiDrawArraysEXT, MultiDrawArraysEXT@16)
+ GL_STUB_ALIAS(MultiDrawElements, _gloffset_MultiDrawElementsEXT, MultiDrawElements@20, MultiDrawElementsEXT, MultiDrawElementsEXT@20)
+ GL_STUB_ALIAS(PointParameterf, _gloffset_PointParameterfEXT, PointParameterf@8, PointParameterfEXT, PointParameterfEXT@8)
+ GL_STUB_ALIAS(PointParameterfv, _gloffset_PointParameterfvEXT, PointParameterfv@8, PointParameterfvEXT, PointParameterfvEXT@8)
+ GL_STUB_ALIAS(PointParameteri, _gloffset_PointParameteriNV, PointParameteri@8, PointParameteriNV, PointParameteriNV@8)
+ GL_STUB_ALIAS(PointParameteriv, _gloffset_PointParameterivNV, PointParameteriv@8, PointParameterivNV, PointParameterivNV@8)
+ GL_STUB_ALIAS(SecondaryColor3b, _gloffset_SecondaryColor3bEXT, SecondaryColor3b@12, SecondaryColor3bEXT, SecondaryColor3bEXT@12)
+ GL_STUB_ALIAS(SecondaryColor3bv, _gloffset_SecondaryColor3bvEXT, SecondaryColor3bv@4, SecondaryColor3bvEXT, SecondaryColor3bvEXT@4)
+ GL_STUB_ALIAS(SecondaryColor3d, _gloffset_SecondaryColor3dEXT, SecondaryColor3d@24, SecondaryColor3dEXT, SecondaryColor3dEXT@24)
+ GL_STUB_ALIAS(SecondaryColor3dv, _gloffset_SecondaryColor3dvEXT, SecondaryColor3dv@4, SecondaryColor3dvEXT, SecondaryColor3dvEXT@4)
+ GL_STUB_ALIAS(SecondaryColor3f, _gloffset_SecondaryColor3fEXT, SecondaryColor3f@12, SecondaryColor3fEXT, SecondaryColor3fEXT@12)
+ GL_STUB_ALIAS(SecondaryColor3fv, _gloffset_SecondaryColor3fvEXT, SecondaryColor3fv@4, SecondaryColor3fvEXT, SecondaryColor3fvEXT@4)
+ GL_STUB_ALIAS(SecondaryColor3i, _gloffset_SecondaryColor3iEXT, SecondaryColor3i@12, SecondaryColor3iEXT, SecondaryColor3iEXT@12)
+ GL_STUB_ALIAS(SecondaryColor3iv, _gloffset_SecondaryColor3ivEXT, SecondaryColor3iv@4, SecondaryColor3ivEXT, SecondaryColor3ivEXT@4)
+ GL_STUB_ALIAS(SecondaryColor3s, _gloffset_SecondaryColor3sEXT, SecondaryColor3s@12, SecondaryColor3sEXT, SecondaryColor3sEXT@12)
+ GL_STUB_ALIAS(SecondaryColor3sv, _gloffset_SecondaryColor3svEXT, SecondaryColor3sv@4, SecondaryColor3svEXT, SecondaryColor3svEXT@4)
+ GL_STUB_ALIAS(SecondaryColor3ub, _gloffset_SecondaryColor3ubEXT, SecondaryColor3ub@12, SecondaryColor3ubEXT, SecondaryColor3ubEXT@12)
+ GL_STUB_ALIAS(SecondaryColor3ubv, _gloffset_SecondaryColor3ubvEXT, SecondaryColor3ubv@4, SecondaryColor3ubvEXT, SecondaryColor3ubvEXT@4)
+ GL_STUB_ALIAS(SecondaryColor3ui, _gloffset_SecondaryColor3uiEXT, SecondaryColor3ui@12, SecondaryColor3uiEXT, SecondaryColor3uiEXT@12)
+ GL_STUB_ALIAS(SecondaryColor3uiv, _gloffset_SecondaryColor3uivEXT, SecondaryColor3uiv@4, SecondaryColor3uivEXT, SecondaryColor3uivEXT@4)
+ GL_STUB_ALIAS(SecondaryColor3us, _gloffset_SecondaryColor3usEXT, SecondaryColor3us@12, SecondaryColor3usEXT, SecondaryColor3usEXT@12)
+ GL_STUB_ALIAS(SecondaryColor3usv, _gloffset_SecondaryColor3usvEXT, SecondaryColor3usv@4, SecondaryColor3usvEXT, SecondaryColor3usvEXT@4)
+ GL_STUB_ALIAS(SecondaryColorPointer, _gloffset_SecondaryColorPointerEXT, SecondaryColorPointer@16, SecondaryColorPointerEXT, SecondaryColorPointerEXT@16)
+ GL_STUB_ALIAS(WindowPos2d, _gloffset_WindowPos2dMESA, WindowPos2d@16, WindowPos2dMESA, WindowPos2dMESA@16)
+ GL_STUB_ALIAS(WindowPos2dv, _gloffset_WindowPos2dvMESA, WindowPos2dv@4, WindowPos2dvMESA, WindowPos2dvMESA@4)
+ GL_STUB_ALIAS(WindowPos2f, _gloffset_WindowPos2fMESA, WindowPos2f@8, WindowPos2fMESA, WindowPos2fMESA@8)
+ GL_STUB_ALIAS(WindowPos2fv, _gloffset_WindowPos2fvMESA, WindowPos2fv@4, WindowPos2fvMESA, WindowPos2fvMESA@4)
+ GL_STUB_ALIAS(WindowPos2i, _gloffset_WindowPos2iMESA, WindowPos2i@8, WindowPos2iMESA, WindowPos2iMESA@8)
+ GL_STUB_ALIAS(WindowPos2iv, _gloffset_WindowPos2ivMESA, WindowPos2iv@4, WindowPos2ivMESA, WindowPos2ivMESA@4)
+ GL_STUB_ALIAS(WindowPos2s, _gloffset_WindowPos2sMESA, WindowPos2s@8, WindowPos2sMESA, WindowPos2sMESA@8)
+ GL_STUB_ALIAS(WindowPos2sv, _gloffset_WindowPos2svMESA, WindowPos2sv@4, WindowPos2svMESA, WindowPos2svMESA@4)
+ GL_STUB_ALIAS(WindowPos3d, _gloffset_WindowPos3dMESA, WindowPos3d@24, WindowPos3dMESA, WindowPos3dMESA@24)
+ GL_STUB_ALIAS(WindowPos3dv, _gloffset_WindowPos3dvMESA, WindowPos3dv@4, WindowPos3dvMESA, WindowPos3dvMESA@4)
+ GL_STUB_ALIAS(WindowPos3f, _gloffset_WindowPos3fMESA, WindowPos3f@12, WindowPos3fMESA, WindowPos3fMESA@12)
+ GL_STUB_ALIAS(WindowPos3fv, _gloffset_WindowPos3fvMESA, WindowPos3fv@4, WindowPos3fvMESA, WindowPos3fvMESA@4)
+ GL_STUB_ALIAS(WindowPos3i, _gloffset_WindowPos3iMESA, WindowPos3i@12, WindowPos3iMESA, WindowPos3iMESA@12)
+ GL_STUB_ALIAS(WindowPos3iv, _gloffset_WindowPos3ivMESA, WindowPos3iv@4, WindowPos3ivMESA, WindowPos3ivMESA@4)
+ GL_STUB_ALIAS(WindowPos3s, _gloffset_WindowPos3sMESA, WindowPos3s@12, WindowPos3sMESA, WindowPos3sMESA@12)
+ GL_STUB_ALIAS(WindowPos3sv, _gloffset_WindowPos3svMESA, WindowPos3sv@4, WindowPos3svMESA, WindowPos3svMESA@4)
+ GL_STUB_ALIAS(BindBuffer, _gloffset_BindBufferARB, BindBuffer@8, BindBufferARB, BindBufferARB@8)
+ GL_STUB_ALIAS(BufferData, _gloffset_BufferDataARB, BufferData@16, BufferDataARB, BufferDataARB@16)
+ GL_STUB_ALIAS(BufferSubData, _gloffset_BufferSubDataARB, BufferSubData@16, BufferSubDataARB, BufferSubDataARB@16)
+ GL_STUB_ALIAS(DeleteBuffers, _gloffset_DeleteBuffersARB, DeleteBuffers@8, DeleteBuffersARB, DeleteBuffersARB@8)
+ GL_STUB_ALIAS(GenBuffers, _gloffset_GenBuffersARB, GenBuffers@8, GenBuffersARB, GenBuffersARB@8)
+ GL_STUB_ALIAS(GetBufferParameteriv, _gloffset_GetBufferParameterivARB, GetBufferParameteriv@12, GetBufferParameterivARB, GetBufferParameterivARB@12)
+ GL_STUB_ALIAS(GetBufferPointerv, _gloffset_GetBufferPointervARB, GetBufferPointerv@12, GetBufferPointervARB, GetBufferPointervARB@12)
+ GL_STUB_ALIAS(GetBufferSubData, _gloffset_GetBufferSubDataARB, GetBufferSubData@16, GetBufferSubDataARB, GetBufferSubDataARB@16)
+ GL_STUB_ALIAS(IsBuffer, _gloffset_IsBufferARB, IsBuffer@4, IsBufferARB, IsBufferARB@4)
+ GL_STUB_ALIAS(MapBuffer, _gloffset_MapBufferARB, MapBuffer@8, MapBufferARB, MapBufferARB@8)
+ GL_STUB_ALIAS(UnmapBuffer, _gloffset_UnmapBufferARB, UnmapBuffer@4, UnmapBufferARB, UnmapBufferARB@4)
+ GL_STUB_ALIAS(GenQueries, _gloffset_GenQueriesARB, GenQueries@8, GenQueriesARB, GenQueriesARB@8)
+ GL_STUB_ALIAS(DeleteQueries, _gloffset_DeleteQueriesARB, DeleteQueries@8, DeleteQueriesARB, DeleteQueriesARB@8)
+ GL_STUB_ALIAS(IsQuery, _gloffset_IsQueryARB, IsQuery@4, IsQueryARB, IsQueryARB@4)
+ GL_STUB_ALIAS(BeginQuery, _gloffset_BeginQueryARB, BeginQuery@8, BeginQueryARB, BeginQueryARB@8)
+ GL_STUB_ALIAS(EndQuery, _gloffset_EndQueryARB, EndQuery@4, EndQueryARB, EndQueryARB@4)
+ GL_STUB_ALIAS(GetQueryiv, _gloffset_GetQueryivARB, GetQueryiv@12, GetQueryivARB, GetQueryivARB@12)
+ GL_STUB_ALIAS(GetQueryObjectiv, _gloffset_GetQueryObjectivARB, GetQueryObjectiv@12, GetQueryObjectivARB, GetQueryObjectivARB@12)
+ GL_STUB_ALIAS(GetQueryObjectuiv, _gloffset_GetQueryObjectuivARB, GetQueryObjectuiv@12, GetQueryObjectuivARB, GetQueryObjectuivARB@12)
+ GL_STUB_ALIAS(PointParameterfARB, _gloffset_PointParameterfEXT, PointParameterfARB@8, PointParameterfEXT, PointParameterfEXT@8)
+ GL_STUB_ALIAS(PointParameterfvARB, _gloffset_PointParameterfvEXT, PointParameterfvARB@8, PointParameterfvEXT, PointParameterfvEXT@8)
+ GL_STUB_ALIAS(WindowPos2dARB, _gloffset_WindowPos2dMESA, WindowPos2dARB@16, WindowPos2dMESA, WindowPos2dMESA@16)
+ GL_STUB_ALIAS(WindowPos2fARB, _gloffset_WindowPos2fMESA, WindowPos2fARB@8, WindowPos2fMESA, WindowPos2fMESA@8)
+ GL_STUB_ALIAS(WindowPos2iARB, _gloffset_WindowPos2iMESA, WindowPos2iARB@8, WindowPos2iMESA, WindowPos2iMESA@8)
+ GL_STUB_ALIAS(WindowPos2sARB, _gloffset_WindowPos2sMESA, WindowPos2sARB@8, WindowPos2sMESA, WindowPos2sMESA@8)
+ GL_STUB_ALIAS(WindowPos2dvARB, _gloffset_WindowPos2dvMESA, WindowPos2dvARB@4, WindowPos2dvMESA, WindowPos2dvMESA@4)
+ GL_STUB_ALIAS(WindowPos2fvARB, _gloffset_WindowPos2fvMESA, WindowPos2fvARB@4, WindowPos2fvMESA, WindowPos2fvMESA@4)
+ GL_STUB_ALIAS(WindowPos2ivARB, _gloffset_WindowPos2ivMESA, WindowPos2ivARB@4, WindowPos2ivMESA, WindowPos2ivMESA@4)
+ GL_STUB_ALIAS(WindowPos2svARB, _gloffset_WindowPos2svMESA, WindowPos2svARB@4, WindowPos2svMESA, WindowPos2svMESA@4)
+ GL_STUB_ALIAS(WindowPos3dARB, _gloffset_WindowPos3dMESA, WindowPos3dARB@24, WindowPos3dMESA, WindowPos3dMESA@24)
+ GL_STUB_ALIAS(WindowPos3fARB, _gloffset_WindowPos3fMESA, WindowPos3fARB@12, WindowPos3fMESA, WindowPos3fMESA@12)
+ GL_STUB_ALIAS(WindowPos3iARB, _gloffset_WindowPos3iMESA, WindowPos3iARB@12, WindowPos3iMESA, WindowPos3iMESA@12)
+ GL_STUB_ALIAS(WindowPos3sARB, _gloffset_WindowPos3sMESA, WindowPos3sARB@12, WindowPos3sMESA, WindowPos3sMESA@12)
+ GL_STUB_ALIAS(WindowPos3dvARB, _gloffset_WindowPos3dvMESA, WindowPos3dvARB@4, WindowPos3dvMESA, WindowPos3dvMESA@4)
+ GL_STUB_ALIAS(WindowPos3fvARB, _gloffset_WindowPos3fvMESA, WindowPos3fvARB@4, WindowPos3fvMESA, WindowPos3fvMESA@4)
+ GL_STUB_ALIAS(WindowPos3ivARB, _gloffset_WindowPos3ivMESA, WindowPos3ivARB@4, WindowPos3ivMESA, WindowPos3ivMESA@4)
+ GL_STUB_ALIAS(WindowPos3svARB, _gloffset_WindowPos3svMESA, WindowPos3svARB@4, WindowPos3svMESA, WindowPos3svMESA@4)
+ GL_STUB_ALIAS(VertexAttrib1sARB, _gloffset_VertexAttrib1sNV, VertexAttrib1sARB@8, VertexAttrib1sNV, VertexAttrib1sNV@8)
+ GL_STUB_ALIAS(VertexAttrib1fARB, _gloffset_VertexAttrib1fNV, VertexAttrib1fARB@8, VertexAttrib1fNV, VertexAttrib1fNV@8)
+ GL_STUB_ALIAS(VertexAttrib1dARB, _gloffset_VertexAttrib1dNV, VertexAttrib1dARB@12, VertexAttrib1dNV, VertexAttrib1dNV@12)
+ GL_STUB_ALIAS(VertexAttrib2sARB, _gloffset_VertexAttrib2sNV, VertexAttrib2sARB@12, VertexAttrib2sNV, VertexAttrib2sNV@12)
+ GL_STUB_ALIAS(VertexAttrib2fARB, _gloffset_VertexAttrib2fNV, VertexAttrib2fARB@12, VertexAttrib2fNV, VertexAttrib2fNV@12)
+ GL_STUB_ALIAS(VertexAttrib2dARB, _gloffset_VertexAttrib2dNV, VertexAttrib2dARB@20, VertexAttrib2dNV, VertexAttrib2dNV@20)
+ GL_STUB_ALIAS(VertexAttrib3sARB, _gloffset_VertexAttrib3sNV, VertexAttrib3sARB@16, VertexAttrib3sNV, VertexAttrib3sNV@16)
+ GL_STUB_ALIAS(VertexAttrib3fARB, _gloffset_VertexAttrib3fNV, VertexAttrib3fARB@16, VertexAttrib3fNV, VertexAttrib3fNV@16)
+ GL_STUB_ALIAS(VertexAttrib3dARB, _gloffset_VertexAttrib3dNV, VertexAttrib3dARB@28, VertexAttrib3dNV, VertexAttrib3dNV@28)
+ GL_STUB_ALIAS(VertexAttrib4sARB, _gloffset_VertexAttrib4sNV, VertexAttrib4sARB@20, VertexAttrib4sNV, VertexAttrib4sNV@20)
+ GL_STUB_ALIAS(VertexAttrib4fARB, _gloffset_VertexAttrib4fNV, VertexAttrib4fARB@20, VertexAttrib4fNV, VertexAttrib4fNV@20)
+ GL_STUB_ALIAS(VertexAttrib4dARB, _gloffset_VertexAttrib4dNV, VertexAttrib4dARB@36, VertexAttrib4dNV, VertexAttrib4dNV@36)
+ GL_STUB_ALIAS(VertexAttrib4NubARB, _gloffset_VertexAttrib4ubNV, VertexAttrib4NubARB@20, VertexAttrib4ubNV, VertexAttrib4ubNV@20)
+ GL_STUB_ALIAS(VertexAttrib1svARB, _gloffset_VertexAttrib1svNV, VertexAttrib1svARB@8, VertexAttrib1svNV, VertexAttrib1svNV@8)
+ GL_STUB_ALIAS(VertexAttrib1fvARB, _gloffset_VertexAttrib1fvNV, VertexAttrib1fvARB@8, VertexAttrib1fvNV, VertexAttrib1fvNV@8)
+ GL_STUB_ALIAS(VertexAttrib1dvARB, _gloffset_VertexAttrib1dvNV, VertexAttrib1dvARB@8, VertexAttrib1dvNV, VertexAttrib1dvNV@8)
+ GL_STUB_ALIAS(VertexAttrib2svARB, _gloffset_VertexAttrib2svNV, VertexAttrib2svARB@8, VertexAttrib2svNV, VertexAttrib2svNV@8)
+ GL_STUB_ALIAS(VertexAttrib2fvARB, _gloffset_VertexAttrib2fvNV, VertexAttrib2fvARB@8, VertexAttrib2fvNV, VertexAttrib2fvNV@8)
+ GL_STUB_ALIAS(VertexAttrib2dvARB, _gloffset_VertexAttrib2dvNV, VertexAttrib2dvARB@8, VertexAttrib2dvNV, VertexAttrib2dvNV@8)
+ GL_STUB_ALIAS(VertexAttrib3svARB, _gloffset_VertexAttrib3svNV, VertexAttrib3svARB@8, VertexAttrib3svNV, VertexAttrib3svNV@8)
+ GL_STUB_ALIAS(VertexAttrib3fvARB, _gloffset_VertexAttrib3fvNV, VertexAttrib3fvARB@8, VertexAttrib3fvNV, VertexAttrib3fvNV@8)
+ GL_STUB_ALIAS(VertexAttrib3dvARB, _gloffset_VertexAttrib3dvNV, VertexAttrib3dvARB@8, VertexAttrib3dvNV, VertexAttrib3dvNV@8)
+ GL_STUB_ALIAS(VertexAttrib4svARB, _gloffset_VertexAttrib4svNV, VertexAttrib4svARB@8, VertexAttrib4svNV, VertexAttrib4svNV@8)
+ GL_STUB_ALIAS(VertexAttrib4fvARB, _gloffset_VertexAttrib4fvNV, VertexAttrib4fvARB@8, VertexAttrib4fvNV, VertexAttrib4fvNV@8)
+ GL_STUB_ALIAS(VertexAttrib4dvARB, _gloffset_VertexAttrib4dvNV, VertexAttrib4dvARB@8, VertexAttrib4dvNV, VertexAttrib4dvNV@8)
+ GL_STUB_ALIAS(VertexAttrib4NubvARB, _gloffset_VertexAttrib4ubvNV, VertexAttrib4NubvARB@8, VertexAttrib4ubvNV, VertexAttrib4ubvNV@8)
+ GL_STUB_ALIAS(BindProgramARB, _gloffset_BindProgramNV, BindProgramARB@8, BindProgramNV, BindProgramNV@8)
+ GL_STUB_ALIAS(DeleteProgramsARB, _gloffset_DeleteProgramsNV, DeleteProgramsARB@8, DeleteProgramsNV, DeleteProgramsNV@8)
+ GL_STUB_ALIAS(GenProgramsARB, _gloffset_GenProgramsNV, GenProgramsARB@8, GenProgramsNV, GenProgramsNV@8)
+ GL_STUB_ALIAS(IsProgramARB, _gloffset_IsProgramNV, IsProgramARB@4, IsProgramNV, IsProgramNV@4)
+ GL_STUB_ALIAS(GetVertexAttribdvARB, _gloffset_GetVertexAttribdvNV, GetVertexAttribdvARB@12, GetVertexAttribdvNV, GetVertexAttribdvNV@12)
+ GL_STUB_ALIAS(GetVertexAttribfvARB, _gloffset_GetVertexAttribfvNV, GetVertexAttribfvARB@12, GetVertexAttribfvNV, GetVertexAttribfvNV@12)
+ GL_STUB_ALIAS(GetVertexAttribivARB, _gloffset_GetVertexAttribivNV, GetVertexAttribivARB@12, GetVertexAttribivNV, GetVertexAttribivNV@12)
+ GL_STUB_ALIAS(GetVertexAttribPointervARB, _gloffset_GetVertexAttribPointervNV, GetVertexAttribPointervARB@12, GetVertexAttribPointervNV, GetVertexAttribPointervNV@12)
+ GL_STUB_ALIAS(BlendColorEXT, _gloffset_BlendColor, BlendColorEXT@16, BlendColor, BlendColor@16)
+ GL_STUB_ALIAS(TexImage3DEXT, _gloffset_TexImage3D, TexImage3DEXT@40, TexImage3D, TexImage3D@40)
+ GL_STUB_ALIAS(TexSubImage3DEXT, _gloffset_TexSubImage3D, TexSubImage3DEXT@44, TexSubImage3D, TexSubImage3D@44)
+ GL_STUB_ALIAS(TexSubImage1DEXT, _gloffset_TexSubImage1D, TexSubImage1DEXT@28, TexSubImage1D, TexSubImage1D@28)
+ GL_STUB_ALIAS(TexSubImage2DEXT, _gloffset_TexSubImage2D, TexSubImage2DEXT@36, TexSubImage2D, TexSubImage2D@36)
+ GL_STUB_ALIAS(CopyTexImage1DEXT, _gloffset_CopyTexImage1D, CopyTexImage1DEXT@28, CopyTexImage1D, CopyTexImage1D@28)
+ GL_STUB_ALIAS(CopyTexImage2DEXT, _gloffset_CopyTexImage2D, CopyTexImage2DEXT@32, CopyTexImage2D, CopyTexImage2D@32)
+ GL_STUB_ALIAS(CopyTexSubImage1DEXT, _gloffset_CopyTexSubImage1D, CopyTexSubImage1DEXT@24, CopyTexSubImage1D, CopyTexSubImage1D@24)
+ GL_STUB_ALIAS(CopyTexSubImage2DEXT, _gloffset_CopyTexSubImage2D, CopyTexSubImage2DEXT@32, CopyTexSubImage2D, CopyTexSubImage2D@32)
+ GL_STUB_ALIAS(CopyTexSubImage3DEXT, _gloffset_CopyTexSubImage3D, CopyTexSubImage3DEXT@36, CopyTexSubImage3D, CopyTexSubImage3D@36)
+ GL_STUB_ALIAS(HistogramEXT, _gloffset_Histogram, HistogramEXT@16, Histogram, Histogram@16)
+ GL_STUB_ALIAS(MinmaxEXT, _gloffset_Minmax, MinmaxEXT@12, Minmax, Minmax@12)
+ GL_STUB_ALIAS(ResetHistogramEXT, _gloffset_ResetHistogram, ResetHistogramEXT@4, ResetHistogram, ResetHistogram@4)
+ GL_STUB_ALIAS(ResetMinmaxEXT, _gloffset_ResetMinmax, ResetMinmaxEXT@4, ResetMinmax, ResetMinmax@4)
+ GL_STUB_ALIAS(ConvolutionFilter1DEXT, _gloffset_ConvolutionFilter1D, ConvolutionFilter1DEXT@24, ConvolutionFilter1D, ConvolutionFilter1D@24)
+ GL_STUB_ALIAS(ConvolutionFilter2DEXT, _gloffset_ConvolutionFilter2D, ConvolutionFilter2DEXT@28, ConvolutionFilter2D, ConvolutionFilter2D@28)
+ GL_STUB_ALIAS(ConvolutionParameterfEXT, _gloffset_ConvolutionParameterf, ConvolutionParameterfEXT@12, ConvolutionParameterf, ConvolutionParameterf@12)
+ GL_STUB_ALIAS(ConvolutionParameterfvEXT, _gloffset_ConvolutionParameterfv, ConvolutionParameterfvEXT@12, ConvolutionParameterfv, ConvolutionParameterfv@12)
+ GL_STUB_ALIAS(ConvolutionParameteriEXT, _gloffset_ConvolutionParameteri, ConvolutionParameteriEXT@12, ConvolutionParameteri, ConvolutionParameteri@12)
+ GL_STUB_ALIAS(ConvolutionParameterivEXT, _gloffset_ConvolutionParameteriv, ConvolutionParameterivEXT@12, ConvolutionParameteriv, ConvolutionParameteriv@12)
+ GL_STUB_ALIAS(CopyConvolutionFilter1DEXT, _gloffset_CopyConvolutionFilter1D, CopyConvolutionFilter1DEXT@20, CopyConvolutionFilter1D, CopyConvolutionFilter1D@20)
+ GL_STUB_ALIAS(CopyConvolutionFilter2DEXT, _gloffset_CopyConvolutionFilter2D, CopyConvolutionFilter2DEXT@24, CopyConvolutionFilter2D, CopyConvolutionFilter2D@24)
+ GL_STUB_ALIAS(SeparableFilter2DEXT, _gloffset_SeparableFilter2D, SeparableFilter2DEXT@32, SeparableFilter2D, SeparableFilter2D@32)
+ GL_STUB_ALIAS(ColorTableSGI, _gloffset_ColorTable, ColorTableSGI@24, ColorTable, ColorTable@24)
+ GL_STUB_ALIAS(ColorTableParameterfvSGI, _gloffset_ColorTableParameterfv, ColorTableParameterfvSGI@12, ColorTableParameterfv, ColorTableParameterfv@12)
+ GL_STUB_ALIAS(ColorTableParameterivSGI, _gloffset_ColorTableParameteriv, ColorTableParameterivSGI@12, ColorTableParameteriv, ColorTableParameteriv@12)
+ GL_STUB_ALIAS(CopyColorTableSGI, _gloffset_CopyColorTable, CopyColorTableSGI@20, CopyColorTable, CopyColorTable@20)
+ GL_STUB_ALIAS(BindTextureEXT, _gloffset_BindTexture, BindTextureEXT@8, BindTexture, BindTexture@8)
+ GL_STUB_ALIAS(DeleteTexturesEXT, _gloffset_DeleteTextures, DeleteTexturesEXT@8, DeleteTextures, DeleteTextures@8)
+ GL_STUB_ALIAS(PrioritizeTexturesEXT, _gloffset_PrioritizeTextures, PrioritizeTexturesEXT@12, PrioritizeTextures, PrioritizeTextures@12)
+ GL_STUB_ALIAS(ArrayElementEXT, _gloffset_ArrayElement, ArrayElementEXT@4, ArrayElement, ArrayElement@4)
+ GL_STUB_ALIAS(DrawArraysEXT, _gloffset_DrawArrays, DrawArraysEXT@12, DrawArrays, DrawArrays@12)
+ GL_STUB_ALIAS(GetPointervEXT, _gloffset_GetPointerv, GetPointervEXT@8, GetPointerv, GetPointerv@8)
+ GL_STUB_ALIAS(BlendEquationEXT, _gloffset_BlendEquation, BlendEquationEXT@4, BlendEquation, BlendEquation@4)
+ GL_STUB_ALIAS(ColorSubTableEXT, _gloffset_ColorSubTable, ColorSubTableEXT@24, ColorSubTable, ColorSubTable@24)
+ GL_STUB_ALIAS(CopyColorSubTableEXT, _gloffset_CopyColorSubTable, CopyColorSubTableEXT@20, CopyColorSubTable, CopyColorSubTable@20)
+ GL_STUB_ALIAS(ColorTableEXT, _gloffset_ColorTable, ColorTableEXT@24, ColorTable, ColorTable@24)
+ GL_STUB_ALIAS(DrawRangeElementsEXT, _gloffset_DrawRangeElements, DrawRangeElementsEXT@24, DrawRangeElements, DrawRangeElements@24)
+ GL_STUB_ALIAS(SampleMaskEXT, _gloffset_SampleMaskSGIS, SampleMaskEXT@8, SampleMaskSGIS, SampleMaskSGIS@8)
+ GL_STUB_ALIAS(SamplePatternEXT, _gloffset_SamplePatternSGIS, SamplePatternEXT@4, SamplePatternSGIS, SamplePatternSGIS@4)
+ GL_STUB_ALIAS(DrawBuffersATI, _gloffset_DrawBuffersARB, DrawBuffersATI@8, DrawBuffersARB, DrawBuffersARB@8)
+ GL_STUB_ALIAS(BlendEquationSeparateATI, _gloffset_BlendEquationSeparateEXT, BlendEquationSeparateATI@8, BlendEquationSeparateEXT, BlendEquationSeparateEXT@8)
+ GL_STUB_ALIAS(BlendFuncSeparateINGR, _gloffset_BlendFuncSeparateEXT, BlendFuncSeparateINGR@16, BlendFuncSeparateEXT, BlendFuncSeparateEXT@16)
+ GL_STUB_ALIAS(PointParameterfSGIS, _gloffset_PointParameterfEXT, PointParameterfSGIS@8, PointParameterfEXT, PointParameterfEXT@8)
+ GL_STUB_ALIAS(PointParameterfvSGIS, _gloffset_PointParameterfvEXT, PointParameterfvSGIS@8, PointParameterfvEXT, PointParameterfvEXT@8)
+
+#if defined(GLX_USE_TLS) && defined(__linux__)
+ .section ".note.ABI-tag", "a"
+ .p2align 2
+ .long 1f - 0f /* name length */
+ .long 3f - 2f /* data length */
+ .long 1 /* note length */
+0: .asciz "GNU" /* vendor name */
+1: .p2align 2
+2: .long 0 /* note data: the ABI tag */
+ .long 2,4,20 /* Minimum kernel version w/TLS */
+3: .p2align 2 /* pad out section */
+#endif /* GLX_USE_TLS */
#endif /* __WIN32__ */