Remove MX support due to the complexity of supporting both MX and Core contexts

This commit is contained in:
Nigel Stewart 2015-11-19 21:12:48 +10:00
parent 01b33567e5
commit a4aa9b2717
27 changed files with 224 additions and 582 deletions

View File

@ -81,7 +81,7 @@ endif
INCLUDE = -Iinclude INCLUDE = -Iinclude
CFLAGS = $(OPT) $(WARN) $(INCLUDE) $(CFLAGS.EXTRA) CFLAGS = $(OPT) $(WARN) $(INCLUDE) $(CFLAGS.EXTRA)
all debug: glew.lib glew.lib.mx glew.bin all debug: glew.lib glew.bin
# GLEW shared and static libraries # GLEW shared and static libraries
@ -96,11 +96,6 @@ LIB.OBJS := $(LIB.OBJS:.c=.o)
LIB.SOBJS := $(addprefix tmp/$(SYSTEM)/default/shared/,$(LIB.SRCS.NAMES)) LIB.SOBJS := $(addprefix tmp/$(SYSTEM)/default/shared/,$(LIB.SRCS.NAMES))
LIB.SOBJS := $(LIB.SOBJS:.c=.o) LIB.SOBJS := $(LIB.SOBJS:.c=.o)
LIB.OBJS.MX := $(addprefix tmp/$(SYSTEM)/mx/static/,$(LIB.SRCS.NAMES))
LIB.OBJS.MX := $(LIB.OBJS.MX:.c=.o)
LIB.SOBJS.MX := $(addprefix tmp/$(SYSTEM)/mx/shared/,$(LIB.SRCS.NAMES))
LIB.SOBJS.MX := $(LIB.SOBJS.MX:.c=.o)
glew.lib: lib lib/$(LIB.SHARED) lib/$(LIB.STATIC) glew.pc glew.lib: lib lib/$(LIB.SHARED) lib/$(LIB.STATIC) glew.pc
lib: lib:
@ -150,54 +145,6 @@ glew.pc: glew.pc.in
-e "s|@requireslib@|$(LIBGLU)|g" \ -e "s|@requireslib@|$(LIBGLU)|g" \
< $< > $@ < $< > $@
# GLEW MX static and shared libraries
glew.lib.mx: lib lib/$(LIB.SHARED.MX) lib/$(LIB.STATIC.MX) glewmx.pc
lib/$(LIB.STATIC.MX): $(LIB.OBJS.MX)
ifneq ($(AR),)
$(AR) $(ARFLAGS) $@ $^
else ifneq ($(LIBTOOL),)
$(LIBTOOL) $@ $^
endif
ifneq ($(STRIP),)
$(STRIP) -x $@
endif
lib/$(LIB.SHARED.MX): $(LIB.SOBJS.MX)
$(LD) $(LDFLAGS.SO.MX) -o $@ $^ $(LIB.LDFLAGS) $(LIB.LIBS)
ifneq ($(LN),)
$(LN) $(LIB.SHARED.MX) lib/$(LIB.SONAME.MX)
$(LN) $(LIB.SHARED.MX) lib/$(LIB.DEVLNK.MX)
endif
ifneq ($(STRIP),)
$(STRIP) -x $@
endif
tmp/$(SYSTEM)/mx/static/glew.o: src/glew.c include/GL/glew.h include/GL/wglew.h include/GL/glxew.h
@mkdir -p $(dir $@)
$(CC) -DGLEW_NO_GLU -DGLEW_MX -DGLEW_STATIC $(CFLAGS) $(CFLAGS.SO) -o $@ -c $<
tmp/$(SYSTEM)/mx/shared/glew.o: src/glew.c include/GL/glew.h include/GL/wglew.h include/GL/glxew.h
@mkdir -p $(dir $@)
$(CC) -DGLEW_NO_GLU -DGLEW_MX -DGLEW_BUILD $(CFLAGS) $(CFLAGS.SO) -o $@ -c $<
# Force re-write of glewmx.pc, GLEW_DEST can vary
.PHONY: glewmx.pc
glewmx.pc: glew.pc.in
sed \
-e "s|@prefix@|$(GLEW_PREFIX)|g" \
-e "s|@libdir@|$(LIBDIR)|g" \
-e "s|@exec_prefix@|$(BINDIR)|g" \
-e "s|@includedir@|$(INCDIR)|g" \
-e "s|@version@|$(GLEW_VERSION)|g" \
-e "s|@cflags@|-DGLEW_MX|g" \
-e "s|@libname@|$(NAME)mx|g" \
-e "s|@requireslib@|$(LIBGLU)|g" \
< $< > $@
# GLEW utility programs # GLEW utility programs
BIN.LIBS = -Llib $(LDFLAGS.DYNAMIC) -l$(NAME) $(LDFLAGS.EXTRA) $(LDFLAGS.GL) BIN.LIBS = -Llib $(LDFLAGS.DYNAMIC) -l$(NAME) $(LDFLAGS.EXTRA) $(LDFLAGS.GL)
@ -245,12 +192,10 @@ $(VISUALINFO.BIN.OBJ): $(VISUALINFO.BIN.SRC) include/GL/glew.h include/GL/wglew.
# Install targets # Install targets
install.all: install install.mx install.bin install.all: install install.bin
install: install.include install.lib install.pkgconfig install: install.include install.lib install.pkgconfig
install.mx: install.include install.lib.mx install.pkgconfig.mx
install.lib: glew.lib install.lib: glew.lib
$(INSTALL) -d -m 0755 "$(DESTDIR)$(LIBDIR)" $(INSTALL) -d -m 0755 "$(DESTDIR)$(LIBDIR)"
# runtime # runtime
@ -273,27 +218,6 @@ ifneq ($(LN),)
endif endif
$(INSTALL) -m 0644 lib/$(LIB.STATIC) "$(DESTDIR)$(LIBDIR)/" $(INSTALL) -m 0644 lib/$(LIB.STATIC) "$(DESTDIR)$(LIBDIR)/"
install.lib.mx: glew.lib.mx
$(INSTALL) -d -m 0755 "$(DESTDIR)$(LIBDIR)"
# runtime
ifeq ($(filter-out mingw% cygwin,$(SYSTEM)),)
$(INSTALL) -d -m 0755 "$(DESTDIR)$(BINDIR)"
$(INSTALL) -m 0755 lib/$(LIB.SHARED.MX) "$(DESTDIR)$(BINDIR)/"
else
$(INSTALL) -m 0644 lib/$(LIB.SHARED.MX) "$(DESTDIR)$(LIBDIR)/"
endif
ifneq ($(LN),)
$(LN) $(LIB.SHARED.MX) "$(DESTDIR)$(LIBDIR)/$(LIB.SONAME.MX)"
endif
# development files
ifeq ($(filter-out mingw% cygwin,$(SYSTEM)),)
$(INSTALL) -m 0644 lib/$(LIB.DEVLNK.MX) "$(DESTDIR)$(LIBDIR)/"
endif
ifneq ($(LN),)
$(LN) $(LIB.SHARED.MX) "$(DESTDIR)$(LIBDIR)/$(LIB.DEVLNK.MX)"
endif
$(INSTALL) -m 0644 lib/$(LIB.STATIC.MX) "$(DESTDIR)$(LIBDIR)/"
install.bin: glew.bin install.bin: glew.bin
$(INSTALL) -d -m 0755 "$(DESTDIR)$(BINDIR)" $(INSTALL) -d -m 0755 "$(DESTDIR)$(BINDIR)"
$(INSTALL) -s -m 0755 bin/$(GLEWINFO.BIN) bin/$(VISUALINFO.BIN) "$(DESTDIR)$(BINDIR)/" $(INSTALL) -s -m 0755 bin/$(GLEWINFO.BIN) bin/$(VISUALINFO.BIN) "$(DESTDIR)$(BINDIR)/"
@ -309,30 +233,25 @@ install.pkgconfig: glew.pc
$(INSTALL) -d -m 0755 "$(DESTDIR)$(LIBDIR)/pkgconfig" $(INSTALL) -d -m 0755 "$(DESTDIR)$(LIBDIR)/pkgconfig"
$(INSTALL) -m 0644 glew.pc "$(DESTDIR)$(LIBDIR)/pkgconfig/" $(INSTALL) -m 0644 glew.pc "$(DESTDIR)$(LIBDIR)/pkgconfig/"
install.pkgconfig.mx: glewmx.pc
$(INSTALL) -d -m 0755 "$(DESTDIR)$(LIBDIR)"
$(INSTALL) -d -m 0755 "$(DESTDIR)$(LIBDIR)/pkgconfig"
$(INSTALL) -m 0644 glewmx.pc "$(DESTDIR)$(LIBDIR)/pkgconfig/"
uninstall: uninstall:
$(RM) "$(DESTDIR)$(INCDIR)/wglew.h" $(RM) "$(DESTDIR)$(INCDIR)/wglew.h"
$(RM) "$(DESTDIR)$(INCDIR)/glew.h" $(RM) "$(DESTDIR)$(INCDIR)/glew.h"
$(RM) "$(DESTDIR)$(INCDIR)/glxew.h" $(RM) "$(DESTDIR)$(INCDIR)/glxew.h"
$(RM) "$(DESTDIR)$(LIBDIR)/$(LIB.DEVLNK)" "$(DESTDIR)$(LIBDIR)/$(LIB.DEVLNK.MX)" $(RM) "$(DESTDIR)$(LIBDIR)/$(LIB.DEVLNK)"
ifeq ($(filter-out mingw% cygwin,$(SYSTEM)),) ifeq ($(filter-out mingw% cygwin,$(SYSTEM)),)
$(RM) "$(DESTDIR)$(BINDIR)/$(LIB.SHARED)" "$(DESTDIR)$(BINDIR)/$(LIB.SHARED.MX)" $(RM) "$(DESTDIR)$(BINDIR)/$(LIB.SHARED)"
else else
$(RM) "$(DESTDIR)$(LIBDIR)/$(LIB.SONAME)" "$(DESTDIR)$(LIBDIR)/$(LIB.SONAME.MX)" $(RM) "$(DESTDIR)$(LIBDIR)/$(LIB.SONAME)"
$(RM) "$(DESTDIR)$(LIBDIR)/$(LIB.SHARED)" "$(DESTDIR)$(LIBDIR)/$(LIB.SHARED.MX)" $(RM) "$(DESTDIR)$(LIBDIR)/$(LIB.SHARED)"
endif endif
$(RM) "$(DESTDIR)$(LIBDIR)/$(LIB.STATIC)" "$(DESTDIR)$(LIBDIR)/$(LIB.STATIC.MX)" $(RM) "$(DESTDIR)$(LIBDIR)/$(LIB.STATIC)"
$(RM) "$(DESTDIR)$(BINDIR)/$(GLEWINFO.BIN)" "$(DESTDIR)$(BINDIR)/$(VISUALINFO.BIN)" $(RM) "$(DESTDIR)$(BINDIR)/$(GLEWINFO.BIN)" "$(DESTDIR)$(BINDIR)/$(VISUALINFO.BIN)"
clean: clean:
$(RM) -r tmp/ $(RM) -r tmp/
$(RM) -r lib/ $(RM) -r lib/
$(RM) -r bin/ $(RM) -r bin/
$(RM) glew.pc glewmx.pc $(RM) glew.pc
distclean: clean distclean: clean
find . -name \*~ | xargs $(RM) find . -name \*~ | xargs $(RM)

