1
1
Fork 0
mirror of https://github.com/QB64Official/qb64.git synced 2024-07-01 09:10:37 +00:00

Adds support for hardware accelerated 2D graphics commands

This commit is contained in:
Galleon 2014-03-23 17:17:14 +11:00
parent d9adaace18
commit 5a59d6ea7e
877 changed files with 150163 additions and 36 deletions

View file

@ -193,7 +193,7 @@ uint8 apm_p2;
//QBASIC compatible rounding via FPU:
#ifdef QB64_MICROSOFT
inline int64 qbr(long double f){
static int64 i;
int64 i;
__asm{
fld f
fistp i
@ -201,7 +201,7 @@ uint8 apm_p2;
return i;
}
inline uint64 qbr_longdouble_to_uint64(long double f){
static uint64 i;
uint64 i;
__asm{
fld f
fistp i
@ -209,7 +209,7 @@ uint8 apm_p2;
return i;
}
inline int32 qbr_float_to_long(float f){
static int32 i;
int32 i;
__asm{
fld f
fistp i
@ -217,7 +217,7 @@ uint8 apm_p2;
return i;
}
inline int32 qbr_double_to_long(double f){
static int32 i;
int32 i;
__asm{
fld f
fistp i
@ -229,8 +229,8 @@ uint8 apm_p2;
//FLDL=load double
//FLDT=load long double
inline int64 qbr(long double f){
static int64 i;
__asm__ (
int64 i;
__asm__ (
"fldt %1;"
"fistpll %0;"
:"=m" (i)
@ -239,7 +239,7 @@ uint8 apm_p2;
return i;
}
inline uint64 qbr_longdouble_to_uint64(long double f){
static uint64 i;
uint64 i;
__asm__ (
"fldt %1;"
"fistpll %0;"
@ -249,7 +249,7 @@ uint8 apm_p2;
return i;
}
inline int32 qbr_float_to_long(float f){
static int32 i;
int32 i;
__asm__ (
"flds %1;"
"fistpl %0;"
@ -259,7 +259,7 @@ uint8 apm_p2;
return i;
}
inline int32 qbr_double_to_long(double f){
static int32 i;
int32 i;
__asm__ (
"fldl %1;"
"fistpl %0;"

View file

@ -1 +1 @@
c_compiler\bin\g++ -s -Wfatal-errors -w -Wall qbx.cpp -lws2_32 -lwinspool parts\core\os\win\src.a -lopengl32 -lglu32 -lwinmm -lgdi32 -mwindows -static-libgcc -static-libstdc++ -D FREEGLUT_STATIC -lksguid -lole32 -lwinmm -ldxguid -o ..\..\
c_compiler\bin\g++ -s -Wfatal-errors -w -Wall qbx.cpp -lws2_32 -lwinspool parts\core\os\win\src.a -lopengl32 -lglu32 -lwinmm -lgdi32 -mwindows -static-libgcc -static-libstdc++ -D GLEW_STATIC -D FREEGLUT_STATIC -lksguid -lole32 -lwinmm -ldxguid -o ..\..\

View file

@ -289,6 +289,7 @@ GLboolean fgSetupPixelFormat( SFG_Window* window, GLboolean checkOnly,
current_hDC = window->Window.pContext.Device;
fghFillPFD( ppfd, current_hDC, layer_type );
pixelformat = ChoosePixelFormat( current_hDC, ppfd );
/* windows hack for multismapling/sRGB */

View file

@ -0,0 +1,73 @@
The OpenGL Extension Wrangler Library
Copyright (C) 2002-2007, Milan Ikits <milan ikits[]ieee org>
Copyright (C) 2002-2007, Marcelo E. Magallon <mmagallo[]debian org>
Copyright (C) 2002, Lev Povalahev
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* The name of the author may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
THE POSSIBILITY OF SUCH DAMAGE.
Mesa 3-D graphics library
Version: 7.0
Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Copyright (c) 2007 The Khronos Group Inc.
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and/or associated documentation files (the
"Materials"), to deal in the Materials without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Materials, and to
permit persons to whom the Materials are furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Materials.
THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.

View file

@ -0,0 +1,402 @@
#!gmake
## The OpenGL Extension Wrangler Library
## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
## Copyright (C) 2002, Lev Povalahev
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
## modification, are permitted provided that the following conditions are met:
##
## * Redistributions of source code must retain the above copyright notice,
## this list of conditions and the following disclaimer.
## * Redistributions in binary form must reproduce the above copyright notice,
## this list of conditions and the following disclaimer in the documentation
## and/or other materials provided with the distribution.
## * The name of the author may be used to endorse or promote products
## derived from this software without specific prior written permission.
##
## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
## AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
## IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
## ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
## LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
## CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
## SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
## INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
## CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
## ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
## THE POSSIBILITY OF SUCH DAMAGE.
include config/version
SHELL = /bin/sh
SYSTEM ?= $(shell config/config.guess | cut -d - -f 3 | sed -e 's/[0-9\.]//g;')
SYSTEM.SUPPORTED = $(shell test -f config/Makefile.$(SYSTEM) && echo 1)
ifeq ($(SYSTEM.SUPPORTED), 1)
include config/Makefile.$(SYSTEM)
else
$(error "Platform '$(SYSTEM)' not supported")
endif
GLEW_DEST ?= /usr
BINDIR ?= $(GLEW_DEST)/bin
LIBDIR ?= $(GLEW_DEST)/lib
INCDIR ?= $(GLEW_DEST)/include/GL
DIST_NAME ?= glew-$(GLEW_VERSION)
DIST_SRC_ZIP ?= $(shell pwd)/$(DIST_NAME).zip
DIST_SRC_TGZ ?= $(shell pwd)/$(DIST_NAME).tgz
DIST_WIN32 ?= $(shell pwd)/$(DIST_NAME)-win32.zip
DIST_DIR := $(shell mktemp -d /tmp/glew.XXXXXX)/$(DIST_NAME)
# To disable stripping of binaries either:
# - use STRIP= on gmake command-line
# - edit this makefile to set STRIP to the empty string
#
# To disable symlinks:
# - use LN= on gmake command-line
AR ?= ar
INSTALL ?= install
STRIP ?= strip
RM ?= rm -f
LN ?= ln -sf
ifeq ($(MAKECMDGOALS), debug)
OPT = -g
else
OPT = $(POPT)
endif
INCLUDE = -Iinclude
CFLAGS = $(OPT) $(WARN) $(INCLUDE) $(CFLAGS.EXTRA)
all debug: glew.lib glew.lib.mx glew.bin
# GLEW shared and static libraries
LIB.LDFLAGS := $(LDFLAGS.EXTRA) $(LDFLAGS.GL)
LIB.LIBS := $(GL_LDFLAGS)
LIB.SRCS := src/glew.c
LIB.SRCS.NAMES := $(notdir $(LIB.SRCS))
LIB.OBJS := $(addprefix tmp/$(SYSTEM)/default/static/,$(LIB.SRCS.NAMES))
LIB.OBJS := $(LIB.OBJS:.c=.o)
LIB.SOBJS := $(addprefix tmp/$(SYSTEM)/default/shared/,$(LIB.SRCS.NAMES))
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
lib:
mkdir lib
lib/$(LIB.STATIC): $(LIB.OBJS)
$(AR) cr $@ $^
ifneq ($(STRIP),)
$(STRIP) -x $@
endif
lib/$(LIB.SHARED): $(LIB.SOBJS)
$(LD) $(LDFLAGS.SO) -o $@ $^ $(LIB.LDFLAGS) $(LIB.LIBS)
ifneq ($(LN),)
$(LN) $(LIB.SHARED) lib/$(LIB.SONAME)
$(LN) $(LIB.SHARED) lib/$(LIB.DEVLNK)
endif
ifneq ($(STRIP),)
$(STRIP) -x $@
endif
tmp/$(SYSTEM)/default/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_STATIC $(CFLAGS) $(CFLAGS.SO) -o $@ -c $<
tmp/$(SYSTEM)/default/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 $(CFLAGS) $(CFLAGS.SO) -o $@ -c $<
# Force re-write of glew.pc, GLEW_DEST can vary
.PHONY: glew.pc
glew.pc: glew.pc.in
sed \
-e "s|@prefix@|$(GLEW_DEST)|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@||g" \
-e "s|@libname@|GLEW|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)
$(AR) cr $@ $^
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 $(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_DEST)|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@|GLEWmx|g" \
< $< > $@
# GLEW utility programs
BIN.LIBS = -Llib $(LDFLAGS.DYNAMIC) -l$(NAME) $(LDFLAGS.EXTRA) $(LDFLAGS.GL)
GLEWINFO.BIN := glewinfo$(BIN.SUFFIX)
GLEWINFO.BIN.SRC := src/glewinfo.c
GLEWINFO.BIN.OBJ := $(addprefix tmp/$(SYSTEM)/default/shared/,$(notdir $(GLEWINFO.BIN.SRC)))
GLEWINFO.BIN.OBJ := $(GLEWINFO.BIN.OBJ:.c=.o)
VISUALINFO.BIN := visualinfo$(BIN.SUFFIX)
VISUALINFO.BIN.SRC := src/visualinfo.c
VISUALINFO.BIN.OBJ := $(addprefix tmp/$(SYSTEM)/default/shared/,$(notdir $(VISUALINFO.BIN.SRC)))
VISUALINFO.BIN.OBJ := $(VISUALINFO.BIN.OBJ:.c=.o)
# Don't build glewinfo or visualinfo for NaCL, yet.
ifneq ($(filter nacl%,$(SYSTEM)),)
glew.bin: glew.lib bin
else
glew.bin: glew.lib bin bin/$(GLEWINFO.BIN) bin/$(VISUALINFO.BIN)
endif
bin:
mkdir bin
bin/$(GLEWINFO.BIN): $(GLEWINFO.BIN.OBJ) lib/$(LIB.SHARED)
$(CC) $(CFLAGS) -o $@ $(GLEWINFO.BIN.OBJ) $(BIN.LIBS)
ifneq ($(STRIP),)
$(STRIP) -x $@
endif
bin/$(VISUALINFO.BIN): $(VISUALINFO.BIN.OBJ) lib/$(LIB.SHARED)
$(CC) $(CFLAGS) -o $@ $(VISUALINFO.BIN.OBJ) $(BIN.LIBS)
ifneq ($(STRIP),)
$(STRIP) -x $@
endif
$(GLEWINFO.BIN.OBJ): $(GLEWINFO.BIN.SRC) include/GL/glew.h include/GL/wglew.h include/GL/glxew.h
@mkdir -p $(dir $@)
$(CC) -DGLEW_NO_GLU $(CFLAGS) $(CFLAGS.SO) -o $@ -c $<
$(VISUALINFO.BIN.OBJ): $(VISUALINFO.BIN.SRC) include/GL/glew.h include/GL/wglew.h include/GL/glxew.h
@mkdir -p $(dir $@)
$(CC) -DGLEW_NO_GLU $(CFLAGS) $(CFLAGS.SO) -o $@ -c $<
# Install targets
install.all: install install.mx install.bin
install: install.include install.lib install.pkgconfig
install.mx: install.include install.lib.mx install.pkgconfig.mx
install.lib: glew.lib
$(INSTALL) -d -m 0755 $(LIBDIR)
# runtime
ifeq ($(filter-out mingw% cygwin,$(SYSTEM)),)
$(INSTALL) -d -m 0755 $(BINDIR)
$(INSTALL) -m 0755 lib/$(LIB.SHARED) $(BINDIR)/
else
$(INSTALL) -m 0644 lib/$(LIB.SHARED) $(LIBDIR)/
endif
ifneq ($(LN),)
$(LN) $(LIB.SHARED) $(LIBDIR)/$(LIB.SONAME)
endif
# development files
ifeq ($(filter-out mingw% cygwin,$(SYSTEM)),)
$(INSTALL) -m 0644 lib/$(LIB.DEVLNK) $(LIBDIR)/
endif
ifneq ($(LN),)
$(LN) $(LIB.SHARED) $(LIBDIR)/$(LIB.DEVLNK)
endif
$(INSTALL) -m 0644 lib/$(LIB.STATIC) $(LIBDIR)/
install.lib.mx: glew.lib.mx
$(INSTALL) -d -m 0755 $(LIBDIR)
# runtime
ifeq ($(filter-out mingw% cygwin,$(SYSTEM)),)
$(INSTALL) -d -m 0755 $(BINDIR)
$(INSTALL) -m 0755 lib/$(LIB.SHARED.MX) $(BINDIR)/
else
$(INSTALL) -m 0644 lib/$(LIB.SHARED.MX) $(LIBDIR)/
endif
ifneq ($(LN),)
$(LN) $(LIB.SHARED.MX) $(LIBDIR)/$(LIB.SONAME.MX)
endif
# development files
ifeq ($(filter-out mingw% cygwin,$(SYSTEM)),)
$(INSTALL) -m 0644 lib/$(LIB.DEVLNK.MX) $(LIBDIR)/
endif
ifneq ($(LN),)
$(LN) $(LIB.SHARED.MX) $(LIBDIR)/$(LIB.DEVLNK.MX)
endif
$(INSTALL) -m 0644 lib/$(LIB.STATIC.MX) $(LIBDIR)/
install.bin: glew.bin
$(INSTALL) -d -m 0755 $(BINDIR)
$(INSTALL) -s -m 0755 bin/$(GLEWINFO.BIN) bin/$(VISUALINFO.BIN) $(BINDIR)/
install.include:
$(INSTALL) -d -m 0755 $(INCDIR)
$(INSTALL) -m 0644 include/GL/wglew.h $(INCDIR)/
$(INSTALL) -m 0644 include/GL/glew.h $(INCDIR)/
$(INSTALL) -m 0644 include/GL/glxew.h $(INCDIR)/
install.pkgconfig: glew.pc
$(INSTALL) -d -m 0755 $(LIBDIR)
$(INSTALL) -d -m 0755 $(LIBDIR)/pkgconfig
$(INSTALL) -m 0644 glew.pc $(LIBDIR)/pkgconfig/
install.pkgconfig.mx: glewmx.pc
$(INSTALL) -d -m 0755 $(LIBDIR)
$(INSTALL) -d -m 0755 $(LIBDIR)/pkgconfig
$(INSTALL) -m 0644 glewmx.pc $(LIBDIR)/pkgconfig/
uninstall:
$(RM) $(INCDIR)/wglew.h
$(RM) $(INCDIR)/glew.h
$(RM) $(INCDIR)/glxew.h
$(RM) $(LIBDIR)/$(LIB.DEVLNK) $(LIBDIR)/$(LIB.DEVLNK.MX)
ifeq ($(filter-out mingw% cygwin,$(SYSTEM)),)
$(RM) $(BINDIR)/$(LIB.SHARED) $(BINDIR)/$(LIB.SHARED.MX)
else
$(RM) $(LIBDIR)/$(LIB.SONAME) $(LIBDIR)/$(LIB.SONAME.MX)
$(RM) $(LIBDIR)/$(LIB.SHARED) $(LIBDIR)/$(LIB.SHARED.MX)
endif
$(RM) $(LIBDIR)/$(LIB.STATIC) $(LIBDIR)/$(LIB.STATIC.MX)
$(RM) $(BINDIR)/$(GLEWINFO.BIN) $(BINDIR)/$(VISUALINFO.BIN)
clean:
$(RM) -r tmp/
$(RM) -r lib/
$(RM) -r bin/
$(RM) glew.pc glewmx.pc
distclean: clean
find . -name \*~ | xargs $(RM)
find . -name .\*.sw\? | xargs $(RM)
# Distributions
dist-win32:
$(RM) -r $(DIST_DIR)
mkdir -p $(DIST_DIR)
cp -a include $(DIST_DIR)
cp -a doc $(DIST_DIR)
cp -a *.txt $(DIST_DIR)
cp -a bin $(DIST_DIR)
cp -a lib $(DIST_DIR)
$(RM) -f $(DIST_DIR)/bin/*/*/*.pdb $(DIST_DIR)/bin/*/*/*.exp
$(RM) -f $(DIST_DIR)/bin/*/*/glewinfo-*.exe $(DIST_DIR)/bin/*/*/visualinfo-*.exe
$(RM) -f $(DIST_DIR)/lib/*/*/*.pdb $(DIST_DIR)/lib/*/*/*.exp
unix2dos $(DIST_DIR)/include/GL/*.h
unix2dos $(DIST_DIR)/doc/*.txt
unix2dos $(DIST_DIR)/doc/*.html
unix2dos $(DIST_DIR)/*.txt
rm -f $(DIST_WIN32)
cd $(DIST_DIR)/.. && zip -rv9 $(DIST_WIN32) $(DIST_NAME)
$(RM) -r $(DIST_DIR)
dist-src:
$(RM) -r $(DIST_DIR)
mkdir -p $(DIST_DIR)
mkdir -p $(DIST_DIR)/bin
mkdir -p $(DIST_DIR)/lib
cp -a auto $(DIST_DIR)
$(RM) -Rf $(DIST_DIR)/auto/registry
cp -a build $(DIST_DIR)
cp -a config $(DIST_DIR)
cp -a src $(DIST_DIR)
cp -a doc $(DIST_DIR)
cp -a include $(DIST_DIR)
cp -a *.txt $(DIST_DIR)
cp -a Makefile $(DIST_DIR)
cp -a glew.pc.in $(DIST_DIR)
find $(DIST_DIR) -name '*.o' | xargs $(RM) -r
find $(DIST_DIR) -name '*~' | xargs $(RM) -r
find $(DIST_DIR) -name CVS -o -name .cvsignore | xargs $(RM) -r
find $(DIST_DIR) -name .svn | xargs $(RM) -r
find $(DIST_DIR) -name "*.patch" | xargs $(RM) -r
dos2unix $(DIST_DIR)/Makefile
dos2unix $(DIST_DIR)/auto/Makefile
dos2unix $(DIST_DIR)/config/*
unix2dos $(DIST_DIR)/auto/core/*
unix2dos $(DIST_DIR)/auto/extensions/*
find $(DIST_DIR) -name '*.h' | xargs unix2dos
find $(DIST_DIR) -name '*.c' | xargs unix2dos
find $(DIST_DIR) -name '*.txt' | xargs unix2dos
find $(DIST_DIR) -name '*.html' | xargs unix2dos
find $(DIST_DIR) -name '*.css' | xargs unix2dos
find $(DIST_DIR) -name '*.sh' | xargs unix2dos
find $(DIST_DIR) -name '*.pl' | xargs unix2dos
find $(DIST_DIR) -name 'Makefile' | xargs unix2dos
find $(DIST_DIR) -name '*.in' | xargs unix2dos
find $(DIST_DIR) -name '*.pm' | xargs unix2dos
find $(DIST_DIR) -name '*.rc' | xargs unix2dos
rm -f $(DIST_SRC_ZIP)
cd $(DIST_DIR)/.. && zip -rv9 $(DIST_SRC_ZIP) $(DIST_NAME)
dos2unix $(DIST_DIR)/Makefile
dos2unix $(DIST_DIR)/auto/Makefile
dos2unix $(DIST_DIR)/config/*
dos2unix $(DIST_DIR)/auto/core/*
dos2unix $(DIST_DIR)/auto/extensions/*
find $(DIST_DIR) -name '*.h' | xargs dos2unix
find $(DIST_DIR) -name '*.c' | xargs dos2unix
find $(DIST_DIR) -name '*.txt' | xargs dos2unix
find $(DIST_DIR) -name '*.html' | xargs dos2unix
find $(DIST_DIR) -name '*.css' | xargs dos2unix
find $(DIST_DIR) -name '*.sh' | xargs dos2unix
find $(DIST_DIR) -name '*.pl' | xargs dos2unix
find $(DIST_DIR) -name 'Makefile' | xargs dos2unix
find $(DIST_DIR) -name '*.in' | xargs dos2unix
find $(DIST_DIR) -name '*.pm' | xargs dos2unix
find $(DIST_DIR) -name '*.rc' | xargs dos2unix
rm -f $(DIST_SRC_TGZ)
cd $(DIST_DIR)/.. && env GZIP=-9 tar cvzf $(DIST_SRC_TGZ) $(DIST_NAME)
$(RM) -r $(DIST_DIR)
extensions:
$(MAKE) -C auto
.PHONY: clean distclean tardist dist-win32 dist-src

View file

@ -0,0 +1,18 @@
See doc/index.html for more information.
If you downloaded the tarball from the GLEW website, you just need to:
Unix:
make
Windows:
use the project file in build/vc6/
If you wish to build GLEW from scratch (update the extension data from
the net or add your own extension information), you need a Unix
environment (including wget, perl, and GNU make). The extension data
is regenerated from the top level source directory with:
make extensions

View file

@ -0,0 +1,12 @@
Major:
- add support for windows mini-client drivers
- add windows installer (msi)
- separate build of static and shared object files (for mingw and
cygwin)
- start designing GLEW 2.0
Minor:
- make auto scripts work with text mode cygwin mounts
- add support for all SUN, MTX, and OML extensions
- make auto/Makefile more robust against auto/core/*~ mistakes
- web poll on separating glew, glxew and wglew

View file

@ -0,0 +1,389 @@
## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
##
## This program is distributed under the terms and conditions of the GNU
## General Public License Version 2 as published by the Free Software
## Foundation or, at your option, any later version.
include ../config/version
#GLEW_SPLIT_SOURCE = yes
SHELL = bash
### Use git repository for GL extension specifications
GIT_CLONE ?= git clone --branch glew https://github.com/nigels-com/glfixes.git
###
### Conventional desktop OpenGL settings
###
REGISTRY = registry/gl/specs
EXT = extensions/gl
FILTER = filter_gl_ext.sh
CORE = core/gl
REGISTRY_URL = http://www.opengl.org/registry/
###
### Experimental OpenGL ES settings
###
# REGISTRY = registry/gles
# EXT = extensions/gles
# FILTER = filter_gles_ext.sh
# CORE = core/gles
# REGISTRY_URL = http://www.khronos.org/registry/gles/
BIN = bin
SRC = src
BLACKLIST = blacklist
GL_CORE_SPEC := $(CORE)/GL_VERSION*
GLX_CORE_SPEC := $(CORE)/GLX_VERSION*
ifeq (custom,$(MAKECMDGOALS))
#GL_CORE_SPEC := $(shell grep GL_VERSION custom.txt | perl -pi -e "s=^=$(CORE)/=g;")
GL_EXT_SPEC := $(shell grep "^[ \t]*GL_" custom.txt | grep -v GL_VERSION | perl -pi -e "s=^=$(EXT)/=g;")
WGL_EXT_SPEC := $(shell grep "^[ \t]*WGL_" custom.txt | perl -pi -e "s=^=$(EXT)/=g;")
#GLX_CORE_SPEC := $(shell grep GLX_VERSION custom.txt | perl -pi -e "s=^=$(CORE)/=g;")
GLX_EXT_SPEC := $(shell grep "^[ \t]*GLX_" custom.txt | grep -v GLX_VERSION | perl -pi -e "s=^=$(EXT)/=g;")
else
GL_EXT_SPEC := $(EXT)/GL_*
WGL_EXT_SPEC := $(EXT)/WGL_*
GLX_EXT_SPEC := $(EXT)/GLX_*
endif
PARSE_SPEC = parse_spec.pl
SYSTEM = $(strip $(shell uname -s))
TOP = ..
I.DEST = $(TOP)/include/GL
S.DEST = $(TOP)/src
D.DEST = $(TOP)/doc
B.DEST = $(TOP)/build
I.TARGETS = \
$(I.DEST)/glew.h \
$(I.DEST)/wglew.h \
$(I.DEST)/glxew.h
ifeq (yes,$(GLEW_SPLIT_SOURCE))
S.TARGETS = \
$(S.DEST)/glew_def.c \
$(S.DEST)/glew_init.c \
$(S.DEST)/glew_str.c \
$(S.DEST)/glewinfo.c
else
S.TARGETS = \
$(S.DEST)/glew.c \
$(S.DEST)/glewinfo.c
endif
D.TARGETS = \
$(D.DEST)/index.html \
$(D.DEST)/install.html \
$(D.DEST)/basic.html \
$(D.DEST)/advanced.html \
$(D.DEST)/build.html \
$(D.DEST)/credits.html \
$(D.DEST)/log.html \
$(D.DEST)/glew.html \
$(D.DEST)/wglew.html \
$(D.DEST)/glxew.html
B.TARGETS = \
$(B.DEST)/glew.rc \
$(B.DEST)/glewinfo.rc \
$(B.DEST)/visualinfo.rc
all custom: $(I.TARGETS) $(S.TARGETS) $(D.TARGETS) $(B.TARGETS)
registry: $(REGISTRY)/.dummy
ext: $(EXT)/.dummy
$(REGISTRY)/.dummy:
@echo "--------------------------------------------------------------------"
@echo "Downloading registry"
@echo "--------------------------------------------------------------------"
$(GIT_CLONE) registry
touch $@
$(EXT)/.dummy: $(REGISTRY)/.dummy
@echo "--------------------------------------------------------------------"
@echo "Creating descriptors"
@echo "--------------------------------------------------------------------"
rm -rf $(EXT)
$(BIN)/update_ext.sh $(EXT) $(REGISTRY) $(BLACKLIST)
$(BIN)/$(FILTER) $(EXT)
ifeq ($(patsubst Darwin%,Darwin,$(SYSTEM)), Darwin)
find $(CORE) -maxdepth 1 -type f | grep -v VERSION | grep -v "~" | \
xargs -J % cp % $(EXT)
else
find $(CORE) -maxdepth 1 -type f | grep -v VERSION | grep -v "~" | \
xargs cp --target-directory=$(EXT)
endif
touch $@
$(I.DEST)/glew.h: $(EXT)/.dummy
@echo "--------------------------------------------------------------------"
@echo "Creating glew.h"
@echo "--------------------------------------------------------------------"
test -d $(I.DEST) || mkdir -p $(I.DEST)
cp -f $(SRC)/glew_license.h $@
cat $(SRC)/mesa_license.h >> $@
cat $(SRC)/khronos_license.h >> $@
cat $(SRC)/glew_head.h >> $@
$(BIN)/make_header.pl GLAPIENTRY GL $(GL_CORE_SPEC) >> $@
$(BIN)/make_header.pl GLAPIENTRY GL $(GL_EXT_SPEC) >> $@
echo -e "/* ------------------------------------------------------------------------- */\n\n#if defined(GLEW_MX) && defined(_WIN32)\n#define GLEW_FUN_EXPORT\n#else\n#define GLEW_FUN_EXPORT GLEWAPI\n#endif /* GLEW_MX */\n" >> $@
echo -e "#if defined(GLEW_MX)\n#define GLEW_VAR_EXPORT\n#else\n#define GLEW_VAR_EXPORT GLEWAPI\n#endif /* GLEW_MX */\n" >> $@
echo -e "#if defined(GLEW_MX) && defined(_WIN32)\nstruct GLEWContextStruct\n{\n#endif /* GLEW_MX */" >> $@
$(BIN)/make_struct_fun.pl GLEW_FUN_EXPORT $(GL_CORE_SPEC) $(GL_EXT_SPEC) >> $@
echo -e "\n#if defined(GLEW_MX) && !defined(_WIN32)\nstruct GLEWContextStruct\n{\n#endif /* GLEW_MX */\n" >> $@
$(BIN)/make_struct_var.pl GLEW_VAR_EXPORT $(GL_CORE_SPEC) $(GL_EXT_SPEC) >> $@
echo -e "\n#ifdef GLEW_MX\n}; /* GLEWContextStruct */\n#endif /* GLEW_MX */\n" >> $@
perl -e "s/GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_2;/GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_1;\nGLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_2;/" -pi $@
rm -f $@.bak
cat $(SRC)/glew_tail.h >> $@
$(I.DEST)/wglew.h: $(EXT)/.dummy
@echo "--------------------------------------------------------------------"
@echo "Creating wglew.h"
@echo "--------------------------------------------------------------------"
cp -f $(SRC)/glew_license.h $@
cat $(SRC)/khronos_license.h >> $@
cat $(SRC)/wglew_head.h >> $@
$(BIN)/make_header.pl WINAPI WGL $(WGL_EXT_SPEC) >> $@
cat $(SRC)/wglew_mid.h >> $@
echo -e "\n#ifdef GLEW_MX\nstruct WGLEWContextStruct\n{\n#endif /* GLEW_MX */" >> $@
$(BIN)/make_struct_fun.pl WGLEW_FUN_EXPORT $(WGL_EXT_SPEC) >> $@
$(BIN)/make_struct_var.pl WGLEW_VAR_EXPORT $(WGL_EXT_SPEC) >> $@
echo -e "\n#ifdef GLEW_MX\n}; /* WGLEWContextStruct */\n#endif /* GLEW_MX */\n" >> $@
cat $(SRC)/wglew_tail.h >> $@
$(I.DEST)/glxew.h: $(EXT)/.dummy
@echo "--------------------------------------------------------------------"
@echo "Creating glxew.h"
@echo "--------------------------------------------------------------------"
cp -f $(SRC)/glew_license.h $@
cat $(SRC)/mesa_license.h >> $@
cat $(SRC)/khronos_license.h >> $@
cat $(SRC)/glxew_head.h >> $@
$(BIN)/make_header.pl "" GLX $(GLX_CORE_SPEC) >> $@
$(BIN)/make_header.pl "" GLX $(GLX_EXT_SPEC) >> $@
cat $(SRC)/glxew_mid.h >> $@
$(BIN)/make_struct_fun.pl GLXEW_FUN_EXPORT $(GLX_CORE_SPEC) $(GLX_EXT_SPEC) >> $@
echo -e "\n#if defined(GLEW_MX)\nstruct GLXEWContextStruct\n{\n#endif /* GLEW_MX */\n" >> $@
$(BIN)/make_struct_var.pl GLXEW_VAR_EXPORT $(GLX_CORE_SPEC) $(GLX_EXT_SPEC) >> $@
echo -e "\n#ifdef GLEW_MX\n}; /* GLXEWContextStruct */\n#endif /* GLEW_MX */\n" >> $@
perl -e "s/GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_2;/GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_0;\nGLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_1;\nGLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_2;/" -pi $@
cat $(SRC)/glxew_tail.h >> $@
$(S.DEST)/glew.c: $(EXT)/.dummy
@echo "--------------------------------------------------------------------"
@echo "Creating glew.c"
@echo "--------------------------------------------------------------------"
cp -f $(SRC)/glew_license.h $@
cat $(SRC)/glew_head.c >> $@
echo -e "\n#if !defined(_WIN32) || !defined(GLEW_MX)" >> $@
$(BIN)/make_def_fun.pl GL $(GL_CORE_SPEC) >> $@
$(BIN)/make_def_fun.pl GL $(GL_EXT_SPEC) >> $@
echo -e "\n#endif /* !WIN32 || !GLEW_MX */" >> $@
echo -e "\n#if !defined(GLEW_MX)" >> $@;
echo -e "\nGLboolean __GLEW_VERSION_1_1 = GL_FALSE;" >> $@
$(BIN)/make_def_var.pl GL $(GL_CORE_SPEC) >> $@
$(BIN)/make_def_var.pl GL $(GL_EXT_SPEC) >> $@
echo -e "\n#endif /* !GLEW_MX */\n" >> $@;
$(BIN)/make_init.pl GL $(GL_CORE_SPEC) >> $@
$(BIN)/make_init.pl GL $(GL_EXT_SPEC) >> $@
cat $(SRC)/glew_init_gl.c >> $@
$(BIN)/make_list.pl $(GL_CORE_SPEC) | grep -v '\"GL_VERSION' >> $@
$(BIN)/make_list.pl $(GL_EXT_SPEC) >> $@
echo -e "\n return GLEW_OK;\n}\n" >> $@
echo -e "\n#if defined(_WIN32)" >> $@
echo -e "\n#if !defined(GLEW_MX)" >> $@
$(BIN)/make_def_fun.pl WGL $(WGL_EXT_SPEC) >> $@
$(BIN)/make_def_var.pl WGL $(WGL_EXT_SPEC) >> $@
echo -e "\n#endif /* !GLEW_MX */\n" >> $@;
$(BIN)/make_init.pl WGL $(WGL_EXT_SPEC) >> $@
cat $(SRC)/glew_init_wgl.c >> $@
$(BIN)/make_list.pl $(WGL_EXT_SPEC) >> $@
echo -e "\n return GLEW_OK;\n}" >> $@;
echo -e "\n#elif !defined(__ANDROID__) && !defined(__native_client__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX))" >> $@
$(BIN)/make_def_fun.pl GLX $(GLX_CORE_SPEC) >> $@
$(BIN)/make_def_fun.pl GLX $(GLX_EXT_SPEC) >> $@
echo -e "\n#if !defined(GLEW_MX)" >> $@;
echo -e "\nGLboolean __GLXEW_VERSION_1_0 = GL_FALSE;" >> $@
echo -e "GLboolean __GLXEW_VERSION_1_1 = GL_FALSE;" >> $@
$(BIN)/make_def_var.pl GLX $(GLX_CORE_SPEC) >> $@
$(BIN)/make_def_var.pl GLX $(GLX_EXT_SPEC) >> $@
echo -e "\n#endif /* !GLEW_MX */\n" >> $@;
$(BIN)/make_init.pl GLX $(GLX_CORE_SPEC) >> $@
$(BIN)/make_init.pl GLX $(GLX_EXT_SPEC) >> $@
cat $(SRC)/glew_init_glx.c >> $@
$(BIN)/make_list.pl $(CORE)/GLX_VERSION_1_3 | grep -v '\"GLX_VERSION' >> $@
$(BIN)/make_list.pl $(GLX_EXT_SPEC) >> $@
echo -e "\n return GLEW_OK;\n}" >> $@
echo -e "\n#endif /* !defined(__ANDROID__) && !defined(__native_client__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX)) */\n" >> $@;
cat $(SRC)/glew_init_tail.c >> $@
cat $(SRC)/glew_str_head.c >> $@
$(BIN)/make_str.pl $(GL_CORE_SPEC) $(GL_EXT_SPEC) >> $@
cat $(SRC)/glew_str_wgl.c >> $@
$(BIN)/make_str.pl $(WGL_EXT_SPEC) >> $@
cat $(SRC)/glew_str_glx.c >> $@
$(BIN)/make_str.pl $(GLX_CORE_SPEC) $(GLX_EXT_SPEC) >> $@
cat $(SRC)/glew_str_tail.c >> $@
perl -e "s/GLEW_VERSION_STRING/$(GLEW_VERSION)/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_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/\(\(glColorSubTable = /((glBlendEquation = (PFNGLBLENDEQUATIONPROC)glewGetProcAddress((const GLubyte*)\"glBlendEquation\")) == NULL) || r;\n r = ((glColorSubTable = /g" -pi $@
rm -f $@.bak
$(S.DEST)/glew_def.c: $(EXT)/.dummy
cp -f $(SRC)/glew_license.h $@
echo -e "#include \"glew_utils.h\"\n\n#if !defined(_WIN32) || !defined(GLEW_MX)" >> $@
$(BIN)/make_def_fun.pl GL $(GL_CORE_SPEC) >> $@
$(BIN)/make_def_fun.pl GL $(GL_EXT_SPEC) >> $@
echo -e "\n#endif /* !WIN32 || !GLEW_MX */" >> $@
echo -e "\n#if !defined(GLEW_MX)\n\nGLboolean __GLEW_VERSION_1_1 = GL_FALSE;" >> $@
$(BIN)/make_def_var.pl GL $(GL_CORE_SPEC) >> $@
$(BIN)/make_def_var.pl GL $(GL_EXT_SPEC) >> $@
echo -e "\n#if defined(_WIN32)" >> $@
$(BIN)/make_def_fun.pl WGL $(WGL_EXT_SPEC) >> $@
$(BIN)/make_def_var.pl WGL $(WGL_EXT_SPEC) >> $@
echo -e "\n#endif /* _WIN32 */" >> $@
echo -e "\n#endif /* !GLEW_MX */" >> $@;
echo -e "\n#if !defined(_WIN32) && !defined(__ANDROID__) && !defined(__native_client__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX))" >> $@
$(BIN)/make_def_fun.pl GLX $(GLX_CORE_SPEC) >> $@
$(BIN)/make_def_fun.pl GLX $(GLX_EXT_SPEC) >> $@
echo -e "\n#if !defined(GLEW_MX)" >> $@;
echo -e "\nGLboolean __GLXEW_VERSION_1_0 = GL_FALSE;" >> $@
echo -e "GLboolean __GLXEW_VERSION_1_1 = GL_FALSE;" >> $@
$(BIN)/make_def_var.pl GLX $(GLX_CORE_SPEC) >> $@
$(BIN)/make_def_var.pl GLX $(GLX_EXT_SPEC) >> $@
echo -e "\n#endif /* !GLEW_MX */" >> $@;
echo -e "\n#endif /* !defined(_WIN32) && !defined(__ANDROID__) && !defined(__native_client__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX)) */" >> $@;
rm -f $@.bak
$(S.DEST)/glew_init.c: $(EXT)/.dummy
cp -f $(SRC)/glew_license.h $@
echo -e "#include \"glew_utils.h\"\n" >> $@
$(BIN)/make_init.pl GL $(GL_CORE_SPEC) >> $@
$(BIN)/make_init.pl GL $(GL_EXT_SPEC) >> $@
cat $(SRC)/glew_init_gl.c >> $@
$(BIN)/make_list.pl $(GL_CORE_SPEC) | grep -v '\"GL_VERSION' >> $@
$(BIN)/make_list.pl $(GL_EXT_SPEC) >> $@
echo -e "\n return GLEW_OK;\n}\n\n#if defined(_WIN32)\n" >> $@;
$(BIN)/make_init.pl WGL $(WGL_EXT_SPEC) >> $@
cat $(SRC)/glew_init_wgl.c >> $@
$(BIN)/make_list.pl $(WGL_EXT_SPEC) >> $@
echo -e "\n return GLEW_OK;\n}\n\n" >> $@;
echo -e "\n#elif !defined(__APPLE__) || defined(GLEW_APPLE_GLX)\n" >> $@
$(BIN)/make_init.pl GLX $(GLX_CORE_SPEC) >> $@
$(BIN)/make_init.pl GLX $(GLX_EXT_SPEC) >> $@
cat $(SRC)/glew_init_glx.c >> $@
$(BIN)/make_list.pl $(CORE)/GLX_VERSION_1_3 | grep -v '\"GLX_VERSION' >> $@
$(BIN)/make_list.pl $(GLX_EXT_SPEC) >> $@
echo -e "\n return GLEW_OK;\n}\n\n#endif /* !__APPLE__ || GLEW_APPLE_GLX */\n" >> $@;
cat $(SRC)/glew_init_tail.c >> $@
perl -e "s/GLEW_VERSION_STRING/$(GLEW_VERSION)/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_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/\(\(glBlendColor = /((glBlendEquation = (PFNGLBLENDEQUATIONPROC)glewGetProcAddress((const GLubyte*)\"glBlendEquation\")) == NULL) || r;\n r = ((glBlendColor = /g" -pi $@
rm -f $@.bak
$(S.DEST)/glew_str.c: $(EXT)/.dummy
cp -f $(SRC)/glew_license.h $@
echo -e "\n#include \"glew_utils.h\"\n" >> $@
cat $(SRC)/glew_str_head.c >> $@
$(BIN)/make_str.pl $(GL_CORE_SPEC) $(GL_EXT_SPEC) >> $@
cat $(SRC)/glew_str_wgl.c >> $@
$(BIN)/make_str.pl $(WGL_EXT_SPEC) >> $@
cat $(SRC)/glew_str_glx.c >> $@
$(BIN)/make_str.pl $(GLX_CORE_SPEC) $(GLX_EXT_SPEC) >> $@
cat $(SRC)/glew_str_tail.c >> $@
# perl -e "s/GLEW_VERSION_STRING/$(GLEW_VERSION)/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 $@
rm -f $@.bak
$(S.DEST)/glewinfo.c: $(EXT)/.dummy
@echo "--------------------------------------------------------------------"
@echo "Creating glewinfo.c"
@echo "--------------------------------------------------------------------"
cp -f $(SRC)/glew_license.h $@
cat $(SRC)/glewinfo_head.c >> $@
$(BIN)/make_info.pl $(GL_CORE_SPEC) >> $@
$(BIN)/make_info.pl $(GL_EXT_SPEC) >> $@
echo -e "#ifdef _WIN32\n" >> $@
$(BIN)/make_info.pl $(WGL_EXT_SPEC) >> $@
echo -e "#else /* _UNIX */\n" >> $@
$(BIN)/make_info.pl $(GLX_CORE_SPEC) >> $@
$(BIN)/make_info.pl $(GLX_EXT_SPEC) >> $@
echo -e "#endif /* _WIN32 */\n" >> $@
cat $(SRC)/glewinfo_gl.c >> $@
$(BIN)/make_info_list.pl $(GL_CORE_SPEC) >> $@
$(BIN)/make_info_list.pl $(GL_EXT_SPEC) >> $@
cat $(SRC)/glewinfo_wgl.c >> $@
$(BIN)/make_info_list.pl $(WGL_EXT_SPEC) >> $@
cat $(SRC)/glewinfo_glx.c >> $@
$(BIN)/make_info_list.pl $(GLX_CORE_SPEC) >> $@
$(BIN)/make_info_list.pl $(GLX_EXT_SPEC) >> $@
cat $(SRC)/glewinfo_tail.c >> $@
perl -e 's/"glColorSubTable"/"glBlendEquation", glBlendEquation == NULL);\n glewInfoFunc("glColorSubTable"/g' -pi $@
rm -f $@.bak
# Update documentation
$(D.DEST)/%.html: doc/%.html
@echo "--------------------------------------------------------------------"
@echo "Creating $(@F)"
@echo "--------------------------------------------------------------------"
cat $(SRC)/header.html $< $(SRC)/footer.html | \
perl -pe 's#<a href="$(@F)">(.*)</a>#\1#' > $@
$(D.DEST)/glew.html: $(EXT)/.dummy
@echo "--------------------------------------------------------------------"
@echo "Creating glew.html"
@echo "--------------------------------------------------------------------"
cp -f $(SRC)/header.html $@
echo -e "<h2>Supported OpenGL Extensions</h2>\n" >> $@
$(BIN)/make_html.pl $(GL_EXT_SPEC) >> $@
cat $(SRC)/footer.html >> $@
perl -i -pe 's#<a href="$(@F)">(.*)</a>#\1#' $@
$(D.DEST)/wglew.html: $(EXT)/.dummy
@echo "--------------------------------------------------------------------"
@echo "Creating wglew.html"
@echo "--------------------------------------------------------------------"
cp -f $(SRC)/header.html $@
echo -e "<h2>Supported WGL Extensions</h2>\n" >> $@
$(BIN)/make_html.pl $(WGL_EXT_SPEC) >> $@
cat $(SRC)/footer.html >> $@
perl -i -pe 's#<a href="$(@F)">(.*)</a>#\1#' $@
$(D.DEST)/glxew.html: $(EXT)/.dummy
@echo "--------------------------------------------------------------------"
@echo "Creating glxew.html"
@echo "--------------------------------------------------------------------"
cp -f $(SRC)/header.html $@
echo -e "<h2>Supported GLX Extensions</h2>\n" >> $@
$(BIN)/make_html.pl $(GLX_EXT_SPEC) >> $@
cat $(SRC)/footer.html >> $@
perl -i -pe 's#<a href="$(@F)">(.*)</a>#\1#' $@
$(B.DEST)/%.rc: src/%.rc $(EXT)/.dummy
perl -e "s/GLEW_MAJOR/$(GLEW_MAJOR)/g;s/GLEW_MINOR/$(GLEW_MINOR)/g;s/GLEW_MICRO/$(GLEW_MICRO)/g;" -p $< > $@
clean:
rm -rf $(I.TARGETS) $(S.TARGETS) $(D.TARGETS) $(B.TARGETS)
clobber: clean
rm -rf $(EXT)
destroy: clobber
rm -rf registry

View file

@ -0,0 +1,476 @@
#!/bin/bash
##
## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
##
## This program is distributed under the terms and conditions of the GNU
## General Public License Version 2 as published by the Free Software
## Foundation or, at your option, any later version.
##
## Parameters:
##
## $1: Extensions directory
set -e
# fix GL_NV_texture_compression_vtc
grep -v EXT $1/GL_NV_texture_compression_vtc > tmp
mv tmp $1/GL_NV_texture_compression_vtc
# remove duplicates from GL_ARB_vertex_program and GL_ARB_fragment_program
grep -v -F -f $1/GL_ARB_vertex_program $1/GL_ARB_fragment_program > tmp
mv tmp $1/GL_ARB_fragment_program
# remove duplicates from GLX_EXT_visual_rating and GLX_EXT_visual_info
grep -v -F -f $1/GLX_EXT_visual_info $1/GLX_EXT_visual_rating > tmp
mv tmp $1/GLX_EXT_visual_rating
# GL_EXT_draw_buffers2 and GL_EXT_transform_feedback both define glGetBooleanIndexedvEXT but with different parameter names
grep -v glGetBooleanIndexedvEXT $1/GL_EXT_transform_feedback > tmp
mv tmp $1/GL_EXT_transform_feedback
# GL_EXT_draw_buffers2 and GL_EXT_transform_feedback both define glGetIntegerIndexedvEXT but with different parameter names
grep -v glGetIntegerIndexedvEXT $1/GL_EXT_transform_feedback > tmp
mv tmp $1/GL_EXT_transform_feedback
# remove duplicates from GL_NV_video_capture and GLX_NV_video_capture
grep -v glX $1/GL_NV_video_capture > tmp
mv tmp $1/GL_NV_video_capture
# add missing functions to GL_NV_video_capture
cat >> $1/GL_NV_video_capture <<EOT
void glGetVideoCaptureStreamivNV (GLuint video_capture_slot, GLuint stream, GLenum pname, GLint* params)
void glGetVideoCaptureStreamfvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat* params)
void glGetVideoCaptureStreamdvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble* params)
void glVideoCaptureStreamParameterivNV (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint* params)
void glVideoCaptureStreamParameterfvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat* params)
void glVideoCaptureStreamParameterdvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble* params)
EOT
# fix WGL_NV_video_capture
cat >> $1/WGL_NV_video_capture <<EOT
DECLARE_HANDLE(HVIDEOINPUTDEVICENV);
EOT
# fix GLX_NV_video_capture
cat >> $1/GLX_NV_video_capture <<EOT
typedef XID GLXVideoCaptureDeviceNV
EOT
# remove duplicates from GL_NV_present_video and GLX_NV_present_video
grep -v -F -f $1/GLX_NV_present_video $1/GL_NV_present_video > tmp
mv tmp $1/GL_NV_present_video
# fix WGL_NV_present_video
cat >> $1/WGL_NV_present_video <<EOT
DECLARE_HANDLE(HVIDEOOUTPUTDEVICENV);
EOT
# fix WGL_NV_video_output
cat >> $1/WGL_NV_video_output <<EOT
DECLARE_HANDLE(HPVIDEODEV);
EOT
# fix GL_NV_occlusion_query and GL_HP_occlusion_test
grep -v '_HP' $1/GL_NV_occlusion_query > tmp
mv tmp $1/GL_NV_occlusion_query
perl -e's/OCCLUSION_TEST_HP.*/OCCLUSION_TEST_HP 0x8165/' -pi \
$1/GL_HP_occlusion_test
perl -e's/OCCLUSION_TEST_RESULT_HP.*/OCCLUSION_TEST_RESULT_HP 0x8166/' -pi \
$1/GL_HP_occlusion_test
# fix GLvoid in GL_ARB_vertex_buffer_objects
perl -e 's/ void\*/ GLvoid\*/g' -pi \
$1/GL_ARB_vertex_buffer_object
# add deprecated constants to GL_ATI_fragment_shader
cat >> $1/GL_ATI_fragment_shader <<EOT
GL_NUM_FRAGMENT_REGISTERS_ATI 0x896E
GL_NUM_FRAGMENT_CONSTANTS_ATI 0x896F
GL_NUM_PASSES_ATI 0x8970
GL_NUM_INSTRUCTIONS_PER_PASS_ATI 0x8971
GL_NUM_INSTRUCTIONS_TOTAL_ATI 0x8972
GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI 0x8973
GL_NUM_LOOPBACK_COMPONENTS_ATI 0x8974
GL_COLOR_ALPHA_PAIRING_ATI 0x8975
GL_SWIZZLE_STRQ_ATI 0x897A
GL_SWIZZLE_STRQ_DQ_ATI 0x897B
EOT
# add deprecated constants to GL_NV_texture_shader
cat >> $1/GL_NV_texture_shader <<EOT
GL_OFFSET_TEXTURE_2D_MATRIX_NV 0x86E1
GL_OFFSET_TEXTURE_2D_BIAS_NV 0x86E3
GL_OFFSET_TEXTURE_2D_SCALE_NV 0x86E2
EOT
# fix WGL_ATI_pixel_format_float
cat >> $1/WGL_ATI_pixel_format_float <<EOT
GL_RGBA_FLOAT_MODE_ATI 0x8820
GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI 0x8835
EOT
# fix WGL_ARB_make_current_read
cat >> $1/WGL_ARB_make_current_read <<EOT
ERROR_INVALID_PIXEL_TYPE_ARB 0x2043
ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB 0x2054
EOT
# fix WGL_EXT_make_current_read
cat >> $1/WGL_EXT_make_current_read <<EOT
ERROR_INVALID_PIXEL_TYPE_EXT 0x2043
EOT
# add typedefs to GL_ARB_vertex_buffer_object; (from personal communication
# with Marco Fabbricatore).
#
# Rationale. The spec says:
#
# "Both types are defined as signed integers large enough to contain
# any pointer value [...] The idea of making these types unsigned was
# considered, but was ultimately rejected ..."
cat >> $1/GL_ARB_vertex_buffer_object <<EOT
typedef ptrdiff_t GLsizeiptrARB
typedef ptrdiff_t GLintptrARB
EOT
# add typedefs to GLX_EXT_import_context
cat >> $1/GLX_EXT_import_context <<EOT
typedef XID GLXContextID
EOT
# add tokens to GLX_OML_swap_method
cat >> $1/GLX_OML_swap_method <<EOT
GLX_SWAP_EXCHANGE_OML 0x8061
GLX_SWAP_COPY_OML 0x8062
GLX_SWAP_UNDEFINED_OML 0x8063
EOT
# add typedefs to GLX_SGIX_fbconfig
cat >> $1/GLX_SGIX_fbconfig <<EOT
typedef XID GLXFBConfigIDSGIX
typedef struct __GLXFBConfigRec *GLXFBConfigSGIX
EOT
# add typedefs to GLX_SGIX_pbuffer
cat >> $1/GLX_SGIX_pbuffer <<EOT
typedef XID GLXPbufferSGIX
typedef struct { int type; unsigned long serial; Bool send_event; Display *display; GLXDrawable drawable; int event_type; int draw_type; unsigned int mask; int x, y; int width, height; int count; } GLXBufferClobberEventSGIX
EOT
# add typedef to GL_NV_half_float
cat >> $1/GL_NV_half_float <<EOT
typedef unsigned short GLhalf
EOT
# add handle to WGL_ARB_pbuffer
cat >> $1/WGL_ARB_pbuffer <<EOT
DECLARE_HANDLE(HPBUFFERARB);
EOT
# add handle to WGL_EXT_pbuffer
cat >> $1/WGL_EXT_pbuffer <<EOT
DECLARE_HANDLE(HPBUFFEREXT);
EOT
# get rid of GL_SUN_multi_draw_arrays
rm -f $1/GL_SUN_multi_draw_arrays
# change variable names in GL_ARB_vertex_shader
perl -e 's/v0/x/g' -pi $1/GL_ARB_vertex_shader
perl -e 's/v1/y/g' -pi $1/GL_ARB_vertex_shader
perl -e 's/v2/z/g' -pi $1/GL_ARB_vertex_shader
perl -e 's/v3/w/g' -pi $1/GL_ARB_vertex_shader
# remove triplicates in GL_ARB_shader_objects, GL_ARB_fragment_shader,
# and GL_ARB_vertex_shader
grep -v -F -f $1/GL_ARB_shader_objects $1/GL_ARB_fragment_shader > tmp
mv tmp $1/GL_ARB_fragment_shader
grep -v -F -f $1/GL_ARB_shader_objects $1/GL_ARB_vertex_shader > tmp
mv tmp $1/GL_ARB_vertex_shader
# remove duplicates in GL_ARB_vertex_program and GL_ARB_vertex_shader
grep -v -F -f $1/GL_ARB_vertex_program $1/GL_ARB_vertex_shader > tmp
mv tmp $1/GL_ARB_vertex_shader
# remove triplicates in GL_ARB_fragment_program, GL_ARB_fragment_shader,
# and GL_ARB_vertex_shader
grep -v -F -f $1/GL_ARB_fragment_program $1/GL_ARB_fragment_shader > tmp
mv tmp $1/GL_ARB_fragment_shader
grep -v -F -f $1/GL_ARB_fragment_program $1/GL_ARB_vertex_shader > tmp
mv tmp $1/GL_ARB_vertex_shader
# remove duplicates in GL_EXT_direct_state_access
grep -v "glGetBooleanIndexedvEXT" $1/GL_EXT_direct_state_access > tmp
mv tmp $1/GL_EXT_direct_state_access
grep -v "glGetIntegerIndexedvEXT" $1/GL_EXT_direct_state_access > tmp
mv tmp $1/GL_EXT_direct_state_access
grep -v "glDisableIndexedEXT" $1/GL_EXT_direct_state_access > tmp
mv tmp $1/GL_EXT_direct_state_access
grep -v "glEnableIndexedEXT" $1/GL_EXT_direct_state_access > tmp
mv tmp $1/GL_EXT_direct_state_access
grep -v "glIsEnabledIndexedEXT" $1/GL_EXT_direct_state_access > tmp
mv tmp $1/GL_EXT_direct_state_access
# remove duplicates in GL_NV_explicit_multisample
grep -v "glGetBooleanIndexedvEXT" $1/GL_NV_explicit_multisample > tmp
mv tmp $1/GL_NV_explicit_multisample
grep -v "glGetIntegerIndexedvEXT" $1/GL_NV_explicit_multisample > tmp
mv tmp $1/GL_NV_explicit_multisample
# fix bugs in GL_ARB_vertex_shader
grep -v "GL_FLOAT" $1/GL_ARB_vertex_shader > tmp
mv tmp $1/GL_ARB_vertex_shader
perl -e 's/handle /GLhandleARB /g' -pi $1/GL_ARB_vertex_shader
# fix bugs in GL_ARB_shader_objects
grep -v "GL_FLOAT " $1/GL_ARB_shader_objects > tmp
mv tmp $1/GL_ARB_shader_objects
grep -v "GL_INT " $1/GL_ARB_shader_objects > tmp
mv tmp $1/GL_ARB_shader_objects
# add typedefs to GL_ARB_shader_objects
cat >> $1/GL_ARB_shader_objects <<EOT
typedef char GLcharARB
typedef unsigned int GLhandleARB
EOT
# add missing functions to GL_ARB_transpose_matrix
cat >> $1/GL_ARB_transpose_matrix <<EOT
void glLoadTransposeMatrixfARB (GLfloat m[16])
void glLoadTransposeMatrixdARB (GLdouble m[16])
void glMultTransposeMatrixfARB (GLfloat m[16])
void glMultTransposeMatrixdARB (GLdouble m[16])
EOT
# add missing tokens to GL_EXT_framebuffer_multisample
cat >> $1/GL_EXT_framebuffer_multisample <<EOT
GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56
GL_MAX_SAMPLES_EXT 0x8D57
EOT
# Filter out GL_NV_gpu_program_fp64 enums and functions
head -n3 $1/GL_NV_gpu_program_fp64 > tmp
mv tmp $1/GL_NV_gpu_program_fp64
# Filter glGetUniformui64vNV from GL_NV_shader_buffer_load
grep -v "glGetUniformui64vNV" $1/GL_NV_shader_buffer_load > tmp
mv tmp $1/GL_NV_shader_buffer_load
# Filter out profile enumerations from GLX_ARB_create_context
grep -v "_PROFILE_" $1/GLX_ARB_create_context > tmp
mv tmp $1/GLX_ARB_create_context
# Filter only profile related enumerations for GLX_ARB_create_context_profile
head -n3 $1/GLX_ARB_create_context_profile > tmp
grep "_PROFILE_" $1/GLX_ARB_create_context_profile >> tmp
mv tmp $1/GLX_ARB_create_context_profile
# Filter out profile enumerations from WGL_ARB_create_context
grep -v "_PROFILE_" $1/WGL_ARB_create_context > tmp
mv tmp $1/WGL_ARB_create_context
# Filter only profile related enumerations for WGL_ARB_create_context_profile
head -n3 $1/WGL_ARB_create_context_profile > tmp
grep "_PROFILE_" $1/WGL_ARB_create_context_profile >> tmp
mv tmp $1/WGL_ARB_create_context_profile
# add missing function to GLX_NV_copy_image
cat >> $1/GLX_NV_copy_image <<EOT
void glXCopyImageSubDataNV (Display *dpy, GLXContext srcCtx, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLXContext dstCtx, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth)
EOT
# add missing function to WGL_NV_copy_image
cat >> $1/WGL_NV_copy_image <<EOT
BOOL wglCopyImageSubDataNV (HGLRC hSrcRC, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, HGLRC hDstRC, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth)
EOT
# Filter glProgramParameteri from GL_ARB_separate_shader_objects
# grep -v "glProgramParameteri" $1/GL_ARB_separate_shader_objects > tmp
# mv tmp $1/GL_ARB_separate_shader_objects
# Filter out EXT functions from GL_ARB_viewport_array
grep -v "EXT" $1/GL_ARB_viewport_array > tmp
mv tmp $1/GL_ARB_viewport_array
# Additional enumerations for GL_NV_vertex_buffer_unified_memory
# These are mentioned in GL_ARB_draw_indirect.txt
cat >> $1/GL_NV_vertex_buffer_unified_memory <<EOT
GL_DRAW_INDIRECT_UNIFIED_NV 0x8F40
GL_DRAW_INDIRECT_ADDRESS_NV 0x8F41
GL_DRAW_INDIRECT_LENGTH_NV 0x8F42
EOT
# Filter glGetPointerv from GL_ARB_debug_output
# It's part of OpenGL 1.1, after all
grep -v "glGetPointerv" $1/GL_ARB_debug_output > tmp
mv tmp $1/GL_ARB_debug_output
# Filter glGetPointerv from GL_EXT_vertex_array
# It's part of OpenGL 1.1, after all
grep -v "glGetPointerv" $1/GL_EXT_vertex_array > tmp
mv tmp $1/GL_EXT_vertex_array
# add typedef to GL_AMD_debug_output
# parse_spec.pl can't parse typedefs from New Types section, but ought to
cat >> $1/GL_AMD_debug_output <<EOT
typedef void (APIENTRY *GLDEBUGPROCAMD)(GLuint id, GLenum category, GLenum severity, GLsizei length, const GLchar* message, GLvoid* userParam)
EOT
# add typedef to GL_ARB_debug_output
# parse_spec.pl can't parse typedefs from New Types section, but ought to
cat >> $1/GL_ARB_debug_output <<EOT
typedef void (APIENTRY *GLDEBUGPROCARB)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, GLvoid* userParam)
EOT
# add typedef to GL_KHR_debug
# parse_spec.pl can't parse typedefs from New Types section, but ought to
cat >> $1/GL_KHR_debug <<EOT
typedef void (APIENTRY *GLDEBUGPROC)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, GLvoid* userParam)
EOT
# Remove glGetPointerv from GL_KHR_debug
grep -v "glGetPointerv" $1/GL_KHR_debug > tmp
mv tmp $1/GL_KHR_debug
# Remove GL_ARB_debug_group, GL_ARB_debug_label and GL_ARB_debug_output2, for now
rm -f $1/GL_ARB_debug_group
rm -f $1/GL_ARB_debug_label
rm -f $1/GL_ARB_debug_output2
# add typedefs to GL_ARB_cl_event
# parse_spec.pl can't parse typedefs from New Types section, but ought to
cat >> $1/GL_ARB_cl_event <<EOT
typedef struct _cl_context *cl_context
typedef struct _cl_event *cl_event
EOT
# Filter out EXT functions from GL_ARB_gpu_shader_fp64
grep -v 'EXT ' $1/GL_ARB_gpu_shader_fp64 > tmp
mv tmp $1/GL_ARB_gpu_shader_fp64
# add missing functions to GL_EXT_direct_state_access (GL_ARB_gpu_shader_fp64 related)
cat >> $1/GL_EXT_direct_state_access <<EOT
void glProgramUniform1dEXT (GLuint program, GLint location, GLdouble x)
void glProgramUniform2dEXT (GLuint program, GLint location, GLdouble x, GLdouble y)
void glProgramUniform3dEXT (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z)
void glProgramUniform4dEXT (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
void glProgramUniform1dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value)
void glProgramUniform2dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value)
void glProgramUniform3dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value)
void glProgramUniform4dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value)
void glProgramUniformMatrix2dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
void glProgramUniformMatrix3dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
void glProgramUniformMatrix4dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
void glProgramUniformMatrix2x3dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
void glProgramUniformMatrix2x4dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
void glProgramUniformMatrix3x2dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
void glProgramUniformMatrix3x4dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
void glProgramUniformMatrix4x2dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
void glProgramUniformMatrix4x3dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
EOT
# Filter out GL_UNSIGNED_INT and GL_FLOAT from GL_AMD_performance_monitor
grep -v 'GL_UNSIGNED_INT ' $1/GL_AMD_performance_monitor > tmp
mv tmp $1/GL_AMD_performance_monitor
grep -v 'GL_FLOAT ' $1/GL_AMD_performance_monitor > tmp
mv tmp $1/GL_AMD_performance_monitor
# Filter out GL_STORAGE_CACHED_APPLE and GL_STORAGE_SHARED_APPLE from GL_APPLE_texture_range
grep -v 'GL_STORAGE_CACHED_APPLE ' $1/GL_APPLE_texture_range > tmp
mv tmp $1/GL_APPLE_texture_range
grep -v 'GL_STORAGE_SHARED_APPLE ' $1/GL_APPLE_texture_range > tmp
mv tmp $1/GL_APPLE_texture_range
# Filter out GL_RED from GL_ARB_texture_rg
grep -v 'GL_RED ' $1/GL_ARB_texture_rg > tmp
mv tmp $1/GL_ARB_texture_rg
# Filter out _EXT enums from GL_ARB_texture_storage
grep -v '_EXT ' $1/GL_ARB_texture_storage > tmp
mv tmp $1/GL_ARB_texture_storage
# Filter out TEXTURE_3D enums from GL_EXT_paletted_texture
grep -v 'TEXTURE_3D' $1/GL_EXT_paletted_texture > tmp
mv tmp $1/GL_EXT_paletted_texture
# Filter out GL_VERSION_1_1 enums from GL_AMD_stencil_operation_extended
grep -v '0x150' $1/GL_AMD_stencil_operation_extended > tmp
mv tmp $1/GL_AMD_stencil_operation_extended
# Filter out from GL_APPLE_ycbcr_422
grep -v 'GL_UNSIGNED_SHORT_8_8_APPLE' $1/GL_APPLE_ycbcr_422 > tmp
mv tmp $1/GL_APPLE_ycbcr_422
grep -v 'GL_UNSIGNED_SHORT_8_8_REV_APPLE' $1/GL_APPLE_ycbcr_422 > tmp
mv tmp $1/GL_APPLE_ycbcr_422
# Filter out GL_FRAGMENT_DEPTH_EXT from GL_EXT_light_texture
grep -v 'GL_FRAGMENT_DEPTH_EXT' $1/GL_EXT_light_texture > tmp
mv tmp $1/GL_EXT_light_texture
# Filter out GL_MULTISAMPLE_BIT_EXT from GL_SGIS_multisample
grep -v 'GL_MULTISAMPLE_BIT_EXT' $1/GL_SGIS_multisample > tmp
mv tmp $1/GL_SGIS_multisample
# Filter out GL_COMPRESSED_RGB_S3TC_DXT1_EXT from GL_EXT_texture_compression_dxt1
grep -v 'GL_COMPRESSED_RGB_S3TC_DXT1_EXT' $1/GL_EXT_texture_compression_dxt1 > tmp
mv tmp $1/GL_EXT_texture_compression_dxt1
# Filter out GL_COMPRESSED_RGBA_S3TC_DXT1_EXT from GL_EXT_texture_compression_dxt1
grep -v 'GL_COMPRESSED_RGBA_S3TC_DXT1_EXT' $1/GL_EXT_texture_compression_dxt1 > tmp
mv tmp $1/GL_EXT_texture_compression_dxt1
# Append GLfixed to GL_ARB_ES2_compatibility
# Probably ought to be explicitly mentioned in the spec language
cat >> $1/GL_ARB_ES2_compatibility <<EOT
typedef int GLfixed
EOT
# Append GLclampx to GL_REGAL_ES1_0_compatibility
# Probably ought to be explicitly mentioned in the spec language
cat >> $1/GL_REGAL_ES1_0_compatibility <<EOT
typedef int GLclampx
EOT
# Append GLLOGPROCREGAL to GL_REGAL_log
# Probably ought to be explicitly mentioned in the spec language
cat >> $1/GL_REGAL_log <<EOT
typedef void (APIENTRY *LOGPROCREGAL)(GLenum stream, GLsizei length, const GLchar *message, GLvoid *context)
EOT
# Fixup LOGPROCREGAL -> GLLOGPROCREGAL
perl -e 's/LOGPROCREGAL/GLLOGPROCREGAL/g' -pi $1/GL_REGAL_log
# Filter out GL_BYTE from GL_OES_byte_coordinates
grep -v 'GL_BYTE' $1/GL_OES_byte_coordinates > tmp
mv tmp $1/GL_OES_byte_coordinates
# Filter out fp64 (not widely supported) from GL_EXT_direct_state_access
egrep -v 'glProgramUniform.*[1234]d[v]?EXT' $1/GL_EXT_direct_state_access > tmp
mv tmp $1/GL_EXT_direct_state_access
# Filter out all enums from GL_ANGLE_depth_texture
grep -v '0x' $1/GL_ANGLE_depth_texture > tmp
mv tmp $1/GL_ANGLE_depth_texture
# Filter out GL_NONE enum from GL_ANGLE_depth_texture
grep -v 'GL_NONE' $1/GL_ANGLE_texture_usage > tmp
mv tmp $1/GL_ANGLE_texture_usage
# Fixup REGAL and ANGLE urls
for i in $1/GL_REGAL_*; do perl -e 's#http://www.opengl.org/registry/specs/gl/REGAL/.*#https://github.com/p3/regal/tree/master/doc/extensions#g' -pi $i; done
for i in $1/GL_ANGLE_*; do perl -e 's#http://www.opengl.org/registry/specs/gl/ANGLE/.*#https://code.google.com/p/angleproject/source/browse/\#git%2Fextensions#g' -pi $i; done
# Filter out GL_NV_blend_equation_advanced_coherent enums and functions
head -n3 $1/GL_NV_blend_equation_advanced_coherent > tmp
mv tmp $1/GL_NV_blend_equation_advanced_coherent
# clean up
rm -f $1/*.bak

View file

@ -0,0 +1,19 @@
#!/bin/bash
##
## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
##
## This program is distributed under the terms and conditions of the GNU
## General Public License Version 2 as published by the Free Software
## Foundation or, at your option, any later version.
##
## Parameters:
##
## $1: Extensions directory
## $2: Registry directory
## $3: The black list
set -e
# clean up
rm -f $1/*.bak

View file

@ -0,0 +1,187 @@
##
## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
##
## This program is distributed under the terms and conditions of the GNU
## General Public License Version 2 as published by the Free Software
## Foundation or, at your option, any later version.
my %regex = (
extname => qr/^[A-Z][A-Za-z0-9_]+$/,
exturl => qr/^http.+$/,
function => qr/^(.+) ([a-z][a-z0-9_]*) \((.+)\)$/i,
token => qr/^([A-Z][A-Z0-9_x]*)\s+((?:0x)?[0-9A-Fa-f]+|[A-Z][A-Z0-9_]*)$/,
type => qr/^typedef\s+(.+)$/,
exact => qr/.*;$/,
);
# prefix function name with glew
sub prefixname($)
{
my $name = $_[0];
$name =~ s/^(.*?)gl/__$1glew/;
return $name;
}
# prefix function name with glew
sub prefix_varname($)
{
my $name = $_[0];
$name =~ s/^(.*?)GL(X*?)EW/__$1GL$2EW/;
return $name;
}
#---------------------------------------------------------------------------------------
sub make_exact($)
{
my $exact = $_[0];
$exact =~ s/(; |{)/$1\n/g;
return $exact;
}
sub make_separator($)
{
my $extname = $_[0];
my $l = length $extname;
my $s = (71 - $l)/2;
print "/* ";
my $j = 3;
for (my $i = 0; $i < $s; $i++)
{
print "-";
$j++;
}
print " $_[0] ";
$j += $l + 2;
while ($j < 76)
{
print "-";
$j++;
}
print " */\n\n";
}
#---------------------------------------------------------------------------------------
sub parse_ext($)
{
my $filename = shift;
my %functions = ();
my %tokens = ();
my @types = ();
my @exacts = ();
my $extname = ""; # Full extension name GL_FOO_extension
my $exturl = ""; # Info URL
my $extstring = ""; # Relevant extension string
open EXT, "<$filename" or return;
# As of GLEW 1.5.3 the first three lines _must_ be
# the extension name, the URL and the GL extension
# string (which might be different to the name)
#
# For example GL_NV_geometry_program4 is available
# iff GL_NV_gpu_program4 appears in the extension
# string.
#
# For core OpenGL versions, the third line should
# be blank.
#
# If the URL is unknown, the second line should be
# blank.
$extname = readline(*EXT);
$exturl = readline(*EXT);
$extstring = readline(*EXT);
chomp($extname);
chomp($exturl);
chomp($extstring);
while(<EXT>)
{
chomp;
if (s/^\s+//)
{
if (/$regex{exact}/)
{
push @exacts, $_;
}
elsif (/$regex{type}/)
{
push @types, $_;
}
elsif (/$regex{token}/)
{
my ($name, $value) = ($1, $2);
$tokens{$name} = $value;
}
elsif (/$regex{function}/)
{
my ($return, $name, $parms) = ($1, $2, $3);
$functions{$name} = {
rtype => $return,
parms => $parms,
};
} else {
print STDERR "'$_' matched no regex.\n";
}
}
}
close EXT;
return ($extname, $exturl, $extstring, \@types, \%tokens, \%functions, \@exacts);
}
sub output_tokens($$)
{
my ($tbl, $fnc) = @_;
if (keys %{$tbl})
{
local $, = "\n";
print "\n";
print map { &{$fnc}($_, $tbl->{$_}) } sort { hex ${$tbl}{$a} <=> hex ${$tbl}{$b} } keys %{$tbl};
print "\n";
} else {
print STDERR "no keys in table!\n";
}
}
sub output_types($$)
{
my ($tbl, $fnc) = @_;
if (scalar @{$tbl})
{
local $, = "\n";
print "\n";
print map { &{$fnc}($_) } sort @{$tbl};
print "\n";
}
}
sub output_decls($$)
{
my ($tbl, $fnc) = @_;
if (keys %{$tbl})
{
local $, = "\n";
print "\n";
print map { &{$fnc}($_, $tbl->{$_}) } sort keys %{$tbl};
print "\n";
}
}
sub output_exacts($$)
{
my ($tbl, $fnc) = @_;
if (scalar @{$tbl})
{
local $, = "\n";
print "\n";
print map { &{$fnc}($_) } sort @{$tbl};
print "\n";
}
}

View file

@ -0,0 +1,35 @@
#!/usr/bin/perl
##
## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
##
## This program is distributed under the terms and conditions of the GNU
## General Public License Version 2 as published by the Free Software
## Foundation or, at your option, any later version.
use strict;
use warnings;
do 'bin/make.pl';
# function pointer declaration
sub make_pfn_decl($%)
{
return "PFN" . (uc $_[0]) . "PROC " . prefixname($_[0]) . " = NULL;";
}
my @extlist = ();
my %extensions = ();
our $type = shift;
if (@ARGV)
{
@extlist = @ARGV;
foreach my $ext (sort @extlist)
{
my ($extname, $exturl, $extstring, $types, $tokens, $functions, $exacts) = parse_ext($ext);
output_decls($functions, \&make_pfn_decl);
}
}

View file

@ -0,0 +1,31 @@
#!/usr/bin/perl
##
## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
##
## This program is distributed under the terms and conditions of the GNU
## General Public License Version 2 as published by the Free Software
## Foundation or, at your option, any later version.
use strict;
use warnings;
do 'bin/make.pl';
my @extlist = ();
my %extensions = ();
our $type = shift;
if (@ARGV)
{
@extlist = @ARGV;
foreach my $ext (sort @extlist)
{
my ($extname, $exturl, $extstring, $types, $tokens, $functions, $exacts) = parse_ext($ext);
my $extvar = $extname;
$extvar =~ s/GL(X*)_/GL$1EW_/;
print "GLboolean " . prefix_varname($extvar) . " = GL_FALSE;\n";
}
}

View file

@ -0,0 +1,71 @@
#!/usr/bin/perl
##
## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
##
## This program is distributed under the terms and conditions of the GNU
## General Public License Version 2 as published by the Free Software
## Foundation or, at your option, any later version.
use strict;
use warnings;
do 'bin/make.pl';
# token
sub make_define($$)
{
return "#define $_[0] $_[1]"
}
# type declaration
sub make_type($$)
{
return "@_;"
}
# function pointer type declaration
sub make_pfn_type($%)
{
our $api;
return join(' ', "typedef", $_[1]->{rtype},
"($api * PFN" . (uc $_[0]) . "PROC)",
"(" . $_[1]->{parms} . ")") . ";";
}
# function name alias
sub make_pfn_alias($%)
{
our $type;
return join(" ", "#define", $_[0], $type . "EW_GET_FUN(" . prefixname($_[0]) . ")")
}
my @extlist = ();
my %extensions = ();
our $api = shift;
our $type = shift;
if (@ARGV)
{
@extlist = @ARGV;
foreach my $ext (sort @extlist)
{
my ($extname, $exturl, $extstring, $types, $tokens, $functions, $exacts) = parse_ext($ext);
make_separator($extname);
print "#ifndef $extname\n#define $extname 1\n";
output_tokens($tokens, \&make_define);
output_types($types, \&make_type);
output_exacts($exacts, \&make_exact);
output_decls($functions, \&make_pfn_type);
output_decls($functions, \&make_pfn_alias);
my $extvar = $extname;
$extvar =~ s/GL(X*)_/GL$1EW_/;
print "\n#define $extvar " . $type . "EW_GET_VAR(" . prefix_varname($extvar) . ")\n";
print "\n#endif /* $extname */\n\n";
}
}

View file

@ -0,0 +1,55 @@
#!/usr/bin/perl
##
## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
##
## This program is distributed under the terms and conditions of the GNU
## General Public License Version 2 as published by the Free Software
## Foundation or, at your option, any later version.
use strict;
use warnings;
do 'bin/make.pl';
#---------------------------------------------------------------------------------------
my @extlist = ();
my %extensions = ();
my $group = "";
my $cur_group = "";
if (@ARGV)
{
@extlist = @ARGV;
my $n = 1;
print "<table border=\"0\" width=\"100%\" cellpadding=\"1\" cellspacing=\"0\" align=\"center\">\n";
foreach my $ext (sort @extlist)
{
my ($extname, $exturl, $extstring, $types, $tokens, $functions, $exacts) = parse_ext($ext);
$cur_group = $extname;
$cur_group =~ s/^(?:W?)GL(?:X?)_([A-Z0-9]+?)_.*$/$1/;
$extname =~ s/^(?:W?)GL(?:X?)_(.*)$/$1/;
if ($cur_group ne $group)
{
if ($group ne "")
{
print "<tr><td><br></td><td></td><td></td></tr>\n";
}
$group = $cur_group;
}
{
if ($exturl)
{
print "<tr><td class=\"num\">$n</td><td>&nbsp;</td><td><a href=\"$exturl\">$extname</a></td></tr>\n";
}
else
{
print "<tr><td class=\"num\">$n</td><td>&nbsp;</td><td>$extname</td></tr>\n";
}
$n++;
}
}
print "</table>\n"
}

View file

@ -0,0 +1,59 @@
#!/usr/bin/perl
##
## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
##
## This program is distributed under the terms and conditions of the GNU
## General Public License Version 2 as published by the Free Software
## Foundation or, at your option, any later version.
use strict;
use warnings;
do 'bin/make.pl';
#---------------------------------------------------------------------------------------
# function pointer definition
sub make_pfn_info($%)
{
my $name = $_[0];
return " glewInfoFunc(\"$_[0]\", $name == NULL);";
}
#---------------------------------------------------------------------------------------
my @extlist = ();
my %extensions = ();
if (@ARGV)
{
@extlist = @ARGV;
foreach my $ext (sort @extlist)
{
my ($extname, $exturl, $extstring, $types, $tokens, $functions, $exacts) = parse_ext($ext);
my $extvar = $extname;
$extvar =~ s/GL(X*)_/GL$1EW_/;
my $extpre = $extname;
$extpre =~ s/(GLX|GLW|GL).*/$1/;
$extpre = lc $extpre;
#make_separator($extname);
print "#ifdef $extname\n\n";
print "static void _glewInfo_$extname (void)\n{\n";
if ($extvar =~ /VERSION/)
{
print " glewPrintExt(\"$extname\", $extvar, $extvar, $extvar);\n";
}
else
{
print " glewPrintExt(\"$extname\", $extvar, $extpre" .
"ewIsSupported(\"$extname\"), $extpre" .
"ewGetExtension(\"$extstring\"));\n";
}
output_decls($functions, \&make_pfn_info);
print "}\n\n";
print "#endif /* $extname */\n\n";
}
}

View file

@ -0,0 +1,47 @@
#!/usr/bin/perl
##
## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
##
## This program is distributed under the terms and conditions of the GNU
## General Public License Version 2 as published by the Free Software
## Foundation or, at your option, any later version.
use strict;
use warnings;
do 'bin/make.pl';
#---------------------------------------------------------------------------------------
# function pointer definition
sub make_pfn_def($%)
{
return "PFN" . (uc $_[0]) . "PROC " . prefixname($_[0]) . " = NULL;";
}
# function pointer definition
sub make_init_call($%)
{
my $name = prefixname($_[0]);
return " r = r || (" . $name . " = (PFN" . (uc $_[0]) . "PROC)glewGetProcAddress((const GLubyte*)\"" . $name . "\")) == NULL;";
}
#---------------------------------------------------------------------------------------
my @extlist = ();
my %extensions = ();
if (@ARGV)
{
@extlist = @ARGV;
foreach my $ext (sort @extlist)
{
my ($extname, $exturl, $extstring, $types, $tokens, $functions, $exacts) = parse_ext($ext);
print "#ifdef $extname\n";
print " _glewInfo_$extname();\n";
print "#endif /* $extname */\n";
}
}

View file

@ -0,0 +1,55 @@
#!/usr/bin/perl
##
## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
##
## This program is distributed under the terms and conditions of the GNU
## General Public License Version 2 as published by the Free Software
## Foundation or, at your option, any later version.
use strict;
use warnings;
do 'bin/make.pl';
#-------------------------------------------------------------------------------
# function pointer definition
sub make_pfn_def_init($%)
{
#my $name = prefixname($_[0]);
return " r = ((" . $_[0] . " = (PFN" . (uc $_[0]) . "PROC)glewGetProcAddress((const GLubyte*)\"" . $_[0] . "\")) == NULL) || r;";
}
#-------------------------------------------------------------------------------
my @extlist = ();
my %extensions = ();
our $type = shift;
if (@ARGV)
{
@extlist = @ARGV;
foreach my $ext (sort @extlist)
{
my ($extname, $exturl, $extstring, $types, $tokens, $functions, $exacts) =
parse_ext($ext);
#make_separator($extname);
print "#ifdef $extname\n\n";
my $extvar = $extname;
my $extvardef = $extname;
$extvar =~ s/GL(X*)_/GL$1EW_/;
if (keys %$functions)
{
print "static GLboolean _glewInit_$extname (" . $type .
"EW_CONTEXT_ARG_DEF_INIT)\n{\n GLboolean r = GL_FALSE;\n";
output_decls($functions, \&make_pfn_def_init);
print "\n return r;\n}\n\n";
}
#print "\nGLboolean " . prefix_varname($extvar) . " = GL_FALSE;\n\n";
print "#endif /* $extname */\n\n";
}
}

View file

@ -0,0 +1,66 @@
#!/usr/bin/perl
##
## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
##
## This program is distributed under the terms and conditions of the GNU
## General Public License Version 2 as published by the Free Software
## Foundation or, at your option, any later version.
use strict;
use warnings;
do 'bin/make.pl';
#---------------------------------------------------------------------------------------
# function pointer definition
sub make_init_call($%)
{
my $name = prefixname($_[0]);
return " r = r || (" . $_[0] . " = (PFN" . (uc $_[0]) . "PROC)glewGetProcAddress(\"" . $name . "\")) == NULL;";
}
#---------------------------------------------------------------------------------------
my @extlist = ();
my %extensions = ();
if (@ARGV)
{
@extlist = @ARGV;
foreach my $ext (sort @extlist)
{
my ($extname, $exturl, $extstring, $types, $tokens, $functions, $exacts) = parse_ext($ext);
my $extvar = $extname;
$extvar =~ s/GL(X*)_/GL$1EW_/;
my $extpre = $extname;
$extpre =~ s/^(W?)GL(X?).*$/\l$1gl\l$2ew/;
#my $pextvar = prefix_varname($extvar);
print "#ifdef $extname\n";
if (length($extstring))
{
print " CONST_CAST(" . $extvar . ") = _glewSearchExtension(\"$extstring\", extStart, extEnd);\n";
}
if (keys %$functions)
{
if ($extname =~ /WGL_.*/)
{
print " if (glewExperimental || " . $extvar . "|| crippled) CONST_CAST(" . $extvar . ")= !_glewInit_$extname(GLEW_CONTEXT_ARG_VAR_INIT);\n";
}
else
{
print " if (glewExperimental || " . $extvar . ") CONST_CAST(" . $extvar . ") = !_glewInit_$extname(GLEW_CONTEXT_ARG_VAR_INIT);\n";
}
}
print "#endif /* $extname */\n";
}
}

View file

@ -0,0 +1,53 @@
#!/usr/bin/perl
##
## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
##
## This program is distributed under the terms and conditions of the GNU
## General Public License Version 2 as published by the Free Software
## Foundation or, at your option, any later version.
use strict;
use warnings;
do 'bin/make.pl';
my @extlist = ();
my %extensions = ();
if (@ARGV)
{
@extlist = @ARGV;
my $curexttype = "";
foreach my $ext (sort @extlist)
{
my ($extname, $exturl, $extstring, $types, $tokens, $functions, $exacts) = parse_ext($ext);
my $exttype = $extname;
$exttype =~ s/(W*?)GL(X*?)_(.*?_)(.*)/$3/;
my $extrem = $extname;
$extrem =~ s/(W*?)GL(X*?)_(.*?_)(.*)/$4/;
my $extvar = $extname;
$extvar =~ s/(W*)GL(X*)_/$1GL$2EW_/;
if(!($exttype =~ $curexttype))
{
if(length($curexttype) > 0)
{
print " }\n";
}
print " if (_glewStrSame2(&pos, &len, (const GLubyte*)\"$exttype\", " . length($exttype) . "))\n";
print " {\n";
$curexttype = $exttype;
}
print "#ifdef $extname\n";
print " if (_glewStrSame3(&pos, &len, (const GLubyte*)\"$extrem\", ". length($extrem) . "))\n";
#print " return $extvar;\n";
print " {\n";
print " ret = $extvar;\n";
print " continue;\n";
print " }\n";
print "#endif\n";
}
print " }\n";
}

View file

@ -0,0 +1,36 @@
#!/usr/bin/perl
##
## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
##
## This program is distributed under the terms and conditions of the GNU
## General Public License Version 2 as published by the Free Software
## Foundation or, at your option, any later version.
use strict;
use warnings;
do 'bin/make.pl';
# function pointer declaration
sub make_pfn_decl($%)
{
our $export;
return $export . " PFN" . (uc $_[0]) . "PROC " . prefixname($_[0]) . ";";
}
my @extlist = ();
my %extensions = ();
our $export = shift;
if (@ARGV)
{
@extlist = @ARGV;
foreach my $ext (sort @extlist)
{
my ($extname, $exturl, $extstring, $types, $tokens, $functions, $exacts) = parse_ext($ext);
output_decls($functions, \&make_pfn_decl);
}
}

View file

@ -0,0 +1,31 @@
#!/usr/bin/perl
##
## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
##
## This program is distributed under the terms and conditions of the GNU
## General Public License Version 2 as published by the Free Software
## Foundation or, at your option, any later version.
use strict;
use warnings;
do 'bin/make.pl';
my @extlist = ();
my %extensions = ();
our $export = shift;
if (@ARGV)
{
@extlist = @ARGV;
foreach my $ext (sort @extlist)
{
my ($extname, $exturl, $extstring, $types, $tokens, $functions, $exacts) = parse_ext($ext);
my $extvar = $extname;
$extvar =~ s/GL(X*)_/GL$1EW_/;
print $export . " GLboolean " . prefix_varname($extvar) . ";\n";
}
}

View file

@ -0,0 +1,353 @@
#!/usr/bin/perl
##
## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
##
## This program is distributed under the terms and conditions of the GNU
## General Public License Version 2 as published by the Free Software
## Foundation or, at your option, any later version.
use strict;
use warnings;
sub compile_regex
{
my $regex = join('', @_);
return qr/$regex/
}
my @sections = (
"Name",
"Name Strings?",
"New Procedures and Functions",
"New Tokens",
"Additions to Chapter.*",
);
my %typemap = (
bitfield => "GLbitfield",
boolean => "GLboolean",
# fsck up in EXT_vertex_array
Boolean => "GLboolean",
byte => "GLbyte",
clampd => "GLclampd",
clampf => "GLclampf",
double => "GLdouble",
enum => "GLenum",
# Intel fsck up
Glenum => "GLenum",
float => "GLfloat",
half => "GLhalf",
int => "GLint",
short => "GLshort",
sizei => "GLsizei",
ubyte => "GLubyte",
uint => "GLuint",
ushort => "GLushort",
DMbuffer => "void *",
# Nvidia video output fsck up
int64EXT => "GLint64EXT",
uint64EXT=> "GLuint64EXT",
# ARB VBO introduces these.
sizeiptr => "GLsizeiptr",
intptr => "GLintptr",
sizeiptrARB => "GLsizeiptrARB",
intptrARB => "GLintptrARB",
# ARB shader objects introduces these, charARB is at least 8 bits,
# handleARB is at least 32 bits
charARB => "GLcharARB",
handleARB => "GLhandleARB",
char => "GLchar",
# OpenGL 3.2 and GL_ARB_sync
int64 => "GLint64",
uint64 => "GLuint64",
sync => "GLsync",
# AMD_debug_output
DEBUGPROCAMD => "GLDEBUGPROCAMD",
# ARB_debug_output
DEBUGPROCARB => "GLDEBUGPROCARB",
# KHR_debug
DEBUGPROC => "GLDEBUGPROC",
vdpauSurfaceNV => "GLvdpauSurfaceNV",
# GLX 1.3 defines new types which might not be available at compile time
#GLXFBConfig => "void*",
#GLXFBConfigID => "XID",
#GLXContextID => "XID",
#GLXWindow => "XID",
#GLXPbuffer => "XID",
# Weird stuff to some SGIX extension
#GLXFBConfigSGIX => "void*",
#GLXFBConfigIDSGIX => "XID",
);
my %voidtypemap = (
void => "GLvoid",
);
my %taboo_tokens = (
GL_ZERO => 1,
);
# list of function definitions to be ignored, unless they are being defined in
# the given spec. This is an ugly hack arround the fact that people writing
# spec files seem to shut down all brain activity while they are at this task.
#
# This will be moved to its own file eventually.
#
# (mem, 2003-03-19)
my %fnc_ignore_list = (
"BindProgramARB" => "ARB_vertex_program",
"ColorSubTableEXT" => "EXT_color_subtable",
"DeleteProgramsARB" => "ARB_vertex_program",
"GenProgramsARB" => "ARB_vertex_program",
"GetProgramEnvParameterdvARB" => "ARB_vertex_program",
"GetProgramEnvParameterfvARB" => "ARB_vertex_program",
"GetProgramLocalParameterdvARB" => "ARB_vertex_program",
"GetProgramLocalParameterfvARB" => "ARB_vertex_program",
"GetProgramStringARB" => "ARB_vertex_program",
"GetProgramivARB" => "ARB_vertex_program",
"IsProgramARB" => "ARB_vertex_program",
"ProgramEnvParameter4dARB" => "ARB_vertex_program",
"ProgramEnvParameter4dvARB" => "ARB_vertex_program",
"ProgramEnvParameter4fARB" => "ARB_vertex_program",
"ProgramEnvParameter4fvARB" => "ARB_vertex_program",
"ProgramLocalParameter4dARB" => "ARB_vertex_program",
"ProgramLocalParameter4dvARB" => "ARB_vertex_program",
"ProgramLocalParameter4fARB" => "ARB_vertex_program",
"ProgramLocalParameter4fvARB" => "ARB_vertex_program",
"ProgramStringARB" => "ARB_vertex_program",
"glXCreateContextAttribsARB" => "ARB_create_context_profile",
"wglCreateContextAttribsARB" => "WGL_ARB_create_context_profile",
);
my %regex = (
eofnc => qr/(?:\);?$|^$)/, # )$ | );$ | ^$
extname => qr/^[A-Z][A-Za-z0-9_]+$/,
none => qr/^\(none\)$/,
function => qr/^(.+) ([a-z][a-z0-9_]*) \((.+)\)$/i,
prefix => qr/^(?:[aw]?gl|glX)/, # gl | agl | wgl | glX
tprefix => qr/^(?:[AW]?GL|GLX)_/, # GL_ | AGL_ | WGL_ | GLX_
section => compile_regex('^(', join('|', @sections), ')$'), # sections in spec
token => qr/^([A-Z0-9][A-Z0-9_x]*):?\s+((?:0x)?[0-9A-F]+)([^\?]*)$/, # define tokens
types => compile_regex('\b(', join('|', keys %typemap), ')\b'), # var types
voidtype => compile_regex('\b(', keys %voidtypemap, ')\b '), # void type
);
# reshapes the the function declaration from multiline to single line form
sub normalize_prototype
{
local $_ = join(" ", @_);
s/\s+/ /g; # multiple whitespace -> single space
s/\<.*\>//g; # remove <comments> from direct state access extension
s/\<.*$//g; # remove incomplete <comments> from direct state access extension
s#/\*.*\*/##g; # remove /* ... */ comments
s/\s*\(\s*/ \(/; # exactly one space before ( and none after
s/\s*\)\s*/\)/; # no space before or after )
s/\s*\*([a-zA-Z])/\* $1/; # "* identifier"
s/\*wgl/\* wgl/; # "* wgl"
s/\*glX/\* glX/; # "* glX"
s/\.\.\./void/; # ... -> void
s/;$//; # remove ; at the end of the line
return $_;
}
# Ugly hack to work arround the fact that functions are declared in more
# than one spec file.
sub ignore_function($$)
{
return exists($fnc_ignore_list{$_[0]}) && $fnc_ignore_list{$_[0]} ne $_[1]
}
sub parse_spec($)
{
my $filename = shift;
my $extname = "";
my $vendortag = "";
my @extnames = ();
my %functions = ();
my %tokens = ();
my $section = "";
my @fnc = ();
my %proc = (
"Name" => sub {
if (/^([a-z0-9]+)_([a-z0-9_]+)/i)
{
$extname = "$1_$2";
$vendortag = $1;
}
},
"Name Strings" => sub {
# Add extension name to extension list
# Initially use $extname if (none) specified
if (/$regex{none}/)
{
$_ = $extname;
}
if (/$regex{extname}/)
{
# prefix with "GL_" if prefix not present
s/^/GL_/ unless /$regex{tprefix}/o;
# Add extension name to extension list
push @extnames, $_;
}
},
"New Procedures and Functions" => sub {
# if line matches end of function
if (/$regex{eofnc}/)
{
# add line to function declaration
push @fnc, $_;
# if normalized version of function looks like a function
if (normalize_prototype(@fnc) =~ /$regex{function}/)
{
# get return type, name, and arguments from regex
my ($return, $name, $parms) = ($1, $2, $3);
if (!ignore_function($name, $extname))
{
# prefix with "gl" if prefix not present
$name =~ s/^/gl/ unless $name =~ /$regex{prefix}/;
# is this a pure GL function?
if ($name =~ /^gl/ && $name !~ /^glX/)
{
# apply typemaps
$return =~ s/$regex{types}/$typemap{$1}/og;
$return =~ s/void\*/GLvoid */og;
$parms =~ s/$regex{types}/$typemap{$1}/og;
$parms =~ s/$regex{voidtype}/$voidtypemap{$1}/og;
$parms =~ s/ void\* / GLvoid */og;
}
# add to functions hash
$functions{$name} = {
rtype => $return,
parms => $parms,
};
}
}
# reset function declaration
@fnc = ();
} elsif ($_ ne "" and $_ ne "None") {
# if not eof, add line to function declaration
push @fnc, $_
}
},
"New Tokens" => sub {
if (/$regex{token}/)
{
my ($name, $value) = ($1, $2);
# prefix with "GL_" if prefix not present
$name =~ s/^/GL_/ unless $name =~ /$regex{tprefix}/;
# Add (name, value) pair to tokens hash, unless it's taboo
$tokens{$name} = $value unless exists $taboo_tokens{$name};
}
},
);
# Some people can't read, the template clearly says "Name String_s_"
$proc{"Name String"} = $proc{"Name Strings"};
# Open spec file
open SPEC, "<$filename" or return;
# For each line of SPEC
while(<SPEC>)
{
# Delete trailing newline character
chomp;
# Remove trailing white spaces
s/\s+$//;
# If starts with a capital letter, it must be a new section
if (/^[A-Z]/)
{
# Match section name with one of the predefined names
$section = /$regex{section}/o ? $1 : "default";
} else {
# Line is internal to a section
# Remove leading whitespace
s/^\s+//;
# Call appropriate section processing function if it exists
&{$proc{$section}} if exists $proc{$section};
}
}
close SPEC;
return ($extname, \@extnames, \%tokens, \%functions);
}
#----------------------------------------------------------------------------------------
my @speclist = ();
my %extensions = ();
my $ext_dir = shift;
my $reg_http = "http://www.opengl.org/registry/specs/gl/";
# Take command line arguments or read list from file
if (@ARGV)
{
@speclist = @ARGV;
} else {
local $/; #???
@speclist = split "\n", (<>);
}
foreach my $spec (sort @speclist)
{
my ($extname, $extnames, $tokens, $functions) = parse_spec($spec);
foreach my $ext (@{$extnames})
{
my $info = "$ext_dir/" . $ext;
open EXT, ">$info";
print EXT $ext . "\n"; # Extension name
my $specname = $spec;
$specname =~ s/registry\/gl\/specs\///;
print EXT $reg_http . $specname . "\n"; # Extension info URL
print EXT $ext . "\n"; # Extension string
my $prefix = $ext;
$prefix =~ s/^(.+?)(_.+)$/$1/;
foreach my $token (sort { hex ${$tokens}{$a} <=> hex ${$tokens}{$b} } keys %{$tokens})
{
if ($token =~ /^$prefix\_.*/i)
{
print EXT "\t" . $token . " " . ${\%{$tokens}}{$token} . "\n";
}
}
foreach my $function (sort keys %{$functions})
{
if ($function =~ /^$prefix.*/i)
{
print EXT "\t" . ${$functions}{$function}{rtype} . " " . $function . " (" . ${$functions}{$function}{parms} . ")" . "\n";
}
}
close EXT;
}
}

View file

@ -0,0 +1,25 @@
#!/bin/bash
##
## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
##
## This program is distributed under the terms and conditions of the GNU
## General Public License Version 2 as published by the Free Software
## Foundation or, at your option, any later version.
##
## Parameters:
##
## $1: Extensions directory
## $2: Registry directory
## $3: The black list
set -e
if [ ! -d $1 ] ; then
mkdir -p $1
# Parse each of the extensions in the registry
find $2 -name doc -type d -prune -o -name \*.txt -print | \
grep -v -f $3 | sort | bin/parse_spec.pl $1
fi

View file

@ -0,0 +1,14 @@
EXT/draw_range_elements.txt
EXT/static_vertex_array.txt
EXT/vertex_array_set.alt.txt
EXT/vertex_array_set.txt
EXT/nurbs_tessellator.txt
EXT/object_space_tess.txt
SGI/filter4_parameters.txt
SGIS/texture_color_mask.txt
SGIX/dmbuffer.txt
SGIX/instruments.txt
SGIX/video_source.txt
SGIX/hyperpipe_group.txt
OES/OES_fixed_point.txt
OES/OES_query_matrix.txt

View file

@ -0,0 +1,22 @@
GLX_AMD_gpu_association
http://www.opengl.org/registry/specs/AMD/glx_gpu_association.txt
GLX_AMD_gpu_association
GLX_GPU_VENDOR_AMD 0x1F00
GLX_GPU_RENDERER_STRING_AMD 0x1F01
GLX_GPU_OPENGL_VERSION_STRING_AMD 0x1F02
GLX_GPU_FASTEST_TARGET_GPUS_AMD 0x21A2
GLX_GPU_RAM_AMD 0x21A3
GLX_GPU_CLOCK_AMD 0x21A4
GLX_GPU_NUM_PIPES_AMD 0x21A5
GLX_GPU_NUM_SIMD_AMD 0x21A6
GLX_GPU_NUM_RB_AMD 0x21A7
GLX_GPU_NUM_SPI_AMD 0x21A8
void glXBlitContextFramebufferAMD (GLXContext dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)
GLXContext glXCreateAssociatedContextAMD (unsigned int id, GLXContext share_list)
GLXContext glXCreateAssociatedContextAttribsAMD (unsigned int id, GLXContext share_context, const int* attribList)
Bool glXDeleteAssociatedContextAMD (GLXContext ctx)
unsigned int glXGetContextGPUIDAMD (GLXContext ctx)
GLXContext glXGetCurrentAssociatedContextAMD (void)
unsigned int glXGetGPUIDsAMD (unsigned int maxCount, unsigned int* ids)
int glXGetGPUInfoAMD (unsigned int id, int property, GLenum dataType, unsigned int size, void* data)
Bool glXMakeAssociatedContextCurrentAMD (GLXContext ctx)

View file

@ -0,0 +1,4 @@
GLX_ARB_get_proc_address
http://oss.sgi.com/projects/ogl-sample/registry/ARB/get_proc_address.txt
GLX_ARB_get_proc_address
extern void ( * glXGetProcAddressARB (const GLubyte *procName)) (void);

View file

@ -0,0 +1,4 @@
GLX_ATI_pixel_format_float
GLX_ATI_pixel_format_float
GLX_RGBA_FLOAT_ATI_BIT 0x00000100

View file

@ -0,0 +1,41 @@
GLX_ATI_render_texture
GLX_ATI_render_texture
GLX_BIND_TO_TEXTURE_RGB_ATI 0x9800
GLX_BIND_TO_TEXTURE_RGBA_ATI 0x9801
GLX_TEXTURE_FORMAT_ATI 0x9802
GLX_TEXTURE_TARGET_ATI 0x9803
GLX_MIPMAP_TEXTURE_ATI 0x9804
GLX_TEXTURE_RGB_ATI 0x9805
GLX_TEXTURE_RGBA_ATI 0x9806
GLX_NO_TEXTURE_ATI 0x9807
GLX_TEXTURE_CUBE_MAP_ATI 0x9808
GLX_TEXTURE_1D_ATI 0x9809
GLX_TEXTURE_2D_ATI 0x980A
GLX_MIPMAP_LEVEL_ATI 0x980B
GLX_CUBE_MAP_FACE_ATI 0x980C
GLX_TEXTURE_CUBE_MAP_POSITIVE_X_ATI 0x980D
GLX_TEXTURE_CUBE_MAP_NEGATIVE_X_ATI 0x980E
GLX_TEXTURE_CUBE_MAP_POSITIVE_Y_ATI 0x980F
GLX_TEXTURE_CUBE_MAP_NEGATIVE_Y_ATI 0x9810
GLX_TEXTURE_CUBE_MAP_POSITIVE_Z_ATI 0x9811
GLX_TEXTURE_CUBE_MAP_NEGATIVE_Z_ATI 0x9812
GLX_FRONT_LEFT_ATI 0x9813
GLX_FRONT_RIGHT_ATI 0x9814
GLX_BACK_LEFT_ATI 0x9815
GLX_BACK_RIGHT_ATI 0x9816
GLX_AUX0_ATI 0x9817
GLX_AUX1_ATI 0x9818
GLX_AUX2_ATI 0x9819
GLX_AUX3_ATI 0x981A
GLX_AUX4_ATI 0x981B
GLX_AUX5_ATI 0x981C
GLX_AUX6_ATI 0x981D
GLX_AUX7_ATI 0x981E
GLX_AUX8_ATI 0x981F
GLX_AUX9_ATI 0x9820
GLX_BIND_TO_TEXTURE_LUMINANCE_ATI 0x9821
GLX_BIND_TO_TEXTURE_INTENSITY_ATI 0x9822
void glXBindTexImageATI (Display *dpy, GLXPbuffer pbuf, int buffer)
void glXReleaseTexImageATI (Display *dpy, GLXPbuffer pbuf, int buffer)
void glXDrawableAttribATI (Display *dpy, GLXDrawable draw, const int *attrib_list)

View file

@ -0,0 +1,4 @@
GLX_EXT_create_context_es2_profile
http://www.opengl.org/registry/specs/EXT/glx_create_context_es2_profile.txt
GLX_EXT_create_context_es2_profile
GLX_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004

View file

@ -0,0 +1,4 @@
GLX_EXT_create_context_es_profile
http://www.opengl.org/registry/specs/EXT/glx_create_context_es_profile.txt
GLX_EXT_create_context_es_profile
GLX_CONTEXT_ES_PROFILE_BIT_EXT 0x00000004

View file

@ -0,0 +1,5 @@
GLX_EXT_fbconfig_packed_float
http://developer.download.nvidia.com/opengl/specs/GL_EXT_packed_float.txt
GLX_EXT_fbconfig_packed_float
GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT 0x20B1
GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT 0x00000008

View file

@ -0,0 +1,4 @@
GLX_EXT_framebuffer_sRGB
http://developer.download.nvidia.com/opengl/specs/GL_EXT_framebuffer_sRGB.txt
GLX_EXT_framebuffer_sRGB
GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20B2

View file

@ -0,0 +1,5 @@
GLX_MESA_swap_control
http://cgit.freedesktop.org/mesa/mesa/plain/docs/MESA_swap_control.spec
GLX_MESA_swap_control
int glXGetSwapIntervalMESA (void)
int glXSwapIntervalMESA (unsigned int interval)

View file

@ -0,0 +1,4 @@
GLX_NV_float_buffer
http://cvs1.nvidia.com/inc/GL/glxtokens.h
GLX_NV_float_buffer
GLX_FLOAT_COMPONENTS_NV 0x20B0

View file

@ -0,0 +1,5 @@
GLX_NV_vertex_array_range
http://oss.sgi.com/projects/ogl-sample/registry/NV/vertex_array_range.txt
GLX_NV_vertex_array_range
void * glXAllocateMemoryNV (GLsizei size, GLfloat readFrequency, GLfloat writeFrequency, GLfloat priority)
void glXFreeMemoryNV (void *pointer)

View file

@ -0,0 +1,5 @@
GLX_SGIS_shared_multisample
GLX_SGIS_shared_multisample
GLX_MULTISAMPLE_SUB_RECT_WIDTH_SGIS 0x8026
GLX_MULTISAMPLE_SUB_RECT_HEIGHT_SGIS 0x8027

View file

@ -0,0 +1,25 @@
GLX_SGIX_hyperpipe
http://oss.sgi.com/projects/ogl-sample/registry/SGIX/hyperpipe_group.txt
GLX_SGIX_hyperpipe
GLX_HYPERPIPE_ID_SGIX 0x8030
GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX 80
GLX_HYPERPIPE_DISPLAY_PIPE_SGIX 0x00000001
GLX_HYPERPIPE_RENDER_PIPE_SGIX 0x00000002
GLX_PIPE_RECT_SGIX 0x00000001
GLX_PIPE_RECT_LIMITS_SGIX 0x00000002
GLX_HYPERPIPE_STEREO_SGIX 0x00000003
GLX_HYPERPIPE_PIXEL_AVERAGE_SGIX 0x00000004
GLX_BAD_HYPERPIPE_CONFIG_SGIX 91
GLX_BAD_HYPERPIPE_SGIX 92
typedef struct { char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; int networkId; } GLXHyperpipeNetworkSGIX;
typedef struct { char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; int channel; unsigned int participationType; int timeSlice; } GLXHyperpipeConfigSGIX;
typedef struct { char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; int srcXOrigin; int srcYOrigin; int srcWidth; int srcHeight; int destXOrigin; int destYOrigin; int destWidth; int destHeight; } GLXPipeRect;
typedef struct { char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; int XOrigin; int YOrigin; int maxHeight; int maxWidth; } GLXPipeRectLimits;
GLXHyperpipeNetworkSGIX * glXQueryHyperpipeNetworkSGIX (Display *dpy, int *npipes)
int glXHyperpipeConfigSGIX (Display *dpy, int networkId, int npipes, GLXHyperpipeConfigSGIX *cfg, int *hpId)
GLXHyperpipeConfigSGIX * glXQueryHyperpipeConfigSGIX (Display *dpy, int hpId, int *npipes)
int glXDestroyHyperpipeConfigSGIX (Display *dpy, int hpId)
int glXBindHyperpipeSGIX (Display *dpy, int hpId)
int glXQueryHyperpipeBestAttribSGIX (Display *dpy, int timeSlice, int attrib, int size, void *attribList, void *returnAttribList)
int glXHyperpipeAttribSGIX (Display *dpy, int timeSlice, int attrib, int size, void *attribList)
int glXQueryHyperpipeAttribSGIX (Display *dpy, int timeSlice, int attrib, int size, void *returnAttribList)

View file

@ -0,0 +1,5 @@
GLX_SGIX_swap_barrier
http://oss.sgi.com/projects/ogl-sample/registry/SGIX/swap_barrier.txt
GLX_SGIX_swap_barrier
void glXBindSwapBarrierSGIX (Display *dpy, GLXDrawable drawable, int barrier)
Bool glXQueryMaxSwapBarriersSGIX (Display *dpy, int screen, int *max)

View file

@ -0,0 +1,4 @@
GLX_SGIX_swap_group
http://oss.sgi.com/projects/ogl-sample/registry/SGIX/swap_group.txt
GLX_SGIX_swap_group
void glXJoinSwapGroupSGIX (Display *dpy, GLXDrawable drawable, GLXDrawable member)

View file

@ -0,0 +1,5 @@
GLX_SGI_video_sync
http://www.opengl.org/registry/specs/SGI/video_sync.txt
GLX_SGI_video_sync
int glXGetVideoSyncSGI (unsigned int* count)
int glXWaitVideoSyncSGI (int divisor, int remainder, unsigned int* count)

View file

@ -0,0 +1,7 @@
GLX_SUN_video_resize
http://wwws.sun.com/software/graphics/opengl/extensions/glx_sun_video_resize.txt
GLX_SUN_video_resize
GL_VIDEO_RESIZE_COMPENSATION_SUN 0x85CD
GLX_VIDEO_RESIZE_SUN 0x8171
int glXVideoResizeSUN (Display* display, GLXDrawable window, float factor)
int glXGetVideoResizeSUN (Display* display, GLXDrawable window, float* factor)

View file

@ -0,0 +1,4 @@
GLX_VERSION_1_2
http://www.opengl.org/documentation/specs/glx/glx1.2.ps
GLX_VERSION_1_2
Display* glXGetCurrentDisplay (void)

View file

@ -0,0 +1,82 @@
GLX_VERSION_1_3
http://www.opengl.org/documentation/specs/glx/glx1.3.pdf
GLX_VERSION_1_3
GLX_WINDOW_BIT 0x00000001
GLX_PIXMAP_BIT 0x00000002
GLX_PBUFFER_BIT 0x00000004
GLX_RGBA_BIT 0x00000001
GLX_COLOR_INDEX_BIT 0x00000002
GLX_PBUFFER_CLOBBER_MASK 0x08000000
GLX_FRONT_LEFT_BUFFER_BIT 0x00000001
GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002
GLX_BACK_LEFT_BUFFER_BIT 0x00000004
GLX_BACK_RIGHT_BUFFER_BIT 0x00000008
GLX_AUX_BUFFERS_BIT 0x00000010
GLX_DEPTH_BUFFER_BIT 0x00000020
GLX_STENCIL_BUFFER_BIT 0x00000040
GLX_ACCUM_BUFFER_BIT 0x00000080
GLX_CONFIG_CAVEAT 0x20
GLX_X_VISUAL_TYPE 0x22
GLX_TRANSPARENT_TYPE 0x23
GLX_TRANSPARENT_INDEX_VALUE 0x24
GLX_TRANSPARENT_RED_VALUE 0x25
GLX_TRANSPARENT_GREEN_VALUE 0x26
GLX_TRANSPARENT_BLUE_VALUE 0x27
GLX_TRANSPARENT_ALPHA_VALUE 0x28
GLX_DONT_CARE 0xFFFFFFFF
GLX_NONE 0x8000
GLX_SLOW_CONFIG 0x8001
GLX_TRUE_COLOR 0x8002
GLX_DIRECT_COLOR 0x8003
GLX_PSEUDO_COLOR 0x8004
GLX_STATIC_COLOR 0x8005
GLX_GRAY_SCALE 0x8006
GLX_STATIC_GRAY 0x8007
GLX_TRANSPARENT_RGB 0x8008
GLX_TRANSPARENT_INDEX 0x8009
GLX_VISUAL_ID 0x800B
GLX_SCREEN 0x800C
GLX_NON_CONFORMANT_CONFIG 0x800D
GLX_DRAWABLE_TYPE 0x8010
GLX_RENDER_TYPE 0x8011
GLX_X_RENDERABLE 0x8012
GLX_FBCONFIG_ID 0x8013
GLX_RGBA_TYPE 0x8014
GLX_COLOR_INDEX_TYPE 0x8015
GLX_MAX_PBUFFER_WIDTH 0x8016
GLX_MAX_PBUFFER_HEIGHT 0x8017
GLX_MAX_PBUFFER_PIXELS 0x8018
GLX_PRESERVED_CONTENTS 0x801B
GLX_LARGEST_PBUFFER 0x801C
GLX_WIDTH 0x801D
GLX_HEIGHT 0x801E
GLX_EVENT_MASK 0x801F
GLX_DAMAGED 0x8020
GLX_SAVED 0x8021
GLX_WINDOW 0x8022
GLX_PBUFFER 0x8023
GLX_PBUFFER_HEIGHT 0x8040
GLX_PBUFFER_WIDTH 0x8041
GLXFBConfig* glXChooseFBConfig (Display *dpy, int screen, const int *attrib_list, int *nelements)
GLXFBConfig* glXGetFBConfigs (Display *dpy, int screen, int *nelements)
XVisualInfo* glXGetVisualFromFBConfig (Display *dpy, GLXFBConfig config)
int glXGetFBConfigAttrib (Display *dpy, GLXFBConfig config, int attribute, int *value)
GLXWindow glXCreateWindow (Display *dpy, GLXFBConfig config, Window win, const int *attrib_list)
void glXDestroyWindow (Display *dpy, GLXWindow win)
GLXPixmap glXCreatePixmap (Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list)
void glXDestroyPixmap (Display *dpy, GLXPixmap pixmap)
GLXPbuffer glXCreatePbuffer (Display *dpy, GLXFBConfig config, const int *attrib_list)
void glXDestroyPbuffer (Display *dpy, GLXPbuffer pbuf)
void glXQueryDrawable (Display *dpy, GLXDrawable draw, int attribute, unsigned int *value)
GLXContext glXCreateNewContext (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct)
Bool glXMakeContextCurrent (Display *display, GLXDrawable draw, GLXDrawable read, GLXContext ctx)
GLXDrawable glXGetCurrentReadDrawable (void)
int glXQueryContext (Display *dpy, GLXContext ctx, int attribute, int *value)
void glXSelectEvent (Display *dpy, GLXDrawable draw, unsigned long event_mask)
void glXGetSelectedEvent (Display *dpy, GLXDrawable draw, unsigned long *event_mask)
typedef XID GLXWindow
typedef XID GLXPbuffer
typedef XID GLXFBConfigID
typedef struct __GLXFBConfigRec *GLXFBConfig
typedef struct { int event_type; int draw_type; unsigned long serial; Bool send_event; Display *display; GLXDrawable drawable; unsigned int buffer_mask; unsigned int aux_buffer; int x, y; int width, height; int count; } GLXPbufferClobberEvent;
typedef union __GLXEvent { GLXPbufferClobberEvent glxpbufferclobber; long pad[24]; } GLXEvent;

View file

@ -0,0 +1,6 @@
GLX_VERSION_1_4
http://www.opengl.org/documentation/specs/glx/glx1.4.pdf
GLX_VERSION_1_4
GLX_SAMPLE_BUFFERS 100000
GLX_SAMPLES 100001
extern void ( * glXGetProcAddress (const GLubyte *procName)) (void);

View file

@ -0,0 +1,17 @@
GL_APPLE_float_pixels
http://www.opengl.org/registry/specs/APPLE/float_pixels.txt
GL_APPLE_float_pixels
GL_HALF_APPLE 0x140B
GL_COLOR_FLOAT_APPLE 0x8A0F
GL_RGBA_FLOAT32_APPLE 0x8814
GL_RGB_FLOAT32_APPLE 0x8815
GL_ALPHA_FLOAT32_APPLE 0x8816
GL_INTENSITY_FLOAT32_APPLE 0x8817
GL_LUMINANCE_FLOAT32_APPLE 0x8818
GL_LUMINANCE_ALPHA_FLOAT32_APPLE 0x8819
GL_RGBA_FLOAT16_APPLE 0x881A
GL_RGB_FLOAT16_APPLE 0x881B
GL_ALPHA_FLOAT16_APPLE 0x881C
GL_INTENSITY_FLOAT16_APPLE 0x881D
GL_LUMINANCE_FLOAT16_APPLE 0x881E
GL_LUMINANCE_ALPHA_FLOAT16_APPLE 0x881F

View file

@ -0,0 +1,4 @@
GL_APPLE_pixel_buffer
GL_APPLE_pixel_buffer
GL_MIN_PBUFFER_VIEWPORT_DIMS_APPLE 0x8A10

View file

@ -0,0 +1,12 @@
GL_APPLE_texture_range
http://www.opengl.org/registry/specs/APPLE/texture_range.txt
GL_APPLE_texture_range
GL_TEXTURE_STORAGE_HINT_APPLE 0x85BC
GL_STORAGE_PRIVATE_APPLE 0x85BD
GL_STORAGE_CACHED_APPLE 0x85BE
GL_STORAGE_SHARED_APPLE 0x85BF
GL_TEXTURE_RANGE_LENGTH_APPLE 0x85B7
GL_TEXTURE_RANGE_POINTER_APPLE 0x85B8
void glTextureRangeAPPLE (GLenum target, GLsizei length, GLvoid *pointer)
void glGetTexParameterPointervAPPLE (GLenum target, GLenum pname, GLvoid **params)

View file

@ -0,0 +1,3 @@
GL_ARB_draw_instanced
http://www.opengl.org/registry/specs/ARB/draw_instanced.txt
GL_ARB_draw_instanced

View file

@ -0,0 +1,112 @@
GL_ARB_imaging
GL_ARB_imaging
GL_CONSTANT_COLOR 0x8001
GL_ONE_MINUS_CONSTANT_COLOR 0x8002
GL_CONSTANT_ALPHA 0x8003
GL_ONE_MINUS_CONSTANT_ALPHA 0x8004
GL_BLEND_COLOR 0x8005
GL_FUNC_ADD 0x8006
GL_MIN 0x8007
GL_MAX 0x8008
GL_BLEND_EQUATION 0x8009
GL_FUNC_SUBTRACT 0x800A
GL_FUNC_REVERSE_SUBTRACT 0x800B
GL_CONVOLUTION_1D 0x8010
GL_CONVOLUTION_2D 0x8011
GL_SEPARABLE_2D 0x8012
GL_CONVOLUTION_BORDER_MODE 0x8013
GL_CONVOLUTION_FILTER_SCALE 0x8014
GL_CONVOLUTION_FILTER_BIAS 0x8015
GL_REDUCE 0x8016
GL_CONVOLUTION_FORMAT 0x8017
GL_CONVOLUTION_WIDTH 0x8018
GL_CONVOLUTION_HEIGHT 0x8019
GL_MAX_CONVOLUTION_WIDTH 0x801A
GL_MAX_CONVOLUTION_HEIGHT 0x801B
GL_POST_CONVOLUTION_RED_SCALE 0x801C
GL_POST_CONVOLUTION_GREEN_SCALE 0x801D
GL_POST_CONVOLUTION_BLUE_SCALE 0x801E
GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F
GL_POST_CONVOLUTION_RED_BIAS 0x8020
GL_POST_CONVOLUTION_GREEN_BIAS 0x8021
GL_POST_CONVOLUTION_BLUE_BIAS 0x8022
GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023
GL_HISTOGRAM 0x8024
GL_PROXY_HISTOGRAM 0x8025
GL_HISTOGRAM_WIDTH 0x8026
GL_HISTOGRAM_FORMAT 0x8027
GL_HISTOGRAM_RED_SIZE 0x8028
GL_HISTOGRAM_GREEN_SIZE 0x8029
GL_HISTOGRAM_BLUE_SIZE 0x802A
GL_HISTOGRAM_ALPHA_SIZE 0x802B
GL_HISTOGRAM_LUMINANCE_SIZE 0x802C
GL_HISTOGRAM_SINK 0x802D
GL_MINMAX 0x802E
GL_MINMAX_FORMAT 0x802F
GL_MINMAX_SINK 0x8030
GL_TABLE_TOO_LARGE 0x8031
GL_COLOR_MATRIX 0x80B1
GL_COLOR_MATRIX_STACK_DEPTH 0x80B2
GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3
GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4
GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5
GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6
GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7
GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8
GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9
GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA
GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB
GL_COLOR_TABLE 0x80D0
GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1
GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2
GL_PROXY_COLOR_TABLE 0x80D3
GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4
GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5
GL_COLOR_TABLE_SCALE 0x80D6
GL_COLOR_TABLE_BIAS 0x80D7
GL_COLOR_TABLE_FORMAT 0x80D8
GL_COLOR_TABLE_WIDTH 0x80D9
GL_COLOR_TABLE_RED_SIZE 0x80DA
GL_COLOR_TABLE_GREEN_SIZE 0x80DB
GL_COLOR_TABLE_BLUE_SIZE 0x80DC
GL_COLOR_TABLE_ALPHA_SIZE 0x80DD
GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE
GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF
GL_IGNORE_BORDER 0x8150
GL_CONSTANT_BORDER 0x8151
GL_WRAP_BORDER 0x8152
GL_REPLICATE_BORDER 0x8153
GL_CONVOLUTION_BORDER_COLOR 0x8154
void glColorTable (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table)
void glColorSubTable (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data)
void glColorTableParameteriv (GLenum target, GLenum pname, const GLint *params)
void glColorTableParameterfv (GLenum target, GLenum pname, const GLfloat *params)
void glCopyColorSubTable (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width)
void glCopyColorTable (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width)
void glGetColorTable (GLenum target, GLenum format, GLenum type, GLvoid *table)
void glGetColorTableParameterfv (GLenum target, GLenum pname, GLfloat *params)
void glGetColorTableParameteriv (GLenum target, GLenum pname, GLint *params)
void glHistogram (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink)
void glResetHistogram (GLenum target)
void glGetHistogram (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values)
void glGetHistogramParameterfv (GLenum target, GLenum pname, GLfloat *params)
void glGetHistogramParameteriv (GLenum target, GLenum pname, GLint *params)
void glMinmax (GLenum target, GLenum internalformat, GLboolean sink)
void glResetMinmax (GLenum target)
void glGetMinmaxParameterfv (GLenum target, GLenum pname, GLfloat *params)
void glGetMinmaxParameteriv (GLenum target, GLenum pname, GLint *params)
void glConvolutionFilter1D (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image)
void glConvolutionFilter2D (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image)
void glConvolutionParameterf (GLenum target, GLenum pname, GLfloat params)
void glConvolutionParameterfv (GLenum target, GLenum pname, const GLfloat *params)
void glConvolutionParameteri (GLenum target, GLenum pname, GLint params)
void glConvolutionParameteriv (GLenum target, GLenum pname, const GLint *params)
void glCopyConvolutionFilter1D (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width)
void glCopyConvolutionFilter2D (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height)
void glGetConvolutionFilter (GLenum target, GLenum format, GLenum type, GLvoid *image)
void glGetConvolutionParameterfv (GLenum target, GLenum pname, GLfloat *params)
void glGetConvolutionParameteriv (GLenum target, GLenum pname, GLint *params)
void glSeparableFilter2D (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column)
void glGetSeparableFilter (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span)
void glGetMinmax (GLenum target, GLboolean reset, GLenum format, GLenum types, GLvoid *values)

View file

@ -0,0 +1,7 @@
GL_ARB_instanced_arrays
http://www.opengl.org/registry/specs/ARB/instanced_arrays.txt
GL_ARB_instanced_arrays
GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB 0x88FE
void glVertexAttribDivisorARB (GLuint index, GLuint divisor)
void glDrawArraysInstancedARB (GLenum mode, GLint first, GLsizei count, GLsizei primcount)
void glDrawElementsInstancedARB (GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount)

View file

@ -0,0 +1,103 @@
GL_ARB_internalformat_query2
http://www.opengl.org/registry/specs/ARB/internalformat_query2.txt
GL_ARB_internalformat_query2
GL_INTERNALFORMAT_SUPPORTED 0x826F
GL_INTERNALFORMAT_PREFERRED 0x8270
GL_INTERNALFORMAT_RED_SIZE 0x8271
GL_INTERNALFORMAT_GREEN_SIZE 0x8272
GL_INTERNALFORMAT_BLUE_SIZE 0x8273
GL_INTERNALFORMAT_ALPHA_SIZE 0x8274
GL_INTERNALFORMAT_DEPTH_SIZE 0x8275
GL_INTERNALFORMAT_STENCIL_SIZE 0x8276
GL_INTERNALFORMAT_SHARED_SIZE 0x8277
GL_INTERNALFORMAT_RED_TYPE 0x8278
GL_INTERNALFORMAT_GREEN_TYPE 0x8279
GL_INTERNALFORMAT_BLUE_TYPE 0x827A
GL_INTERNALFORMAT_ALPHA_TYPE 0x827B
GL_INTERNALFORMAT_DEPTH_TYPE 0x827C
GL_INTERNALFORMAT_STENCIL_TYPE 0x827D
GL_MAX_WIDTH 0x827E
GL_MAX_HEIGHT 0x827F
GL_MAX_DEPTH 0x8280
GL_MAX_LAYERS 0x8281
GL_MAX_COMBINED_DIMENSIONS 0x8282
GL_COLOR_COMPONENTS 0x8283
GL_DEPTH_COMPONENTS 0x8284
GL_STENCIL_COMPONENTS 0x8285
GL_COLOR_RENDERABLE 0x8286
GL_DEPTH_RENDERABLE 0x8287
GL_STENCIL_RENDERABLE 0x8288
GL_FRAMEBUFFER_RENDERABLE 0x8289
GL_FRAMEBUFFER_RENDERABLE_LAYERED 0x828A
GL_FRAMEBUFFER_BLEND 0x828B
GL_READ_PIXELS 0x828C
GL_READ_PIXELS_FORMAT 0x828D
GL_READ_PIXELS_TYPE 0x828E
GL_TEXTURE_IMAGE_FORMAT 0x828F
GL_TEXTURE_IMAGE_TYPE 0x8290
GL_GET_TEXTURE_IMAGE_FORMAT 0x8291
GL_GET_TEXTURE_IMAGE_TYPE 0x8292
GL_MIPMAP 0x8293
GL_MANUAL_GENERATE_MIPMAP 0x8294
GL_AUTO_GENERATE_MIPMAP 0x8295
GL_COLOR_ENCODING 0x8296
GL_SRGB_READ 0x8297
GL_SRGB_WRITE 0x8298
GL_SRGB_DECODE_ARB 0x8299
GL_FILTER 0x829A
GL_VERTEX_TEXTURE 0x829B
GL_TESS_CONTROL_TEXTURE 0x829C
GL_TESS_EVALUATION_TEXTURE 0x829D
GL_GEOMETRY_TEXTURE 0x829E
GL_FRAGMENT_TEXTURE 0x829F
GL_COMPUTE_TEXTURE 0x82A0
GL_TEXTURE_SHADOW 0x82A1
GL_TEXTURE_GATHER 0x82A2
GL_TEXTURE_GATHER_SHADOW 0x82A3
GL_SHADER_IMAGE_LOAD 0x82A4
GL_SHADER_IMAGE_STORE 0x82A5
GL_SHADER_IMAGE_ATOMIC 0x82A6
GL_IMAGE_TEXEL_SIZE 0x82A7
GL_IMAGE_COMPATIBILITY_CLASS 0x82A8
GL_IMAGE_PIXEL_FORMAT 0x82A9
GL_IMAGE_PIXEL_TYPE 0x82AA
GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST 0x82AC
GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST 0x82AD
GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE 0x82AE
GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE 0x82AF
GL_TEXTURE_COMPRESSED_BLOCK_WIDTH 0x82B1
GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT 0x82B2
GL_TEXTURE_COMPRESSED_BLOCK_SIZE 0x82B3
GL_CLEAR_BUFFER 0x82B4
GL_TEXTURE_VIEW 0x82B5
GL_VIEW_COMPATIBILITY_CLASS 0x82B6
GL_FULL_SUPPORT 0x82B7
GL_CAVEAT_SUPPORT 0x82B8
GL_IMAGE_CLASS_4_X_32 0x82B9
GL_IMAGE_CLASS_2_X_32 0x82BA
GL_IMAGE_CLASS_1_X_32 0x82BB
GL_IMAGE_CLASS_4_X_16 0x82BC
GL_IMAGE_CLASS_2_X_16 0x82BD
GL_IMAGE_CLASS_1_X_16 0x82BE
GL_IMAGE_CLASS_4_X_8 0x82BF
GL_IMAGE_CLASS_2_X_8 0x82C0
GL_IMAGE_CLASS_1_X_8 0x82C1
GL_IMAGE_CLASS_11_11_10 0x82C2
GL_IMAGE_CLASS_10_10_10_2 0x82C3
GL_VIEW_CLASS_128_BITS 0x82C4
GL_VIEW_CLASS_96_BITS 0x82C5
GL_VIEW_CLASS_64_BITS 0x82C6
GL_VIEW_CLASS_48_BITS 0x82C7
GL_VIEW_CLASS_32_BITS 0x82C8
GL_VIEW_CLASS_24_BITS 0x82C9
GL_VIEW_CLASS_16_BITS 0x82CA
GL_VIEW_CLASS_8_BITS 0x82CB
GL_VIEW_CLASS_S3TC_DXT1_RGB 0x82CC
GL_VIEW_CLASS_S3TC_DXT1_RGBA 0x82CD
GL_VIEW_CLASS_S3TC_DXT3_RGBA 0x82CE
GL_VIEW_CLASS_S3TC_DXT5_RGBA 0x82CF
GL_VIEW_CLASS_RGTC1_RED 0x82D0
GL_VIEW_CLASS_RGTC2_RG 0x82D1
GL_VIEW_CLASS_BPTC_UNORM 0x82D2
GL_VIEW_CLASS_BPTC_FLOAT 0x82D3
void glGetInternalformati64v (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint64* params)

View file

@ -0,0 +1,18 @@
GL_ARB_matrix_palette
http://oss.sgi.com/projects/ogl-sample/registry/ARB/matrix_palette.txt
GL_ARB_matrix_palette
GL_MATRIX_PALETTE_ARB 0x8840
GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB 0x8841
GL_MAX_PALETTE_MATRICES_ARB 0x8842
GL_CURRENT_PALETTE_MATRIX_ARB 0x8843
GL_MATRIX_INDEX_ARRAY_ARB 0x8844
GL_CURRENT_MATRIX_INDEX_ARB 0x8845
GL_MATRIX_INDEX_ARRAY_SIZE_ARB 0x8846
GL_MATRIX_INDEX_ARRAY_TYPE_ARB 0x8847
GL_MATRIX_INDEX_ARRAY_STRIDE_ARB 0x8848
GL_MATRIX_INDEX_ARRAY_POINTER_ARB 0x8849
void glCurrentPaletteMatrixARB (GLint index)
void glMatrixIndexPointerARB (GLint size, GLenum type, GLsizei stride, GLvoid *pointer)
void glMatrixIndexubvARB (GLint size, GLubyte *indices)
void glMatrixIndexusvARB (GLint size, GLushort *indices)
void glMatrixIndexuivARB (GLint size, GLuint *indices)

View file

@ -0,0 +1,72 @@
GL_ARB_multitexture
http://oss.sgi.com/projects/ogl-sample/registry/ARB/multitexture.txt
GL_ARB_multitexture
GL_TEXTURE0_ARB 0x84C0
GL_TEXTURE1_ARB 0x84C1
GL_TEXTURE2_ARB 0x84C2
GL_TEXTURE3_ARB 0x84C3
GL_TEXTURE4_ARB 0x84C4
GL_TEXTURE5_ARB 0x84C5
GL_TEXTURE6_ARB 0x84C6
GL_TEXTURE7_ARB 0x84C7
GL_TEXTURE8_ARB 0x84C8
GL_TEXTURE9_ARB 0x84C9
GL_TEXTURE10_ARB 0x84CA
GL_TEXTURE11_ARB 0x84CB
GL_TEXTURE12_ARB 0x84CC
GL_TEXTURE13_ARB 0x84CD
GL_TEXTURE14_ARB 0x84CE
GL_TEXTURE15_ARB 0x84CF
GL_TEXTURE16_ARB 0x84D0
GL_TEXTURE17_ARB 0x84D1
GL_TEXTURE18_ARB 0x84D2
GL_TEXTURE19_ARB 0x84D3
GL_TEXTURE20_ARB 0x84D4
GL_TEXTURE21_ARB 0x84D5
GL_TEXTURE22_ARB 0x84D6
GL_TEXTURE23_ARB 0x84D7
GL_TEXTURE24_ARB 0x84D8
GL_TEXTURE25_ARB 0x84D9
GL_TEXTURE26_ARB 0x84DA
GL_TEXTURE27_ARB 0x84DB
GL_TEXTURE28_ARB 0x84DC
GL_TEXTURE29_ARB 0x84DD
GL_TEXTURE30_ARB 0x84DE
GL_TEXTURE31_ARB 0x84DF
GL_ACTIVE_TEXTURE_ARB 0x84E0
GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1
GL_MAX_TEXTURE_UNITS_ARB 0x84E2
void glActiveTextureARB (GLenum texture)
void glClientActiveTextureARB (GLenum texture)
void glMultiTexCoord1dARB (GLenum target, GLdouble s)
void glMultiTexCoord1dvARB (GLenum target, const GLdouble *v)
void glMultiTexCoord1fARB (GLenum target, GLfloat s)
void glMultiTexCoord1fvARB (GLenum target, const GLfloat *v)
void glMultiTexCoord1iARB (GLenum target, GLint s)
void glMultiTexCoord1ivARB (GLenum target, const GLint *v)
void glMultiTexCoord1sARB (GLenum target, GLshort s)
void glMultiTexCoord1svARB (GLenum target, const GLshort *v)
void glMultiTexCoord2dARB (GLenum target, GLdouble s, GLdouble t)
void glMultiTexCoord2dvARB (GLenum target, const GLdouble *v)
void glMultiTexCoord2fARB (GLenum target, GLfloat s, GLfloat t)
void glMultiTexCoord2fvARB (GLenum target, const GLfloat *v)
void glMultiTexCoord2iARB (GLenum target, GLint s, GLint t)
void glMultiTexCoord2ivARB (GLenum target, const GLint *v)
void glMultiTexCoord2sARB (GLenum target, GLshort s, GLshort t)
void glMultiTexCoord2svARB (GLenum target, const GLshort *v)
void glMultiTexCoord3dARB (GLenum target, GLdouble s, GLdouble t, GLdouble r)
void glMultiTexCoord3dvARB (GLenum target, const GLdouble *v)
void glMultiTexCoord3fARB (GLenum target, GLfloat s, GLfloat t, GLfloat r)
void glMultiTexCoord3fvARB (GLenum target, const GLfloat *v)
void glMultiTexCoord3iARB (GLenum target, GLint s, GLint t, GLint r)
void glMultiTexCoord3ivARB (GLenum target, const GLint *v)
void glMultiTexCoord3sARB (GLenum target, GLshort s, GLshort t, GLshort r)
void glMultiTexCoord3svARB (GLenum target, const GLshort *v)
void glMultiTexCoord4dARB (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q)
void glMultiTexCoord4dvARB (GLenum target, const GLdouble *v)
void glMultiTexCoord4fARB (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
void glMultiTexCoord4fvARB (GLenum target, const GLfloat *v)
void glMultiTexCoord4iARB (GLenum target, GLint s, GLint t, GLint r, GLint q)
void glMultiTexCoord4ivARB (GLenum target, const GLint *v)
void glMultiTexCoord4sARB (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q)
void glMultiTexCoord4svARB (GLenum target, const GLshort *v)

View file

@ -0,0 +1,30 @@
GL_ARB_robustness
http://www.opengl.org/registry/specs/ARB/robustness.txt
GL_ARB_robustness
GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB 0x00000004
GL_LOSE_CONTEXT_ON_RESET_ARB 0x8252
GL_GUILTY_CONTEXT_RESET_ARB 0x8253
GL_INNOCENT_CONTEXT_RESET_ARB 0x8254
GL_UNKNOWN_CONTEXT_RESET_ARB 0x8255
GL_RESET_NOTIFICATION_STRATEGY_ARB 0x8256
GL_NO_RESET_NOTIFICATION_ARB 0x8261
GLenum glGetGraphicsResetStatusARB (void)
void glGetnColorTableARB (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void* table)
void glGetnCompressedTexImageARB (GLenum target, GLint lod, GLsizei bufSize, void* img)
void glGetnConvolutionFilterARB (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void* image)
void glGetnHistogramARB (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void* values)
void glGetnMapdvARB (GLenum target, GLenum query, GLsizei bufSize, GLdouble* v)
void glGetnMapfvARB (GLenum target, GLenum query, GLsizei bufSize, GLfloat* v)
void glGetnMapivARB (GLenum target, GLenum query, GLsizei bufSize, GLint* v)
void glGetnMinmaxARB (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void* values)
void glGetnPixelMapfvARB (GLenum map, GLsizei bufSize, GLfloat* values)
void glGetnPixelMapuivARB (GLenum map, GLsizei bufSize, GLuint* values)
void glGetnPixelMapusvARB (GLenum map, GLsizei bufSize, GLushort* values)
void glGetnPolygonStippleARB (GLsizei bufSize, GLubyte* pattern)
void glGetnSeparableFilterARB (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void* row, GLsizei columnBufSize, GLvoid*column, GLvoid*span)
void glGetnTexImageARB (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void* img)
void glGetnUniformdvARB (GLuint program, GLint location, GLsizei bufSize, GLdouble* params)
void glGetnUniformfvARB (GLuint program, GLint location, GLsizei bufSize, GLfloat* params)
void glGetnUniformivARB (GLuint program, GLint location, GLsizei bufSize, GLint* params)
void glGetnUniformuivARB (GLuint program, GLint location, GLsizei bufSize, GLuint* params)
void glReadnPixelsARB (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void* data)

View file

@ -0,0 +1,72 @@
GL_ARB_separate_shader_objects
http://www.opengl.org/registry/specs/ARB/separate_shader_objects.txt
GL_ARB_separate_shader_objects
GL_VERTEX_SHADER_BIT 0x00000001
GL_FRAGMENT_SHADER_BIT 0x00000002
GL_GEOMETRY_SHADER_BIT 0x00000004
GL_TESS_CONTROL_SHADER_BIT 0x00000008
GL_TESS_EVALUATION_SHADER_BIT 0x00000010
GL_PROGRAM_SEPARABLE 0x8258
GL_ACTIVE_PROGRAM 0x8259
GL_PROGRAM_PIPELINE_BINDING 0x825A
GL_ALL_SHADER_BITS 0xFFFFFFFF
void glActiveShaderProgram (GLuint pipeline, GLuint program)
void glBindProgramPipeline (GLuint pipeline)
GLuint glCreateShaderProgramv (GLenum type, GLsizei count, const GLchar ** strings)
void glDeleteProgramPipelines (GLsizei n, const GLuint* pipelines)
void glGenProgramPipelines (GLsizei n, GLuint* pipelines)
void glGetProgramPipelineInfoLog (GLuint pipeline, GLsizei bufSize, GLsizei* length, GLchar *infoLog)
void glGetProgramPipelineiv (GLuint pipeline, GLenum pname, GLint* params)
GLboolean glIsProgramPipeline (GLuint pipeline)
void glProgramUniform1d (GLuint program, GLint location, GLdouble x)
void glProgramUniform1dv (GLuint program, GLint location, GLsizei count, const GLdouble* value)
void glProgramUniform1f (GLuint program, GLint location, GLfloat x)
void glProgramUniform1fv (GLuint program, GLint location, GLsizei count, const GLfloat* value)
void glProgramUniform1i (GLuint program, GLint location, GLint x)
void glProgramUniform1iv (GLuint program, GLint location, GLsizei count, const GLint* value)
void glProgramUniform1ui (GLuint program, GLint location, GLuint x)
void glProgramUniform1uiv (GLuint program, GLint location, GLsizei count, const GLuint* value)
void glProgramUniform2d (GLuint program, GLint location, GLdouble x, GLdouble y)
void glProgramUniform2dv (GLuint program, GLint location, GLsizei count, const GLdouble* value)
void glProgramUniform2f (GLuint program, GLint location, GLfloat x, GLfloat y)
void glProgramUniform2fv (GLuint program, GLint location, GLsizei count, const GLfloat* value)
void glProgramUniform2i (GLuint program, GLint location, GLint x, GLint y)
void glProgramUniform2iv (GLuint program, GLint location, GLsizei count, const GLint* value)
void glProgramUniform2ui (GLuint program, GLint location, GLuint x, GLuint y)
void glProgramUniform2uiv (GLuint program, GLint location, GLsizei count, const GLuint* value)
void glProgramUniform3d (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z)
void glProgramUniform3dv (GLuint program, GLint location, GLsizei count, const GLdouble* value)
void glProgramUniform3f (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z)
void glProgramUniform3fv (GLuint program, GLint location, GLsizei count, const GLfloat* value)
void glProgramUniform3i (GLuint program, GLint location, GLint x, GLint y, GLint z)
void glProgramUniform3iv (GLuint program, GLint location, GLsizei count, const GLint* value)
void glProgramUniform3ui (GLuint program, GLint location, GLuint x, GLuint y, GLuint z)
void glProgramUniform3uiv (GLuint program, GLint location, GLsizei count, const GLuint* value)
void glProgramUniform4d (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
void glProgramUniform4dv (GLuint program, GLint location, GLsizei count, const GLdouble* value)
void glProgramUniform4f (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
void glProgramUniform4fv (GLuint program, GLint location, GLsizei count, const GLfloat* value)
void glProgramUniform4i (GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w)
void glProgramUniform4iv (GLuint program, GLint location, GLsizei count, const GLint* value)
void glProgramUniform4ui (GLuint program, GLint location, GLuint x, GLuint y, GLuint z, GLuint w)
void glProgramUniform4uiv (GLuint program, GLint location, GLsizei count, const GLuint* value)
void glProgramUniformMatrix2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
void glProgramUniformMatrix2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
void glProgramUniformMatrix2x3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
void glProgramUniformMatrix2x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
void glProgramUniformMatrix2x4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
void glProgramUniformMatrix2x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
void glProgramUniformMatrix3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
void glProgramUniformMatrix3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
void glProgramUniformMatrix3x2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
void glProgramUniformMatrix3x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
void glProgramUniformMatrix3x4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
void glProgramUniformMatrix3x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
void glProgramUniformMatrix4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
void glProgramUniformMatrix4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
void glProgramUniformMatrix4x2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
void glProgramUniformMatrix4x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
void glProgramUniformMatrix4x3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value)
void glProgramUniformMatrix4x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
void glUseProgramStages (GLuint pipeline, GLbitfield stages, GLuint program)
void glValidateProgramPipeline (GLuint pipeline)

View file

@ -0,0 +1,13 @@
GL_ARB_vertex_attrib_64bit
http://www.opengl.org/registry/specs/ARB/vertex_attrib_64bit.txt
GL_ARB_vertex_attrib_64bit
void glGetVertexAttribLdv (GLuint index, GLenum pname, GLdouble* params)
void glVertexAttribL1d (GLuint index, GLdouble x)
void glVertexAttribL1dv (GLuint index, const GLdouble* v)
void glVertexAttribL2d (GLuint index, GLdouble x, GLdouble y)
void glVertexAttribL2dv (GLuint index, const GLdouble* v)
void glVertexAttribL3d (GLuint index, GLdouble x, GLdouble y, GLdouble z)
void glVertexAttribL3dv (GLuint index, const GLdouble* v)
void glVertexAttribL4d (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
void glVertexAttribL4dv (GLuint index, const GLdouble* v)
void glVertexAttribLPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const void* pointer)

View file

@ -0,0 +1,55 @@
GL_ARB_vertex_blend
http://oss.sgi.com/projects/ogl-sample/registry/ARB/vertex_blend.txt
GL_ARB_vertex_blend
GL_MAX_VERTEX_UNITS_ARB 0x86A4
GL_ACTIVE_VERTEX_UNITS_ARB 0x86A5
GL_WEIGHT_SUM_UNITY_ARB 0x86A6
GL_VERTEX_BLEND_ARB 0x86A7
GL_CURRENT_WEIGHT_ARB 0x86A8
GL_WEIGHT_ARRAY_TYPE_ARB 0x86A9
GL_WEIGHT_ARRAY_STRIDE_ARB 0x86AA
GL_WEIGHT_ARRAY_SIZE_ARB 0x86AB
GL_WEIGHT_ARRAY_POINTER_ARB 0x86AC
GL_WEIGHT_ARRAY_ARB 0x86AD
GL_MODELVIEW0_ARB 0x1700
GL_MODELVIEW1_ARB 0x850A
GL_MODELVIEW2_ARB 0x8722
GL_MODELVIEW3_ARB 0x8723
GL_MODELVIEW4_ARB 0x8724
GL_MODELVIEW5_ARB 0x8725
GL_MODELVIEW6_ARB 0x8726
GL_MODELVIEW7_ARB 0x8727
GL_MODELVIEW8_ARB 0x8728
GL_MODELVIEW9_ARB 0x8729
GL_MODELVIEW10_ARB 0x872A
GL_MODELVIEW11_ARB 0x872B
GL_MODELVIEW12_ARB 0x872C
GL_MODELVIEW13_ARB 0x872D
GL_MODELVIEW14_ARB 0x872E
GL_MODELVIEW15_ARB 0x872F
GL_MODELVIEW16_ARB 0x8730
GL_MODELVIEW17_ARB 0x8731
GL_MODELVIEW18_ARB 0x8732
GL_MODELVIEW19_ARB 0x8733
GL_MODELVIEW20_ARB 0x8734
GL_MODELVIEW21_ARB 0x8735
GL_MODELVIEW22_ARB 0x8736
GL_MODELVIEW23_ARB 0x8737
GL_MODELVIEW24_ARB 0x8738
GL_MODELVIEW25_ARB 0x8739
GL_MODELVIEW26_ARB 0x873A
GL_MODELVIEW27_ARB 0x873B
GL_MODELVIEW28_ARB 0x873C
GL_MODELVIEW29_ARB 0x873D
GL_MODELVIEW30_ARB 0x873E
GL_MODELVIEW31_ARB 0x873F
void glWeightbvARB (GLint size, GLbyte *weights)
void glWeightsvARB (GLint size, GLshort *weights)
void glWeightivARB (GLint size, GLint *weights)
void glWeightfvARB (GLint size, GLfloat *weights)
void glWeightdvARB (GLint size, GLdouble *weights)
void glWeightubvARB (GLint size, GLubyte *weights)
void glWeightusvARB (GLint size, GLushort *weights)
void glWeightuivARB (GLint size, GLuint *weights)
void glWeightPointerARB (GLint size, GLenum type, GLsizei stride, GLvoid *pointer)
void glVertexBlendARB (GLint count)

View file

@ -0,0 +1,9 @@
GL_ATIX_point_sprites
http://www.ati.com/developer/atiopengl.pdf
GL_ATIX_point_sprites
GL_TEXTURE_POINT_MODE_ATIX 0x60B0
GL_TEXTURE_POINT_ONE_COORD_ATIX 0x60B1
GL_TEXTURE_POINT_SPRITE_ATIX 0x60B2
GL_POINT_SPRITE_CULL_MODE_ATIX 0x60B3
GL_POINT_SPRITE_CULL_CENTER_ATIX 0x60B4
GL_POINT_SPRITE_CULL_CLIP_ATIX 0x60B5

View file

@ -0,0 +1,6 @@
GL_ATIX_texture_env_combine3
http://www.ati.com/developer/atiopengl.pdf
GL_ATIX_texture_env_combine3
GL_MODULATE_ADD_ATIX 0x8744
GL_MODULATE_SIGNED_ADD_ATIX 0x8745
GL_MODULATE_SUBTRACT_ATIX 0x8746

View file

@ -0,0 +1,6 @@
GL_ATIX_texture_env_route
http://www.ati.com/developer/sdk/RadeonSDK/Html/Info/ATIX_texture_env_route.txt
GL_ATIX_texture_env_route
GL_SECONDARY_COLOR_ATIX 0x8747
GL_TEXTURE_OUTPUT_RGB_ATIX 0x8748
GL_TEXTURE_OUTPUT_ALPHA_ATIX 0x8749

View file

@ -0,0 +1,4 @@
GL_ATIX_vertex_shader_output_point_size
http://www.ati.com/developer/atiopengl.pdf
GL_ATIX_vertex_shader_output_point_size
GL_OUTPUT_POINT_SIZE_ATIX 0x610E

View file

@ -0,0 +1,15 @@
GL_ATI_envmap_bumpmap
http://oss.sgi.com/projects/ogl-sample/registry/ATI/envmap_bumpmap.txt
GL_ATI_envmap_bumpmap
GL_BUMP_ROT_MATRIX_ATI 0x8775
GL_BUMP_ROT_MATRIX_SIZE_ATI 0x8776
GL_BUMP_NUM_TEX_UNITS_ATI 0x8777
GL_BUMP_TEX_UNITS_ATI 0x8778
GL_DUDV_ATI 0x8779
GL_DU8DV8_ATI 0x877A
GL_BUMP_ENVMAP_ATI 0x877B
GL_BUMP_TARGET_ATI 0x877C
void glTexBumpParameterivATI (GLenum pname, GLint *param)
void glTexBumpParameterfvATI (GLenum pname, GLfloat *param)
void glGetTexBumpParameterivATI (GLenum pname, GLint *param)
void glGetTexBumpParameterfvATI (GLenum pname, GLfloat *param)

View file

@ -0,0 +1,5 @@
GL_ATI_map_object_buffer
http://www.opengl.org/registry/specs/ATI/map_object_buffer.txt
GL_ATI_map_object_buffer
GLvoid * glMapObjectBufferATI (GLuint buffer)
void glUnmapObjectBufferATI (GLuint buffer)

View file

@ -0,0 +1,14 @@
GL_ATI_pn_triangles
http://www.opengl.org/registry/specs/ATI/pn_triangles.txt
GL_ATI_pn_triangles
GL_PN_TRIANGLES_ATI 0x87F0
GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F1
GL_PN_TRIANGLES_POINT_MODE_ATI 0x87F2
GL_PN_TRIANGLES_NORMAL_MODE_ATI 0x87F3
GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F4
GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI 0x87F5
GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI 0x87F6
GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI 0x87F7
GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI 0x87F8
void glPNTrianglesiATI (GLenum pname, GLint param)
void glPNTrianglesfATI (GLenum pname, GLfloat param)

View file

@ -0,0 +1,9 @@
GL_ATI_separate_stencil
http://www.opengl.org/registry/specs/ATI/separate_stencil.txt
GL_ATI_separate_stencil
GL_STENCIL_BACK_FUNC_ATI 0x8800
GL_STENCIL_BACK_FAIL_ATI 0x8801
GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI 0x8802
GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI 0x8803
void glStencilOpSeparateATI (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass)
void glStencilFuncSeparateATI (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask)

View file

@ -0,0 +1,3 @@
GL_ATI_shader_texture_lod
GL_ATI_shader_texture_lod

View file

@ -0,0 +1,4 @@
GL_ATI_texture_compression_3dc
GL_ATI_texture_compression_3dc
GL_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI 0x8837

View file

@ -0,0 +1,58 @@
GL_ATI_vertex_streams
http://www.opengl.org/registry/specs/ATI/vertex_streams.txt
GL_ATI_vertex_streams
GL_MAX_VERTEX_STREAMS_ATI 0x876B
GL_VERTEX_SOURCE_ATI 0x876C
GL_VERTEX_STREAM0_ATI 0x876D
GL_VERTEX_STREAM1_ATI 0x876E
GL_VERTEX_STREAM2_ATI 0x876F
GL_VERTEX_STREAM3_ATI 0x8770
GL_VERTEX_STREAM4_ATI 0x8771
GL_VERTEX_STREAM5_ATI 0x8772
GL_VERTEX_STREAM6_ATI 0x8773
GL_VERTEX_STREAM7_ATI 0x8774
void glClientActiveVertexStreamATI (GLenum stream)
void glVertexBlendEnviATI (GLenum pname, GLint param)
void glVertexBlendEnvfATI (GLenum pname, GLfloat param)
void glVertexStream1sATI (GLenum stream, GLshort x)
void glVertexStream1svATI (GLenum stream, const GLshort *coords)
void glVertexStream1iATI (GLenum stream, GLint x)
void glVertexStream1ivATI (GLenum stream, const GLint *coords)
void glVertexStream1fATI (GLenum stream, GLfloat x)
void glVertexStream1fvATI (GLenum stream, const GLfloat *coords)
void glVertexStream1dATI (GLenum stream, GLdouble x)
void glVertexStream1dvATI (GLenum stream, const GLdouble *coords)
void glVertexStream2sATI (GLenum stream, GLshort x, GLshort y)
void glVertexStream2svATI (GLenum stream, const GLshort *coords)
void glVertexStream2iATI (GLenum stream, GLint x, GLint y)
void glVertexStream2ivATI (GLenum stream, const GLint *coords)
void glVertexStream2fATI (GLenum stream, GLfloat x, GLfloat y)
void glVertexStream2fvATI (GLenum stream, const GLfloat *coords)
void glVertexStream2dATI (GLenum stream, GLdouble x, GLdouble y)
void glVertexStream2dvATI (GLenum stream, const GLdouble *coords)
void glVertexStream3sATI (GLenum stream, GLshort x, GLshort y, GLshort z)
void glVertexStream3svATI (GLenum stream, const GLshort *coords)
void glVertexStream3iATI (GLenum stream, GLint x, GLint y, GLint z)
void glVertexStream3ivATI (GLenum stream, const GLint *coords)
void glVertexStream3fATI (GLenum stream, GLfloat x, GLfloat y, GLfloat z)
void glVertexStream3fvATI (GLenum stream, const GLfloat *coords)
void glVertexStream3dATI (GLenum stream, GLdouble x, GLdouble y, GLdouble z)
void glVertexStream3dvATI (GLenum stream, const GLdouble *coords)
void glVertexStream4sATI (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w)
void glVertexStream4svATI (GLenum stream, const GLshort *coords)
void glVertexStream4iATI (GLenum stream, GLint x, GLint y, GLint z, GLint w)
void glVertexStream4ivATI (GLenum stream, const GLint *coords)
void glVertexStream4fATI (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
void glVertexStream4fvATI (GLenum stream, const GLfloat *coords)
void glVertexStream4dATI (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
void glVertexStream4dvATI (GLenum stream, const GLdouble *coords)
void glNormalStream3bATI (GLenum stream, GLbyte x, GLbyte y, GLbyte z)
void glNormalStream3bvATI (GLenum stream, const GLbyte *coords)
void glNormalStream3sATI (GLenum stream, GLshort x, GLshort y, GLshort z)
void glNormalStream3svATI (GLenum stream, const GLshort *coords)
void glNormalStream3iATI (GLenum stream, GLint x, GLint y, GLint z)
void glNormalStream3ivATI (GLenum stream, const GLint *coords)
void glNormalStream3fATI (GLenum stream, GLfloat x, GLfloat y, GLfloat z)
void glNormalStream3fvATI (GLenum stream, const GLfloat *coords)
void glNormalStream3dATI (GLenum stream, GLdouble x, GLdouble y, GLdouble z)
void glNormalStream3dvATI (GLenum stream, const GLdouble *coords)

View file

@ -0,0 +1,5 @@
GL_EXT_Cg_shader
http://download.nvidia.com/developer/GLSL/GLSL%20Release%20Notes%20for%20Release%2060.pdf
GL_EXT_Cg_shader
GL_CG_VERTEX_SHADER_EXT 0x890E
GL_CG_FRAGMENT_SHADER_EXT 0x890F

View file

@ -0,0 +1,12 @@
GL_EXT_bindable_uniform
http://developer.download.nvidia.com/opengl/specs/GL_EXT_bindable_uniform.txt
GL_EXT_bindable_uniform
GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT 0x8DE2
GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT 0x8DE3
GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT 0x8DE4
GL_MAX_BINDABLE_UNIFORM_SIZE_EXT 0x8DED
GL_UNIFORM_BUFFER_BINDING_EXT 0x8DEF
GL_UNIFORM_BUFFER_EXT 0x8DEE
void glUniformBufferEXT (GLuint program, GLint location, GLuint buffer)
GLint glGetUniformBufferSizeEXT (GLuint program, GLint location)
GLintptr glGetUniformOffsetEXT (GLuint program, GLint location)

View file

@ -0,0 +1,6 @@
GL_EXT_debug_marker
http://www.khronos.org/registry/gles/extensions/EXT/EXT_debug_marker.txt
GL_EXT_debug_marker
void glInsertEventMarkerEXT (GLsizei length, const GLchar* marker)
void glPushGroupMarkerEXT (GLsizei length, const GLchar* marker)
void glPopGroupMarkerEXT (void)

View file

@ -0,0 +1,6 @@
GL_EXT_depth_bounds_test
http://www.nvidia.com/dev_content/nvopenglspecs/GL_EXT_depth_bounds_test.txt
GL_EXT_depth_bounds_test
GL_DEPTH_BOUNDS_TEST_EXT 0x8890
GL_DEPTH_BOUNDS_EXT 0x8891
void glDepthBoundsEXT (GLclampd zmin, GLclampd zmax)

View file

@ -0,0 +1,5 @@
GL_EXT_draw_instanced
http://developer.download.nvidia.com/opengl/specs/GL_EXT_draw_instanced.txt
GL_EXT_draw_instanced
void glDrawArraysInstancedEXT (GLenum mode, GLint start, GLsizei count, GLsizei primcount)
void glDrawElementsInstancedEXT (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount)

View file

@ -0,0 +1,6 @@
GL_EXT_draw_range_elements
http://oss.sgi.com/projects/ogl-sample/registry/EXT/draw_range_elements.txt
GL_EXT_draw_range_elements
GL_MAX_ELEMENTS_VERTICES_EXT 0x80E8
GL_MAX_ELEMENTS_INDICES_EXT 0x80E9
void glDrawRangeElementsEXT (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices)

View file

@ -0,0 +1,16 @@
GL_EXT_fog_coord
http://oss.sgi.com/projects/ogl-sample/registry/EXT/fog_coord.txt
GL_EXT_fog_coord
GL_FOG_COORDINATE_SOURCE_EXT 0x8450
GL_FOG_COORDINATE_EXT 0x8451
GL_FRAGMENT_DEPTH_EXT 0x8452
GL_CURRENT_FOG_COORDINATE_EXT 0x8453
GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454
GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455
GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456
GL_FOG_COORDINATE_ARRAY_EXT 0x8457
void glFogCoordfEXT (GLfloat coord)
void glFogCoordfvEXT (const GLfloat *coord)
void glFogCoorddEXT (GLdouble coord)
void glFogCoorddvEXT (const GLdouble *coord)
void glFogCoordPointerEXT (GLenum type, GLsizei stride, const GLvoid *pointer)

View file

@ -0,0 +1,5 @@
GL_EXT_framebuffer_sRGB
http://developer.download.nvidia.com/opengl/specs/GL_EXT_framebuffer_sRGB.txt
GL_EXT_framebuffer_sRGB
GL_FRAMEBUFFER_SRGB_EXT 0x8DB9
GL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x8DBA

View file

@ -0,0 +1,26 @@
GL_EXT_geometry_shader4
http://developer.download.nvidia.com/opengl/specs/GL_EXT_geometry_shader4.txt
GL_EXT_geometry_shader4
GL_GEOMETRY_SHADER_EXT 0x8DD9
GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT 0x8DDD
GL_MAX_VERTEX_VARYING_COMPONENTS_EXT 0x8DDE
GL_MAX_VARYING_COMPONENTS_EXT 0x8B4B
GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF
GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0
GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1
GL_GEOMETRY_VERTICES_OUT_EXT 0x8DDA
GL_GEOMETRY_INPUT_TYPE_EXT 0x8DDB
GL_GEOMETRY_OUTPUT_TYPE_EXT 0x8DDC
GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29
GL_LINES_ADJACENCY_EXT 0xA
GL_LINE_STRIP_ADJACENCY_EXT 0xB
GL_TRIANGLES_ADJACENCY_EXT 0xC
GL_TRIANGLE_STRIP_ADJACENCY_EXT 0xD
GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7
GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8
GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT 0x8DA9
GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4
GL_PROGRAM_POINT_SIZE_EXT 0x8642
void glProgramParameteriEXT (GLuint program, GLenum pname, GLint value)
void glFramebufferTextureEXT (GLenum target, GLenum attachment, GLuint texture, GLint level)
void glFramebufferTextureFaceEXT (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face)

View file

@ -0,0 +1,5 @@
GL_EXT_gpu_program_parameters
http://developer.download.nvidia.com/opengl/specs/GL_EXT_gpu_program_parameters.txt
GL_EXT_gpu_program_parameters
void glProgramEnvParameters4fvEXT (GLenum target, GLuint index, GLsizei count, const GLfloat* params)
void glProgramLocalParameters4fvEXT (GLenum target, GLuint index, GLsizei count, const GLfloat* params)

View file

@ -0,0 +1,63 @@
GL_EXT_gpu_shader4
http://developer.download.nvidia.com/opengl/specs/GL_EXT_gpu_shader4.txt
GL_EXT_gpu_shader4
GL_SAMPLER_1D_ARRAY_EXT 0x8DC0
GL_SAMPLER_2D_ARRAY_EXT 0x8DC1
GL_SAMPLER_BUFFER_EXT 0x8DC2
GL_SAMPLER_1D_ARRAY_SHADOW_EXT 0x8DC3
GL_SAMPLER_2D_ARRAY_SHADOW_EXT 0x8DC4
GL_SAMPLER_CUBE_SHADOW_EXT 0x8DC5
GL_UNSIGNED_INT_VEC2_EXT 0x8DC6
GL_UNSIGNED_INT_VEC3_EXT 0x8DC7
GL_UNSIGNED_INT_VEC4_EXT 0x8DC8
GL_INT_SAMPLER_1D_EXT 0x8DC9
GL_INT_SAMPLER_2D_EXT 0x8DCA
GL_INT_SAMPLER_3D_EXT 0x8DCB
GL_INT_SAMPLER_CUBE_EXT 0x8DCC
GL_INT_SAMPLER_2D_RECT_EXT 0x8DCD
GL_INT_SAMPLER_1D_ARRAY_EXT 0x8DCE
GL_INT_SAMPLER_2D_ARRAY_EXT 0x8DCF
GL_INT_SAMPLER_BUFFER_EXT 0x8DD0
GL_UNSIGNED_INT_SAMPLER_1D_EXT 0x8DD1
GL_UNSIGNED_INT_SAMPLER_2D_EXT 0x8DD2
GL_UNSIGNED_INT_SAMPLER_3D_EXT 0x8DD3
GL_UNSIGNED_INT_SAMPLER_CUBE_EXT 0x8DD4
GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT 0x8DD5
GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT 0x8DD6
GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT 0x8DD7
GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8
GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT 0x88FD
void glGetUniformuivEXT (GLuint program, GLint location, GLuint *params)
void glBindFragDataLocationEXT (GLuint program, GLuint color, const GLchar *name)
GLint glGetFragDataLocationEXT (GLuint program, const GLchar *name)
void glUniform1uiEXT (GLint location, GLuint v0)
void glUniform2uiEXT (GLint location, GLuint v0, GLuint v1)
void glUniform3uiEXT (GLint location, GLuint v0, GLuint v1, GLuint v2)
void glUniform4uiEXT (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
void glUniform1uivEXT (GLint location, GLsizei count, const GLuint *value)
void glUniform2uivEXT (GLint location, GLsizei count, const GLuint *value)
void glUniform3uivEXT (GLint location, GLsizei count, const GLuint *value)
void glUniform4uivEXT (GLint location, GLsizei count, const GLuint *value)
void glVertexAttribI1iEXT (GLuint index, GLint x)
void glVertexAttribI2iEXT (GLuint index, GLint x, GLint y)
void glVertexAttribI3iEXT (GLuint index, GLint x, GLint y, GLint z)
void glVertexAttribI4iEXT (GLuint index, GLint x, GLint y, GLint z, GLint w)
void glVertexAttribI1uiEXT (GLuint index, GLuint x)
void glVertexAttribI2uiEXT (GLuint index, GLuint x, GLuint y)
void glVertexAttribI3uiEXT (GLuint index, GLuint x, GLuint y, GLuint z)
void glVertexAttribI4uiEXT (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w)
void glVertexAttribI1ivEXT (GLuint index, const GLint *v)
void glVertexAttribI2ivEXT (GLuint index, const GLint *v)
void glVertexAttribI3ivEXT (GLuint index, const GLint *v)
void glVertexAttribI4ivEXT (GLuint index, const GLint *v)
void glVertexAttribI1uivEXT (GLuint index, const GLuint *v)
void glVertexAttribI2uivEXT (GLuint index, const GLuint *v)
void glVertexAttribI3uivEXT (GLuint index, const GLuint *v)
void glVertexAttribI4uivEXT (GLuint index, const GLuint *v)
void glVertexAttribI4bvEXT (GLuint index, const GLbyte *v)
void glVertexAttribI4svEXT (GLuint index, const GLshort *v)
void glVertexAttribI4ubvEXT (GLuint index, const GLubyte *v)
void glVertexAttribI4usvEXT (GLuint index, const GLushort *v)
void glVertexAttribIPointerEXT (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)
void glGetVertexAttribIivEXT (GLuint index, GLenum pname, GLint *params)
void glGetVertexAttribIuivEXT (GLuint index, GLenum pname, GLuint *params)

View file

@ -0,0 +1,6 @@
GL_EXT_packed_float
http://developer.download.nvidia.com/opengl/specs/GL_EXT_packed_float.txt
GL_EXT_packed_float
GL_R11F_G11F_B10F_EXT 0x8C3A
GL_UNSIGNED_INT_10F_11F_11F_REV_EXT 0x8C3B
GL_RGBA_SIGNED_COMPONENTS_EXT 0x8C3C

View file

@ -0,0 +1,7 @@
GL_EXT_pixel_buffer_object
http://www.nvidia.com/dev_content/nvopenglspecs/GL_EXT_pixel_buffer_object.txt
GL_EXT_pixel_buffer_object
GL_PIXEL_PACK_BUFFER_EXT 0x88EB
GL_PIXEL_UNPACK_BUFFER_EXT 0x88EC
GL_PIXEL_PACK_BUFFER_BINDING_EXT 0x88ED
GL_PIXEL_UNPACK_BUFFER_BINDING_EXT 0x88EF

View file

@ -0,0 +1,27 @@
GL_EXT_secondary_color
http://oss.sgi.com/projects/ogl-sample/registry/EXT/secondary_color.txt
GL_EXT_secondary_color
GL_COLOR_SUM_EXT 0x8458
GL_CURRENT_SECONDARY_COLOR_EXT 0x8459
GL_SECONDARY_COLOR_ARRAY_SIZE_EXT 0x845A
GL_SECONDARY_COLOR_ARRAY_TYPE_EXT 0x845B
GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT 0x845C
GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D
GL_SECONDARY_COLOR_ARRAY_EXT 0x845E
void glSecondaryColor3bEXT (GLbyte red, GLbyte green, GLbyte blue)
void glSecondaryColor3bvEXT (const GLbyte *v)
void glSecondaryColor3dEXT (GLdouble red, GLdouble green, GLdouble blue)
void glSecondaryColor3dvEXT (const GLdouble *v)
void glSecondaryColor3fEXT (GLfloat red, GLfloat green, GLfloat blue)
void glSecondaryColor3fvEXT (const GLfloat *v)
void glSecondaryColor3iEXT (GLint red, GLint green, GLint blue)
void glSecondaryColor3ivEXT (const GLint *v)
void glSecondaryColor3sEXT (GLshort red, GLshort green, GLshort blue)
void glSecondaryColor3svEXT (const GLshort *v)
void glSecondaryColor3ubEXT (GLubyte red, GLubyte green, GLubyte blue)
void glSecondaryColor3ubvEXT (const GLubyte *v)
void glSecondaryColor3uiEXT (GLuint red, GLuint green, GLuint blue)
void glSecondaryColor3uivEXT (const GLuint *v)
void glSecondaryColor3usEXT (GLushort red, GLushort green, GLushort blue)
void glSecondaryColor3usvEXT (const GLushort *v)
void glSecondaryColorPointerEXT (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)

View file

@ -0,0 +1,12 @@
GL_EXT_texture_array
http://developer.download.nvidia.com/opengl/specs/GL_EXT_texture_array.txt
GL_EXT_texture_array
GL_TEXTURE_1D_ARRAY_EXT 0x8C18
GL_PROXY_TEXTURE_1D_ARRAY_EXT 0x8C19
GL_TEXTURE_2D_ARRAY_EXT 0x8C1A
GL_PROXY_TEXTURE_2D_ARRAY_EXT 0x8C1B
GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C
GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D
GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF
GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT 0x884E
void glFramebufferTextureLayerEXT (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer)

View file

@ -0,0 +1,9 @@
GL_EXT_texture_buffer_object
http://developer.download.nvidia.com/opengl/specs/GL_EXT_texture_buffer_object.txt
GL_EXT_texture_buffer_object
GL_TEXTURE_BUFFER_EXT 0x8C2A
GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B
GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C
GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D
GL_TEXTURE_BUFFER_FORMAT_EXT 0x8C2E
void glTexBufferEXT (GLenum target, GLenum internalformat, GLuint buffer)

View file

@ -0,0 +1,7 @@
GL_EXT_texture_compression_latc
http://developer.download.nvidia.com/opengl/specs/GL_EXT_texture_compression_latc.txt
GL_EXT_texture_compression_latc
GL_COMPRESSED_LUMINANCE_LATC1_EXT 0x8C70
GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT 0x8C71
GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT 0x8C72
GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT 0x8C73

View file

@ -0,0 +1,7 @@
GL_EXT_texture_compression_rgtc
http://developer.download.nvidia.com/opengl/specs/GL_EXT_texture_compression_rgtc.txt
GL_EXT_texture_compression_rgtc
GL_COMPRESSED_RED_RGTC1_EXT 0x8DBB
GL_COMPRESSED_SIGNED_RED_RGTC1_EXT 0x8DBC
GL_COMPRESSED_RED_GREEN_RGTC2_EXT 0x8DBD
GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT 0x8DBE

View file

@ -0,0 +1,15 @@
GL_EXT_texture_cube_map
http://www.nvidia.com/dev_content/nvopenglspecs/GL_EXT_texture_cube_map.txt
GL_EXT_texture_cube_map
GL_NORMAL_MAP_EXT 0x8511
GL_REFLECTION_MAP_EXT 0x8512
GL_TEXTURE_CUBE_MAP_EXT 0x8513
GL_TEXTURE_BINDING_CUBE_MAP_EXT 0x8514
GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT 0x8515
GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT 0x8516
GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT 0x8517
GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT 0x8518
GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT 0x8519
GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT 0x851A
GL_PROXY_TEXTURE_CUBE_MAP_EXT 0x851B
GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT 0x851C

View file

@ -0,0 +1,4 @@
GL_EXT_texture_edge_clamp
http://www.opengl.org/developers/documentation/Version1.2/1.2specs/texture_edge_clamp.txt
GL_EXT_texture_edge_clamp
GL_CLAMP_TO_EDGE_EXT 0x812F

View file

@ -0,0 +1,56 @@
GL_EXT_texture_integer
http://developer.download.nvidia.com/opengl/specs/GL_EXT_texture_integer.txt
GL_EXT_texture_integer
GL_RGBA32UI_EXT 0x8D70
GL_RGB32UI_EXT 0x8D71
GL_ALPHA32UI_EXT 0x8D72
GL_INTENSITY32UI_EXT 0x8D73
GL_LUMINANCE32UI_EXT 0x8D74
GL_LUMINANCE_ALPHA32UI_EXT 0x8D75
GL_RGBA16UI_EXT 0x8D76
GL_RGB16UI_EXT 0x8D77
GL_ALPHA16UI_EXT 0x8D78
GL_INTENSITY16UI_EXT 0x8D79
GL_LUMINANCE16UI_EXT 0x8D7A
GL_LUMINANCE_ALPHA16UI_EXT 0x8D7B
GL_RGBA8UI_EXT 0x8D7C
GL_RGB8UI_EXT 0x8D7D
GL_ALPHA8UI_EXT 0x8D7E
GL_INTENSITY8UI_EXT 0x8D7F
GL_LUMINANCE8UI_EXT 0x8D80
GL_LUMINANCE_ALPHA8UI_EXT 0x8D81
GL_RGBA32I_EXT 0x8D82
GL_RGB32I_EXT 0x8D83
GL_ALPHA32I_EXT 0x8D84
GL_INTENSITY32I_EXT 0x8D85
GL_LUMINANCE32I_EXT 0x8D86
GL_LUMINANCE_ALPHA32I_EXT 0x8D87
GL_RGBA16I_EXT 0x8D88
GL_RGB16I_EXT 0x8D89
GL_ALPHA16I_EXT 0x8D8A
GL_INTENSITY16I_EXT 0x8D8B
GL_LUMINANCE16I_EXT 0x8D8C
GL_LUMINANCE_ALPHA16I_EXT 0x8D8D
GL_RGBA8I_EXT 0x8D8E
GL_RGB8I_EXT 0x8D8F
GL_ALPHA8I_EXT 0x8D90
GL_INTENSITY8I_EXT 0x8D91
GL_LUMINANCE8I_EXT 0x8D92
GL_LUMINANCE_ALPHA8I_EXT 0x8D93
GL_RED_INTEGER_EXT 0x8D94
GL_GREEN_INTEGER_EXT 0x8D95
GL_BLUE_INTEGER_EXT 0x8D96
GL_ALPHA_INTEGER_EXT 0x8D97
GL_RGB_INTEGER_EXT 0x8D98
GL_RGBA_INTEGER_EXT 0x8D99
GL_BGR_INTEGER_EXT 0x8D9A
GL_BGRA_INTEGER_EXT 0x8D9B
GL_LUMINANCE_INTEGER_EXT 0x8D9C
GL_LUMINANCE_ALPHA_INTEGER_EXT 0x8D9D
GL_RGBA_INTEGER_MODE_EXT 0x8D9E
void glTexParameterIivEXT (GLenum target, GLenum pname, const GLint *params)
void glTexParameterIuivEXT (GLenum target, GLenum pname, const GLuint *params)
void glGetTexParameterIivEXT (GLenum target, GLenum pname, GLint *params)
void glGetTexParameterIuivEXT (GLenum target, GLenum pname, GLuint *params)
void glClearColorIiEXT (GLint red, GLint green, GLint blue, GLint alpha)
void glClearColorIuiEXT (GLuint red, GLuint green, GLuint blue, GLuint alpha)

View file

@ -0,0 +1,7 @@
GL_EXT_texture_rectangle
http://developer.apple.com/opengl/extensions/ext_texture_rectangle.html
GL_EXT_texture_rectangle
GL_TEXTURE_RECTANGLE_EXT 0x84F5
GL_TEXTURE_BINDING_RECTANGLE_EXT 0x84F6
GL_PROXY_TEXTURE_RECTANGLE_EXT 0x84F7
GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT 0x84F8

View file

@ -0,0 +1,6 @@
GL_EXT_texture_shared_exponent
http://developer.download.nvidia.com/opengl/specs/GL_EXT_texture_shared_exponent.txt
GL_EXT_texture_shared_exponent
GL_RGB9_E5_EXT 0x8C3D
GL_UNSIGNED_INT_5_9_9_9_REV_EXT 0x8C3E
GL_TEXTURE_SHARED_SIZE_EXT 0x8C3F

View file

@ -0,0 +1,6 @@
GL_EXT_timer_query
http://www.nvidia.com/dev_content/nvopenglspecs/GL_EXT_timer_query.txt
GL_EXT_timer_query
GL_TIME_ELAPSED_EXT 0x88BF
void glGetQueryObjecti64vEXT (GLuint id, GLenum pname, GLint64EXT *params)
void glGetQueryObjectui64vEXT (GLuint id, GLenum pname, GLuint64EXT *params)

View file

@ -0,0 +1,156 @@
GL_EXT_vertex_shader
http://oss.sgi.com/projects/ogl-sample/registry/EXT/vertex_shader.txt
GL_EXT_vertex_shader
GL_VERTEX_SHADER_EXT 0x8780
GL_VERTEX_SHADER_BINDING_EXT 0x8781
GL_OP_INDEX_EXT 0x8782
GL_OP_NEGATE_EXT 0x8783
GL_OP_DOT3_EXT 0x8784
GL_OP_DOT4_EXT 0x8785
GL_OP_MUL_EXT 0x8786
GL_OP_ADD_EXT 0x8787
GL_OP_MADD_EXT 0x8788
GL_OP_FRAC_EXT 0x8789
GL_OP_MAX_EXT 0x878A
GL_OP_MIN_EXT 0x878B
GL_OP_SET_GE_EXT 0x878C
GL_OP_SET_LT_EXT 0x878D
GL_OP_CLAMP_EXT 0x878E
GL_OP_FLOOR_EXT 0x878F
GL_OP_ROUND_EXT 0x8790
GL_OP_EXP_BASE_2_EXT 0x8791
GL_OP_LOG_BASE_2_EXT 0x8792
GL_OP_POWER_EXT 0x8793
GL_OP_RECIP_EXT 0x8794
GL_OP_RECIP_SQRT_EXT 0x8795
GL_OP_SUB_EXT 0x8796
GL_OP_CROSS_PRODUCT_EXT 0x8797
GL_OP_MULTIPLY_MATRIX_EXT 0x8798
GL_OP_MOV_EXT 0x8799
GL_OUTPUT_VERTEX_EXT 0x879A
GL_OUTPUT_COLOR0_EXT 0x879B
GL_OUTPUT_COLOR1_EXT 0x879C
GL_OUTPUT_TEXTURE_COORD0_EXT 0x879D
GL_OUTPUT_TEXTURE_COORD1_EXT 0x879E
GL_OUTPUT_TEXTURE_COORD2_EXT 0x879F
GL_OUTPUT_TEXTURE_COORD3_EXT 0x87A0
GL_OUTPUT_TEXTURE_COORD4_EXT 0x87A1
GL_OUTPUT_TEXTURE_COORD5_EXT 0x87A2
GL_OUTPUT_TEXTURE_COORD6_EXT 0x87A3
GL_OUTPUT_TEXTURE_COORD7_EXT 0x87A4
GL_OUTPUT_TEXTURE_COORD8_EXT 0x87A5
GL_OUTPUT_TEXTURE_COORD9_EXT 0x87A6
GL_OUTPUT_TEXTURE_COORD10_EXT 0x87A7
GL_OUTPUT_TEXTURE_COORD11_EXT 0x87A8
GL_OUTPUT_TEXTURE_COORD12_EXT 0x87A9
GL_OUTPUT_TEXTURE_COORD13_EXT 0x87AA
GL_OUTPUT_TEXTURE_COORD14_EXT 0x87AB
GL_OUTPUT_TEXTURE_COORD15_EXT 0x87AC
GL_OUTPUT_TEXTURE_COORD16_EXT 0x87AD
GL_OUTPUT_TEXTURE_COORD17_EXT 0x87AE
GL_OUTPUT_TEXTURE_COORD18_EXT 0x87AF
GL_OUTPUT_TEXTURE_COORD19_EXT 0x87B0
GL_OUTPUT_TEXTURE_COORD20_EXT 0x87B1
GL_OUTPUT_TEXTURE_COORD21_EXT 0x87B2
GL_OUTPUT_TEXTURE_COORD22_EXT 0x87B3
GL_OUTPUT_TEXTURE_COORD23_EXT 0x87B4
GL_OUTPUT_TEXTURE_COORD24_EXT 0x87B5
GL_OUTPUT_TEXTURE_COORD25_EXT 0x87B6
GL_OUTPUT_TEXTURE_COORD26_EXT 0x87B7
GL_OUTPUT_TEXTURE_COORD27_EXT 0x87B8
GL_OUTPUT_TEXTURE_COORD28_EXT 0x87B9
GL_OUTPUT_TEXTURE_COORD29_EXT 0x87BA
GL_OUTPUT_TEXTURE_COORD30_EXT 0x87BB
GL_OUTPUT_TEXTURE_COORD31_EXT 0x87BC
GL_OUTPUT_FOG_EXT 0x87BD
GL_SCALAR_EXT 0x87BE
GL_VECTOR_EXT 0x87BF
GL_MATRIX_EXT 0x87C0
GL_VARIANT_EXT 0x87C1
GL_INVARIANT_EXT 0x87C2
GL_LOCAL_CONSTANT_EXT 0x87C3
GL_LOCAL_EXT 0x87C4
GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87C5
GL_MAX_VERTEX_SHADER_VARIANTS_EXT 0x87C6
GL_MAX_VERTEX_SHADER_INVARIANTS_EXT 0x87C7
GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87C8
GL_MAX_VERTEX_SHADER_LOCALS_EXT 0x87C9
GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CA
GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT 0x87CB
GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT 0x87CC
GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87CD
GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT 0x87CE
GL_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CF
GL_VERTEX_SHADER_VARIANTS_EXT 0x87D0
GL_VERTEX_SHADER_INVARIANTS_EXT 0x87D1
GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87D2
GL_VERTEX_SHADER_LOCALS_EXT 0x87D3
GL_VERTEX_SHADER_OPTIMIZED_EXT 0x87D4
GL_X_EXT 0x87D5
GL_Y_EXT 0x87D6
GL_Z_EXT 0x87D7
GL_W_EXT 0x87D8
GL_NEGATIVE_X_EXT 0x87D9
GL_NEGATIVE_Y_EXT 0x87DA
GL_NEGATIVE_Z_EXT 0x87DB
GL_NEGATIVE_W_EXT 0x87DC
GL_ZERO_EXT 0x87DD
GL_ONE_EXT 0x87DE
GL_NEGATIVE_ONE_EXT 0x87DF
GL_NORMALIZED_RANGE_EXT 0x87E0
GL_FULL_RANGE_EXT 0x87E1
GL_CURRENT_VERTEX_EXT 0x87E2
GL_MVP_MATRIX_EXT 0x87E3
GL_VARIANT_VALUE_EXT 0x87E4
GL_VARIANT_DATATYPE_EXT 0x87E5
GL_VARIANT_ARRAY_STRIDE_EXT 0x87E6
GL_VARIANT_ARRAY_TYPE_EXT 0x87E7
GL_VARIANT_ARRAY_EXT 0x87E8
GL_VARIANT_ARRAY_POINTER_EXT 0x87E9
GL_INVARIANT_VALUE_EXT 0x87EA
GL_INVARIANT_DATATYPE_EXT 0x87EB
GL_LOCAL_CONSTANT_VALUE_EXT 0x87EC
GL_LOCAL_CONSTANT_DATATYPE_EXT 0x87ED
void glBeginVertexShaderEXT (void)
void glEndVertexShaderEXT (void)
void glBindVertexShaderEXT (GLuint id)
GLuint glGenVertexShadersEXT (GLuint range)
void glDeleteVertexShaderEXT (GLuint id)
void glShaderOp1EXT (GLenum op, GLuint res, GLuint arg1)
void glShaderOp2EXT (GLenum op, GLuint res, GLuint arg1, GLuint arg2)
void glShaderOp3EXT (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3)
void glSwizzleEXT (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW)
void glWriteMaskEXT (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW)
void glInsertComponentEXT (GLuint res, GLuint src, GLuint num)
void glExtractComponentEXT (GLuint res, GLuint src, GLuint num)
GLuint glGenSymbolsEXT (GLenum dataType, GLenum storageType, GLenum range, GLuint components)
void glSetInvariantEXT (GLuint id, GLenum type, GLvoid *addr)
void glSetLocalConstantEXT (GLuint id, GLenum type, GLvoid *addr)
void glVariantbvEXT (GLuint id, GLbyte *addr)
void glVariantsvEXT (GLuint id, GLshort *addr)
void glVariantivEXT (GLuint id, GLint *addr)
void glVariantfvEXT (GLuint id, GLfloat *addr)
void glVariantdvEXT (GLuint id, GLdouble *addr)
void glVariantubvEXT (GLuint id, GLubyte *addr)
void glVariantusvEXT (GLuint id, GLushort *addr)
void glVariantuivEXT (GLuint id, GLuint *addr)
void glVariantPointerEXT (GLuint id, GLenum type, GLuint stride, GLvoid *addr)
void glEnableVariantClientStateEXT (GLuint id)
void glDisableVariantClientStateEXT (GLuint id)
GLuint glBindLightParameterEXT (GLenum light, GLenum value)
GLuint glBindMaterialParameterEXT (GLenum face, GLenum value)
GLuint glBindTexGenParameterEXT (GLenum unit, GLenum coord, GLenum value)
GLuint glBindTextureUnitParameterEXT (GLenum unit, GLenum value)
GLuint glBindParameterEXT (GLenum value)
GLboolean glIsVariantEnabledEXT (GLuint id, GLenum cap)
void glGetVariantBooleanvEXT (GLuint id, GLenum value, GLboolean *data)
void glGetVariantIntegervEXT (GLuint id, GLenum value, GLint *data)
void glGetVariantFloatvEXT (GLuint id, GLenum value, GLfloat *data)
void glGetVariantPointervEXT (GLuint id, GLenum value, GLvoid **data)
void glGetInvariantBooleanvEXT (GLuint id, GLenum value, GLboolean *data)
void glGetInvariantIntegervEXT (GLuint id, GLenum value, GLint *data)
void glGetInvariantFloatvEXT (GLuint id, GLenum value, GLfloat *data)
void glGetLocalConstantBooleanvEXT (GLuint id, GLenum value, GLboolean *data)
void glGetLocalConstantIntegervEXT (GLuint id, GLenum value, GLint *data)
void glGetLocalConstantFloatvEXT (GLuint id, GLenum value, GLfloat *data)

View file

@ -0,0 +1,12 @@
GL_KTX_buffer_region
GL_KTX_buffer_region
GL_KTX_FRONT_REGION 0x0
GL_KTX_BACK_REGION 0x1
GL_KTX_Z_REGION 0x2
GL_KTX_STENCIL_REGION 0x3
GLuint glBufferRegionEnabled (void)
GLuint glNewBufferRegion (GLenum region)
void glDeleteBufferRegion (GLenum region)
void glReadBufferRegion (GLuint region, GLint x, GLint y, GLsizei width, GLsizei height)
void glDrawBufferRegion (GLuint region, GLint x, GLint y, GLsizei width, GLsizei height, GLint xDest, GLint yDest)

View file

@ -0,0 +1,8 @@
GL_NVX_gpu_memory_info
http://developer.download.nvidia.com/opengl/specs/GL_NVX_gpu_memory_info.txt
GL_NVX_gpu_memory_info
GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX 0x9047
GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX 0x9048
GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX 0x9049
GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX 0x904A
GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX 0x904B

Some files were not shown because too many files have changed in this diff Show more