View File

@ -250,7 +250,7 @@ $(S.DEST)/glew.c: $(EXT)/.dummy
perl -e "s/GLEW_VERSION_MAJOR_STRING/$(GLEW_MAJOR)/g" -pi $@ perl -e "s/GLEW_VERSION_MAJOR_STRING/$(GLEW_MAJOR)/g" -pi $@
perl -e "s/GLEW_VERSION_MINOR_STRING/$(GLEW_MINOR)/g" -pi $@ perl -e "s/GLEW_VERSION_MINOR_STRING/$(GLEW_MINOR)/g" -pi $@
perl -e "s/GLEW_VERSION_MICRO_STRING/$(GLEW_MICRO)/g" -pi $@ perl -e "s/GLEW_VERSION_MICRO_STRING/$(GLEW_MICRO)/g" -pi $@
perl -e "s/GLEW_ARB_vertex_shader = !_glewInit_GL_ARB_vertex_shader\(GLEW_CONTEXT_ARG_VAR_INIT\);/{ GLEW_ARB_vertex_shader = !_glewInit_GL_ARB_vertex_shader(GLEW_CONTEXT_ARG_VAR_INIT); _glewInit_GL_ARB_vertex_program(GLEW_CONTEXT_ARG_VAR_INIT); }/g" -pi $@ perl -e "s/GLEW_ARB_vertex_shader = !_glewInit_GL_ARB_vertex_shader\(\);/{ GLEW_ARB_vertex_shader = !_glewInit_GL_ARB_vertex_shader(); _glewInit_GL_ARB_vertex_program(); }/g" -pi $@
perl -e "s/\(\(glColorSubTable = /((glBlendEquation = (PFNGLBLENDEQUATIONPROC)glewGetProcAddress((const GLubyte*)\"glBlendEquation\")) == NULL) || r;\n r = ((glColorSubTable = /g" -pi $@ perl -e "s/\(\(glColorSubTable = /((glBlendEquation = (PFNGLBLENDEQUATIONPROC)glewGetProcAddress((const GLubyte*)\"glBlendEquation\")) == NULL) || r;\n r = ((glColorSubTable = /g" -pi $@
rm -f $@.bak rm -f $@.bak

View File

@ -23,7 +23,7 @@ sub make_pfn_def_init($%)
sub make_reuse_call($%) sub make_reuse_call($%)
{ {
return " r = _glewInit_" . $_[0] . "(GLEW_CONTEXT_ARG_VAR_INIT) || r;"; return " r = _glewInit_" . $_[0] . "() || r;";
} }
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
@ -49,8 +49,7 @@ if (@ARGV)
if (keys %$functions or keys @$reuse) if (keys %$functions or keys @$reuse)
{ {
print "#ifdef $extname\n\n"; print "#ifdef $extname\n\n";
print "static GLboolean _glewInit_$extname (" . $type . print "static GLboolean _glewInit_$extname ()\n{\n GLboolean r = GL_FALSE;\n";
"EW_CONTEXT_ARG_DEF_INIT)\n{\n GLboolean r = GL_FALSE;\n";
output_reuse($reuse, \&make_reuse_call); output_reuse($reuse, \&make_reuse_call);
output_decls($functions, \&make_pfn_def_init); output_decls($functions, \&make_pfn_def_init);
print "\n return r;\n}\n\n"; print "\n return r;\n}\n\n";

View File

@ -36,8 +36,7 @@ if (@ARGV)
#print "#ifdef $extname\n\n"; #print "#ifdef $extname\n\n";
if (keys %$functions) if (keys %$functions)
{ {
print "static GLboolean _glewInit_$extname (" . $type . print "static GLboolean _glewInit_$extname ();\n";
"EW_CONTEXT_ARG_DEF_INIT);\n";
} }
#print "#endif /* $extname */\n\n"; #print "#endif /* $extname */\n\n";
} }

View File

@ -56,11 +56,11 @@ if (@ARGV)
{ {
if ($extname =~ /WGL_.*/) if ($extname =~ /WGL_.*/)
{ {
print " if (glewExperimental || " . $extvar . "|| crippled) " . $extvar . "= !_glewInit_$extname(GLEW_CONTEXT_ARG_VAR_INIT);\n"; print " if (glewExperimental || " . $extvar . "|| crippled) " . $extvar . "= !_glewInit_$extname();\n";
} }
else else
{ {
print " if (glewExperimental || " . $extvar . ") " . $extvar . " = !_glewInit_$extname(GLEW_CONTEXT_ARG_VAR_INIT);\n"; print " if (glewExperimental || " . $extvar . ") " . $extvar . " = !_glewInit_$extname();\n";
} }
} }

View File

@ -110,45 +110,6 @@ WGL_ATI_pixel_format_float<br>
WGL_NV_float_buffer<br> WGL_NV_float_buffer<br>
</p> </p>
<h2>Multiple Rendering Contexts (GLEW MX)</h2>
<p>Starting with release 1.2.0, thread-safe support for multiple
rendering contexts, possibly with different capabilities, is
available. Since this is not required by most users, it is not added
to the binary releases to maintain compatibility between different
versions. To include multi-context support, you have to do the
following:</p>
<ol>
<li>Compile and use GLEW with the <tt>GLEW_MX</tt> preprocessor token
defined.</li>
<li>For each rendering context, create a <tt>GLEWContext</tt> object
that will be available as long as the rendering context exists.</li>
<li>Define a macro or function called <tt>glewGetContext()</tt> that
returns a pointer to the <tt>GLEWContext</tt> object associated with
the rendering context from which OpenGL/WGL/GLX calls are issued. This
dispatch mechanism is primitive, but generic.
<li>Make sure that you call <tt>glewInit()</tt> after creating the
<tt>GLEWContext</tt> object in each rendering context. Note, that the
<tt>GLEWContext</tt> pointer returned by <tt>glewGetContext()</tt> has
to reside in global or thread-local memory.
</ol>
<p>Note that according to the <a
href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/opengl/ntopnglr_6yer.asp">MSDN
WGL documentation</a>, you have to initialize the entry points for
every rendering context that use pixel formats with different
capabilities For example, the pixel formats provided by the generic
software OpenGL implementation by Microsoft vs. the hardware
accelerated pixel formats have different capabilities. <b>GLEW by
default ignores this requirement, and does not define per-context
entry points (you can however do this using the steps described
above).</b> Assuming a global namespace for the entry points works in
most situations, because typically all hardware accelerated pixel
formats provide the same entry points and capabilities. This means
that unless you use the multi-context version of GLEW, you need to
call <tt>glewInit()</tt> only once in your program, or more precisely,
once per process.</p>
<h2>Separate Namespace</h2> <h2>Separate Namespace</h2>
<p> <p>

View File

@ -1,34 +1,18 @@
#include <windows.h> #include <windows.h>
#ifdef GLEW_MX #ifdef GLEW_STATIC
# ifdef GLEW_STATIC # ifdef _DEBUG
# ifdef _DEBUG # define FILENAME "glew32sd.dll"
# define FILENAME "glew32mxsd.dll" # else
# else # define FILENAME "glew32s.dll"
# define FILENAME "glew32mxs.dll" # endif
# endif
# else
# ifdef _DEBUG
# define FILENAME "glew32mxd.dll"
# else
# define FILENAME "glew32mx.dll"
# endif
# endif
#else #else
# ifdef GLEW_STATIC # ifdef _DEBUG
# ifdef _DEBUG # define FILENAME "glew32d.dll"
# define FILENAME "glew32sd.dll" # else
# else # define FILENAME "glew32.dll"
# define FILENAME "glew32s.dll" # endif
# endif
# else
# ifdef _DEBUG
# define FILENAME "glew32d.dll"
# else
# define FILENAME "glew32.dll"
# endif
# endif
#endif #endif
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////

View File

@ -13,35 +13,6 @@
#include <stdlib.h> /* For malloc, free */ #include <stdlib.h> /* For malloc, free */
#include <string.h> /* For memset */ #include <string.h> /* For memset */
/*
* Define glewGetContext and related helper macros.
*/
#ifdef GLEW_MX
# define glewGetContext() ctx
# ifdef _WIN32
# define GLEW_CONTEXT_ARG_DEF_INIT GLEWContext* ctx
# define GLEW_CONTEXT_ARG_VAR_INIT ctx
# define wglewGetContext() ctx
# define WGLEW_CONTEXT_ARG_DEF_INIT WGLEWContext* ctx
# define WGLEW_CONTEXT_ARG_DEF_LIST WGLEWContext* ctx
# else /* _WIN32 */
# define GLEW_CONTEXT_ARG_DEF_INIT void
# define GLEW_CONTEXT_ARG_VAR_INIT
# define glxewGetContext() ctx
# define GLXEW_CONTEXT_ARG_DEF_INIT void
# define GLXEW_CONTEXT_ARG_DEF_LIST GLXEWContext* ctx
# endif /* _WIN32 */
# define GLEW_CONTEXT_ARG_DEF_LIST GLEWContext* ctx
#else /* GLEW_MX */
# define GLEW_CONTEXT_ARG_DEF_INIT void
# define GLEW_CONTEXT_ARG_VAR_INIT
# define GLEW_CONTEXT_ARG_DEF_LIST void
# define WGLEW_CONTEXT_ARG_DEF_INIT void
# define WGLEW_CONTEXT_ARG_DEF_LIST void
# define GLXEW_CONTEXT_ARG_DEF_INIT void
# define GLXEW_CONTEXT_ARG_DEF_LIST void
#endif /* GLEW_MX */
#if defined(GLEW_REGAL) #if defined(GLEW_REGAL)
/* In GLEW_REGAL mode we call direcly into the linked /* In GLEW_REGAL mode we call direcly into the linked
@ -165,28 +136,16 @@ void* NSGLGetProcAddress (const GLubyte *name)
*/ */
#undef GLEW_GET_VAR #undef GLEW_GET_VAR
#ifdef GLEW_MX
# define GLEW_GET_VAR(x) (glewGetContext()->x)
#else /* GLEW_MX */
# define GLEW_GET_VAR(x) (x) # define GLEW_GET_VAR(x) (x)
#endif /* GLEW_MX */
#ifdef WGLEW_GET_VAR #ifdef WGLEW_GET_VAR
# undef WGLEW_GET_VAR # undef WGLEW_GET_VAR
# ifdef GLEW_MX # define WGLEW_GET_VAR(x) (x)
# define WGLEW_GET_VAR(x) (wglewGetContext()->x)
# else /* GLEW_MX */
# define WGLEW_GET_VAR(x) (x)
# endif /* GLEW_MX */
#endif /* WGLEW_GET_VAR */ #endif /* WGLEW_GET_VAR */
#ifdef GLXEW_GET_VAR #ifdef GLXEW_GET_VAR
# undef GLXEW_GET_VAR # undef GLXEW_GET_VAR
# ifdef GLEW_MX # define GLXEW_GET_VAR(x) (x)
# define GLXEW_GET_VAR(x) (glxewGetContext()->x)
# else /* GLEW_MX */
# define GLXEW_GET_VAR(x) (x)
# endif /* GLEW_MX */
#endif /* GLXEW_GET_VAR */ #endif /* GLXEW_GET_VAR */
/* /*

View File

@ -59,10 +59,7 @@ GLboolean GLEWAPIENTRY glewGetExtension (const char* name)
/* ------------------------------------------------------------------------- */ /* ------------------------------------------------------------------------- */
#ifndef GLEW_MX static GLenum GLEWAPIENTRY glewContextInit ()
static
#endif
GLenum GLEWAPIENTRY glewContextInit (GLEW_CONTEXT_ARG_DEF_LIST)
{ {
const GLubyte* s; const GLubyte* s;
GLuint dot; GLuint dot;

View File

@ -12,17 +12,13 @@ GLboolean glxewGetExtension (const char* name)
return _glewSearchExtension(name, start, end); return _glewSearchExtension(name, start, end);
} }
#ifdef GLEW_MX GLenum glxewInit ()
GLenum glxewContextInit (GLXEW_CONTEXT_ARG_DEF_LIST)
#else
GLenum glxewInit (GLXEW_CONTEXT_ARG_DEF_LIST)
#endif
{ {
int major, minor; int major, minor;
const GLubyte* extStart; const GLubyte* extStart;
const GLubyte* extEnd; const GLubyte* extEnd;
/* initialize core GLX 1.2 */ /* initialize core GLX 1.2 */
if (_glewInit_GLX_VERSION_1_2(GLEW_CONTEXT_ARG_VAR_INIT)) return GLEW_ERROR_GLX_VERSION_11_ONLY; if (_glewInit_GLX_VERSION_1_2()) return GLEW_ERROR_GLX_VERSION_11_ONLY;
/* initialize flags */ /* initialize flags */
GLXEW_VERSION_1_0 = GL_TRUE; GLXEW_VERSION_1_0 = GL_TRUE;
GLXEW_VERSION_1_1 = GL_TRUE; GLXEW_VERSION_1_1 = GL_TRUE;

View File

@ -32,8 +32,6 @@ const GLubyte * GLEWAPIENTRY glewGetString (GLenum name)
GLboolean glewExperimental = GL_FALSE; GLboolean glewExperimental = GL_FALSE;
#if !defined(GLEW_MX)
GLenum GLEWAPIENTRY glewInit (void) GLenum GLEWAPIENTRY glewInit (void)
{ {
GLenum r; GLenum r;
@ -49,5 +47,3 @@ GLenum GLEWAPIENTRY glewInit (void)
return r; return r;
#endif /* _WIN32 */ #endif /* _WIN32 */
} }
#endif /* !GLEW_MX */

View File

@ -20,11 +20,7 @@ GLboolean GLEWAPIENTRY wglewGetExtension (const char* name)
return _glewSearchExtension(name, start, end); return _glewSearchExtension(name, start, end);
} }
#ifdef GLEW_MX GLenum GLEWAPIENTRY wglewInit ()
GLenum GLEWAPIENTRY wglewContextInit (WGLEW_CONTEXT_ARG_DEF_LIST)
#else
GLenum GLEWAPIENTRY wglewInit (WGLEW_CONTEXT_ARG_DEF_LIST)
#endif
{ {
GLboolean crippled; GLboolean crippled;
const GLubyte* extStart; const GLubyte* extStart;

View File

@ -6,11 +6,7 @@
#elif !defined(GLEW_OSMESA) && !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && !defined(__APPLE__) || defined(GLEW_APPLE_GLX) #elif !defined(GLEW_OSMESA) && !defined(__ANDROID__) && !defined(__native_client__) && !defined(__HAIKU__) && !defined(__APPLE__) || defined(GLEW_APPLE_GLX)
#if defined(GLEW_MX)
GLboolean glxewContextIsSupported (const GLXEWContext* ctx, const char* name)
#else
GLboolean glxewIsSupported (const char* name) GLboolean glxewIsSupported (const char* name)
#endif
{ {
const GLubyte* pos = (const GLubyte*)name; const GLubyte* pos = (const GLubyte*)name;
GLuint len = _glewStrLen(pos); GLuint len = _glewStrLen(pos);

View File

@ -1,8 +1,4 @@
#ifdef GLEW_MX
GLboolean GLEWAPIENTRY glewContextIsSupported (const GLEWContext* ctx, const char* name)
#else
GLboolean GLEWAPIENTRY glewIsSupported (const char* name) GLboolean GLEWAPIENTRY glewIsSupported (const char* name)
#endif
{ {
const GLubyte* pos = (const GLubyte*)name; const GLubyte* pos = (const GLubyte*)name;
GLuint len = _glewStrLen(pos); GLuint len = _glewStrLen(pos);

View File

@ -6,11 +6,7 @@
#if defined(_WIN32) && !defined(GLEW_OSMESA) #if defined(_WIN32) && !defined(GLEW_OSMESA)
#if defined(GLEW_MX)
GLboolean GLEWAPIENTRY wglewContextIsSupported (const WGLEWContext* ctx, const char* name)
#else
GLboolean GLEWAPIENTRY wglewIsSupported (const char* name) GLboolean GLEWAPIENTRY wglewIsSupported (const char* name)
#endif
{ {
const GLubyte* pos = (const GLubyte*)name; const GLubyte* pos = (const GLubyte*)name;
GLuint len = _glewStrLen(pos); GLuint len = _glewStrLen(pos);

View File

@ -25,25 +25,6 @@ VERSION_MICRO GLEW_VERSION_MICRO_STRING
*/ */
/* API */ /* API */
#ifdef GLEW_MX
typedef struct GLEWContextStruct GLEWContext;
GLEWAPI GLenum GLEWAPIENTRY glewContextInit (GLEWContext *ctx);
GLEWAPI GLboolean GLEWAPIENTRY glewContextIsSupported (const GLEWContext *ctx, const char *name);
#define glewInit() glewContextInit(glewGetContext())
#define glewIsSupported(x) glewContextIsSupported(glewGetContext(), x)
#define glewIsExtensionSupported(x) glewIsSupported(x)
#define GLEW_GET_VAR(x) (*(const GLboolean*)&(glewGetContext()->x))
#ifdef _WIN32
# define GLEW_GET_FUN(x) glewGetContext()->x
#else
# define GLEW_GET_FUN(x) x
#endif
#else /* GLEW_MX */
GLEWAPI GLenum GLEWAPIENTRY glewInit (void); GLEWAPI GLenum GLEWAPIENTRY glewInit (void);
GLEWAPI GLboolean GLEWAPIENTRY glewIsSupported (const char *name); GLEWAPI GLboolean GLEWAPIENTRY glewIsSupported (const char *name);
#define glewIsExtensionSupported(x) glewIsSupported(x) #define glewIsExtensionSupported(x) glewIsSupported(x)
@ -51,8 +32,6 @@ GLEWAPI GLboolean GLEWAPIENTRY glewIsSupported (const char *name);
#define GLEW_GET_VAR(x) (*(const GLboolean*)&x) #define GLEW_GET_VAR(x) (*(const GLboolean*)&x)
#define GLEW_GET_FUN(x) x #define GLEW_GET_FUN(x) x
#endif /* GLEW_MX */
GLEWAPI GLboolean glewExperimental; GLEWAPI GLboolean glewExperimental;
GLEWAPI GLboolean GLEWAPIENTRY glewGetExtension (const char *name); GLEWAPI GLboolean GLEWAPIENTRY glewGetExtension (const char *name);
GLEWAPI const GLubyte * GLEWAPIENTRY glewGetErrorString (GLenum error); GLEWAPI const GLubyte * GLEWAPIENTRY glewGetErrorString (GLenum error);

View File

@ -1,18 +1,10 @@
#include <windows.h> #include <windows.h>
#ifdef GLEW_MX #ifdef _DEBUG
# ifdef _DEBUG # define FILENAME "glewinfod.exe"
# define FILENAME "glewinfo-mxd.exe"
# else
# define FILENAME "glewinfo-mx.exe"
# endif
#else #else
# ifdef _DEBUG # define FILENAME "glewinfo.exe"
# define FILENAME "glewinfod.exe"
# else
# define FILENAME "glewinfo.exe"
# endif
#endif #endif
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////

View File

@ -21,18 +21,6 @@
static FILE* f; static FILE* f;
#ifdef GLEW_MX
GLEWContext _glewctx;
#define glewGetContext() (&_glewctx)
#if defined(_WIN32)
WGLEWContext _wglewctx;
#define wglewGetContext() (&_wglewctx)
#elif !defined(GLEW_OSMESA) && !defined(__APPLE__) && !defined(__HAIKU__) || defined(GLEW_APPLE_GLX)
GLXEWContext _glxewctx;
#define glxewGetContext() (&_glxewctx)
#endif
#endif
/* Command-line parameters for GL context creation */ /* Command-line parameters for GL context creation */
struct createParams struct createParams

View File

@ -46,18 +46,7 @@ int main (int argc, char** argv)
return 1; return 1;
} }
glewExperimental = GL_TRUE; glewExperimental = GL_TRUE;
#ifdef GLEW_MX
err = glewContextInit(glewGetContext());
#if defined(GLEW_OSMESA)
#elif defined(_WIN32)
err = err || wglewContextInit(wglewGetContext());
#elif !defined(__HAIKU__) && !defined(__APPLE__) || defined(GLEW_APPLE_GLX)
err = err || glxewContextInit(glxewGetContext());
#endif
#else
err = glewInit(); err = glewInit();
#endif
if (GLEW_OK != err) if (GLEW_OK != err)
{ {
fprintf(stderr, "Error [main]: glewInit failed: %s\n", glewGetErrorString(err)); fprintf(stderr, "Error [main]: glewInit failed: %s\n", glewGetErrorString(err));

View File

@ -1,9 +1,4 @@
/* ------------------------------------------------------------------------- */ /* ------------------------------------------------------------------------- */
#ifdef GLEW_MX
#define GLXEW_FUN_EXPORT GLEW_FUN_EXPORT
#define GLXEW_VAR_EXPORT
#else
#define GLXEW_FUN_EXPORT GLEW_FUN_EXPORT #define GLXEW_FUN_EXPORT GLEW_FUN_EXPORT
#define GLXEW_VAR_EXPORT GLEW_VAR_EXPORT #define GLXEW_VAR_EXPORT GLEW_VAR_EXPORT
#endif /* GLEW_MX */

View File

@ -1,27 +1,11 @@
/* ------------------------------------------------------------------------ */ /* ------------------------------------------------------------------------ */
#ifdef GLEW_MX
typedef struct GLXEWContextStruct GLXEWContext;
GLEWAPI GLenum GLEWAPIENTRY glxewContextInit (GLXEWContext *ctx);
GLEWAPI GLboolean GLEWAPIENTRY glxewContextIsSupported (const GLXEWContext *ctx, const char *name);
#define glxewInit() glxewContextInit(glxewGetContext())
#define glxewIsSupported(x) glxewContextIsSupported(glxewGetContext(), x)
#define GLXEW_GET_VAR(x) (*(const GLboolean*)&(glxewGetContext()->x))
#define GLXEW_GET_FUN(x) x
#else /* GLEW_MX */
GLEWAPI GLenum GLEWAPIENTRY glxewInit (); GLEWAPI GLenum GLEWAPIENTRY glxewInit ();
GLEWAPI GLboolean GLEWAPIENTRY glxewIsSupported (const char *name); GLEWAPI GLboolean GLEWAPIENTRY glxewIsSupported (const char *name);
#define GLXEW_GET_VAR(x) (*(const GLboolean*)&x) #define GLXEW_GET_VAR(x) (*(const GLboolean*)&x)
#define GLXEW_GET_FUN(x) x #define GLXEW_GET_FUN(x) x
#endif /* GLEW_MX */
GLEWAPI GLboolean GLEWAPIENTRY glxewGetExtension (const char *name); GLEWAPI GLboolean GLEWAPIENTRY glxewGetExtension (const char *name);
#ifdef __cplusplus #ifdef __cplusplus

View File

@ -1,18 +1,10 @@
#include <windows.h> #include <windows.h>
#ifdef GLEW_MX #ifdef _DEBUG
# ifdef _DEBUG # define FILENAME "visualinfod.exe"
# define FILENAME "visualinfo-mxd.exe"
# else
# define FILENAME "visualinfo-mx.exe"
# endif
#else #else
# ifdef _DEBUG # define FILENAME "visualinfo.exe"
# define FILENAME "visualinfod.exe"
# else
# define FILENAME "visualinfo.exe"
# endif
#endif #endif
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////

View File

@ -1,9 +1,4 @@
/* ------------------------------------------------------------------------- */ /* ------------------------------------------------------------------------- */
#ifdef GLEW_MX
#define WGLEW_FUN_EXPORT
#define WGLEW_VAR_EXPORT
#else
#define WGLEW_FUN_EXPORT GLEW_FUN_EXPORT #define WGLEW_FUN_EXPORT GLEW_FUN_EXPORT
#define WGLEW_VAR_EXPORT GLEW_VAR_EXPORT #define WGLEW_VAR_EXPORT GLEW_VAR_EXPORT
#endif /* GLEW_MX */

View File

@ -1,27 +1,11 @@
/* ------------------------------------------------------------------------- */ /* ------------------------------------------------------------------------- */
#ifdef GLEW_MX
typedef struct WGLEWContextStruct WGLEWContext;
GLEWAPI GLenum GLEWAPIENTRY wglewContextInit (WGLEWContext *ctx);
GLEWAPI GLboolean GLEWAPIENTRY wglewContextIsSupported (const WGLEWContext *ctx, const char *name);
#define wglewInit() wglewContextInit(wglewGetContext())
#define wglewIsSupported(x) wglewContextIsSupported(wglewGetContext(), x)
#define WGLEW_GET_VAR(x) (*(const GLboolean*)&(wglewGetContext()->x))
#define WGLEW_GET_FUN(x) wglewGetContext()->x
#else /* GLEW_MX */
GLEWAPI GLenum GLEWAPIENTRY wglewInit (); GLEWAPI GLenum GLEWAPIENTRY wglewInit ();
GLEWAPI GLboolean GLEWAPIENTRY wglewIsSupported (const char *name); GLEWAPI GLboolean GLEWAPIENTRY wglewIsSupported (const char *name);
#define WGLEW_GET_VAR(x) (*(const GLboolean*)&x) #define WGLEW_GET_VAR(x) (*(const GLboolean*)&x)
#define WGLEW_GET_FUN(x) x #define WGLEW_GET_FUN(x) x
#endif /* GLEW_MX */
GLEWAPI GLboolean GLEWAPIENTRY wglewGetExtension (const char *name); GLEWAPI GLboolean GLEWAPIENTRY wglewGetExtension (const char *name);
#ifdef __cplusplus #ifdef __cplusplus

View File

@ -84,20 +84,11 @@ set_target_properties (glew_s PROPERTIES COMPILE_DEFINITIONS "GLEW_STATIC" OUTPU
target_link_libraries (glew ${GLEW_LIBRARIES}) target_link_libraries (glew ${GLEW_LIBRARIES})
target_link_libraries (glew_s ${GLEW_LIBRARIES}) target_link_libraries (glew_s ${GLEW_LIBRARIES})
add_library(glewmx SHARED ${GLEW_SRC_FILES})
set_target_properties (glewmx PROPERTIES COMPILE_DEFINITIONS "GLEW_BUILD;GLEW_MX" OUTPUT_NAME "${GLEW_LIB_NAME}mx" PREFIX "${DLL_PREFIX}")
add_library(glewmx_s STATIC ${GLEW_SRC_FILES})
set_target_properties (glewmx_s PROPERTIES COMPILE_DEFINITIONS "GLEW_STATIC;GLEW_MX" OUTPUT_NAME "${GLEW_LIB_NAME}mx" PREFIX lib)
target_link_libraries (glewmx ${GLEW_LIBRARIES})
target_link_libraries (glewmx_s ${GLEW_LIBRARIES})
if(CMAKE_VERSION VERSION_LESS 2.8.12) if(CMAKE_VERSION VERSION_LESS 2.8.12)
set(MAYBE_EXPORT "") set(MAYBE_EXPORT "")
else() else()
target_compile_definitions(glew_s INTERFACE "GLEW_STATIC") target_compile_definitions(glew_s INTERFACE "GLEW_STATIC")
target_compile_definitions(glewmx INTERFACE "GLEW_MX") foreach(t glew glew_s )
target_compile_definitions(glewmx_s INTERFACE "GLEW_STATIC;GLEW_MX")
foreach(t glew glew_s glewmx glewmx_s)
target_include_directories(${t} PUBLIC $<INSTALL_INTERFACE:include>) target_include_directories(${t} PUBLIC $<INSTALL_INTERFACE:include>)
endforeach() endforeach()
set(MAYBE_EXPORT EXPORT glew-targets) set(MAYBE_EXPORT EXPORT glew-targets)
@ -105,11 +96,11 @@ endif()
set(targets_to_install "") set(targets_to_install "")
if(NOT DEFINED BUILD_SHARED_LIBS OR BUILD_SHARED_LIBS) if(NOT DEFINED BUILD_SHARED_LIBS OR BUILD_SHARED_LIBS)
list(APPEND targets_to_install glew glewmx) list(APPEND targets_to_install glew )
endif() endif()
if(NOT DEFINED BUILD_SHARED_LIBS OR NOT BUILD_SHARED_LIBS) if(NOT DEFINED BUILD_SHARED_LIBS OR NOT BUILD_SHARED_LIBS)
list(APPEND targets_to_install glew_s glewmx_s) list(APPEND targets_to_install glew_s )
endif() endif()
install ( TARGETS ${targets_to_install} install ( TARGETS ${targets_to_install}
@ -148,11 +139,8 @@ set (libname ${GLEW_LIB_NAME})
set (cflags) set (cflags)
set (requireslib glu) set (requireslib glu)
configure_file (${GLEW_DIR}/glew.pc.in ${GLEW_DIR}/glew.pc @ONLY) configure_file (${GLEW_DIR}/glew.pc.in ${GLEW_DIR}/glew.pc @ONLY)
set (cflags "-DGLEW_MX")
set (libname ${GLEW_LIB_NAME}mx)
configure_file (${GLEW_DIR}/glew.pc.in ${GLEW_DIR}/glewmx.pc @ONLY)
install(FILES ${GLEW_DIR}/glew.pc ${GLEW_DIR}/glewmx.pc install(FILES ${GLEW_DIR}/glew.pc
DESTINATION lib/pkgconfig DESTINATION lib/pkgconfig
) )

View File

@ -204,45 +204,6 @@ WGL_ATI_pixel_format_float<br>
WGL_NV_float_buffer<br> WGL_NV_float_buffer<br>
</p> </p>
<h2>Multiple Rendering Contexts (GLEW MX)</h2>
<p>Starting with release 1.2.0, thread-safe support for multiple
rendering contexts, possibly with different capabilities, is
available. Since this is not required by most users, it is not added
to the binary releases to maintain compatibility between different
versions. To include multi-context support, you have to do the
following:</p>
<ol>
<li>Compile and use GLEW with the <tt>GLEW_MX</tt> preprocessor token
defined.</li>
<li>For each rendering context, create a <tt>GLEWContext</tt> object
that will be available as long as the rendering context exists.</li>
<li>Define a macro or function called <tt>glewGetContext()</tt> that
returns a pointer to the <tt>GLEWContext</tt> object associated with
the rendering context from which OpenGL/WGL/GLX calls are issued. This
dispatch mechanism is primitive, but generic.
<li>Make sure that you call <tt>glewInit()</tt> after creating the
<tt>GLEWContext</tt> object in each rendering context. Note, that the
<tt>GLEWContext</tt> pointer returned by <tt>glewGetContext()</tt> has
to reside in global or thread-local memory.
</ol>
<p>Note that according to the <a
href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/opengl/ntopnglr_6yer.asp">MSDN
WGL documentation</a>, you have to initialize the entry points for
every rendering context that use pixel formats with different
capabilities For example, the pixel formats provided by the generic
software OpenGL implementation by Microsoft vs. the hardware
accelerated pixel formats have different capabilities. <b>GLEW by
default ignores this requirement, and does not define per-context
entry points (you can however do this using the steps described
above).</b> Assuming a global namespace for the entry points works in
most situations, because typically all hardware accelerated pixel
formats provide the same entry points and capabilities. This means
that unless you use the multi-context version of GLEW, you need to
call <tt>glewInit()</tt> only once in your program, or more precisely,
once per process.</p>
<h2>Separate Namespace</h2> <h2>Separate Namespace</h2>
<p> <p>

View File

@ -494,206 +494,207 @@ THE POSSIBILITY OF SUCH DAMAGE.
<tr><td class="num">384</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/KHR/robustness.txt">KHR_robustness</a></td></tr> <tr><td class="num">384</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/KHR/robustness.txt">KHR_robustness</a></td></tr>
<tr><td class="num">385</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/KHR/texture_compression_astc_hdr.txt">KHR_texture_compression_astc_hdr</a></td></tr> <tr><td class="num">385</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/KHR/texture_compression_astc_hdr.txt">KHR_texture_compression_astc_hdr</a></td></tr>
<tr><td class="num">386</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/KHR/texture_compression_astc_hdr.txt">KHR_texture_compression_astc_ldr</a></td></tr> <tr><td class="num">386</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/KHR/texture_compression_astc_hdr.txt">KHR_texture_compression_astc_ldr</a></td></tr>
<tr><td class="num">387</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/KHR/texture_compression_astc_sliced_3d.txt">KHR_texture_compression_astc_sliced_3d</a></td></tr>
<tr><td><br></td><td></td><td></td></tr> <tr><td><br></td><td></td><td></td></tr>
<tr><td class="num">387</td><td>&nbsp;</td><td>KTX_buffer_region</td></tr> <tr><td class="num">388</td><td>&nbsp;</td><td>KTX_buffer_region</td></tr>
<tr><td><br></td><td></td><td></td></tr> <tr><td><br></td><td></td><td></td></tr>
<tr><td class="num">388</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/MESAX/texture_stack.txt">MESAX_texture_stack</a></td></tr> <tr><td class="num">389</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/MESAX/texture_stack.txt">MESAX_texture_stack</a></td></tr>
<tr><td><br></td><td></td><td></td></tr> <tr><td><br></td><td></td><td></td></tr>
<tr><td class="num">389</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/MESA/pack_invert.txt">MESA_pack_invert</a></td></tr> <tr><td class="num">390</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/MESA/pack_invert.txt">MESA_pack_invert</a></td></tr>
<tr><td class="num">390</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/MESA/resize_buffers.txt">MESA_resize_buffers</a></td></tr> <tr><td class="num">391</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/MESA/resize_buffers.txt">MESA_resize_buffers</a></td></tr>
<tr><td class="num">391</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/MESA/window_pos.txt">MESA_window_pos</a></td></tr> <tr><td class="num">392</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/MESA/window_pos.txt">MESA_window_pos</a></td></tr>
<tr><td class="num">392</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/MESA/ycbcr_texture.txt">MESA_ycbcr_texture</a></td></tr> <tr><td class="num">393</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/MESA/ycbcr_texture.txt">MESA_ycbcr_texture</a></td></tr>
<tr><td><br></td><td></td><td></td></tr> <tr><td><br></td><td></td><td></td></tr>
<tr><td class="num">393</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NVX/nvx_conditional_render.txt">NVX_conditional_render</a></td></tr> <tr><td class="num">394</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NVX/nvx_conditional_render.txt">NVX_conditional_render</a></td></tr>
<tr><td class="num">394</td><td>&nbsp;</td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_NVX_gpu_memory_info.txt">NVX_gpu_memory_info</a></td></tr> <tr><td class="num">395</td><td>&nbsp;</td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_NVX_gpu_memory_info.txt">NVX_gpu_memory_info</a></td></tr>
<tr><td><br></td><td></td><td></td></tr> <tr><td><br></td><td></td><td></td></tr>
<tr><td class="num">395</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/bindless_multi_draw_indirect.txt">NV_bindless_multi_draw_indirect</a></td></tr> <tr><td class="num">396</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/bindless_multi_draw_indirect.txt">NV_bindless_multi_draw_indirect</a></td></tr>
<tr><td class="num">396</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/bindless_multi_draw_indirect_count.txt">NV_bindless_multi_draw_indirect_count</a></td></tr> <tr><td class="num">397</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/bindless_multi_draw_indirect_count.txt">NV_bindless_multi_draw_indirect_count</a></td></tr>
<tr><td class="num">397</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/bindless_texture.txt">NV_bindless_texture</a></td></tr> <tr><td class="num">398</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/bindless_texture.txt">NV_bindless_texture</a></td></tr>
<tr><td class="num">398</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/blend_equation_advanced.txt">NV_blend_equation_advanced</a></td></tr> <tr><td class="num">399</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/blend_equation_advanced.txt">NV_blend_equation_advanced</a></td></tr>
<tr><td class="num">399</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/blend_equation_advanced.txt">NV_blend_equation_advanced_coherent</a></td></tr> <tr><td class="num">400</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/blend_equation_advanced.txt">NV_blend_equation_advanced_coherent</a></td></tr>
<tr><td class="num">400</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/blend_square.txt">NV_blend_square</a></td></tr> <tr><td class="num">401</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/blend_square.txt">NV_blend_square</a></td></tr>
<tr><td class="num">401</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/compute_program5.txt">NV_compute_program5</a></td></tr> <tr><td class="num">402</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/compute_program5.txt">NV_compute_program5</a></td></tr>
<tr><td class="num">402</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/conditional_render.txt">NV_conditional_render</a></td></tr> <tr><td class="num">403</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/conditional_render.txt">NV_conditional_render</a></td></tr>
<tr><td class="num">403</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/conservative_raster.txt">NV_conservative_raster</a></td></tr> <tr><td class="num">404</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/conservative_raster.txt">NV_conservative_raster</a></td></tr>
<tr><td class="num">404</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/conservative_raster_dilate.txt">NV_conservative_raster_dilate</a></td></tr> <tr><td class="num">405</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/conservative_raster_dilate.txt">NV_conservative_raster_dilate</a></td></tr>
<tr><td class="num">405</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/copy_depth_to_color.txt">NV_copy_depth_to_color</a></td></tr> <tr><td class="num">406</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/copy_depth_to_color.txt">NV_copy_depth_to_color</a></td></tr>
<tr><td class="num">406</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/copy_image.txt">NV_copy_image</a></td></tr> <tr><td class="num">407</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/copy_image.txt">NV_copy_image</a></td></tr>
<tr><td class="num">407</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/deep_texture3D.txt">NV_deep_texture3D</a></td></tr> <tr><td class="num">408</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/deep_texture3D.txt">NV_deep_texture3D</a></td></tr>
<tr><td class="num">408</td><td>&nbsp;</td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_NV_depth_buffer_float.txt">NV_depth_buffer_float</a></td></tr> <tr><td class="num">409</td><td>&nbsp;</td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_NV_depth_buffer_float.txt">NV_depth_buffer_float</a></td></tr>
<tr><td class="num">409</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/depth_clamp.txt">NV_depth_clamp</a></td></tr> <tr><td class="num">410</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/depth_clamp.txt">NV_depth_clamp</a></td></tr>
<tr><td class="num">410</td><td>&nbsp;</td><td>NV_depth_range_unclamped</td></tr> <tr><td class="num">411</td><td>&nbsp;</td><td>NV_depth_range_unclamped</td></tr>
<tr><td class="num">411</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/draw_texture.txt">NV_draw_texture</a></td></tr> <tr><td class="num">412</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/draw_texture.txt">NV_draw_texture</a></td></tr>
<tr><td class="num">412</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/evaluators.txt">NV_evaluators</a></td></tr> <tr><td class="num">413</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/evaluators.txt">NV_evaluators</a></td></tr>
<tr><td class="num">413</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/explicit_multisample.txt">NV_explicit_multisample</a></td></tr> <tr><td class="num">414</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/explicit_multisample.txt">NV_explicit_multisample</a></td></tr>
<tr><td class="num">414</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/fence.txt">NV_fence</a></td></tr> <tr><td class="num">415</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/fence.txt">NV_fence</a></td></tr>
<tr><td class="num">415</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/fill_rectangle.txt">NV_fill_rectangle</a></td></tr> <tr><td class="num">416</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/fill_rectangle.txt">NV_fill_rectangle</a></td></tr>
<tr><td class="num">416</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/float_buffer.txt">NV_float_buffer</a></td></tr> <tr><td class="num">417</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/float_buffer.txt">NV_float_buffer</a></td></tr>
<tr><td class="num">417</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/fog_distance.txt">NV_fog_distance</a></td></tr> <tr><td class="num">418</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/fog_distance.txt">NV_fog_distance</a></td></tr>
<tr><td class="num">418</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/fragment_coverage_to_color.txt">NV_fragment_coverage_to_color</a></td></tr> <tr><td class="num">419</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/fragment_coverage_to_color.txt">NV_fragment_coverage_to_color</a></td></tr>
<tr><td class="num">419</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/fragment_program.txt">NV_fragment_program</a></td></tr> <tr><td class="num">420</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/fragment_program.txt">NV_fragment_program</a></td></tr>
<tr><td class="num">420</td><td>&nbsp;</td><td><a href="http://www.nvidia.com/dev_content/nvopenglspecs/GL_NV_fragment_program2.txt">NV_fragment_program2</a></td></tr> <tr><td class="num">421</td><td>&nbsp;</td><td><a href="http://www.nvidia.com/dev_content/nvopenglspecs/GL_NV_fragment_program2.txt">NV_fragment_program2</a></td></tr>
<tr><td class="num">421</td><td>&nbsp;</td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_NV_fragment_program4.txt">NV_fragment_program4</a></td></tr> <tr><td class="num">422</td><td>&nbsp;</td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_NV_fragment_program4.txt">NV_fragment_program4</a></td></tr>
<tr><td class="num">422</td><td>&nbsp;</td><td><a href="http://www.nvidia.com/dev_content/nvopenglspecs/GL_NV_fragment_program_option.txt">NV_fragment_program_option</a></td></tr> <tr><td class="num">423</td><td>&nbsp;</td><td><a href="http://www.nvidia.com/dev_content/nvopenglspecs/GL_NV_fragment_program_option.txt">NV_fragment_program_option</a></td></tr>
<tr><td class="num">423</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/fragment_shader_interlock.txt">NV_fragment_shader_interlock</a></td></tr> <tr><td class="num">424</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/fragment_shader_interlock.txt">NV_fragment_shader_interlock</a></td></tr>
<tr><td class="num">424</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/framebuffer_mixed_samples.txt">NV_framebuffer_mixed_samples</a></td></tr> <tr><td class="num">425</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/framebuffer_mixed_samples.txt">NV_framebuffer_mixed_samples</a></td></tr>
<tr><td class="num">425</td><td>&nbsp;</td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_NV_framebuffer_multisample_coverage.txt">NV_framebuffer_multisample_coverage</a></td></tr> <tr><td class="num">426</td><td>&nbsp;</td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_NV_framebuffer_multisample_coverage.txt">NV_framebuffer_multisample_coverage</a></td></tr>
<tr><td class="num">426</td><td>&nbsp;</td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_NV_geometry_program4.txt">NV_geometry_program4</a></td></tr> <tr><td class="num">427</td><td>&nbsp;</td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_NV_geometry_program4.txt">NV_geometry_program4</a></td></tr>
<tr><td class="num">427</td><td>&nbsp;</td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_NV_geometry_shader4.txt">NV_geometry_shader4</a></td></tr> <tr><td class="num">428</td><td>&nbsp;</td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_NV_geometry_shader4.txt">NV_geometry_shader4</a></td></tr>
<tr><td class="num">428</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/geometry_shader_passthrough.txt">NV_geometry_shader_passthrough</a></td></tr> <tr><td class="num">429</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/geometry_shader_passthrough.txt">NV_geometry_shader_passthrough</a></td></tr>
<tr><td class="num">429</td><td>&nbsp;</td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_NV_gpu_program4.txt">NV_gpu_program4</a></td></tr> <tr><td class="num">430</td><td>&nbsp;</td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_NV_gpu_program4.txt">NV_gpu_program4</a></td></tr>
<tr><td class="num">430</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/gpu_program5.txt">NV_gpu_program5</a></td></tr> <tr><td class="num">431</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/gpu_program5.txt">NV_gpu_program5</a></td></tr>
<tr><td class="num">431</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/gpu_program5_mem_extended.txt">NV_gpu_program5_mem_extended</a></td></tr> <tr><td class="num">432</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/gpu_program5_mem_extended.txt">NV_gpu_program5_mem_extended</a></td></tr>
<tr><td class="num">432</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/gpu_program5.txt">NV_gpu_program_fp64</a></td></tr> <tr><td class="num">433</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/gpu_program5.txt">NV_gpu_program_fp64</a></td></tr>
<tr><td class="num">433</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/gpu_shader5.txt">NV_gpu_shader5</a></td></tr> <tr><td class="num">434</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/gpu_shader5.txt">NV_gpu_shader5</a></td></tr>
<tr><td class="num">434</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/half_float.txt">NV_half_float</a></td></tr> <tr><td class="num">435</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/half_float.txt">NV_half_float</a></td></tr>
<tr><td class="num">435</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/internalformat_sample_query.txt">NV_internalformat_sample_query</a></td></tr> <tr><td class="num">436</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/internalformat_sample_query.txt">NV_internalformat_sample_query</a></td></tr>
<tr><td class="num">436</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/light_max_exponent.txt">NV_light_max_exponent</a></td></tr> <tr><td class="num">437</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/light_max_exponent.txt">NV_light_max_exponent</a></td></tr>
<tr><td class="num">437</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/multisample_coverage.txt">NV_multisample_coverage</a></td></tr> <tr><td class="num">438</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/multisample_coverage.txt">NV_multisample_coverage</a></td></tr>
<tr><td class="num">438</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/multisample_filter_hint.txt">NV_multisample_filter_hint</a></td></tr> <tr><td class="num">439</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/multisample_filter_hint.txt">NV_multisample_filter_hint</a></td></tr>
<tr><td class="num">439</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/occlusion_query.txt">NV_occlusion_query</a></td></tr> <tr><td class="num">440</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/occlusion_query.txt">NV_occlusion_query</a></td></tr>
<tr><td class="num">440</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/packed_depth_stencil.txt">NV_packed_depth_stencil</a></td></tr> <tr><td class="num">441</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/packed_depth_stencil.txt">NV_packed_depth_stencil</a></td></tr>
<tr><td class="num">441</td><td>&nbsp;</td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_NV_parameter_buffer_object.txt">NV_parameter_buffer_object</a></td></tr> <tr><td class="num">442</td><td>&nbsp;</td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_NV_parameter_buffer_object.txt">NV_parameter_buffer_object</a></td></tr>
<tr><td class="num">442</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/parameter_buffer_object2.txt">NV_parameter_buffer_object2</a></td></tr> <tr><td class="num">443</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/parameter_buffer_object2.txt">NV_parameter_buffer_object2</a></td></tr>
<tr><td class="num">443</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/path_rendering.txt">NV_path_rendering</a></td></tr> <tr><td class="num">444</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/path_rendering.txt">NV_path_rendering</a></td></tr>
<tr><td class="num">444</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/path_rendering_shared_edge.txt">NV_path_rendering_shared_edge</a></td></tr> <tr><td class="num">445</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/path_rendering_shared_edge.txt">NV_path_rendering_shared_edge</a></td></tr>
<tr><td class="num">445</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/pixel_data_range.txt">NV_pixel_data_range</a></td></tr> <tr><td class="num">446</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/pixel_data_range.txt">NV_pixel_data_range</a></td></tr>
<tr><td class="num">446</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/point_sprite.txt">NV_point_sprite</a></td></tr> <tr><td class="num">447</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/point_sprite.txt">NV_point_sprite</a></td></tr>
<tr><td class="num">447</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/present_video.txt">NV_present_video</a></td></tr> <tr><td class="num">448</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/present_video.txt">NV_present_video</a></td></tr>
<tr><td class="num">448</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/primitive_restart.txt">NV_primitive_restart</a></td></tr> <tr><td class="num">449</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/primitive_restart.txt">NV_primitive_restart</a></td></tr>
<tr><td class="num">449</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/register_combiners.txt">NV_register_combiners</a></td></tr> <tr><td class="num">450</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/register_combiners.txt">NV_register_combiners</a></td></tr>
<tr><td class="num">450</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/register_combiners2.txt">NV_register_combiners2</a></td></tr> <tr><td class="num">451</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/register_combiners2.txt">NV_register_combiners2</a></td></tr>
<tr><td class="num">451</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/sample_locations.txt">NV_sample_locations</a></td></tr> <tr><td class="num">452</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/sample_locations.txt">NV_sample_locations</a></td></tr>
<tr><td class="num">452</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/sample_mask_override_coverage.txt">NV_sample_mask_override_coverage</a></td></tr> <tr><td class="num">453</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/sample_mask_override_coverage.txt">NV_sample_mask_override_coverage</a></td></tr>
<tr><td class="num">453</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/shader_atomic_counters.txt">NV_shader_atomic_counters</a></td></tr> <tr><td class="num">454</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/shader_atomic_counters.txt">NV_shader_atomic_counters</a></td></tr>
<tr><td class="num">454</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/shader_atomic_float.txt">NV_shader_atomic_float</a></td></tr> <tr><td class="num">455</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/shader_atomic_float.txt">NV_shader_atomic_float</a></td></tr>
<tr><td class="num">455</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/shader_atomic_fp16_vector.txt">NV_shader_atomic_fp16_vector</a></td></tr> <tr><td class="num">456</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/shader_atomic_fp16_vector.txt">NV_shader_atomic_fp16_vector</a></td></tr>
<tr><td class="num">456</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/shader_atomic_int64.txt">NV_shader_atomic_int64</a></td></tr> <tr><td class="num">457</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/shader_atomic_int64.txt">NV_shader_atomic_int64</a></td></tr>
<tr><td class="num">457</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/shader_buffer_load.txt">NV_shader_buffer_load</a></td></tr> <tr><td class="num">458</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/shader_buffer_load.txt">NV_shader_buffer_load</a></td></tr>
<tr><td class="num">458</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/shader_storage_buffer_object.txt">NV_shader_storage_buffer_object</a></td></tr> <tr><td class="num">459</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/shader_storage_buffer_object.txt">NV_shader_storage_buffer_object</a></td></tr>
<tr><td class="num">459</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/shader_thread_group.txt">NV_shader_thread_group</a></td></tr> <tr><td class="num">460</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/shader_thread_group.txt">NV_shader_thread_group</a></td></tr>
<tr><td class="num">460</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/shader_thread_shuffle.txt">NV_shader_thread_shuffle</a></td></tr> <tr><td class="num">461</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/shader_thread_shuffle.txt">NV_shader_thread_shuffle</a></td></tr>
<tr><td class="num">461</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/tessellation_program5.txt">NV_tessellation_program5</a></td></tr> <tr><td class="num">462</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/tessellation_program5.txt">NV_tessellation_program5</a></td></tr>
<tr><td class="num">462</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/texgen_emboss.txt">NV_texgen_emboss</a></td></tr> <tr><td class="num">463</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/texgen_emboss.txt">NV_texgen_emboss</a></td></tr>
<tr><td class="num">463</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/texgen_reflection.txt">NV_texgen_reflection</a></td></tr> <tr><td class="num">464</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/texgen_reflection.txt">NV_texgen_reflection</a></td></tr>
<tr><td class="num">464</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/texture_barrier.txt">NV_texture_barrier</a></td></tr> <tr><td class="num">465</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/texture_barrier.txt">NV_texture_barrier</a></td></tr>
<tr><td class="num">465</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/texture_compression_vtc.txt">NV_texture_compression_vtc</a></td></tr> <tr><td class="num">466</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/texture_compression_vtc.txt">NV_texture_compression_vtc</a></td></tr>
<tr><td class="num">466</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/texture_env_combine4.txt">NV_texture_env_combine4</a></td></tr> <tr><td class="num">467</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/texture_env_combine4.txt">NV_texture_env_combine4</a></td></tr>
<tr><td class="num">467</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/texture_expand_normal.txt">NV_texture_expand_normal</a></td></tr> <tr><td class="num">468</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/texture_expand_normal.txt">NV_texture_expand_normal</a></td></tr>
<tr><td class="num">468</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/texture_multisample.txt">NV_texture_multisample</a></td></tr> <tr><td class="num">469</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/texture_multisample.txt">NV_texture_multisample</a></td></tr>
<tr><td class="num">469</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/texture_rectangle.txt">NV_texture_rectangle</a></td></tr> <tr><td class="num">470</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/texture_rectangle.txt">NV_texture_rectangle</a></td></tr>
<tr><td class="num">470</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/texture_shader.txt">NV_texture_shader</a></td></tr> <tr><td class="num">471</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/texture_shader.txt">NV_texture_shader</a></td></tr>
<tr><td class="num">471</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/texture_shader2.txt">NV_texture_shader2</a></td></tr> <tr><td class="num">472</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/texture_shader2.txt">NV_texture_shader2</a></td></tr>
<tr><td class="num">472</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/texture_shader3.txt">NV_texture_shader3</a></td></tr> <tr><td class="num">473</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/texture_shader3.txt">NV_texture_shader3</a></td></tr>
<tr><td class="num">473</td><td>&nbsp;</td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_NV_transform_feedback.txt">NV_transform_feedback</a></td></tr> <tr><td class="num">474</td><td>&nbsp;</td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_NV_transform_feedback.txt">NV_transform_feedback</a></td></tr>
<tr><td class="num">474</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/transform_feedback2.txt">NV_transform_feedback2</a></td></tr> <tr><td class="num">475</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/transform_feedback2.txt">NV_transform_feedback2</a></td></tr>
<tr><td class="num">475</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/uniform_buffer_unified_memory.txt">NV_uniform_buffer_unified_memory</a></td></tr> <tr><td class="num">476</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/uniform_buffer_unified_memory.txt">NV_uniform_buffer_unified_memory</a></td></tr>
<tr><td class="num">476</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/vdpau_interop.txt">NV_vdpau_interop</a></td></tr> <tr><td class="num">477</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/vdpau_interop.txt">NV_vdpau_interop</a></td></tr>
<tr><td class="num">477</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/vertex_array_range.txt">NV_vertex_array_range</a></td></tr> <tr><td class="num">478</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/vertex_array_range.txt">NV_vertex_array_range</a></td></tr>
<tr><td class="num">478</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/vertex_array_range2.txt">NV_vertex_array_range2</a></td></tr> <tr><td class="num">479</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/vertex_array_range2.txt">NV_vertex_array_range2</a></td></tr>
<tr><td class="num">479</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt">NV_vertex_attrib_integer_64bit</a></td></tr> <tr><td class="num">480</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/vertex_attrib_integer_64bit.txt">NV_vertex_attrib_integer_64bit</a></td></tr>
<tr><td class="num">480</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/vertex_buffer_unified_memory.txt">NV_vertex_buffer_unified_memory</a></td></tr> <tr><td class="num">481</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/vertex_buffer_unified_memory.txt">NV_vertex_buffer_unified_memory</a></td></tr>
<tr><td class="num">481</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/vertex_program.txt">NV_vertex_program</a></td></tr> <tr><td class="num">482</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/vertex_program.txt">NV_vertex_program</a></td></tr>
<tr><td class="num">482</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/vertex_program1_1.txt">NV_vertex_program1_1</a></td></tr> <tr><td class="num">483</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/vertex_program1_1.txt">NV_vertex_program1_1</a></td></tr>
<tr><td class="num">483</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/vertex_program2.txt">NV_vertex_program2</a></td></tr> <tr><td class="num">484</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/vertex_program2.txt">NV_vertex_program2</a></td></tr>
<tr><td class="num">484</td><td>&nbsp;</td><td><a href="http://www.nvidia.com/dev_content/nvopenglspecs/GL_NV_vertex_program2_option.txt">NV_vertex_program2_option</a></td></tr> <tr><td class="num">485</td><td>&nbsp;</td><td><a href="http://www.nvidia.com/dev_content/nvopenglspecs/GL_NV_vertex_program2_option.txt">NV_vertex_program2_option</a></td></tr>
<tr><td class="num">485</td><td>&nbsp;</td><td><a href="http://www.nvidia.com/dev_content/nvopenglspecs/GL_NV_vertex_program3.txt">NV_vertex_program3</a></td></tr> <tr><td class="num">486</td><td>&nbsp;</td><td><a href="http://www.nvidia.com/dev_content/nvopenglspecs/GL_NV_vertex_program3.txt">NV_vertex_program3</a></td></tr>
<tr><td class="num">486</td><td>&nbsp;</td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_NV_vertex_program4.txt">NV_vertex_program4</a></td></tr> <tr><td class="num">487</td><td>&nbsp;</td><td><a href="http://developer.download.nvidia.com/opengl/specs/GL_NV_vertex_program4.txt">NV_vertex_program4</a></td></tr>
<tr><td class="num">487</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/video_capture.txt">NV_video_capture</a></td></tr> <tr><td class="num">488</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/video_capture.txt">NV_video_capture</a></td></tr>
<tr><td class="num">488</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/viewport_array2.txt">NV_viewport_array2</a></td></tr> <tr><td class="num">489</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/NV/viewport_array2.txt">NV_viewport_array2</a></td></tr>
<tr><td><br></td><td></td><td></td></tr> <tr><td><br></td><td></td><td></td></tr>
<tr><td class="num">489</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/OES/OES_byte_coordinates.txt">OES_byte_coordinates</a></td></tr> <tr><td class="num">490</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/OES/OES_byte_coordinates.txt">OES_byte_coordinates</a></td></tr>
<tr><td class="num">490</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/OES/OES_compressed_paletted_texture.txt">OES_compressed_paletted_texture</a></td></tr> <tr><td class="num">491</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/OES/OES_compressed_paletted_texture.txt">OES_compressed_paletted_texture</a></td></tr>
<tr><td class="num">491</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/OES/OES_read_format.txt">OES_read_format</a></td></tr> <tr><td class="num">492</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/OES/OES_read_format.txt">OES_read_format</a></td></tr>
<tr><td class="num">492</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/OES/OES_single_precision.txt">OES_single_precision</a></td></tr> <tr><td class="num">493</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/OES/OES_single_precision.txt">OES_single_precision</a></td></tr>
<tr><td><br></td><td></td><td></td></tr> <tr><td><br></td><td></td><td></td></tr>
<tr><td class="num">493</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/OML/interlace.txt">OML_interlace</a></td></tr> <tr><td class="num">494</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/OML/interlace.txt">OML_interlace</a></td></tr>
<tr><td class="num">494</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/OML/resample.txt">OML_resample</a></td></tr> <tr><td class="num">495</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/OML/resample.txt">OML_resample</a></td></tr>
<tr><td class="num">495</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/OML/subsample.txt">OML_subsample</a></td></tr> <tr><td class="num">496</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/OML/subsample.txt">OML_subsample</a></td></tr>
<tr><td><br></td><td></td><td></td></tr> <tr><td><br></td><td></td><td></td></tr>
<tr><td class="num">496</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/OVR/multiview.txt">OVR_multiview</a></td></tr> <tr><td class="num">497</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/OVR/multiview.txt">OVR_multiview</a></td></tr>
<tr><td class="num">497</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/OVR/multiview2.txt">OVR_multiview2</a></td></tr> <tr><td class="num">498</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/OVR/multiview2.txt">OVR_multiview2</a></td></tr>
<tr><td><br></td><td></td><td></td></tr> <tr><td><br></td><td></td><td></td></tr>
<tr><td class="num">498</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/PGI/misc_hints.txt">PGI_misc_hints</a></td></tr> <tr><td class="num">499</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/PGI/misc_hints.txt">PGI_misc_hints</a></td></tr>
<tr><td class="num">499</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/PGI/vertex_hints.txt">PGI_vertex_hints</a></td></tr> <tr><td class="num">500</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/PGI/vertex_hints.txt">PGI_vertex_hints</a></td></tr>
<tr><td><br></td><td></td><td></td></tr> <tr><td><br></td><td></td><td></td></tr>
<tr><td class="num">500</td><td>&nbsp;</td><td><a href="https://github.com/p3/regal/tree/master/doc/extensions">REGAL_ES1_0_compatibility</a></td></tr> <tr><td class="num">501</td><td>&nbsp;</td><td><a href="https://github.com/p3/regal/tree/master/doc/extensions">REGAL_ES1_0_compatibility</a></td></tr>
<tr><td class="num">501</td><td>&nbsp;</td><td><a href="https://github.com/p3/regal/tree/master/doc/extensions">REGAL_ES1_1_compatibility</a></td></tr> <tr><td class="num">502</td><td>&nbsp;</td><td><a href="https://github.com/p3/regal/tree/master/doc/extensions">REGAL_ES1_1_compatibility</a></td></tr>
<tr><td class="num">502</td><td>&nbsp;</td><td><a href="https://github.com/p3/regal/tree/master/doc/extensions">REGAL_enable</a></td></tr> <tr><td class="num">503</td><td>&nbsp;</td><td><a href="https://github.com/p3/regal/tree/master/doc/extensions">REGAL_enable</a></td></tr>
<tr><td class="num">503</td><td>&nbsp;</td><td><a href="https://github.com/p3/regal/tree/master/doc/extensions">REGAL_error_string</a></td></tr> <tr><td class="num">504</td><td>&nbsp;</td><td><a href="https://github.com/p3/regal/tree/master/doc/extensions">REGAL_error_string</a></td></tr>
<tr><td class="num">504</td><td>&nbsp;</td><td><a href="https://github.com/p3/regal/tree/master/doc/extensions">REGAL_extension_query</a></td></tr> <tr><td class="num">505</td><td>&nbsp;</td><td><a href="https://github.com/p3/regal/tree/master/doc/extensions">REGAL_extension_query</a></td></tr>
<tr><td class="num">505</td><td>&nbsp;</td><td><a href="https://github.com/p3/regal/tree/master/doc/extensions">REGAL_log</a></td></tr> <tr><td class="num">506</td><td>&nbsp;</td><td><a href="https://github.com/p3/regal/tree/master/doc/extensions">REGAL_log</a></td></tr>
<tr><td class="num">506</td><td>&nbsp;</td><td><a href="https://github.com/p3/regal/tree/master/doc/extensions">REGAL_proc_address</a></td></tr> <tr><td class="num">507</td><td>&nbsp;</td><td><a href="https://github.com/p3/regal/tree/master/doc/extensions">REGAL_proc_address</a></td></tr>
<tr><td><br></td><td></td><td></td></tr> <tr><td><br></td><td></td><td></td></tr>
<tr><td class="num">507</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/REND/screen_coordinates.txt">REND_screen_coordinates</a></td></tr> <tr><td class="num">508</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/REND/screen_coordinates.txt">REND_screen_coordinates</a></td></tr>
<tr><td><br></td><td></td><td></td></tr> <tr><td><br></td><td></td><td></td></tr>
<tr><td class="num">508</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/S3/s3tc.txt">S3_s3tc</a></td></tr> <tr><td class="num">509</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/S3/s3tc.txt">S3_s3tc</a></td></tr>
<tr><td><br></td><td></td><td></td></tr> <tr><td><br></td><td></td><td></td></tr>
<tr><td class="num">509</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIS/color_range.txt">SGIS_color_range</a></td></tr> <tr><td class="num">510</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIS/color_range.txt">SGIS_color_range</a></td></tr>
<tr><td class="num">510</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIS/detail_texture.txt">SGIS_detail_texture</a></td></tr> <tr><td class="num">511</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIS/detail_texture.txt">SGIS_detail_texture</a></td></tr>
<tr><td class="num">511</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIS/fog_func.txt">SGIS_fog_function</a></td></tr> <tr><td class="num">512</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIS/fog_func.txt">SGIS_fog_function</a></td></tr>
<tr><td class="num">512</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIS/generate_mipmap.txt">SGIS_generate_mipmap</a></td></tr> <tr><td class="num">513</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIS/generate_mipmap.txt">SGIS_generate_mipmap</a></td></tr>
<tr><td class="num">513</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIS/multisample.txt">SGIS_multisample</a></td></tr> <tr><td class="num">514</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIS/multisample.txt">SGIS_multisample</a></td></tr>
<tr><td class="num">514</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIS/pixel_texture.txt">SGIS_pixel_texture</a></td></tr> <tr><td class="num">515</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIS/pixel_texture.txt">SGIS_pixel_texture</a></td></tr>
<tr><td class="num">515</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIS/point_line_texgen.txt">SGIS_point_line_texgen</a></td></tr> <tr><td class="num">516</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIS/point_line_texgen.txt">SGIS_point_line_texgen</a></td></tr>
<tr><td class="num">516</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIS/sharpen_texture.txt">SGIS_sharpen_texture</a></td></tr> <tr><td class="num">517</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIS/sharpen_texture.txt">SGIS_sharpen_texture</a></td></tr>
<tr><td class="num">517</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIS/texture4D.txt">SGIS_texture4D</a></td></tr> <tr><td class="num">518</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIS/texture4D.txt">SGIS_texture4D</a></td></tr>
<tr><td class="num">518</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIS/texture_border_clamp.txt">SGIS_texture_border_clamp</a></td></tr> <tr><td class="num">519</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIS/texture_border_clamp.txt">SGIS_texture_border_clamp</a></td></tr>
<tr><td class="num">519</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIS/texture_edge_clamp.txt">SGIS_texture_edge_clamp</a></td></tr> <tr><td class="num">520</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIS/texture_edge_clamp.txt">SGIS_texture_edge_clamp</a></td></tr>
<tr><td class="num">520</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIS/texture_filter4.txt">SGIS_texture_filter4</a></td></tr> <tr><td class="num">521</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIS/texture_filter4.txt">SGIS_texture_filter4</a></td></tr>
<tr><td class="num">521</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIS/texture_lod.txt">SGIS_texture_lod</a></td></tr> <tr><td class="num">522</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIS/texture_lod.txt">SGIS_texture_lod</a></td></tr>
<tr><td class="num">522</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIS/texture_select.txt">SGIS_texture_select</a></td></tr> <tr><td class="num">523</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIS/texture_select.txt">SGIS_texture_select</a></td></tr>
<tr><td><br></td><td></td><td></td></tr> <tr><td><br></td><td></td><td></td></tr>
<tr><td class="num">523</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/async.txt">SGIX_async</a></td></tr> <tr><td class="num">524</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/async.txt">SGIX_async</a></td></tr>
<tr><td class="num">524</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/async_histogram.txt">SGIX_async_histogram</a></td></tr> <tr><td class="num">525</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/async_histogram.txt">SGIX_async_histogram</a></td></tr>
<tr><td class="num">525</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/async_pixel.txt">SGIX_async_pixel</a></td></tr> <tr><td class="num">526</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/async_pixel.txt">SGIX_async_pixel</a></td></tr>
<tr><td class="num">526</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/blend_alpha_minmax.txt">SGIX_blend_alpha_minmax</a></td></tr> <tr><td class="num">527</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/blend_alpha_minmax.txt">SGIX_blend_alpha_minmax</a></td></tr>
<tr><td class="num">527</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/clipmap.txt">SGIX_clipmap</a></td></tr> <tr><td class="num">528</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/clipmap.txt">SGIX_clipmap</a></td></tr>
<tr><td class="num">528</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/convolution_accuracy.txt">SGIX_convolution_accuracy</a></td></tr> <tr><td class="num">529</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/convolution_accuracy.txt">SGIX_convolution_accuracy</a></td></tr>
<tr><td class="num">529</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/depth_texture.txt">SGIX_depth_texture</a></td></tr> <tr><td class="num">530</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/depth_texture.txt">SGIX_depth_texture</a></td></tr>
<tr><td class="num">530</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/flush_raster.txt">SGIX_flush_raster</a></td></tr> <tr><td class="num">531</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/flush_raster.txt">SGIX_flush_raster</a></td></tr>
<tr><td class="num">531</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/fog_offset.txt">SGIX_fog_offset</a></td></tr> <tr><td class="num">532</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/fog_offset.txt">SGIX_fog_offset</a></td></tr>
<tr><td class="num">532</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/fog_texture.txt">SGIX_fog_texture</a></td></tr> <tr><td class="num">533</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/fog_texture.txt">SGIX_fog_texture</a></td></tr>
<tr><td class="num">533</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/fragment_specular_lighting.txt">SGIX_fragment_specular_lighting</a></td></tr> <tr><td class="num">534</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/fragment_specular_lighting.txt">SGIX_fragment_specular_lighting</a></td></tr>
<tr><td class="num">534</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/framezoom.txt">SGIX_framezoom</a></td></tr> <tr><td class="num">535</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/framezoom.txt">SGIX_framezoom</a></td></tr>
<tr><td class="num">535</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/interlace.txt">SGIX_interlace</a></td></tr> <tr><td class="num">536</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/interlace.txt">SGIX_interlace</a></td></tr>
<tr><td class="num">536</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/ir_instrument1.txt">SGIX_ir_instrument1</a></td></tr> <tr><td class="num">537</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/ir_instrument1.txt">SGIX_ir_instrument1</a></td></tr>
<tr><td class="num">537</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/list_priority.txt">SGIX_list_priority</a></td></tr> <tr><td class="num">538</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/list_priority.txt">SGIX_list_priority</a></td></tr>
<tr><td class="num">538</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/sgix_pixel_texture.txt">SGIX_pixel_texture</a></td></tr> <tr><td class="num">539</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/sgix_pixel_texture.txt">SGIX_pixel_texture</a></td></tr>
<tr><td class="num">539</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/pixel_texture_bits.txt">SGIX_pixel_texture_bits</a></td></tr> <tr><td class="num">540</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/pixel_texture_bits.txt">SGIX_pixel_texture_bits</a></td></tr>
<tr><td class="num">540</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/reference_plane.txt">SGIX_reference_plane</a></td></tr> <tr><td class="num">541</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/reference_plane.txt">SGIX_reference_plane</a></td></tr>
<tr><td class="num">541</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/resample.txt">SGIX_resample</a></td></tr> <tr><td class="num">542</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/resample.txt">SGIX_resample</a></td></tr>
<tr><td class="num">542</td><td>&nbsp;</td><td><a href="http://oss.sgi.com/projects/ogl-sample/registry/SGIX/shadow.txt">SGIX_shadow</a></td></tr> <tr><td class="num">543</td><td>&nbsp;</td><td><a href="http://oss.sgi.com/projects/ogl-sample/registry/SGIX/shadow.txt">SGIX_shadow</a></td></tr>
<tr><td class="num">543</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/shadow_ambient.txt">SGIX_shadow_ambient</a></td></tr> <tr><td class="num">544</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/shadow_ambient.txt">SGIX_shadow_ambient</a></td></tr>
<tr><td class="num">544</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/sprite.txt">SGIX_sprite</a></td></tr> <tr><td class="num">545</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/sprite.txt">SGIX_sprite</a></td></tr>
<tr><td class="num">545</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/tag_sample_buffer.txt">SGIX_tag_sample_buffer</a></td></tr> <tr><td class="num">546</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/tag_sample_buffer.txt">SGIX_tag_sample_buffer</a></td></tr>
<tr><td class="num">546</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/texture_env_add.txt">SGIX_texture_add_env</a></td></tr> <tr><td class="num">547</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/texture_env_add.txt">SGIX_texture_add_env</a></td></tr>
<tr><td class="num">547</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/texture_coordinate_clamp.txt">SGIX_texture_coordinate_clamp</a></td></tr> <tr><td class="num">548</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/texture_coordinate_clamp.txt">SGIX_texture_coordinate_clamp</a></td></tr>
<tr><td class="num">548</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/texture_lod_bias.txt">SGIX_texture_lod_bias</a></td></tr> <tr><td class="num">549</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/texture_lod_bias.txt">SGIX_texture_lod_bias</a></td></tr>
<tr><td class="num">549</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/texture_multi_buffer.txt">SGIX_texture_multi_buffer</a></td></tr> <tr><td class="num">550</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/texture_multi_buffer.txt">SGIX_texture_multi_buffer</a></td></tr>
<tr><td class="num">550</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/texture_range.txt">SGIX_texture_range</a></td></tr> <tr><td class="num">551</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/texture_range.txt">SGIX_texture_range</a></td></tr>
<tr><td class="num">551</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/texture_scale_bias.txt">SGIX_texture_scale_bias</a></td></tr> <tr><td class="num">552</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/texture_scale_bias.txt">SGIX_texture_scale_bias</a></td></tr>
<tr><td class="num">552</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/vertex_preclip.txt">SGIX_vertex_preclip</a></td></tr> <tr><td class="num">553</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/vertex_preclip.txt">SGIX_vertex_preclip</a></td></tr>
<tr><td class="num">553</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/vertex_preclip.txt">SGIX_vertex_preclip_hint</a></td></tr> <tr><td class="num">554</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/vertex_preclip.txt">SGIX_vertex_preclip_hint</a></td></tr>
<tr><td class="num">554</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/ycrcb.txt">SGIX_ycrcb</a></td></tr> <tr><td class="num">555</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGIX/ycrcb.txt">SGIX_ycrcb</a></td></tr>
<tr><td><br></td><td></td><td></td></tr> <tr><td><br></td><td></td><td></td></tr>
<tr><td class="num">555</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGI/color_matrix.txt">SGI_color_matrix</a></td></tr> <tr><td class="num">556</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGI/color_matrix.txt">SGI_color_matrix</a></td></tr>
<tr><td class="num">556</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGI/color_table.txt">SGI_color_table</a></td></tr> <tr><td class="num">557</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGI/color_table.txt">SGI_color_table</a></td></tr>
<tr><td class="num">557</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGI/texture_color_table.txt">SGI_texture_color_table</a></td></tr> <tr><td class="num">558</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SGI/texture_color_table.txt">SGI_texture_color_table</a></td></tr>
<tr><td><br></td><td></td><td></td></tr> <tr><td><br></td><td></td><td></td></tr>
<tr><td class="num">558</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SUNX/constant_data.txt">SUNX_constant_data</a></td></tr> <tr><td class="num">559</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SUNX/constant_data.txt">SUNX_constant_data</a></td></tr>
<tr><td><br></td><td></td><td></td></tr> <tr><td><br></td><td></td><td></td></tr>
<tr><td class="num">559</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SUN/convolution_border_modes.txt">SUN_convolution_border_modes</a></td></tr> <tr><td class="num">560</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SUN/convolution_border_modes.txt">SUN_convolution_border_modes</a></td></tr>
<tr><td class="num">560</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SUN/global_alpha.txt">SUN_global_alpha</a></td></tr> <tr><td class="num">561</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SUN/global_alpha.txt">SUN_global_alpha</a></td></tr>
<tr><td class="num">561</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SUN/mesh_array.txt">SUN_mesh_array</a></td></tr> <tr><td class="num">562</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SUN/mesh_array.txt">SUN_mesh_array</a></td></tr>
<tr><td class="num">562</td><td>&nbsp;</td><td><a href="http://wwws.sun.com/software/graphics/opengl/extensions/gl_sun_read_video_pixels.txt">SUN_read_video_pixels</a></td></tr> <tr><td class="num">563</td><td>&nbsp;</td><td><a href="http://wwws.sun.com/software/graphics/opengl/extensions/gl_sun_read_video_pixels.txt">SUN_read_video_pixels</a></td></tr>
<tr><td class="num">563</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SUN/slice_accum.txt">SUN_slice_accum</a></td></tr> <tr><td class="num">564</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SUN/slice_accum.txt">SUN_slice_accum</a></td></tr>
<tr><td class="num">564</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SUN/triangle_list.txt">SUN_triangle_list</a></td></tr> <tr><td class="num">565</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SUN/triangle_list.txt">SUN_triangle_list</a></td></tr>
<tr><td class="num">565</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SUN/vertex.txt">SUN_vertex</a></td></tr> <tr><td class="num">566</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/SUN/vertex.txt">SUN_vertex</a></td></tr>
<tr><td><br></td><td></td><td></td></tr> <tr><td><br></td><td></td><td></td></tr>
<tr><td class="num">566</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/WIN/phong_shading.txt">WIN_phong_shading</a></td></tr> <tr><td class="num">567</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/WIN/phong_shading.txt">WIN_phong_shading</a></td></tr>
<tr><td class="num">567</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/WIN/specular_fog.txt">WIN_specular_fog</a></td></tr> <tr><td class="num">568</td><td>&nbsp;</td><td><a href="http://www.opengl.org/registry/specs/WIN/specular_fog.txt">WIN_specular_fog</a></td></tr>
<tr><td class="num">568</td><td>&nbsp;</td><td><a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/opengl/glfunc01_16zy.asp">WIN_swap_hint</a></td></tr> <tr><td class="num">569</td><td>&nbsp;</td><td><a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/opengl/glfunc01_16zy.asp">WIN_swap_hint</a></td></tr>
</table> </table>
<!-- begin footer.html --> <!-- begin footer.html -->
</td></tr></table></body> </td></tr></table></body>