Browse Source

* opengl deleted

git-svn-id: trunk@9974 -
marco 17 years ago
parent
commit
738d8b38a0

+ 0 - 20
.gitattributes

@@ -2388,26 +2388,6 @@ packages/extra/openal/examples/Makefile svneol=native#text/plain
 packages/extra/openal/examples/Makefile.fpc svneol=native#text/plain
 packages/extra/openal/examples/Makefile.fpc svneol=native#text/plain
 packages/extra/openal/examples/madopenal.pas svneol=native#text/plain
 packages/extra/openal/examples/madopenal.pas svneol=native#text/plain
 packages/extra/openal/openal.pas svneol=native#text/plain
 packages/extra/openal/openal.pas svneol=native#text/plain
-packages/extra/opengl/Makefile svneol=native#text/plain
-packages/extra/opengl/Makefile.fpc svneol=native#text/plain
-packages/extra/opengl/examples/Makefile svneol=native#text/plain
-packages/extra/opengl/examples/Makefile.fpc svneol=native#text/plain
-packages/extra/opengl/examples/bounce.pp svneol=native#text/plain
-packages/extra/opengl/examples/glutdemo.pp svneol=native#text/plain
-packages/extra/opengl/examples/glxtest.pp -text
-packages/extra/opengl/examples/morph3d.pp svneol=native#text/plain
-packages/extra/opengl/examples/radblur.pp svneol=native#text/plain
-packages/extra/opengl/fpmake.inc svneol=native#text/plain
-packages/extra/opengl/fpmake.pp svneol=native#text/plain
-packages/extra/opengl/gl.pp svneol=native#text/plain
-packages/extra/opengl/glext.pp svneol=native#text/plain
-packages/extra/opengl/glu.pp svneol=native#text/plain
-packages/extra/opengl/glunits.txt svneol=native#text/plain
-packages/extra/opengl/glut.pp svneol=native#text/plain
-packages/extra/opengl/glx.pp svneol=native#text/plain
-packages/extra/opengl/readme -text
-packages/extra/opengl/tinygl.inc -text
-packages/extra/opengl/tinyglh.inc -text
 packages/extra/openssl/Makefile svneol=native#text/plain
 packages/extra/openssl/Makefile svneol=native#text/plain
 packages/extra/openssl/Makefile.fpc svneol=native#text/plain
 packages/extra/openssl/Makefile.fpc svneol=native#text/plain
 packages/extra/openssl/examples/Makefile svneol=native#text/plain
 packages/extra/openssl/examples/Makefile svneol=native#text/plain

+ 0 - 14
.gitignore

@@ -1038,20 +1038,6 @@ packages/extra/numlib/examples/fpcmade.*
 packages/extra/numlib/examples/units
 packages/extra/numlib/examples/units
 packages/extra/numlib/fpcmade.*
 packages/extra/numlib/fpcmade.*
 packages/extra/numlib/units
 packages/extra/numlib/units
-packages/extra/opengl/*.bak
-packages/extra/opengl/*.exe
-packages/extra/opengl/*.o
-packages/extra/opengl/*.ppu
-packages/extra/opengl/*.s
-packages/extra/opengl/examples/*.bak
-packages/extra/opengl/examples/*.exe
-packages/extra/opengl/examples/*.o
-packages/extra/opengl/examples/*.ppu
-packages/extra/opengl/examples/*.s
-packages/extra/opengl/examples/fpcmade.*
-packages/extra/opengl/examples/units
-packages/extra/opengl/fpcmade.*
-packages/extra/opengl/units
 packages/extra/os2units/*.bak
 packages/extra/os2units/*.bak
 packages/extra/os2units/*.exe
 packages/extra/os2units/*.exe
 packages/extra/os2units/*.o
 packages/extra/os2units/*.o

+ 0 - 2395
packages/extra/opengl/Makefile

@@ -1,2395 +0,0 @@
-#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/11/08]
-#
-default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded
-BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx
-LIMIT83fs = go32v2 os2 emx watcom
-OSNeedsComspecToRunBatch = go32v2 watcom
-FORCE:
-.PHONY: FORCE
-override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
-ifneq ($(findstring darwin,$(OSTYPE)),)
-inUnix=1 #darwin
-SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
-else
-ifeq ($(findstring ;,$(PATH)),)
-inUnix=1
-SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
-else
-SEARCHPATH:=$(subst ;, ,$(PATH))
-endif
-endif
-SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
-PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
-ifeq ($(PWD),)
-PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
-ifeq ($(PWD),)
-$(error You need the GNU utils package to use this Makefile)
-else
-PWD:=$(firstword $(PWD))
-SRCEXEEXT=
-endif
-else
-PWD:=$(firstword $(PWD))
-SRCEXEEXT=.exe
-endif
-ifndef inUnix
-ifeq ($(OS),Windows_NT)
-inWinNT=1
-else
-ifdef OS2_SHELL
-inOS2=1
-endif
-endif
-else
-ifneq ($(findstring cygdrive,$(PATH)),)
-inCygWin=1
-endif
-endif
-ifdef inUnix
-SRCBATCHEXT=.sh
-else
-ifdef inOS2
-SRCBATCHEXT=.cmd
-else
-SRCBATCHEXT=.bat
-endif
-endif
-ifdef COMSPEC
-ifneq ($(findstring $(OS_SOURCE),$(OSNeedsComspecToRunBatch)),)
-RUNBATCH=$(COMSPEC) /C
-endif
-endif
-ifdef inUnix
-PATHSEP=/
-else
-PATHSEP:=$(subst /,\,/)
-ifdef inCygWin
-PATHSEP=/
-endif
-endif
-ifdef PWD
-BASEDIR:=$(subst \,/,$(shell $(PWD)))
-ifdef inCygWin
-ifneq ($(findstring /cygdrive/,$(BASEDIR)),)
-BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR))
-BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR)))
-BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR))
-endif
-endif
-else
-BASEDIR=.
-endif
-ifdef inOS2
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO=echo
-else
-ECHO:=$(firstword $(ECHO))
-endif
-else
-ECHO:=$(firstword $(ECHO))
-endif
-endif
-export ECHO
-endif
-override DEFAULT_FPCDIR=../../..
-ifndef FPC
-ifdef PP
-FPC=$(PP)
-endif
-endif
-ifndef FPC
-FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
-ifneq ($(FPCPROG),)
-FPCPROG:=$(firstword $(FPCPROG))
-ifneq ($(CPU_TARGET),)
-FPC:=$(shell $(FPCPROG) -P$(CPU_TARGET) -PB)
-else
-FPC:=$(shell $(FPCPROG) -PB)
-endif
-ifneq ($(findstring Error,$(FPC)),)
-override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
-endif
-else
-override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
-endif
-endif
-override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
-override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
-FOUNDFPC:=$(strip $(wildcard $(FPC)))
-ifeq ($(FOUNDFPC),)
-FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))
-ifeq ($(FOUNDFPC),)
-$(error Compiler $(FPC) not found)
-endif
-endif
-ifndef FPC_COMPILERINFO
-FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO)
-endif
-ifndef FPC_VERSION
-FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO))
-endif
-export FPC FPC_VERSION FPC_COMPILERINFO
-unexport CHECKDEPEND ALLDEPENDENCIES
-ifndef CPU_TARGET
-ifdef CPU_TARGET_DEFAULT
-CPU_TARGET=$(CPU_TARGET_DEFAULT)
-endif
-endif
-ifndef OS_TARGET
-ifdef OS_TARGET_DEFAULT
-OS_TARGET=$(OS_TARGET_DEFAULT)
-endif
-endif
-ifneq ($(words $(FPC_COMPILERINFO)),5)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSO)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTO)
-endif
-ifndef CPU_SOURCE
-CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))
-endif
-ifndef CPU_TARGET
-CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO))
-endif
-ifndef OS_SOURCE
-OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO))
-endif
-ifndef OS_TARGET
-OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
-endif
-FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
-FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
-ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
-TARGETSUFFIX=$(OS_TARGET)
-SOURCESUFFIX=$(OS_SOURCE)
-else
-TARGETSUFFIX=$(FULL_TARGET)
-SOURCESUFFIX=$(FULL_SOURCE)
-endif
-ifneq ($(FULL_TARGET),$(FULL_SOURCE))
-CROSSCOMPILE=1
-endif
-ifeq ($(findstring makefile,$(MAKECMDGOALS)),)
-ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),)
-$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first)
-endif
-endif
-ifneq ($(findstring $(OS_TARGET),$(BSDs)),)
-BSDhier=1
-endif
-ifeq ($(OS_TARGET),linux)
-linuxHier=1
-endif
-export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE
-ifdef FPCDIR
-override FPCDIR:=$(subst \,/,$(FPCDIR))
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=wrong
-endif
-else
-override FPCDIR=wrong
-endif
-ifdef DEFAULT_FPCDIR
-ifeq ($(FPCDIR),wrong)
-override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR))
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=wrong
-endif
-endif
-endif
-ifeq ($(FPCDIR),wrong)
-ifdef inUnix
-override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
-endif
-else
-override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))))
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(BASEDIR)
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=c:/pp
-endif
-endif
-endif
-endif
-endif
-ifndef CROSSBINDIR
-CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX))
-endif
-ifndef BINUTILSPREFIX
-ifndef CROSSBINDIR
-ifdef CROSSCOMPILE
-BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
-endif
-endif
-endif
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX))
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
-endif
-PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
-override PACKAGE_NAME=opengl
-override PACKAGE_VERSION=2.0.0
-ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_UNITS+=gl glu glut  glx glext
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_UNITS+=gl glu glut
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_UNITS+=gl glu glut  glext
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_UNITS+=gl glu glut
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_UNITS+=gl glu glut  glx glext
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_UNITS+=gl glu glut
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_UNITS+=gl glu glut  glx glext
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_UNITS+=gl glu glut
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_UNITS+=gl glu glut
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_UNITS+=gl glu glut
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_UNITS+=gl glu glut  glx glext
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_UNITS+=gl glu glut
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_UNITS+=gl glu glut  glx glext
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_UNITS+=gl glu glut
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_UNITS+=gl glu glut
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_UNITS+=gl glu glut
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_UNITS+=gl glu glut
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_UNITS+=gl glu glut
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_UNITS+=gl glu glut
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_UNITS+=gl glu glut  glx glext
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_UNITS+=gl glu glut  glx glext
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_UNITS+=gl glu glut  glx glext
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_UNITS+=gl glu glut
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_UNITS+=gl glu glut
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_UNITS+=gl glu glut  glx glext
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_UNITS+=gl glu glut
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_UNITS+=gl glu glut
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_UNITS+=gl glu glut  glx glext
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_UNITS+=gl glu glut  glx glext
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_UNITS+=gl glu glut
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_UNITS+=gl glu glut
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_UNITS+=gl glu glut  glx glext
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_UNITS+=gl glu glut
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_UNITS+=gl glu glut
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_UNITS+=gl glu glut  glx glext
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_UNITS+=gl glu glut  glx glext
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_UNITS+=gl glu glut
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_UNITS+=gl glu glut
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_UNITS+=gl glu glut  glx glext
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_UNITS+=gl glu glut  glx glext
-endif
-ifeq ($(FULL_TARGET),x86_64-darwin)
-override TARGET_UNITS+=gl glu glut  glx glext
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_UNITS+=gl glu glut
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_UNITS+=gl glu glut
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_UNITS+=gl glu glut  glx glext
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_UNITS+=gl glu glut
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_UNITS+=gl glu glut
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_UNITS+=gl glu glut
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_UNITS+=gl glu glut
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_UNITS+=gl glu glut
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_UNITS+=gl glu glut
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_UNITS+=gl glu glut  glx glext
-endif
-ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_UNITS+=gl glu glut  glx glext
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_UNITS+=gl glu glut
-endif
-ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),x86_64-darwin)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_EXAMPLEDIRS+=examples
-endif
-override INSTALL_FPCPACKAGE=y
-ifdef REQUIRE_UNITSDIR
-override UNITSDIR+=$(REQUIRE_UNITSDIR)
-endif
-ifdef REQUIRE_PACKAGESDIR
-override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
-endif
-ifdef ZIPINSTALL
-ifneq ($(findstring $(OS_TARGET),$(UNIXs)),)
-UNIXHier=1
-endif
-else
-ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),)
-UNIXHier=1
-endif
-endif
-ifndef INSTALL_PREFIX
-ifdef PREFIX
-INSTALL_PREFIX=$(PREFIX)
-endif
-endif
-ifndef INSTALL_PREFIX
-ifdef UNIXHier
-INSTALL_PREFIX=/usr/local
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=/pp
-else
-INSTALL_BASEDIR:=/$(PACKAGE_NAME)
-endif
-endif
-endif
-export INSTALL_PREFIX
-ifdef INSTALL_FPCSUBDIR
-export INSTALL_FPCSUBDIR
-endif
-ifndef DIST_DESTDIR
-DIST_DESTDIR:=$(BASEDIR)
-endif
-export DIST_DESTDIR
-ifndef COMPILER_UNITTARGETDIR
-ifdef PACKAGEDIR_MAIN
-COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX)
-else
-COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX)
-endif
-endif
-ifndef COMPILER_TARGETDIR
-COMPILER_TARGETDIR=.
-endif
-ifndef INSTALL_BASEDIR
-ifdef UNIXHier
-ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
-else
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME)
-endif
-else
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)
-endif
-endif
-ifndef INSTALL_BINDIR
-ifdef UNIXHier
-INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-else
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-ifdef INSTALL_FPCPACKAGE
-ifdef CROSSCOMPILE
-ifdef CROSSINSTALL
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX)
-else
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
-endif
-else
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
-endif
-endif
-endif
-endif
-ifndef INSTALL_UNITDIR
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX)
-ifdef INSTALL_FPCPACKAGE
-ifdef PACKAGE_NAME
-INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
-endif
-endif
-endif
-ifndef INSTALL_LIBDIR
-ifdef UNIXHier
-INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
-else
-INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
-endif
-endif
-ifndef INSTALL_SOURCEDIR
-ifdef UNIXHier
-ifdef BSDhier
-SRCPREFIXDIR=share/src
-else
-ifdef linuxHier
-SRCPREFIXDIR=share/src
-else
-SRCPREFIXDIR=src
-endif
-endif
-ifdef INSTALL_FPCPACKAGE
-ifdef INSTALL_FPCSUBDIR
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
-else
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-endif
-else
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-ifdef INSTALL_FPCSUBDIR
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
-else
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME)
-endif
-else
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source
-endif
-endif
-endif
-ifndef INSTALL_DOCDIR
-ifdef UNIXHier
-ifdef BSDhier
-DOCPREFIXDIR=share/doc
-else
-ifdef linuxHier
-DOCPREFIXDIR=share/doc
-else
-DOCPREFIXDIR=doc
-endif
-endif
-ifdef INSTALL_FPCPACKAGE
-INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-else
-INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME)
-else
-INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc
-endif
-endif
-endif
-ifndef INSTALL_EXAMPLEDIR
-ifdef UNIXHier
-ifdef INSTALL_FPCPACKAGE
-ifdef BSDhier
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
-endif
-endif
-else
-ifdef BSDhier
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-endif
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples
-endif
-endif
-endif
-ifndef INSTALL_DATADIR
-INSTALL_DATADIR=$(INSTALL_BASEDIR)
-endif
-ifndef INSTALL_SHAREDDIR
-INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib
-endif
-ifdef CROSSCOMPILE
-ifndef CROSSBINDIR
-CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX))
-ifeq ($(CROSSBINDIR),)
-CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE))
-endif
-endif
-else
-CROSSBINDIR=
-endif
-ifeq ($(OS_SOURCE),linux)
-ifndef GCCLIBDIR
-ifeq ($(CPU_TARGET),i386)
-ifneq ($(findstring x86_64,$(shell uname -a)),)
-ifeq ($(BINUTILSPREFIX),)
-GCCLIBDIR:=$(shell dirname `gcc -m32 -print-libgcc-file-name`)
-endif
-endif
-endif
-ifeq ($(CPU_TARGET),powerpc64)
-ifeq ($(BINUTILSPREFIX),)
-GCCLIBDIR:=$(shell dirname `gcc -m64 -print-libgcc-file-name`)
-endif
-endif
-endif
-ifndef GCCLIBDIR
-CROSSGCC=$(strip $(wildcard $(addsuffix /$(BINUTILSPREFIX)gcc$(SRCEXEEXT),$(SEARCHPATH))))
-ifneq ($(CROSSGCC),)
-GCCLIBDIR:=$(shell dirname `$(CROSSGCC) -print-libgcc-file-name`)
-endif
-endif
-ifndef OTHERLIBDIR
-OTHERLIBDIR:=$(shell grep -v "^\#" /etc/ld.so.conf | awk '{ ORS=" "; print $1 }')
-endif
-endif
-ifdef inUnix
-ifeq ($(OS_SOURCE),netbsd)
-OTHERLIBDIR+=/usr/pkg/lib
-endif
-export GCCLIBDIR OTHERLIB
-endif
-BATCHEXT=.bat
-LOADEREXT=.as
-EXEEXT=.exe
-PPLEXT=.ppl
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.so
-SHAREDLIBPREFIX=libfp
-STATICLIBPREFIX=libp
-IMPORTLIBPREFIX=libimp
-RSTEXT=.rst
-ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),go32v1)
-STATICLIBPREFIX=
-SHORTSUFFIX=v1
-endif
-ifeq ($(OS_TARGET),go32v2)
-STATICLIBPREFIX=
-SHORTSUFFIX=dos
-endif
-ifeq ($(OS_TARGET),watcom)
-STATICLIBPREFIX=
-OEXT=.obj
-ASMEXT=.asm
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=wat
-endif
-ifeq ($(OS_TARGET),linux)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=lnx
-endif
-ifeq ($(OS_TARGET),freebsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=fbs
-endif
-ifeq ($(OS_TARGET),netbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=nbs
-endif
-ifeq ($(OS_TARGET),openbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=obs
-endif
-ifeq ($(OS_TARGET),win32)
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-BATCHEXT=.cmd
-AOUTEXT=.out
-STATICLIBPREFIX=
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=os2
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),emx)
-BATCHEXT=.cmd
-AOUTEXT=.out
-STATICLIBPREFIX=
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=emx
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),amiga)
-EXEEXT=
-SHAREDLIBEXT=.library
-SHORTSUFFIX=amg
-endif
-ifeq ($(OS_TARGET),morphos)
-EXEEXT=
-SHAREDLIBEXT=.library
-SHORTSUFFIX=mos
-endif
-ifeq ($(OS_TARGET),atari)
-EXEEXT=.ttp
-SHORTSUFFIX=ata
-endif
-ifeq ($(OS_TARGET),beos)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=be
-endif
-ifeq ($(OS_TARGET),solaris)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=sun
-endif
-ifeq ($(OS_TARGET),qnx)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=qnx
-endif
-ifeq ($(OS_TARGET),netware)
-EXEEXT=.nlm
-STATICLIBPREFIX=
-SHORTSUFFIX=nw
-endif
-ifeq ($(OS_TARGET),netwlibc)
-EXEEXT=.nlm
-STATICLIBPREFIX=
-SHORTSUFFIX=nwl
-endif
-ifeq ($(OS_TARGET),macos)
-BATCHEXT=
-EXEEXT=
-DEBUGSYMEXT=.xcoff
-SHORTSUFFIX=mac
-endif
-ifeq ($(OS_TARGET),darwin)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=dwn
-endif
-ifeq ($(OS_TARGET),gba)
-EXEEXT=.gba
-SHAREDLIBEXT=.so
-SHORTSUFFIX=gba
-endif
-ifeq ($(OS_TARGET),symbian)
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=symbian
-endif
-else
-ifeq ($(OS_TARGET),go32v1)
-PPUEXT=.pp1
-OEXT=.o1
-ASMEXT=.s1
-SMARTEXT=.sl1
-STATICLIBEXT=.a1
-SHAREDLIBEXT=.so1
-STATICLIBPREFIX=
-SHORTSUFFIX=v1
-endif
-ifeq ($(OS_TARGET),go32v2)
-STATICLIBPREFIX=
-SHORTSUFFIX=dos
-endif
-ifeq ($(OS_TARGET),watcom)
-STATICLIBPREFIX=
-SHORTSUFFIX=wat
-endif
-ifeq ($(OS_TARGET),linux)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=lnx
-endif
-ifeq ($(OS_TARGET),freebsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=fbs
-endif
-ifeq ($(OS_TARGET),netbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=nbs
-endif
-ifeq ($(OS_TARGET),openbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=obs
-endif
-ifeq ($(OS_TARGET),win32)
-PPUEXT=.ppw
-OEXT=.ow
-ASMEXT=.sw
-SMARTEXT=.slw
-STATICLIBEXT=.aw
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-BATCHEXT=.cmd
-PPUEXT=.ppo
-ASMEXT=.so2
-OEXT=.oo2
-AOUTEXT=.out
-SMARTEXT=.sl2
-STATICLIBPREFIX=
-STATICLIBEXT=.ao2
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=os2
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),amiga)
-EXEEXT=
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.library
-SHORTSUFFIX=amg
-endif
-ifeq ($(OS_TARGET),atari)
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=.ttp
-SHORTSUFFIX=ata
-endif
-ifeq ($(OS_TARGET),beos)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=be
-endif
-ifeq ($(OS_TARGET),solaris)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=sun
-endif
-ifeq ($(OS_TARGET),qnx)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=qnx
-endif
-ifeq ($(OS_TARGET),netware)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nw
-endif
-ifeq ($(OS_TARGET),netwlibc)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nwl
-endif
-ifeq ($(OS_TARGET),macos)
-BATCHEXT=
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-DEBUGSYMEXT=.xcoff
-SHORTSUFFIX=mac
-endif
-endif
-ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
-FPCMADE=fpcmade.$(SHORTSUFFIX)
-ZIPSUFFIX=$(SHORTSUFFIX)
-ZIPCROSSPREFIX=
-ZIPSOURCESUFFIX=src
-ZIPEXAMPLESUFFIX=exm
-else
-FPCMADE=fpcmade.$(TARGETSUFFIX)
-ZIPSOURCESUFFIX=.source
-ZIPEXAMPLESUFFIX=.examples
-ifdef CROSSCOMPILE
-ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
-else
-ZIPSUFFIX=.$(TARGETSUFFIX)
-ZIPCROSSPREFIX=
-endif
-endif
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO= __missing_command_ECHO
-else
-ECHO:=$(firstword $(ECHO))
-endif
-else
-ECHO:=$(firstword $(ECHO))
-endif
-endif
-export ECHO
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE= __missing_command_DATE
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-ifndef GINSTALL
-GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(GINSTALL),)
-GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(GINSTALL),)
-GINSTALL= __missing_command_GINSTALL
-else
-GINSTALL:=$(firstword $(GINSTALL))
-endif
-else
-GINSTALL:=$(firstword $(GINSTALL))
-endif
-endif
-export GINSTALL
-ifndef CPPROG
-CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(CPPROG),)
-CPPROG= __missing_command_CPPROG
-else
-CPPROG:=$(firstword $(CPPROG))
-endif
-endif
-export CPPROG
-ifndef RMPROG
-RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(RMPROG),)
-RMPROG= __missing_command_RMPROG
-else
-RMPROG:=$(firstword $(RMPROG))
-endif
-endif
-export RMPROG
-ifndef MVPROG
-MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MVPROG),)
-MVPROG= __missing_command_MVPROG
-else
-MVPROG:=$(firstword $(MVPROG))
-endif
-endif
-export MVPROG
-ifndef MKDIRPROG
-MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MKDIRPROG),)
-MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MKDIRPROG),)
-MKDIRPROG= __missing_command_MKDIRPROG
-else
-MKDIRPROG:=$(firstword $(MKDIRPROG))
-endif
-else
-MKDIRPROG:=$(firstword $(MKDIRPROG))
-endif
-endif
-export MKDIRPROG
-ifndef ECHOREDIR
-ifndef inUnix
-ECHOREDIR=echo
-else
-ECHOREDIR=$(ECHO)
-endif
-endif
-ifndef COPY
-COPY:=$(CPPROG) -fp
-endif
-ifndef COPYTREE
-COPYTREE:=$(CPPROG) -Rfp
-endif
-ifndef MKDIRTREE
-MKDIRTREE:=$(MKDIRPROG) -p
-endif
-ifndef MOVE
-MOVE:=$(MVPROG) -f
-endif
-ifndef DEL
-DEL:=$(RMPROG) -f
-endif
-ifndef DELTREE
-DELTREE:=$(RMPROG) -rf
-endif
-ifndef INSTALL
-ifdef inUnix
-INSTALL:=$(GINSTALL) -c -m 644
-else
-INSTALL:=$(COPY)
-endif
-endif
-ifndef INSTALLEXE
-ifdef inUnix
-INSTALLEXE:=$(GINSTALL) -c -m 755
-else
-INSTALLEXE:=$(COPY)
-endif
-endif
-ifndef MKDIR
-MKDIR:=$(GINSTALL) -m 755 -d
-endif
-export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
-ifndef PPUMOVE
-PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(PPUMOVE),)
-PPUMOVE= __missing_command_PPUMOVE
-else
-PPUMOVE:=$(firstword $(PPUMOVE))
-endif
-endif
-export PPUMOVE
-ifndef FPCMAKE
-FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(FPCMAKE),)
-FPCMAKE= __missing_command_FPCMAKE
-else
-FPCMAKE:=$(firstword $(FPCMAKE))
-endif
-endif
-export FPCMAKE
-ifndef ZIPPROG
-ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ZIPPROG),)
-ZIPPROG= __missing_command_ZIPPROG
-else
-ZIPPROG:=$(firstword $(ZIPPROG))
-endif
-endif
-export ZIPPROG
-ifndef TARPROG
-TARPROG:=$(strip $(wildcard $(addsuffix /gtar$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(TARPROG),)
-TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(TARPROG),)
-TARPROG= __missing_command_TARPROG
-else
-TARPROG:=$(firstword $(TARPROG))
-endif
-else
-TARPROG:=$(firstword $(TARPROG))
-endif
-endif
-export TARPROG
-ASNAME=$(BINUTILSPREFIX)as
-LDNAME=$(BINUTILSPREFIX)ld
-ARNAME=$(BINUTILSPREFIX)ar
-RCNAME=$(BINUTILSPREFIX)rc
-ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),win32)
-ifeq ($(CROSSBINDIR),)
-ASNAME=asw
-LDNAME=ldw
-ARNAME=arw
-endif
-endif
-endif
-ifndef ASPROG
-ifdef CROSSBINDIR
-ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
-else
-ASPROG=$(ASNAME)
-endif
-endif
-ifndef LDPROG
-ifdef CROSSBINDIR
-LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT)
-else
-LDPROG=$(LDNAME)
-endif
-endif
-ifndef RCPROG
-ifdef CROSSBINDIR
-RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT)
-else
-RCPROG=$(RCNAME)
-endif
-endif
-ifndef ARPROG
-ifdef CROSSBINDIR
-ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT)
-else
-ARPROG=$(ARNAME)
-endif
-endif
-AS=$(ASPROG)
-LD=$(LDPROG)
-RC=$(RCPROG)
-AR=$(ARPROG)
-PPAS=ppas$(SRCBATCHEXT)
-ifdef inUnix
-LDCONFIG=ldconfig
-else
-LDCONFIG=
-endif
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-ifndef UPXPROG
-ifeq ($(OS_TARGET),go32v2)
-UPXPROG:=1
-endif
-ifeq ($(OS_TARGET),win32)
-UPXPROG:=1
-endif
-ifdef UPXPROG
-UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(UPXPROG),)
-UPXPROG=
-else
-UPXPROG:=$(firstword $(UPXPROG))
-endif
-else
-UPXPROG=
-endif
-endif
-export UPXPROG
-ZIPOPT=-9
-ZIPEXT=.zip
-ifeq ($(USETAR),bz2)
-TAROPT=vj
-TAREXT=.tar.bz2
-else
-TAROPT=vz
-TAREXT=.tar.gz
-endif
-override REQUIRE_PACKAGES=rtl 
-ifeq ($(FULL_TARGET),i386-linux)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_X11=1
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_X11=1
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_X11=1
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_X11=1
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_X11=1
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_X11=1
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_X11=1
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_X11=1
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_X11=1
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_X11=1
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_X11=1
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_X11=1
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_X11=1
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_X11=1
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_X11=1
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_X11=1
-endif
-ifeq ($(FULL_TARGET),x86_64-darwin)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_X11=1
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_X11=1
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_X11=1
-endif
-ifeq ($(FULL_TARGET),powerpc64-darwin)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_X11=1
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-REQUIRE_PACKAGES_RTL=1
-endif
-ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)
-else
-UNITDIR_RTL=$(PACKAGEDIR_RTL)
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_RTL)/$(FPCMADE):
-	$(MAKE) -C $(PACKAGEDIR_RTL) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(FPCMADE)
-endif
-else
-PACKAGEDIR_RTL=
-UNITDIR_RTL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /rtl/Package.fpc,$(UNITSDIR)))))
-ifneq ($(UNITDIR_RTL),)
-UNITDIR_RTL:=$(firstword $(UNITDIR_RTL))
-else
-UNITDIR_RTL=
-endif
-endif
-ifdef UNITDIR_RTL
-override COMPILER_UNITDIR+=$(UNITDIR_RTL)
-endif
-endif
-ifdef REQUIRE_PACKAGES_X11
-PACKAGEDIR_X11:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /x11/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_X11),)
-ifneq ($(wildcard $(PACKAGEDIR_X11)/units/$(TARGETSUFFIX)),)
-UNITDIR_X11=$(PACKAGEDIR_X11)/units/$(TARGETSUFFIX)
-else
-UNITDIR_X11=$(PACKAGEDIR_X11)
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_X11)/$(FPCMADE):
-	$(MAKE) -C $(PACKAGEDIR_X11) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_X11)/$(FPCMADE)
-endif
-else
-PACKAGEDIR_X11=
-UNITDIR_X11:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /x11/Package.fpc,$(UNITSDIR)))))
-ifneq ($(UNITDIR_X11),)
-UNITDIR_X11:=$(firstword $(UNITDIR_X11))
-else
-UNITDIR_X11=
-endif
-endif
-ifdef UNITDIR_X11
-override COMPILER_UNITDIR+=$(UNITDIR_X11)
-endif
-endif
-ifndef NOCPUDEF
-override FPCOPTDEF=$(CPU_TARGET)
-endif
-ifneq ($(OS_TARGET),$(OS_SOURCE))
-override FPCOPT+=-T$(OS_TARGET)
-endif
-ifneq ($(CPU_TARGET),$(CPU_SOURCE))
-override FPCOPT+=-P$(CPU_TARGET)
-endif
-ifeq ($(OS_SOURCE),openbsd)
-override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
-endif
-ifndef CROSSBOOTSTRAP
-ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-XP$(BINUTILSPREFIX)
-endif
-ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-Xr$(RLINKPATH)
-endif
-endif
-ifdef UNITDIR
-override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
-endif
-ifdef LIBDIR
-override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
-endif
-ifdef OBJDIR
-override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
-endif
-ifdef INCDIR
-override FPCOPT+=$(addprefix -Fi,$(INCDIR))
-endif
-ifdef LINKSMART
-override FPCOPT+=-XX
-endif
-ifdef CREATESMART
-override FPCOPT+=-CX
-endif
-ifdef DEBUG
-override FPCOPT+=-gl
-override FPCOPTDEF+=DEBUG
-endif
-ifdef RELEASE
-ifneq ($(findstring 2.0.,$(FPC_VERSION)),)
-ifeq ($(CPU_TARGET),i386)
-FPCCPUOPT:=-OG2p3
-endif
-ifeq ($(CPU_TARGET),powerpc)
-FPCCPUOPT:=-O1r
-endif
-else
-FPCCPUOPT:=-O2
-endif
-override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n
-override FPCOPTDEF+=RELEASE
-endif
-ifdef STRIP
-override FPCOPT+=-Xs
-endif
-ifdef OPTIMIZE
-override FPCOPT+=-O2
-endif
-ifdef VERBOSE
-override FPCOPT+=-vwni
-endif
-ifdef COMPILER_OPTIONS
-override FPCOPT+=$(COMPILER_OPTIONS)
-endif
-ifdef COMPILER_UNITDIR
-override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR))
-endif
-ifdef COMPILER_LIBRARYDIR
-override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR))
-endif
-ifdef COMPILER_OBJECTDIR
-override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR))
-endif
-ifdef COMPILER_INCLUDEDIR
-override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR))
-endif
-ifdef CROSSBINDIR
-override FPCOPT+=-FD$(CROSSBINDIR)
-endif
-ifdef COMPILER_TARGETDIR
-override FPCOPT+=-FE$(COMPILER_TARGETDIR)
-ifeq ($(COMPILER_TARGETDIR),.)
-override TARGETDIRPREFIX=
-else
-override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/
-endif
-endif
-ifdef COMPILER_UNITTARGETDIR
-override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR)
-ifeq ($(COMPILER_UNITTARGETDIR),.)
-override UNITTARGETDIRPREFIX=
-else
-override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/
-endif
-else
-ifdef COMPILER_TARGETDIR
-override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
-override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
-endif
-endif
-ifdef CREATESHARED
-override FPCOPT+=-Cg
-ifeq ($(CPU_TARGET),i386)
-override FPCOPT+=-Aas
-endif
-endif
-ifeq ($(findstring 2.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),linux)
-ifeq ($(CPU_TARGET),x86_64)
-override FPCOPT+=-Cg
-endif
-endif
-endif
-ifdef LINKSHARED
-endif
-ifdef GCCLIBDIR
-override FPCOPT+=-Fl$(GCCLIBDIR)
-endif
-ifdef OTHERLIBDIR
-override FPCOPT+=$(addprefix -Fl,$(OTHERLIBDIR))
-endif
-ifdef OPT
-override FPCOPT+=$(OPT)
-endif
-ifdef FPCOPTDEF
-override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
-endif
-ifdef CFGFILE
-override FPCOPT+=@$(CFGFILE)
-endif
-ifdef USEENV
-override FPCEXTCMD:=$(FPCOPT)
-override FPCOPT:=!FPCEXTCMD
-export FPCEXTCMD
-endif
-override AFULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
-override AFULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
-ifneq ($(AFULL_TARGET),$(AFULL_SOURCE))
-override ACROSSCOMPILE=1
-endif
-ifdef ACROSSCOMPILE
-override FPCOPT+=$(CROSSOPT)
-endif
-override COMPILER:=$(FPC) $(FPCOPT)
-ifeq (,$(findstring -s ,$(COMPILER)))
-EXECPPAS=
-else
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
-ifdef RUNBATCH
-EXECPPAS:=@$(RUNBATCH) $(PPAS)
-else
-EXECPPAS:=@$(PPAS)
-endif
-endif
-endif
-.PHONY: fpc_units
-ifneq ($(TARGET_UNITS),)
-override ALLTARGET+=fpc_units
-override UNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_UNITS))
-override IMPLICITUNITPPUFILES=$(addsuffix $(PPUEXT),$(TARGET_IMPLICITUNITS))
-override INSTALLPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
-override CLEANPPUFILES+=$(UNITPPUFILES) $(IMPLICITUNITPPUFILES)
-endif
-fpc_units: $(COMPILER_UNITTARGETDIR) $(UNITPPUFILES)
-ifdef TARGET_RSTS
-override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
-override CLEANRSTFILES+=$(RSTFILES)
-endif
-.PHONY: fpc_examples
-ifneq ($(TARGET_EXAMPLES),)
-HASEXAMPLES=1
-override EXAMPLESOURCEFILES:=$(wildcard $(addsuffix .pp,$(TARGET_EXAMPLES)) $(addsuffix .pas,$(TARGET_EXAMPLES)) $(addsuffix .lpr,$(TARGET_EXAMPLES)) $(addsuffix .dpr,$(TARGET_EXAMPLES)))
-override EXAMPLEFILES:=$(addsuffix $(EXEEXT),$(TARGET_EXAMPLES))
-override EXAMPLEOFILES:=$(addsuffix $(OEXT),$(TARGET_EXAMPLES)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_EXAMPLES))) $(addprefix $(IMPORTLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_EXAMPLES)))
-override CLEANEXEFILES+=$(EXAMPLEFILES) $(EXAMPLEOFILES)
-ifeq ($(OS_TARGET),os2)
-override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_EXAMPLES))
-endif
-ifeq ($(OS_TARGET),emx)
-override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_EXAMPLES))
-endif
-endif
-ifneq ($(TARGET_EXAMPLEDIRS),)
-HASEXAMPLES=1
-endif
-fpc_examples: all $(EXAMPLEFILES) $(addsuffix _all,$(TARGET_EXAMPLEDIRS))
-.PHONY: fpc_all fpc_smart fpc_debug fpc_release fpc_shared
-$(FPCMADE): $(ALLDEPENDENCIES) $(ALLTARGET)
-	@$(ECHOREDIR) Compiled > $(FPCMADE)
-fpc_all: $(FPCMADE)
-fpc_smart:
-	$(MAKE) all LINKSMART=1 CREATESMART=1
-fpc_debug:
-	$(MAKE) all DEBUG=1
-fpc_release:
-	$(MAKE) all RELEASE=1
-.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
-$(COMPILER_UNITTARGETDIR):
-	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
-$(COMPILER_TARGETDIR):
-	$(MKDIRTREE) $(COMPILER_TARGETDIR)
-%$(PPUEXT): %.pp
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(PPUEXT): %.pas
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.pp
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.pas
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.lpr
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.dpr
-	$(COMPILER) $<
-	$(EXECPPAS)
-%.res: %.rc
-	windres -i $< -o $@
-vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.inc $(COMPILER_INCLUDEDIR)
-vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
-vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
-.PHONY: fpc_shared
-override INSTALLTARGET+=fpc_shared_install
-ifndef SHARED_LIBVERSION
-SHARED_LIBVERSION=$(FPC_VERSION)
-endif
-ifndef SHARED_LIBNAME
-SHARED_LIBNAME=$(PACKAGE_NAME)
-endif
-ifndef SHARED_FULLNAME
-SHARED_FULLNAME=$(SHAREDLIBPREFIX)$(SHARED_LIBNAME)-$(SHARED_LIBVERSION)$(SHAREDLIBEXT)
-endif
-ifndef SHARED_LIBUNITS
-SHARED_LIBUNITS:=$(TARGET_UNITS) $(TARGET_IMPLICITUNITS)
-override SHARED_LIBUNITS:=$(filter-out $(INSTALL_BUILDUNIT),$(SHARED_LIBUNITS))
-endif
-fpc_shared:
-ifdef HASSHAREDLIB
-	$(MAKE) all CREATESHARED=1 LINKSHARED=1 CREATESMART=1
-ifneq ($(SHARED_BUILD),n)
-	$(PPUMOVE) -q $(SHARED_LIBUNITS) -i$(COMPILER_UNITTARGETDIR) -o$(SHARED_FULLNAME) -d$(COMPILER_UNITTARGETDIR)
-endif
-else
-	@$(ECHO) Shared Libraries not supported
-endif
-fpc_shared_install:
-ifneq ($(SHARED_BUILD),n)
-ifneq ($(SHARED_LIBUNITS),)
-ifneq ($(wildcard $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME)),)
-	$(INSTALL) $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME) $(INSTALL_SHAREDDIR)
-endif
-endif
-endif
-.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
-ifdef INSTALL_UNITS
-override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
-endif
-ifdef INSTALL_BUILDUNIT
-override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES))
-endif
-ifdef INSTALLPPUFILES
-override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
-ifneq ($(UNITTARGETDIRPREFIX),)
-override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES)))
-override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES))))
-endif
-override INSTALL_CREATEPACKAGEFPC=1
-endif
-ifdef INSTALLEXEFILES
-ifneq ($(TARGETDIRPREFIX),)
-override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES)))
-endif
-endif
-fpc_install: all $(INSTALLTARGET)
-ifdef INSTALLEXEFILES
-	$(MKDIR) $(INSTALL_BINDIR)
-ifdef UPXPROG
-	-$(UPXPROG) $(INSTALLEXEFILES)
-endif
-	$(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
-endif
-ifdef INSTALL_CREATEPACKAGEFPC
-ifdef FPCMAKE
-ifdef PACKAGE_VERSION
-ifneq ($(wildcard Makefile.fpc),)
-	$(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc
-	$(MKDIR) $(INSTALL_UNITDIR)
-	$(INSTALL) Package.fpc $(INSTALL_UNITDIR)
-endif
-endif
-endif
-endif
-ifdef INSTALLPPUFILES
-	$(MKDIR) $(INSTALL_UNITDIR)
-	$(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR)
-ifneq ($(INSTALLPPULINKFILES),)
-	$(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR)
-endif
-ifneq ($(wildcard $(LIB_FULLNAME)),)
-	$(MKDIR) $(INSTALL_LIBDIR)
-	$(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR)
-ifdef inUnix
-	ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME)
-endif
-endif
-endif
-ifdef INSTALL_FILES
-	$(MKDIR) $(INSTALL_DATADIR)
-	$(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR)
-endif
-fpc_sourceinstall: distclean
-	$(MKDIR) $(INSTALL_SOURCEDIR)
-	$(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR)
-fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS))
-ifdef HASEXAMPLES
-	$(MKDIR) $(INSTALL_EXAMPLEDIR)
-endif
-ifdef EXAMPLESOURCEFILES
-	$(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
-endif
-ifdef TARGET_EXAMPLEDIRS
-	$(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
-endif
-.PHONY: fpc_distinstall
-fpc_distinstall: install exampleinstall
-.PHONY: fpc_zipinstall fpc_zipsourceinstall fpc_zipexampleinstall
-ifndef PACKDIR
-ifndef inUnix
-PACKDIR=$(BASEDIR)/../fpc-pack
-else
-PACKDIR=/tmp/fpc-pack
-endif
-endif
-ifndef ZIPNAME
-ifdef DIST_ZIPNAME
-ZIPNAME=$(DIST_ZIPNAME)
-else
-ZIPNAME=$(PACKAGE_NAME)
-endif
-endif
-ifndef FULLZIPNAME
-FULLZIPNAME=$(ZIPCROSSPREFIX)$(ZIPPREFIX)$(ZIPNAME)$(ZIPSUFFIX)
-endif
-ifndef ZIPTARGET
-ifdef DIST_ZIPTARGET
-ZIPTARGET=DIST_ZIPTARGET
-else
-ZIPTARGET=install
-endif
-endif
-ifndef USEZIP
-ifdef inUnix
-USETAR=1
-endif
-endif
-ifndef inUnix
-USEZIPWRAPPER=1
-endif
-ifdef USEZIPWRAPPER
-ZIPPATHSEP=$(PATHSEP)
-ZIPWRAPPER=$(subst /,$(PATHSEP),$(DIST_DESTDIR)/fpczip$(SRCBATCHEXT))
-else
-ZIPPATHSEP=/
-endif
-ZIPCMD_CDPACK:=cd $(subst /,$(ZIPPATHSEP),$(PACKDIR))
-ZIPCMD_CDBASE:=cd $(subst /,$(ZIPPATHSEP),$(BASEDIR))
-ifdef USETAR
-ZIPDESTFILE:=$(DIST_DESTDIR)/$(FULLZIPNAME)$(TAREXT)
-ZIPCMD_ZIP:=$(TARPROG) cf$(TAROPT) $(ZIPDESTFILE) *
-else
-ZIPDESTFILE:=$(DIST_DESTDIR)/$(FULLZIPNAME)$(ZIPEXT)
-ZIPCMD_ZIP:=$(subst /,$(ZIPPATHSEP),$(ZIPPROG)) -Dr $(ZIPOPT) $(ZIPDESTFILE) *
-endif
-fpc_zipinstall:
-	$(MAKE) $(ZIPTARGET) INSTALL_PREFIX=$(PACKDIR) ZIPINSTALL=1
-	$(MKDIR) $(DIST_DESTDIR)
-	$(DEL) $(ZIPDESTFILE)
-ifdef USEZIPWRAPPER
-ifneq ($(ECHOREDIR),echo)
-	$(ECHOREDIR) -e "$(subst \,\\,$(ZIPCMD_CDPACK))" > $(ZIPWRAPPER)
-	$(ECHOREDIR) -e "$(subst \,\\,$(ZIPCMD_ZIP))" >> $(ZIPWRAPPER)
-	$(ECHOREDIR) -e "$(subst \,\\,$(ZIPCMD_CDBASE))" >> $(ZIPWRAPPER)
-else
-	echo $(ZIPCMD_CDPACK) > $(ZIPWRAPPER)
-	echo $(ZIPCMD_ZIP) >> $(ZIPWRAPPER)
-	echo $(ZIPCMD_CDBASE) >> $(ZIPWRAPPER)
-endif
-ifdef inUnix
-	/bin/sh $(ZIPWRAPPER)
-else
-ifdef RUNBATCH
-	$(RUNBATCH) (ZIPWRAPPER)
-else
-	$(ZIPWRAPPER)
-endif
-endif
-	$(DEL) $(ZIPWRAPPER)
-else
-	$(ZIPCMD_CDPACK) ; $(ZIPCMD_ZIP) ; $(ZIPCMD_CDBASE)
-endif
-	$(DELTREE) $(PACKDIR)
-fpc_zipsourceinstall:
-	$(MAKE) fpc_zipinstall ZIPTARGET=sourceinstall ZIPSUFFIX=$(ZIPSOURCESUFFIX)
-fpc_zipexampleinstall:
-ifdef HASEXAMPLES
-	$(MAKE) fpc_zipinstall ZIPTARGET=exampleinstall ZIPSUFFIX=$(ZIPEXAMPLESUFFIX)
-endif
-fpc_zipdistinstall:
-	$(MAKE) fpc_zipinstall ZIPTARGET=distinstall
-.PHONY: fpc_clean fpc_cleanall fpc_distclean
-ifdef EXEFILES
-override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
-endif
-ifdef CLEAN_UNITS
-override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
-endif
-ifdef CLEANPPUFILES
-override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
-ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
-endif
-override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
-override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
-endif
-fpc_clean: $(CLEANTARGET)
-ifdef CLEANEXEFILES
-	-$(DEL) $(CLEANEXEFILES)
-endif
-ifdef CLEANPPUFILES
-	-$(DEL) $(CLEANPPUFILES)
-endif
-ifneq ($(CLEANPPULINKFILES),)
-	-$(DEL) $(CLEANPPULINKFILES)
-endif
-ifdef CLEANRSTFILES
-	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
-endif
-ifdef CLEAN_FILES
-	-$(DEL) $(CLEAN_FILES)
-endif
-ifdef LIB_NAME
-	-$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
-endif
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_cleanall: $(CLEANTARGET)
-ifdef CLEANEXEFILES
-	-$(DEL) $(CLEANEXEFILES)
-endif
-ifdef COMPILER_UNITTARGETDIR
-ifdef CLEANPPUFILES
-	-$(DEL) $(CLEANPPUFILES)
-endif
-ifneq ($(CLEANPPULINKFILES),)
-	-$(DEL) $(CLEANPPULINKFILES)
-endif
-ifdef CLEANRSTFILES
-	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
-endif
-endif
-	-$(DELTREE) units
-	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
-ifneq ($(PPUEXT),.ppu)
-	-$(DEL) *.o *.ppu *.a
-endif
-	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-	-$(DEL) *_ppas$(BATCHEXT)
-ifdef AOUTEXT
-	-$(DEL) *$(AOUTEXT)
-endif
-ifdef DEBUGSYMEXT
-	-$(DEL) *$(DEBUGSYMEXT)
-endif
-fpc_distclean: cleanall
-.PHONY: fpc_baseinfo
-override INFORULES+=fpc_baseinfo
-fpc_baseinfo:
-	@$(ECHO)
-	@$(ECHO)  == Package info ==
-	@$(ECHO)  Package Name..... $(PACKAGE_NAME)
-	@$(ECHO)  Package Version.. $(PACKAGE_VERSION)
-	@$(ECHO)
-	@$(ECHO)  == Configuration info ==
-	@$(ECHO)
-	@$(ECHO)  FPC.......... $(FPC)
-	@$(ECHO)  FPC Version.. $(FPC_VERSION)
-	@$(ECHO)  Source CPU... $(CPU_SOURCE)
-	@$(ECHO)  Target CPU... $(CPU_TARGET)
-	@$(ECHO)  Source OS.... $(OS_SOURCE)
-	@$(ECHO)  Target OS.... $(OS_TARGET)
-	@$(ECHO)  Full Source.. $(FULL_SOURCE)
-	@$(ECHO)  Full Target.. $(FULL_TARGET)
-	@$(ECHO)  SourceSuffix. $(SOURCESUFFIX)
-	@$(ECHO)  TargetSuffix. $(TARGETSUFFIX)
-	@$(ECHO)
-	@$(ECHO)  == Directory info ==
-	@$(ECHO)
-	@$(ECHO)  Required pkgs... $(REQUIRE_PACKAGES)
-	@$(ECHO)
-	@$(ECHO)  Basedir......... $(BASEDIR)
-	@$(ECHO)  FPCDir.......... $(FPCDIR)
-	@$(ECHO)  CrossBinDir..... $(CROSSBINDIR)
-	@$(ECHO)  UnitsDir........ $(UNITSDIR)
-	@$(ECHO)  PackagesDir..... $(PACKAGESDIR)
-	@$(ECHO)
-	@$(ECHO)  GCC library..... $(GCCLIBDIR)
-	@$(ECHO)  Other library... $(OTHERLIBDIR)
-	@$(ECHO)
-	@$(ECHO)  == Tools info ==
-	@$(ECHO)
-	@$(ECHO)  As........ $(AS)
-	@$(ECHO)  Ld........ $(LD)
-	@$(ECHO)  Ar........ $(AR)
-	@$(ECHO)  Rc........ $(RC)
-	@$(ECHO)
-	@$(ECHO)  Mv........ $(MVPROG)
-	@$(ECHO)  Cp........ $(CPPROG)
-	@$(ECHO)  Rm........ $(RMPROG)
-	@$(ECHO)  GInstall.. $(GINSTALL)
-	@$(ECHO)  Echo...... $(ECHO)
-	@$(ECHO)  Shell..... $(SHELL)
-	@$(ECHO)  Date...... $(DATE)
-	@$(ECHO)  FPCMake... $(FPCMAKE)
-	@$(ECHO)  PPUMove... $(PPUMOVE)
-	@$(ECHO)  Upx....... $(UPXPROG)
-	@$(ECHO)  Zip....... $(ZIPPROG)
-	@$(ECHO)
-	@$(ECHO)  == Object info ==
-	@$(ECHO)
-	@$(ECHO)  Target Loaders........ $(TARGET_LOADERS)
-	@$(ECHO)  Target Units.......... $(TARGET_UNITS)
-	@$(ECHO)  Target Implicit Units. $(TARGET_IMPLICITUNITS)
-	@$(ECHO)  Target Programs....... $(TARGET_PROGRAMS)
-	@$(ECHO)  Target Dirs........... $(TARGET_DIRS)
-	@$(ECHO)  Target Examples....... $(TARGET_EXAMPLES)
-	@$(ECHO)  Target ExampleDirs.... $(TARGET_EXAMPLEDIRS)
-	@$(ECHO)
-	@$(ECHO)  Clean Units......... $(CLEAN_UNITS)
-	@$(ECHO)  Clean Files......... $(CLEAN_FILES)
-	@$(ECHO)
-	@$(ECHO)  Install Units....... $(INSTALL_UNITS)
-	@$(ECHO)  Install Files....... $(INSTALL_FILES)
-	@$(ECHO)
-	@$(ECHO)  == Install info ==
-	@$(ECHO)
-	@$(ECHO)  DateStr.............. $(DATESTR)
-	@$(ECHO)  ZipName.............. $(ZIPNAME)
-	@$(ECHO)  ZipPrefix............ $(ZIPPREFIX)
-	@$(ECHO)  ZipCrossPrefix....... $(ZIPCROSSPREFIX)
-	@$(ECHO)  ZipSuffix............ $(ZIPSUFFIX)
-	@$(ECHO)  FullZipName.......... $(FULLZIPNAME)
-	@$(ECHO)  Install FPC Package.. $(INSTALL_FPCPACKAGE)
-	@$(ECHO)
-	@$(ECHO)  Install base dir..... $(INSTALL_BASEDIR)
-	@$(ECHO)  Install binary dir... $(INSTALL_BINDIR)
-	@$(ECHO)  Install library dir.. $(INSTALL_LIBDIR)
-	@$(ECHO)  Install units dir.... $(INSTALL_UNITDIR)
-	@$(ECHO)  Install source dir... $(INSTALL_SOURCEDIR)
-	@$(ECHO)  Install doc dir...... $(INSTALL_DOCDIR)
-	@$(ECHO)  Install example dir.. $(INSTALL_EXAMPLEDIR)
-	@$(ECHO)  Install data dir..... $(INSTALL_DATADIR)
-	@$(ECHO)
-	@$(ECHO)  Dist destination dir. $(DIST_DESTDIR)
-	@$(ECHO)  Dist zip name........ $(DIST_ZIPNAME)
-	@$(ECHO)
-.PHONY: fpc_info
-fpc_info: $(INFORULES)
-.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \
-	fpc_makefile_dirs
-fpc_makefile:
-	$(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc
-fpc_makefile_sub1:
-ifdef TARGET_DIRS
-	$(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS))
-endif
-ifdef TARGET_EXAMPLEDIRS
-	$(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS))
-endif
-fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
-fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
-fpc_makefiles: fpc_makefile fpc_makefile_dirs
-ifeq ($(FULL_TARGET),i386-linux)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),x86_64-darwin)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),powerpc64-darwin)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-TARGET_EXAMPLEDIRS_EXAMPLES=1
-endif
-ifdef TARGET_EXAMPLEDIRS_EXAMPLES
-examples_all:
-	$(MAKE) -C examples all
-examples_debug:
-	$(MAKE) -C examples debug
-examples_smart:
-	$(MAKE) -C examples smart
-examples_release:
-	$(MAKE) -C examples release
-examples_units:
-	$(MAKE) -C examples units
-examples_examples:
-	$(MAKE) -C examples examples
-examples_shared:
-	$(MAKE) -C examples shared
-examples_install:
-	$(MAKE) -C examples install
-examples_sourceinstall:
-	$(MAKE) -C examples sourceinstall
-examples_exampleinstall:
-	$(MAKE) -C examples exampleinstall
-examples_distinstall:
-	$(MAKE) -C examples distinstall
-examples_zipinstall:
-	$(MAKE) -C examples zipinstall
-examples_zipsourceinstall:
-	$(MAKE) -C examples zipsourceinstall
-examples_zipexampleinstall:
-	$(MAKE) -C examples zipexampleinstall
-examples_zipdistinstall:
-	$(MAKE) -C examples zipdistinstall
-examples_clean:
-	$(MAKE) -C examples clean
-examples_distclean:
-	$(MAKE) -C examples distclean
-examples_cleanall:
-	$(MAKE) -C examples cleanall
-examples_info:
-	$(MAKE) -C examples info
-examples_makefiles:
-	$(MAKE) -C examples makefiles
-examples:
-	$(MAKE) -C examples all
-.PHONY: examples_all examples_debug examples_smart examples_release examples_units examples_examples examples_shared examples_install examples_sourceinstall examples_exampleinstall examples_distinstall examples_zipinstall examples_zipsourceinstall examples_zipexampleinstall examples_zipdistinstall examples_clean examples_distclean examples_cleanall examples_info examples_makefiles examples
-endif
-all: fpc_all
-debug: fpc_debug
-smart: fpc_smart
-release: fpc_release
-units: fpc_units
-examples: fpc_examples
-shared: fpc_shared
-install: fpc_install
-sourceinstall: fpc_sourceinstall
-exampleinstall: fpc_exampleinstall
-distinstall: fpc_distinstall
-zipinstall: fpc_zipinstall
-zipsourceinstall: fpc_zipsourceinstall
-zipexampleinstall: fpc_zipexampleinstall
-zipdistinstall: fpc_zipdistinstall
-clean: fpc_clean $(addsuffix _clean,$(TARGET_EXAMPLEDIRS))
-distclean: fpc_distclean
-cleanall: fpc_cleanall
-info: fpc_info
-makefiles: fpc_makefiles
-.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
-ifneq ($(wildcard fpcmake.loc),)
-include fpcmake.loc
-endif
-.NOTPARALLEL:

+ 0 - 33
packages/extra/opengl/Makefile.fpc

@@ -1,33 +0,0 @@
-#
-#   Makefile.fpc for OpenGL for FPC
-#
-
-[package]
-name=opengl
-version=2.0.0
-
-[require]
-packages_linux=x11
-packages_freebsd=x11
-packages_netbsd=x11
-packages_openbsd=x11
-packages_darwin=x11
-
-[target]
-units=gl glu glut
-units_win32=glext
-units_linux=glx glext
-units_freebsd=glx glext
-units_netbsd=glx glext
-units_openbsd=glx glext
-units_darwin=glx glext
-exampledirs=examples
-
-[install]
-fpcpackage=y
-
-[default]
-fpcdir=../../..
-
-[rules]
-.NOTPARALLEL:

+ 0 - 2172
packages/extra/opengl/examples/Makefile

@@ -1,2172 +0,0 @@
-#
-# Don't edit, this file is generated by FPCMake Version 2.0.0 [2007/11/08]
-#
-default: all
-MAKEFILETARGETS=i386-linux i386-go32v2 i386-win32 i386-os2 i386-freebsd i386-beos i386-netbsd i386-solaris i386-qnx i386-netware i386-openbsd i386-wdosx i386-darwin i386-emx i386-watcom i386-netwlibc i386-wince i386-embedded i386-symbian m68k-linux m68k-freebsd m68k-netbsd m68k-amiga m68k-atari m68k-openbsd m68k-palmos m68k-embedded powerpc-linux powerpc-netbsd powerpc-amiga powerpc-macos powerpc-darwin powerpc-morphos powerpc-embedded sparc-linux sparc-netbsd sparc-solaris sparc-embedded x86_64-linux x86_64-freebsd x86_64-darwin x86_64-win64 x86_64-embedded arm-linux arm-palmos arm-wince arm-gba arm-nds arm-embedded arm-symbian powerpc64-linux powerpc64-darwin powerpc64-embedded
-BSDs = freebsd netbsd openbsd darwin
-UNIXs = linux $(BSDs) solaris qnx
-LIMIT83fs = go32v2 os2 emx watcom
-OSNeedsComspecToRunBatch = go32v2 watcom
-FORCE:
-.PHONY: FORCE
-override PATH:=$(patsubst %/,%,$(subst \,/,$(PATH)))
-ifneq ($(findstring darwin,$(OSTYPE)),)
-inUnix=1 #darwin
-SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
-else
-ifeq ($(findstring ;,$(PATH)),)
-inUnix=1
-SEARCHPATH:=$(filter-out .,$(subst :, ,$(PATH)))
-else
-SEARCHPATH:=$(subst ;, ,$(PATH))
-endif
-endif
-SEARCHPATH+=$(patsubst %/,%,$(subst \,/,$(dir $(MAKE))))
-PWD:=$(strip $(wildcard $(addsuffix /pwd.exe,$(SEARCHPATH))))
-ifeq ($(PWD),)
-PWD:=$(strip $(wildcard $(addsuffix /pwd,$(SEARCHPATH))))
-ifeq ($(PWD),)
-$(error You need the GNU utils package to use this Makefile)
-else
-PWD:=$(firstword $(PWD))
-SRCEXEEXT=
-endif
-else
-PWD:=$(firstword $(PWD))
-SRCEXEEXT=.exe
-endif
-ifndef inUnix
-ifeq ($(OS),Windows_NT)
-inWinNT=1
-else
-ifdef OS2_SHELL
-inOS2=1
-endif
-endif
-else
-ifneq ($(findstring cygdrive,$(PATH)),)
-inCygWin=1
-endif
-endif
-ifdef inUnix
-SRCBATCHEXT=.sh
-else
-ifdef inOS2
-SRCBATCHEXT=.cmd
-else
-SRCBATCHEXT=.bat
-endif
-endif
-ifdef COMSPEC
-ifneq ($(findstring $(OS_SOURCE),$(OSNeedsComspecToRunBatch)),)
-RUNBATCH=$(COMSPEC) /C
-endif
-endif
-ifdef inUnix
-PATHSEP=/
-else
-PATHSEP:=$(subst /,\,/)
-ifdef inCygWin
-PATHSEP=/
-endif
-endif
-ifdef PWD
-BASEDIR:=$(subst \,/,$(shell $(PWD)))
-ifdef inCygWin
-ifneq ($(findstring /cygdrive/,$(BASEDIR)),)
-BASENODIR:=$(patsubst /cygdrive%,%,$(BASEDIR))
-BASEDRIVE:=$(firstword $(subst /, ,$(BASENODIR)))
-BASEDIR:=$(subst /cygdrive/$(BASEDRIVE)/,$(BASEDRIVE):/,$(BASEDIR))
-endif
-endif
-else
-BASEDIR=.
-endif
-ifdef inOS2
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO=echo
-else
-ECHO:=$(firstword $(ECHO))
-endif
-else
-ECHO:=$(firstword $(ECHO))
-endif
-endif
-export ECHO
-endif
-override DEFAULT_FPCDIR=../../../..
-ifndef FPC
-ifdef PP
-FPC=$(PP)
-endif
-endif
-ifndef FPC
-FPCPROG:=$(strip $(wildcard $(addsuffix /fpc$(SRCEXEEXT),$(SEARCHPATH))))
-ifneq ($(FPCPROG),)
-FPCPROG:=$(firstword $(FPCPROG))
-ifneq ($(CPU_TARGET),)
-FPC:=$(shell $(FPCPROG) -P$(CPU_TARGET) -PB)
-else
-FPC:=$(shell $(FPCPROG) -PB)
-endif
-ifneq ($(findstring Error,$(FPC)),)
-override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
-endif
-else
-override FPC=$(firstword $(strip $(wildcard $(addsuffix /ppc386$(SRCEXEEXT),$(SEARCHPATH)))))
-endif
-endif
-override FPC:=$(subst $(SRCEXEEXT),,$(FPC))
-override FPC:=$(subst \,/,$(FPC))$(SRCEXEEXT)
-FOUNDFPC:=$(strip $(wildcard $(FPC)))
-ifeq ($(FOUNDFPC),)
-FOUNDFPC=$(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))
-ifeq ($(FOUNDFPC),)
-$(error Compiler $(FPC) not found)
-endif
-endif
-ifndef FPC_COMPILERINFO
-FPC_COMPILERINFO:=$(shell $(FPC) -iVSPTPSOTO)
-endif
-ifndef FPC_VERSION
-FPC_VERSION:=$(word 1,$(FPC_COMPILERINFO))
-endif
-export FPC FPC_VERSION FPC_COMPILERINFO
-unexport CHECKDEPEND ALLDEPENDENCIES
-ifndef CPU_TARGET
-ifdef CPU_TARGET_DEFAULT
-CPU_TARGET=$(CPU_TARGET_DEFAULT)
-endif
-endif
-ifndef OS_TARGET
-ifdef OS_TARGET_DEFAULT
-OS_TARGET=$(OS_TARGET_DEFAULT)
-endif
-endif
-ifneq ($(words $(FPC_COMPILERINFO)),5)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTP)
-FPC_COMPILERINFO+=$(shell $(FPC) -iSO)
-FPC_COMPILERINFO+=$(shell $(FPC) -iTO)
-endif
-ifndef CPU_SOURCE
-CPU_SOURCE:=$(word 2,$(FPC_COMPILERINFO))
-endif
-ifndef CPU_TARGET
-CPU_TARGET:=$(word 3,$(FPC_COMPILERINFO))
-endif
-ifndef OS_SOURCE
-OS_SOURCE:=$(word 4,$(FPC_COMPILERINFO))
-endif
-ifndef OS_TARGET
-OS_TARGET:=$(word 5,$(FPC_COMPILERINFO))
-endif
-FULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
-FULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
-ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
-TARGETSUFFIX=$(OS_TARGET)
-SOURCESUFFIX=$(OS_SOURCE)
-else
-TARGETSUFFIX=$(FULL_TARGET)
-SOURCESUFFIX=$(FULL_SOURCE)
-endif
-ifneq ($(FULL_TARGET),$(FULL_SOURCE))
-CROSSCOMPILE=1
-endif
-ifeq ($(findstring makefile,$(MAKECMDGOALS)),)
-ifeq ($(findstring $(FULL_TARGET),$(MAKEFILETARGETS)),)
-$(error The Makefile doesn't support target $(FULL_TARGET), please run fpcmake first)
-endif
-endif
-ifneq ($(findstring $(OS_TARGET),$(BSDs)),)
-BSDhier=1
-endif
-ifeq ($(OS_TARGET),linux)
-linuxHier=1
-endif
-export OS_TARGET OS_SOURCE CPU_TARGET CPU_SOURCE FULL_TARGET FULL_SOURCE TARGETSUFFIX SOURCESUFFIX CROSSCOMPILE
-ifdef FPCDIR
-override FPCDIR:=$(subst \,/,$(FPCDIR))
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=wrong
-endif
-else
-override FPCDIR=wrong
-endif
-ifdef DEFAULT_FPCDIR
-ifeq ($(FPCDIR),wrong)
-override FPCDIR:=$(subst \,/,$(DEFAULT_FPCDIR))
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=wrong
-endif
-endif
-endif
-ifeq ($(FPCDIR),wrong)
-ifdef inUnix
-override FPCDIR=/usr/local/lib/fpc/$(FPC_VERSION)
-ifeq ($(wildcard $(FPCDIR)/units),)
-override FPCDIR=/usr/lib/fpc/$(FPC_VERSION)
-endif
-else
-override FPCDIR:=$(subst /$(FPC),,$(firstword $(strip $(wildcard $(addsuffix /$(FPC),$(SEARCHPATH))))))
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(FPCDIR)/..
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR:=$(BASEDIR)
-ifeq ($(wildcard $(addprefix $(FPCDIR)/,rtl units)),)
-override FPCDIR=c:/pp
-endif
-endif
-endif
-endif
-endif
-ifndef CROSSBINDIR
-CROSSBINDIR:=$(wildcard $(FPCDIR)/bin/$(TARGETSUFFIX))
-endif
-ifndef BINUTILSPREFIX
-ifndef CROSSBINDIR
-ifdef CROSSCOMPILE
-BINUTILSPREFIX=$(CPU_TARGET)-$(OS_TARGET)-
-endif
-endif
-endif
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(TARGETSUFFIX))
-ifeq ($(UNITSDIR),)
-UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
-endif
-PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
-ifeq ($(FULL_TARGET),i386-linux)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur  glxtest
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur  glxtest
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur  glxtest
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur  glxtest
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur  glxtest
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur  glxtest
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur  glxtest
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur  glxtest
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur  glxtest
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur  glxtest
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur  glxtest
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur  glxtest
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur  glxtest
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur  glxtest
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur  glxtest
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur  glxtest
-endif
-ifeq ($(FULL_TARGET),x86_64-darwin)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur  glxtest
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur  glxtest
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur  glxtest
-endif
-ifeq ($(FULL_TARGET),powerpc64-darwin)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur  glxtest
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-override TARGET_PROGRAMS+=glutdemo morph3d bounce radblur
-endif
-override INSTALL_FPCPACKAGE=y
-ifeq ($(FULL_TARGET),i386-linux)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),x86_64-darwin)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),powerpc64-darwin)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-override COMPILER_OPTIONS+=-S2h
-endif
-ifdef REQUIRE_UNITSDIR
-override UNITSDIR+=$(REQUIRE_UNITSDIR)
-endif
-ifdef REQUIRE_PACKAGESDIR
-override PACKAGESDIR+=$(REQUIRE_PACKAGESDIR)
-endif
-ifdef ZIPINSTALL
-ifneq ($(findstring $(OS_TARGET),$(UNIXs)),)
-UNIXHier=1
-endif
-else
-ifneq ($(findstring $(OS_SOURCE),$(UNIXs)),)
-UNIXHier=1
-endif
-endif
-ifndef INSTALL_PREFIX
-ifdef PREFIX
-INSTALL_PREFIX=$(PREFIX)
-endif
-endif
-ifndef INSTALL_PREFIX
-ifdef UNIXHier
-INSTALL_PREFIX=/usr/local
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=/pp
-else
-INSTALL_BASEDIR:=/$(PACKAGE_NAME)
-endif
-endif
-endif
-export INSTALL_PREFIX
-ifdef INSTALL_FPCSUBDIR
-export INSTALL_FPCSUBDIR
-endif
-ifndef DIST_DESTDIR
-DIST_DESTDIR:=$(BASEDIR)
-endif
-export DIST_DESTDIR
-ifndef COMPILER_UNITTARGETDIR
-ifdef PACKAGEDIR_MAIN
-COMPILER_UNITTARGETDIR=$(PACKAGEDIR_MAIN)/units/$(TARGETSUFFIX)
-else
-COMPILER_UNITTARGETDIR=units/$(TARGETSUFFIX)
-endif
-endif
-ifndef COMPILER_TARGETDIR
-COMPILER_TARGETDIR=.
-endif
-ifndef INSTALL_BASEDIR
-ifdef UNIXHier
-ifdef INSTALL_FPCPACKAGE
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/fpc/$(FPC_VERSION)
-else
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)/lib/$(PACKAGE_NAME)
-endif
-else
-INSTALL_BASEDIR:=$(INSTALL_PREFIX)
-endif
-endif
-ifndef INSTALL_BINDIR
-ifdef UNIXHier
-INSTALL_BINDIR:=$(INSTALL_PREFIX)/bin
-else
-INSTALL_BINDIR:=$(INSTALL_BASEDIR)/bin
-ifdef INSTALL_FPCPACKAGE
-ifdef CROSSCOMPILE
-ifdef CROSSINSTALL
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(SOURCESUFFIX)
-else
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
-endif
-else
-INSTALL_BINDIR:=$(INSTALL_BINDIR)/$(TARGETSUFFIX)
-endif
-endif
-endif
-endif
-ifndef INSTALL_UNITDIR
-INSTALL_UNITDIR:=$(INSTALL_BASEDIR)/units/$(TARGETSUFFIX)
-ifdef INSTALL_FPCPACKAGE
-ifdef PACKAGE_NAME
-INSTALL_UNITDIR:=$(INSTALL_UNITDIR)/$(PACKAGE_NAME)
-endif
-endif
-endif
-ifndef INSTALL_LIBDIR
-ifdef UNIXHier
-INSTALL_LIBDIR:=$(INSTALL_PREFIX)/lib
-else
-INSTALL_LIBDIR:=$(INSTALL_UNITDIR)
-endif
-endif
-ifndef INSTALL_SOURCEDIR
-ifdef UNIXHier
-ifdef BSDhier
-SRCPREFIXDIR=share/src
-else
-ifdef linuxHier
-SRCPREFIXDIR=share/src
-else
-SRCPREFIXDIR=src
-endif
-endif
-ifdef INSTALL_FPCPACKAGE
-ifdef INSTALL_FPCSUBDIR
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
-else
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-endif
-else
-INSTALL_SOURCEDIR:=$(INSTALL_PREFIX)/$(SRCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-ifdef INSTALL_FPCSUBDIR
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(INSTALL_FPCSUBDIR)/$(PACKAGE_NAME)
-else
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source/$(PACKAGE_NAME)
-endif
-else
-INSTALL_SOURCEDIR:=$(INSTALL_BASEDIR)/source
-endif
-endif
-endif
-ifndef INSTALL_DOCDIR
-ifdef UNIXHier
-ifdef BSDhier
-DOCPREFIXDIR=share/doc
-else
-ifdef linuxHier
-DOCPREFIXDIR=share/doc
-else
-DOCPREFIXDIR=doc
-endif
-endif
-ifdef INSTALL_FPCPACKAGE
-INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-else
-INSTALL_DOCDIR:=$(INSTALL_PREFIX)/$(DOCPREFIXDIR)/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc/$(PACKAGE_NAME)
-else
-INSTALL_DOCDIR:=$(INSTALL_BASEDIR)/doc
-endif
-endif
-endif
-ifndef INSTALL_EXAMPLEDIR
-ifdef UNIXHier
-ifdef INSTALL_FPCPACKAGE
-ifdef BSDhier
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/fpc-$(FPC_VERSION)/$(PACKAGE_NAME)
-else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/fpc-$(FPC_VERSION)/examples/$(PACKAGE_NAME)
-endif
-endif
-else
-ifdef BSDhier
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/share/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-else
-ifdef linuxHier
-INSTALL_EXAMPLEDIR:=$(INSTALL_DOCDIR)/examples/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_PREFIX)/doc/$(PACKAGE_NAME)-$(PACKAGE_VERSION)
-endif
-endif
-endif
-else
-ifdef INSTALL_FPCPACKAGE
-INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples/$(PACKAGE_NAME)
-else
-INSTALL_EXAMPLEDIR:=$(INSTALL_BASEDIR)/examples
-endif
-endif
-endif
-ifndef INSTALL_DATADIR
-INSTALL_DATADIR=$(INSTALL_BASEDIR)
-endif
-ifndef INSTALL_SHAREDDIR
-INSTALL_SHAREDDIR=$(INSTALL_PREFIX)/lib
-endif
-ifdef CROSSCOMPILE
-ifndef CROSSBINDIR
-CROSSBINDIR:=$(wildcard $(CROSSTARGETDIR)/bin/$(SOURCESUFFIX))
-ifeq ($(CROSSBINDIR),)
-CROSSBINDIR:=$(wildcard $(INSTALL_BASEDIR)/cross/$(TARGETSUFFIX)/bin/$(FULL_SOURCE))
-endif
-endif
-else
-CROSSBINDIR=
-endif
-ifeq ($(OS_SOURCE),linux)
-ifndef GCCLIBDIR
-ifeq ($(CPU_TARGET),i386)
-ifneq ($(findstring x86_64,$(shell uname -a)),)
-ifeq ($(BINUTILSPREFIX),)
-GCCLIBDIR:=$(shell dirname `gcc -m32 -print-libgcc-file-name`)
-endif
-endif
-endif
-ifeq ($(CPU_TARGET),powerpc64)
-ifeq ($(BINUTILSPREFIX),)
-GCCLIBDIR:=$(shell dirname `gcc -m64 -print-libgcc-file-name`)
-endif
-endif
-endif
-ifndef GCCLIBDIR
-CROSSGCC=$(strip $(wildcard $(addsuffix /$(BINUTILSPREFIX)gcc$(SRCEXEEXT),$(SEARCHPATH))))
-ifneq ($(CROSSGCC),)
-GCCLIBDIR:=$(shell dirname `$(CROSSGCC) -print-libgcc-file-name`)
-endif
-endif
-ifndef OTHERLIBDIR
-OTHERLIBDIR:=$(shell grep -v "^\#" /etc/ld.so.conf | awk '{ ORS=" "; print $1 }')
-endif
-endif
-ifdef inUnix
-ifeq ($(OS_SOURCE),netbsd)
-OTHERLIBDIR+=/usr/pkg/lib
-endif
-export GCCLIBDIR OTHERLIB
-endif
-BATCHEXT=.bat
-LOADEREXT=.as
-EXEEXT=.exe
-PPLEXT=.ppl
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.so
-SHAREDLIBPREFIX=libfp
-STATICLIBPREFIX=libp
-IMPORTLIBPREFIX=libimp
-RSTEXT=.rst
-ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),go32v1)
-STATICLIBPREFIX=
-SHORTSUFFIX=v1
-endif
-ifeq ($(OS_TARGET),go32v2)
-STATICLIBPREFIX=
-SHORTSUFFIX=dos
-endif
-ifeq ($(OS_TARGET),watcom)
-STATICLIBPREFIX=
-OEXT=.obj
-ASMEXT=.asm
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=wat
-endif
-ifeq ($(OS_TARGET),linux)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=lnx
-endif
-ifeq ($(OS_TARGET),freebsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=fbs
-endif
-ifeq ($(OS_TARGET),netbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=nbs
-endif
-ifeq ($(OS_TARGET),openbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=obs
-endif
-ifeq ($(OS_TARGET),win32)
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-BATCHEXT=.cmd
-AOUTEXT=.out
-STATICLIBPREFIX=
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=os2
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),emx)
-BATCHEXT=.cmd
-AOUTEXT=.out
-STATICLIBPREFIX=
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=emx
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),amiga)
-EXEEXT=
-SHAREDLIBEXT=.library
-SHORTSUFFIX=amg
-endif
-ifeq ($(OS_TARGET),morphos)
-EXEEXT=
-SHAREDLIBEXT=.library
-SHORTSUFFIX=mos
-endif
-ifeq ($(OS_TARGET),atari)
-EXEEXT=.ttp
-SHORTSUFFIX=ata
-endif
-ifeq ($(OS_TARGET),beos)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=be
-endif
-ifeq ($(OS_TARGET),solaris)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=sun
-endif
-ifeq ($(OS_TARGET),qnx)
-BATCHEXT=.sh
-EXEEXT=
-SHORTSUFFIX=qnx
-endif
-ifeq ($(OS_TARGET),netware)
-EXEEXT=.nlm
-STATICLIBPREFIX=
-SHORTSUFFIX=nw
-endif
-ifeq ($(OS_TARGET),netwlibc)
-EXEEXT=.nlm
-STATICLIBPREFIX=
-SHORTSUFFIX=nwl
-endif
-ifeq ($(OS_TARGET),macos)
-BATCHEXT=
-EXEEXT=
-DEBUGSYMEXT=.xcoff
-SHORTSUFFIX=mac
-endif
-ifeq ($(OS_TARGET),darwin)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=dwn
-endif
-ifeq ($(OS_TARGET),gba)
-EXEEXT=.gba
-SHAREDLIBEXT=.so
-SHORTSUFFIX=gba
-endif
-ifeq ($(OS_TARGET),symbian)
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=symbian
-endif
-else
-ifeq ($(OS_TARGET),go32v1)
-PPUEXT=.pp1
-OEXT=.o1
-ASMEXT=.s1
-SMARTEXT=.sl1
-STATICLIBEXT=.a1
-SHAREDLIBEXT=.so1
-STATICLIBPREFIX=
-SHORTSUFFIX=v1
-endif
-ifeq ($(OS_TARGET),go32v2)
-STATICLIBPREFIX=
-SHORTSUFFIX=dos
-endif
-ifeq ($(OS_TARGET),watcom)
-STATICLIBPREFIX=
-SHORTSUFFIX=wat
-endif
-ifeq ($(OS_TARGET),linux)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=lnx
-endif
-ifeq ($(OS_TARGET),freebsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=fbs
-endif
-ifeq ($(OS_TARGET),netbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=nbs
-endif
-ifeq ($(OS_TARGET),openbsd)
-BATCHEXT=.sh
-EXEEXT=
-HASSHAREDLIB=1
-SHORTSUFFIX=obs
-endif
-ifeq ($(OS_TARGET),win32)
-PPUEXT=.ppw
-OEXT=.ow
-ASMEXT=.sw
-SMARTEXT=.slw
-STATICLIBEXT=.aw
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=w32
-endif
-ifeq ($(OS_TARGET),os2)
-BATCHEXT=.cmd
-PPUEXT=.ppo
-ASMEXT=.so2
-OEXT=.oo2
-AOUTEXT=.out
-SMARTEXT=.sl2
-STATICLIBPREFIX=
-STATICLIBEXT=.ao2
-SHAREDLIBEXT=.dll
-SHORTSUFFIX=os2
-ECHO=echo
-endif
-ifeq ($(OS_TARGET),amiga)
-EXEEXT=
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.library
-SHORTSUFFIX=amg
-endif
-ifeq ($(OS_TARGET),atari)
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=.ttp
-SHORTSUFFIX=ata
-endif
-ifeq ($(OS_TARGET),beos)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=be
-endif
-ifeq ($(OS_TARGET),solaris)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=sun
-endif
-ifeq ($(OS_TARGET),qnx)
-BATCHEXT=.sh
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-SHORTSUFFIX=qnx
-endif
-ifeq ($(OS_TARGET),netware)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nw
-endif
-ifeq ($(OS_TARGET),netwlibc)
-STATICLIBPREFIX=
-PPUEXT=.ppu
-OEXT=.o
-ASMEXT=.s
-SMARTEXT=.sl
-STATICLIBEXT=.a
-SHAREDLIBEXT=.nlm
-EXEEXT=.nlm
-SHORTSUFFIX=nwl
-endif
-ifeq ($(OS_TARGET),macos)
-BATCHEXT=
-PPUEXT=.ppu
-ASMEXT=.s
-OEXT=.o
-SMARTEXT=.sl
-STATICLIBEXT=.a
-EXEEXT=
-DEBUGSYMEXT=.xcoff
-SHORTSUFFIX=mac
-endif
-endif
-ifneq ($(findstring $(OS_SOURCE),$(LIMIT83fs)),)
-FPCMADE=fpcmade.$(SHORTSUFFIX)
-ZIPSUFFIX=$(SHORTSUFFIX)
-ZIPCROSSPREFIX=
-ZIPSOURCESUFFIX=src
-ZIPEXAMPLESUFFIX=exm
-else
-FPCMADE=fpcmade.$(TARGETSUFFIX)
-ZIPSOURCESUFFIX=.source
-ZIPEXAMPLESUFFIX=.examples
-ifdef CROSSCOMPILE
-ZIPSUFFIX=.$(SOURCESUFFIX)
-ZIPCROSSPREFIX=$(TARGETSUFFIX)-
-else
-ZIPSUFFIX=.$(TARGETSUFFIX)
-ZIPCROSSPREFIX=
-endif
-endif
-ifndef ECHO
-ECHO:=$(strip $(wildcard $(addsuffix /gecho$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO:=$(strip $(wildcard $(addsuffix /echo$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ECHO),)
-ECHO= __missing_command_ECHO
-else
-ECHO:=$(firstword $(ECHO))
-endif
-else
-ECHO:=$(firstword $(ECHO))
-endif
-endif
-export ECHO
-ifndef DATE
-DATE:=$(strip $(wildcard $(addsuffix /gdate$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE:=$(strip $(wildcard $(addsuffix /date$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(DATE),)
-DATE= __missing_command_DATE
-else
-DATE:=$(firstword $(DATE))
-endif
-else
-DATE:=$(firstword $(DATE))
-endif
-endif
-export DATE
-ifndef GINSTALL
-GINSTALL:=$(strip $(wildcard $(addsuffix /ginstall$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(GINSTALL),)
-GINSTALL:=$(strip $(wildcard $(addsuffix /install$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(GINSTALL),)
-GINSTALL= __missing_command_GINSTALL
-else
-GINSTALL:=$(firstword $(GINSTALL))
-endif
-else
-GINSTALL:=$(firstword $(GINSTALL))
-endif
-endif
-export GINSTALL
-ifndef CPPROG
-CPPROG:=$(strip $(wildcard $(addsuffix /cp$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(CPPROG),)
-CPPROG= __missing_command_CPPROG
-else
-CPPROG:=$(firstword $(CPPROG))
-endif
-endif
-export CPPROG
-ifndef RMPROG
-RMPROG:=$(strip $(wildcard $(addsuffix /rm$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(RMPROG),)
-RMPROG= __missing_command_RMPROG
-else
-RMPROG:=$(firstword $(RMPROG))
-endif
-endif
-export RMPROG
-ifndef MVPROG
-MVPROG:=$(strip $(wildcard $(addsuffix /mv$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MVPROG),)
-MVPROG= __missing_command_MVPROG
-else
-MVPROG:=$(firstword $(MVPROG))
-endif
-endif
-export MVPROG
-ifndef MKDIRPROG
-MKDIRPROG:=$(strip $(wildcard $(addsuffix /gmkdir$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MKDIRPROG),)
-MKDIRPROG:=$(strip $(wildcard $(addsuffix /mkdir$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(MKDIRPROG),)
-MKDIRPROG= __missing_command_MKDIRPROG
-else
-MKDIRPROG:=$(firstword $(MKDIRPROG))
-endif
-else
-MKDIRPROG:=$(firstword $(MKDIRPROG))
-endif
-endif
-export MKDIRPROG
-ifndef ECHOREDIR
-ifndef inUnix
-ECHOREDIR=echo
-else
-ECHOREDIR=$(ECHO)
-endif
-endif
-ifndef COPY
-COPY:=$(CPPROG) -fp
-endif
-ifndef COPYTREE
-COPYTREE:=$(CPPROG) -Rfp
-endif
-ifndef MKDIRTREE
-MKDIRTREE:=$(MKDIRPROG) -p
-endif
-ifndef MOVE
-MOVE:=$(MVPROG) -f
-endif
-ifndef DEL
-DEL:=$(RMPROG) -f
-endif
-ifndef DELTREE
-DELTREE:=$(RMPROG) -rf
-endif
-ifndef INSTALL
-ifdef inUnix
-INSTALL:=$(GINSTALL) -c -m 644
-else
-INSTALL:=$(COPY)
-endif
-endif
-ifndef INSTALLEXE
-ifdef inUnix
-INSTALLEXE:=$(GINSTALL) -c -m 755
-else
-INSTALLEXE:=$(COPY)
-endif
-endif
-ifndef MKDIR
-MKDIR:=$(GINSTALL) -m 755 -d
-endif
-export ECHOREDIR COPY COPYTREE MOVE DEL DELTREE INSTALL INSTALLEXE MKDIR
-ifndef PPUMOVE
-PPUMOVE:=$(strip $(wildcard $(addsuffix /ppumove$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(PPUMOVE),)
-PPUMOVE= __missing_command_PPUMOVE
-else
-PPUMOVE:=$(firstword $(PPUMOVE))
-endif
-endif
-export PPUMOVE
-ifndef FPCMAKE
-FPCMAKE:=$(strip $(wildcard $(addsuffix /fpcmake$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(FPCMAKE),)
-FPCMAKE= __missing_command_FPCMAKE
-else
-FPCMAKE:=$(firstword $(FPCMAKE))
-endif
-endif
-export FPCMAKE
-ifndef ZIPPROG
-ZIPPROG:=$(strip $(wildcard $(addsuffix /zip$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(ZIPPROG),)
-ZIPPROG= __missing_command_ZIPPROG
-else
-ZIPPROG:=$(firstword $(ZIPPROG))
-endif
-endif
-export ZIPPROG
-ifndef TARPROG
-TARPROG:=$(strip $(wildcard $(addsuffix /gtar$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(TARPROG),)
-TARPROG:=$(strip $(wildcard $(addsuffix /tar$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(TARPROG),)
-TARPROG= __missing_command_TARPROG
-else
-TARPROG:=$(firstword $(TARPROG))
-endif
-else
-TARPROG:=$(firstword $(TARPROG))
-endif
-endif
-export TARPROG
-ASNAME=$(BINUTILSPREFIX)as
-LDNAME=$(BINUTILSPREFIX)ld
-ARNAME=$(BINUTILSPREFIX)ar
-RCNAME=$(BINUTILSPREFIX)rc
-ifneq ($(findstring 1.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),win32)
-ifeq ($(CROSSBINDIR),)
-ASNAME=asw
-LDNAME=ldw
-ARNAME=arw
-endif
-endif
-endif
-ifndef ASPROG
-ifdef CROSSBINDIR
-ASPROG=$(CROSSBINDIR)/$(ASNAME)$(SRCEXEEXT)
-else
-ASPROG=$(ASNAME)
-endif
-endif
-ifndef LDPROG
-ifdef CROSSBINDIR
-LDPROG=$(CROSSBINDIR)/$(LDNAME)$(SRCEXEEXT)
-else
-LDPROG=$(LDNAME)
-endif
-endif
-ifndef RCPROG
-ifdef CROSSBINDIR
-RCPROG=$(CROSSBINDIR)/$(RCNAME)$(SRCEXEEXT)
-else
-RCPROG=$(RCNAME)
-endif
-endif
-ifndef ARPROG
-ifdef CROSSBINDIR
-ARPROG=$(CROSSBINDIR)/$(ARNAME)$(SRCEXEEXT)
-else
-ARPROG=$(ARNAME)
-endif
-endif
-AS=$(ASPROG)
-LD=$(LDPROG)
-RC=$(RCPROG)
-AR=$(ARPROG)
-PPAS=ppas$(SRCBATCHEXT)
-ifdef inUnix
-LDCONFIG=ldconfig
-else
-LDCONFIG=
-endif
-ifdef DATE
-DATESTR:=$(shell $(DATE) +%Y%m%d)
-else
-DATESTR=
-endif
-ifndef UPXPROG
-ifeq ($(OS_TARGET),go32v2)
-UPXPROG:=1
-endif
-ifeq ($(OS_TARGET),win32)
-UPXPROG:=1
-endif
-ifdef UPXPROG
-UPXPROG:=$(strip $(wildcard $(addsuffix /upx$(SRCEXEEXT),$(SEARCHPATH))))
-ifeq ($(UPXPROG),)
-UPXPROG=
-else
-UPXPROG:=$(firstword $(UPXPROG))
-endif
-else
-UPXPROG=
-endif
-endif
-export UPXPROG
-ZIPOPT=-9
-ZIPEXT=.zip
-ifeq ($(USETAR),bz2)
-TAROPT=vj
-TAREXT=.tar.bz2
-else
-TAROPT=vz
-TAREXT=.tar.gz
-endif
-override REQUIRE_PACKAGES=rtl opengl
-ifeq ($(FULL_TARGET),i386-linux)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_X11=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),i386-go32v2)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),i386-win32)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),i386-os2)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),i386-freebsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_X11=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),i386-beos)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),i386-netbsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_X11=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),i386-solaris)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),i386-qnx)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),i386-netware)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),i386-openbsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_X11=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),i386-wdosx)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),i386-darwin)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_X11=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),i386-emx)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),i386-watcom)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),i386-netwlibc)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),i386-wince)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),i386-embedded)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),i386-symbian)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),m68k-linux)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_X11=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),m68k-freebsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_X11=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),m68k-netbsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_X11=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),m68k-amiga)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),m68k-atari)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),m68k-openbsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_X11=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),m68k-palmos)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),m68k-embedded)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-linux)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_X11=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-netbsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_X11=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-amiga)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-macos)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-darwin)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_X11=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-morphos)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),powerpc-embedded)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),sparc-linux)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_X11=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),sparc-netbsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_X11=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),sparc-solaris)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),sparc-embedded)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-linux)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_X11=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-freebsd)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_X11=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-darwin)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_X11=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-win64)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),x86_64-embedded)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),arm-linux)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_X11=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),arm-palmos)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),arm-wince)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),arm-gba)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),arm-nds)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),arm-embedded)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),arm-symbian)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),powerpc64-linux)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_X11=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),powerpc64-darwin)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_X11=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifeq ($(FULL_TARGET),powerpc64-embedded)
-REQUIRE_PACKAGES_RTL=1
-REQUIRE_PACKAGES_OPENGL=1
-endif
-ifdef REQUIRE_PACKAGES_RTL
-PACKAGEDIR_RTL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /rtl/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_RTL),)
-ifneq ($(wildcard $(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)),)
-UNITDIR_RTL=$(PACKAGEDIR_RTL)/units/$(TARGETSUFFIX)
-else
-UNITDIR_RTL=$(PACKAGEDIR_RTL)
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_RTL)/$(FPCMADE):
-	$(MAKE) -C $(PACKAGEDIR_RTL) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_RTL)/$(FPCMADE)
-endif
-else
-PACKAGEDIR_RTL=
-UNITDIR_RTL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /rtl/Package.fpc,$(UNITSDIR)))))
-ifneq ($(UNITDIR_RTL),)
-UNITDIR_RTL:=$(firstword $(UNITDIR_RTL))
-else
-UNITDIR_RTL=
-endif
-endif
-ifdef UNITDIR_RTL
-override COMPILER_UNITDIR+=$(UNITDIR_RTL)
-endif
-endif
-ifdef REQUIRE_PACKAGES_X11
-PACKAGEDIR_X11:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /x11/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_X11),)
-ifneq ($(wildcard $(PACKAGEDIR_X11)/units/$(TARGETSUFFIX)),)
-UNITDIR_X11=$(PACKAGEDIR_X11)/units/$(TARGETSUFFIX)
-else
-UNITDIR_X11=$(PACKAGEDIR_X11)
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_X11)/$(FPCMADE):
-	$(MAKE) -C $(PACKAGEDIR_X11) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_X11)/$(FPCMADE)
-endif
-else
-PACKAGEDIR_X11=
-UNITDIR_X11:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /x11/Package.fpc,$(UNITSDIR)))))
-ifneq ($(UNITDIR_X11),)
-UNITDIR_X11:=$(firstword $(UNITDIR_X11))
-else
-UNITDIR_X11=
-endif
-endif
-ifdef UNITDIR_X11
-override COMPILER_UNITDIR+=$(UNITDIR_X11)
-endif
-endif
-ifdef REQUIRE_PACKAGES_OPENGL
-PACKAGEDIR_OPENGL:=$(firstword $(subst /Makefile.fpc,,$(strip $(wildcard $(addsuffix /opengl/Makefile.fpc,$(PACKAGESDIR))))))
-ifneq ($(PACKAGEDIR_OPENGL),)
-ifneq ($(wildcard $(PACKAGEDIR_OPENGL)/units/$(TARGETSUFFIX)),)
-UNITDIR_OPENGL=$(PACKAGEDIR_OPENGL)/units/$(TARGETSUFFIX)
-else
-UNITDIR_OPENGL=$(PACKAGEDIR_OPENGL)
-endif
-ifdef CHECKDEPEND
-$(PACKAGEDIR_OPENGL)/$(FPCMADE):
-	$(MAKE) -C $(PACKAGEDIR_OPENGL) $(FPCMADE)
-override ALLDEPENDENCIES+=$(PACKAGEDIR_OPENGL)/$(FPCMADE)
-endif
-else
-PACKAGEDIR_OPENGL=
-UNITDIR_OPENGL:=$(subst /Package.fpc,,$(strip $(wildcard $(addsuffix /opengl/Package.fpc,$(UNITSDIR)))))
-ifneq ($(UNITDIR_OPENGL),)
-UNITDIR_OPENGL:=$(firstword $(UNITDIR_OPENGL))
-else
-UNITDIR_OPENGL=
-endif
-endif
-ifdef UNITDIR_OPENGL
-override COMPILER_UNITDIR+=$(UNITDIR_OPENGL)
-endif
-endif
-ifndef NOCPUDEF
-override FPCOPTDEF=$(CPU_TARGET)
-endif
-ifneq ($(OS_TARGET),$(OS_SOURCE))
-override FPCOPT+=-T$(OS_TARGET)
-endif
-ifneq ($(CPU_TARGET),$(CPU_SOURCE))
-override FPCOPT+=-P$(CPU_TARGET)
-endif
-ifeq ($(OS_SOURCE),openbsd)
-override FPCOPT+=-FD$(NEW_BINUTILS_PATH)
-endif
-ifndef CROSSBOOTSTRAP
-ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-XP$(BINUTILSPREFIX)
-endif
-ifneq ($(BINUTILSPREFIX),)
-override FPCOPT+=-Xr$(RLINKPATH)
-endif
-endif
-ifdef UNITDIR
-override FPCOPT+=$(addprefix -Fu,$(UNITDIR))
-endif
-ifdef LIBDIR
-override FPCOPT+=$(addprefix -Fl,$(LIBDIR))
-endif
-ifdef OBJDIR
-override FPCOPT+=$(addprefix -Fo,$(OBJDIR))
-endif
-ifdef INCDIR
-override FPCOPT+=$(addprefix -Fi,$(INCDIR))
-endif
-ifdef LINKSMART
-override FPCOPT+=-XX
-endif
-ifdef CREATESMART
-override FPCOPT+=-CX
-endif
-ifdef DEBUG
-override FPCOPT+=-gl
-override FPCOPTDEF+=DEBUG
-endif
-ifdef RELEASE
-ifneq ($(findstring 2.0.,$(FPC_VERSION)),)
-ifeq ($(CPU_TARGET),i386)
-FPCCPUOPT:=-OG2p3
-endif
-ifeq ($(CPU_TARGET),powerpc)
-FPCCPUOPT:=-O1r
-endif
-else
-FPCCPUOPT:=-O2
-endif
-override FPCOPT+=-Ur -Xs $(FPCCPUOPT) -n
-override FPCOPTDEF+=RELEASE
-endif
-ifdef STRIP
-override FPCOPT+=-Xs
-endif
-ifdef OPTIMIZE
-override FPCOPT+=-O2
-endif
-ifdef VERBOSE
-override FPCOPT+=-vwni
-endif
-ifdef COMPILER_OPTIONS
-override FPCOPT+=$(COMPILER_OPTIONS)
-endif
-ifdef COMPILER_UNITDIR
-override FPCOPT+=$(addprefix -Fu,$(COMPILER_UNITDIR))
-endif
-ifdef COMPILER_LIBRARYDIR
-override FPCOPT+=$(addprefix -Fl,$(COMPILER_LIBRARYDIR))
-endif
-ifdef COMPILER_OBJECTDIR
-override FPCOPT+=$(addprefix -Fo,$(COMPILER_OBJECTDIR))
-endif
-ifdef COMPILER_INCLUDEDIR
-override FPCOPT+=$(addprefix -Fi,$(COMPILER_INCLUDEDIR))
-endif
-ifdef CROSSBINDIR
-override FPCOPT+=-FD$(CROSSBINDIR)
-endif
-ifdef COMPILER_TARGETDIR
-override FPCOPT+=-FE$(COMPILER_TARGETDIR)
-ifeq ($(COMPILER_TARGETDIR),.)
-override TARGETDIRPREFIX=
-else
-override TARGETDIRPREFIX=$(COMPILER_TARGETDIR)/
-endif
-endif
-ifdef COMPILER_UNITTARGETDIR
-override FPCOPT+=-FU$(COMPILER_UNITTARGETDIR)
-ifeq ($(COMPILER_UNITTARGETDIR),.)
-override UNITTARGETDIRPREFIX=
-else
-override UNITTARGETDIRPREFIX=$(COMPILER_UNITTARGETDIR)/
-endif
-else
-ifdef COMPILER_TARGETDIR
-override COMPILER_UNITTARGETDIR=$(COMPILER_TARGETDIR)
-override UNITTARGETDIRPREFIX=$(TARGETDIRPREFIX)
-endif
-endif
-ifdef CREATESHARED
-override FPCOPT+=-Cg
-ifeq ($(CPU_TARGET),i386)
-override FPCOPT+=-Aas
-endif
-endif
-ifeq ($(findstring 2.0.,$(FPC_VERSION)),)
-ifeq ($(OS_TARGET),linux)
-ifeq ($(CPU_TARGET),x86_64)
-override FPCOPT+=-Cg
-endif
-endif
-endif
-ifdef LINKSHARED
-endif
-ifdef GCCLIBDIR
-override FPCOPT+=-Fl$(GCCLIBDIR)
-endif
-ifdef OTHERLIBDIR
-override FPCOPT+=$(addprefix -Fl,$(OTHERLIBDIR))
-endif
-ifdef OPT
-override FPCOPT+=$(OPT)
-endif
-ifdef FPCOPTDEF
-override FPCOPT+=$(addprefix -d,$(FPCOPTDEF))
-endif
-ifdef CFGFILE
-override FPCOPT+=@$(CFGFILE)
-endif
-ifdef USEENV
-override FPCEXTCMD:=$(FPCOPT)
-override FPCOPT:=!FPCEXTCMD
-export FPCEXTCMD
-endif
-override AFULL_TARGET=$(CPU_TARGET)-$(OS_TARGET)
-override AFULL_SOURCE=$(CPU_SOURCE)-$(OS_SOURCE)
-ifneq ($(AFULL_TARGET),$(AFULL_SOURCE))
-override ACROSSCOMPILE=1
-endif
-ifdef ACROSSCOMPILE
-override FPCOPT+=$(CROSSOPT)
-endif
-override COMPILER:=$(FPC) $(FPCOPT)
-ifeq (,$(findstring -s ,$(COMPILER)))
-EXECPPAS=
-else
-ifeq ($(FULL_SOURCE),$(FULL_TARGET))
-ifdef RUNBATCH
-EXECPPAS:=@$(RUNBATCH) $(PPAS)
-else
-EXECPPAS:=@$(PPAS)
-endif
-endif
-endif
-.PHONY: fpc_exes
-ifndef CROSSINSTALL
-ifneq ($(TARGET_PROGRAMS),)
-override EXEFILES=$(addsuffix $(EXEEXT),$(TARGET_PROGRAMS))
-override EXEOFILES:=$(addsuffix $(OEXT),$(TARGET_PROGRAMS)) $(addprefix $(STATICLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS))) $(addprefix $(IMPORTLIBPREFIX),$(addsuffix $(STATICLIBEXT),$(TARGET_PROGRAMS)))
-override ALLTARGET+=fpc_exes
-override INSTALLEXEFILES+=$(EXEFILES)
-override CLEANEXEFILES+=$(EXEFILES) $(EXEOFILES)
-ifeq ($(OS_TARGET),os2)
-override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
-endif
-ifeq ($(OS_TARGET),emx)
-override CLEANEXEFILES+=$(addsuffix $(AOUTEXT),$(TARGET_PROGRAMS))
-endif
-endif
-endif
-fpc_exes: $(COMPILER_TARGETDIR) $(COMPILER_UNITTARGETDIR) $(EXEFILES)
-ifdef TARGET_RSTS
-override RSTFILES=$(addsuffix $(RSTEXT),$(TARGET_RSTS))
-override CLEANRSTFILES+=$(RSTFILES)
-endif
-.PHONY: fpc_all fpc_smart fpc_debug fpc_release fpc_shared
-$(FPCMADE): $(ALLDEPENDENCIES) $(ALLTARGET)
-	@$(ECHOREDIR) Compiled > $(FPCMADE)
-fpc_all: $(FPCMADE)
-fpc_smart:
-	$(MAKE) all LINKSMART=1 CREATESMART=1
-fpc_debug:
-	$(MAKE) all DEBUG=1
-fpc_release:
-	$(MAKE) all RELEASE=1
-.SUFFIXES: $(EXEEXT) $(PPUEXT) $(OEXT) .pas .lpr .dpr .pp .rc .res
-$(COMPILER_UNITTARGETDIR):
-	$(MKDIRTREE) $(COMPILER_UNITTARGETDIR)
-$(COMPILER_TARGETDIR):
-	$(MKDIRTREE) $(COMPILER_TARGETDIR)
-%$(PPUEXT): %.pp
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(PPUEXT): %.pas
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.pp
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.pas
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.lpr
-	$(COMPILER) $<
-	$(EXECPPAS)
-%$(EXEEXT): %.dpr
-	$(COMPILER) $<
-	$(EXECPPAS)
-%.res: %.rc
-	windres -i $< -o $@
-vpath %.pp $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.pas $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.lpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.dpr $(COMPILER_SOURCEDIR) $(COMPILER_INCLUDEDIR)
-vpath %.inc $(COMPILER_INCLUDEDIR)
-vpath %$(OEXT) $(COMPILER_UNITTARGETDIR)
-vpath %$(PPUEXT) $(COMPILER_UNITTARGETDIR)
-.PHONY: fpc_shared
-override INSTALLTARGET+=fpc_shared_install
-ifndef SHARED_LIBVERSION
-SHARED_LIBVERSION=$(FPC_VERSION)
-endif
-ifndef SHARED_LIBNAME
-SHARED_LIBNAME=$(PACKAGE_NAME)
-endif
-ifndef SHARED_FULLNAME
-SHARED_FULLNAME=$(SHAREDLIBPREFIX)$(SHARED_LIBNAME)-$(SHARED_LIBVERSION)$(SHAREDLIBEXT)
-endif
-ifndef SHARED_LIBUNITS
-SHARED_LIBUNITS:=$(TARGET_UNITS) $(TARGET_IMPLICITUNITS)
-override SHARED_LIBUNITS:=$(filter-out $(INSTALL_BUILDUNIT),$(SHARED_LIBUNITS))
-endif
-fpc_shared:
-ifdef HASSHAREDLIB
-	$(MAKE) all CREATESHARED=1 LINKSHARED=1 CREATESMART=1
-ifneq ($(SHARED_BUILD),n)
-	$(PPUMOVE) -q $(SHARED_LIBUNITS) -i$(COMPILER_UNITTARGETDIR) -o$(SHARED_FULLNAME) -d$(COMPILER_UNITTARGETDIR)
-endif
-else
-	@$(ECHO) Shared Libraries not supported
-endif
-fpc_shared_install:
-ifneq ($(SHARED_BUILD),n)
-ifneq ($(SHARED_LIBUNITS),)
-ifneq ($(wildcard $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME)),)
-	$(INSTALL) $(COMPILER_UNITTARGETDIR)/$(SHARED_FULLNAME) $(INSTALL_SHAREDDIR)
-endif
-endif
-endif
-.PHONY: fpc_install fpc_sourceinstall fpc_exampleinstall
-ifdef INSTALL_UNITS
-override INSTALLPPUFILES+=$(addsuffix $(PPUEXT),$(INSTALL_UNITS))
-endif
-ifdef INSTALL_BUILDUNIT
-override INSTALLPPUFILES:=$(filter-out $(INSTALL_BUILDUNIT)$(PPUEXT),$(INSTALLPPUFILES))
-endif
-ifdef INSTALLPPUFILES
-override INSTALLPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(INSTALLPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(INSTALLPPUFILES)))
-ifneq ($(UNITTARGETDIRPREFIX),)
-override INSTALLPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPUFILES)))
-override INSTALLPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(notdir $(INSTALLPPULINKFILES))))
-endif
-override INSTALL_CREATEPACKAGEFPC=1
-endif
-ifdef INSTALLEXEFILES
-ifneq ($(TARGETDIRPREFIX),)
-override INSTALLEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(notdir $(INSTALLEXEFILES)))
-endif
-endif
-fpc_install: all $(INSTALLTARGET)
-ifdef INSTALLEXEFILES
-	$(MKDIR) $(INSTALL_BINDIR)
-ifdef UPXPROG
-	-$(UPXPROG) $(INSTALLEXEFILES)
-endif
-	$(INSTALLEXE) $(INSTALLEXEFILES) $(INSTALL_BINDIR)
-endif
-ifdef INSTALL_CREATEPACKAGEFPC
-ifdef FPCMAKE
-ifdef PACKAGE_VERSION
-ifneq ($(wildcard Makefile.fpc),)
-	$(FPCMAKE) -p -T$(CPU_TARGET)-$(OS_TARGET) Makefile.fpc
-	$(MKDIR) $(INSTALL_UNITDIR)
-	$(INSTALL) Package.fpc $(INSTALL_UNITDIR)
-endif
-endif
-endif
-endif
-ifdef INSTALLPPUFILES
-	$(MKDIR) $(INSTALL_UNITDIR)
-	$(INSTALL) $(INSTALLPPUFILES) $(INSTALL_UNITDIR)
-ifneq ($(INSTALLPPULINKFILES),)
-	$(INSTALL) $(INSTALLPPULINKFILES) $(INSTALL_UNITDIR)
-endif
-ifneq ($(wildcard $(LIB_FULLNAME)),)
-	$(MKDIR) $(INSTALL_LIBDIR)
-	$(INSTALL) $(LIB_FULLNAME) $(INSTALL_LIBDIR)
-ifdef inUnix
-	ln -sf $(LIB_FULLNAME) $(INSTALL_LIBDIR)/$(LIB_NAME)
-endif
-endif
-endif
-ifdef INSTALL_FILES
-	$(MKDIR) $(INSTALL_DATADIR)
-	$(INSTALL) $(INSTALL_FILES) $(INSTALL_DATADIR)
-endif
-fpc_sourceinstall: distclean
-	$(MKDIR) $(INSTALL_SOURCEDIR)
-	$(COPYTREE) $(BASEDIR)/* $(INSTALL_SOURCEDIR)
-fpc_exampleinstall: $(addsuffix _distclean,$(TARGET_EXAMPLEDIRS))
-ifdef HASEXAMPLES
-	$(MKDIR) $(INSTALL_EXAMPLEDIR)
-endif
-ifdef EXAMPLESOURCEFILES
-	$(COPY) $(EXAMPLESOURCEFILES) $(INSTALL_EXAMPLEDIR)
-endif
-ifdef TARGET_EXAMPLEDIRS
-	$(COPYTREE) $(addsuffix /*,$(TARGET_EXAMPLEDIRS)) $(INSTALL_EXAMPLEDIR)
-endif
-.PHONY: fpc_clean fpc_cleanall fpc_distclean
-ifdef EXEFILES
-override CLEANEXEFILES:=$(addprefix $(TARGETDIRPREFIX),$(CLEANEXEFILES))
-endif
-ifdef CLEAN_UNITS
-override CLEANPPUFILES+=$(addsuffix $(PPUEXT),$(CLEAN_UNITS))
-endif
-ifdef CLEANPPUFILES
-override CLEANPPULINKFILES:=$(subst $(PPUEXT),$(OEXT),$(CLEANPPUFILES)) $(addprefix $(STATICLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES))) $(addprefix $(IMPORTLIBPREFIX),$(subst $(PPUEXT),$(STATICLIBEXT),$(CLEANPPUFILES)))
-ifdef DEBUGSYMEXT
-override CLEANPPULINKFILES+=$(subst $(PPUEXT),$(DEBUGSYMEXT),$(CLEANPPUFILES))
-endif
-override CLEANPPUFILES:=$(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPUFILES))
-override CLEANPPULINKFILES:=$(wildcard $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANPPULINKFILES)))
-endif
-fpc_clean: $(CLEANTARGET)
-ifdef CLEANEXEFILES
-	-$(DEL) $(CLEANEXEFILES)
-endif
-ifdef CLEANPPUFILES
-	-$(DEL) $(CLEANPPUFILES)
-endif
-ifneq ($(CLEANPPULINKFILES),)
-	-$(DEL) $(CLEANPPULINKFILES)
-endif
-ifdef CLEANRSTFILES
-	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
-endif
-ifdef CLEAN_FILES
-	-$(DEL) $(CLEAN_FILES)
-endif
-ifdef LIB_NAME
-	-$(DEL) $(LIB_NAME) $(LIB_FULLNAME)
-endif
-	-$(DEL) $(FPCMADE) Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-	-$(DEL) *$(ASMEXT) *_ppas$(BATCHEXT)
-fpc_cleanall: $(CLEANTARGET)
-ifdef CLEANEXEFILES
-	-$(DEL) $(CLEANEXEFILES)
-endif
-ifdef COMPILER_UNITTARGETDIR
-ifdef CLEANPPUFILES
-	-$(DEL) $(CLEANPPUFILES)
-endif
-ifneq ($(CLEANPPULINKFILES),)
-	-$(DEL) $(CLEANPPULINKFILES)
-endif
-ifdef CLEANRSTFILES
-	-$(DEL) $(addprefix $(UNITTARGETDIRPREFIX),$(CLEANRSTFILES))
-endif
-endif
-	-$(DELTREE) units
-	-$(DEL) *$(OEXT) *$(PPUEXT) *$(RSTEXT) *$(ASMEXT) *$(STATICLIBEXT) *$(SHAREDLIBEXT) *$(PPLEXT)
-ifneq ($(PPUEXT),.ppu)
-	-$(DEL) *.o *.ppu *.a
-endif
-	-$(DELTREE) *$(SMARTEXT)
-	-$(DEL) fpcmade.* Package.fpc $(PPAS) script.res link.res $(FPCEXTFILE) $(REDIRFILE)
-	-$(DEL) *_ppas$(BATCHEXT)
-ifdef AOUTEXT
-	-$(DEL) *$(AOUTEXT)
-endif
-ifdef DEBUGSYMEXT
-	-$(DEL) *$(DEBUGSYMEXT)
-endif
-fpc_distclean: cleanall
-.PHONY: fpc_baseinfo
-override INFORULES+=fpc_baseinfo
-fpc_baseinfo:
-	@$(ECHO)
-	@$(ECHO)  == Package info ==
-	@$(ECHO)  Package Name..... $(PACKAGE_NAME)
-	@$(ECHO)  Package Version.. $(PACKAGE_VERSION)
-	@$(ECHO)
-	@$(ECHO)  == Configuration info ==
-	@$(ECHO)
-	@$(ECHO)  FPC.......... $(FPC)
-	@$(ECHO)  FPC Version.. $(FPC_VERSION)
-	@$(ECHO)  Source CPU... $(CPU_SOURCE)
-	@$(ECHO)  Target CPU... $(CPU_TARGET)
-	@$(ECHO)  Source OS.... $(OS_SOURCE)
-	@$(ECHO)  Target OS.... $(OS_TARGET)
-	@$(ECHO)  Full Source.. $(FULL_SOURCE)
-	@$(ECHO)  Full Target.. $(FULL_TARGET)
-	@$(ECHO)  SourceSuffix. $(SOURCESUFFIX)
-	@$(ECHO)  TargetSuffix. $(TARGETSUFFIX)
-	@$(ECHO)
-	@$(ECHO)  == Directory info ==
-	@$(ECHO)
-	@$(ECHO)  Required pkgs... $(REQUIRE_PACKAGES)
-	@$(ECHO)
-	@$(ECHO)  Basedir......... $(BASEDIR)
-	@$(ECHO)  FPCDir.......... $(FPCDIR)
-	@$(ECHO)  CrossBinDir..... $(CROSSBINDIR)
-	@$(ECHO)  UnitsDir........ $(UNITSDIR)
-	@$(ECHO)  PackagesDir..... $(PACKAGESDIR)
-	@$(ECHO)
-	@$(ECHO)  GCC library..... $(GCCLIBDIR)
-	@$(ECHO)  Other library... $(OTHERLIBDIR)
-	@$(ECHO)
-	@$(ECHO)  == Tools info ==
-	@$(ECHO)
-	@$(ECHO)  As........ $(AS)
-	@$(ECHO)  Ld........ $(LD)
-	@$(ECHO)  Ar........ $(AR)
-	@$(ECHO)  Rc........ $(RC)
-	@$(ECHO)
-	@$(ECHO)  Mv........ $(MVPROG)
-	@$(ECHO)  Cp........ $(CPPROG)
-	@$(ECHO)  Rm........ $(RMPROG)
-	@$(ECHO)  GInstall.. $(GINSTALL)
-	@$(ECHO)  Echo...... $(ECHO)
-	@$(ECHO)  Shell..... $(SHELL)
-	@$(ECHO)  Date...... $(DATE)
-	@$(ECHO)  FPCMake... $(FPCMAKE)
-	@$(ECHO)  PPUMove... $(PPUMOVE)
-	@$(ECHO)  Upx....... $(UPXPROG)
-	@$(ECHO)  Zip....... $(ZIPPROG)
-	@$(ECHO)
-	@$(ECHO)  == Object info ==
-	@$(ECHO)
-	@$(ECHO)  Target Loaders........ $(TARGET_LOADERS)
-	@$(ECHO)  Target Units.......... $(TARGET_UNITS)
-	@$(ECHO)  Target Implicit Units. $(TARGET_IMPLICITUNITS)
-	@$(ECHO)  Target Programs....... $(TARGET_PROGRAMS)
-	@$(ECHO)  Target Dirs........... $(TARGET_DIRS)
-	@$(ECHO)  Target Examples....... $(TARGET_EXAMPLES)
-	@$(ECHO)  Target ExampleDirs.... $(TARGET_EXAMPLEDIRS)
-	@$(ECHO)
-	@$(ECHO)  Clean Units......... $(CLEAN_UNITS)
-	@$(ECHO)  Clean Files......... $(CLEAN_FILES)
-	@$(ECHO)
-	@$(ECHO)  Install Units....... $(INSTALL_UNITS)
-	@$(ECHO)  Install Files....... $(INSTALL_FILES)
-	@$(ECHO)
-	@$(ECHO)  == Install info ==
-	@$(ECHO)
-	@$(ECHO)  DateStr.............. $(DATESTR)
-	@$(ECHO)  ZipName.............. $(ZIPNAME)
-	@$(ECHO)  ZipPrefix............ $(ZIPPREFIX)
-	@$(ECHO)  ZipCrossPrefix....... $(ZIPCROSSPREFIX)
-	@$(ECHO)  ZipSuffix............ $(ZIPSUFFIX)
-	@$(ECHO)  FullZipName.......... $(FULLZIPNAME)
-	@$(ECHO)  Install FPC Package.. $(INSTALL_FPCPACKAGE)
-	@$(ECHO)
-	@$(ECHO)  Install base dir..... $(INSTALL_BASEDIR)
-	@$(ECHO)  Install binary dir... $(INSTALL_BINDIR)
-	@$(ECHO)  Install library dir.. $(INSTALL_LIBDIR)
-	@$(ECHO)  Install units dir.... $(INSTALL_UNITDIR)
-	@$(ECHO)  Install source dir... $(INSTALL_SOURCEDIR)
-	@$(ECHO)  Install doc dir...... $(INSTALL_DOCDIR)
-	@$(ECHO)  Install example dir.. $(INSTALL_EXAMPLEDIR)
-	@$(ECHO)  Install data dir..... $(INSTALL_DATADIR)
-	@$(ECHO)
-	@$(ECHO)  Dist destination dir. $(DIST_DESTDIR)
-	@$(ECHO)  Dist zip name........ $(DIST_ZIPNAME)
-	@$(ECHO)
-.PHONY: fpc_info
-fpc_info: $(INFORULES)
-.PHONY: fpc_makefile fpc_makefiles fpc_makefile_sub1 fpc_makefile_sub2 \
-	fpc_makefile_dirs
-fpc_makefile:
-	$(FPCMAKE) -w -T$(OS_TARGET) Makefile.fpc
-fpc_makefile_sub1:
-ifdef TARGET_DIRS
-	$(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_DIRS))
-endif
-ifdef TARGET_EXAMPLEDIRS
-	$(FPCMAKE) -w -T$(OS_TARGET) $(addsuffix /Makefile.fpc,$(TARGET_EXAMPLEDIRS))
-endif
-fpc_makefile_sub2: $(addsuffix _makefile_dirs,$(TARGET_DIRS) $(TARGET_EXAMPLEDIRS))
-fpc_makefile_dirs: fpc_makefile_sub1 fpc_makefile_sub2
-fpc_makefiles: fpc_makefile fpc_makefile_dirs
-all: fpc_all
-debug: fpc_debug
-smart: fpc_smart
-release: fpc_release
-units: fpc_units
-examples:
-shared: fpc_shared
-install: fpc_install
-sourceinstall: fpc_sourceinstall
-exampleinstall: fpc_exampleinstall
-distinstall:
-zipinstall:
-zipsourceinstall:
-zipexampleinstall:
-zipdistinstall:
-clean: fpc_clean
-distclean: fpc_distclean
-cleanall: fpc_cleanall
-info: fpc_info
-makefiles: fpc_makefiles
-.PHONY: all debug smart release units examples shared install sourceinstall exampleinstall distinstall zipinstall zipsourceinstall zipexampleinstall zipdistinstall clean distclean cleanall info makefiles
-ifneq ($(wildcard fpcmake.loc),)
-include fpcmake.loc
-endif
-.NOTPARALLEL:

+ 0 - 28
packages/extra/opengl/examples/Makefile.fpc

@@ -1,28 +0,0 @@
-#
-#   Makefile.fpc for GL demos
-#
-
-[target]
-programs=glutdemo morph3d bounce radblur
-programs_linux=glxtest
-programs_freebsd=glxtest
-programs_netbsd=glxtest
-programs_openbsd=glxtest
-programs_darwin=glxtest
-
-[require]
-packages=opengl
-
-[install]
-fpcpackage=y
-
-[compiler]
-options=-S2h
-
-[default]
-fpcdir=../../../..
-
-
-
-[rules]
-.NOTPARALLEL:

+ 0 - 246
packages/extra/opengl/examples/bounce.pp

@@ -1,246 +0,0 @@
-{
-  Bouncing ball demo.  Color index mode only!
-
-  This program is in the public domain
-  Brian Paul
-
-  Converted to Pascal by Peter Vreman
-}
-program bounce;
-
-{$mode objfpc}
-
-uses
-  gl,glut;
-
-const
-  RED=1;
-  WHITE=2;
-  CYAN=3;
-
-var
-  IndexMode : Boolean;
-  Ball : GLuint;
-
-const
-  Zrot  : GLfloat = 0.0;
-  Zstep : GLfloat = 6.0;
-  Xpos  : GLfloat = 0.0;
-  Ypos  : GLfloat = 1.0;
-  Xvel  : GLfloat = 0.2;
-  Yvel  : GLfloat = 0.0;
-  Xmin  : GLfloat = -4.0;
-  Xmax  : GLfloat = 4.0;
-  Ymin  : GLfloat = -3.8;
-  Ymax  : GLfloat = 4.0;
-  G     : GLfloat = -0.1;
-
-
-function make_ball:GLuint;
-var
-  list   : GLuint;
-  a,b,
-  ar,br  : GLFloat;
-  da,db,
-  dar    : GLFloat;
-  radius : GLFloat;
-  color  : boolean;
-  x,y,z  : GLFloat;
-begin
-  da:=18.0;
-  db:=18.0;
-  radius:=1.0;
-
-  list := glGenLists(1);
-
-  glNewList(list, GL_COMPILE);
-
-  color := false;
-  a:=-90.0;
-  while (a+da<=90.0) do
-   begin
-     glBegin(GL_QUAD_STRIP);
-
-     b:=0.0;
-     while (b<=360.0) do
-      begin
-        if (color) then
-         begin
-           glIndexi(RED);
-           glColor3f(1, 0, 0);
-         end
-        else
-         begin
-           glIndexi(WHITE);
-           glColor3f(1, 1, 1);
-         end;
-
-        ar:=a * 3.14159/180.0;
-        br:=b * 3.14159/180.0;
-        x := COS(br) * COS(ar);
-        y := SIN(br) * COS(ar);
-        z := SIN(ar);
-        glVertex3f(x, y, z);
-
-        dar:=da * 3.14159/180.0;
-        x := radius * COS(br) * COS(ar + dar);
-        y := radius * SIN(br) * COS(ar + dar);
-        z := radius * SIN(ar + dar);
-        glVertex3f(x, y, z);
-
-        color := not color;
-        b:=b+db;
-      end;
-
-     glEnd();
-     a:=a+da;
-   end;
-
-  glEndList();
-
-  make_ball:=list;
-end;
-
-
-procedure reshape(width,height:longint); cdecl;
-var
-  aspect : glFloat;
-begin
-  aspect := glfloat(width) / glfloat(height);
-  glViewport(0, 0, width, height);
-  glMatrixMode(GL_PROJECTION);
-  glLoadIdentity();
-  glOrtho(-6.0 * aspect, 6.0 * aspect, -6.0, 6.0, -6.0, 6.0);
-  glMatrixMode(GL_MODELVIEW);
-end;
-
-
-procedure key(k:byte;x,y:longint); cdecl;
-begin
-  case k of
-    27 :
-      halt(0);
-  end;
-end;
-
-
-procedure draw; cdecl;
-var
-  i : GLint;
-begin
-  glClear(GL_COLOR_BUFFER_BIT);
-
-  glIndexi(CYAN);
-  glColor3f(0, 1, 1);
-  glBegin(GL_LINES);
-  for i:=-5 to 5 do
-   begin
-     glVertex2i(i, -5);
-     glVertex2i(i, 5);
-   end;
-  for i:=-5 to 5 do
-   begin
-     glVertex2i(-5, i);
-     glVertex2i(5, i);
-   end;
-  for i:=-5 to 5 do
-   begin
-     glVertex2i(i, -5);
-     glVertex2f(i * 1.15, -5.9);
-   end;
-  glVertex2f(-5.3, -5.35);
-  glVertex2f(5.3, -5.35);
-  glVertex2f(-5.75, -5.9);
-  glVertex2f(5.75, -5.9);
-  glEnd();
-
-  glPushMatrix();
-  glTranslatef(Xpos, Ypos, 0.0);
-  glScalef(2.0, 2.0, 2.0);
-  glRotatef(8.0, 0.0, 0.0, 1.0);
-  glRotatef(90.0, 1.0, 0.0, 0.0);
-  glRotatef(Zrot, 0.0, 0.0, 1.0);
-
-  glCallList(Ball);
-
-  glPopMatrix();
-
-  glFlush();
-  glutSwapBuffers();
-end;
-
-
-const
-  vel0 : glfloat = -100.0;
-procedure idle; cdecl;
-begin
-  Zrot:=Zrot+Zstep;
-  Xpos:=Xpos+Xvel;
-  if (Xpos >= Xmax) then
-   begin
-     Xpos := Xmax;
-     Xvel := -Xvel;
-     Zstep := -Zstep;
-   end;
-  if (Xpos <= Xmin) then
-   begin
-     Xpos := Xmin;
-     Xvel := -Xvel;
-     Zstep := -Zstep;
-   end;
-  Ypos:=Ypos+Yvel;
-  Yvel:=Yvel+G;
-  if (Ypos < Ymin) then
-   begin
-     Ypos := Ymin;
-     if (vel0 = -100.0) then
-       vel0 := abs(Yvel);
-     Yvel := vel0;
-   end;
-  glutPostRedisplay();
-end;
-
-
-procedure visible(vis:longint); cdecl;
-begin
-  if (vis=GLUT_VISIBLE) then
-    glutIdleFunc(@idle)
-  else
-    glutIdleFunc(nil);
-end;
-
-
-begin
-  glutInit(@argc, argv);
-  glutInitWindowPosition(0, 0);
-  glutInitWindowSize(600, 450);
-
-  if paramcount>1 then
-   IndexMode:=(paramstr(1)='-ci');
-
-  if (IndexMode) then
-     glutInitDisplayMode(GLUT_INDEX or GLUT_DOUBLE)
-  else
-     glutInitDisplayMode(GLUT_RGB or GLUT_DOUBLE);
-
-  glutCreateWindow('Bounce');
-  Ball := make_ball();
-  glCullFace(GL_BACK);
-  glEnable(GL_CULL_FACE);
-  glDisable(GL_DITHER);
-  glShadeModel(GL_FLAT);
-
-  glutDisplayFunc(@draw);
-  glutReshapeFunc(@reshape);
-  glutVisibilityFunc(@visible);
-  glutKeyboardFunc(@key);
-
-  if (IndexMode) then
-   begin
-     glutSetColor(RED, 1.0, 0.0, 0.0);
-     glutSetColor(WHITE, 1.0, 1.0, 1.0);
-     glutSetColor(CYAN, 0.0, 1.0, 1.0);
-   end;
-
-  glutMainLoop();
-end.

+ 0 - 134
packages/extra/opengl/examples/glutdemo.pp

@@ -1,134 +0,0 @@
-{
-  GL units for Free Pascal - GLUT demo
-  1999 Sebastian Guenther, [email protected]
-
-  You may use this source as starting point for your own programs; consider it
-  as Public Domain.
-}
-
-{$mode objfpc}
-
-program GLUTDemo;
-uses
-  GL, GLU, GLUT;
-
-const
-
-  FPCImg: array[0..4, 0..10] of Byte =
-    ((1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1),
-     (1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0),
-     (1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 0),
-     (1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0),
-     (1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1));
-
-var
-  counter: Integer;
-
-
-const
-  colors: array[0..7, 0..2] of Single =
-    ((0, 0, 0), (0, 0, 1), (0, 1, 0), (0, 1, 1),
-     (1, 0, 0), (1, 0, 1), (1, 1, 0), (1, 1, 1));
-  corners: array[0..7, 0..2] of Single =
-    ((-1, -1, -1), (+1, -1, -1), (+1, +1, -1), (-1, +1, -1),
-     (-1, -1, +1), (+1, -1, +1), (+1, +1, +1), (-1, +1, +1));
-
-
-procedure DrawCube;
-  procedure DrawSide(i1, i2, i3, i4: Integer);
-  begin
-    glColor4f (colors [i1, 0], colors [i1, 1], colors [i1, 2], 0.5);
-    glVertex3f(corners[i1, 0], corners[i1, 1], corners[i1, 2]);
-    glColor4f (colors [i2, 0], colors [i2, 1], colors [i2, 2], 0.5);
-    glVertex3f(corners[i2, 0], corners[i2, 1], corners[i2, 2]);
-    glColor4f (colors [i3, 0], colors [i3, 1], colors [i3, 2], 0.5);
-    glVertex3f(corners[i3, 0], corners[i3, 1], corners[i3, 2]);
-
-    glVertex3f(corners[i4, 0], corners[i4, 1], corners[i4, 2]);
-  end;
-begin
-  glBegin(GL_QUADS);
-  DrawSide(4, 5, 6, 7);         // Front
-  DrawSide(3, 2, 1, 0);         // Back
-  DrawSide(2, 3, 7, 6);         // Top
-  DrawSide(0, 1, 5, 4);         // Bottom
-  DrawSide(4, 7, 3, 0);         // Left
-  DrawSide(1, 2, 6, 5);         // Right
-  glEnd;
-end;
-
-
-procedure DisplayWindow; cdecl;
-var
-  x, y: Integer;
-begin
-  Inc(counter);
-
-  glClearColor(0, 0, 0.2, 1);
-  glClear(GL_COLOR_BUFFER_BIT+GL_DEPTH_BUFFER_BIT);
-
-  glPushMatrix;
-  glTranslatef(0, 0, Sin(Single(counter) / 20.0) * 5.0 - 5.0);
-  glRotatef(Sin(Single(counter) / 200.0) * 720.0, 0, 1, 0);
-  glRotatef(counter, 0, 0, 1);
-
-  for y := 0 to 4 do
-    for x := 0 to 10 do
-      if FPCImg[y, x] > 0 then begin
-        glPushMatrix;
-        glRotatef(x * Sin(Single(counter) / 5.0), 0, 1, 0);
-        glRotatef(y * Sin(Single(counter) / 12.0) * 4.0, 0, 0, 1);
-        glTranslatef((x - 5) * 1, (2 - y) * 1, 0);
-        glScalef(0.4, 0.4, 0.4);
-        glRotatef(counter, 0.5, 1, 0);
-        DrawCube;
-        glPopMatrix;
-      end;
-
-  glPopMatrix;
-
-  Inc(counter);
-
-  glutSwapBuffers;
-end;
-
-procedure OnTimer(value: Integer); cdecl;
-begin
-  glutPostRedisplay;
-  glutTimerFunc(20, @OnTimer, 0);
-end;
-
-begin
-  glutInit(@argc, argv);
-
-  glutInitDisplayMode(GLUT_RGB or GLUT_DOUBLE or GLUT_DEPTH);
-  glutCreateWindow('Free Pascal GLUT demo');
-  glutDisplayFunc(@DisplayWindow);
-  glutTimerFunc(20, @OnTimer, 0);
-
-  WriteLn;
-  WriteLn('GL info:');
-  WriteLn('  Vendor: ', PChar(glGetString(GL_VENDOR)));
-  WriteLn('  Renderer: ', PChar(glGetString(GL_RENDERER)));
-  WriteLn('  Version: ', PChar(glGetString(GL_VERSION)));
-  WriteLn('  Extensions: ', PChar(glGetString(GL_EXTENSIONS)));
-
-  // Enable backface culling
-  glEnable(GL_CULL_FACE);
-
-  // Set up depth buffer
-  glEnable(GL_DEPTH_TEST);
-  glDepthFunc(GL_LESS);
-
-  // Set up projection matrix
-  glMatrixMode(GL_PROJECTION);
-  glLoadIdentity;
-  gluPerspective(90, 1.3, 0.1, 100);
-  glMatrixMode(GL_MODELVIEW);
-  glLoadIdentity;
-  glTranslatef(0, 0, -5.5);
-
-  WriteLn('Starting...');
-  glutMainLoop;
-
-end.

+ 0 - 110
packages/extra/opengl/examples/glxtest.pp

@@ -1,110 +0,0 @@
-{
-  GLX demo for FreePascal
-  2005 Bart Tierens, [email protected]
-
-  This program is in the public domain
-  
-  Warning: This demo works only with FreePascal 2.1 and better, due to changes to the glx header
-}
-program glxTest;
-
-{$MODE delphi}
-
-uses glx,unix,x,xlib,xutil,gl,glu;
-
-var
-  attr: Array[0..8] of integer = (GLX_RGBA,GLX_RED_SIZE,1,GLX_GREEN_SIZE,1,GLX_BLUE_SIZE,1,GLX_DOUBLEBUFFER,none);
-  visinfo: PXVisualInfo;
-  cm: TColormap;
-  winAttr: TXSetWindowAttributes;
-  glXCont: GLXContext;
-  dpy: PDisplay;
-  win: TWindow;
-
-procedure redraw();
-begin
-  glClear(GL_COLOR_BUFFER_BIT);
-
-  glTranslatef(-0.5,-0.5,-2);
-  glBegin(GL_QUADS);
-    glColor3f(1,0,0);
-    glVertex3f(0,0,0);
-    glColor3f(0,1,0);
-    glVertex3f(1,0,0);
-    glColor3f(0,0,1);
-    glVertex3f(1,1,0);
-    glColor3f(1,1,1);
-    glVertex3f(0,1,0);
-  glEnd();
-
-  glXSwapBuffers(dpy, win); //Swap the buffers
-end;
-
-procedure resize(width,height: integer);
-begin
-  glViewport(0,0,width,height);
-  glMatrixMode(GL_PROJECTION);
-  glLoadIdentity();
-  gluPerspective(45,width/height,0.1,200);
-  glMatrixMode(GL_MODELVIEW);
-end;
-
-procedure loop();
-var
-  event: TXEvent;
-begin
-  while true do
-  begin
-    XNextEvent(dpy,@event);
-    case event._type of
-    Expose: redraw();
-    ConfigureNotify: resize(event.xconfigure.width,event.xconfigure.height);
-    KeyPress: halt(1);
-    end;
-  end;
-end;
-
-var
-  errorBase,eventBase: integer;
-  window_title_property: TXTextProperty;
-  title: String;
-begin
-  initGlx();
-  dpy := XOpenDisplay(nil);
-  if(dpy = nil) then
-  writeLn('Error: Could not connect to X server');
-
-  if not (glXQueryExtension(dpy,errorBase,eventBase)) then
-  writeLn('Error: GLX extension not supported');
-
-  visinfo := glXChooseVisual(dpy,DefaultScreen(dpy), Attr);
-  if(visinfo = nil) then
-  writeLn('Error: Could not find visual');
-
-  //Create a new colormap
-  cm := XCreateColormap(dpy,RootWindow(dpy,visinfo.screen),visinfo.visual,AllocNone);
-  winAttr.colormap := cm;
-  winAttr.border_pixel := 0;
-  winAttr.background_pixel := 0;
-  winAttr.event_mask := ExposureMask or ButtonPressMask or StructureNotifyMask or KeyPressMask;
-
-  //Create a window
-  win := XCreateWindow(dpy,RootWindow(dpy,visinfo.screen),0,0,640,480,0,visinfo.depth,InputOutput,visinfo.visual,CWBorderPixel or CWColormap or CWEventMask,@winAttr);
-
-  title := 'FreePascal GLX demo --------- Press any key to exit';
-  XStringListToTextProperty(@title,1,@window_title_property);
-  XSetWMName(dpy,win,@window_title_property);
-
-  //Create an OpenGL rendering context
-  glXCont := glXCreateContext(dpy,visinfo,none,true);
-  if(glXCont = nil) then
-  writeLn('Error: Could not create an OpenGL rendering context');
-
-  //Make it current
-  glXMakeCurrent(dpy,win,glXCont);
-
-  //Map the window on the display
-  XMapWindow(dpy,win);
-  
-  loop();
-end.

+ 0 - 915
packages/extra/opengl/examples/morph3d.pp

@@ -1,915 +0,0 @@
-{
- *-
- * morph3d.c - Shows 3D morphing objects
- *
- * Converted to GLUT by brianp on 1/1/98
- * Converted to FreePascal by Peter Vreman on 9/3/2000
- *
- * This program was inspired on a WindowsNT(R)'s screen saver. It was written
- * from scratch and it was not based on any other source code.
- *
- * Porting it to xlock (the final objective of this code since the moment I
- * decided to create it) was possible by comparing the original Mesa's gear
- * demo with it's ported version, so thanks for Danny Sung for his indirect
- * help (look at gear.c in xlock source tree). NOTE: At the moment this code
- * was sent to Brian Paul for package inclusion, the XLock Version was not
- * available. In fact, I'll wait it to appear on the next Mesa release (If you
- * are reading this, it means THIS release) to send it for xlock package
- * inclusion). It will probably there be a GLUT version too.
- *
- * Thanks goes also to Brian Paul for making it possible and inexpensive
- * to use OpenGL at home. *
- * Since I'm not a native english speaker, my apologies for any gramatical
- * mistake.
- *
- * My e-mail addresses are
- *
- * [email protected]
- *         and
- * [email protected]
- *
- * Marcelo F. Vianna (Feb-13-1997)
- */
-}
-program morph3d;
-
-{$mode objfpc}
-
-{
-This document is VERY incomplete, but tries to describe the mathematics used
-in the program. At this moment it just describes how the polyhedra are
-generated. On futhurer versions, this document will be probabbly improved.
-
-Since I'm not a native english speaker, my apologies for any gramatical
-mistake.
-
-Marcelo Fernandes Vianna
-- Undergraduate in Computer Engeneering at Catholic Pontifical University
-- of Rio de Janeiro (PUC-Rio) Brasil.
-- e-mail: [email protected] or [email protected]
-- Feb-13-1997
-
-POLYHEDRA GENERATION
-
-For the purpose of this program it's not sufficient to know the polyhedra
-vertexes coordinates. Since the morphing algorithm applies a nonlinear
-transformation over the surfaces (faces) of the polyhedron, each face has
-to be divided into smaller ones. The morphing algorithm needs to transform
-each vertex of these smaller faces individually. It's a very time consoming
-task.
-
-In order to reduce calculation overload, and since all the macro faces of
-the polyhedron are transformed by the same way, the generation is made by
-creating only one face of the polyhedron, morphing it and then rotating it
-around the polyhedron center.
-
-What we need to know is the face radius of the polyhedron (the radius of
-the inscribed sphere) and the angle between the center of two adjacent
-faces using the center of the sphere as the angle's vertex.
-
-The face radius of the regular polyhedra are known values which I decided
-to not waste my time calculating. Following is a table of face radius for
-the regular polyhedra with edge length = 1:
-
-    TETRAHEDRON  : 1/(2*sqrt(2))/sqrt(3)
-    CUBE         : 1/2
-    OCTAHEDRON   : 1/sqrt(6)
-    DODECAHEDRON : T^2 * sqrt((T+2)/5) / 2     -> where T=(sqrt(5)+1)/2
-    ICOSAHEDRON  : (3*sqrt(3)+sqrt(15))/12
-
-I've not found any reference about the mentioned angles, so I needed to
-calculate them, not a trivial task until I figured out how :)
-Curiously these angles are the same for the tetrahedron and octahedron.
-A way to obtain this value is inscribing the tetrahedron inside the cube
-by matching their vertexes. So you'll notice that the remaining unmatched
-vertexes are in the same straight line starting in the cube/tetrahedron
-center and crossing the center of each tetrahedron's face. At this point
-it's easy to obtain the bigger angle of the isosceles triangle formed by
-the center of the cube and two opposite vertexes on the same cube face.
-The edges of this triangle have the following lenghts: sqrt(2) for the base
-and sqrt(3)/2 for the other two other edges. So the angle we want is:
-     +-----------------------------------------------------------+
-     | 2*ARCSIN(sqrt(2)/sqrt(3)) = 109.47122063449069174 degrees |
-     +-----------------------------------------------------------+
-For the cube this angle is obvious, but just for formality it can be
-easily obtained because we also know it's isosceles edge lenghts:
-sqrt(2)/2 for the base and 1/2 for the other two edges. So the angle we
-want is:
-     +-----------------------------------------------------------+
-     | 2*ARCSIN((sqrt(2)/2)/1)   = 90.000000000000000000 degrees |
-     +-----------------------------------------------------------+
-For the octahedron we use the same idea used for the tetrahedron, but now
-we inscribe the cube inside the octahedron so that all cubes's vertexes
-matches excatly the center of each octahedron's face. It's now clear that
-this angle is the same of the thetrahedron one:
-     +-----------------------------------------------------------+
-     | 2*ARCSIN(sqrt(2)/sqrt(3)) = 109.47122063449069174 degrees |
-     +-----------------------------------------------------------+
-For the dodecahedron it's a little bit harder because it's only relationship
-with the cube is useless to us. So we need to solve the problem by another
-way. The concept of Face radius also exists on 2D polygons with the name
-Edge radius:
-  Edge Radius For Pentagon (ERp)
-  ERp = (1/2)/TAN(36 degrees) * VRp = 0.6881909602355867905
-  (VRp is the pentagon's vertex radio).
-  Face Radius For Dodecahedron
-  FRd = T^2 * sqrt((T+2)/5) / 2 = 1.1135163644116068404
-Why we need ERp? Well, ERp and FRd segments forms a 90 degrees angle,
-completing this triangle, the lesser angle is a half of the angle we are
-looking for, so this angle is:
-     +-----------------------------------------------------------+
-     | 2*ARCTAN(ERp/FRd)         = 63.434948822922009981 degrees |
-     +-----------------------------------------------------------+
-For the icosahedron we can use the same method used for dodecahedron (well
-the method used for dodecahedron may be used for all regular polyhedra)
-  Edge Radius For Triangle (this one is well known: 1/3 of the triangle height)
-  ERt = sin(60)/3 = sqrt(3)/6 = 0.2886751345948128655
-  Face Radius For Icosahedron
-  FRi= (3*sqrt(3)+sqrt(15))/12 = 0.7557613140761707538
-So the angle is:
-     +-----------------------------------------------------------+
-     | 2*ARCTAN(ERt/FRi)         = 41.810314895778596167 degrees |
-     +-----------------------------------------------------------+
-}
-
-uses
-  GL,GLUT;
-
-type
-  float = single;
-
-const
-  Scale = 0.3;
-
-// #define sqr(A)                     ((A)*(A))
-
-// Increasing this values produces better image quality, the price is speed.
-// Very low values produces erroneous/incorrect plotting
-  tetradivisions            = 23;
-  cubedivisions             = 20;
-  octadivisions             = 21;
-  dodecadivisions           = 10;
-  icodivisions              = 15;
-
-  tetraangle                = 109.47122063449069174;
-  cubeangle                 = 90.000000000000000000;
-  octaangle                 = 109.47122063449069174;
-  dodecaangle               = 63.434948822922009981;
-  icoangle                  = 41.810314895778596167;
-
-//#define Pi                         3.1415926535897932385
-  SQRT2                     = 1.4142135623730951455;
-  SQRT3                     = 1.7320508075688771932;
-  SQRT5                     = 2.2360679774997898051;
-  SQRT6                     = 2.4494897427831778813;
-  SQRT15                    = 3.8729833462074170214;
-  cossec36_2                = 0.8506508083520399322;
-  cos72                     = 0.3090169943749474241;
-  sin72                     = 0.9510565162951535721;
-  cos36                     = 0.8090169943749474241;
-  sin36                     = 0.5877852522924731292;
-
-{*************************************************************************}
-
-const
-  mono   : boolean=false;
-  smooth : boolean=true;
-var
-  WindH,WindW   : GLint;
-  step,seno     : GLFloat;
-  _object       : glint;
-  edgedivisions : glint;
-  draw_object   : procedure;
-  Magnitude     : glfloat;
-  MaterialColor : array[0..19] of pglfloat;
-
-const
-  front_shininess : array[0..0] of glfloat = (60.0);
-  front_specular  : array[0..3] of glfloat = ( 0.7, 0.7, 0.7, 1.0 );
-  ambient         : array[0..3] of glfloat = ( 0.0, 0.0, 0.0, 1.0 );
-  diffuse         : array[0..3] of glfloat = ( 1.0, 1.0, 1.0, 1.0 );
-  position0       : array[0..3] of glfloat = ( 1.0, 1.0, 1.0, 0.0 );
-  position1       : array[0..3] of glfloat = (-1.0,-1.0, 1.0, 0.0 );
-  lmodel_ambient  : array[0..3] of glfloat = ( 0.5, 0.5, 0.5, 1.0 );
-  lmodel_twoside  : array[0..0] of glfloat = (GL_TRUE);
-
-  MaterialRed     : array[0..3] of glfloat = ( 0.7, 0.0, 0.0, 1.0 );
-  MaterialGreen   : array[0..3] of glfloat = ( 0.1, 0.5, 0.2, 1.0 );
-  MaterialBlue    : array[0..3] of glfloat = ( 0.0, 0.0, 0.7, 1.0 );
-  MaterialCyan    : array[0..3] of glfloat = ( 0.2, 0.5, 0.7, 1.0 );
-  MaterialYellow  : array[0..3] of glfloat = ( 0.7, 0.7, 0.0, 1.0 );
-  MaterialMagenta : array[0..3] of glfloat = ( 0.6, 0.2, 0.5, 1.0 );
-  MaterialWhite   : array[0..3] of glfloat = ( 0.7, 0.7, 0.7, 1.0 );
-  MaterialGray    : array[0..3] of glfloat = ( 0.2, 0.2, 0.2, 1.0 );
-
-
-procedure TRIANGLE(Edge,Amp:GLFloat; Divisions: longint; Z:GLFloat);
-var
-  Xf,Yf,Xa,Yb,Xf2,Yf2 : Extended;
-  Factor,Factor1,Factor2 : GLfloat;
-  VertX,VertY,VertZ,NeiAX,NeiAY,NeiAZ,NeiBX,NeiBY,NeiBZ : GLfloat;
-  Ax,Ay,Bx : GLfloat;
-  Ri,Ti : longint;
-  Vr : GLfloat;
-  AmpVr2 : GLfloat;
-  Zf : GLfloat;
-begin
-  Vr:=(Edge)*SQRT3/3;
-  AmpVr2:=(Amp)/sqr(Vr);
-  Zf:=(Edge)*(Z);
-
-  Ax:=(Edge)*(+0.5/(Divisions));
-  Ay:=(Edge)*(-SQRT3/(2*Divisions));
-  Bx:=(Edge)*(-0.5/(Divisions));
-
-  for Ri:=1 to Divisions do
-   begin
-    glBegin(GL_TRIANGLE_STRIP);
-    for Ti:=0 to Ri-1 do
-     begin
-      Xf:=(Ri-Ti)*Ax + Ti*Bx;
-      Yf:=Vr+(Ri-Ti)*Ay + Ti*Ay;
-      Xa:=Xf+0.001; Yb:=Yf+0.001;
-      Xf2:=sqr(Xf);
-      Yf2:=sqr(Yf);
-      Factor:=1-(((Xf2)+(Yf2))*AmpVr2);
-      Factor1:=1-((sqr(Xa)+Yf2)*AmpVr2);
-      Factor2:=1-((Xf2+sqr(Yb))*AmpVr2);
-      VertX:=Factor*Xf;        VertY:=Factor*Yf;        VertZ:=Factor*Zf;
-      NeiAX:=Factor1*Xa-VertX; NeiAY:=Factor1*Yf-VertY; NeiAZ:=Factor1*Zf-VertZ;
-      NeiBX:=Factor2*Xf-VertX; NeiBY:=Factor2*Yb-VertY; NeiBZ:=Factor2*Zf-VertZ;
-      glNormal3f(NeiAY*NeiBZ-NeiAZ*NeiBY,NeiAZ*NeiBX-NeiAX*NeiBZ,NeiAX*NeiBY-NeiAY*NeiBX);
-      glVertex3f(VertX, VertY, VertZ);
-
-      Xf:=(Ri-Ti-1)*Ax + Ti*Bx;
-      Yf:=Vr+(Ri-Ti-1)*Ay + Ti*Ay;
-      Xa:=Xf+0.001; Yb:=Yf+0.001;
-      Xf2:=sqr(Xf);
-      Yf2:=sqr(Yf);
-      Factor:=1-(((Xf2)+(Yf2))*AmpVr2);
-      Factor1:=1-((sqr(Xa)+Yf2)*AmpVr2);
-      Factor2:=1-((Xf2+sqr(Yb))*AmpVr2);
-      VertX:=Factor*Xf;        VertY:=Factor*Yf;        VertZ:=Factor*Zf;
-      NeiAX:=Factor1*Xa-VertX; NeiAY:=Factor1*Yf-VertY; NeiAZ:=Factor1*Zf-VertZ;
-      NeiBX:=Factor2*Xf-VertX; NeiBY:=Factor2*Yb-VertY; NeiBZ:=Factor2*Zf-VertZ;
-      glNormal3f(NeiAY*NeiBZ-NeiAZ*NeiBY,NeiAZ*NeiBX-NeiAX*NeiBZ,NeiAX*NeiBY-NeiAY*NeiBX);
-      glVertex3f(VertX, VertY, VertZ);
-     end;
-    Xf:=Ri*Bx;
-    Yf:=Vr+Ri*Ay;
-    Xa:=Xf+0.001; Yb:=Yf+0.001;
-    Xf2:=sqr(Xf);
-    Yf2:=sqr(Yf);
-    Factor:=1-((Xf2+Yf2)*AmpVr2);
-    Factor1:=1-((sqr(Xa)+Yf2)*AmpVr2);
-    Factor2:=1-((Xf2+sqr(Yb))*AmpVr2);
-    VertX:=Factor*Xf;        VertY:=Factor*Yf;        VertZ:=Factor*Zf;
-    NeiAX:=Factor1*Xa-VertX; NeiAY:=Factor1*Yf-VertY; NeiAZ:=Factor1*Zf-VertZ;
-    NeiBX:=Factor2*Xf-VertX; NeiBY:=Factor2*Yb-VertY; NeiBZ:=Factor2*Zf-VertZ;
-    glNormal3f(NeiAY*NeiBZ-NeiAZ*NeiBY,NeiAZ*NeiBX-NeiAX*NeiBZ,NeiAX*NeiBY-NeiAY*NeiBX);
-    glVertex3f(VertX, VertY, VertZ);
-    glEnd();
-  end;
-end;
-
-
-procedure SQUARE(Edge,Amp:GLFloat; Divisions: longint; Z:GLFloat);
-var
-  Xi,Yi : longint;
-  Xf,Yf,Y,Y2,Xf2,Yf2,Xa,Yb : GLfloat;
-  Factor,Factor1,Factor2 : GLfloat;
-  VertX,VertY,VertZ,NeiAX,NeiAY,NeiAZ,NeiBX,NeiBY,NeiBZ : GLfloat;
-  AmpVr2 : GLfloat;
-  Zf : GLfloat;
-begin
-  AmpVr2:=(Amp)/sqr((Edge)*SQRT2/2);
-  Zf:=(Edge)*(Z);
-
-  for Yi:=0 to Divisions-1 do
-   begin
-    Yf:=-((Edge)/2.0) + (Yi)/(Divisions)*(Edge);
-    Yf2:=sqr(Yf);
-    Y:=Yf+1.0/(Divisions)*(Edge);
-    Y2:=sqr(Y);
-    glBegin(GL_QUAD_STRIP);
-    for Xi:=0 to Divisions do
-     begin
-      Xf:=-((Edge)/2.0) + (Xi)/(Divisions)*(Edge);
-      Xf2:=sqr(Xf);
-
-      Xa:=Xf+0.001; Yb:=Y+0.001;
-      Factor:=1-((Xf2+Y2)*AmpVr2);
-      Factor1:=1-((sqr(Xa)+Y2)*AmpVr2);
-      Factor2:=1-((Xf2+sqr(Yb))*AmpVr2);
-      VertX:=Factor*Xf;        VertY:=Factor*Y;         VertZ:=Factor*Zf;
-      NeiAX:=Factor1*Xa-VertX; NeiAY:=Factor1*Y-VertY;  NeiAZ:=Factor1*Zf-VertZ;
-      NeiBX:=Factor2*Xf-VertX; NeiBY:=Factor2*Yb-VertY; NeiBZ:=Factor2*Zf-VertZ;
-      glNormal3f(NeiAY*NeiBZ-NeiAZ*NeiBY,NeiAZ*NeiBX-NeiAX*NeiBZ,NeiAX*NeiBY-NeiAY*NeiBX);
-      glVertex3f(VertX, VertY, VertZ);
-
-      Xa:=Xf+0.001; Yb:=Yf+0.001;
-      Factor:=1-((Xf2+Yf2)*AmpVr2);
-      Factor1:=1-((sqr(Xa)+Yf2)*AmpVr2);
-      Factor2:=1-((Xf2+sqr(Yb))*AmpVr2);
-      VertX:=Factor*Xf;        VertY:=Factor*Yf;        VertZ:=Factor*Zf;
-      NeiAX:=Factor1*Xa-VertX; NeiAY:=Factor1*Yf-VertY; NeiAZ:=Factor1*Zf-VertZ;
-      NeiBX:=Factor2*Xf-VertX; NeiBY:=Factor2*Yb-VertY; NeiBZ:=Factor2*Zf-VertZ;
-      glNormal3f(NeiAY*NeiBZ-NeiAZ*NeiBY,NeiAZ*NeiBX-NeiAX*NeiBZ,NeiAX*NeiBY-NeiAY*NeiBX);
-      glVertex3f(VertX, VertY, VertZ);
-     end;
-    glEnd();
-  end;
-end;
-
-procedure PENTAGON(Edge,Amp:GLFloat; Divisions: longint; Z:GLFloat);
-var
-  Ri,Ti,Fi : longint;
-  Xf,Yf,Xf2,Yf2,Xa,Yb : GLfloat;
-  X,Y : array[0..5] of GLFloat;
-  Factor,Factor1,Factor2 : GLfloat;
-  VertX,VertY,VertZ,NeiAX,NeiAY,NeiAZ,NeiBX,NeiBY,NeiBZ : GLfloat;
-  AmpVr2 : GLfloat;
-  Zf : GLfloat;
-begin
-  AmpVr2:=(Amp)/sqr((Edge)*cossec36_2);
-  Zf:=(Edge)*(Z);
-
-  for Fi:=0 to 5 do
-   begin
-    x[Fi]:=-cos( Fi*2*Pi/5 + Pi/10 )/(Divisions)*cossec36_2*(Edge);
-    y[Fi]:=sin( Fi*2*Pi/5 + Pi/10 )/(Divisions)*cossec36_2*(Edge);
-   end;
-
-  for Ri:=1 to Divisions do
-   begin
-    for Fi:=0 to 4 do
-     begin
-      glBegin(GL_TRIANGLE_STRIP);
-      for Ti:=0 to Ri-1 do
-       begin
-        Xf:=(Ri-Ti)*x[Fi] + Ti*x[Fi+1];
-        Yf:=(Ri-Ti)*y[Fi] + Ti*y[Fi+1];
-        Xa:=Xf+0.001; Yb:=Yf+0.001;
-        Xf2:=sqr(Xf);
-        Yf2:=sqr(Yf);
-        Factor:=1-(((Xf2)+(Yf2))*AmpVr2);
-        Factor1:=1-((sqr(Xa)+Yf2)*AmpVr2);
-        Factor2:=1-((Xf2+sqr(Yb))*AmpVr2);
-        VertX:=Factor*Xf;        VertY:=Factor*Yf;        VertZ:=Factor*Zf;
-        NeiAX:=Factor1*Xa-VertX; NeiAY:=Factor1*Yf-VertY; NeiAZ:=Factor1*Zf-VertZ;
-        NeiBX:=Factor2*Xf-VertX; NeiBY:=Factor2*Yb-VertY; NeiBZ:=Factor2*Zf-VertZ;
-        glNormal3f(NeiAY*NeiBZ-NeiAZ*NeiBY,NeiAZ*NeiBX-NeiAX*NeiBZ,NeiAX*NeiBY-NeiAY*NeiBX);
-        glVertex3f(VertX, VertY, VertZ);
-
-        Xf:=(Ri-Ti-1)*x[Fi] + Ti*x[Fi+1];
-        Yf:=(Ri-Ti-1)*y[Fi] + Ti*y[Fi+1];
-        Xa:=Xf+0.001; Yb:=Yf+0.001;
-        Xf2:=sqr(Xf);
-        Yf2:=sqr(Yf);
-        Factor:=1-(((Xf2)+(Yf2))*AmpVr2);
-        Factor1:=1-((sqr(Xa)+Yf2)*AmpVr2);
-        Factor2:=1-((Xf2+sqr(Yb))*AmpVr2);
-        VertX:=Factor*Xf;        VertY:=Factor*Yf;        VertZ:=Factor*Zf;
-        NeiAX:=Factor1*Xa-VertX; NeiAY:=Factor1*Yf-VertY; NeiAZ:=Factor1*Zf-VertZ;
-        NeiBX:=Factor2*Xf-VertX; NeiBY:=Factor2*Yb-VertY; NeiBZ:=Factor2*Zf-VertZ;
-        glNormal3f(NeiAY*NeiBZ-NeiAZ*NeiBY,NeiAZ*NeiBX-NeiAX*NeiBZ,NeiAX*NeiBY-NeiAY*NeiBX);
-        glVertex3f(VertX, VertY, VertZ);
-       end;
-      Xf:=Ri*x[Fi+1];
-      Yf:=Ri*y[Fi+1];
-      Xa:=Xf+0.001; Yb:=Yf+0.001;
-      Xf2:=sqr(Xf);
-      Yf2:=sqr(Yf);
-      Factor:=1-(((Xf2)+(Yf2))*AmpVr2);
-      Factor1:=1-((sqr(Xa)+Yf2)*AmpVr2);
-      Factor2:=1-((Xf2+sqr(Yb))*AmpVr2);
-      VertX:=Factor*Xf;        VertY:=Factor*Yf;        VertZ:=Factor*Zf;
-      NeiAX:=Factor1*Xa-VertX; NeiAY:=Factor1*Yf-VertY; NeiAZ:=Factor1*Zf-VertZ;
-      NeiBX:=Factor2*Xf-VertX; NeiBY:=Factor2*Yb-VertY; NeiBZ:=Factor2*Zf-VertZ;
-      glNormal3f(NeiAY*NeiBZ-NeiAZ*NeiBY,NeiAZ*NeiBX-NeiAX*NeiBZ,NeiAX*NeiBY-NeiAY*NeiBX);
-      glVertex3f(VertX, VertY, VertZ);
-      glEnd();
-     end;
-   end;
-end;
-
-
-procedure draw_tetra;
-var
-  list : GLuint;
-begin
-  list := glGenLists( 1 );
-  glNewList( list, GL_COMPILE );
-  TRIANGLE(2,seno,edgedivisions,0.5/SQRT6);
-  glEndList();
-
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[0]);
-  glCallList(list);
-  glPushMatrix();
-  glRotatef(180,0,0,1);
-  glRotatef(-tetraangle,1,0,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[1]);
-  glCallList(list);
-  glPopMatrix();
-  glPushMatrix();
-  glRotatef(180,0,1,0);
-  glRotatef(-180+tetraangle,0.5,SQRT3/2,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[2]);
-  glCallList(list);
-  glPopMatrix();
-  glRotatef(180,0,1,0);
-  glRotatef(-180+tetraangle,0.5,-SQRT3/2,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[3]);
-  glCallList(list);
-
-  glDeleteLists(list,1);
-end;
-
-
-procedure draw_cube;
-var
-  list : GLuint;
-begin
-  list := glGenLists( 1 );
-  glNewList( list, GL_COMPILE );
-  SQUARE(2, seno, edgedivisions, 0.5);
-  glEndList();
-
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[0]);
-  glCallList(list);
-  glRotatef(cubeangle,1,0,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[1]);
-  glCallList(list);
-  glRotatef(cubeangle,1,0,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[2]);
-  glCallList(list);
-  glRotatef(cubeangle,1,0,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[3]);
-  glCallList(list);
-  glRotatef(cubeangle,0,1,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[4]);
-  glCallList(list);
-  glRotatef(2*cubeangle,0,1,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[5]);
-  glCallList(list);
-
-  glDeleteLists(list,1);
-end;
-
-
-procedure draw_octa;
-var
-  list : GLuint;
-begin
-  list := glGenLists( 1 );
-  glNewList( list, GL_COMPILE );
-  TRIANGLE(2,seno,edgedivisions,1/SQRT6);
-  glEndList();
-
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[0]);
-  glCallList(list);
-  glPushMatrix();
-  glRotatef(180,0,0,1);
-  glRotatef(-180+octaangle,1,0,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[1]);
-  glCallList(list);
-  glPopMatrix();
-  glPushMatrix();
-  glRotatef(180,0,1,0);
-  glRotatef(-octaangle,0.5,SQRT3/2,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[2]);
-  glCallList(list);
-  glPopMatrix();
-  glPushMatrix();
-  glRotatef(180,0,1,0);
-  glRotatef(-octaangle,0.5,-SQRT3/2,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[3]);
-  glCallList(list);
-  glPopMatrix();
-  glRotatef(180,1,0,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[4]);
-  glCallList(list);
-  glPushMatrix();
-  glRotatef(180,0,0,1);
-  glRotatef(-180+octaangle,1,0,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[5]);
-  glCallList(list);
-  glPopMatrix();
-  glPushMatrix();
-  glRotatef(180,0,1,0);
-  glRotatef(-octaangle,0.5,SQRT3/2,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[6]);
-  glCallList(list);
-  glPopMatrix();
-  glRotatef(180,0,1,0);
-  glRotatef(-octaangle,0.5,-SQRT3/2,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[7]);
-  glCallList(list);
-
-  glDeleteLists(list,1);
-end;
-
-
-procedure draw_dodeca;
-const
-  TAU = ((SQRT5+1)/2);
-var
-  list : GLuint;
-begin
-  list := glGenLists( 1 );
-  glNewList( list, GL_COMPILE );
-  PENTAGON(1,seno,edgedivisions,sqr(TAU) * sqrt((TAU+2)/5) / 2);
-  glEndList();
-
-  glPushMatrix();
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[0]);
-  glCallList(list);
-  glRotatef(180,0,0,1);
-  glPushMatrix();
-  glRotatef(-dodecaangle,1,0,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[1]);
-  glCallList(list);
-  glPopMatrix();
-  glPushMatrix();
-  glRotatef(-dodecaangle,cos72,sin72,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[2]);
-  glCallList(list);
-  glPopMatrix();
-  glPushMatrix();
-  glRotatef(-dodecaangle,cos72,-sin72,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[3]);
-  glCallList(list);
-  glPopMatrix();
-  glPushMatrix();
-  glRotatef(dodecaangle,cos36,-sin36,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[4]);
-  glCallList(list);
-  glPopMatrix();
-  glRotatef(dodecaangle,cos36,sin36,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[5]);
-  glCallList(list);
-  glPopMatrix();
-  glRotatef(180,1,0,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[6]);
-  glCallList(list);
-  glRotatef(180,0,0,1);
-  glPushMatrix();
-  glRotatef(-dodecaangle,1,0,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[7]);
-  glCallList(list);
-  glPopMatrix();
-  glPushMatrix();
-  glRotatef(-dodecaangle,cos72,sin72,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[8]);
-  glCallList(list);
-  glPopMatrix();
-  glPushMatrix();
-  glRotatef(-dodecaangle,cos72,-sin72,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[9]);
-  glCallList(list);
-  glPopMatrix();
-  glPushMatrix();
-  glRotatef(dodecaangle,cos36,-sin36,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[10]);
-  glCallList(list);
-  glPopMatrix();
-  glRotatef(dodecaangle,cos36,sin36,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[11]);
-  glCallList(list);
-
-  glDeleteLists(list,1);
-end;
-
-
-procedure draw_ico;
-var
-  list : GLuint;
-begin
-  list := glGenLists( 1 );
-  glNewList( list, GL_COMPILE );
-  TRIANGLE(1.5,seno,edgedivisions,(3*SQRT3+SQRT15)/12);
-  glEndList();
-
-  glPushMatrix();
-
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[0]);
-  glCallList(list);
-  glPushMatrix();
-  glRotatef(180,0,0,1);
-  glRotatef(-icoangle,1,0,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[1]);
-  glCallList(list);
-  glPushMatrix();
-  glRotatef(180,0,1,0);
-  glRotatef(-180+icoangle,0.5,SQRT3/2,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[2]);
-  glCallList(list);
-  glPopMatrix();
-  glRotatef(180,0,1,0);
-  glRotatef(-180+icoangle,0.5,-SQRT3/2,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[3]);
-  glCallList(list);
-  glPopMatrix();
-  glPushMatrix();
-  glRotatef(180,0,1,0);
-  glRotatef(-180+icoangle,0.5,SQRT3/2,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[4]);
-  glCallList(list);
-  glPushMatrix();
-  glRotatef(180,0,1,0);
-  glRotatef(-180+icoangle,0.5,SQRT3/2,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[5]);
-  glCallList(list);
-  glPopMatrix();
-  glRotatef(180,0,0,1);
-  glRotatef(-icoangle,1,0,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[6]);
-  glCallList(list);
-  glPopMatrix();
-  glRotatef(180,0,1,0);
-  glRotatef(-180+icoangle,0.5,-SQRT3/2,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[7]);
-  glCallList(list);
-  glPushMatrix();
-  glRotatef(180,0,1,0);
-  glRotatef(-180+icoangle,0.5,-SQRT3/2,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[8]);
-  glCallList(list);
-  glPopMatrix();
-  glRotatef(180,0,0,1);
-  glRotatef(-icoangle,1,0,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[9]);
-  glCallList(list);
-  glPopMatrix();
-  glRotatef(180,1,0,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[10]);
-  glCallList(list);
-  glPushMatrix();
-  glRotatef(180,0,0,1);
-  glRotatef(-icoangle,1,0,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[11]);
-  glCallList(list);
-  glPushMatrix();
-  glRotatef(180,0,1,0);
-  glRotatef(-180+icoangle,0.5,SQRT3/2,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[12]);
-  glCallList(list);
-  glPopMatrix();
-  glRotatef(180,0,1,0);
-  glRotatef(-180+icoangle,0.5,-SQRT3/2,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[13]);
-  glCallList(list);
-  glPopMatrix();
-  glPushMatrix();
-  glRotatef(180,0,1,0);
-  glRotatef(-180+icoangle,0.5,SQRT3/2,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[14]);
-  glCallList(list);
-  glPushMatrix();
-  glRotatef(180,0,1,0);
-  glRotatef(-180+icoangle,0.5,SQRT3/2,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[15]);
-  glCallList(list);
-  glPopMatrix();
-  glRotatef(180,0,0,1);
-  glRotatef(-icoangle,1,0,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[16]);
-  glCallList(list);
-  glPopMatrix();
-  glRotatef(180,0,1,0);
-  glRotatef(-180+icoangle,0.5,-SQRT3/2,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[17]);
-  glCallList(list);
-  glPushMatrix();
-  glRotatef(180,0,1,0);
-  glRotatef(-180+icoangle,0.5,-SQRT3/2,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[18]);
-  glCallList(list);
-  glPopMatrix();
-  glRotatef(180,0,0,1);
-  glRotatef(-icoangle,1,0,0);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, MaterialColor[19]);
-  glCallList(list);
-
-  glDeleteLists(list,1);
-end;
-
-
-procedure do_draw; cdecl;
-begin
-  glClear( GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT );
-
-  glPushMatrix();
-
-    glTranslatef( 0.0, 0.0, -10.0 );
-    glScalef( Scale*WindH/WindW, Scale, Scale );
-    glTranslatef(2.5*WindW/WindH*sin(step*1.11),2.5*cos(step*1.25*1.11),0);
-    glRotatef(step*100,1,0,0);
-    glRotatef(step*95,0,1,0);
-    glRotatef(step*90,0,0,1);
-
-  seno:=(sin(step)+1.0/3.0)*(4.0/5.0)*Magnitude;
-
-  draw_object();
-
-  glPopMatrix();
-
-  glFlush();
-
-  glutSwapBuffers();
-
-  step:=step+0.05;
-end;
-
-
-procedure do_idle; cdecl;
-begin
-  glutPostRedisplay();
-end;
-
-
-procedure do_reshape(width,height:longint); cdecl;
-begin
-  WindW:=width;
-  WindH:=height;
-  glViewport(0, 0, width, height);
-  glMatrixMode(GL_PROJECTION);
-  glLoadIdentity();
-  glFrustum( -1.0, 1.0, -1.0, 1.0, 5.0, 15.0 );
-  glMatrixMode(GL_MODELVIEW);
-end;
-
-
-procedure pinit;
-var
-  loop : longint;
-begin
-  case _object of
-    1 :
-    begin
-      draw_object:=@draw_tetra;
-      MaterialColor[0]:=@MaterialRed;
-      MaterialColor[1]:=@MaterialGreen;
-      MaterialColor[2]:=@MaterialBlue;
-      MaterialColor[3]:=@MaterialWhite;
-      edgedivisions:=tetradivisions;
-      Magnitude:=2.5;
-    end;
-    2:
-    begin
-      draw_object:=@draw_cube;
-      MaterialColor[0]:=@MaterialRed;
-      MaterialColor[1]:=@MaterialGreen;
-      MaterialColor[2]:=@MaterialCyan;
-      MaterialColor[3]:=@MaterialMagenta;
-      MaterialColor[4]:=@MaterialYellow;
-      MaterialColor[5]:=@MaterialBlue;
-      edgedivisions:=cubedivisions;
-      Magnitude:=2.0;
-    end;
-    3:
-    begin
-      draw_object:=@draw_octa;
-      MaterialColor[0]:=MaterialRed;
-      MaterialColor[1]:=MaterialGreen;
-      MaterialColor[2]:=MaterialBlue;
-      MaterialColor[3]:=MaterialWhite;
-      MaterialColor[4]:=MaterialCyan;
-      MaterialColor[5]:=MaterialMagenta;
-      MaterialColor[6]:=MaterialGray;
-      MaterialColor[7]:=MaterialYellow;
-      edgedivisions:=octadivisions;
-      Magnitude:=2.5;
-    end;
-    4:
-    begin
-      draw_object:=@draw_dodeca;
-      MaterialColor[ 0]:=MaterialRed;
-      MaterialColor[ 1]:=MaterialGreen;
-      MaterialColor[ 2]:=MaterialCyan;
-      MaterialColor[ 3]:=MaterialBlue;
-      MaterialColor[ 4]:=MaterialMagenta;
-      MaterialColor[ 5]:=MaterialYellow;
-      MaterialColor[ 6]:=MaterialGreen;
-      MaterialColor[ 7]:=MaterialCyan;
-      MaterialColor[ 8]:=MaterialRed;
-      MaterialColor[ 9]:=MaterialMagenta;
-      MaterialColor[10]:=MaterialBlue;
-      MaterialColor[11]:=MaterialYellow;
-      edgedivisions:=dodecadivisions;
-      Magnitude:=2.0;
-    end;
-    5:
-    begin
-      draw_object:=@draw_ico;
-      MaterialColor[ 0]:=MaterialRed;
-      MaterialColor[ 1]:=MaterialGreen;
-      MaterialColor[ 2]:=MaterialBlue;
-      MaterialColor[ 3]:=MaterialCyan;
-      MaterialColor[ 4]:=MaterialYellow;
-      MaterialColor[ 5]:=MaterialMagenta;
-      MaterialColor[ 6]:=MaterialRed;
-      MaterialColor[ 7]:=MaterialGreen;
-      MaterialColor[ 8]:=MaterialBlue;
-      MaterialColor[ 9]:=MaterialWhite;
-      MaterialColor[10]:=MaterialCyan;
-      MaterialColor[11]:=MaterialYellow;
-      MaterialColor[12]:=MaterialMagenta;
-      MaterialColor[13]:=MaterialRed;
-      MaterialColor[14]:=MaterialGreen;
-      MaterialColor[15]:=MaterialBlue;
-      MaterialColor[16]:=MaterialCyan;
-      MaterialColor[17]:=MaterialYellow;
-      MaterialColor[18]:=MaterialMagenta;
-      MaterialColor[19]:=MaterialGray;
-      edgedivisions:=icodivisions;
-      Magnitude:=2.5;
-    end;
-  end;
-  if (mono) then
-   begin
-     for loop:=0 to 19 do
-      MaterialColor[loop]:=MaterialGray;
-   end;
-  if (smooth) then
-    glShadeModel( GL_SMOOTH )
-  else
-    glShadeModel( GL_FLAT );
-end;
-
-
-procedure do_key(k:byte;x,y:integer); cdecl;
-begin
-  case Char(k) of
-    '1' : _object:=1;
-    '2' : _object:=2;
-    '3' : _object:=3;
-    '4' : _object:=4;
-    '5' : _object:=5;
-    ' ' : mono:=not mono;
-    #13 : smooth:=not smooth;
-    #27 : halt(0);
-  end;
-  pinit;
-end;
-
-
-begin
-  writeln('Morph 3D - Shows morphing platonic polyhedra');
-  writeln('Author: Marcelo Fernandes Vianna ([email protected])');
-  writeln('  [1]    - Tetrahedron');
-  writeln('  [2]    - Hexahedron (Cube)');
-  writeln('  [3]    - Octahedron');
-  writeln('  [4]    - Dodecahedron');
-  writeln('  [5]    - Icosahedron');
-  writeln('[SPACE]  - Toggle colored faces');
-  writeln('[RETURN] - Toggle smooth/flat shading');
-  writeln(' [ESC]   - Quit');
-  _object:=3;
-
-  glutInit(@argc, argv);
-  glutInitWindowPosition(0,0);
-  glutInitWindowSize(640,480);
-
-  glutInitDisplayMode( GLUT_DEPTH + GLUT_DOUBLE + GLUT_RGB );
-
-  if (glutCreateWindow('Morph 3D - Shows morphing platonic polyhedra') <= 0) then
-    halt(1);
-
-  glClearDepth(1.0);
-  glClearColor( 0.0, 0.0, 0.0, 1.0 );
-  glColor3f( 1.0, 1.0, 1.0 );
-
-  glClear( GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT );
-  glFlush();
-  glutSwapBuffers();
-
-  glLightfv(GL_LIGHT0, GL_AMBIENT, ambient);
-  glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse);
-  glLightfv(GL_LIGHT0, GL_POSITION, position0);
-  glLightfv(GL_LIGHT1, GL_AMBIENT, ambient);
-  glLightfv(GL_LIGHT1, GL_DIFFUSE, diffuse);
-  glLightfv(GL_LIGHT1, GL_POSITION, position1);
-  glLightModelfv(GL_LIGHT_MODEL_AMBIENT, lmodel_ambient);
-  glLightModelfv(GL_LIGHT_MODEL_TWO_SIDE, lmodel_twoside);
-  glEnable(GL_LIGHTING);
-  glEnable(GL_LIGHT0);
-  glEnable(GL_LIGHT1);
-  glEnable(GL_DEPTH_TEST);
-  glEnable(GL_NORMALIZE);
-
-  glMaterialfv(GL_FRONT_AND_BACK, GL_SHININESS, front_shininess);
-  glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, front_specular);
-
-  glHint(GL_FOG_HINT, GL_FASTEST);
-  glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST);
-  glHint(GL_POLYGON_SMOOTH_HINT, GL_FASTEST);
-
-  pinit();
-
-  glutReshapeFunc( @do_reshape );
-  glutKeyboardFunc( @do_key );
-  glutIdleFunc( @do_idle );
-  glutDisplayFunc( @do_draw );
-  glutMainLoop();
-end.

+ 0 - 375
packages/extra/opengl/examples/radblur.pp

@@ -1,375 +0,0 @@
-//------------------------------------------------------------------------
-//
-// Author              : Dario Corno (rIo) / Jeff Molofee (NeHe)
-// Converted to Delphi : Jan Horn
-// Email               : [email protected]
-// Website             : http://www.sulaco.co.za
-// Authors Web Site    : http://www.spinningkids.org/rio
-// Date                : 14 October 2001
-// Version             : 1.0
-// Description         : Radial Blur
-//
-// Adapted to FPC      : Sebastian Guenther ([email protected]) 2001-11-21
-//
-//------------------------------------------------------------------------
-program RadialBlur;
-
-{$mode objfpc}
-
-uses GL, GLU, GLUT;
-
-const
-  WND_TITLE = 'Radial Blur';
-
-type TVector = Array[0..2] of glFloat;
-var
-  ElapsedTime : Integer;             // Elapsed time between frames
-
-  // Textures
-  BlurTexture : glUint;              // An Unsigned Int To Store The Texture Number
-
-  // User vaiables
-  Angle : glFloat;
-  Vertexes : Array[0..3] of TVector;
-  normal : TVector;
-
-const
-  FPSCount : Integer = 0;            // Counter for FPS
-  // Lights and Materials
-  globalAmbient  : Array[0..3] of glFloat = (0.2, 0.2,  0.2, 1.0);      // Set Ambient Lighting To Fairly Dark Light (No Color)
-  Light0Pos      : Array[0..3] of glFloat = (0.0, 5.0, 10.0, 1.0);      // Set The Light Position
-  Light0Ambient  : Array[0..3] of glFloat = (0.2, 0.2,  0.2, 1.0);      // More Ambient Light
-  Light0Diffuse  : Array[0..3] of glFloat = (0.3, 0.3,  0.3, 1.0);      // Set The Diffuse Light A Bit Brighter
-  Light0Specular : Array[0..3] of glFloat = (0.8, 0.8,  0.8, 1.0);      // Fairly Bright Specular Lighting
-
-  LmodelAmbient  : Array[0..3] of glFloat = (0.2, 0.2,  0.2, 1.0);      // And More Ambient Light
-
-
-function EmptyTexture : glUint;
-var txtnumber : glUint;
-    pData : Pointer;
-begin
-  // Create Storage Space For Texture Data (128x128x4)
-  GetMem(pData, 128*128*4);
-
-  glGenTextures(1, @txtnumber);                         // Create 1 Texture
-  glBindTexture(GL_TEXTURE_2D, txtnumber);              // Bind The Texture
-  glTexImage2D(GL_TEXTURE_2D, 0, 4, 128, 128, 0, GL_RGBA, GL_UNSIGNED_BYTE, pData);
-  glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
-  glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
-
-  result :=txtNumber;
-end;
-
-
-procedure ReduceToUnit(var vector : Array of glFloat);
-var length : glFLoat;
-begin
-  // Calculates The Length Of The Vector
-  length := sqrt((vector[0]*vector[0]) + (vector[1]*vector[1]) + (vector[2]*vector[2]));
-  if Length = 0 then
-    Length :=1;
-
-  vector[0] :=vector[0] / length;
-  vector[1] :=vector[1] / length;
-  vector[2] :=vector[2] / length;
-end;
-
-
-procedure calcNormal(const v : Array of TVector; var cross : Array of glFloat);
-var v1, v2 : Array[0..2] of glFloat;
-begin
-  // Finds The Vector Between 2 Points By Subtracting
-  // The x,y,z Coordinates From One Point To Another.
-
-  // Calculate The Vector From Point 1 To Point 0
-  v1[0] := v[0][0] - v[1][0];                   // Vector 1.x=Vertex[0].x-Vertex[1].x
-  v1[1] := v[0][1] - v[1][1];                   // Vector 1.y=Vertex[0].y-Vertex[1].y
-  v1[2] := v[0][2] - v[1][2];                   // Vector 1.z=Vertex[0].y-Vertex[1].z
-  // Calculate The Vector From Point 2 To Point 1
-  v2[0] := v[1][0] - v[2][0];                   // Vector 2.x=Vertex[0].x-Vertex[1].x
-  v2[1] := v[1][1] - v[2][1];                   // Vector 2.y=Vertex[0].y-Vertex[1].y
-  v2[2] := v[1][2] - v[2][2];                   // Vector 2.z=Vertex[0].z-Vertex[1].z
-  // Compute The Cross Product To Give Us A Surface Normal
-  cross[0] := v1[1]*v2[2] - v1[2]*v2[1];        // Cross Product For Y - Z
-  cross[1] := v1[2]*v2[0] - v1[0]*v2[2];        // Cross Product For X - Z
-  cross[2] := v1[0]*v2[1] - v1[1]*v2[0];        // Cross Product For X - Y
-
-  ReduceToUnit(cross);                          // Normalize The Vectors
-end;
-
-
-// Draws A Helix
-procedure ProcessHelix;
-const Twists = 5;
-      MaterialColor : Array[1..4] of glFloat = (0.4, 0.2, 0.8, 1.0);
-      Specular      : Array[1..4] of glFloat = (1, 1, 1, 1);
-var x, y, z : glFLoat;
-    phi, theta : Integer;
-    r, u, v : glFLoat;
-begin
-  glLoadIdentity();                             // Reset The Modelview Matrix
-  gluLookAt(0, 5, 50, 0, 0, 0, 0, 1, 0);        // Eye Position (0,5,50) Center Of Scene (0,0,0), Up On Y Axis
-
-  glPushMatrix();                               // Push The Modelview Matrix
-    glTranslatef(0,0,-50);                      // Translate 50 Units Into The Screen
-    glRotatef(angle/2.0, 1, 0, 0);              // Rotate By angle/2 On The X-Axis
-    glRotatef(angle/3.0, 0, 1, 0);              // Rotate By angle/3 On The Y-Axis
-
-    glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, @MaterialColor);
-    glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, @specular);
-
-    r :=1.5;                                    // Radius
-
-    glBegin(GL_QUADS);                          // Begin Drawing Quads
-      phi :=0;
-      while phi < 360 do
-      begin
-        theta :=0;
-        while theta < 360*twists do
-        begin
-          v := phi / 180.0 * pi;                // Calculate Angle Of First Point       (  0 )
-          u := theta / 180.0 * pi;              // Calculate Angle Of First Point       (  0 )
-
-          x :=cos(u)*(2 + cos(v))*r;            // Calculate x Position (1st Point)
-          y :=sin(u)*(2 + cos(v))*r;            // Calculate y Position (1st Point)
-          z :=(u-(2*pi) + sin(v))*r;            // Calculate z Position (1st Point)
-
-          vertexes[0][0] :=x;                   // Set x Value Of First Vertex
-          vertexes[0][1] :=y;                   // Set y Value Of First Vertex
-          vertexes[0][2] :=z;                   // Set z Value Of First Vertex
-
-          v :=(phi/180.0 * pi);                 // Calculate Angle Of Second Point      (  0 )
-          u :=((theta+20)/180.0 * pi);          // Calculate Angle Of Second Point      ( 20 )
-
-          x :=cos(u)*(2 + cos(v))*r;            // Calculate x Position (2nd Point)
-          y :=sin(u)*(2 + cos(v))*r;            // Calculate y Position (2nd Point)
-          z :=(u-(2*pi) + sin(v))*r;            // Calculate z Position (2nd Point)
-
-          vertexes[1][0] :=x;                   // Set x Value Of Second Vertex
-          vertexes[1][1] :=y;                   // Set y Value Of Second Vertex
-          vertexes[1][2] :=z;                   // Set z Value Of Second Vertex
-
-          v :=(phi+20)/180.0*pi;                // Calculate Angle Of Third Point       ( 20 )
-          u :=(theta+20)/180.0*pi;              // Calculate Angle Of Third Point       ( 20 )
-
-          x :=cos(u)*(2 + cos(v))*r;            // Calculate x Position (3rd Point)
-          y :=sin(u)*(2 + cos(v))*r;            // Calculate y Position (3rd Point)
-          z :=(u-(2*pi) + sin(v))*r;            // Calculate z Position (3rd Point)
-
-          vertexes[2][0] :=x;                   // Set x Value Of Third Vertex
-          vertexes[2][1] :=y;                   // Set y Value Of Third Vertex
-          vertexes[2][2] :=z;                   // Set z Value Of Third Vertex
-
-          v :=(phi+20)/180.0*pi;                // Calculate Angle Of Fourth Point      ( 20 )
-          u :=theta / 180.0*pi;                 // Calculate Angle Of Fourth Point      (  0 )
-
-          x :=cos(u)*(2 + cos(v))*r;            // Calculate x Position (4th Point)
-          y :=sin(u)*(2 + cos(v))*r;            // Calculate y Position (4th Point)
-          z :=(u-(2*pi) + sin(v))*r;            // Calculate z Position (4th Point)
-
-          vertexes[3][0] :=x;                   // Set x Value Of Fourth Vertex
-          vertexes[3][1] :=y;                   // Set y Value Of Fourth Vertex
-          vertexes[3][2] :=z;                   // Set z Value Of Fourth Vertex
-
-          calcNormal(vertexes, normal);         // Calculate The Quad Normal
-
-          glNormal3f(normal[0],normal[1],normal[2]);    // Set The Normal
-
-          // Render The Quad
-          glVertex3f(vertexes[0][0],vertexes[0][1],vertexes[0][2]);
-          glVertex3f(vertexes[1][0],vertexes[1][1],vertexes[1][2]);
-          glVertex3f(vertexes[2][0],vertexes[2][1],vertexes[2][2]);
-          glVertex3f(vertexes[3][0],vertexes[3][1],vertexes[3][2]);
-          theta := theta + 20;
-        end;
-        phi :=phi + 20;
-      end;
-    glEnd();                                   // Done Rendering Quads
-  glPopMatrix();                               // Pop The Matrix
-end;
-
-
-// Set Up An Ortho View
-procedure ViewOrtho;
-begin
-  glMatrixMode(GL_PROJECTION);                  // Select Projection
-  glPushMatrix();                               // Push The Matrix
-  glLoadIdentity();                             // Reset The Matrix
-  glOrtho( 0, 640 , 480 , 0, -1, 1 );           // Select Ortho Mode (640x480)
-  glMatrixMode(GL_MODELVIEW);                   // Select Modelview Matrix
-  glPushMatrix();                               // Push The Matrix
-  glLoadIdentity();                             // Reset The Matrix
-end;
-
-
-// Set Up A Perspective View
-procedure ViewPerspective;
-begin
-  glMatrixMode( GL_PROJECTION );                // Select Projection
-  glPopMatrix();                                // Pop The Matrix
-  glMatrixMode( GL_MODELVIEW );                 // Select Modelview
-  glPopMatrix();                                // Pop The Matrix
-end;
-
-
-// Renders To A Texture
-procedure RenderToTexture;
-begin
-  glViewport(0, 0, 128, 128);                           // Set Our Viewport (Match Texture Size)
-  ProcessHelix();                                       // Render The Helix
-  glBindTexture(GL_TEXTURE_2D,BlurTexture);             // Bind To The Blur Texture
-
-  // Copy Our ViewPort To The Blur Texture (From 0,0 To 128,128... No Border)
-  glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_LUMINANCE, 0, 0, 128, 128, 0);
-  glClearColor(0.0, 0.0, 0.5, 0.5);                     // Set The Clear Color To Medium Blue
-  glClear(GL_COLOR_BUFFER_BIT OR GL_DEPTH_BUFFER_BIT);  // Clear The Screen And Depth Buffer
-  glViewport(0, 0, 640 ,480);                           // Set Viewport (0,0 to 640x480)
-end;
-
-
-// Draw The Blurred Image
-procedure DrawBlur(const times : Integer; const inc : glFloat);
-var spost, alpha, alphainc : glFloat;
-    I : Integer;
-begin
-  alpha := 0.2;
-  spost := 0.0;
-  glEnable(GL_TEXTURE_2D);                      // Enable 2D Texture Mapping
-  glDisable(GL_DEPTH_TEST);                     // Disable Depth Testing
-  glBlendFunc(GL_SRC_ALPHA,GL_ONE);             // Set Blending Mode
-  glEnable(GL_BLEND);                           // Enable Blending
-  glBindTexture(GL_TEXTURE_2D,BlurTexture);     // Bind To The Blur Texture
-  ViewOrtho();                                  // Switch To An Ortho View
-
-  alphainc := alpha / times;                    // alphainc=0.2f / Times To Render Blur
-
-  glBegin(GL_QUADS);                            // Begin Drawing Quads
-    // Number Of Times To Render Blur
-    For I :=0 to times-1 do
-    begin
-      glColor4f(1.0, 1.0, 1.0, alpha);          // Set The Alpha Value (Starts At 0.2)
-      glTexCoord2f(0+spost,1-spost);            // Texture Coordinate   ( 0, 1 )
-      glVertex2f(0,0);                          // First Vertex         (   0,   0 )
-
-      glTexCoord2f(0+spost,0+spost);            // Texture Coordinate   ( 0, 0 )
-      glVertex2f(0,480);                        // Second Vertex        (   0, 480 )
-
-      glTexCoord2f(1-spost,0+spost);            // Texture Coordinate   ( 1, 0 )
-      glVertex2f(640,480);                      // Third Vertex         ( 640, 480 )
-
-      glTexCoord2f(1-spost,1-spost);            // Texture Coordinate   ( 1, 1 )
-      glVertex2f(640,0);                        // Fourth Vertex        ( 640,   0 )
-
-      spost := spost + inc;                     // Gradually Increase spost (Zooming Closer To Texture Center)
-      alpha := alpha - alphainc;                // Gradually Decrease alpha (Gradually Fading Image Out)
-    end;
-  glEnd();                                      // Done Drawing Quads
-
-  ViewPerspective();                            // Switch To A Perspective View
-
-  glEnable(GL_DEPTH_TEST);                      // Enable Depth Testing
-  glDisable(GL_TEXTURE_2D);                     // Disable 2D Texture Mapping
-  glDisable(GL_BLEND);                          // Disable Blending
-  glBindTexture(GL_TEXTURE_2D,0);               // Unbind The Blur Texture
-end;
-
-{------------------------------------------------------------------}
-{  Function to draw the actual scene                               }
-{------------------------------------------------------------------}
-procedure glDraw;
-begin
-  glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);    // Clear The Screen And The Depth Buffer
-  glLoadIdentity();                     // Reset The View
-  RenderToTexture;                      // Render To A Texture
-  ProcessHelix;                         // Draw Our Helix
-  DrawBlur(25, 0.02);                   // Draw The Blur Effect
-
-  angle :=ElapsedTime / 5.0;            // Update angle Based On The Clock
-end;
-
-
-{------------------------------------------------------------------}
-{  Initialise OpenGL                                               }
-{------------------------------------------------------------------}
-procedure glInit;
-begin
-  glClearColor(0.0, 0.0, 0.0, 0.5);        // Black Background
-  glShadeModel(GL_SMOOTH);                 // Enables Smooth Color Shading
-  glClearDepth(1.0);                       // Depth Buffer Setup
-  glDepthFunc(GL_LESS);                    // The Type Of Depth Test To Do
-
-  glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);   //Realy Nice perspective calculations
-
-  glEnable(GL_DEPTH_TEST);                 // Enable Depth Buffer
-  glEnable(GL_TEXTURE_2D);                 // Enable Texture Mapping
-
-  glLightModelfv(GL_LIGHT_MODEL_AMBIENT, @LmodelAmbient);       // Set The Ambient Light Model
-
-  glLightModelfv(GL_LIGHT_MODEL_AMBIENT, @GlobalAmbient);       // Set The Global Ambient Light Model
-  glLightfv(GL_LIGHT0, GL_POSITION, @light0Pos);                // Set The Lights Position
-  glLightfv(GL_LIGHT0, GL_AMBIENT, @light0Ambient);             // Set The Ambient Light
-  glLightfv(GL_LIGHT0, GL_DIFFUSE, @light0Diffuse);             // Set The Diffuse Light
-  glLightfv(GL_LIGHT0, GL_SPECULAR, @light0Specular);           // Set Up Specular Lighting
-  glEnable(GL_LIGHTING);                                                                                // Enable Lighting
-  glEnable(GL_LIGHT0);                                                                          // Enable Light0
-
-  BlurTexture := EmptyTexture();                                                                // Create Our Empty Texture
-  glShadeModel(GL_SMOOTH);                                                                      // Select Smooth Shading
-  glMateriali(GL_FRONT, GL_SHININESS, 128);
-end;
-
-
-{------------------------------------------------------------------}
-{  Handle window resize                                            }
-{------------------------------------------------------------------}
-procedure glResizeWnd(Width, Height : Integer);
-begin
-  if (Height = 0) then                // prevent divide by zero exception
-    Height := 1;
-  glViewport(0, 0, Width, Height);    // Set the viewport for the OpenGL window
-  glMatrixMode(GL_PROJECTION);        // Change Matrix Mode to Projection
-  glLoadIdentity();                   // Reset View
-  gluPerspective(45.0, Width/glFloat(Height), 2.0, 200.0);  // Do the perspective calculations. Last value = max clipping depth
-
-  glMatrixMode(GL_MODELVIEW);         // Return to the modelview matrix
-  glLoadIdentity();                   // Reset View
-end;
-
-
-var
-  DemoStart, LastTime : LongWord;
-
-
-procedure DisplayWindow; cdecl;
-begin
-  Inc(FPSCount);                      // Increment FPS Counter
-
-  LastTime :=ElapsedTime;
-  ElapsedTime := glutGet(GLUT_ELAPSED_TIME) - DemoStart;     // Calculate Elapsed Time
-  ElapsedTime :=(LastTime + ElapsedTime) DIV 2; // Average it out for smoother movement
-  glDraw;
-  glutSwapBuffers;
-  Inc(ElapsedTime, 10);
-  glutPostRedisplay;
-end;
-
-procedure OnReshape(width, height: Integer); cdecl;
-begin
-  glResizeWnd(width, height);
-end;
-
-
-begin
-  glutInit(@argc, argv);
-  glutInitDisplayMode(GLUT_RGB or GLUT_DOUBLE or GLUT_DEPTH);
-  glutCreateWindow(WND_TITLE);
-  glutDisplayFunc(@DisplayWindow);
-  glutReshapeFunc(@OnReshape);
-  glutInitWindowSize(640, 480);
-
-  glInit;
-
-  DemoStart := glutGet(GLUT_ELAPSED_TIME);
-  glutMainLoop;
-end.

+ 0 - 17
packages/extra/opengl/fpmake.inc

@@ -1,17 +0,0 @@
-    StartPackage('opengl');
-    {$IF defined(ALLPACKAGES)}
-    Directory:='extra/opengl';
-    {$ELSEIF defined(EXTRAPACKAGES)}
-    Directory:='opengl';
-    {$ENDIF}
-    OS:=[linux,netbsd,freebsd,openbsd,win32,darwin,win64];
-    Dependencies.Add('x11');
-    T:=Targets.AddUnit('gl');
-    T:=Targets.AddUnit('glu');
-    T:=Targets.AddUnit('glut');
-    T:=Targets.AddUnit('glext');
-    T:=Targets.AddUnit('dllfuncs');
-    T.OS:=[linux,freebsd,netbsd,openbsd,darwin];
-    T:=Targets.AddUnit('glx');
-    T.OS:=[linux,freebsd,netbsd,openbsd,darwin];
-    EndPackage;

+ 0 - 17
packages/extra/opengl/fpmake.pp

@@ -1,17 +0,0 @@
-{$mode objfpc}{$H+}
-program fpmake;
-
-uses fpmkunit;
-
-Var
-  T : TTarget;
-
-begin
-  With Installer do 
-    begin
-    { Base packages }
-    {$i fpmake.inc}
-    Run;
-    end;
-end.
-

+ 0 - 2346
packages/extra/opengl/gl.pp

@@ -1,2346 +0,0 @@
-{
-
-  Adaption of the delphi3d.net OpenGL units to FreePascal
-  Sebastian Guenther ([email protected]) in 2002
-  These units are free to use
-}
-
-(*++ BUILD Version: 0004    // Increment this if a change has global effects
-
-Copyright (c) 1985-96, Microsoft Corporation
-
-Module Name:
-
-    gl.h
-
-Abstract:
-
-    Procedure declarations, constant definitions and macros for the OpenGL
-    component.
-
---*)
-
-{*
-** Copyright 1996 Silicon Graphics, Inc.
-** All Rights Reserved.
-**
-** This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;
-** the contents of this file may not be disclosed to third parties, copied or
-** duplicated in any form, in whole or in part, without the prior written
-** permission of Silicon Graphics, Inc.
-**
-** RESTRICTED RIGHTS LEGEND:
-** Use, duplication or disclosure by the Government is subject to restrictions
-** as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
-** and Computer Software clause at DFARS 252.227-7013, and/or in similar or
-** successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
-** rights reserved under the Copyright Laws of the United States.
-*}
-
-{******************************************************************************}
-{ Converted to Delphi by Tom Nuydens ([email protected])                        }
-{ For the latest updates, visit Delphi3D: http://www.delphi3d.net              }
-{******************************************************************************}
-
-{$MODE Delphi}
-{$MACRO ON}
-{$IFDEF Windows}
-  {$DEFINE extdecl := stdcall}
-{$ELSE}
-  {$DEFINE extdecl := cdecl}
-  {$IFDEF MorphOS}
-    {$INLINE ON}
-    {$DEFINE GL_UNIT}
-  {$ELSE}
-    {$LINKLIB c}
-  {$ENDIF}
-{$ENDIF}
-
-unit GL;
-
-interface
-
-uses
-  SysUtils,
-  {$IFDEF Windows}
-  Windows, dynlibs
-  {$ELSE Windows}
-  {$IFDEF MorphOS}
-  TinyGL
-  {$ELSE MorphOS}
-  dynlibs
-  {$ENDIF MorphOS}
-  {$ENDIF Windows};
-
-{$IFNDEF MORPHOS}
-var
-  LibGL: TLibHandle;
-{$ENDIF MORPHOS}
-
-type
-  GLenum     = Cardinal;      PGLenum     = ^GLenum;
-  GLboolean  = Byte;          PGLboolean  = ^GLboolean;
-  GLbitfield = Cardinal;      PGLbitfield = ^GLbitfield;
-  GLbyte     = ShortInt;      PGLbyte     = ^GLbyte;
-  GLshort    = SmallInt;      PGLshort    = ^GLshort;
-  GLint      = Integer;       PGLint      = ^GLint;
-  GLsizei    = Integer;       PGLsizei    = ^GLsizei;
-  GLubyte    = Byte;          PGLubyte    = ^GLubyte;
-  GLushort   = Word;          PGLushort   = ^GLushort;
-  GLuint     = Cardinal;      PGLuint     = ^GLuint;
-  GLfloat    = Single;        PGLfloat    = ^GLfloat;
-  GLclampf   = Single;        PGLclampf   = ^GLclampf;
-  GLdouble   = Double;        PGLdouble   = ^GLdouble;
-  GLclampd   = Double;        PGLclampd   = ^GLclampd;
-{ GLvoid     = void; }        PGLvoid     = Pointer;
-                              PPGLvoid    = ^PGLvoid;
-
-  TGLenum     = GLenum;
-  TGLboolean  = GLboolean;
-  TGLbitfield = GLbitfield;
-  TGLbyte     = GLbyte;
-  TGLshort    = GLshort;
-  TGLint      = GLint;
-  TGLsizei    = GLsizei;
-  TGLubyte    = GLubyte;
-  TGLushort   = GLushort;
-  TGLuint     = GLuint;
-  TGLfloat    = GLfloat;
-  TGLclampf   = GLclampf;
-  TGLdouble   = GLdouble;
-  TGLclampd   = GLclampd;
-
-{******************************************************************************}
-
-const
-  // Version
-  GL_VERSION_1_1                    = 1;
-
-  // AccumOp
-  GL_ACCUM                          = $0100;
-  GL_LOAD                           = $0101;
-  GL_RETURN                         = $0102;
-  GL_MULT                           = $0103;
-  GL_ADD                            = $0104;
-
-  // AlphaFunction
-  GL_NEVER                          = $0200;
-  GL_LESS                           = $0201;
-  GL_EQUAL                          = $0202;
-  GL_LEQUAL                         = $0203;
-  GL_GREATER                        = $0204;
-  GL_NOTEQUAL                       = $0205;
-  GL_GEQUAL                         = $0206;
-  GL_ALWAYS                         = $0207;
-
-  // AttribMask
-  GL_CURRENT_BIT                    = $00000001;
-  GL_POINT_BIT                      = $00000002;
-  GL_LINE_BIT                       = $00000004;
-  GL_POLYGON_BIT                    = $00000008;
-  GL_POLYGON_STIPPLE_BIT            = $00000010;
-  GL_PIXEL_MODE_BIT                 = $00000020;
-  GL_LIGHTING_BIT                   = $00000040;
-  GL_FOG_BIT                        = $00000080;
-  GL_DEPTH_BUFFER_BIT               = $00000100;
-  GL_ACCUM_BUFFER_BIT               = $00000200;
-  GL_STENCIL_BUFFER_BIT             = $00000400;
-  GL_VIEWPORT_BIT                   = $00000800;
-  GL_TRANSFORM_BIT                  = $00001000;
-  GL_ENABLE_BIT                     = $00002000;
-  GL_COLOR_BUFFER_BIT               = $00004000;
-  GL_HINT_BIT                       = $00008000;
-  GL_EVAL_BIT                       = $00010000;
-  GL_LIST_BIT                       = $00020000;
-  GL_TEXTURE_BIT                    = $00040000;
-  GL_SCISSOR_BIT                    = $00080000;
-  GL_ALL_ATTRIB_BITS                = $000FFFFF;
-
-  // BeginMode
-  GL_POINTS                         = $0000;
-  GL_LINES                          = $0001;
-  GL_LINE_LOOP                      = $0002;
-  GL_LINE_STRIP                     = $0003;
-  GL_TRIANGLES                      = $0004;
-  GL_TRIANGLE_STRIP                 = $0005;
-  GL_TRIANGLE_FAN                   = $0006;
-  GL_QUADS                          = $0007;
-  GL_QUAD_STRIP                     = $0008;
-  GL_POLYGON                        = $0009;
-
-  // BlendingFactorDest
-  GL_ZERO                           = 0;
-  GL_ONE                            = 1;
-  GL_SRC_COLOR                      = $0300;
-  GL_ONE_MINUS_SRC_COLOR            = $0301;
-  GL_SRC_ALPHA                      = $0302;
-  GL_ONE_MINUS_SRC_ALPHA            = $0303;
-  GL_DST_ALPHA                      = $0304;
-  GL_ONE_MINUS_DST_ALPHA            = $0305;
-
-  // BlendingFactorSrc
-  //      GL_ZERO
-  //      GL_ONE
-  GL_DST_COLOR                      = $0306;
-  GL_ONE_MINUS_DST_COLOR            = $0307;
-  GL_SRC_ALPHA_SATURATE             = $0308;
-  //      GL_SRC_ALPHA
-  //      GL_ONE_MINUS_SRC_ALPHA
-  //      GL_DST_ALPHA
-  //      GL_ONE_MINUS_DST_ALPHA
-
-  // Boolean
-  GL_TRUE                           = 1;
-  GL_FALSE                          = 0;
-
-  // ClearBufferMask
-  //      GL_COLOR_BUFFER_BIT
-  //      GL_ACCUM_BUFFER_BIT
-  //      GL_STENCIL_BUFFER_BIT
-  //      GL_DEPTH_BUFFER_BIT
-
-  // ClientArrayType
-  //      GL_VERTEX_ARRAY
-  //      GL_NORMAL_ARRAY
-  //      GL_COLOR_ARRAY
-  //      GL_INDEX_ARRAY
-  //      GL_TEXTURE_COORD_ARRAY
-  //      GL_EDGE_FLAG_ARRAY
-
-  // ClipPlaneName
-  GL_CLIP_PLANE0                    = $3000;
-  GL_CLIP_PLANE1                    = $3001;
-  GL_CLIP_PLANE2                    = $3002;
-  GL_CLIP_PLANE3                    = $3003;
-  GL_CLIP_PLANE4                    = $3004;
-  GL_CLIP_PLANE5                    = $3005;
-
-  // ColorMaterialFace
-  //      GL_FRONT
-  //      GL_BACK
-  //      GL_FRONT_AND_BACK
-
-  // ColorMaterialParameter
-  //      GL_AMBIENT
-  //      GL_DIFFUSE
-  //      GL_SPECULAR
-  //      GL_EMISSION
-  //      GL_AMBIENT_AND_DIFFUSE
-
-  // ColorPointerType
-  //      GL_BYTE
-  //      GL_UNSIGNED_BYTE
-  //      GL_SHORT
-  //      GL_UNSIGNED_SHORT
-  //      GL_INT
-  //      GL_UNSIGNED_INT
-  //      GL_FLOAT
-  //      GL_DOUBLE
-
-  // CullFaceMode
-  //      GL_FRONT
-  //      GL_BACK
-  //      GL_FRONT_AND_BACK
-
-  // DataType
-  GL_BYTE                           = $1400;
-  GL_UNSIGNED_BYTE                  = $1401;
-  GL_SHORT                          = $1402;
-  GL_UNSIGNED_SHORT                 = $1403;
-  GL_INT                            = $1404;
-  GL_UNSIGNED_INT                   = $1405;
-  GL_FLOAT                          = $1406;
-  GL_2_BYTES                        = $1407;
-  GL_3_BYTES                        = $1408;
-  GL_4_BYTES                        = $1409;
-  GL_DOUBLE                         = $140A;
-
-  // DepthFunction
-  //      GL_NEVER
-  //      GL_LESS
-  //      GL_EQUAL
-  //      GL_LEQUAL
-  //      GL_GREATER
-  //      GL_NOTEQUAL
-  //      GL_GEQUAL
-  //      GL_ALWAYS
-
-  // DrawBufferMode
-  GL_NONE                           = 0;
-  GL_FRONT_LEFT                     = $0400;
-  GL_FRONT_RIGHT                    = $0401;
-  GL_BACK_LEFT                      = $0402;
-  GL_BACK_RIGHT                     = $0403;
-  GL_FRONT                          = $0404;
-  GL_BACK                           = $0405;
-  GL_LEFT                           = $0406;
-  GL_RIGHT                          = $0407;
-  GL_FRONT_AND_BACK                 = $0408;
-  GL_AUX0                           = $0409;
-  GL_AUX1                           = $040A;
-  GL_AUX2                           = $040B;
-  GL_AUX3                           = $040C;
-
-  // Enable
-  //      GL_FOG
-  //      GL_LIGHTING
-  //      GL_TEXTURE_1D
-  //      GL_TEXTURE_2D
-  //      GL_LINE_STIPPLE
-  //      GL_POLYGON_STIPPLE
-  //      GL_CULL_FACE
-  //      GL_ALPHA_TEST
-  //      GL_BLEND
-  //      GL_INDEX_LOGIC_OP
-  //      GL_COLOR_LOGIC_OP
-  //      GL_DITHER
-  //      GL_STENCIL_TEST
-  //      GL_DEPTH_TEST
-  //      GL_CLIP_PLANE0
-  //      GL_CLIP_PLANE1
-  //      GL_CLIP_PLANE2
-  //      GL_CLIP_PLANE3
-  //      GL_CLIP_PLANE4
-  //      GL_CLIP_PLANE5
-  //      GL_LIGHT0
-  //      GL_LIGHT1
-  //      GL_LIGHT2
-  //      GL_LIGHT3
-  //      GL_LIGHT4
-  //      GL_LIGHT5
-  //      GL_LIGHT6
-  //      GL_LIGHT7
-  //      GL_TEXTURE_GEN_S
-  //      GL_TEXTURE_GEN_T
-  //      GL_TEXTURE_GEN_R
-  //      GL_TEXTURE_GEN_Q
-  //      GL_MAP1_VERTEX_3
-  //      GL_MAP1_VERTEX_4
-  //      GL_MAP1_COLOR_4
-  //      GL_MAP1_INDEX
-  //      GL_MAP1_NORMAL
-  //      GL_MAP1_TEXTURE_COORD_1
-  //      GL_MAP1_TEXTURE_COORD_2
-  //      GL_MAP1_TEXTURE_COORD_3
-  //      GL_MAP1_TEXTURE_COORD_4
-  //      GL_MAP2_VERTEX_3
-  //      GL_MAP2_VERTEX_4
-  //      GL_MAP2_COLOR_4
-  //      GL_MAP2_INDEX
-  //      GL_MAP2_NORMAL
-  //      GL_MAP2_TEXTURE_COORD_1
-  //      GL_MAP2_TEXTURE_COORD_2
-  //      GL_MAP2_TEXTURE_COORD_3
-  //      GL_MAP2_TEXTURE_COORD_4
-  //      GL_POINT_SMOOTH
-  //      GL_LINE_SMOOTH
-  //      GL_POLYGON_SMOOTH
-  //      GL_SCISSOR_TEST
-  //      GL_COLOR_MATERIAL
-  //      GL_NORMALIZE
-  //      GL_AUTO_NORMAL
-  //      GL_VERTEX_ARRAY
-  //      GL_NORMAL_ARRAY
-  //      GL_COLOR_ARRAY
-  //      GL_INDEX_ARRAY
-  //      GL_TEXTURE_COORD_ARRAY
-  //      GL_EDGE_FLAG_ARRAY
-  //      GL_POLYGON_OFFSET_POINT
-  //      GL_POLYGON_OFFSET_LINE
-  //      GL_POLYGON_OFFSET_FILL
-
-  // ErrorCode
-  GL_NO_ERROR                       = 0;
-  GL_INVALID_ENUM                   = $0500;
-  GL_INVALID_VALUE                  = $0501;
-  GL_INVALID_OPERATION              = $0502;
-  GL_STACK_OVERFLOW                 = $0503;
-  GL_STACK_UNDERFLOW                = $0504;
-  GL_OUT_OF_MEMORY                  = $0505;
-
-  // FeedBackMode
-  GL_2D                             = $0600;
-  GL_3D                             = $0601;
-  GL_3D_COLOR                       = $0602;
-  GL_3D_COLOR_TEXTURE               = $0603;
-  GL_4D_COLOR_TEXTURE               = $0604;
-
-  // FeedBackToken
-  GL_PASS_THROUGH_TOKEN             = $0700;
-  GL_POINT_TOKEN                    = $0701;
-  GL_LINE_TOKEN                     = $0702;
-  GL_POLYGON_TOKEN                  = $0703;
-  GL_BITMAP_TOKEN                   = $0704;
-  GL_DRAW_PIXEL_TOKEN               = $0705;
-  GL_COPY_PIXEL_TOKEN               = $0706;
-  GL_LINE_RESET_TOKEN               = $0707;
-
-  // FogMode
-  //      GL_LINEAR
-  GL_EXP                            = $0800;
-  GL_EXP2                           = $0801;
-
-  // FogParameter
-  //      GL_FOG_COLOR
-  //      GL_FOG_DENSITY
-  //      GL_FOG_END
-  //      GL_FOG_INDEX
-  //      GL_FOG_MODE
-  //      GL_FOG_START
-
-  // FrontFaceDirection
-  GL_CW                             = $0900;
-  GL_CCW                            = $0901;
-
-  // GetMapTarget
-  GL_COEFF                          = $0A00;
-  GL_ORDER                          = $0A01;
-  GL_DOMAIN                         = $0A02;
-
-  // GetPixelMap
-  //      GL_PIXEL_MAP_I_TO_I
-  //      GL_PIXEL_MAP_S_TO_S
-  //      GL_PIXEL_MAP_I_TO_R
-  //      GL_PIXEL_MAP_I_TO_G
-  //      GL_PIXEL_MAP_I_TO_B
-  //      GL_PIXEL_MAP_I_TO_A
-  //      GL_PIXEL_MAP_R_TO_R
-  //      GL_PIXEL_MAP_G_TO_G
-  //      GL_PIXEL_MAP_B_TO_B
-  //      GL_PIXEL_MAP_A_TO_A
-
-  // GetPointerTarget
-  //      GL_VERTEX_ARRAY_POINTER
-  //      GL_NORMAL_ARRAY_POINTER
-  //      GL_COLOR_ARRAY_POINTER
-  //      GL_INDEX_ARRAY_POINTER
-  //      GL_TEXTURE_COORD_ARRAY_POINTER
-  //      GL_EDGE_FLAG_ARRAY_POINTER
-
-  // GetTarget
-  GL_CURRENT_COLOR                  = $0B00;
-  GL_CURRENT_INDEX                  = $0B01;
-  GL_CURRENT_NORMAL                 = $0B02;
-  GL_CURRENT_TEXTURE_COORDS         = $0B03;
-  GL_CURRENT_RASTER_COLOR           = $0B04;
-  GL_CURRENT_RASTER_INDEX           = $0B05;
-  GL_CURRENT_RASTER_TEXTURE_COORDS  = $0B06;
-  GL_CURRENT_RASTER_POSITION        = $0B07;
-  GL_CURRENT_RASTER_POSITION_VALID  = $0B08;
-  GL_CURRENT_RASTER_DISTANCE        = $0B09;
-  GL_POINT_SMOOTH                   = $0B10;
-  GL_POINT_SIZE                     = $0B11;
-  GL_POINT_SIZE_RANGE               = $0B12;
-  GL_POINT_SIZE_GRANULARITY         = $0B13;
-  GL_LINE_SMOOTH                    = $0B20;
-  GL_LINE_WIDTH                     = $0B21;
-  GL_LINE_WIDTH_RANGE               = $0B22;
-  GL_LINE_WIDTH_GRANULARITY         = $0B23;
-  GL_LINE_STIPPLE                   = $0B24;
-  GL_LINE_STIPPLE_PATTERN           = $0B25;
-  GL_LINE_STIPPLE_REPEAT            = $0B26;
-  GL_LIST_MODE                      = $0B30;
-  GL_MAX_LIST_NESTING               = $0B31;
-  GL_LIST_BASE                      = $0B32;
-  GL_LIST_INDEX                     = $0B33;
-  GL_POLYGON_MODE                   = $0B40;
-  GL_POLYGON_SMOOTH                 = $0B41;
-  GL_POLYGON_STIPPLE                = $0B42;
-  GL_EDGE_FLAG                      = $0B43;
-  GL_CULL_FACE                      = $0B44;
-  GL_CULL_FACE_MODE                 = $0B45;
-  GL_FRONT_FACE                     = $0B46;
-  GL_LIGHTING                       = $0B50;
-  GL_LIGHT_MODEL_LOCAL_VIEWER       = $0B51;
-  GL_LIGHT_MODEL_TWO_SIDE           = $0B52;
-  GL_LIGHT_MODEL_AMBIENT            = $0B53;
-  GL_SHADE_MODEL                    = $0B54;
-  GL_COLOR_MATERIAL_FACE            = $0B55;
-  GL_COLOR_MATERIAL_PARAMETER       = $0B56;
-  GL_COLOR_MATERIAL                 = $0B57;
-  GL_FOG                            = $0B60;
-  GL_FOG_INDEX                      = $0B61;
-  GL_FOG_DENSITY                    = $0B62;
-  GL_FOG_START                      = $0B63;
-  GL_FOG_END                        = $0B64;
-  GL_FOG_MODE                       = $0B65;
-  GL_FOG_COLOR                      = $0B66;
-  GL_DEPTH_RANGE                    = $0B70;
-  GL_DEPTH_TEST                     = $0B71;
-  GL_DEPTH_WRITEMASK                = $0B72;
-  GL_DEPTH_CLEAR_VALUE              = $0B73;
-  GL_DEPTH_FUNC                     = $0B74;
-  GL_ACCUM_CLEAR_VALUE              = $0B80;
-  GL_STENCIL_TEST                   = $0B90;
-  GL_STENCIL_CLEAR_VALUE            = $0B91;
-  GL_STENCIL_FUNC                   = $0B92;
-  GL_STENCIL_VALUE_MASK             = $0B93;
-  GL_STENCIL_FAIL                   = $0B94;
-  GL_STENCIL_PASS_DEPTH_FAIL        = $0B95;
-  GL_STENCIL_PASS_DEPTH_PASS        = $0B96;
-  GL_STENCIL_REF                    = $0B97;
-  GL_STENCIL_WRITEMASK              = $0B98;
-  GL_MATRIX_MODE                    = $0BA0;
-  GL_NORMALIZE                      = $0BA1;
-  GL_VIEWPORT                       = $0BA2;
-  GL_MODELVIEW_STACK_DEPTH          = $0BA3;
-  GL_PROJECTION_STACK_DEPTH         = $0BA4;
-  GL_TEXTURE_STACK_DEPTH            = $0BA5;
-  GL_MODELVIEW_MATRIX               = $0BA6;
-  GL_PROJECTION_MATRIX              = $0BA7;
-  GL_TEXTURE_MATRIX                 = $0BA8;
-  GL_ATTRIB_STACK_DEPTH             = $0BB0;
-  GL_CLIENT_ATTRIB_STACK_DEPTH      = $0BB1;
-  GL_ALPHA_TEST                     = $0BC0;
-  GL_ALPHA_TEST_FUNC                = $0BC1;
-  GL_ALPHA_TEST_REF                 = $0BC2;
-  GL_DITHER                         = $0BD0;
-  GL_BLEND_DST                      = $0BE0;
-  GL_BLEND_SRC                      = $0BE1;
-  GL_BLEND                          = $0BE2;
-  GL_LOGIC_OP_MODE                  = $0BF0;
-  GL_INDEX_LOGIC_OP                 = $0BF1;
-  GL_COLOR_LOGIC_OP                 = $0BF2;
-  GL_AUX_BUFFERS                    = $0C00;
-  GL_DRAW_BUFFER                    = $0C01;
-  GL_READ_BUFFER                    = $0C02;
-  GL_SCISSOR_BOX                    = $0C10;
-  GL_SCISSOR_TEST                   = $0C11;
-  GL_INDEX_CLEAR_VALUE              = $0C20;
-  GL_INDEX_WRITEMASK                = $0C21;
-  GL_COLOR_CLEAR_VALUE              = $0C22;
-  GL_COLOR_WRITEMASK                = $0C23;
-  GL_INDEX_MODE                     = $0C30;
-  GL_RGBA_MODE                      = $0C31;
-  GL_DOUBLEBUFFER                   = $0C32;
-  GL_STEREO                         = $0C33;
-  GL_RENDER_MODE                    = $0C40;
-  GL_PERSPECTIVE_CORRECTION_HINT    = $0C50;
-  GL_POINT_SMOOTH_HINT              = $0C51;
-  GL_LINE_SMOOTH_HINT               = $0C52;
-  GL_POLYGON_SMOOTH_HINT            = $0C53;
-  GL_FOG_HINT                       = $0C54;
-  GL_TEXTURE_GEN_S                  = $0C60;
-  GL_TEXTURE_GEN_T                  = $0C61;
-  GL_TEXTURE_GEN_R                  = $0C62;
-  GL_TEXTURE_GEN_Q                  = $0C63;
-  GL_PIXEL_MAP_I_TO_I               = $0C70;
-  GL_PIXEL_MAP_S_TO_S               = $0C71;
-  GL_PIXEL_MAP_I_TO_R               = $0C72;
-  GL_PIXEL_MAP_I_TO_G               = $0C73;
-  GL_PIXEL_MAP_I_TO_B               = $0C74;
-  GL_PIXEL_MAP_I_TO_A               = $0C75;
-  GL_PIXEL_MAP_R_TO_R               = $0C76;
-  GL_PIXEL_MAP_G_TO_G               = $0C77;
-  GL_PIXEL_MAP_B_TO_B               = $0C78;
-  GL_PIXEL_MAP_A_TO_A               = $0C79;
-  GL_PIXEL_MAP_I_TO_I_SIZE          = $0CB0;
-  GL_PIXEL_MAP_S_TO_S_SIZE          = $0CB1;
-  GL_PIXEL_MAP_I_TO_R_SIZE          = $0CB2;
-  GL_PIXEL_MAP_I_TO_G_SIZE          = $0CB3;
-  GL_PIXEL_MAP_I_TO_B_SIZE          = $0CB4;
-  GL_PIXEL_MAP_I_TO_A_SIZE          = $0CB5;
-  GL_PIXEL_MAP_R_TO_R_SIZE          = $0CB6;
-  GL_PIXEL_MAP_G_TO_G_SIZE          = $0CB7;
-  GL_PIXEL_MAP_B_TO_B_SIZE          = $0CB8;
-  GL_PIXEL_MAP_A_TO_A_SIZE          = $0CB9;
-  GL_UNPACK_SWAP_BYTES              = $0CF0;
-  GL_UNPACK_LSB_FIRST               = $0CF1;
-  GL_UNPACK_ROW_LENGTH              = $0CF2;
-  GL_UNPACK_SKIP_ROWS               = $0CF3;
-  GL_UNPACK_SKIP_PIXELS             = $0CF4;
-  GL_UNPACK_ALIGNMENT               = $0CF5;
-  GL_PACK_SWAP_BYTES                = $0D00;
-  GL_PACK_LSB_FIRST                 = $0D01;
-  GL_PACK_ROW_LENGTH                = $0D02;
-  GL_PACK_SKIP_ROWS                 = $0D03;
-  GL_PACK_SKIP_PIXELS               = $0D04;
-  GL_PACK_ALIGNMENT                 = $0D05;
-  GL_MAP_COLOR                      = $0D10;
-  GL_MAP_STENCIL                    = $0D11;
-  GL_INDEX_SHIFT                    = $0D12;
-  GL_INDEX_OFFSET                   = $0D13;
-  GL_RED_SCALE                      = $0D14;
-  GL_RED_BIAS                       = $0D15;
-  GL_ZOOM_X                         = $0D16;
-  GL_ZOOM_Y                         = $0D17;
-  GL_GREEN_SCALE                    = $0D18;
-  GL_GREEN_BIAS                     = $0D19;
-  GL_BLUE_SCALE                     = $0D1A;
-  GL_BLUE_BIAS                      = $0D1B;
-  GL_ALPHA_SCALE                    = $0D1C;
-  GL_ALPHA_BIAS                     = $0D1D;
-  GL_DEPTH_SCALE                    = $0D1E;
-  GL_DEPTH_BIAS                     = $0D1F;
-  GL_MAX_EVAL_ORDER                 = $0D30;
-  GL_MAX_LIGHTS                     = $0D31;
-  GL_MAX_CLIP_PLANES                = $0D32;
-  GL_MAX_TEXTURE_SIZE               = $0D33;
-  GL_MAX_PIXEL_MAP_TABLE            = $0D34;
-  GL_MAX_ATTRIB_STACK_DEPTH         = $0D35;
-  GL_MAX_MODELVIEW_STACK_DEPTH      = $0D36;
-  GL_MAX_NAME_STACK_DEPTH           = $0D37;
-  GL_MAX_PROJECTION_STACK_DEPTH     = $0D38;
-  GL_MAX_TEXTURE_STACK_DEPTH        = $0D39;
-  GL_MAX_VIEWPORT_DIMS              = $0D3A;
-  GL_MAX_CLIENT_ATTRIB_STACK_DEPTH  = $0D3B;
-  GL_SUBPIXEL_BITS                  = $0D50;
-  GL_INDEX_BITS                     = $0D51;
-  GL_RED_BITS                       = $0D52;
-  GL_GREEN_BITS                     = $0D53;
-  GL_BLUE_BITS                      = $0D54;
-  GL_ALPHA_BITS                     = $0D55;
-  GL_DEPTH_BITS                     = $0D56;
-  GL_STENCIL_BITS                   = $0D57;
-  GL_ACCUM_RED_BITS                 = $0D58;
-  GL_ACCUM_GREEN_BITS               = $0D59;
-  GL_ACCUM_BLUE_BITS                = $0D5A;
-  GL_ACCUM_ALPHA_BITS               = $0D5B;
-  GL_NAME_STACK_DEPTH               = $0D70;
-  GL_AUTO_NORMAL                    = $0D80;
-  GL_MAP1_COLOR_4                   = $0D90;
-  GL_MAP1_INDEX                     = $0D91;
-  GL_MAP1_NORMAL                    = $0D92;
-  GL_MAP1_TEXTURE_COORD_1           = $0D93;
-  GL_MAP1_TEXTURE_COORD_2           = $0D94;
-  GL_MAP1_TEXTURE_COORD_3           = $0D95;
-  GL_MAP1_TEXTURE_COORD_4           = $0D96;
-  GL_MAP1_VERTEX_3                  = $0D97;
-  GL_MAP1_VERTEX_4                  = $0D98;
-  GL_MAP2_COLOR_4                   = $0DB0;
-  GL_MAP2_INDEX                     = $0DB1;
-  GL_MAP2_NORMAL                    = $0DB2;
-  GL_MAP2_TEXTURE_COORD_1           = $0DB3;
-  GL_MAP2_TEXTURE_COORD_2           = $0DB4;
-  GL_MAP2_TEXTURE_COORD_3           = $0DB5;
-  GL_MAP2_TEXTURE_COORD_4           = $0DB6;
-  GL_MAP2_VERTEX_3                  = $0DB7;
-  GL_MAP2_VERTEX_4                  = $0DB8;
-  GL_MAP1_GRID_DOMAIN               = $0DD0;
-  GL_MAP1_GRID_SEGMENTS             = $0DD1;
-  GL_MAP2_GRID_DOMAIN               = $0DD2;
-  GL_MAP2_GRID_SEGMENTS             = $0DD3;
-  GL_TEXTURE_1D                     = $0DE0;
-  GL_TEXTURE_2D                     = $0DE1;
-  GL_FEEDBACK_BUFFER_POINTER        = $0DF0;
-  GL_FEEDBACK_BUFFER_SIZE           = $0DF1;
-  GL_FEEDBACK_BUFFER_TYPE           = $0DF2;
-  GL_SELECTION_BUFFER_POINTER       = $0DF3;
-  GL_SELECTION_BUFFER_SIZE          = $0DF4;
-  //      GL_TEXTURE_BINDING_1D
-  //      GL_TEXTURE_BINDING_2D
-  //      GL_VERTEX_ARRAY
-  //      GL_NORMAL_ARRAY
-  //      GL_COLOR_ARRAY
-  //      GL_INDEX_ARRAY
-  //      GL_TEXTURE_COORD_ARRAY
-  //      GL_EDGE_FLAG_ARRAY
-  //      GL_VERTEX_ARRAY_SIZE
-  //      GL_VERTEX_ARRAY_TYPE
-  //      GL_VERTEX_ARRAY_STRIDE
-  //      GL_NORMAL_ARRAY_TYPE
-  //      GL_NORMAL_ARRAY_STRIDE
-  //      GL_COLOR_ARRAY_SIZE
-  //      GL_COLOR_ARRAY_TYPE
-  //      GL_COLOR_ARRAY_STRIDE
-  //      GL_INDEX_ARRAY_TYPE
-  //      GL_INDEX_ARRAY_STRIDE
-  //      GL_TEXTURE_COORD_ARRAY_SIZE
-  //      GL_TEXTURE_COORD_ARRAY_TYPE
-  //      GL_TEXTURE_COORD_ARRAY_STRIDE
-  //      GL_EDGE_FLAG_ARRAY_STRIDE
-  //      GL_POLYGON_OFFSET_FACTOR
-  //      GL_POLYGON_OFFSET_UNITS
-
-  // GetTextureParameter
-  //      GL_TEXTURE_MAG_FILTER
-  //      GL_TEXTURE_MIN_FILTER
-  //      GL_TEXTURE_WRAP_S
-  //      GL_TEXTURE_WRAP_T
-  GL_TEXTURE_WIDTH                  = $1000;
-  GL_TEXTURE_HEIGHT                 = $1001;
-  GL_TEXTURE_INTERNAL_FORMAT        = $1003;
-  GL_TEXTURE_BORDER_COLOR           = $1004;
-  GL_TEXTURE_BORDER                 = $1005;
-  //      GL_TEXTURE_RED_SIZE
-  //      GL_TEXTURE_GREEN_SIZE
-  //      GL_TEXTURE_BLUE_SIZE
-  //      GL_TEXTURE_ALPHA_SIZE
-  //      GL_TEXTURE_LUMINANCE_SIZE
-  //      GL_TEXTURE_INTENSITY_SIZE
-  //      GL_TEXTURE_PRIORITY
-  //      GL_TEXTURE_RESIDENT
-
-  // HintMode
-  GL_DONT_CARE                      = $1100;
-  GL_FASTEST                        = $1101;
-  GL_NICEST                         = $1102;
-
-  // HintTarget
-  //      GL_PERSPECTIVE_CORRECTION_HINT
-  //      GL_POINT_SMOOTH_HINT
-  //      GL_LINE_SMOOTH_HINT
-  //      GL_POLYGON_SMOOTH_HINT
-  //      GL_FOG_HINT
-
-  // IndexPointerType
-  //      GL_SHORT
-  //      GL_INT
-  //      GL_FLOAT
-  //      GL_DOUBLE
-
-  // LightModelParameter
-  //      GL_LIGHT_MODEL_AMBIENT
-  //      GL_LIGHT_MODEL_LOCAL_VIEWER
-  //      GL_LIGHT_MODEL_TWO_SIDE
-
-  // LightName
-  GL_LIGHT0                         = $4000;
-  GL_LIGHT1                         = $4001;
-  GL_LIGHT2                         = $4002;
-  GL_LIGHT3                         = $4003;
-  GL_LIGHT4                         = $4004;
-  GL_LIGHT5                         = $4005;
-  GL_LIGHT6                         = $4006;
-  GL_LIGHT7                         = $4007;
-
-  // LightParameter
-  GL_AMBIENT                        = $1200;
-  GL_DIFFUSE                        = $1201;
-  GL_SPECULAR                       = $1202;
-  GL_POSITION                       = $1203;
-  GL_SPOT_DIRECTION                 = $1204;
-  GL_SPOT_EXPONENT                  = $1205;
-  GL_SPOT_CUTOFF                    = $1206;
-  GL_CONSTANT_ATTENUATION           = $1207;
-  GL_LINEAR_ATTENUATION             = $1208;
-  GL_QUADRATIC_ATTENUATION          = $1209;
-
-  // InterleavedArrays
-  //      GL_V2F
-  //      GL_V3F
-  //      GL_C4UB_V2F
-  //      GL_C4UB_V3F
-  //      GL_C3F_V3F
-  //      GL_N3F_V3F
-  //      GL_C4F_N3F_V3F
-  //      GL_T2F_V3F
-  //      GL_T4F_V4F
-  //      GL_T2F_C4UB_V3F
-  //      GL_T2F_C3F_V3F
-  //      GL_T2F_N3F_V3F
-  //      GL_T2F_C4F_N3F_V3F
-  //      GL_T4F_C4F_N3F_V4F
-
-  // ListMode
-  GL_COMPILE                        = $1300;
-  GL_COMPILE_AND_EXECUTE            = $1301;
-
-  // ListNameType
-  //      GL_BYTE
-  //      GL_UNSIGNED_BYTE
-  //      GL_SHORT
-  //      GL_UNSIGNED_SHORT
-  //      GL_INT
-  //      GL_UNSIGNED_INT
-  //      GL_FLOAT
-  //      GL_2_BYTES
-  //      GL_3_BYTES
-  //      GL_4_BYTES
-
-  // LogicOp
-  GL_CLEAR                          = $1500;
-  GL_AND                            = $1501;
-  GL_AND_REVERSE                    = $1502;
-  GL_COPY                           = $1503;
-  GL_AND_INVERTED                   = $1504;
-  GL_NOOP                           = $1505;
-  GL_XOR                            = $1506;
-  GL_OR                             = $1507;
-  GL_NOR                            = $1508;
-  GL_EQUIV                          = $1509;
-  GL_INVERT                         = $150A;
-  GL_OR_REVERSE                     = $150B;
-  GL_COPY_INVERTED                  = $150C;
-  GL_OR_INVERTED                    = $150D;
-  GL_NAND                           = $150E;
-  GL_SET                            = $150F;
-
-  // MapTarget
-  //      GL_MAP1_COLOR_4
-  //      GL_MAP1_INDEX
-  //      GL_MAP1_NORMAL
-  //      GL_MAP1_TEXTURE_COORD_1
-  //      GL_MAP1_TEXTURE_COORD_2
-  //      GL_MAP1_TEXTURE_COORD_3
-  //      GL_MAP1_TEXTURE_COORD_4
-  //      GL_MAP1_VERTEX_3
-  //      GL_MAP1_VERTEX_4
-  //      GL_MAP2_COLOR_4
-  //      GL_MAP2_INDEX
-  //      GL_MAP2_NORMAL
-  //      GL_MAP2_TEXTURE_COORD_1
-  //      GL_MAP2_TEXTURE_COORD_2
-  //      GL_MAP2_TEXTURE_COORD_3
-  //      GL_MAP2_TEXTURE_COORD_4
-  //      GL_MAP2_VERTEX_3
-  //      GL_MAP2_VERTEX_4
-
-  // MaterialFace
-  //      GL_FRONT
-  //      GL_BACK
-  //      GL_FRONT_AND_BACK
-
-  // MaterialParameter
-  GL_EMISSION                       = $1600;
-  GL_SHININESS                      = $1601;
-  GL_AMBIENT_AND_DIFFUSE            = $1602;
-  GL_COLOR_INDEXES                  = $1603;
-  //      GL_AMBIENT
-  //      GL_DIFFUSE
-  //      GL_SPECULAR
-
-  // MatrixMode
-  GL_MODELVIEW                      = $1700;
-  GL_PROJECTION                     = $1701;
-  GL_TEXTURE                        = $1702;
-
-  // MeshMode1
-  //      GL_POINT
-  //      GL_LINE
-
-  // MeshMode2
-  //      GL_POINT
-  //      GL_LINE
-  //      GL_FILL
-
-  // NormalPointerType
-  //      GL_BYTE
-  //      GL_SHORT
-  //      GL_INT
-  //      GL_FLOAT
-  //      GL_DOUBLE
-
-  // PixelCopyType
-  GL_COLOR                          = $1800;
-  GL_DEPTH                          = $1801;
-  GL_STENCIL                        = $1802;
-
-  // PixelFormat
-  GL_COLOR_INDEX                    = $1900;
-  GL_STENCIL_INDEX                  = $1901;
-  GL_DEPTH_COMPONENT                = $1902;
-  GL_RED                            = $1903;
-  GL_GREEN                          = $1904;
-  GL_BLUE                           = $1905;
-  GL_ALPHA                          = $1906;
-  GL_RGB                            = $1907;
-  GL_RGBA                           = $1908;
-  GL_LUMINANCE                      = $1909;
-  GL_LUMINANCE_ALPHA                = $190A;
-
-  // PixelMap
-  //      GL_PIXEL_MAP_I_TO_I
-  //      GL_PIXEL_MAP_S_TO_S
-  //      GL_PIXEL_MAP_I_TO_R
-  //      GL_PIXEL_MAP_I_TO_G
-  //      GL_PIXEL_MAP_I_TO_B
-  //      GL_PIXEL_MAP_I_TO_A
-  //      GL_PIXEL_MAP_R_TO_R
-  //      GL_PIXEL_MAP_G_TO_G
-  //      GL_PIXEL_MAP_B_TO_B
-  //      GL_PIXEL_MAP_A_TO_A
-
-  // PixelStore
-  //      GL_UNPACK_SWAP_BYTES
-  //      GL_UNPACK_LSB_FIRST
-  //      GL_UNPACK_ROW_LENGTH
-  //      GL_UNPACK_SKIP_ROWS
-  //      GL_UNPACK_SKIP_PIXELS
-  //      GL_UNPACK_ALIGNMENT
-  //      GL_PACK_SWAP_BYTES
-  //      GL_PACK_LSB_FIRST
-  //      GL_PACK_ROW_LENGTH
-  //      GL_PACK_SKIP_ROWS
-  //      GL_PACK_SKIP_PIXELS
-  //      GL_PACK_ALIGNMENT
-
-  // PixelTransfer
-  //      GL_MAP_COLOR
-  //      GL_MAP_STENCIL
-  //      GL_INDEX_SHIFT
-  //      GL_INDEX_OFFSET
-  //      GL_RED_SCALE
-  //      GL_RED_BIAS
-  //      GL_GREEN_SCALE
-  //      GL_GREEN_BIAS
-  //      GL_BLUE_SCALE
-  //      GL_BLUE_BIAS
-  //      GL_ALPHA_SCALE
-  //      GL_ALPHA_BIAS
-  //      GL_DEPTH_SCALE
-  //      GL_DEPTH_BIAS
-
-  // PixelType
-  GL_BITMAP                         = $1A00;
-  //      GL_BYTE
-  //      GL_UNSIGNED_BYTE
-  //      GL_SHORT
-  //      GL_UNSIGNED_SHORT
-  //      GL_INT
-  //      GL_UNSIGNED_INT
-  //      GL_FLOAT
-
-  // PolygonMode
-  GL_POINT                          = $1B00;
-  GL_LINE                           = $1B01;
-  GL_FILL                           = $1B02;
-
-  // ReadBufferMode
-  //      GL_FRONT_LEFT
-  //      GL_FRONT_RIGHT
-  //      GL_BACK_LEFT
-  //      GL_BACK_RIGHT
-  //      GL_FRONT
-  //      GL_BACK
-  //      GL_LEFT
-  //      GL_RIGHT
-  //      GL_AUX0
-  //      GL_AUX1
-  //      GL_AUX2
-  //      GL_AUX3
-
-  // RenderingMode
-  GL_RENDER                         = $1C00;
-  GL_FEEDBACK                       = $1C01;
-  GL_SELECT                         = $1C02;
-
-  // ShadingModel
-  GL_FLAT                           = $1D00;
-  GL_SMOOTH                         = $1D01;
-
-  // StencilFunction
-  //      GL_NEVER
-  //      GL_LESS
-  //      GL_EQUAL
-  //      GL_LEQUAL
-  //      GL_GREATER
-  //      GL_NOTEQUAL
-  //      GL_GEQUAL
-  //      GL_ALWAYS
-
-  // StencilOp
-  //      GL_ZERO
-  GL_KEEP                           = $1E00;
-  GL_REPLACE                        = $1E01;
-  GL_INCR                           = $1E02;
-  GL_DECR                           = $1E03;
-  //      GL_INVERT
-
-  // StringName
-  GL_VENDOR                         = $1F00;
-  GL_RENDERER                       = $1F01;
-  GL_VERSION                        = $1F02;
-  GL_EXTENSIONS                     = $1F03;
-
-  // TextureCoordName
-  GL_S                              = $2000;
-  GL_T                              = $2001;
-  GL_R                              = $2002;
-  GL_Q                              = $2003;
-
-  // TexCoordPointerType
-  //      GL_SHORT
-  //      GL_INT
-  //      GL_FLOAT
-  //      GL_DOUBLE
-
-  // TextureEnvMode
-  GL_MODULATE                       = $2100;
-  GL_DECAL                          = $2101;
-  //      GL_BLEND
-  //      GL_REPLACE
-
-  // TextureEnvParameter
-  GL_TEXTURE_ENV_MODE               = $2200;
-  GL_TEXTURE_ENV_COLOR              = $2201;
-
-  // TextureEnvTarget
-  GL_TEXTURE_ENV                    = $2300;
-
-  // TextureGenMode
-  GL_EYE_LINEAR                     = $2400;
-  GL_OBJECT_LINEAR                  = $2401;
-  GL_SPHERE_MAP                     = $2402;
-
-  // TextureGenParameter
-  GL_TEXTURE_GEN_MODE               = $2500;
-  GL_OBJECT_PLANE                   = $2501;
-  GL_EYE_PLANE                      = $2502;
-
-  // TextureMagFilter
-  GL_NEAREST                        = $2600;
-  GL_LINEAR                         = $2601;
-
-  // TextureMinFilter
-  //      GL_NEAREST
-  //      GL_LINEAR
-  GL_NEAREST_MIPMAP_NEAREST         = $2700;
-  GL_LINEAR_MIPMAP_NEAREST          = $2701;
-  GL_NEAREST_MIPMAP_LINEAR          = $2702;
-  GL_LINEAR_MIPMAP_LINEAR           = $2703;
-
-  // TextureParameterName
-  GL_TEXTURE_MAG_FILTER             = $2800;
-  GL_TEXTURE_MIN_FILTER             = $2801;
-  GL_TEXTURE_WRAP_S                 = $2802;
-  GL_TEXTURE_WRAP_T                 = $2803;
-  //      GL_TEXTURE_BORDER_COLOR
-  //      GL_TEXTURE_PRIORITY
-
-  // TextureTarget
-  //      GL_TEXTURE_1D
-  //      GL_TEXTURE_2D
-  //      GL_PROXY_TEXTURE_1D
-  //      GL_PROXY_TEXTURE_2D
-
-  // TextureWrapMode
-  GL_CLAMP                          = $2900;
-  GL_REPEAT                         = $2901;
-
-  // VertexPointerType
-  //      GL_SHORT
-  //      GL_INT
-  //      GL_FLOAT
-  //      GL_DOUBLE
-
-  // ClientAttribMask
-  GL_CLIENT_PIXEL_STORE_BIT         = $00000001;
-  GL_CLIENT_VERTEX_ARRAY_BIT        = $00000002;
-  GL_CLIENT_ALL_ATTRIB_BITS         = $FFFFFFFF;
-
-  // polygon_offset
-  GL_POLYGON_OFFSET_FACTOR          = $8038;
-  GL_POLYGON_OFFSET_UNITS           = $2A00;
-  GL_POLYGON_OFFSET_POINT           = $2A01;
-  GL_POLYGON_OFFSET_LINE            = $2A02;
-  GL_POLYGON_OFFSET_FILL            = $8037;
-
-  // texture
-  GL_ALPHA4                         = $803B;
-  GL_ALPHA8                         = $803C;
-  GL_ALPHA12                        = $803D;
-  GL_ALPHA16                        = $803E;
-  GL_LUMINANCE4                     = $803F;
-  GL_LUMINANCE8                     = $8040;
-  GL_LUMINANCE12                    = $8041;
-  GL_LUMINANCE16                    = $8042;
-  GL_LUMINANCE4_ALPHA4              = $8043;
-  GL_LUMINANCE6_ALPHA2              = $8044;
-  GL_LUMINANCE8_ALPHA8              = $8045;
-  GL_LUMINANCE12_ALPHA4             = $8046;
-  GL_LUMINANCE12_ALPHA12            = $8047;
-  GL_LUMINANCE16_ALPHA16            = $8048;
-  GL_INTENSITY                      = $8049;
-  GL_INTENSITY4                     = $804A;
-  GL_INTENSITY8                     = $804B;
-  GL_INTENSITY12                    = $804C;
-  GL_INTENSITY16                    = $804D;
-  GL_R3_G3_B2                       = $2A10;
-  GL_RGB4                           = $804F;
-  GL_RGB5                           = $8050;
-  GL_RGB8                           = $8051;
-  GL_RGB10                          = $8052;
-  GL_RGB12                          = $8053;
-  GL_RGB16                          = $8054;
-  GL_RGBA2                          = $8055;
-  GL_RGBA4                          = $8056;
-  GL_RGB5_A1                        = $8057;
-  GL_RGBA8                          = $8058;
-  GL_RGB10_A2                       = $8059;
-  GL_RGBA12                         = $805A;
-  GL_RGBA16                         = $805B;
-  GL_TEXTURE_RED_SIZE               = $805C;
-  GL_TEXTURE_GREEN_SIZE             = $805D;
-  GL_TEXTURE_BLUE_SIZE              = $805E;
-  GL_TEXTURE_ALPHA_SIZE             = $805F;
-  GL_TEXTURE_LUMINANCE_SIZE         = $8060;
-  GL_TEXTURE_INTENSITY_SIZE         = $8061;
-  GL_PROXY_TEXTURE_1D               = $8063;
-  GL_PROXY_TEXTURE_2D               = $8064;
-
-  // texture_object
-  GL_TEXTURE_PRIORITY               = $8066;
-  GL_TEXTURE_RESIDENT               = $8067;
-  GL_TEXTURE_BINDING_1D             = $8068;
-  GL_TEXTURE_BINDING_2D             = $8069;
-
-  // vertex_array
-  GL_VERTEX_ARRAY                   = $8074;
-  GL_NORMAL_ARRAY                   = $8075;
-  GL_COLOR_ARRAY                    = $8076;
-  GL_INDEX_ARRAY                    = $8077;
-  GL_TEXTURE_COORD_ARRAY            = $8078;
-  GL_EDGE_FLAG_ARRAY                = $8079;
-  GL_VERTEX_ARRAY_SIZE              = $807A;
-  GL_VERTEX_ARRAY_TYPE              = $807B;
-  GL_VERTEX_ARRAY_STRIDE            = $807C;
-  GL_NORMAL_ARRAY_TYPE              = $807E;
-  GL_NORMAL_ARRAY_STRIDE            = $807F;
-  GL_COLOR_ARRAY_SIZE               = $8081;
-  GL_COLOR_ARRAY_TYPE               = $8082;
-  GL_COLOR_ARRAY_STRIDE             = $8083;
-  GL_INDEX_ARRAY_TYPE               = $8085;
-  GL_INDEX_ARRAY_STRIDE             = $8086;
-  GL_TEXTURE_COORD_ARRAY_SIZE       = $8088;
-  GL_TEXTURE_COORD_ARRAY_TYPE       = $8089;
-  GL_TEXTURE_COORD_ARRAY_STRIDE     = $808A;
-  GL_EDGE_FLAG_ARRAY_STRIDE         = $808C;
-  GL_VERTEX_ARRAY_POINTER           = $808E;
-  GL_NORMAL_ARRAY_POINTER           = $808F;
-  GL_COLOR_ARRAY_POINTER            = $8090;
-  GL_INDEX_ARRAY_POINTER            = $8091;
-  GL_TEXTURE_COORD_ARRAY_POINTER    = $8092;
-  GL_EDGE_FLAG_ARRAY_POINTER        = $8093;
-  GL_V2F                            = $2A20;
-  GL_V3F                            = $2A21;
-  GL_C4UB_V2F                       = $2A22;
-  GL_C4UB_V3F                       = $2A23;
-  GL_C3F_V3F                        = $2A24;
-  GL_N3F_V3F                        = $2A25;
-  GL_C4F_N3F_V3F                    = $2A26;
-  GL_T2F_V3F                        = $2A27;
-  GL_T4F_V4F                        = $2A28;
-  GL_T2F_C4UB_V3F                   = $2A29;
-  GL_T2F_C3F_V3F                    = $2A2A;
-  GL_T2F_N3F_V3F                    = $2A2B;
-  GL_T2F_C4F_N3F_V3F                = $2A2C;
-  GL_T4F_C4F_N3F_V4F                = $2A2D;
-
-  // Extensions
-  GL_EXT_vertex_array               = 1;
-  GL_WIN_swap_hint                  = 1;
-  GL_EXT_bgra                       = 1;
-  GL_EXT_paletted_texture           = 1;
-
-  // EXT_vertex_array
-  GL_VERTEX_ARRAY_EXT               = $8074;
-  GL_NORMAL_ARRAY_EXT               = $8075;
-  GL_COLOR_ARRAY_EXT                = $8076;
-  GL_INDEX_ARRAY_EXT                = $8077;
-  GL_TEXTURE_COORD_ARRAY_EXT        = $8078;
-  GL_EDGE_FLAG_ARRAY_EXT            = $8079;
-  GL_VERTEX_ARRAY_SIZE_EXT          = $807A;
-  GL_VERTEX_ARRAY_TYPE_EXT          = $807B;
-  GL_VERTEX_ARRAY_STRIDE_EXT        = $807C;
-  GL_VERTEX_ARRAY_COUNT_EXT         = $807D;
-  GL_NORMAL_ARRAY_TYPE_EXT          = $807E;
-  GL_NORMAL_ARRAY_STRIDE_EXT        = $807F;
-  GL_NORMAL_ARRAY_COUNT_EXT         = $8080;
-  GL_COLOR_ARRAY_SIZE_EXT           = $8081;
-  GL_COLOR_ARRAY_TYPE_EXT           = $8082;
-  GL_COLOR_ARRAY_STRIDE_EXT         = $8083;
-  GL_COLOR_ARRAY_COUNT_EXT          = $8084;
-  GL_INDEX_ARRAY_TYPE_EXT           = $8085;
-  GL_INDEX_ARRAY_STRIDE_EXT         = $8086;
-  GL_INDEX_ARRAY_COUNT_EXT          = $8087;
-  GL_TEXTURE_COORD_ARRAY_SIZE_EXT   = $8088;
-  GL_TEXTURE_COORD_ARRAY_TYPE_EXT   = $8089;
-  GL_TEXTURE_COORD_ARRAY_STRIDE_EXT = $808A;
-  GL_TEXTURE_COORD_ARRAY_COUNT_EXT  = $808B;
-  GL_EDGE_FLAG_ARRAY_STRIDE_EXT     = $808C;
-  GL_EDGE_FLAG_ARRAY_COUNT_EXT      = $808D;
-  GL_VERTEX_ARRAY_POINTER_EXT       = $808E;
-  GL_NORMAL_ARRAY_POINTER_EXT       = $808F;
-  GL_COLOR_ARRAY_POINTER_EXT        = $8090;
-  GL_INDEX_ARRAY_POINTER_EXT        = $8091;
-  GL_TEXTURE_COORD_ARRAY_POINTER_EXT = $8092;
-  GL_EDGE_FLAG_ARRAY_POINTER_EXT    = $8093;
-  GL_DOUBLE_EXT                     = GL_DOUBLE;
-
-  // EXT_bgra
-  GL_BGR_EXT                        = $80E0;
-  GL_BGRA_EXT                       = $80E1;
-
-  // EXT_paletted_texture
-
-  // These must match the GL_COLOR_TABLE_*_SGI enumerants
-  GL_COLOR_TABLE_FORMAT_EXT         = $80D8;
-  GL_COLOR_TABLE_WIDTH_EXT          = $80D9;
-  GL_COLOR_TABLE_RED_SIZE_EXT       = $80DA;
-  GL_COLOR_TABLE_GREEN_SIZE_EXT     = $80DB;
-  GL_COLOR_TABLE_BLUE_SIZE_EXT      = $80DC;
-  GL_COLOR_TABLE_ALPHA_SIZE_EXT     = $80DD;
-  GL_COLOR_TABLE_LUMINANCE_SIZE_EXT = $80DE;
-  GL_COLOR_TABLE_INTENSITY_SIZE_EXT = $80DF;
-
-  GL_COLOR_INDEX1_EXT               = $80E2;
-  GL_COLOR_INDEX2_EXT               = $80E3;
-  GL_COLOR_INDEX4_EXT               = $80E4;
-  GL_COLOR_INDEX8_EXT               = $80E5;
-  GL_COLOR_INDEX12_EXT              = $80E6;
-  GL_COLOR_INDEX16_EXT              = $80E7;
-
-  // For compatibility with OpenGL v1.0
-  GL_LOGIC_OP                       = GL_INDEX_LOGIC_OP;
-  GL_TEXTURE_COMPONENTS             = GL_TEXTURE_INTERNAL_FORMAT;
-
-{******************************************************************************}
-
-{$IFDEF MORPHOS}
-
-{ MorphOS GL works differently due to different dynamic-library handling on Amiga-like }
-{ systems, so its headers are included here. }
-{$INCLUDE tinyglh.inc}
-
-{$ELSE MORPHOS}
-var
-  glAccum: procedure(op: GLenum; value: GLfloat); extdecl;
-  glAlphaFunc: procedure(func: GLenum; ref: GLclampf); extdecl;
-  glAreTexturesResident: function (n: GLsizei; const textures: PGLuint; residences: PGLboolean): GLboolean; extdecl;
-  glArrayElement: procedure(i: GLint); extdecl;
-  glBegin: procedure(mode: GLenum); extdecl;
-  glBindTexture: procedure(target: GLenum; texture: GLuint); extdecl;
-  glBitmap: procedure (width, height: GLsizei; xorig, yorig: GLfloat; xmove, ymove: GLfloat; const bitmap: PGLubyte); extdecl;
-  glBlendFunc: procedure(sfactor, dfactor: GLenum); extdecl;
-  glCallList: procedure(list: GLuint); extdecl;
-  glCallLists: procedure(n: GLsizei; atype: GLenum; const lists: Pointer); extdecl;
-  glClear: procedure(mask: GLbitfield); extdecl;
-  glClearAccum: procedure(red, green, blue, alpha: GLfloat); extdecl;
-  glClearColor: procedure(red, green, blue, alpha: GLclampf); extdecl;
-  glClearDepth: procedure(depth: GLclampd); extdecl;
-  glClearIndex: procedure(c: GLfloat); extdecl;
-  glClearStencil: procedure(s: GLint); extdecl;
-  glClipPlane: procedure(plane: GLenum; const equation: PGLdouble); extdecl;
-  glColor3b: procedure(red, green, blue: GLbyte); extdecl;
-  glColor3bv: procedure(const v: PGLbyte); extdecl;
-  glColor3d: procedure(red, green, blue: GLdouble); extdecl;
-  glColor3dv: procedure(const v: PGLdouble); extdecl;
-  glColor3f: procedure(red, green, blue: GLfloat); extdecl;
-  glColor3fv: procedure(const v: PGLfloat); extdecl;
-  glColor3i: procedure(red, green, blue: GLint); extdecl;
-  glColor3iv: procedure(const v: PGLint); extdecl;
-  glColor3s: procedure(red, green, blue: GLshort); extdecl;
-  glColor3sv: procedure(const v: PGLshort); extdecl;
-  glColor3ub: procedure(red, green, blue: GLubyte); extdecl;
-  glColor3ubv: procedure(const v: PGLubyte); extdecl;
-  glColor3ui: procedure(red, green, blue: GLuint); extdecl;
-  glColor3uiv: procedure(const v: PGLuint); extdecl;
-  glColor3us: procedure(red, green, blue: GLushort); extdecl;
-  glColor3usv: procedure(const v: PGLushort); extdecl;
-  glColor4b: procedure(red, green, blue, alpha: GLbyte); extdecl;
-  glColor4bv: procedure(const v: PGLbyte); extdecl;
-  glColor4d: procedure(red, green, blue, alpha: GLdouble); extdecl;
-  glColor4dv: procedure(const v: PGLdouble); extdecl;
-  glColor4f: procedure(red, green, blue, alpha: GLfloat); extdecl;
-  glColor4fv: procedure(const v: PGLfloat); extdecl;
-  glColor4i: procedure(red, green, blue, alpha: GLint); extdecl;
-  glColor4iv: procedure(const v: PGLint); extdecl;
-  glColor4s: procedure(red, green, blue, alpha: GLshort); extdecl;
-  glColor4sv: procedure(const v: PGLshort); extdecl;
-  glColor4ub: procedure(red, green, blue, alpha: GLubyte); extdecl;
-  glColor4ubv: procedure(const v: PGLubyte); extdecl;
-  glColor4ui: procedure(red, green, blue, alpha: GLuint); extdecl;
-  glColor4uiv: procedure(const v: PGLuint); extdecl;
-  glColor4us: procedure(red, green, blue, alpha: GLushort); extdecl;
-  glColor4usv: procedure(const v: PGLushort); extdecl;
-  glColorMask: procedure(red, green, blue, alpha: GLboolean); extdecl;
-  glColorMaterial: procedure(face, mode: GLenum); extdecl;
-  glColorPointer: procedure(size: GLint; atype: GLenum; stride: GLsizei; const pointer: Pointer); extdecl;
-  glCopyPixels: procedure(x, y: GLint; width, height: GLsizei; atype: GLenum); extdecl;
-  glCopyTexImage1D: procedure (target: GLenum; level: GLint; internalFormat: GLenum; x, y: GLint; width: GLsizei; border: GLint); extdecl;
-  glCopyTexImage2D: procedure(target: GLenum; level: GLint; internalFormat: GLenum; x, y: GLint; width, height: GLsizei; border: GLint); extdecl;
-  glCopyTexSubImage1D: procedure(target: GLenum; level, xoffset, x, y: GLint; width: GLsizei); extdecl;
-  glCopyTexSubImage2D: procedure(target: GLenum; level, xoffset, yoffset, x, y: GLint; width, height: GLsizei); extdecl;
-  glCullFace: procedure(mode: GLenum); extdecl;
-  glDeleteLists: procedure(list: GLuint; range: GLsizei); extdecl;
-  glDeleteTextures: procedure(n: GLsizei; const textures: PGLuint); extdecl;
-  glDepthFunc: procedure(func: GLenum); extdecl;
-  glDepthMask: procedure(flag: GLboolean); extdecl;
-  glDepthRange: procedure(zNear, zFar: GLclampd); extdecl;
-  glDisable: procedure(cap: GLenum); extdecl;
-  glDisableClientState: procedure(aarray: GLenum); extdecl;
-  glDrawArrays: procedure(mode: GLenum; first: GLint; count: GLsizei); extdecl;
-  glDrawBuffer: procedure(mode: GLenum); extdecl;
-  glDrawElements: procedure(mode: GLenum; count: GLsizei; atype: GLenum; const indices: Pointer); extdecl;
-  glDrawPixels: procedure(width, height: GLsizei; format, atype: GLenum; const pixels: Pointer); extdecl;
-  glEdgeFlag: procedure(flag: GLboolean); extdecl;
-  glEdgeFlagPointer: procedure(stride: GLsizei; const pointer: Pointer); extdecl;
-  glEdgeFlagv: procedure(const flag: PGLboolean); extdecl;
-  glEnable: procedure(cap: GLenum); extdecl;
-  glEnableClientState: procedure(aarray: GLenum); extdecl;
-  glEnd: procedure; extdecl;
-  glEndList: procedure; extdecl;
-  glEvalCoord1d: procedure(u: GLdouble); extdecl;
-  glEvalCoord1dv: procedure(const u: PGLdouble); extdecl;
-  glEvalCoord1f: procedure(u: GLfloat); extdecl;
-  glEvalCoord1fv: procedure(const u: PGLfloat); extdecl;
-  glEvalCoord2d: procedure(u, v: GLdouble); extdecl;
-  glEvalCoord2dv: procedure(const u: PGLdouble); extdecl;
-  glEvalCoord2f: procedure(u, v: GLfloat); extdecl;
-  glEvalCoord2fv: procedure(const u: PGLfloat); extdecl;
-  glEvalMesh1: procedure(mode: GLenum; i1, i2: GLint); extdecl;
-  glEvalMesh2: procedure(mode: GLenum; i1, i2, j1, j2: GLint); extdecl;
-  glEvalPoint1: procedure(i: GLint); extdecl;
-  glEvalPoint2: procedure(i, j: GLint); extdecl;
-  glFeedbackBuffer: procedure(size: GLsizei; atype: GLenum; buffer: PGLfloat); extdecl;
-  glFinish: procedure; extdecl;
-  glFlush: procedure; extdecl;
-  glFogf: procedure(pname: GLenum; param: GLfloat); extdecl;
-  glFogfv: procedure(pname: GLenum; const params: PGLfloat); extdecl;
-  glFogi: procedure(pname: GLenum; param: GLint); extdecl;
-  glFogiv: procedure(pname: GLenum; const params: PGLint); extdecl;
-  glFrontFace: procedure(mode: GLenum); extdecl;
-  glFrustum: procedure(left, right, bottom, top, zNear, zFar: GLdouble); extdecl;
-  glGenLists: function(range: GLsizei): GLuint; extdecl;
-  glGenTextures: procedure(n: GLsizei; textures: PGLuint); extdecl;
-  glGetBooleanv: procedure(pname: GLenum; params: PGLboolean); extdecl;
-  glGetClipPlane: procedure(plane: GLenum; equation: PGLdouble); extdecl;
-  glGetDoublev: procedure(pname: GLenum; params: PGLdouble); extdecl;
-  glGetError: function: GLenum; extdecl;
-  glGetFloatv: procedure(pname: GLenum; params: PGLfloat); extdecl;
-  glGetIntegerv: procedure(pname: GLenum; params: PGLint); extdecl;
-  glGetLightfv: procedure(light, pname: GLenum; params: PGLfloat); extdecl;
-  glGetLightiv: procedure(light, pname: GLenum; params: PGLint); extdecl;
-  glGetMapdv: procedure(target, query: GLenum; v: PGLdouble); extdecl;
-  glGetMapfv: procedure(target, query: GLenum; v: PGLfloat); extdecl;
-  glGetMapiv: procedure(target, query: GLenum; v: PGLint); extdecl;
-  glGetMaterialfv: procedure(face, pname: GLenum; params: PGLfloat); extdecl;
-  glGetMaterialiv: procedure(face, pname: GLenum; params: PGLint); extdecl;
-  glGetPixelMapfv: procedure(map: GLenum; values: PGLfloat); extdecl;
-  glGetPixelMapuiv: procedure(map: GLenum; values: PGLuint); extdecl;
-  glGetPixelMapusv: procedure(map: GLenum; values: PGLushort); extdecl;
-  glGetPointerv: procedure(pname: GLenum; params: Pointer); extdecl;
-  glGetPolygonStipple: procedure(mask: PGLubyte); extdecl;
-  glGetString: function(name: GLenum): PChar; extdecl;
-  glGetTexEnvfv: procedure(target, pname: GLenum; params: PGLfloat); extdecl;
-  glGetTexEnviv: procedure(target, pname: GLenum; params: PGLint); extdecl;
-  glGetTexGendv: procedure(coord, pname: GLenum; params: PGLdouble); extdecl;
-  glGetTexGenfv: procedure(coord, pname: GLenum; params: PGLfloat); extdecl;
-  glGetTexGeniv: procedure(coord, pname: GLenum; params: PGLint); extdecl;
-  glGetTexImage: procedure(target: GLenum; level: GLint; format: GLenum; atype: GLenum; pixels: Pointer); extdecl;
-  glGetTexLevelParameterfv: procedure(target: GLenum; level: GLint; pname: GLenum; params: Pointer); extdecl;
-  glGetTexLevelParameteriv: procedure(target: GLenum; level: GLint; pname: GLenum; params: PGLint); extdecl;
-  glGetTexParameterfv: procedure(target, pname: GLenum; params: PGLfloat); extdecl;
-  glGetTexParameteriv: procedure(target, pname: GLenum; params: PGLint); extdecl;
-  glHint: procedure(target, mode: GLenum); extdecl;
-  glIndexMask: procedure(mask: GLuint); extdecl;
-  glIndexPointer: procedure(atype: GLenum; stride: GLsizei; const pointer: Pointer); extdecl;
-  glIndexd: procedure(c: GLdouble); extdecl;
-  glIndexdv: procedure(const c: PGLdouble); extdecl;
-  glIndexf: procedure(c: GLfloat); extdecl;
-  glIndexfv: procedure(const c: PGLfloat); extdecl;
-  glIndexi: procedure(c: GLint); extdecl;
-  glIndexiv: procedure(const c: PGLint); extdecl;
-  glIndexs: procedure(c: GLshort); extdecl;
-  glIndexsv: procedure(const c: PGLshort); extdecl;
-  glIndexub: procedure(c: GLubyte); extdecl;
-  glIndexubv: procedure(const c: PGLubyte); extdecl;
-  glInitNames: procedure; extdecl;
-  glInterleavedArrays: procedure(format: GLenum; stride: GLsizei; const pointer: Pointer); extdecl;
-  glIsEnabled: function(cap: GLenum): GLboolean; extdecl;
-  glIsList: function(list: GLuint): GLboolean; extdecl;
-  glIsTexture: function(texture: GLuint): GLboolean; extdecl;
-  glLightModelf: procedure(pname: GLenum; param: GLfloat); extdecl;
-  glLightModelfv: procedure(pname: GLenum; const params: PGLfloat); extdecl;
-  glLightModeli: procedure(pname: GLenum; param: GLint); extdecl;
-  glLightModeliv: procedure(pname: GLenum; const params: PGLint); extdecl;
-  glLightf: procedure(light, pname: GLenum; param: GLfloat); extdecl;
-  glLightfv: procedure(light, pname: GLenum; const params: PGLfloat); extdecl;
-  glLighti: procedure(light, pname: GLenum; param: GLint); extdecl;
-  glLightiv: procedure(light, pname: GLenum; const params: PGLint); extdecl;
-  glLineStipple: procedure(factor: GLint; pattern: GLushort); extdecl;
-  glLineWidth: procedure(width: GLfloat); extdecl;
-  glListBase: procedure(base: GLuint); extdecl;
-  glLoadIdentity: procedure; extdecl;
-  glLoadMatrixd: procedure(const m: PGLdouble); extdecl;
-  glLoadMatrixf: procedure(const m: PGLfloat); extdecl;
-  glLoadName: procedure(name: GLuint); extdecl;
-  glLogicOp: procedure(opcode: GLenum); extdecl;
-  glMap1d: procedure(target: GLenum; u1, u2: GLdouble; stride, order: GLint; const points: PGLdouble); extdecl;
-  glMap1f: procedure(target: GLenum; u1, u2: GLfloat; stride, order: GLint; const points: PGLfloat); extdecl;
-  glMap2d: procedure(target: GLenum; u1, u2: GLdouble; ustride, uorder: GLint; v1, v2: GLdouble; vstride, vorder: GLint; const points: PGLdouble); extdecl;
-  glMap2f: procedure(target: GLenum; u1, u2: GLfloat; ustride, uorder: GLint; v1, v2: GLfloat; vstride, vorder: GLint; const points: PGLfloat); extdecl;
-  glMapGrid1d: procedure(un: GLint; u1, u2: GLdouble); extdecl;
-  glMapGrid1f: procedure(un: GLint; u1, u2: GLfloat); extdecl;
-  glMapGrid2d: procedure(un: GLint; u1, u2: GLdouble; vn: GLint; v1, v2: GLdouble); extdecl;
-  glMapGrid2f: procedure(un: GLint; u1, u2: GLfloat; vn: GLint; v1, v2: GLfloat); extdecl;
-  glMaterialf: procedure(face, pname: GLenum; param: GLfloat); extdecl;
-  glMaterialfv: procedure(face, pname: GLenum; const params: PGLfloat); extdecl;
-  glMateriali: procedure(face, pname: GLenum; param: GLint); extdecl;
-  glMaterialiv: procedure(face, pname: GLenum; const params: PGLint); extdecl;
-  glMatrixMode: procedure(mode: GLenum); extdecl;
-  glMultMatrixd: procedure(const m: PGLdouble); extdecl;
-  glMultMatrixf: procedure(const m: PGLfloat); extdecl;
-  glNewList: procedure(list: GLuint; mode: GLenum); extdecl;
-  glNormal3b: procedure(nx, ny, nz: GLbyte); extdecl;
-  glNormal3bv: procedure(const v: PGLbyte); extdecl;
-  glNormal3d: procedure(nx, ny, nz: GLdouble); extdecl;
-  glNormal3dv: procedure(const v: PGLdouble); extdecl;
-  glNormal3f: procedure(nx, ny, nz: GLfloat); extdecl;
-  glNormal3fv: procedure(const v: PGLfloat); extdecl;
-  glNormal3i: procedure(nx, ny, nz: GLint); extdecl;
-  glNormal3iv: procedure(const v: PGLint); extdecl;
-  glNormal3s: procedure(nx, ny, nz: GLshort); extdecl;
-  glNormal3sv: procedure(const v: PGLshort); extdecl;
-  glNormalPointer: procedure(atype: GLenum; stride: GLsizei; const pointer: Pointer); extdecl;
-  glOrtho: procedure(left, right, bottom, top, zNear, zFar: GLdouble); extdecl;
-  glPassThrough: procedure(token: GLfloat); extdecl;
-  glPixelMapfv: procedure(map: GLenum; mapsize: GLsizei; const values: PGLfloat); extdecl;
-  glPixelMapuiv: procedure(map: GLenum; mapsize: GLsizei; const values: PGLuint); extdecl;
-  glPixelMapusv: procedure(map: GLenum; mapsize: GLsizei; const values: PGLushort); extdecl;
-  glPixelStoref: procedure(pname: GLenum; param: GLfloat); extdecl;
-  glPixelStorei: procedure(pname: GLenum; param: GLint); extdecl;
-  glPixelTransferf: procedure(pname: GLenum; param: GLfloat); extdecl;
-  glPixelTransferi: procedure(pname: GLenum; param: GLint); extdecl;
-  glPixelZoom: procedure(xfactor, yfactor: GLfloat); extdecl;
-  glPointSize: procedure(size: GLfloat); extdecl;
-  glPolygonMode: procedure(face, mode: GLenum); extdecl;
-  glPolygonOffset: procedure(factor, units: GLfloat); extdecl;
-  glPolygonStipple: procedure(const mask: PGLubyte); extdecl;
-  glPopAttrib: procedure; extdecl;
-  glPopClientAttrib: procedure; extdecl;
-  glPopMatrix: procedure; extdecl;
-  glPopName: procedure; extdecl;
-  glPrioritizeTextures: procedure(n: GLsizei; const textures: PGLuint; const priorities: PGLclampf); extdecl;
-  glPushAttrib: procedure(mask: GLbitfield); extdecl;
-  glPushClientAttrib: procedure(mask: GLbitfield); extdecl;
-  glPushMatrix: procedure; extdecl;
-  glPushName: procedure(name: GLuint); extdecl;
-  glRasterPos2d: procedure(x, y: GLdouble); extdecl;
-  glRasterPos2dv: procedure(const v: PGLdouble); extdecl;
-  glRasterPos2f: procedure(x, y: GLfloat); extdecl;
-  glRasterPos2fv: procedure(const v: PGLfloat); extdecl;
-  glRasterPos2i: procedure(x, y: GLint); extdecl;
-  glRasterPos2iv: procedure(const v: PGLint); extdecl;
-  glRasterPos2s: procedure(x, y: GLshort); extdecl;
-  glRasterPos2sv: procedure(const v: PGLshort); extdecl;
-  glRasterPos3d: procedure(x, y, z: GLdouble); extdecl;
-  glRasterPos3dv: procedure(const v: PGLdouble); extdecl;
-  glRasterPos3f: procedure(x, y, z: GLfloat); extdecl;
-  glRasterPos3fv: procedure(const v: PGLfloat); extdecl;
-  glRasterPos3i: procedure(x, y, z: GLint); extdecl;
-  glRasterPos3iv: procedure(const v: PGLint); extdecl;
-  glRasterPos3s: procedure(x, y, z: GLshort); extdecl;
-  glRasterPos3sv: procedure(const v: PGLshort); extdecl;
-  glRasterPos4d: procedure(x, y, z, w: GLdouble); extdecl;
-  glRasterPos4dv: procedure(const v: PGLdouble); extdecl;
-  glRasterPos4f: procedure(x, y, z, w: GLfloat); extdecl;
-  glRasterPos4fv: procedure(const v: PGLfloat); extdecl;
-  glRasterPos4i: procedure(x, y, z, w: GLint); extdecl;
-  glRasterPos4iv: procedure(const v: PGLint); extdecl;
-  glRasterPos4s: procedure(x, y, z, w: GLshort); extdecl;
-  glRasterPos4sv: procedure(const v: PGLshort); extdecl;
-  glReadBuffer: procedure(mode: GLenum); extdecl;
-  glReadPixels: procedure(x, y: GLint; width, height: GLsizei; format, atype: GLenum; pixels: Pointer); extdecl;
-  glRectd: procedure(x1, y1, x2, y2: GLdouble); extdecl;
-  glRectdv: procedure(const v1: PGLdouble; const v2: PGLdouble); extdecl;
-  glRectf: procedure(x1, y1, x2, y2: GLfloat); extdecl;
-  glRectfv: procedure(const v1: PGLfloat; const v2: PGLfloat); extdecl;
-  glRecti: procedure(x1, y1, x2, y2: GLint); extdecl;
-  glRectiv: procedure(const v1: PGLint; const v2: PGLint); extdecl;
-  glRects: procedure(x1, y1, x2, y2: GLshort); extdecl;
-  glRectsv: procedure(const v1: PGLshort; const v2: PGLshort); extdecl;
-  glRenderMode: function(mode: GLint): GLint; extdecl;
-  glRotated: procedure(angle, x, y, z: GLdouble); extdecl;
-  glRotatef: procedure(angle, x, y, z: GLfloat); extdecl;
-  glScaled: procedure(x, y, z: GLdouble); extdecl;
-  glScalef: procedure(x, y, z: GLfloat); extdecl;
-  glScissor: procedure(x, y: GLint; width, height: GLsizei); extdecl;
-  glSelectBuffer: procedure(size: GLsizei; buffer: PGLuint); extdecl;
-  glShadeModel: procedure(mode: GLenum); extdecl;
-  glStencilFunc: procedure(func: GLenum; ref: GLint; mask: GLuint); extdecl;
-  glStencilMask: procedure(mask: GLuint); extdecl;
-  glStencilOp: procedure(fail, zfail, zpass: GLenum); extdecl;
-  glTexCoord1d: procedure(s: GLdouble); extdecl;
-  glTexCoord1dv: procedure(const v: PGLdouble); extdecl;
-  glTexCoord1f: procedure(s: GLfloat); extdecl;
-  glTexCoord1fv: procedure(const v: PGLfloat); extdecl;
-  glTexCoord1i: procedure(s: GLint); extdecl;
-  glTexCoord1iv: procedure(const v: PGLint); extdecl;
-  glTexCoord1s: procedure(s: GLshort); extdecl;
-  glTexCoord1sv: procedure(const v: PGLshort); extdecl;
-  glTexCoord2d: procedure(s, t: GLdouble); extdecl;
-  glTexCoord2dv: procedure(const v: PGLdouble); extdecl;
-  glTexCoord2f: procedure(s, t: GLfloat); extdecl;
-  glTexCoord2fv: procedure(const v: PGLfloat); extdecl;
-  glTexCoord2i: procedure(s, t: GLint); extdecl;
-  glTexCoord2iv: procedure(const v: PGLint); extdecl;
-  glTexCoord2s: procedure(s, t: GLshort); extdecl;
-  glTexCoord2sv: procedure(const v: PGLshort); extdecl;
-  glTexCoord3d: procedure(s, t, r: GLdouble); extdecl;
-  glTexCoord3dv: procedure(const v: PGLdouble); extdecl;
-  glTexCoord3f: procedure(s, t, r: GLfloat); extdecl;
-  glTexCoord3fv: procedure(const v: PGLfloat); extdecl;
-  glTexCoord3i: procedure(s, t, r: GLint); extdecl;
-  glTexCoord3iv: procedure(const v: PGLint); extdecl;
-  glTexCoord3s: procedure(s, t, r: GLshort); extdecl;
-  glTexCoord3sv: procedure(const v: PGLshort); extdecl;
-  glTexCoord4d: procedure(s, t, r, q: GLdouble); extdecl;
-  glTexCoord4dv: procedure(const v: PGLdouble); extdecl;
-  glTexCoord4f: procedure(s, t, r, q: GLfloat); extdecl;
-  glTexCoord4fv: procedure(const v: PGLfloat); extdecl;
-  glTexCoord4i: procedure(s, t, r, q: GLint); extdecl;
-  glTexCoord4iv: procedure(const v: PGLint); extdecl;
-  glTexCoord4s: procedure(s, t, r, q: GLshort); extdecl;
-  glTexCoord4sv: procedure(const v: PGLshort); extdecl;
-  glTexCoordPointer: procedure(size: GLint; atype: GLenum; stride: GLsizei; const pointer: Pointer); extdecl;
-  glTexEnvf: procedure(target: GLenum; pname: GLenum; param: GLfloat); extdecl;
-  glTexEnvfv: procedure(target: GLenum; pname: GLenum; const params: PGLfloat); extdecl;
-  glTexEnvi: procedure(target: GLenum; pname: GLenum; param: GLint); extdecl;
-  glTexEnviv: procedure(target: GLenum; pname: GLenum; const params: PGLint); extdecl;
-  glTexGend: procedure(coord: GLenum; pname: GLenum; param: GLdouble); extdecl;
-  glTexGendv: procedure(coord: GLenum; pname: GLenum; const params: PGLdouble); extdecl;
-  glTexGenf: procedure(coord: GLenum; pname: GLenum; param: GLfloat); extdecl;
-  glTexGenfv: procedure(coord: GLenum; pname: GLenum; const params: PGLfloat); extdecl;
-  glTexGeni: procedure(coord: GLenum; pname: GLenum; param: GLint); extdecl;
-  glTexGeniv: procedure(coord: GLenum; pname: GLenum; const params: PGLint); extdecl;
-  glTexImage1D: procedure(target: GLenum; level, internalformat: GLint; width: GLsizei; border: GLint; format, atype: GLenum; const pixels: Pointer); extdecl;
-  glTexImage2D: procedure(target: GLenum; level, internalformat: GLint; width, height: GLsizei; border: GLint; format, atype: GLenum; const pixels: Pointer); extdecl;
-  glTexParameterf: procedure(target: GLenum; pname: GLenum; param: GLfloat); extdecl;
-  glTexParameterfv: procedure(target: GLenum; pname: GLenum; const params: PGLfloat); extdecl;
-  glTexParameteri: procedure(target: GLenum; pname: GLenum; param: GLint); extdecl;
-  glTexParameteriv: procedure(target: GLenum; pname: GLenum; const params: PGLint); extdecl;
-  glTexSubImage1D: procedure(target: GLenum; level, xoffset: GLint; width: GLsizei; format, atype: GLenum; const pixels: Pointer); extdecl;
-  glTexSubImage2D: procedure(target: GLenum; level, xoffset, yoffset: GLint; width, height: GLsizei; format, atype: GLenum; const pixels: Pointer); extdecl;
-  glTranslated: procedure(x, y, z: GLdouble); extdecl;
-  glTranslatef: procedure(x, y, z: GLfloat); extdecl;
-  glVertex2d: procedure(x, y: GLdouble); extdecl;
-  glVertex2dv: procedure(const v: PGLdouble); extdecl;
-  glVertex2f: procedure(x, y: GLfloat); extdecl;
-  glVertex2fv: procedure(const v: PGLfloat); extdecl;
-  glVertex2i: procedure(x, y: GLint); extdecl;
-  glVertex2iv: procedure(const v: PGLint); extdecl;
-  glVertex2s: procedure(x, y: GLshort); extdecl;
-  glVertex2sv: procedure(const v: PGLshort); extdecl;
-  glVertex3d: procedure(x, y, z: GLdouble); extdecl;
-  glVertex3dv: procedure(const v: PGLdouble); extdecl;
-  glVertex3f: procedure(x, y, z: GLfloat); extdecl;
-  glVertex3fv: procedure(const v: PGLfloat); extdecl;
-  glVertex3i: procedure(x, y, z: GLint); extdecl;
-  glVertex3iv: procedure(const v: PGLint); extdecl;
-  glVertex3s: procedure(x, y, z: GLshort); extdecl;
-  glVertex3sv: procedure(const v: PGLshort); extdecl;
-  glVertex4d: procedure(x, y, z, w: GLdouble); extdecl;
-  glVertex4dv: procedure(const v: PGLdouble); extdecl;
-  glVertex4f: procedure(x, y, z, w: GLfloat); extdecl;
-  glVertex4fv: procedure(const v: PGLfloat); extdecl;
-  glVertex4i: procedure(x, y, z, w: GLint); extdecl;
-  glVertex4iv: procedure(const v: PGLint); extdecl;
-  glVertex4s: procedure(x, y, z, w: GLshort); extdecl;
-  glVertex4sv: procedure(const v: PGLshort); extdecl;
-  glVertexPointer: procedure(size: GLint; atype: GLenum; stride: GLsizei; const pointer: Pointer); extdecl;
-  glViewport: procedure(x, y: GLint; width, height: GLsizei); extdecl;
-  {$IFDEF Windows}
-  ChoosePixelFormat: function(DC: HDC; p2: PPixelFormatDescriptor): Integer; extdecl;
-  {$ENDIF}
-{$ENDIF MORPHOS}
-
-type
-  // EXT_vertex_array
-  PFNGLARRAYELEMENTEXTPROC = procedure(i: GLint); extdecl;
-  PFNGLDRAWARRAYSEXTPROC = procedure(mode: GLenum; first: GLint; count: GLsizei); extdecl;
-  PFNGLVERTEXPOINTEREXTPROC = procedure(size: GLint; atype: GLenum;
-                                        stride, count: GLsizei; const pointer: Pointer); extdecl;
-  PFNGLNORMALPOINTEREXTPROC = procedure(atype: GLenum; stride, count: GLsizei;
-                                        const pointer: Pointer); extdecl;
-  PFNGLCOLORPOINTEREXTPROC = procedure(size: GLint; atype: GLenum; stride, count: GLsizei;
-                                       const pointer: Pointer); extdecl;
-  PFNGLINDEXPOINTEREXTPROC = procedure(atype: GLenum; stride, count: GLsizei;
-                                       const pointer: Pointer); extdecl;
-  PFNGLTEXCOORDPOINTEREXTPROC = procedure(size: GLint; atype: GLenum;
-                                          stride, count: GLsizei; const pointer: Pointer); extdecl;
-  PFNGLEDGEFLAGPOINTEREXTPROC = procedure(stride, count: GLsizei;
-                                          const pointer: PGLboolean); extdecl;
-  PFNGLGETPOINTERVEXTPROC = procedure(pname: GLenum; params: Pointer); extdecl;
-  PFNGLARRAYELEMENTARRAYEXTPROC = procedure(mode: GLenum; count: GLsizei;
-                                            const pi: Pointer); extdecl;
-
-  // WIN_swap_hint
-  PFNGLADDSWAPHINTRECTWINPROC = procedure(x, y: GLint; width, height: GLsizei); extdecl;
-
-  // EXT_paletted_texture
-  PFNGLCOLORTABLEEXTPROC = procedure(target, internalFormat: GLenum; width: GLsizei;
-                                     format, atype: GLenum; const data: Pointer); extdecl;
-  PFNGLCOLORSUBTABLEEXTPROC = procedure(target: GLenum; start, count: GLsizei;
-                                        format, atype: GLenum; const data: Pointer); extdecl;
-  PFNGLGETCOLORTABLEEXTPROC = procedure(target, format, atype: GLenum; data: Pointer); extdecl;
-  PFNGLGETCOLORTABLEPARAMETERIVEXTPROC = procedure(target, pname: GLenum; params: PGLint); extdecl;
-  PFNGLGETCOLORTABLEPARAMETERFVEXTPROC = procedure(target, pname: GLenum; params: PGLfloat); extdecl;
-
-procedure LoadOpenGL(const dll: String);
-procedure FreeOpenGL;
-
-implementation
-
-{$if defined(cpui386) or defined(cpux86_64)}
-uses
-  math;
-{$endif}
-
-{$ifdef windows}
-function WinChoosePixelFormat(DC: HDC; p2: PPixelFormatDescriptor): Integer; extdecl; external 'gdi32' name 'ChoosePixelFormat';
-{$endif}
-
-{$IFDEF MORPHOS}
-
-{ MorphOS GL works differently due to different dynamic-library handling on Amiga-like }
-{ systems, so its functions are included here. }
-{$INCLUDE tinygl.inc}
-
-{$ENDIF MORPHOS}
-
-procedure FreeOpenGL;
-begin
-{$IFDEF MORPHOS}
-
-  // MorphOS's GL will closed down by TinyGL unit, nothing is needed here.
-
-{$ELSE MORPHOS}
-  @glAccum := nil;
-  @glAlphaFunc := nil;
-  @glAreTexturesResident := nil;
-  @glArrayElement := nil;
-  @glBegin := nil;
-  @glBindTexture := nil;
-  @glBitmap := nil;
-  @glBlendFunc := nil;
-  @glCallList := nil;
-  @glCallLists := nil;
-  @glClear := nil;
-  @glClearAccum := nil;
-  @glClearColor := nil;
-  @glClearDepth := nil;
-  @glClearIndex := nil;
-  @glClearStencil := nil;
-  @glClipPlane := nil;
-  @glColor3b := nil;
-  @glColor3bv := nil;
-  @glColor3d := nil;
-  @glColor3dv := nil;
-  @glColor3f := nil;
-  @glColor3fv := nil;
-  @glColor3i := nil;
-  @glColor3iv := nil;
-  @glColor3s := nil;
-  @glColor3sv := nil;
-  @glColor3ub := nil;
-  @glColor3ubv := nil;
-  @glColor3ui := nil;
-  @glColor3uiv := nil;
-  @glColor3us := nil;
-  @glColor3usv := nil;
-  @glColor4b := nil;
-  @glColor4bv := nil;
-  @glColor4d := nil;
-  @glColor4dv := nil;
-  @glColor4f := nil;
-  @glColor4fv := nil;
-  @glColor4i := nil;
-  @glColor4iv := nil;
-  @glColor4s := nil;
-  @glColor4sv := nil;
-  @glColor4ub := nil;
-  @glColor4ubv := nil;
-  @glColor4ui := nil;
-  @glColor4uiv := nil;
-  @glColor4us := nil;
-  @glColor4usv := nil;
-  @glColorMask := nil;
-  @glColorMaterial := nil;
-  @glColorPointer := nil;
-  @glCopyPixels := nil;
-  @glCopyTexImage1D := nil;
-  @glCopyTexImage2D := nil;
-  @glCopyTexSubImage1D := nil;
-  @glCopyTexSubImage2D := nil;
-  @glCullFace := nil;
-  @glDeleteLists := nil;
-  @glDeleteTextures := nil;
-  @glDepthFunc := nil;
-  @glDepthMask := nil;
-  @glDepthRange := nil;
-  @glDisable := nil;
-  @glDisableClientState := nil;
-  @glDrawArrays := nil;
-  @glDrawBuffer := nil;
-  @glDrawElements := nil;
-  @glDrawPixels := nil;
-  @glEdgeFlag := nil;
-  @glEdgeFlagPointer := nil;
-  @glEdgeFlagv := nil;
-  @glEnable := nil;
-  @glEnableClientState := nil;
-  @glEnd := nil;
-  @glEndList := nil;
-  @glEvalCoord1d := nil;
-  @glEvalCoord1dv := nil;
-  @glEvalCoord1f := nil;
-  @glEvalCoord1fv := nil;
-  @glEvalCoord2d := nil;
-  @glEvalCoord2dv := nil;
-  @glEvalCoord2f := nil;
-  @glEvalCoord2fv := nil;
-  @glEvalMesh1 := nil;
-  @glEvalMesh2 := nil;
-  @glEvalPoint1 := nil;
-  @glEvalPoint2 := nil;
-  @glFeedbackBuffer := nil;
-  @glFinish := nil;
-  @glFlush := nil;
-  @glFogf := nil;
-  @glFogfv := nil;
-  @glFogi := nil;
-  @glFogiv := nil;
-  @glFrontFace := nil;
-  @glFrustum := nil;
-  @glGenLists := nil;
-  @glGenTextures := nil;
-  @glGetBooleanv := nil;
-  @glGetClipPlane := nil;
-  @glGetDoublev := nil;
-  @glGetError := nil;
-  @glGetFloatv := nil;
-  @glGetIntegerv := nil;
-  @glGetLightfv := nil;
-  @glGetLightiv := nil;
-  @glGetMapdv := nil;
-  @glGetMapfv := nil;
-  @glGetMapiv := nil;
-  @glGetMaterialfv := nil;
-  @glGetMaterialiv := nil;
-  @glGetPixelMapfv := nil;
-  @glGetPixelMapuiv := nil;
-  @glGetPixelMapusv := nil;
-  @glGetPointerv := nil;
-  @glGetPolygonStipple := nil;
-  @glGetString := nil;
-  @glGetTexEnvfv := nil;
-  @glGetTexEnviv := nil;
-  @glGetTexGendv := nil;
-  @glGetTexGenfv := nil;
-  @glGetTexGeniv := nil;
-  @glGetTexImage := nil;
-  @glGetTexLevelParameterfv := nil;
-  @glGetTexLevelParameteriv := nil;
-  @glGetTexParameterfv := nil;
-  @glGetTexParameteriv := nil;
-  @glHint := nil;
-  @glIndexMask := nil;
-  @glIndexPointer := nil;
-  @glIndexd := nil;
-  @glIndexdv := nil;
-  @glIndexf := nil;
-  @glIndexfv := nil;
-  @glIndexi := nil;
-  @glIndexiv := nil;
-  @glIndexs := nil;
-  @glIndexsv := nil;
-  @glIndexub := nil;
-  @glIndexubv := nil;
-  @glInitNames := nil;
-  @glInterleavedArrays := nil;
-  @glIsEnabled := nil;
-  @glIsList := nil;
-  @glIsTexture := nil;
-  @glLightModelf := nil;
-  @glLightModelfv := nil;
-  @glLightModeli := nil;
-  @glLightModeliv := nil;
-  @glLightf := nil;
-  @glLightfv := nil;
-  @glLighti := nil;
-  @glLightiv := nil;
-  @glLineStipple := nil;
-  @glLineWidth := nil;
-  @glListBase := nil;
-  @glLoadIdentity := nil;
-  @glLoadMatrixd := nil;
-  @glLoadMatrixf := nil;
-  @glLoadName := nil;
-  @glLogicOp := nil;
-  @glMap1d := nil;
-  @glMap1f := nil;
-  @glMap2d := nil;
-  @glMap2f := nil;
-  @glMapGrid1d := nil;
-  @glMapGrid1f := nil;
-  @glMapGrid2d := nil;
-  @glMapGrid2f := nil;
-  @glMaterialf := nil;
-  @glMaterialfv := nil;
-  @glMateriali := nil;
-  @glMaterialiv := nil;
-  @glMatrixMode := nil;
-  @glMultMatrixd := nil;
-  @glMultMatrixf := nil;
-  @glNewList := nil;
-  @glNormal3b := nil;
-  @glNormal3bv := nil;
-  @glNormal3d := nil;
-  @glNormal3dv := nil;
-  @glNormal3f := nil;
-  @glNormal3fv := nil;
-  @glNormal3i := nil;
-  @glNormal3iv := nil;
-  @glNormal3s := nil;
-  @glNormal3sv := nil;
-  @glNormalPointer := nil;
-  @glOrtho := nil;
-  @glPassThrough := nil;
-  @glPixelMapfv := nil;
-  @glPixelMapuiv := nil;
-  @glPixelMapusv := nil;
-  @glPixelStoref := nil;
-  @glPixelStorei := nil;
-  @glPixelTransferf := nil;
-  @glPixelTransferi := nil;
-  @glPixelZoom := nil;
-  @glPointSize := nil;
-  @glPolygonMode := nil;
-  @glPolygonOffset := nil;
-  @glPolygonStipple := nil;
-  @glPopAttrib := nil;
-  @glPopClientAttrib := nil;
-  @glPopMatrix := nil;
-  @glPopName := nil;
-  @glPrioritizeTextures := nil;
-  @glPushAttrib := nil;
-  @glPushClientAttrib := nil;
-  @glPushMatrix := nil;
-  @glPushName := nil;
-  @glRasterPos2d := nil;
-  @glRasterPos2dv := nil;
-  @glRasterPos2f := nil;
-  @glRasterPos2fv := nil;
-  @glRasterPos2i := nil;
-  @glRasterPos2iv := nil;
-  @glRasterPos2s := nil;
-  @glRasterPos2sv := nil;
-  @glRasterPos3d := nil;
-  @glRasterPos3dv := nil;
-  @glRasterPos3f := nil;
-  @glRasterPos3fv := nil;
-  @glRasterPos3i := nil;
-  @glRasterPos3iv := nil;
-  @glRasterPos3s := nil;
-  @glRasterPos3sv := nil;
-  @glRasterPos4d := nil;
-  @glRasterPos4dv := nil;
-  @glRasterPos4f := nil;
-  @glRasterPos4fv := nil;
-  @glRasterPos4i := nil;
-  @glRasterPos4iv := nil;
-  @glRasterPos4s := nil;
-  @glRasterPos4sv := nil;
-  @glReadBuffer := nil;
-  @glReadPixels := nil;
-  @glRectd := nil;
-  @glRectdv := nil;
-  @glRectf := nil;
-  @glRectfv := nil;
-  @glRecti := nil;
-  @glRectiv := nil;
-  @glRects := nil;
-  @glRectsv := nil;
-  @glRenderMode := nil;
-  @glRotated := nil;
-  @glRotatef := nil;
-  @glScaled := nil;
-  @glScalef := nil;
-  @glScissor := nil;
-  @glSelectBuffer := nil;
-  @glShadeModel := nil;
-  @glStencilFunc := nil;
-  @glStencilMask := nil;
-  @glStencilOp := nil;
-  @glTexCoord1d := nil;
-  @glTexCoord1dv := nil;
-  @glTexCoord1f := nil;
-  @glTexCoord1fv := nil;
-  @glTexCoord1i := nil;
-  @glTexCoord1iv := nil;
-  @glTexCoord1s := nil;
-  @glTexCoord1sv := nil;
-  @glTexCoord2d := nil;
-  @glTexCoord2dv := nil;
-  @glTexCoord2f := nil;
-  @glTexCoord2fv := nil;
-  @glTexCoord2i := nil;
-  @glTexCoord2iv := nil;
-  @glTexCoord2s := nil;
-  @glTexCoord2sv := nil;
-  @glTexCoord3d := nil;
-  @glTexCoord3dv := nil;
-  @glTexCoord3f := nil;
-  @glTexCoord3fv := nil;
-  @glTexCoord3i := nil;
-  @glTexCoord3iv := nil;
-  @glTexCoord3s := nil;
-  @glTexCoord3sv := nil;
-  @glTexCoord4d := nil;
-  @glTexCoord4dv := nil;
-  @glTexCoord4f := nil;
-  @glTexCoord4fv := nil;
-  @glTexCoord4i := nil;
-  @glTexCoord4iv := nil;
-  @glTexCoord4s := nil;
-  @glTexCoord4sv := nil;
-  @glTexCoordPointer := nil;
-  @glTexEnvf := nil;
-  @glTexEnvfv := nil;
-  @glTexEnvi := nil;
-  @glTexEnviv := nil;
-  @glTexGend := nil;
-  @glTexGendv := nil;
-  @glTexGenf := nil;
-  @glTexGenfv := nil;
-  @glTexGeni := nil;
-  @glTexGeniv := nil;
-  @glTexImage1D := nil;
-  @glTexImage2D := nil;
-  @glTexParameterf := nil;
-  @glTexParameterfv := nil;
-  @glTexParameteri := nil;
-  @glTexParameteriv := nil;
-  @glTexSubImage1D := nil;
-  @glTexSubImage2D := nil;
-  @glTranslated := nil;
-  @glTranslatef := nil;
-  @glVertex2d := nil;
-  @glVertex2dv := nil;
-  @glVertex2f := nil;
-  @glVertex2fv := nil;
-  @glVertex2i := nil;
-  @glVertex2iv := nil;
-  @glVertex2s := nil;
-  @glVertex2sv := nil;
-  @glVertex3d := nil;
-  @glVertex3dv := nil;
-  @glVertex3f := nil;
-  @glVertex3fv := nil;
-  @glVertex3i := nil;
-  @glVertex3iv := nil;
-  @glVertex3s := nil;
-  @glVertex3sv := nil;
-  @glVertex4d := nil;
-  @glVertex4dv := nil;
-  @glVertex4f := nil;
-  @glVertex4fv := nil;
-  @glVertex4i := nil;
-  @glVertex4iv := nil;
-  @glVertex4s := nil;
-  @glVertex4sv := nil;
-  @glVertexPointer := nil;
-  @glViewport := nil;
-  {$IFDEF Windows}
-  @ChoosePixelFormat := nil;
-  {$ENDIF}
-
-  if (LibGL <> 0) then
-    FreeLibrary(LibGL);
-{$ENDIF MORPHOS}
-end;
-
-procedure LoadOpenGL(const dll: String);
-{$IFDEF MORPHOS}
-begin
-  // MorphOS's GL has own initialization in TinyGL unit, nothing is needed here.
-end;
-{$ELSE MORPHOS}
-var
-  MethodName: string = '';
-
-  function GetGLProcAddress(Lib: PtrInt; ProcName: PChar): Pointer;
-  begin
-    MethodName:=ProcName;
-    Result:=GetProcAddress(Lib, ProcName);
-  end;
-
-begin
-
-  FreeOpenGL;
-
-  LibGL := LoadLibrary(PChar(dll));
-  if LibGL = 0 then raise Exception.Create('Could not load OpenGL from ' + dll);
-  try
-    @glAccum := GetGLProcAddress(LibGL, 'glAccum');
-    @glAlphaFunc := GetGLProcAddress(LibGL, 'glAlphaFunc');
-    @glAreTexturesResident := GetGLProcAddress(LibGL, 'glAreTexturesResident');
-    @glArrayElement := GetGLProcAddress(LibGL, 'glArrayElement');
-    @glBegin := GetGLProcAddress(LibGL, 'glBegin');
-    @glBindTexture := GetGLProcAddress(LibGL, 'glBindTexture');
-    @glBitmap := GetGLProcAddress(LibGL, 'glBitmap');
-    @glBlendFunc := GetGLProcAddress(LibGL, 'glBlendFunc');
-    @glCallList := GetGLProcAddress(LibGL, 'glCallList');
-    @glCallLists := GetGLProcAddress(LibGL, 'glCallLists');
-    @glClear := GetGLProcAddress(LibGL, 'glClear');
-    @glClearAccum := GetGLProcAddress(LibGL, 'glClearAccum');
-    @glClearColor := GetGLProcAddress(LibGL, 'glClearColor');
-    @glClearDepth := GetGLProcAddress(LibGL, 'glClearDepth');
-    @glClearIndex := GetGLProcAddress(LibGL, 'glClearIndex');
-    @glClearStencil := GetGLProcAddress(LibGL, 'glClearStencil');
-    @glClipPlane := GetGLProcAddress(LibGL, 'glClipPlane');
-    @glColor3b := GetGLProcAddress(LibGL, 'glColor3b');
-    @glColor3bv := GetGLProcAddress(LibGL, 'glColor3bv');
-    @glColor3d := GetGLProcAddress(LibGL, 'glColor3d');
-    @glColor3dv := GetGLProcAddress(LibGL, 'glColor3dv');
-    @glColor3f := GetGLProcAddress(LibGL, 'glColor3f');
-    @glColor3fv := GetGLProcAddress(LibGL, 'glColor3fv');
-    @glColor3i := GetGLProcAddress(LibGL, 'glColor3i');
-    @glColor3iv := GetGLProcAddress(LibGL, 'glColor3iv');
-    @glColor3s := GetGLProcAddress(LibGL, 'glColor3s');
-    @glColor3sv := GetGLProcAddress(LibGL, 'glColor3sv');
-    @glColor3ub := GetGLProcAddress(LibGL, 'glColor3ub');
-    @glColor3ubv := GetGLProcAddress(LibGL, 'glColor3ubv');
-    @glColor3ui := GetGLProcAddress(LibGL, 'glColor3ui');
-    @glColor3uiv := GetGLProcAddress(LibGL, 'glColor3uiv');
-    @glColor3us := GetGLProcAddress(LibGL, 'glColor3us');
-    @glColor3usv := GetGLProcAddress(LibGL, 'glColor3usv');
-    @glColor4b := GetGLProcAddress(LibGL, 'glColor4b');
-    @glColor4bv := GetGLProcAddress(LibGL, 'glColor4bv');
-    @glColor4d := GetGLProcAddress(LibGL, 'glColor4d');
-    @glColor4dv := GetGLProcAddress(LibGL, 'glColor4dv');
-    @glColor4f := GetGLProcAddress(LibGL, 'glColor4f');
-    @glColor4fv := GetGLProcAddress(LibGL, 'glColor4fv');
-    @glColor4i := GetGLProcAddress(LibGL, 'glColor4i');
-    @glColor4iv := GetGLProcAddress(LibGL, 'glColor4iv');
-    @glColor4s := GetGLProcAddress(LibGL, 'glColor4s');
-    @glColor4sv := GetGLProcAddress(LibGL, 'glColor4sv');
-    @glColor4ub := GetGLProcAddress(LibGL, 'glColor4ub');
-    @glColor4ubv := GetGLProcAddress(LibGL, 'glColor4ubv');
-    @glColor4ui := GetGLProcAddress(LibGL, 'glColor4ui');
-    @glColor4uiv := GetGLProcAddress(LibGL, 'glColor4uiv');
-    @glColor4us := GetGLProcAddress(LibGL, 'glColor4us');
-    @glColor4usv := GetGLProcAddress(LibGL, 'glColor4usv');
-    @glColorMask := GetGLProcAddress(LibGL, 'glColorMask');
-    @glColorMaterial := GetGLProcAddress(LibGL, 'glColorMaterial');
-    @glColorPointer := GetGLProcAddress(LibGL, 'glColorPointer');
-    @glCopyPixels := GetGLProcAddress(LibGL, 'glCopyPixels');
-    @glCopyTexImage1D := GetGLProcAddress(LibGL, 'glCopyTexImage1D');
-    @glCopyTexImage2D := GetGLProcAddress(LibGL, 'glCopyTexImage2D');
-    @glCopyTexSubImage1D := GetGLProcAddress(LibGL, 'glCopyTexSubImage1D');
-    @glCopyTexSubImage2D := GetGLProcAddress(LibGL, 'glCopyTexSubImage2D');
-    @glCullFace := GetGLProcAddress(LibGL, 'glCullFace');
-    @glDeleteLists := GetGLProcAddress(LibGL, 'glDeleteLists');
-    @glDeleteTextures := GetGLProcAddress(LibGL, 'glDeleteTextures');
-    @glDepthFunc := GetGLProcAddress(LibGL, 'glDepthFunc');
-    @glDepthMask := GetGLProcAddress(LibGL, 'glDepthMask');
-    @glDepthRange := GetGLProcAddress(LibGL, 'glDepthRange');
-    @glDisable := GetGLProcAddress(LibGL, 'glDisable');
-    @glDisableClientState := GetGLProcAddress(LibGL, 'glDisableClientState');
-    @glDrawArrays := GetGLProcAddress(LibGL, 'glDrawArrays');
-    @glDrawBuffer := GetGLProcAddress(LibGL, 'glDrawBuffer');
-    @glDrawElements := GetGLProcAddress(LibGL, 'glDrawElements');
-    @glDrawPixels := GetGLProcAddress(LibGL, 'glDrawPixels');
-    @glEdgeFlag := GetGLProcAddress(LibGL, 'glEdgeFlag');
-    @glEdgeFlagPointer := GetGLProcAddress(LibGL, 'glEdgeFlagPointer');
-    @glEdgeFlagv := GetGLProcAddress(LibGL, 'glEdgeFlagv');
-    @glEnable := GetGLProcAddress(LibGL, 'glEnable');
-    @glEnableClientState := GetGLProcAddress(LibGL, 'glEnableClientState');
-    @glEnd := GetGLProcAddress(LibGL, 'glEnd');
-    @glEndList := GetGLProcAddress(LibGL, 'glEndList');
-    @glEvalCoord1d := GetGLProcAddress(LibGL, 'glEvalCoord1d');
-    @glEvalCoord1dv := GetGLProcAddress(LibGL, 'glEvalCoord1dv');
-    @glEvalCoord1f := GetGLProcAddress(LibGL, 'glEvalCoord1f');
-    @glEvalCoord1fv := GetGLProcAddress(LibGL, 'glEvalCoord1fv');
-    @glEvalCoord2d := GetGLProcAddress(LibGL, 'glEvalCoord2d');
-    @glEvalCoord2dv := GetGLProcAddress(LibGL, 'glEvalCoord2dv');
-    @glEvalCoord2f := GetGLProcAddress(LibGL, 'glEvalCoord2f');
-    @glEvalCoord2fv := GetGLProcAddress(LibGL, 'glEvalCoord2fv');
-    @glEvalMesh1 := GetGLProcAddress(LibGL, 'glEvalMesh1');
-    @glEvalMesh2 := GetGLProcAddress(LibGL, 'glEvalMesh2');
-    @glEvalPoint1 := GetGLProcAddress(LibGL, 'glEvalPoint1');
-    @glEvalPoint2 := GetGLProcAddress(LibGL, 'glEvalPoint2');
-    @glFeedbackBuffer := GetGLProcAddress(LibGL, 'glFeedbackBuffer');
-    @glFinish := GetGLProcAddress(LibGL, 'glFinish');
-    @glFlush := GetGLProcAddress(LibGL, 'glFlush');
-    @glFogf := GetGLProcAddress(LibGL, 'glFogf');
-    @glFogfv := GetGLProcAddress(LibGL, 'glFogfv');
-    @glFogi := GetGLProcAddress(LibGL, 'glFogi');
-    @glFogiv := GetGLProcAddress(LibGL, 'glFogiv');
-    @glFrontFace := GetGLProcAddress(LibGL, 'glFrontFace');
-    @glFrustum := GetGLProcAddress(LibGL, 'glFrustum');
-    @glGenLists := GetGLProcAddress(LibGL, 'glGenLists');
-    @glGenTextures := GetGLProcAddress(LibGL, 'glGenTextures');
-    @glGetBooleanv := GetGLProcAddress(LibGL, 'glGetBooleanv');
-    @glGetClipPlane := GetGLProcAddress(LibGL, 'glGetClipPlane');
-    @glGetDoublev := GetGLProcAddress(LibGL, 'glGetDoublev');
-    @glGetError := GetGLProcAddress(LibGL, 'glGetError');
-    @glGetFloatv := GetGLProcAddress(LibGL, 'glGetFloatv');
-    @glGetIntegerv := GetGLProcAddress(LibGL, 'glGetIntegerv');
-    @glGetLightfv := GetGLProcAddress(LibGL, 'glGetLightfv');
-    @glGetLightiv := GetGLProcAddress(LibGL, 'glGetLightiv');
-    @glGetMapdv := GetGLProcAddress(LibGL, 'glGetMapdv');
-    @glGetMapfv := GetGLProcAddress(LibGL, 'glGetMapfv');
-    @glGetMapiv := GetGLProcAddress(LibGL, 'glGetMapiv');
-    @glGetMaterialfv := GetGLProcAddress(LibGL, 'glGetMaterialfv');
-    @glGetMaterialiv := GetGLProcAddress(LibGL, 'glGetMaterialiv');
-    @glGetPixelMapfv := GetGLProcAddress(LibGL, 'glGetPixelMapfv');
-    @glGetPixelMapuiv := GetGLProcAddress(LibGL, 'glGetPixelMapuiv');
-    @glGetPixelMapusv := GetGLProcAddress(LibGL, 'glGetPixelMapusv');
-    @glGetPointerv := GetGLProcAddress(LibGL, 'glGetPointerv');
-    @glGetPolygonStipple := GetGLProcAddress(LibGL, 'glGetPolygonStipple');
-    @glGetString := GetGLProcAddress(LibGL, 'glGetString');
-    @glGetTexEnvfv := GetGLProcAddress(LibGL, 'glGetTexEnvfv');
-    @glGetTexEnviv := GetGLProcAddress(LibGL, 'glGetTexEnviv');
-    @glGetTexGendv := GetGLProcAddress(LibGL, 'glGetTexGendv');
-    @glGetTexGenfv := GetGLProcAddress(LibGL, 'glGetTexGenfv');
-    @glGetTexGeniv := GetGLProcAddress(LibGL, 'glGetTexGeniv');
-    @glGetTexImage := GetGLProcAddress(LibGL, 'glGetTexImage');
-    @glGetTexLevelParameterfv := GetGLProcAddress(LibGL, 'glGetTexLevelParameterfv');
-    @glGetTexLevelParameteriv := GetGLProcAddress(LibGL, 'glGetTexLevelParameteriv');
-    @glGetTexParameterfv := GetGLProcAddress(LibGL, 'glGetTexParameterfv');
-    @glGetTexParameteriv := GetGLProcAddress(LibGL, 'glGetTexParameteriv');
-    @glHint := GetGLProcAddress(LibGL, 'glHint');
-    @glIndexMask := GetGLProcAddress(LibGL, 'glIndexMask');
-    @glIndexPointer := GetGLProcAddress(LibGL, 'glIndexPointer');
-    @glIndexd := GetGLProcAddress(LibGL, 'glIndexd');
-    @glIndexdv := GetGLProcAddress(LibGL, 'glIndexdv');
-    @glIndexf := GetGLProcAddress(LibGL, 'glIndexf');
-    @glIndexfv := GetGLProcAddress(LibGL, 'glIndexfv');
-    @glIndexi := GetGLProcAddress(LibGL, 'glIndexi');
-    @glIndexiv := GetGLProcAddress(LibGL, 'glIndexiv');
-    @glIndexs := GetGLProcAddress(LibGL, 'glIndexs');
-    @glIndexsv := GetGLProcAddress(LibGL, 'glIndexsv');
-    @glIndexub := GetGLProcAddress(LibGL, 'glIndexub');
-    @glIndexubv := GetGLProcAddress(LibGL, 'glIndexubv');
-    @glInitNames := GetGLProcAddress(LibGL, 'glInitNames');
-    @glInterleavedArrays := GetGLProcAddress(LibGL, 'glInterleavedArrays');
-    @glIsEnabled := GetGLProcAddress(LibGL, 'glIsEnabled');
-    @glIsList := GetGLProcAddress(LibGL, 'glIsList');
-    @glIsTexture := GetGLProcAddress(LibGL, 'glIsTexture');
-    @glLightModelf := GetGLProcAddress(LibGL, 'glLightModelf');
-    @glLightModelfv := GetGLProcAddress(LibGL, 'glLightModelfv');
-    @glLightModeli := GetGLProcAddress(LibGL, 'glLightModeli');
-    @glLightModeliv := GetGLProcAddress(LibGL, 'glLightModeliv');
-    @glLightf := GetGLProcAddress(LibGL, 'glLightf');
-    @glLightfv := GetGLProcAddress(LibGL, 'glLightfv');
-    @glLighti := GetGLProcAddress(LibGL, 'glLighti');
-    @glLightiv := GetGLProcAddress(LibGL, 'glLightiv');
-    @glLineStipple := GetGLProcAddress(LibGL, 'glLineStipple');
-    @glLineWidth := GetGLProcAddress(LibGL, 'glLineWidth');
-    @glListBase := GetGLProcAddress(LibGL, 'glListBase');
-    @glLoadIdentity := GetGLProcAddress(LibGL, 'glLoadIdentity');
-    @glLoadMatrixd := GetGLProcAddress(LibGL, 'glLoadMatrixd');
-    @glLoadMatrixf := GetGLProcAddress(LibGL, 'glLoadMatrixf');
-    @glLoadName := GetGLProcAddress(LibGL, 'glLoadName');
-    @glLogicOp := GetGLProcAddress(LibGL, 'glLogicOp');
-    @glMap1d := GetGLProcAddress(LibGL, 'glMap1d');
-    @glMap1f := GetGLProcAddress(LibGL, 'glMap1f');
-    @glMap2d := GetGLProcAddress(LibGL, 'glMap2d');
-    @glMap2f := GetGLProcAddress(LibGL, 'glMap2f');
-    @glMapGrid1d := GetGLProcAddress(LibGL, 'glMapGrid1d');
-    @glMapGrid1f := GetGLProcAddress(LibGL, 'glMapGrid1f');
-    @glMapGrid2d := GetGLProcAddress(LibGL, 'glMapGrid2d');
-    @glMapGrid2f := GetGLProcAddress(LibGL, 'glMapGrid2f');
-    @glMaterialf := GetGLProcAddress(LibGL, 'glMaterialf');
-    @glMaterialfv := GetGLProcAddress(LibGL, 'glMaterialfv');
-    @glMateriali := GetGLProcAddress(LibGL, 'glMateriali');
-    @glMaterialiv := GetGLProcAddress(LibGL, 'glMaterialiv');
-    @glMatrixMode := GetGLProcAddress(LibGL, 'glMatrixMode');
-    @glMultMatrixd := GetGLProcAddress(LibGL, 'glMultMatrixd');
-    @glMultMatrixf := GetGLProcAddress(LibGL, 'glMultMatrixf');
-    @glNewList := GetGLProcAddress(LibGL, 'glNewList');
-    @glNormal3b := GetGLProcAddress(LibGL, 'glNormal3b');
-    @glNormal3bv := GetGLProcAddress(LibGL, 'glNormal3bv');
-    @glNormal3d := GetGLProcAddress(LibGL, 'glNormal3d');
-    @glNormal3dv := GetGLProcAddress(LibGL, 'glNormal3dv');
-    @glNormal3f := GetGLProcAddress(LibGL, 'glNormal3f');
-    @glNormal3fv := GetGLProcAddress(LibGL, 'glNormal3fv');
-    @glNormal3i := GetGLProcAddress(LibGL, 'glNormal3i');
-    @glNormal3iv := GetGLProcAddress(LibGL, 'glNormal3iv');
-    @glNormal3s := GetGLProcAddress(LibGL, 'glNormal3s');
-    @glNormal3sv := GetGLProcAddress(LibGL, 'glNormal3sv');
-    @glNormalPointer := GetGLProcAddress(LibGL, 'glNormalPointer');
-    @glOrtho := GetGLProcAddress(LibGL, 'glOrtho');
-    @glPassThrough := GetGLProcAddress(LibGL, 'glPassThrough');
-    @glPixelMapfv := GetGLProcAddress(LibGL, 'glPixelMapfv');
-    @glPixelMapuiv := GetGLProcAddress(LibGL, 'glPixelMapuiv');
-    @glPixelMapusv := GetGLProcAddress(LibGL, 'glPixelMapusv');
-    @glPixelStoref := GetGLProcAddress(LibGL, 'glPixelStoref');
-    @glPixelStorei := GetGLProcAddress(LibGL, 'glPixelStorei');
-    @glPixelTransferf := GetGLProcAddress(LibGL, 'glPixelTransferf');
-    @glPixelTransferi := GetGLProcAddress(LibGL, 'glPixelTransferi');
-    @glPixelZoom := GetGLProcAddress(LibGL, 'glPixelZoom');
-    @glPointSize := GetGLProcAddress(LibGL, 'glPointSize');
-    @glPolygonMode := GetGLProcAddress(LibGL, 'glPolygonMode');
-    @glPolygonOffset := GetGLProcAddress(LibGL, 'glPolygonOffset');
-    @glPolygonStipple := GetGLProcAddress(LibGL, 'glPolygonStipple');
-    @glPopAttrib := GetGLProcAddress(LibGL, 'glPopAttrib');
-    @glPopClientAttrib := GetGLProcAddress(LibGL, 'glPopClientAttrib');
-    @glPopMatrix := GetGLProcAddress(LibGL, 'glPopMatrix');
-    @glPopName := GetGLProcAddress(LibGL, 'glPopName');
-    @glPrioritizeTextures := GetGLProcAddress(LibGL, 'glPrioritizeTextures');
-    @glPushAttrib := GetGLProcAddress(LibGL, 'glPushAttrib');
-    @glPushClientAttrib := GetGLProcAddress(LibGL, 'glPushClientAttrib');
-    @glPushMatrix := GetGLProcAddress(LibGL, 'glPushMatrix');
-    @glPushName := GetGLProcAddress(LibGL, 'glPushName');
-    @glRasterPos2d := GetGLProcAddress(LibGL, 'glRasterPos2d');
-    @glRasterPos2dv := GetGLProcAddress(LibGL, 'glRasterPos2dv');
-    @glRasterPos2f := GetGLProcAddress(LibGL, 'glRasterPos2f');
-    @glRasterPos2fv := GetGLProcAddress(LibGL, 'glRasterPos2fv');
-    @glRasterPos2i := GetGLProcAddress(LibGL, 'glRasterPos2i');
-    @glRasterPos2iv := GetGLProcAddress(LibGL, 'glRasterPos2iv');
-    @glRasterPos2s := GetGLProcAddress(LibGL, 'glRasterPos2s');
-    @glRasterPos2sv := GetGLProcAddress(LibGL, 'glRasterPos2sv');
-    @glRasterPos3d := GetGLProcAddress(LibGL, 'glRasterPos3d');
-    @glRasterPos3dv := GetGLProcAddress(LibGL, 'glRasterPos3dv');
-    @glRasterPos3f := GetGLProcAddress(LibGL, 'glRasterPos3f');
-    @glRasterPos3fv := GetGLProcAddress(LibGL, 'glRasterPos3fv');
-    @glRasterPos3i := GetGLProcAddress(LibGL, 'glRasterPos3i');
-    @glRasterPos3iv := GetGLProcAddress(LibGL, 'glRasterPos3iv');
-    @glRasterPos3s := GetGLProcAddress(LibGL, 'glRasterPos3s');
-    @glRasterPos3sv := GetGLProcAddress(LibGL, 'glRasterPos3sv');
-    @glRasterPos4d := GetGLProcAddress(LibGL, 'glRasterPos4d');
-    @glRasterPos4dv := GetGLProcAddress(LibGL, 'glRasterPos4dv');
-    @glRasterPos4f := GetGLProcAddress(LibGL, 'glRasterPos4f');
-    @glRasterPos4fv := GetGLProcAddress(LibGL, 'glRasterPos4fv');
-    @glRasterPos4i := GetGLProcAddress(LibGL, 'glRasterPos4i');
-    @glRasterPos4iv := GetGLProcAddress(LibGL, 'glRasterPos4iv');
-    @glRasterPos4s := GetGLProcAddress(LibGL, 'glRasterPos4s');
-    @glRasterPos4sv := GetGLProcAddress(LibGL, 'glRasterPos4sv');
-    @glReadBuffer := GetGLProcAddress(LibGL, 'glReadBuffer');
-    @glReadPixels := GetGLProcAddress(LibGL, 'glReadPixels');
-    @glRectd := GetGLProcAddress(LibGL, 'glRectd');
-    @glRectdv := GetGLProcAddress(LibGL, 'glRectdv');
-    @glRectf := GetGLProcAddress(LibGL, 'glRectf');
-    @glRectfv := GetGLProcAddress(LibGL, 'glRectfv');
-    @glRecti := GetGLProcAddress(LibGL, 'glRecti');
-    @glRectiv := GetGLProcAddress(LibGL, 'glRectiv');
-    @glRects := GetGLProcAddress(LibGL, 'glRects');
-    @glRectsv := GetGLProcAddress(LibGL, 'glRectsv');
-    @glRenderMode := GetGLProcAddress(LibGL, 'glRenderMode');
-    @glRotated := GetGLProcAddress(LibGL, 'glRotated');
-    @glRotatef := GetGLProcAddress(LibGL, 'glRotatef');
-    @glScaled := GetGLProcAddress(LibGL, 'glScaled');
-    @glScalef := GetGLProcAddress(LibGL, 'glScalef');
-    @glScissor := GetGLProcAddress(LibGL, 'glScissor');
-    @glSelectBuffer := GetGLProcAddress(LibGL, 'glSelectBuffer');
-    @glShadeModel := GetGLProcAddress(LibGL, 'glShadeModel');
-    @glStencilFunc := GetGLProcAddress(LibGL, 'glStencilFunc');
-    @glStencilMask := GetGLProcAddress(LibGL, 'glStencilMask');
-    @glStencilOp := GetGLProcAddress(LibGL, 'glStencilOp');
-    @glTexCoord1d := GetGLProcAddress(LibGL, 'glTexCoord1d');
-    @glTexCoord1dv := GetGLProcAddress(LibGL, 'glTexCoord1dv');
-    @glTexCoord1f := GetGLProcAddress(LibGL, 'glTexCoord1f');
-    @glTexCoord1fv := GetGLProcAddress(LibGL, 'glTexCoord1fv');
-    @glTexCoord1i := GetGLProcAddress(LibGL, 'glTexCoord1i');
-    @glTexCoord1iv := GetGLProcAddress(LibGL, 'glTexCoord1iv');
-    @glTexCoord1s := GetGLProcAddress(LibGL, 'glTexCoord1s');
-    @glTexCoord1sv := GetGLProcAddress(LibGL, 'glTexCoord1sv');
-    @glTexCoord2d := GetGLProcAddress(LibGL, 'glTexCoord2d');
-    @glTexCoord2dv := GetGLProcAddress(LibGL, 'glTexCoord2dv');
-    @glTexCoord2f := GetGLProcAddress(LibGL, 'glTexCoord2f');
-    @glTexCoord2fv := GetGLProcAddress(LibGL, 'glTexCoord2fv');
-    @glTexCoord2i := GetGLProcAddress(LibGL, 'glTexCoord2i');
-    @glTexCoord2iv := GetGLProcAddress(LibGL, 'glTexCoord2iv');
-    @glTexCoord2s := GetGLProcAddress(LibGL, 'glTexCoord2s');
-    @glTexCoord2sv := GetGLProcAddress(LibGL, 'glTexCoord2sv');
-    @glTexCoord3d := GetGLProcAddress(LibGL, 'glTexCoord3d');
-    @glTexCoord3dv := GetGLProcAddress(LibGL, 'glTexCoord3dv');
-    @glTexCoord3f := GetGLProcAddress(LibGL, 'glTexCoord3f');
-    @glTexCoord3fv := GetGLProcAddress(LibGL, 'glTexCoord3fv');
-    @glTexCoord3i := GetGLProcAddress(LibGL, 'glTexCoord3i');
-    @glTexCoord3iv := GetGLProcAddress(LibGL, 'glTexCoord3iv');
-    @glTexCoord3s := GetGLProcAddress(LibGL, 'glTexCoord3s');
-    @glTexCoord3sv := GetGLProcAddress(LibGL, 'glTexCoord3sv');
-    @glTexCoord4d := GetGLProcAddress(LibGL, 'glTexCoord4d');
-    @glTexCoord4dv := GetGLProcAddress(LibGL, 'glTexCoord4dv');
-    @glTexCoord4f := GetGLProcAddress(LibGL, 'glTexCoord4f');
-    @glTexCoord4fv := GetGLProcAddress(LibGL, 'glTexCoord4fv');
-    @glTexCoord4i := GetGLProcAddress(LibGL, 'glTexCoord4i');
-    @glTexCoord4iv := GetGLProcAddress(LibGL, 'glTexCoord4iv');
-    @glTexCoord4s := GetGLProcAddress(LibGL, 'glTexCoord4s');
-    @glTexCoord4sv := GetGLProcAddress(LibGL, 'glTexCoord4sv');
-    @glTexCoordPointer := GetGLProcAddress(LibGL, 'glTexCoordPointer');
-    @glTexEnvf := GetGLProcAddress(LibGL, 'glTexEnvf');
-    @glTexEnvfv := GetGLProcAddress(LibGL, 'glTexEnvfv');
-    @glTexEnvi := GetGLProcAddress(LibGL, 'glTexEnvi');
-    @glTexEnviv := GetGLProcAddress(LibGL, 'glTexEnviv');
-    @glTexGend := GetGLProcAddress(LibGL, 'glTexGend');
-    @glTexGendv := GetGLProcAddress(LibGL, 'glTexGendv');
-    @glTexGenf := GetGLProcAddress(LibGL, 'glTexGenf');
-    @glTexGenfv := GetGLProcAddress(LibGL, 'glTexGenfv');
-    @glTexGeni := GetGLProcAddress(LibGL, 'glTexGeni');
-    @glTexGeniv := GetGLProcAddress(LibGL, 'glTexGeniv');
-    @glTexImage1D := GetGLProcAddress(LibGL, 'glTexImage1D');
-    @glTexImage2D := GetGLProcAddress(LibGL, 'glTexImage2D');
-    @glTexParameterf := GetGLProcAddress(LibGL, 'glTexParameterf');
-    @glTexParameterfv := GetGLProcAddress(LibGL, 'glTexParameterfv');
-    @glTexParameteri := GetGLProcAddress(LibGL, 'glTexParameteri');
-    @glTexParameteriv := GetGLProcAddress(LibGL, 'glTexParameteriv');
-    @glTexSubImage1D := GetGLProcAddress(LibGL, 'glTexSubImage1D');
-    @glTexSubImage2D := GetGLProcAddress(LibGL, 'glTexSubImage2D');
-    @glTranslated := GetGLProcAddress(LibGL, 'glTranslated');
-    @glTranslatef := GetGLProcAddress(LibGL, 'glTranslatef');
-    @glVertex2d := GetGLProcAddress(LibGL, 'glVertex2d');
-    @glVertex2dv := GetGLProcAddress(LibGL, 'glVertex2dv');
-    @glVertex2f := GetGLProcAddress(LibGL, 'glVertex2f');
-    @glVertex2fv := GetGLProcAddress(LibGL, 'glVertex2fv');
-    @glVertex2i := GetGLProcAddress(LibGL, 'glVertex2i');
-    @glVertex2iv := GetGLProcAddress(LibGL, 'glVertex2iv');
-    @glVertex2s := GetGLProcAddress(LibGL, 'glVertex2s');
-    @glVertex2sv := GetGLProcAddress(LibGL, 'glVertex2sv');
-    @glVertex3d := GetGLProcAddress(LibGL, 'glVertex3d');
-    @glVertex3dv := GetGLProcAddress(LibGL, 'glVertex3dv');
-    @glVertex3f := GetGLProcAddress(LibGL, 'glVertex3f');
-    @glVertex3fv := GetGLProcAddress(LibGL, 'glVertex3fv');
-    @glVertex3i := GetGLProcAddress(LibGL, 'glVertex3i');
-    @glVertex3iv := GetGLProcAddress(LibGL, 'glVertex3iv');
-    @glVertex3s := GetGLProcAddress(LibGL, 'glVertex3s');
-    @glVertex3sv := GetGLProcAddress(LibGL, 'glVertex3sv');
-    @glVertex4d := GetGLProcAddress(LibGL, 'glVertex4d');
-    @glVertex4dv := GetGLProcAddress(LibGL, 'glVertex4dv');
-    @glVertex4f := GetGLProcAddress(LibGL, 'glVertex4f');
-    @glVertex4fv := GetGLProcAddress(LibGL, 'glVertex4fv');
-    @glVertex4i := GetGLProcAddress(LibGL, 'glVertex4i');
-    @glVertex4iv := GetGLProcAddress(LibGL, 'glVertex4iv');
-    @glVertex4s := GetGLProcAddress(LibGL, 'glVertex4s');
-    @glVertex4sv := GetGLProcAddress(LibGL, 'glVertex4sv');
-    @glVertexPointer := GetGLProcAddress(LibGL, 'glVertexPointer');
-    @glViewport := GetGLProcAddress(LibGL, 'glViewport');
-  except
-    raise Exception.Create('Failed loading ' + MethodName +' from ' + dll);
-  end;
-
-  {$IFDEF Windows}
-  try
-    @ChoosePixelFormat := GetGLProcAddress(LibGL, 'ChoosePixelFormat');
-    if not Assigned(ChoosePixelFormat) then
-      @ChoosePixelFormat := @WinChoosePixelFormat;
-  except
-    raise Exception.Create('Unable to select pixel format');
-  end;
-  {$ENDIF}
-end;
-{$ENDIF MORPHOS}
-
-initialization
-
-  { according to bug 7570, this is necessary on all x86 platforms,
-    maybe we've to fix the sse control word as well }
-  { Yes, at least for darwin/x86_64 (JM) }
-  {$if defined(cpui386) or defined(cpux86_64)}
-  SetExceptionMask([exInvalidOp, exDenormalized, exZeroDivide,exOverflow, exUnderflow, exPrecision]);
-  {$endif}
-
-  {$IFDEF Windows}
-  LoadOpenGL('opengl32.dll');
-  {$ELSE}
-  {$ifdef darwin}
-  LoadOpenGL('/System/Library/Frameworks/OpenGL.framework/Libraries/libGL.dylib');
-  {$ELSE}
-  {$IFDEF MorphOS}
-  InitTinyGLLibrary;
-  {$ELSE}
-  LoadOpenGL('libGL.so.1');
-  {$ENDIF}
-  {$endif}
-  {$ENDIF}
-
-finalization
-
-  FreeOpenGL;
-
-end.

+ 0 - 9547
packages/extra/opengl/glext.pp

@@ -1,9547 +0,0 @@
-{
-
-  Adaption of the delphi3d.net OpenGL units to FreePascal
-  Sebastian Guenther ([email protected]) in 2002
-  These units are free to use
-}
-
-{$MACRO ON}
-{$MODE Delphi}
-{$IFDEF Windows}
-  {$DEFINE extdecl:=stdcall }
-{$ELSE}
-  {$DEFINE extdecl:=cdecl }
-{$ENDIF}
-
-unit GLext;
-
-(**************************************************
- *        OpenGL extension loading library        *
- * Generated by MetaGLext, written by Tom Nuydens *
- *  ([email protected] -- http://www.delphi3d.net  *
- **************************************************)
-
-//*** Generated on 10/11/2002
-
-interface
-
-uses
-  SysUtils,
-  {$IFDEF Windows}
-  Windows,
-  {$ELSE}
-  dynlibs,
-  {$ENDIF}
-  GL;
-
-{$IFDEF Windows}
-{ Declared in Windows unit as well in FPC; but declared here as well, to be
-  fully compatible to upstream version  - sg }
-function wglGetProcAddress(proc: PChar): Pointer; extdecl; external 'OpenGL32.dll';
-{$ELSE}
-function wglGetProcAddress(proc: PChar): Pointer;
-{$ENDIF}
-
-// Test if the given extension name is present in the given extension string.
-function glext_ExtensionSupported(const extension: String; const searchIn: String): Boolean;
-
-// Load the extension with the given name.
-function glext_LoadExtension(ext: String): Boolean;
-
-type
-  GLcharARB = Char;
-  TGLcharARB = GLcharARB;
-  PGLcharARB = ^GLcharARB;
-
-  GLhandleARB = Cardinal;
-  TGLhandleARB = GLhandleARB;
-  PGLhandleARB = ^GLhandleARB;
-
-  GLintptr = PtrInt;
-  TGLintptr = GLintptr;
-  PGLintptr = ^GLintptr;
-
-  GLsizeiptr = PtrInt;
-  TGLsizeiptr = GLsizeiptr;
-  PGLsizeiptr = ^GLsizeiptr;
-
-  GLchar = Char;
-  TGLchar = GLchar;
-  PGLchar = Pchar;
-
-//***** GL_version_1_2 *****//
-const
-  GL_UNSIGNED_BYTE_3_3_2 = $8032;
-  GL_UNSIGNED_SHORT_4_4_4_4 = $8033;
-  GL_UNSIGNED_SHORT_5_5_5_1 = $8034;
-  GL_UNSIGNED_INT_8_8_8_8 = $8035;
-  GL_UNSIGNED_INT_10_10_10_2 = $8036;
-  GL_RESCALE_NORMAL = $803A;
-  GL_UNSIGNED_BYTE_2_3_3_REV = $8362;
-  GL_UNSIGNED_SHORT_5_6_5 = $8363;
-  GL_UNSIGNED_SHORT_5_6_5_REV = $8364;
-  GL_UNSIGNED_SHORT_4_4_4_4_REV = $8365;
-  GL_UNSIGNED_SHORT_1_5_5_5_REV = $8366;
-  GL_UNSIGNED_INT_8_8_8_8_REV = $8367;
-  GL_UNSIGNED_INT_2_10_10_10_REV = $8368;
-  GL_BGR = $80E0;
-  GL_BGRA = $80E1;
-  GL_MAX_ELEMENTS_VERTICES = $80E8;
-  GL_MAX_ELEMENTS_INDICES = $80E9;
-  GL_CLAMP_TO_EDGE = $812F;
-  GL_TEXTURE_MIN_LOD = $813A;
-  GL_TEXTURE_MAX_LOD = $813B;
-  GL_TEXTURE_BASE_LEVEL = $813C;
-  GL_TEXTURE_MAX_LEVEL = $813D;
-  GL_LIGHT_MODEL_COLOR_CONTROL = $81F8;
-  GL_SINGLE_COLOR = $81F9;
-  GL_SEPARATE_SPECULAR_COLOR = $81FA;
-  GL_SMOOTH_POINT_SIZE_RANGE = $0B12;
-  GL_SMOOTH_POINT_SIZE_GRANULARITY = $0B13;
-  GL_SMOOTH_LINE_WIDTH_RANGE = $0B22;
-  GL_SMOOTH_LINE_WIDTH_GRANULARITY = $0B23;
-  GL_ALIASED_POINT_SIZE_RANGE = $846D;
-  GL_ALIASED_LINE_WIDTH_RANGE = $846E;
-  GL_PACK_SKIP_IMAGES = $806B;
-  GL_PACK_IMAGE_HEIGHT = $806C;
-  GL_UNPACK_SKIP_IMAGES = $806D;
-  GL_UNPACK_IMAGE_HEIGHT = $806E;
-  GL_TEXTURE_3D = $806F;
-  GL_PROXY_TEXTURE_3D = $8070;
-  GL_TEXTURE_DEPTH = $8071;
-  GL_TEXTURE_WRAP_R = $8072;
-  GL_MAX_3D_TEXTURE_SIZE = $8073;
-var
-  glBlendColor: procedure(red: GLclampf; green: GLclampf; blue: GLclampf; alpha: GLclampf); extdecl;
-  glBlendEquation: procedure(mode: GLenum); extdecl;
-  glDrawRangeElements: procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei; _type: GLenum; const indices: PGLvoid); extdecl;
-  glColorTable: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const table: PGLvoid); extdecl;
-  glColorTableParameterfv: procedure(target: GLenum; pname: GLenum; const params: PGLfloat); extdecl;
-  glColorTableParameteriv: procedure(target: GLenum; pname: GLenum; const params: PGLint); extdecl;
-  glCopyColorTable: procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); extdecl;
-  glGetColorTable: procedure(target: GLenum; format: GLenum; _type: GLenum; table: PGLvoid); extdecl;
-  glGetColorTableParameterfv: procedure(target: GLenum; pname: GLenum; params: PGLfloat); extdecl;
-  glGetColorTableParameteriv: procedure(target: GLenum; pname: GLenum; params: PGLint); extdecl;
-  glColorSubTable: procedure(target: GLenum; start: GLsizei; count: GLsizei; format: GLenum; _type: GLenum; const data: PGLvoid); extdecl;
-  glCopyColorSubTable: procedure(target: GLenum; start: GLsizei; x: GLint; y: GLint; width: GLsizei); extdecl;
-  glConvolutionFilter1D: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); extdecl;
-  glConvolutionFilter2D: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); extdecl;
-  glConvolutionParameterf: procedure(target: GLenum; pname: GLenum; params: GLfloat); extdecl;
-  glConvolutionParameterfv: procedure(target: GLenum; pname: GLenum; const params: PGLfloat); extdecl;
-  glConvolutionParameteri: procedure(target: GLenum; pname: GLenum; params: GLint); extdecl;
-  glConvolutionParameteriv: procedure(target: GLenum; pname: GLenum; const params: PGLint); extdecl;
-  glCopyConvolutionFilter1D: procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); extdecl;
-  glCopyConvolutionFilter2D: procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei); extdecl;
-  glGetConvolutionFilter: procedure(target: GLenum; format: GLenum; _type: GLenum; image: PGLvoid); extdecl;
-  glGetConvolutionParameterfv: procedure(target: GLenum; pname: GLenum; params: PGLfloat); extdecl;
-  glGetConvolutionParameteriv: procedure(target: GLenum; pname: GLenum; params: PGLint); extdecl;
-  glGetSeparableFilter: procedure(target: GLenum; format: GLenum; _type: GLenum; row: PGLvoid; column: PGLvoid; span: PGLvoid); extdecl;
-  glSeparableFilter2D: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const row: PGLvoid; const column: PGLvoid); extdecl;
-  glGetHistogram: procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); extdecl;
-  glGetHistogramParameterfv: procedure(target: GLenum; pname: GLenum; params: PGLfloat); extdecl;
-  glGetHistogramParameteriv: procedure(target: GLenum; pname: GLenum; params: PGLint); extdecl;
-  glGetMinmax: procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); extdecl;
-  glGetMinmaxParameterfv: procedure(target: GLenum; pname: GLenum; params: PGLfloat); extdecl;
-  glGetMinmaxParameteriv: procedure(target: GLenum; pname: GLenum; params: PGLint); extdecl;
-  glHistogram: procedure(target: GLenum; width: GLsizei; internalformat: GLenum; sink: GLboolean); extdecl;
-  glMinmax: procedure(target: GLenum; internalformat: GLenum; sink: GLboolean); extdecl;
-  glResetHistogram: procedure(target: GLenum); extdecl;
-  glResetMinmax: procedure(target: GLenum); extdecl;
-  glTexImage3D: procedure(target: GLenum; level: GLint; internalformat: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; border: GLint; format: GLenum; _type: GLenum; const pixels: PGLvoid); extdecl;
-  glTexSubImage3D: procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); extdecl;
-  glCopyTexSubImage3D: procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; x: GLint; y: GLint; width: GLsizei; height: GLsizei); extdecl;
-
-function Load_GL_version_1_2: Boolean;
-
-//***** GL_ARB_imaging *****//
-const
-  GL_CONSTANT_COLOR = $8001;
-  GL_ONE_MINUS_CONSTANT_COLOR = $8002;
-  GL_CONSTANT_ALPHA = $8003;
-  GL_ONE_MINUS_CONSTANT_ALPHA = $8004;
-  GL_BLEND_COLOR = $8005;
-  GL_FUNC_ADD = $8006;
-  GL_MIN = $8007;
-  GL_MAX = $8008;
-  GL_BLEND_EQUATION = $8009;
-  GL_FUNC_SUBTRACT = $800A;
-  GL_FUNC_REVERSE_SUBTRACT = $800B;
-  GL_CONVOLUTION_1D = $8010;
-  GL_CONVOLUTION_2D = $8011;
-  GL_SEPARABLE_2D = $8012;
-  GL_CONVOLUTION_BORDER_MODE = $8013;
-  GL_CONVOLUTION_FILTER_SCALE = $8014;
-  GL_CONVOLUTION_FILTER_BIAS = $8015;
-  GL_REDUCE = $8016;
-  GL_CONVOLUTION_FORMAT = $8017;
-  GL_CONVOLUTION_WIDTH = $8018;
-  GL_CONVOLUTION_HEIGHT = $8019;
-  GL_MAX_CONVOLUTION_WIDTH = $801A;
-  GL_MAX_CONVOLUTION_HEIGHT = $801B;
-  GL_POST_CONVOLUTION_RED_SCALE = $801C;
-  GL_POST_CONVOLUTION_GREEN_SCALE = $801D;
-  GL_POST_CONVOLUTION_BLUE_SCALE = $801E;
-  GL_POST_CONVOLUTION_ALPHA_SCALE = $801F;
-  GL_POST_CONVOLUTION_RED_BIAS = $8020;
-  GL_POST_CONVOLUTION_GREEN_BIAS = $8021;
-  GL_POST_CONVOLUTION_BLUE_BIAS = $8022;
-  GL_POST_CONVOLUTION_ALPHA_BIAS = $8023;
-  GL_HISTOGRAM = $8024;
-  GL_PROXY_HISTOGRAM = $8025;
-  GL_HISTOGRAM_WIDTH = $8026;
-  GL_HISTOGRAM_FORMAT = $8027;
-  GL_HISTOGRAM_RED_SIZE = $8028;
-  GL_HISTOGRAM_GREEN_SIZE = $8029;
-  GL_HISTOGRAM_BLUE_SIZE = $802A;
-  GL_HISTOGRAM_ALPHA_SIZE = $802B;
-  GL_HISTOGRAM_LUMINANCE_SIZE = $802C;
-  GL_HISTOGRAM_SINK = $802D;
-  GL_MINMAX = $802E;
-  GL_MINMAX_FORMAT = $802F;
-  GL_MINMAX_SINK = $8030;
-  GL_TABLE_TOO_LARGE = $8031;
-  GL_COLOR_MATRIX = $80B1;
-  GL_COLOR_MATRIX_STACK_DEPTH = $80B2;
-  GL_MAX_COLOR_MATRIX_STACK_DEPTH = $80B3;
-  GL_POST_COLOR_MATRIX_RED_SCALE = $80B4;
-  GL_POST_COLOR_MATRIX_GREEN_SCALE = $80B5;
-  GL_POST_COLOR_MATRIX_BLUE_SCALE = $80B6;
-  GL_POST_COLOR_MATRIX_ALPHA_SCALE = $80B7;
-  GL_POST_COLOR_MATRIX_RED_BIAS = $80B8;
-  GL_POST_COLOR_MATRIX_GREEN_BIAS = $80B9;
-  GL_POST_COLOR_MATRIX_BLUE_BIAS = $80BA;
-  GL_POST_COLOR_MATIX_ALPHA_BIAS = $80BB;
-  GL_COLOR_TABLE = $80D0;
-  GL_POST_CONVOLUTION_COLOR_TABLE = $80D1;
-  GL_POST_COLOR_MATRIX_COLOR_TABLE = $80D2;
-  GL_PROXY_COLOR_TABLE = $80D3;
-  GL_PROXY_POST_CONVOLUTION_COLOR_TABLE = $80D4;
-  GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE = $80D5;
-  GL_COLOR_TABLE_SCALE = $80D6;
-  GL_COLOR_TABLE_BIAS = $80D7;
-  GL_COLOR_TABLE_FORMAT = $80D8;
-  GL_COLOR_TABLE_WIDTH = $80D9;
-  GL_COLOR_TABLE_RED_SIZE = $80DA;
-  GL_COLOR_TABLE_GREEN_SIZE = $80DB;
-  GL_COLOR_TABLE_BLUE_SIZE = $80DC;
-  GL_COLOR_TABLE_ALPHA_SIZE = $80DD;
-  GL_COLOR_TABLE_LUMINANCE_SIZE = $80DE;
-  GL_COLOR_TABLE_INTENSITY_SIZE = $80DF;
-  GL_IGNORE_BORDER = $8150;
-  GL_CONSTANT_BORDER = $8151;
-  GL_WRAP_BORDER = $8152;
-  GL_REPLICATE_BORDER = $8153;
-  GL_CONVOLUTION_BORDER_COLOR = $8154;
-
-function Load_GL_ARB_imaging: Boolean;
-
-//***** GL_version_1_3 *****//
-const
-  GL_TEXTURE0 = $84C0;
-  GL_TEXTURE1 = $84C1;
-  GL_TEXTURE2 = $84C2;
-  GL_TEXTURE3 = $84C3;
-  GL_TEXTURE4 = $84C4;
-  GL_TEXTURE5 = $84C5;
-  GL_TEXTURE6 = $84C6;
-  GL_TEXTURE7 = $84C7;
-  GL_TEXTURE8 = $84C8;
-  GL_TEXTURE9 = $84C9;
-  GL_TEXTURE10 = $84CA;
-  GL_TEXTURE11 = $84CB;
-  GL_TEXTURE12 = $84CC;
-  GL_TEXTURE13 = $84CD;
-  GL_TEXTURE14 = $84CE;
-  GL_TEXTURE15 = $84CF;
-  GL_TEXTURE16 = $84D0;
-  GL_TEXTURE17 = $84D1;
-  GL_TEXTURE18 = $84D2;
-  GL_TEXTURE19 = $84D3;
-  GL_TEXTURE20 = $84D4;
-  GL_TEXTURE21 = $84D5;
-  GL_TEXTURE22 = $84D6;
-  GL_TEXTURE23 = $84D7;
-  GL_TEXTURE24 = $84D8;
-  GL_TEXTURE25 = $84D9;
-  GL_TEXTURE26 = $84DA;
-  GL_TEXTURE27 = $84DB;
-  GL_TEXTURE28 = $84DC;
-  GL_TEXTURE29 = $84DD;
-  GL_TEXTURE30 = $84DE;
-  GL_TEXTURE31 = $84DF;
-  GL_ACTIVE_TEXTURE = $84E0;
-  GL_CLIENT_ACTIVE_TEXTURE = $84E1;
-  GL_MAX_TEXTURE_UNITS = $84E2;
-  GL_TRANSPOSE_MODELVIEW_MATRIX = $84E3;
-  GL_TRANSPOSE_PROJECTION_MATRIX = $84E4;
-  GL_TRANSPOSE_TEXTURE_MATRIX = $84E5;
-  GL_TRANSPOSE_COLOR_MATRIX = $84E6;
-  GL_MULTISAMPLE = $809D;
-  GL_SAMPLE_ALPHA_TO_COVERAGE = $809E;
-  GL_SAMPLE_ALPHA_TO_ONE = $809F;
-  GL_SAMPLE_COVERAGE = $80A0;
-  GL_SAMPLE_BUFFERS = $80A8;
-  GL_SAMPLES = $80A9;
-  GL_SAMPLE_COVERAGE_VALUE = $80AA;
-  GL_SAMPLE_COVERAGE_INVERT = $80AB;
-  GL_MULTISAMPLE_BIT = $20000000;
-  GL_NORMAL_MAP = $8511;
-  GL_REFLECTION_MAP = $8512;
-  GL_TEXTURE_CUBE_MAP = $8513;
-  GL_TEXTURE_BINDING_CUBE_MAP = $8514;
-  GL_TEXTURE_CUBE_MAP_POSITIVE_X = $8515;
-  GL_TEXTURE_CUBE_MAP_NEGATIVE_X = $8516;
-  GL_TEXTURE_CUBE_MAP_POSITIVE_Y = $8517;
-  GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = $8518;
-  GL_TEXTURE_CUBE_MAP_POSITIVE_Z = $8519;
-  GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = $851A;
-  GL_PROXY_TEXTURE_CUBE_MAP = $851B;
-  GL_MAX_CUBE_MAP_TEXTURE_SIZE = $851C;
-  GL_COMPRESSED_ALPHA = $84E9;
-  GL_COMPRESSED_LUMINANCE = $84EA;
-  GL_COMPRESSED_LUMINANCE_ALPHA = $84EB;
-  GL_COMPRESSED_INTENSITY = $84EC;
-  GL_COMPRESSED_RGB = $84ED;
-  GL_COMPRESSED_RGBA = $84EE;
-  GL_TEXTURE_COMPRESSION_HINT = $84EF;
-  GL_TEXTURE_COMPRESSED_IMAGE_SIZE = $86A0;
-  GL_TEXTURE_COMPRESSED = $86A1;
-  GL_NUM_COMPRESSED_TEXTURE_FORMATS = $86A2;
-  GL_COMPRESSED_TEXTURE_FORMATS = $86A3;
-  GL_CLAMP_TO_BORDER = $812D;
-  GL_CLAMP_TO_BORDER_SGIS = $812D;
-  GL_COMBINE = $8570;
-  GL_COMBINE_RGB = $8571;
-  GL_COMBINE_ALPHA = $8572;
-  GL_SOURCE0_RGB = $8580;
-  GL_SOURCE1_RGB = $8581;
-  GL_SOURCE2_RGB = $8582;
-  GL_SOURCE0_ALPHA = $8588;
-  GL_SOURCE1_ALPHA = $8589;
-  GL_SOURCE2_ALPHA = $858A;
-  GL_OPERAND0_RGB = $8590;
-  GL_OPERAND1_RGB = $8591;
-  GL_OPERAND2_RGB = $8592;
-  GL_OPERAND0_ALPHA = $8598;
-  GL_OPERAND1_ALPHA = $8599;
-  GL_OPERAND2_ALPHA = $859A;
-  GL_RGB_SCALE = $8573;
-  GL_ADD_SIGNED = $8574;
-  GL_INTERPOLATE = $8575;
-  GL_SUBTRACT = $84E7;
-  GL_CONSTANT = $8576;
-  GL_PRIMARY_COLOR = $8577;
-  GL_PREVIOUS = $8578;
-  GL_DOT3_RGB = $86AE;
-  GL_DOT3_RGBA = $86AF;
-var
-  glActiveTexture: procedure(texture: GLenum); extdecl;
-  glClientActiveTexture: procedure(texture: GLenum); extdecl;
-  glMultiTexCoord1d: procedure(target: GLenum; s: GLdouble); extdecl;
-  glMultiTexCoord1dv: procedure(target: GLenum; const v: PGLdouble); extdecl;
-  glMultiTexCoord1f: procedure(target: GLenum; s: GLfloat); extdecl;
-  glMultiTexCoord1fv: procedure(target: GLenum; const v: PGLfloat); extdecl;
-  glMultiTexCoord1i: procedure(target: GLenum; s: GLint); extdecl;
-  glMultiTexCoord1iv: procedure(target: GLenum; const v: PGLint); extdecl;
-  glMultiTexCoord1s: procedure(target: GLenum; s: GLshort); extdecl;
-  glMultiTexCoord1sv: procedure(target: GLenum; const v: PGLshort); extdecl;
-  glMultiTexCoord2d: procedure(target: GLenum; s: GLdouble; t: GLdouble); extdecl;
-  glMultiTexCoord2dv: procedure(target: GLenum; const v: PGLdouble); extdecl;
-  glMultiTexCoord2f: procedure(target: GLenum; s: GLfloat; t: GLfloat); extdecl;
-  glMultiTexCoord2fv: procedure(target: GLenum; const v: PGLfloat); extdecl;
-  glMultiTexCoord2i: procedure(target: GLenum; s: GLint; t: GLint); extdecl;
-  glMultiTexCoord2iv: procedure(target: GLenum; const v: PGLint); extdecl;
-  glMultiTexCoord2s: procedure(target: GLenum; s: GLshort; t: GLshort); extdecl;
-  glMultiTexCoord2sv: procedure(target: GLenum; const v: PGLshort); extdecl;
-  glMultiTexCoord3d: procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble); extdecl;
-  glMultiTexCoord3dv: procedure(target: GLenum; const v: PGLdouble); extdecl;
-  glMultiTexCoord3f: procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat); extdecl;
-  glMultiTexCoord3fv: procedure(target: GLenum; const v: PGLfloat); extdecl;
-  glMultiTexCoord3i: procedure(target: GLenum; s: GLint; t: GLint; r: GLint); extdecl;
-  glMultiTexCoord3iv: procedure(target: GLenum; const v: PGLint); extdecl;
-  glMultiTexCoord3s: procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort); extdecl;
-  glMultiTexCoord3sv: procedure(target: GLenum; const v: PGLshort); extdecl;
-  glMultiTexCoord4d: procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble; q: GLdouble); extdecl;
-  glMultiTexCoord4dv: procedure(target: GLenum; const v: PGLdouble); extdecl;
-  glMultiTexCoord4f: procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); extdecl;
-  glMultiTexCoord4fv: procedure(target: GLenum; const v: PGLfloat); extdecl;
-  glMultiTexCoord4i: procedure(target: GLenum; s: GLint; t: GLint; r: GLint; q: GLint); extdecl;
-  glMultiTexCoord4iv: procedure(target: GLenum; const v: PGLint); extdecl;
-  glMultiTexCoord4s: procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort; q: GLshort); extdecl;
-  glMultiTexCoord4sv: procedure(target: GLenum; const v: PGLshort); extdecl;
-  glLoadTransposeMatrixf: procedure(const m: PGLfloat); extdecl;
-  glLoadTransposeMatrixd: procedure(const m: PGLdouble); extdecl;
-  glMultTransposeMatrixf: procedure(const m: PGLfloat); extdecl;
-  glMultTransposeMatrixd: procedure(const m: PGLdouble); extdecl;
-  glSampleCoverage: procedure(value: GLclampf; invert: GLboolean); extdecl;
-  glCompressedTexImage3D: procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); extdecl;
-  glCompressedTexImage2D: procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); extdecl;
-  glCompressedTexImage1D: procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); extdecl;
-  glCompressedTexSubImage3D: procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); extdecl;
-  glCompressedTexSubImage2D: procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; width: GLsizei; height: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); extdecl;
-  glCompressedTexSubImage1D: procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); extdecl;
-  glGetCompressedTexImage: procedure(target: GLenum; level: GLint; img: PGLvoid); extdecl;
-
-function Load_GL_version_1_3: Boolean;
-
-//***** GL_ARB_multitexture *****//
-const
-  GL_TEXTURE0_ARB = $84C0;
-  GL_TEXTURE1_ARB = $84C1;
-  GL_TEXTURE2_ARB = $84C2;
-  GL_TEXTURE3_ARB = $84C3;
-  GL_TEXTURE4_ARB = $84C4;
-  GL_TEXTURE5_ARB = $84C5;
-  GL_TEXTURE6_ARB = $84C6;
-  GL_TEXTURE7_ARB = $84C7;
-  GL_TEXTURE8_ARB = $84C8;
-  GL_TEXTURE9_ARB = $84C9;
-  GL_TEXTURE10_ARB = $84CA;
-  GL_TEXTURE11_ARB = $84CB;
-  GL_TEXTURE12_ARB = $84CC;
-  GL_TEXTURE13_ARB = $84CD;
-  GL_TEXTURE14_ARB = $84CE;
-  GL_TEXTURE15_ARB = $84CF;
-  GL_TEXTURE16_ARB = $84D0;
-  GL_TEXTURE17_ARB = $84D1;
-  GL_TEXTURE18_ARB = $84D2;
-  GL_TEXTURE19_ARB = $84D3;
-  GL_TEXTURE20_ARB = $84D4;
-  GL_TEXTURE21_ARB = $84D5;
-  GL_TEXTURE22_ARB = $84D6;
-  GL_TEXTURE23_ARB = $84D7;
-  GL_TEXTURE24_ARB = $84D8;
-  GL_TEXTURE25_ARB = $84D9;
-  GL_TEXTURE26_ARB = $84DA;
-  GL_TEXTURE27_ARB = $84DB;
-  GL_TEXTURE28_ARB = $84DC;
-  GL_TEXTURE29_ARB = $84DD;
-  GL_TEXTURE30_ARB = $84DE;
-  GL_TEXTURE31_ARB = $84DF;
-  GL_ACTIVE_TEXTURE_ARB = $84E0;
-  GL_CLIENT_ACTIVE_TEXTURE_ARB = $84E1;
-  GL_MAX_TEXTURE_UNITS_ARB = $84E2;
-var
-  glActiveTextureARB: procedure(texture: GLenum); extdecl;
-  glClientActiveTextureARB: procedure(texture: GLenum); extdecl;
-  glMultiTexCoord1dARB: procedure(target: GLenum; s: GLdouble); extdecl;
-  glMultiTexCoord1dvARB: procedure(target: GLenum; const v: PGLdouble); extdecl;
-  glMultiTexCoord1fARB: procedure(target: GLenum; s: GLfloat); extdecl;
-  glMultiTexCoord1fvARB: procedure(target: GLenum; const v: PGLfloat); extdecl;
-  glMultiTexCoord1iARB: procedure(target: GLenum; s: GLint); extdecl;
-  glMultiTexCoord1ivARB: procedure(target: GLenum; const v: PGLint); extdecl;
-  glMultiTexCoord1sARB: procedure(target: GLenum; s: GLshort); extdecl;
-  glMultiTexCoord1svARB: procedure(target: GLenum; const v: PGLshort); extdecl;
-  glMultiTexCoord2dARB: procedure(target: GLenum; s: GLdouble; t: GLdouble); extdecl;
-  glMultiTexCoord2dvARB: procedure(target: GLenum; const v: PGLdouble); extdecl;
-  glMultiTexCoord2fARB: procedure(target: GLenum; s: GLfloat; t: GLfloat); extdecl;
-  glMultiTexCoord2fvARB: procedure(target: GLenum; const v: PGLfloat); extdecl;
-  glMultiTexCoord2iARB: procedure(target: GLenum; s: GLint; t: GLint); extdecl;
-  glMultiTexCoord2ivARB: procedure(target: GLenum; const v: PGLint); extdecl;
-  glMultiTexCoord2sARB: procedure(target: GLenum; s: GLshort; t: GLshort); extdecl;
-  glMultiTexCoord2svARB: procedure(target: GLenum; const v: PGLshort); extdecl;
-  glMultiTexCoord3dARB: procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble); extdecl;
-  glMultiTexCoord3dvARB: procedure(target: GLenum; const v: PGLdouble); extdecl;
-  glMultiTexCoord3fARB: procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat); extdecl;
-  glMultiTexCoord3fvARB: procedure(target: GLenum; const v: PGLfloat); extdecl;
-  glMultiTexCoord3iARB: procedure(target: GLenum; s: GLint; t: GLint; r: GLint); extdecl;
-  glMultiTexCoord3ivARB: procedure(target: GLenum; const v: PGLint); extdecl;
-  glMultiTexCoord3sARB: procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort); extdecl;
-  glMultiTexCoord3svARB: procedure(target: GLenum; const v: PGLshort); extdecl;
-  glMultiTexCoord4dARB: procedure(target: GLenum; s: GLdouble; t: GLdouble; r: GLdouble; q: GLdouble); extdecl;
-  glMultiTexCoord4dvARB: procedure(target: GLenum; const v: PGLdouble); extdecl;
-  glMultiTexCoord4fARB: procedure(target: GLenum; s: GLfloat; t: GLfloat; r: GLfloat; q: GLfloat); extdecl;
-  glMultiTexCoord4fvARB: procedure(target: GLenum; const v: PGLfloat); extdecl;
-  glMultiTexCoord4iARB: procedure(target: GLenum; s: GLint; t: GLint; r: GLint; q: GLint); extdecl;
-  glMultiTexCoord4ivARB: procedure(target: GLenum; const v: PGLint); extdecl;
-  glMultiTexCoord4sARB: procedure(target: GLenum; s: GLshort; t: GLshort; r: GLshort; q: GLshort); extdecl;
-  glMultiTexCoord4svARB: procedure(target: GLenum; const v: PGLshort); extdecl;
-
-function Load_GL_ARB_multitexture: Boolean;
-
-//***** GL_ARB_transpose_matrix *****//
-const
-  GL_TRANSPOSE_MODELVIEW_MATRIX_ARB = $84E3;
-  GL_TRANSPOSE_PROJECTION_MATRIX_ARB = $84E4;
-  GL_TRANSPOSE_TEXTURE_MATRIX_ARB = $84E5;
-  GL_TRANSPOSE_COLOR_MATRIX_ARB = $84E6;
-var
-  glLoadTransposeMatrixfARB: procedure(m: PGLfloat); extdecl;
-  glLoadTransposeMatrixdARB: procedure(m: PGLdouble); extdecl;
-  glMultTransposeMatrixfARB: procedure(m: PGLfloat); extdecl;
-  glMultTransposeMatrixdARB: procedure(m: PGLdouble); extdecl;
-
-function Load_GL_ARB_transpose_matrix: Boolean;
-
-//***** GL_ARB_multisample *****//
-const
-  WGL_SAMPLE_BUFFERS_ARB = $2041;
-  WGL_SAMPLES_ARB = $2042;
-  GL_MULTISAMPLE_ARB = $809D;
-  GL_SAMPLE_ALPHA_TO_COVERAGE_ARB = $809E;
-  GL_SAMPLE_ALPHA_TO_ONE_ARB = $809F;
-  GL_SAMPLE_COVERAGE_ARB = $80A0;
-  GL_MULTISAMPLE_BIT_ARB = $20000000;
-  GL_SAMPLE_BUFFERS_ARB = $80A8;
-  GL_SAMPLES_ARB = $80A9;
-  GL_SAMPLE_COVERAGE_VALUE_ARB = $80AA;
-  GL_SAMPLE_COVERAGE_INVERT_ARB = $80AB;
-var
-  glSampleCoverageARB: procedure(value: GLclampf; invert: GLboolean); extdecl;
-
-function Load_GL_ARB_multisample: Boolean;
-
-//***** GL_ARB_texture_env_add *****//
-
-function Load_GL_ARB_texture_env_add: Boolean;
-
-{$IFDEF Windows}
-//***** WGL_ARB_extensions_string *****//
-var
-  wglGetExtensionsStringARB: function(hdc: HDC): Pchar; extdecl;
-
-function Load_WGL_ARB_extensions_string: Boolean;
-
-//***** WGL_ARB_buffer_region *****//
-const
-  WGL_FRONT_COLOR_BUFFER_BIT_ARB = $0001;
-  WGL_BACK_COLOR_BUFFER_BIT_ARB = $0002;
-  WGL_DEPTH_BUFFER_BIT_ARB = $0004;
-  WGL_STENCIL_BUFFER_BIT_ARB = $0008;
-var
-  wglCreateBufferRegionARB: function(hDC: HDC; iLayerPlane: GLint; uType: GLuint): THandle; extdecl;
-  wglDeleteBufferRegionARB: procedure(hRegion: THandle); extdecl;
-  wglSaveBufferRegionARB: function(hRegion: THandle; x: GLint; y: GLint; width: GLint; height: GLint): BOOL; extdecl;
-  wglRestoreBufferRegionARB: function(hRegion: THandle; x: GLint; y: GLint; width: GLint; height: GLint; xSrc: GLint; ySrc: GLint): BOOL; extdecl;
-
-function Load_WGL_ARB_buffer_region: Boolean;
-{$ENDIF}
-
-//***** GL_ARB_texture_cube_map *****//
-const
-  GL_NORMAL_MAP_ARB = $8511;
-  GL_REFLECTION_MAP_ARB = $8512;
-  GL_TEXTURE_CUBE_MAP_ARB = $8513;
-  GL_TEXTURE_BINDING_CUBE_MAP_ARB = $8514;
-  GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB = $8515;
-  GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = $8516;
-  GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = $8517;
-  GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = $8518;
-  GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = $8519;
-  GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = $851A;
-  GL_PROXY_TEXTURE_CUBE_MAP_ARB = $851B;
-  GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB = $851C;
-
-function Load_GL_ARB_texture_cube_map: Boolean;
-
-//***** GL_ARB_depth_texture *****//
-const
-  GL_DEPTH_COMPONENT16_ARB = $81A5;
-  GL_DEPTH_COMPONENT24_ARB = $81A6;
-  GL_DEPTH_COMPONENT32_ARB = $81A7;
-  GL_TEXTURE_DEPTH_SIZE_ARB = $884A;
-  GL_DEPTH_TEXTURE_MODE_ARB = $884B;
-
-function Load_GL_ARB_depth_texture: Boolean;
-
-//***** GL_ARB_point_parameters *****//
-const
-  GL_POINT_SIZE_MIN_ARB = $8126;
-  GL_POINT_SIZE_MAX_ARB = $8127;
-  GL_POINT_FADE_THRESHOLD_SIZE_ARB = $8128;
-  GL_POINT_DISTANCE_ATTENUATION_ARB = $8129;
-var
-  glPointParameterfARB: procedure(pname: GLenum; param: GLfloat); extdecl;
-  glPointParameterfvARB: procedure(pname: GLenum; params: PGLfloat); extdecl;
-
-function Load_GL_ARB_point_parameters: Boolean;
-
-//***** GL_ARB_shadow *****//
-const
-  GL_TEXTURE_COMPARE_MODE_ARB = $884C;
-  GL_TEXTURE_COMPARE_FUNC_ARB = $884D;
-  GL_COMPARE_R_TO_TEXTURE_ARB = $884E;
-
-function Load_GL_ARB_shadow: Boolean;
-
-//***** GL_ARB_shadow_ambient *****//
-const
-  GL_TEXTURE_COMPARE_FAIL_VALUE_ARB = $80BF;
-
-function Load_GL_ARB_shadow_ambient: Boolean;
-
-//***** GL_ARB_texture_border_clamp *****//
-const
-  GL_CLAMP_TO_BORDER_ARB = $812D;
-
-function Load_GL_ARB_texture_border_clamp: Boolean;
-
-//***** GL_ARB_texture_compression *****//
-const
-  GL_COMPRESSED_ALPHA_ARB = $84E9;
-  GL_COMPRESSED_LUMINANCE_ARB = $84EA;
-  GL_COMPRESSED_LUMINANCE_ALPHA_ARB = $84EB;
-  GL_COMPRESSED_INTENSITY_ARB = $84EC;
-  GL_COMPRESSED_RGB_ARB = $84ED;
-  GL_COMPRESSED_RGBA_ARB = $84EE;
-  GL_TEXTURE_COMPRESSION_HINT_ARB = $84EF;
-  GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB = $86A0;
-  GL_TEXTURE_COMPRESSED_ARB = $86A1;
-  GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB = $86A2;
-  GL_COMPRESSED_TEXTURE_FORMATS_ARB = $86A3;
-var
-  glCompressedTexImage3DARB: procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); extdecl;
-  glCompressedTexImage2DARB: procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); extdecl;
-  glCompressedTexImage1DARB: procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; border: GLint; imageSize: GLsizei; const data: PGLvoid); extdecl;
-  glCompressedTexSubImage3DARB: procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); extdecl;
-  glCompressedTexSubImage2DARB: procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; width: GLsizei; height: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); extdecl;
-  glCompressedTexSubImage1DARB: procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; imageSize: GLsizei; const data: PGLvoid); extdecl;
-  glGetCompressedTexImageARB: procedure(target: GLenum; lod: GLint; img: PGLvoid); extdecl;
-
-function Load_GL_ARB_texture_compression: Boolean;
-
-//***** GL_ARB_texture_env_combine *****//
-const
-  GL_COMBINE_ARB = $8570;
-  GL_COMBINE_RGB_ARB = $8571;
-  GL_COMBINE_ALPHA_ARB = $8572;
-  GL_SOURCE0_RGB_ARB = $8580;
-  GL_SOURCE1_RGB_ARB = $8581;
-  GL_SOURCE2_RGB_ARB = $8582;
-  GL_SOURCE0_ALPHA_ARB = $8588;
-  GL_SOURCE1_ALPHA_ARB = $8589;
-  GL_SOURCE2_ALPHA_ARB = $858A;
-  GL_OPERAND0_RGB_ARB = $8590;
-  GL_OPERAND1_RGB_ARB = $8591;
-  GL_OPERAND2_RGB_ARB = $8592;
-  GL_OPERAND0_ALPHA_ARB = $8598;
-  GL_OPERAND1_ALPHA_ARB = $8599;
-  GL_OPERAND2_ALPHA_ARB = $859A;
-  GL_RGB_SCALE_ARB = $8573;
-  GL_ADD_SIGNED_ARB = $8574;
-  GL_INTERPOLATE_ARB = $8575;
-  GL_SUBTRACT_ARB = $84E7;
-  GL_CONSTANT_ARB = $8576;
-  GL_PRIMARY_COLOR_ARB = $8577;
-  GL_PREVIOUS_ARB = $8578;
-
-function Load_GL_ARB_texture_env_combine: Boolean;
-
-//***** GL_ARB_texture_env_crossbar *****//
-
-function Load_GL_ARB_texture_env_crossbar: Boolean;
-
-//***** GL_ARB_texture_env_dot3 *****//
-const
-  GL_DOT3_RGB_ARB = $86AE;
-  GL_DOT3_RGBA_ARB = $86AF;
-
-function Load_GL_ARB_texture_env_dot3: Boolean;
-
-//***** GL_ARB_texture_mirrored_repeat *****//
-const
-  GL_MIRRORED_REPEAT_ARB = $8370;
-
-function Load_GL_ARB_texture_mirrored_repeat: Boolean;
-
-//***** GL_ARB_vertex_blend *****//
-const
-  GL_MAX_VERTEX_UNITS_ARB = $86A4;
-  GL_ACTIVE_VERTEX_UNITS_ARB = $86A5;
-  GL_WEIGHT_SUM_UNITY_ARB = $86A6;
-  GL_VERTEX_BLEND_ARB = $86A7;
-  GL_MODELVIEW0_ARB = $1700;
-  GL_MODELVIEW1_ARB = $850A;
-  GL_MODELVIEW2_ARB = $8722;
-  GL_MODELVIEW3_ARB = $8723;
-  GL_MODELVIEW4_ARB = $8724;
-  GL_MODELVIEW5_ARB = $8725;
-  GL_MODELVIEW6_ARB = $8726;
-  GL_MODELVIEW7_ARB = $8727;
-  GL_MODELVIEW8_ARB = $8728;
-  GL_MODELVIEW9_ARB = $8729;
-  GL_MODELVIEW10_ARB = $872A;
-  GL_MODELVIEW11_ARB = $872B;
-  GL_MODELVIEW12_ARB = $872C;
-  GL_MODELVIEW13_ARB = $872D;
-  GL_MODELVIEW14_ARB = $872E;
-  GL_MODELVIEW15_ARB = $872F;
-  GL_MODELVIEW16_ARB = $8730;
-  GL_MODELVIEW17_ARB = $8731;
-  GL_MODELVIEW18_ARB = $8732;
-  GL_MODELVIEW19_ARB = $8733;
-  GL_MODELVIEW20_ARB = $8734;
-  GL_MODELVIEW21_ARB = $8735;
-  GL_MODELVIEW22_ARB = $8736;
-  GL_MODELVIEW23_ARB = $8737;
-  GL_MODELVIEW24_ARB = $8738;
-  GL_MODELVIEW25_ARB = $8739;
-  GL_MODELVIEW26_ARB = $873A;
-  GL_MODELVIEW27_ARB = $873B;
-  GL_MODELVIEW28_ARB = $873C;
-  GL_MODELVIEW29_ARB = $873D;
-  GL_MODELVIEW30_ARB = $873E;
-  GL_MODELVIEW31_ARB = $873F;
-  GL_CURRENT_WEIGHT_ARB = $86A8;
-  GL_WEIGHT_ARRAY_TYPE_ARB = $86A9;
-  GL_WEIGHT_ARRAY_STRIDE_ARB = $86AA;
-  GL_WEIGHT_ARRAY_SIZE_ARB = $86AB;
-  GL_WEIGHT_ARRAY_POINTER_ARB = $86AC;
-  GL_WEIGHT_ARRAY_ARB = $86AD;
-var
-  glWeightbvARB: procedure(size: GLint; weights: PGLbyte); extdecl;
-  glWeightsvARB: procedure(size: GLint; weights: PGLshort); extdecl;
-  glWeightivARB: procedure(size: GLint; weights: PGLint); extdecl;
-  glWeightfvARB: procedure(size: GLint; weights: PGLfloat); extdecl;
-  glWeightdvARB: procedure(size: GLint; weights: PGLdouble); extdecl;
-  glWeightvARB: procedure(size: GLint; weights: PGLdouble); extdecl;
-  glWeightubvARB: procedure(size: GLint; weights: PGLubyte); extdecl;
-  glWeightusvARB: procedure(size: GLint; weights: PGLushort); extdecl;
-  glWeightuivARB: procedure(size: GLint; weights: PGLuint); extdecl;
-  glWeightPointerARB: procedure(size: GLint; _type: GLenum; stride: GLsizei; pointer: PGLvoid); extdecl;
-  glVertexBlendARB: procedure(count: GLint); extdecl;
-
-function Load_GL_ARB_vertex_blend: Boolean;
-
-//***** GL_ARB_vertex_program *****//
-const
-  GL_VERTEX_PROGRAM_ARB = $8620;
-  GL_VERTEX_PROGRAM_POINT_SIZE_ARB = $8642;
-  GL_VERTEX_PROGRAM_TWO_SIDE_ARB = $8643;
-  GL_COLOR_SUM_ARB = $8458;
-  GL_PROGRAM_FORMAT_ASCII_ARB = $8875;
-  GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB = $8622;
-  GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB = $8623;
-  GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB = $8624;
-  GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB = $8625;
-  GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB = $886A;
-  GL_CURRENT_VERTEX_ATTRIB_ARB = $8626;
-  GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB = $8645;
-  GL_PROGRAM_LENGTH_ARB = $8627;
-  GL_PROGRAM_FORMAT_ARB = $8876;
-  GL_PROGRAM_BINDING_ARB = $8677;
-  GL_PROGRAM_INSTRUCTIONS_ARB = $88A0;
-  GL_MAX_PROGRAM_INSTRUCTIONS_ARB = $88A1;
-  GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB = $88A2;
-  GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB = $88A3;
-  GL_PROGRAM_TEMPORARIES_ARB = $88A4;
-  GL_MAX_PROGRAM_TEMPORARIES_ARB = $88A5;
-  GL_PROGRAM_NATIVE_TEMPORARIES_ARB = $88A6;
-  GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB = $88A7;
-  GL_PROGRAM_PARAMETERS_ARB = $88A8;
-  GL_MAX_PROGRAM_PARAMETERS_ARB = $88A9;
-  GL_PROGRAM_NATIVE_PARAMETERS_ARB = $88AA;
-  GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB = $88AB;
-  GL_PROGRAM_ATTRIBS_ARB = $88AC;
-  GL_MAX_PROGRAM_ATTRIBS_ARB = $88AD;
-  GL_PROGRAM_NATIVE_ATTRIBS_ARB = $88AE;
-  GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB = $88AF;
-  GL_PROGRAM_ADDRESS_REGISTERS_ARB = $88B0;
-  GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB = $88B1;
-  GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = $88B2;
-  GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB = $88B3;
-  GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB = $88B4;
-  GL_MAX_PROGRAM_ENV_PARAMETERS_ARB = $88B5;
-  GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB = $88B6;
-  GL_PROGRAM_STRING_ARB = $8628;
-  GL_PROGRAM_ERROR_POSITION_ARB = $864B;
-  GL_CURRENT_MATRIX_ARB = $8641;
-  GL_TRANSPOSE_CURRENT_MATRIX_ARB = $88B7;
-  GL_CURRENT_MATRIX_STACK_DEPTH_ARB = $8640;
-  GL_MAX_VERTEX_ATTRIBS_ARB = $8869;
-  GL_MAX_PROGRAM_MATRICES_ARB = $862F;
-  GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB = $862E;
-  GL_PROGRAM_ERROR_STRING_ARB = $8874;
-  GL_MATRIX0_ARB = $88C0;
-  GL_MATRIX1_ARB = $88C1;
-  GL_MATRIX2_ARB = $88C2;
-  GL_MATRIX3_ARB = $88C3;
-  GL_MATRIX4_ARB = $88C4;
-  GL_MATRIX5_ARB = $88C5;
-  GL_MATRIX6_ARB = $88C6;
-  GL_MATRIX7_ARB = $88C7;
-  GL_MATRIX8_ARB = $88C8;
-  GL_MATRIX9_ARB = $88C9;
-  GL_MATRIX10_ARB = $88CA;
-  GL_MATRIX11_ARB = $88CB;
-  GL_MATRIX12_ARB = $88CC;
-  GL_MATRIX13_ARB = $88CD;
-  GL_MATRIX14_ARB = $88CE;
-  GL_MATRIX15_ARB = $88CF;
-  GL_MATRIX16_ARB = $88D0;
-  GL_MATRIX17_ARB = $88D1;
-  GL_MATRIX18_ARB = $88D2;
-  GL_MATRIX19_ARB = $88D3;
-  GL_MATRIX20_ARB = $88D4;
-  GL_MATRIX21_ARB = $88D5;
-  GL_MATRIX22_ARB = $88D6;
-  GL_MATRIX23_ARB = $88D7;
-  GL_MATRIX24_ARB = $88D8;
-  GL_MATRIX25_ARB = $88D9;
-  GL_MATRIX26_ARB = $88DA;
-  GL_MATRIX27_ARB = $88DB;
-  GL_MATRIX28_ARB = $88DC;
-  GL_MATRIX29_ARB = $88DD;
-  GL_MATRIX30_ARB = $88DE;
-  GL_MATRIX31_ARB = $88DF;
-var
-  glVertexAttrib1sARB: procedure(index: GLuint; x: GLshort); extdecl;
-  glVertexAttrib1fARB: procedure(index: GLuint; x: GLfloat); extdecl;
-  glVertexAttrib1dARB: procedure(index: GLuint; x: GLdouble); extdecl;
-  glVertexAttrib2sARB: procedure(index: GLuint; x: GLshort; y: GLshort); extdecl;
-  glVertexAttrib2fARB: procedure(index: GLuint; x: GLfloat; y: GLfloat); extdecl;
-  glVertexAttrib2dARB: procedure(index: GLuint; x: GLdouble; y: GLdouble); extdecl;
-  glVertexAttrib3sARB: procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); extdecl;
-  glVertexAttrib3fARB: procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); extdecl;
-  glVertexAttrib3dARB: procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); extdecl;
-  glVertexAttrib4sARB: procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); extdecl;
-  glVertexAttrib4fARB: procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); extdecl;
-  glVertexAttrib4dARB: procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); extdecl;
-  glVertexAttrib4NubARB: procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); extdecl;
-  glVertexAttrib1svARB: procedure(index: GLuint; const v: PGLshort); extdecl;
-  glVertexAttrib1fvARB: procedure(index: GLuint; const v: PGLfloat); extdecl;
-  glVertexAttrib1dvARB: procedure(index: GLuint; const v: PGLdouble); extdecl;
-  glVertexAttrib2svARB: procedure(index: GLuint; const v: PGLshort); extdecl;
-  glVertexAttrib2fvARB: procedure(index: GLuint; const v: PGLfloat); extdecl;
-  glVertexAttrib2dvARB: procedure(index: GLuint; const v: PGLdouble); extdecl;
-  glVertexAttrib3svARB: procedure(index: GLuint; const v: PGLshort); extdecl;
-  glVertexAttrib3fvARB: procedure(index: GLuint; const v: PGLfloat); extdecl;
-  glVertexAttrib3dvARB: procedure(index: GLuint; const v: PGLdouble); extdecl;
-  glVertexAttrib4bvARB: procedure(index: GLuint; const v: PGLbyte); extdecl;
-  glVertexAttrib4svARB: procedure(index: GLuint; const v: PGLshort); extdecl;
-  glVertexAttrib4ivARB: procedure(index: GLuint; const v: PGLint); extdecl;
-  glVertexAttrib4ubvARB: procedure(index: GLuint; const v: PGLubyte); extdecl;
-  glVertexAttrib4usvARB: procedure(index: GLuint; const v: PGLushort); extdecl;
-  glVertexAttrib4uivARB: procedure(index: GLuint; const v: PGLuint); extdecl;
-  glVertexAttrib4fvARB: procedure(index: GLuint; const v: PGLfloat); extdecl;
-  glVertexAttrib4dvARB: procedure(index: GLuint; const v: PGLdouble); extdecl;
-  glVertexAttrib4NbvARB: procedure(index: GLuint; const v: PGLbyte); extdecl;
-  glVertexAttrib4NsvARB: procedure(index: GLuint; const v: PGLshort); extdecl;
-  glVertexAttrib4NivARB: procedure(index: GLuint; const v: PGLint); extdecl;
-  glVertexAttrib4NubvARB: procedure(index: GLuint; const v: PGLubyte); extdecl;
-  glVertexAttrib4NusvARB: procedure(index: GLuint; const v: PGLushort); extdecl;
-  glVertexAttrib4NuivARB: procedure(index: GLuint; const v: PGLuint); extdecl;
-  glVertexAttribPointerARB: procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; const pointer: PGLvoid); extdecl;
-  glEnableVertexAttribArrayARB: procedure(index: GLuint); extdecl;
-  glDisableVertexAttribArrayARB: procedure(index: GLuint); extdecl;
-  glProgramStringARB: procedure(target: GLenum; format: GLenum; len: GLsizei; const _string: PGLvoid); extdecl;
-  glBindProgramARB: procedure(target: GLenum; _program: GLuint); extdecl;
-  glDeleteProgramsARB: procedure(n: GLsizei; const programs: PGLuint); extdecl;
-  glGenProgramsARB: procedure(n: GLsizei; programs: PGLuint); extdecl;
-  glProgramEnvParameter4dARB: procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); extdecl;
-  glProgramEnvParameter4dvARB: procedure(target: GLenum; index: GLuint; const params: PGLdouble); extdecl;
-  glProgramEnvParameter4fARB: procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); extdecl;
-  glProgramEnvParameter4fvARB: procedure(target: GLenum; index: GLuint; const params: PGLfloat); extdecl;
-  glProgramLocalParameter4dARB: procedure(target: GLenum; index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); extdecl;
-  glProgramLocalParameter4dvARB: procedure(target: GLenum; index: GLuint; const params: PGLdouble); extdecl;
-  glProgramLocalParameter4fARB: procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); extdecl;
-  glProgramLocalParameter4fvARB: procedure(target: GLenum; index: GLuint; const params: PGLfloat); extdecl;
-  glGetProgramEnvParameterdvARB: procedure(target: GLenum; index: GLuint; params: PGLdouble); extdecl;
-  glGetProgramEnvParameterfvARB: procedure(target: GLenum; index: GLuint; params: PGLfloat); extdecl;
-  glGetProgramLocalParameterdvARB: procedure(target: GLenum; index: GLuint; params: PGLdouble); extdecl;
-  glGetProgramLocalParameterfvARB: procedure(target: GLenum; index: GLuint; params: PGLfloat); extdecl;
-  glGetProgramivARB: procedure(target: GLenum; pname: GLenum; params: PGLint); extdecl;
-  glGetProgramStringARB: procedure(target: GLenum; pname: GLenum; _string: PGLvoid); extdecl;
-  glGetVertexAttribdvARB: procedure(index: GLuint; pname: GLenum; params: PGLdouble); extdecl;
-  glGetVertexAttribfvARB: procedure(index: GLuint; pname: GLenum; params: PGLfloat); extdecl;
-  glGetVertexAttribivARB: procedure(index: GLuint; pname: GLenum; params: PGLint); extdecl;
-  glGetVertexAttribPointervARB: procedure(index: GLuint; pname: GLenum; pointer: PGLvoid); extdecl;
-  glIsProgramARB: function(_program: GLuint): GLboolean; extdecl;
-
-function Load_GL_ARB_vertex_program: Boolean;
-
-//***** GL_ARB_window_pos *****//
-var
-  glWindowPos2dARB: procedure(x: GLdouble; y: GLdouble); extdecl;
-  glWindowPos2fARB: procedure(x: GLfloat; y: GLfloat); extdecl;
-  glWindowPos2iARB: procedure(x: GLint; y: GLint); extdecl;
-  glWindowPos2sARB: procedure(x: GLshort; y: GLshort); extdecl;
-  glWindowPos2dvARB: procedure(const p: PGLdouble); extdecl;
-  glWindowPos2fvARB: procedure(const p: PGLfloat); extdecl;
-  glWindowPos2ivARB: procedure(const p: PGLint); extdecl;
-  glWindowPos2svARB: procedure(const p: PGLshort); extdecl;
-  glWindowPos3dARB: procedure(x: GLdouble; y: GLdouble; z: GLdouble); extdecl;
-  glWindowPos3fARB: procedure(x: GLfloat; y: GLfloat; z: GLfloat); extdecl;
-  glWindowPos3iARB: procedure(x: GLint; y: GLint; z: GLint); extdecl;
-  glWindowPos3sARB: procedure(x: GLshort; y: GLshort; z: GLshort); extdecl;
-  glWindowPos3dvARB: procedure(const p: PGLdouble); extdecl;
-  glWindowPos3fvARB: procedure(const p: PGLfloat); extdecl;
-  glWindowPos3ivARB: procedure(const p: PGLint); extdecl;
-  glWindowPos3svARB: procedure(const p: PGLshort); extdecl;
-
-function Load_GL_ARB_window_pos: Boolean;
-
-//***** GL_EXT_422_pixels *****//
-const
-  GL_422_EXT = $80CC;
-  GL_422_REV_EXT = $80CD;
-  GL_422_AVERAGE_EXT = $80CE;
-  GL_422_REV_AVERAGE_EXT = $80CF;
-
-function Load_GL_EXT_422_pixels: Boolean;
-
-//***** GL_EXT_abgr *****//
-const
-  GL_ABGR_EXT = $8000;
-
-function Load_GL_EXT_abgr: Boolean;
-
-//***** GL_EXT_bgra *****//
-const
-  GL_BGR_EXT = $80E0;
-  GL_BGRA_EXT = $80E1;
-
-function Load_GL_EXT_bgra: Boolean;
-
-//***** GL_EXT_blend_color *****//
-const
-  GL_CONSTANT_COLOR_EXT = $8001;
-  GL_ONE_MINUS_CONSTANT_COLOR_EXT = $8002;
-  GL_CONSTANT_ALPHA_EXT = $8003;
-  GL_ONE_MINUS_CONSTANT_ALPHA_EXT = $8004;
-  GL_BLEND_COLOR_EXT = $8005;
-var
-  glBlendColorEXT: procedure(red: GLclampf; green: GLclampf; blue: GLclampf; alpha: GLclampf); extdecl;
-
-function Load_GL_EXT_blend_color: Boolean;
-
-//***** GL_EXT_blend_func_separate *****//
-const
-  GL_BLEND_DST_RGB_EXT = $80C8;
-  GL_BLEND_SRC_RGB_EXT = $80C9;
-  GL_BLEND_DST_ALPHA_EXT = $80CA;
-  GL_BLEND_SRC_ALPHA_EXT = $80CB;
-var
-  glBlendFuncSeparateEXT: procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); extdecl;
-
-function Load_GL_EXT_blend_func_separate: Boolean;
-
-//***** GL_EXT_blend_logic_op *****//
-
-function Load_GL_EXT_blend_logic_op: Boolean;
-
-//***** GL_EXT_blend_minmax *****//
-const
-  GL_FUNC_ADD_EXT = $8006;
-  GL_MIN_EXT = $8007;
-  GL_MAX_EXT = $8008;
-  GL_BLEND_EQUATION_EXT = $8009;
-var
-  glBlendEquationEXT: procedure(mode: GLenum); extdecl;
-
-function Load_GL_EXT_blend_minmax: Boolean;
-
-//***** GL_EXT_blend_subtract *****//
-const
-  GL_FUNC_SUBTRACT_EXT = $800A;
-  GL_FUNC_REVERSE_SUBTRACT_EXT = $800B;
-
-function Load_GL_EXT_blend_subtract: Boolean;
-
-//***** GL_EXT_clip_volume_hint *****//
-const
-  GL_CLIP_VOLUME_CLIPPING_HINT_EXT = $80F0;
-
-function Load_GL_EXT_clip_volume_hint: Boolean;
-
-//***** GL_EXT_color_subtable *****//
-var
-  glColorSubTableEXT: procedure(target: GLenum; start: GLsizei; count: GLsizei; format: GLenum; _type: GLenum; const data: PGLvoid); extdecl;
-  glCopyColorSubTableEXT: procedure(target: GLenum; start: GLsizei; x: GLint; y: GLint; width: GLsizei); extdecl;
-
-function Load_GL_EXT_color_subtable: Boolean;
-
-//***** GL_EXT_compiled_vertex_array *****//
-const
-  GL_ARRAY_ELEMENT_LOCK_FIRST_EXT = $81A8;
-  GL_ARRAY_ELEMENT_LOCK_COUNT_EXT = $81A9;
-var
-  glLockArraysEXT: procedure(first: GLint; count: GLsizei); extdecl;
-  glUnlockArraysEXT: procedure(); extdecl;
-
-function Load_GL_EXT_compiled_vertex_array: Boolean;
-
-//***** GL_EXT_convolution *****//
-const
-  GL_CONVOLUTION_1D_EXT = $8010;
-  GL_CONVOLUTION_2D_EXT = $8011;
-  GL_SEPARABLE_2D_EXT = $8012;
-  GL_CONVOLUTION_BORDER_MODE_EXT = $8013;
-  GL_CONVOLUTION_FILTER_SCALE_EXT = $8014;
-  GL_CONVOLUTION_FILTER_BIAS_EXT = $8015;
-  GL_REDUCE_EXT = $8016;
-  GL_CONVOLUTION_FORMAT_EXT = $8017;
-  GL_CONVOLUTION_WIDTH_EXT = $8018;
-  GL_CONVOLUTION_HEIGHT_EXT = $8019;
-  GL_MAX_CONVOLUTION_WIDTH_EXT = $801A;
-  GL_MAX_CONVOLUTION_HEIGHT_EXT = $801B;
-  GL_POST_CONVOLUTION_RED_SCALE_EXT = $801C;
-  GL_POST_CONVOLUTION_GREEN_SCALE_EXT = $801D;
-  GL_POST_CONVOLUTION_BLUE_SCALE_EXT = $801E;
-  GL_POST_CONVOLUTION_ALPHA_SCALE_EXT = $801F;
-  GL_POST_CONVOLUTION_RED_BIAS_EXT = $8020;
-  GL_POST_CONVOLUTION_GREEN_BIAS_EXT = $8021;
-  GL_POST_CONVOLUTION_BLUE_BIAS_EXT = $8022;
-  GL_POST_CONVOLUTION_ALPHA_BIAS_EXT = $8023;
-var
-  glConvolutionFilter1DEXT: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); extdecl;
-  glConvolutionFilter2DEXT: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const image: PGLvoid); extdecl;
-  glCopyConvolutionFilter1DEXT: procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); extdecl;
-  glCopyConvolutionFilter2DEXT: procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei; height: GLsizei); extdecl;
-  glGetConvolutionFilterEXT: procedure(target: GLenum; format: GLenum; _type: GLenum; image: PGLvoid); extdecl;
-  glSeparableFilter2DEXT: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const row: PGLvoid; const column: PGLvoid); extdecl;
-  glGetSeparableFilterEXT: procedure(target: GLenum; format: GLenum; _type: GLenum; row: PGLvoid; column: PGLvoid; span: PGLvoid); extdecl;
-  glConvolutionParameteriEXT: procedure(target: GLenum; pname: GLenum; param: GLint); extdecl;
-  glConvolutionParameterivEXT: procedure(target: GLenum; pname: GLenum; const params: PGLint); extdecl;
-  glConvolutionParameterfEXT: procedure(target: GLenum; pname: GLenum; param: GLfloat); extdecl;
-  glConvolutionParameterfvEXT: procedure(target: GLenum; pname: GLenum; const params: PGLfloat); extdecl;
-  glGetConvolutionParameterivEXT: procedure(target: GLenum; pname: GLenum; params: PGLint); extdecl;
-  glGetConvolutionParameterfvEXT: procedure(target: GLenum; pname: GLenum; params: PGLfloat); extdecl;
-
-function Load_GL_EXT_convolution: Boolean;
-
-//***** GL_EXT_fog_coord *****//
-const
-  GL_FOG_COORDINATE_SOURCE_EXT = $8450;
-  GL_FOG_COORDINATE_EXT = $8451;
-  GL_FRAGMENT_DEPTH_EXT = $8452;
-  GL_CURRENT_FOG_COORDINATE_EXT = $8453;
-  GL_FOG_COORDINATE_ARRAY_TYPE_EXT = $8454;
-  GL_FOG_COORDINATE_ARRAY_STRIDE_EXT = $8455;
-  GL_FOG_COORDINATE_ARRAY_POINTER_EXT = $8456;
-  GL_FOG_COORDINATE_ARRAY_EXT = $8457;
-var
-  glFogCoordfEXT: procedure(coord: GLfloat); extdecl;
-  glFogCoorddEXT: procedure(coord: GLdouble); extdecl;
-  glFogCoordfvEXT: procedure(coord: PGLfloat); extdecl;
-  glFogCoorddvEXT: procedure(coord: PGLdouble); extdecl;
-  glFogCoordPointerEXT: procedure(_type: GLenum; stride: GLsizei; pointer: PGLvoid); extdecl;
-
-function Load_GL_EXT_fog_coord: Boolean;
-
-//***** GL_EXT_histogram *****//
-const
-  GL_HISTOGRAM_EXT = $8024;
-  GL_PROXY_HISTOGRAM_EXT = $8025;
-  GL_HISTOGRAM_WIDTH_EXT = $8026;
-  GL_HISTOGRAM_FORMAT_EXT = $8027;
-  GL_HISTOGRAM_RED_SIZE_EXT = $8028;
-  GL_HISTOGRAM_GREEN_SIZE_EXT = $8029;
-  GL_HISTOGRAM_BLUE_SIZE_EXT = $802A;
-  GL_HISTOGRAM_ALPHA_SIZE_EXT = $802B;
-  GL_HISTOGRAM_LUMINANCE_SIZE_EXT = $802C;
-  GL_HISTOGRAM_SINK_EXT = $802D;
-  GL_MINMAX_EXT = $802E;
-  GL_MINMAX_FORMAT_EXT = $802F;
-  GL_MINMAX_SINK_EXT = $8030;
-var
-  glHistogramEXT: procedure(target: GLenum; width: GLsizei; internalformat: GLenum; sink: GLboolean); extdecl;
-  glResetHistogramEXT: procedure(target: GLenum); extdecl;
-  glGetHistogramEXT: procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); extdecl;
-  glGetHistogramParameterivEXT: procedure(target: GLenum; pname: GLenum; params: PGLint); extdecl;
-  glGetHistogramParameterfvEXT: procedure(target: GLenum; pname: GLenum; params: PGLfloat); extdecl;
-  glMinmaxEXT: procedure(target: GLenum; internalformat: GLenum; sink: GLboolean); extdecl;
-  glResetMinmaxEXT: procedure(target: GLenum); extdecl;
-  glGetMinmaxEXT: procedure(target: GLenum; reset: GLboolean; format: GLenum; _type: GLenum; values: PGLvoid); extdecl;
-  glGetMinmaxParameterivEXT: procedure(target: GLenum; pname: GLenum; params: PGLint); extdecl;
-  glGetMinmaxParameterfvEXT: procedure(target: GLenum; pname: GLenum; params: PGLfloat); extdecl;
-
-function Load_GL_EXT_histogram: Boolean;
-
-//***** GL_EXT_multi_draw_arrays *****//
-var
-  glMultiDrawArraysEXT: procedure(mode: GLenum; first: PGLint; count: PGLsizei; primcount: GLsizei); extdecl;
-  glMultiDrawElementsEXT: procedure(mode: GLenum; count: PGLsizei; _type: GLenum; const indices: PGLvoid; primcount: GLsizei); extdecl;
-
-function Load_GL_EXT_multi_draw_arrays: Boolean;
-
-//***** GL_EXT_packed_pixels *****//
-const
-  GL_UNSIGNED_BYTE_3_3_2_EXT = $8032;
-  GL_UNSIGNED_SHORT_4_4_4_4_EXT = $8033;
-  GL_UNSIGNED_SHORT_5_5_5_1_EXT = $8034;
-  GL_UNSIGNED_INT_8_8_8_8_EXT = $8035;
-  GL_UNSIGNED_INT_10_10_10_2_EXT = $8036;
-
-function Load_GL_EXT_packed_pixels: Boolean;
-
-//***** GL_EXT_paletted_texture *****//
-const
-  GL_COLOR_INDEX1_EXT = $80E2;
-  GL_COLOR_INDEX2_EXT = $80E3;
-  GL_COLOR_INDEX4_EXT = $80E4;
-  GL_COLOR_INDEX8_EXT = $80E5;
-  GL_COLOR_INDEX12_EXT = $80E6;
-  GL_COLOR_INDEX16_EXT = $80E7;
-  GL_COLOR_TABLE_FORMAT_EXT = $80D8;
-  GL_COLOR_TABLE_WIDTH_EXT = $80D9;
-  GL_COLOR_TABLE_RED_SIZE_EXT = $80DA;
-  GL_COLOR_TABLE_GREEN_SIZE_EXT = $80DB;
-  GL_COLOR_TABLE_BLUE_SIZE_EXT = $80DC;
-  GL_COLOR_TABLE_ALPHA_SIZE_EXT = $80DD;
-  GL_COLOR_TABLE_LUMINANCE_SIZE_EXT = $80DE;
-  GL_COLOR_TABLE_INTENSITY_SIZE_EXT = $80DF;
-  GL_TEXTURE_INDEX_SIZE_EXT = $80ED;
-  GL_TEXTURE_1D = $0DE0;
-  GL_TEXTURE_2D = $0DE1;
-  GL_TEXTURE_3D_EXT = $806F;
-  // GL_TEXTURE_CUBE_MAP_ARB  { already defined }
-  GL_PROXY_TEXTURE_1D = $8063;
-  GL_PROXY_TEXTURE_2D = $8064;
-  GL_PROXY_TEXTURE_3D_EXT = $8070;
-  // GL_PROXY_TEXTURE_CUBE_MAP_ARB  { already defined }
-  // GL_TEXTURE_1D  { already defined }
-  // GL_TEXTURE_2D  { already defined }
-  // GL_TEXTURE_3D_EXT  { already defined }
-  // GL_TEXTURE_CUBE_MAP_ARB  { already defined }
-var
-  glColorTableEXT: procedure(target: GLenum; internalFormat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const data: PGLvoid); extdecl;
-  // glColorSubTableEXT  { already defined }
-  glGetColorTableEXT: procedure(target: GLenum; format: GLenum; _type: GLenum; data: PGLvoid); extdecl;
-  glGetColorTableParameterivEXT: procedure(target: GLenum; pname: GLenum; params: PGLint); extdecl;
-  glGetColorTableParameterfvEXT: procedure(target: GLenum; pname: GLenum; params: PGLfloat); extdecl;
-
-function Load_GL_EXT_paletted_texture: Boolean;
-
-//***** GL_EXT_point_parameters *****//
-const
-  GL_POINT_SIZE_MIN_EXT = $8126;
-  GL_POINT_SIZE_MAX_EXT = $8127;
-  GL_POINT_FADE_THRESHOLD_SIZE_EXT = $8128;
-  GL_DISTANCE_ATTENUATION_EXT = $8129;
-var
-  glPointParameterfEXT: procedure(pname: GLenum; param: GLfloat); extdecl;
-  glPointParameterfvEXT: procedure(pname: GLenum; params: PGLfloat); extdecl;
-
-function Load_GL_EXT_point_parameters: Boolean;
-
-//***** GL_EXT_polygon_offset *****//
-const
-  GL_POLYGON_OFFSET_EXT = $8037;
-  GL_POLYGON_OFFSET_FACTOR_EXT = $8038;
-  GL_POLYGON_OFFSET_BIAS_EXT = $8039;
-var
-  glPolygonOffsetEXT: procedure(factor: GLfloat; bias: GLfloat); extdecl;
-
-function Load_GL_EXT_polygon_offset: Boolean;
-
-//***** GL_EXT_secondary_color *****//
-const
-  GL_COLOR_SUM_EXT = $8458;
-  GL_CURRENT_SECONDARY_COLOR_EXT = $8459;
-  GL_SECONDARY_COLOR_ARRAY_SIZE_EXT = $845A;
-  GL_SECONDARY_COLOR_ARRAY_TYPE_EXT = $845B;
-  GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT = $845C;
-  GL_SECONDARY_COLOR_ARRAY_POINTER_EXT = $845D;
-  GL_SECONDARY_COLOR_ARRAY_EXT = $845E;
-var
-  glSecondaryColor3bEXT: procedure(components: GLbyte); extdecl;
-  glSecondaryColor3sEXT: procedure(components: GLshort); extdecl;
-  glSecondaryColor3iEXT: procedure(components: GLint); extdecl;
-  glSecondaryColor3fEXT: procedure(components: GLfloat); extdecl;
-  glSecondaryColor3dEXT: procedure(components: GLdouble); extdecl;
-  glSecondaryColor3ubEXT: procedure(components: GLubyte); extdecl;
-  glSecondaryColor3usEXT: procedure(components: GLushort); extdecl;
-  glSecondaryColor3uiEXT: procedure(components: GLuint); extdecl;
-  glSecondaryColor3bvEXT: procedure(components: GLbyte); extdecl;
-  glSecondaryColor3svEXT: procedure(components: GLshort); extdecl;
-  glSecondaryColor3ivEXT: procedure(components: GLint); extdecl;
-  glSecondaryColor3fvEXT: procedure(components: GLfloat); extdecl;
-  glSecondaryColor3dvEXT: procedure(components: GLdouble); extdecl;
-  glSecondaryColor3ubvEXT: procedure(components: GLubyte); extdecl;
-  glSecondaryColor3usvEXT: procedure(components: GLushort); extdecl;
-  glSecondaryColor3uivEXT: procedure(components: GLuint); extdecl;
-  glSecondaryColorPointerEXT: procedure(size: GLint; _type: GLenum; stride: GLsizei; pointer: PGLvoid); extdecl;
-
-function Load_GL_EXT_secondary_color: Boolean;
-
-//***** GL_EXT_separate_specular_color *****//
-const
-  GL_LIGHT_MODEL_COLOR_CONTROL_EXT = $81F8;
-  GL_SINGLE_COLOR_EXT = $81F9;
-  GL_SEPARATE_SPECULAR_COLOR_EXT = $81FA;
-
-function Load_GL_EXT_separate_specular_color: Boolean;
-
-//***** GL_EXT_shadow_funcs *****//
-
-function Load_GL_EXT_shadow_funcs: Boolean;
-
-//***** GL_EXT_shared_texture_palette *****//
-const
-  GL_SHARED_TEXTURE_PALETTE_EXT = $81FB;
-
-function Load_GL_EXT_shared_texture_palette: Boolean;
-
-//***** GL_EXT_stencil_two_side *****//
-const
-  GL_STENCIL_TEST_TWO_SIDE_EXT = $8910;
-  GL_ACTIVE_STENCIL_FACE_EXT = $8911;
-var
-  glActiveStencilFaceEXT: procedure(face: GLenum); extdecl;
-
-function Load_GL_EXT_stencil_two_side: Boolean;
-
-//***** GL_EXT_stencil_wrap *****//
-const
-  GL_INCR_WRAP_EXT = $8507;
-  GL_DECR_WRAP_EXT = $8508;
-
-function Load_GL_EXT_stencil_wrap: Boolean;
-
-//***** GL_EXT_subtexture *****//
-var
-  glTexSubImage1DEXT: procedure(target: GLenum; level: GLint; xoffset: GLint; width: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); extdecl;
-  glTexSubImage2DEXT: procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; width: GLsizei; height: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); extdecl;
-  glTexSubImage3DEXT: procedure(target: GLenum; level: GLint; xoffset: GLint; yoffset: GLint; zoffset: GLint; width: GLsizei; height: GLsizei; depth: GLsizei; format: GLenum; _type: GLenum; const pixels: PGLvoid); extdecl;
-
-function Load_GL_EXT_subtexture: Boolean;
-
-//***** GL_EXT_texture3D *****//
-const
-  GL_PACK_SKIP_IMAGES_EXT = $806B;
-  GL_PACK_IMAGE_HEIGHT_EXT = $806C;
-  GL_UNPACK_SKIP_IMAGES_EXT = $806D;
-  GL_UNPACK_IMAGE_HEIGHT_EXT = $806E;
-  // GL_TEXTURE_3D_EXT  { already defined }
-  // GL_PROXY_TEXTURE_3D_EXT  { already defined }
-  GL_TEXTURE_DEPTH_EXT = $8071;
-  GL_TEXTURE_WRAP_R_EXT = $8072;
-  GL_MAX_3D_TEXTURE_SIZE_EXT = $8073;
-var
-  glTexImage3DEXT: procedure(target: GLenum; level: GLint; internalformat: GLenum; width: GLsizei; height: GLsizei; depth: GLsizei; border: GLint; format: GLenum; _type: GLenum; const pixels: PGLvoid); extdecl;
-
-function Load_GL_EXT_texture3D: Boolean;
-
-//***** GL_EXT_texture_compression_s3tc *****//
-const
-  GL_COMPRESSED_RGB_S3TC_DXT1_EXT = $83F0;
-  GL_COMPRESSED_RGBA_S3TC_DXT1_EXT = $83F1;
-  GL_COMPRESSED_RGBA_S3TC_DXT3_EXT = $83F2;
-  GL_COMPRESSED_RGBA_S3TC_DXT5_EXT = $83F3;
-
-function Load_GL_EXT_texture_compression_s3tc: Boolean;
-
-//***** GL_EXT_texture_env_add *****//
-
-function Load_GL_EXT_texture_env_add: Boolean;
-
-//***** GL_EXT_texture_env_combine *****//
-const
-  GL_COMBINE_EXT = $8570;
-  GL_COMBINE_RGB_EXT = $8571;
-  GL_COMBINE_ALPHA_EXT = $8572;
-  GL_SOURCE0_RGB_EXT = $8580;
-  GL_SOURCE1_RGB_EXT = $8581;
-  GL_SOURCE2_RGB_EXT = $8582;
-  GL_SOURCE0_ALPHA_EXT = $8588;
-  GL_SOURCE1_ALPHA_EXT = $8589;
-  GL_SOURCE2_ALPHA_EXT = $858A;
-  GL_OPERAND0_RGB_EXT = $8590;
-  GL_OPERAND1_RGB_EXT = $8591;
-  GL_OPERAND2_RGB_EXT = $8592;
-  GL_OPERAND0_ALPHA_EXT = $8598;
-  GL_OPERAND1_ALPHA_EXT = $8599;
-  GL_OPERAND2_ALPHA_EXT = $859A;
-  GL_RGB_SCALE_EXT = $8573;
-  GL_ADD_SIGNED_EXT = $8574;
-  GL_INTERPOLATE_EXT = $8575;
-  GL_CONSTANT_EXT = $8576;
-  GL_PRIMARY_COLOR_EXT = $8577;
-  GL_PREVIOUS_EXT = $8578;
-
-function Load_GL_EXT_texture_env_combine: Boolean;
-
-//***** GL_EXT_texture_env_dot3 *****//
-const
-  GL_DOT3_RGB_EXT = $8740;
-  GL_DOT3_RGBA_EXT = $8741;
-
-function Load_GL_EXT_texture_env_dot3: Boolean;
-
-//***** GL_EXT_texture_filter_anisotropic *****//
-const
-  GL_TEXTURE_MAX_ANISOTROPY_EXT = $84FE;
-  GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = $84FF;
-
-function Load_GL_EXT_texture_filter_anisotropic: Boolean;
-
-//***** GL_EXT_texture_lod_bias *****//
-const
-  GL_TEXTURE_FILTER_CONTROL_EXT = $8500;
-  GL_TEXTURE_LOD_BIAS_EXT = $8501;
-  GL_MAX_TEXTURE_LOD_BIAS_EXT = $84FD;
-
-function Load_GL_EXT_texture_lod_bias: Boolean;
-
-//***** GL_EXT_texture_object *****//
-const
-  GL_TEXTURE_PRIORITY_EXT = $8066;
-  GL_TEXTURE_RESIDENT_EXT = $8067;
-  GL_TEXTURE_1D_BINDING_EXT = $8068;
-  GL_TEXTURE_2D_BINDING_EXT = $8069;
-  GL_TEXTURE_3D_BINDING_EXT = $806A;
-var
-  glGenTexturesEXT: procedure(n: GLsizei; textures: PGLuint); extdecl;
-  glDeleteTexturesEXT: procedure(n: GLsizei; const textures: PGLuint); extdecl;
-  glBindTextureEXT: procedure(target: GLenum; texture: GLuint); extdecl;
-  glPrioritizeTexturesEXT: procedure(n: GLsizei; const textures: PGLuint; const priorities: PGLclampf); extdecl;
-  glAreTexturesResidentEXT: function(n: GLsizei; const textures: PGLuint; residences: PGLboolean): GLboolean; extdecl;
-  glIsTextureEXT: function(texture: GLuint): GLboolean; extdecl;
-
-function Load_GL_EXT_texture_object: Boolean;
-
-//***** GL_EXT_vertex_array *****//
-const
-  GL_VERTEX_ARRAY_EXT = $8074;
-  GL_NORMAL_ARRAY_EXT = $8075;
-  GL_COLOR_ARRAY_EXT = $8076;
-  GL_INDEX_ARRAY_EXT = $8077;
-  GL_TEXTURE_COORD_ARRAY_EXT = $8078;
-  GL_EDGE_FLAG_ARRAY_EXT = $8079;
-  GL_DOUBLE_EXT = $140A;
-  GL_VERTEX_ARRAY_SIZE_EXT = $807A;
-  GL_VERTEX_ARRAY_TYPE_EXT = $807B;
-  GL_VERTEX_ARRAY_STRIDE_EXT = $807C;
-  GL_VERTEX_ARRAY_COUNT_EXT = $807D;
-  GL_NORMAL_ARRAY_TYPE_EXT = $807E;
-  GL_NORMAL_ARRAY_STRIDE_EXT = $807F;
-  GL_NORMAL_ARRAY_COUNT_EXT = $8080;
-  GL_COLOR_ARRAY_SIZE_EXT = $8081;
-  GL_COLOR_ARRAY_TYPE_EXT = $8082;
-  GL_COLOR_ARRAY_STRIDE_EXT = $8083;
-  GL_COLOR_ARRAY_COUNT_EXT = $8084;
-  GL_INDEX_ARRAY_TYPE_EXT = $8085;
-  GL_INDEX_ARRAY_STRIDE_EXT = $8086;
-  GL_INDEX_ARRAY_COUNT_EXT = $8087;
-  GL_TEXTURE_COORD_ARRAY_SIZE_EXT = $8088;
-  GL_TEXTURE_COORD_ARRAY_TYPE_EXT = $8089;
-  GL_TEXTURE_COORD_ARRAY_STRIDE_EXT = $808A;
-  GL_TEXTURE_COORD_ARRAY_COUNT_EXT = $808B;
-  GL_EDGE_FLAG_ARRAY_STRIDE_EXT = $808C;
-  GL_EDGE_FLAG_ARRAY_COUNT_EXT = $808D;
-  GL_VERTEX_ARRAY_POINTER_EXT = $808E;
-  GL_NORMAL_ARRAY_POINTER_EXT = $808F;
-  GL_COLOR_ARRAY_POINTER_EXT = $8090;
-  GL_INDEX_ARRAY_POINTER_EXT = $8091;
-  GL_TEXTURE_COORD_ARRAY_POINTER_EXT = $8092;
-  GL_EDGE_FLAG_ARRAY_POINTER_EXT = $8093;
-var
-  glArrayElementEXT: procedure(i: GLint); extdecl;
-  glDrawArraysEXT: procedure(mode: GLenum; first: GLint; count: GLsizei); extdecl;
-  glVertexPointerEXT: procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const pointer: PGLvoid); extdecl;
-  glNormalPointerEXT: procedure(_type: GLenum; stride: GLsizei; count: GLsizei; const pointer: PGLvoid); extdecl;
-  glColorPointerEXT: procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const pointer: PGLvoid); extdecl;
-  glIndexPointerEXT: procedure(_type: GLenum; stride: GLsizei; count: GLsizei; const pointer: PGLvoid); extdecl;
-  glTexCoordPointerEXT: procedure(size: GLint; _type: GLenum; stride: GLsizei; count: GLsizei; const pointer: PGLvoid); extdecl;
-  glEdgeFlagPointerEXT: procedure(stride: GLsizei; count: GLsizei; const pointer: PGLboolean); extdecl;
-  glGetPointervEXT: procedure(pname: GLenum; params: PGLvoid); extdecl;
-
-function Load_GL_EXT_vertex_array: Boolean;
-
-//***** GL_EXT_vertex_shader *****//
-const
-  GL_VERTEX_SHADER_EXT = $8780;
-  GL_VARIANT_VALUE_EXT = $87E4;
-  GL_VARIANT_DATATYPE_EXT = $87E5;
-  GL_VARIANT_ARRAY_STRIDE_EXT = $87E6;
-  GL_VARIANT_ARRAY_TYPE_EXT = $87E7;
-  GL_VARIANT_ARRAY_EXT = $87E8;
-  GL_VARIANT_ARRAY_POINTER_EXT = $87E9;
-  GL_INVARIANT_VALUE_EXT = $87EA;
-  GL_INVARIANT_DATATYPE_EXT = $87EB;
-  GL_LOCAL_CONSTANT_VALUE_EXT = $87EC;
-  GL_LOCAL_CONSTANT_DATATYPE_EXT = $87ED;
-  GL_OP_INDEX_EXT = $8782;
-  GL_OP_NEGATE_EXT = $8783;
-  GL_OP_DOT3_EXT = $8784;
-  GL_OP_DOT4_EXT = $8785;
-  GL_OP_MUL_EXT = $8786;
-  GL_OP_ADD_EXT = $8787;
-  GL_OP_MADD_EXT = $8788;
-  GL_OP_FRAC_EXT = $8789;
-  GL_OP_MAX_EXT = $878A;
-  GL_OP_MIN_EXT = $878B;
-  GL_OP_SET_GE_EXT = $878C;
-  GL_OP_SET_LT_EXT = $878D;
-  GL_OP_CLAMP_EXT = $878E;
-  GL_OP_FLOOR_EXT = $878F;
-  GL_OP_ROUND_EXT = $8790;
-  GL_OP_EXP_BASE_2_EXT = $8791;
-  GL_OP_LOG_BASE_2_EXT = $8792;
-  GL_OP_POWER_EXT = $8793;
-  GL_OP_RECIP_EXT = $8794;
-  GL_OP_RECIP_SQRT_EXT = $8795;
-  GL_OP_SUB_EXT = $8796;
-  GL_OP_CROSS_PRODUCT_EXT = $8797;
-  GL_OP_MULTIPLY_MATRIX_EXT = $8798;
-  GL_OP_MOV_EXT = $8799;
-  GL_OUTPUT_VERTEX_EXT = $879A;
-  GL_OUTPUT_COLOR0_EXT = $879B;
-  GL_OUTPUT_COLOR1_EXT = $879C;
-  GL_OUTPUT_TEXTURE_COORD0_EXT = $879D;
-  GL_OUTPUT_TEXTURE_COORD1_EXT = $879E;
-  GL_OUTPUT_TEXTURE_COORD2_EXT = $879F;
-  GL_OUTPUT_TEXTURE_COORD3_EXT = $87A0;
-  GL_OUTPUT_TEXTURE_COORD4_EXT = $87A1;
-  GL_OUTPUT_TEXTURE_COORD5_EXT = $87A2;
-  GL_OUTPUT_TEXTURE_COORD6_EXT = $87A3;
-  GL_OUTPUT_TEXTURE_COORD7_EXT = $87A4;
-  GL_OUTPUT_TEXTURE_COORD8_EXT = $87A5;
-  GL_OUTPUT_TEXTURE_COORD9_EXT = $87A6;
-  GL_OUTPUT_TEXTURE_COORD10_EXT = $87A7;
-  GL_OUTPUT_TEXTURE_COORD11_EXT = $87A8;
-  GL_OUTPUT_TEXTURE_COORD12_EXT = $87A9;
-  GL_OUTPUT_TEXTURE_COORD13_EXT = $87AA;
-  GL_OUTPUT_TEXTURE_COORD14_EXT = $87AB;
-  GL_OUTPUT_TEXTURE_COORD15_EXT = $87AC;
-  GL_OUTPUT_TEXTURE_COORD16_EXT = $87AD;
-  GL_OUTPUT_TEXTURE_COORD17_EXT = $87AE;
-  GL_OUTPUT_TEXTURE_COORD18_EXT = $87AF;
-  GL_OUTPUT_TEXTURE_COORD19_EXT = $87B0;
-  GL_OUTPUT_TEXTURE_COORD20_EXT = $87B1;
-  GL_OUTPUT_TEXTURE_COORD21_EXT = $87B2;
-  GL_OUTPUT_TEXTURE_COORD22_EXT = $87B3;
-  GL_OUTPUT_TEXTURE_COORD23_EXT = $87B4;
-  GL_OUTPUT_TEXTURE_COORD24_EXT = $87B5;
-  GL_OUTPUT_TEXTURE_COORD25_EXT = $87B6;
-  GL_OUTPUT_TEXTURE_COORD26_EXT = $87B7;
-  GL_OUTPUT_TEXTURE_COORD27_EXT = $87B8;
-  GL_OUTPUT_TEXTURE_COORD28_EXT = $87B9;
-  GL_OUTPUT_TEXTURE_COORD29_EXT = $87BA;
-  GL_OUTPUT_TEXTURE_COORD30_EXT = $87BB;
-  GL_OUTPUT_TEXTURE_COORD31_EXT = $87BC;
-  GL_OUTPUT_FOG_EXT = $87BD;
-  GL_SCALAR_EXT = $87BE;
-  GL_VECTOR_EXT = $87BF;
-  GL_MATRIX_EXT = $87C0;
-  GL_VARIANT_EXT = $87C1;
-  GL_INVARIANT_EXT = $87C2;
-  GL_LOCAL_CONSTANT_EXT = $87C3;
-  GL_LOCAL_EXT = $87C4;
-  GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT = $87C5;
-  GL_MAX_VERTEX_SHADER_VARIANTS_EXT = $87C6;
-  GL_MAX_VERTEX_SHADER_INVARIANTS_EXT = $87C7;
-  GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = $87C8;
-  GL_MAX_VERTEX_SHADER_LOCALS_EXT = $87C9;
-  GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT = $87CA;
-  GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT = $87CB;
-  GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = $87CC;
-  GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT = $87CD;
-  GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT = $87CE;
-  GL_VERTEX_SHADER_INSTRUCTIONS_EXT = $87CF;
-  GL_VERTEX_SHADER_VARIANTS_EXT = $87D0;
-  GL_VERTEX_SHADER_INVARIANTS_EXT = $87D1;
-  GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT = $87D2;
-  GL_VERTEX_SHADER_LOCALS_EXT = $87D3;
-  GL_VERTEX_SHADER_BINDING_EXT = $8781;
-  GL_VERTEX_SHADER_OPTIMIZED_EXT = $87D4;
-  GL_X_EXT = $87D5;
-  GL_Y_EXT = $87D6;
-  GL_Z_EXT = $87D7;
-  GL_W_EXT = $87D8;
-  GL_NEGATIVE_X_EXT = $87D9;
-  GL_NEGATIVE_Y_EXT = $87DA;
-  GL_NEGATIVE_Z_EXT = $87DB;
-  GL_NEGATIVE_W_EXT = $87DC;
-  GL_ZERO_EXT = $87DD;
-  GL_ONE_EXT = $87DE;
-  GL_NEGATIVE_ONE_EXT = $87DF;
-  GL_NORMALIZED_RANGE_EXT = $87E0;
-  GL_FULL_RANGE_EXT = $87E1;
-  GL_CURRENT_VERTEX_EXT = $87E2;
-  GL_MVP_MATRIX_EXT = $87E3;
-var
-  glBeginVertexShaderEXT: procedure(); extdecl;
-  glEndVertexShaderEXT: procedure(); extdecl;
-  glBindVertexShaderEXT: procedure(id: GLuint); extdecl;
-  glGenVertexShadersEXT: function(range: GLuint): GLuint; extdecl;
-  glDeleteVertexShaderEXT: procedure(id: GLuint); extdecl;
-  glShaderOp1EXT: procedure(op: GLenum; res: GLuint; arg1: GLuint); extdecl;
-  glShaderOp2EXT: procedure(op: GLenum; res: GLuint; arg1: GLuint; arg2: GLuint); extdecl;
-  glShaderOp3EXT: procedure(op: GLenum; res: GLuint; arg1: GLuint; arg2: GLuint; arg3: GLuint); extdecl;
-  glSwizzleEXT: procedure(res: GLuint; _in: GLuint; outX: GLenum; outY: GLenum; outZ: GLenum; outW: GLenum); extdecl;
-  glWriteMaskEXT: procedure(res: GLuint; _in: GLuint; outX: GLenum; outY: GLenum; outZ: GLenum; outW: GLenum); extdecl;
-  glInsertComponentEXT: procedure(res: GLuint; src: GLuint; num: GLuint); extdecl;
-  glExtractComponentEXT: procedure(res: GLuint; src: GLuint; num: GLuint); extdecl;
-  glGenSymbolsEXT: function(datatype: GLenum; storagetype: GLenum; range: GLenum; components: GLuint): GLuint; extdecl;
-  glSetInvariantEXT: procedure(id: GLuint; _type: GLenum; addr: PGLvoid); extdecl;
-  glSetLocalConstantEXT: procedure(id: GLuint; _type: GLenum; addr: PGLvoid); extdecl;
-  glVariantbvEXT: procedure(id: GLuint; addr: PGLbyte); extdecl;
-  glVariantsvEXT: procedure(id: GLuint; addr: PGLshort); extdecl;
-  glVariantivEXT: procedure(id: GLuint; addr: PGLint); extdecl;
-  glVariantfvEXT: procedure(id: GLuint; addr: PGLfloat); extdecl;
-  glVariantdvEXT: procedure(id: GLuint; addr: PGLdouble); extdecl;
-  glVariantubvEXT: procedure(id: GLuint; addr: PGLubyte); extdecl;
-  glVariantusvEXT: procedure(id: GLuint; addr: PGLushort); extdecl;
-  glVariantuivEXT: procedure(id: GLuint; addr: PGLuint); extdecl;
-  glVariantPointerEXT: procedure(id: GLuint; _type: GLenum; stride: GLuint; addr: PGLvoid); extdecl;
-  glEnableVariantClientStateEXT: procedure(id: GLuint); extdecl;
-  glDisableVariantClientStateEXT: procedure(id: GLuint); extdecl;
-  glBindLightParameterEXT: function(light: GLenum; value: GLenum): GLuint; extdecl;
-  glBindMaterialParameterEXT: function(face: GLenum; value: GLenum): GLuint; extdecl;
-  glBindTexGenParameterEXT: function(_unit: GLenum; coord: GLenum; value: GLenum): GLuint; extdecl;
-  glBindTextureUnitParameterEXT: function(_unit: GLenum; value: GLenum): GLuint; extdecl;
-  glBindParameterEXT: function(value: GLenum): GLuint; extdecl;
-  glIsVariantEnabledEXT: function(id: GLuint; cap: GLenum): GLboolean; extdecl;
-  glGetVariantBooleanvEXT: procedure(id: GLuint; value: GLenum; data: PGLboolean); extdecl;
-  glGetVariantIntegervEXT: procedure(id: GLuint; value: GLenum; data: PGLint); extdecl;
-  glGetVariantFloatvEXT: procedure(id: GLuint; value: GLenum; data: PGLfloat); extdecl;
-  glGetVariantPointervEXT: procedure(id: GLuint; value: GLenum; data: PGLvoid); extdecl;
-  glGetInvariantBooleanvEXT: procedure(id: GLuint; value: GLenum; data: PGLboolean); extdecl;
-  glGetInvariantIntegervEXT: procedure(id: GLuint; value: GLenum; data: PGLint); extdecl;
-  glGetInvariantFloatvEXT: procedure(id: GLuint; value: GLenum; data: PGLfloat); extdecl;
-  glGetLocalConstantBooleanvEXT: procedure(id: GLuint; value: GLenum; data: PGLboolean); extdecl;
-  glGetLocalConstantIntegervEXT: procedure(id: GLuint; value: GLenum; data: PGLint); extdecl;
-  glGetLocalConstantFloatvEXT: procedure(id: GLuint; value: GLenum; data: PGLfloat); extdecl;
-
-function Load_GL_EXT_vertex_shader: Boolean;
-
-//***** GL_EXT_vertex_weighting *****//
-const
-  GL_VERTEX_WEIGHTING_EXT = $8509;
-  GL_MODELVIEW0_EXT = $1700;
-  GL_MODELVIEW1_EXT = $850A;
-  GL_MODELVIEW0_MATRIX_EXT = $0BA6;
-  GL_MODELVIEW1_MATRIX_EXT = $8506;
-  GL_CURRENT_VERTEX_WEIGHT_EXT = $850B;
-  GL_VERTEX_WEIGHT_ARRAY_EXT = $850C;
-  GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT = $850D;
-  GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT = $850E;
-  GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT = $850F;
-  GL_MODELVIEW0_STACK_DEPTH_EXT = $0BA3;
-  GL_MODELVIEW1_STACK_DEPTH_EXT = $8502;
-  GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT = $8510;
-var
-  glVertexWeightfEXT: procedure(weight: GLfloat); extdecl;
-  glVertexWeightfvEXT: procedure(weight: PGLfloat); extdecl;
-  glVertexWeightPointerEXT: procedure(size: GLint; _type: GLenum; stride: GLsizei; pointer: PGLvoid); extdecl;
-
-function Load_GL_EXT_vertex_weighting: Boolean;
-
-//***** GL_HP_occlusion_test *****//
-const
-  GL_OCCLUSION_TEST_HP = $8165;
-  GL_OCCLUSION_TEST_RESULT_HP = $8166;
-
-function Load_GL_HP_occlusion_test: Boolean;
-
-//***** GL_NV_blend_square *****//
-
-function Load_GL_NV_blend_square: Boolean;
-
-//***** GL_NV_copy_depth_to_color *****//
-const
-  GL_DEPTH_STENCIL_TO_RGBA_NV = $886E;
-  GL_DEPTH_STENCIL_TO_BGRA_NV = $886F;
-
-function Load_GL_NV_copy_depth_to_color: Boolean;
-
-//***** GL_NV_depth_clamp *****//
-const
-  GL_DEPTH_CLAMP_NV = $864F;
-
-function Load_GL_NV_depth_clamp: Boolean;
-
-//***** GL_NV_evaluators *****//
-const
-  GL_EVAL_2D_NV = $86C0;
-  GL_EVAL_TRIANGULAR_2D_NV = $86C1;
-  GL_MAP_TESSELLATION_NV = $86C2;
-  GL_MAP_ATTRIB_U_ORDER_NV = $86C3;
-  GL_MAP_ATTRIB_V_ORDER_NV = $86C4;
-  GL_EVAL_FRACTIONAL_TESSELLATION_NV = $86C5;
-  GL_EVAL_VERTEX_ATTRIB0_NV = $86C6;
-  GL_EVAL_VERTEX_ATTRIB1_NV = $86C7;
-  GL_EVAL_VERTEX_ATTRIB2_NV = $86C8;
-  GL_EVAL_VERTEX_ATTRIB3_NV = $86C9;
-  GL_EVAL_VERTEX_ATTRIB4_NV = $86CA;
-  GL_EVAL_VERTEX_ATTRIB5_NV = $86CB;
-  GL_EVAL_VERTEX_ATTRIB6_NV = $86CC;
-  GL_EVAL_VERTEX_ATTRIB7_NV = $86CD;
-  GL_EVAL_VERTEX_ATTRIB8_NV = $86CE;
-  GL_EVAL_VERTEX_ATTRIB9_NV = $86CF;
-  GL_EVAL_VERTEX_ATTRIB10_NV = $86D0;
-  GL_EVAL_VERTEX_ATTRIB11_NV = $86D1;
-  GL_EVAL_VERTEX_ATTRIB12_NV = $86D2;
-  GL_EVAL_VERTEX_ATTRIB13_NV = $86D3;
-  GL_EVAL_VERTEX_ATTRIB14_NV = $86D4;
-  GL_EVAL_VERTEX_ATTRIB15_NV = $86D5;
-  GL_MAX_MAP_TESSELLATION_NV = $86D6;
-  GL_MAX_RATIONAL_EVAL_ORDER_NV = $86D7;
-var
-  glMapControlPointsNV: procedure(target: GLenum; index: GLuint; _type: GLenum; ustride: GLsizei; vstride: GLsizei; uorder: GLint; vorder: GLint; _packed: GLboolean; const points: PGLvoid); extdecl;
-  glMapParameterivNV: procedure(target: GLenum; pname: GLenum; const params: PGLint); extdecl;
-  glMapParameterfvNV: procedure(target: GLenum; pname: GLenum; const params: PGLfloat); extdecl;
-  glGetMapControlPointsNV: procedure(target: GLenum; index: GLuint; _type: GLenum; ustride: GLsizei; vstride: GLsizei; _packed: GLboolean; points: PGLvoid); extdecl;
-  glGetMapParameterivNV: procedure(target: GLenum; pname: GLenum; params: PGLint); extdecl;
-  glGetMapParameterfvNV: procedure(target: GLenum; pname: GLenum; params: PGLfloat); extdecl;
-  glGetMapAttribParameterivNV: procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLint); extdecl;
-  glGetMapAttribParameterfvNV: procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLfloat); extdecl;
-  glEvalMapsNV: procedure(target: GLenum; mode: GLenum); extdecl;
-
-function Load_GL_NV_evaluators: Boolean;
-
-//***** GL_NV_fence *****//
-const
-  GL_ALL_COMPLETED_NV = $84F2;
-  GL_FENCE_STATUS_NV = $84F3;
-  GL_FENCE_CONDITION_NV = $84F4;
-var
-  glGenFencesNV: procedure(n: GLsizei; fences: PGLuint); extdecl;
-  glDeleteFencesNV: procedure(n: GLsizei; const fences: PGLuint); extdecl;
-  glSetFenceNV: procedure(fence: GLuint; condition: GLenum); extdecl;
-  glTestFenceNV: function(fence: GLuint): GLboolean; extdecl;
-  glFinishFenceNV: procedure(fence: GLuint); extdecl;
-  glIsFenceNV: function(fence: GLuint): GLboolean; extdecl;
-  glGetFenceivNV: procedure(fence: GLuint; pname: GLenum; params: PGLint); extdecl;
-
-function Load_GL_NV_fence: Boolean;
-
-//***** GL_NV_fog_distance *****//
-const
-  GL_FOG_DISTANCE_MODE_NV = $855A;
-  GL_EYE_RADIAL_NV = $855B;
-  GL_EYE_PLANE_ABSOLUTE_NV = $855C;
-
-function Load_GL_NV_fog_distance: Boolean;
-
-//***** GL_NV_light_max_exponent *****//
-const
-  GL_MAX_SHININESS_NV = $8504;
-  GL_MAX_SPOT_EXPONENT_NV = $8505;
-
-function Load_GL_NV_light_max_exponent: Boolean;
-
-//***** GL_NV_multisample_filter_hint *****//
-const
-  GL_MULTISAMPLE_FILTER_HINT_NV = $8534;
-
-function Load_GL_NV_multisample_filter_hint: Boolean;
-
-//***** GL_NV_occlusion_query *****//
-  // GL_OCCLUSION_TEST_HP  { already defined }
-  // GL_OCCLUSION_TEST_RESULT_HP  { already defined }
-const
-  GL_PIXEL_COUNTER_BITS_NV = $8864;
-  GL_CURRENT_OCCLUSION_QUERY_ID_NV = $8865;
-  GL_PIXEL_COUNT_NV = $8866;
-  GL_PIXEL_COUNT_AVAILABLE_NV = $8867;
-var
-  glGenOcclusionQueriesNV: procedure(n: GLsizei; ids: PGLuint); extdecl;
-  glDeleteOcclusionQueriesNV: procedure(n: GLsizei; const ids: PGLuint); extdecl;
-  glIsOcclusionQueryNV: function(id: GLuint): GLboolean; extdecl;
-  glBeginOcclusionQueryNV: procedure(id: GLuint); extdecl;
-  glEndOcclusionQueryNV: procedure(); extdecl;
-  glGetOcclusionQueryivNV: procedure(id: GLuint; pname: GLenum; params: PGLint); extdecl;
-  glGetOcclusionQueryuivNV: procedure(id: GLuint; pname: GLenum; params: PGLuint); extdecl;
-
-function Load_GL_NV_occlusion_query: Boolean;
-
-//***** GL_NV_packed_depth_stencil *****//
-const
-  GL_DEPTH_STENCIL_NV = $84F9;
-  GL_UNSIGNED_INT_24_8_NV = $84FA;
-
-function Load_GL_NV_packed_depth_stencil: Boolean;
-
-//***** GL_NV_point_sprite *****//
-const
-  GL_POINT_SPRITE_NV = $8861;
-  GL_COORD_REPLACE_NV = $8862;
-  GL_POINT_SPRITE_R_MODE_NV = $8863;
-var
-  glPointParameteriNV: procedure(pname: GLenum; param: GLint); extdecl;
-  glPointParameterivNV: procedure(pname: GLenum; const params: PGLint); extdecl;
-
-function Load_GL_NV_point_sprite: Boolean;
-
-//***** GL_NV_register_combiners *****//
-const
-  GL_REGISTER_COMBINERS_NV = $8522;
-  GL_COMBINER0_NV = $8550;
-  GL_COMBINER1_NV = $8551;
-  GL_COMBINER2_NV = $8552;
-  GL_COMBINER3_NV = $8553;
-  GL_COMBINER4_NV = $8554;
-  GL_COMBINER5_NV = $8555;
-  GL_COMBINER6_NV = $8556;
-  GL_COMBINER7_NV = $8557;
-  GL_VARIABLE_A_NV = $8523;
-  GL_VARIABLE_B_NV = $8524;
-  GL_VARIABLE_C_NV = $8525;
-  GL_VARIABLE_D_NV = $8526;
-  GL_VARIABLE_E_NV = $8527;
-  GL_VARIABLE_F_NV = $8528;
-  GL_VARIABLE_G_NV = $8529;
-  GL_CONSTANT_COLOR0_NV = $852A;
-  GL_CONSTANT_COLOR1_NV = $852B;
-  GL_PRIMARY_COLOR_NV = $852C;
-  GL_SECONDARY_COLOR_NV = $852D;
-  GL_SPARE0_NV = $852E;
-  GL_SPARE1_NV = $852F;
-  GL_UNSIGNED_IDENTITY_NV = $8536;
-  GL_UNSIGNED_INVERT_NV = $8537;
-  GL_EXPAND_NORMAL_NV = $8538;
-  GL_EXPAND_NEGATE_NV = $8539;
-  GL_HALF_BIAS_NORMAL_NV = $853A;
-  GL_HALF_BIAS_NEGATE_NV = $853B;
-  GL_SIGNED_IDENTITY_NV = $853C;
-  GL_SIGNED_NEGATE_NV = $853D;
-  GL_E_TIMES_F_NV = $8531;
-  GL_SPARE0_PLUS_SECONDARY_COLOR_NV = $8532;
-  GL_SCALE_BY_TWO_NV = $853E;
-  GL_SCALE_BY_FOUR_NV = $853F;
-  GL_SCALE_BY_ONE_HALF_NV = $8540;
-  GL_BIAS_BY_NEGATIVE_ONE_HALF_NV = $8541;
-  GL_DISCARD_NV = $8530;
-  GL_COMBINER_INPUT_NV = $8542;
-  GL_COMBINER_MAPPING_NV = $8543;
-  GL_COMBINER_COMPONENT_USAGE_NV = $8544;
-  GL_COMBINER_AB_DOT_PRODUCT_NV = $8545;
-  GL_COMBINER_CD_DOT_PRODUCT_NV = $8546;
-  GL_COMBINER_MUX_SUM_NV = $8547;
-  GL_COMBINER_SCALE_NV = $8548;
-  GL_COMBINER_BIAS_NV = $8549;
-  GL_COMBINER_AB_OUTPUT_NV = $854A;
-  GL_COMBINER_CD_OUTPUT_NV = $854B;
-  GL_COMBINER_SUM_OUTPUT_NV = $854C;
-  GL_NUM_GENERAL_COMBINERS_NV = $854E;
-  GL_COLOR_SUM_CLAMP_NV = $854F;
-  GL_MAX_GENERAL_COMBINERS_NV = $854D;
-var
-  glCombinerParameterfvNV: procedure(pname: GLenum; const params: PGLfloat); extdecl;
-  glCombinerParameterivNV: procedure(pname: GLenum; const params: PGLint); extdecl;
-  glCombinerParameterfNV: procedure(pname: GLenum; param: GLfloat); extdecl;
-  glCombinerParameteriNV: procedure(pname: GLenum; param: GLint); extdecl;
-  glCombinerInputNV: procedure(stage: GLenum; portion: GLenum; variable: GLenum; input: GLenum; mapping: GLenum; componentUsage: GLenum); extdecl;
-  glCombinerOutputNV: procedure(stage: GLenum; portion: GLenum; abOutput: GLenum; cdOutput: GLenum; sumOutput: GLenum; scale: GLenum; bias: GLenum; abDotProduct: GLboolean; cdDotProduct: GLboolean; muxSum: GLboolean); extdecl;
-  glFinalCombinerInputNV: procedure(variable: GLenum; input: GLenum; mapping: GLenum; componentUsage: GLenum); extdecl;
-  glGetCombinerInputParameterfvNV: procedure(stage: GLenum; portion: GLenum; variable: GLenum; pname: GLenum; params: PGLfloat); extdecl;
-  glGetCombinerInputParameterivNV: procedure(stage: GLenum; portion: GLenum; variable: GLenum; pname: GLenum; params: PGLint); extdecl;
-  glGetCombinerOutputParameterfvNV: procedure(stage: GLenum; portion: GLenum; pname: GLenum; params: PGLfloat); extdecl;
-  glGetCombinerOutputParameterivNV: procedure(stage: GLenum; portion: GLenum; pname: GLenum; params: PGLint); extdecl;
-  glGetFinalCombinerInputParameterfvNV: procedure(variable: GLenum; pname: GLenum; params: PGLfloat); extdecl;
-  glGetFinalCombinerInputParameterivNV: procedure(variable: GLenum; pname: GLenum; params: PGLint); extdecl;
-
-function Load_GL_NV_register_combiners: Boolean;
-
-//***** GL_NV_register_combiners2 *****//
-const
-  GL_PER_STAGE_CONSTANTS_NV = $8535;
-var
-  glCombinerStageParameterfvNV: procedure(stage: GLenum; pname: GLenum; const params: PGLfloat); extdecl;
-  glGetCombinerStageParameterfvNV: procedure(stage: GLenum; pname: GLenum; params: PGLfloat); extdecl;
-
-function Load_GL_NV_register_combiners2: Boolean;
-
-//***** GL_NV_texgen_emboss *****//
-const
-  GL_EMBOSS_MAP_NV = $855F;
-  GL_EMBOSS_LIGHT_NV = $855D;
-  GL_EMBOSS_CONSTANT_NV = $855E;
-
-function Load_GL_NV_texgen_emboss: Boolean;
-
-//***** GL_NV_texgen_reflection *****//
-const
-  GL_NORMAL_MAP_NV = $8511;
-  GL_REFLECTION_MAP_NV = $8512;
-
-function Load_GL_NV_texgen_reflection: Boolean;
-
-//***** GL_NV_texture_compression_vtc *****//
-  // GL_COMPRESSED_RGB_S3TC_DXT1_EXT  { already defined }
-  // GL_COMPRESSED_RGBA_S3TC_DXT1_EXT  { already defined }
-  // GL_COMPRESSED_RGBA_S3TC_DXT3_EXT  { already defined }
-  // GL_COMPRESSED_RGBA_S3TC_DXT5_EXT  { already defined }
-
-function Load_GL_NV_texture_compression_vtc: Boolean;
-
-//***** GL_NV_texture_env_combine4 *****//
-const
-  GL_COMBINE4_NV = $8503;
-  GL_SOURCE3_RGB_NV = $8583;
-  GL_SOURCE3_ALPHA_NV = $858B;
-  GL_OPERAND3_RGB_NV = $8593;
-  GL_OPERAND3_ALPHA_NV = $859B;
-
-function Load_GL_NV_texture_env_combine4: Boolean;
-
-//***** GL_NV_texture_rectangle *****//
-const
-  GL_TEXTURE_RECTANGLE_NV = $84F5;
-  GL_TEXTURE_BINDING_RECTANGLE_NV = $84F6;
-  GL_PROXY_TEXTURE_RECTANGLE_NV = $84F7;
-  GL_MAX_RECTANGLE_TEXTURE_SIZE_NV = $84F8;
-
-function Load_GL_NV_texture_rectangle: Boolean;
-
-//***** GL_NV_texture_shader *****//
-const
-  GL_TEXTURE_SHADER_NV = $86DE;
-  GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV = $86D9;
-  GL_SHADER_OPERATION_NV = $86DF;
-  GL_CULL_MODES_NV = $86E0;
-  GL_OFFSET_TEXTURE_MATRIX_NV = $86E1;
-  GL_OFFSET_TEXTURE_SCALE_NV = $86E2;
-  GL_OFFSET_TEXTURE_BIAS_NV = $86E3;
-  GL_PREVIOUS_TEXTURE_INPUT_NV = $86E4;
-  GL_CONST_EYE_NV = $86E5;
-  GL_SHADER_CONSISTENT_NV = $86DD;
-  GL_PASS_THROUGH_NV = $86E6;
-  GL_CULL_FRAGMENT_NV = $86E7;
-  GL_OFFSET_TEXTURE_2D_NV = $86E8;
-  GL_OFFSET_TEXTURE_RECTANGLE_NV = $864C;
-  GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV = $864D;
-  GL_DEPENDENT_AR_TEXTURE_2D_NV = $86E9;
-  GL_DEPENDENT_GB_TEXTURE_2D_NV = $86EA;
-  GL_DOT_PRODUCT_NV = $86EC;
-  GL_DOT_PRODUCT_DEPTH_REPLACE_NV = $86ED;
-  GL_DOT_PRODUCT_TEXTURE_2D_NV = $86EE;
-  GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV = $864E;
-  GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV = $86F0;
-  GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV = $86F1;
-  GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV = $86F2;
-  GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV = $86F3;
-  GL_HILO_NV = $86F4;
-  GL_DSDT_NV = $86F5;
-  GL_DSDT_MAG_NV = $86F6;
-  GL_DSDT_MAG_VIB_NV = $86F7;
-  GL_UNSIGNED_INT_S8_S8_8_8_NV = $86DA;
-  GL_UNSIGNED_INT_8_8_S8_S8_REV_NV = $86DB;
-  GL_SIGNED_RGBA_NV = $86FB;
-  GL_SIGNED_RGBA8_NV = $86FC;
-  GL_SIGNED_RGB_NV = $86FE;
-  GL_SIGNED_RGB8_NV = $86FF;
-  GL_SIGNED_LUMINANCE_NV = $8701;
-  GL_SIGNED_LUMINANCE8_NV = $8702;
-  GL_SIGNED_LUMINANCE_ALPHA_NV = $8703;
-  GL_SIGNED_LUMINANCE8_ALPHA8_NV = $8704;
-  GL_SIGNED_ALPHA_NV = $8705;
-  GL_SIGNED_ALPHA8_NV = $8706;
-  GL_SIGNED_INTENSITY_NV = $8707;
-  GL_SIGNED_INTENSITY8_NV = $8708;
-  GL_SIGNED_RGB_UNSIGNED_ALPHA_NV = $870C;
-  GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV = $870D;
-  GL_HILO16_NV = $86F8;
-  GL_SIGNED_HILO_NV = $86F9;
-  GL_SIGNED_HILO16_NV = $86FA;
-  GL_DSDT8_NV = $8709;
-  GL_DSDT8_MAG8_NV = $870A;
-  GL_DSDT_MAG_INTENSITY_NV = $86DC;
-  GL_DSDT8_MAG8_INTENSITY8_NV = $870B;
-  GL_HI_SCALE_NV = $870E;
-  GL_LO_SCALE_NV = $870F;
-  GL_DS_SCALE_NV = $8710;
-  GL_DT_SCALE_NV = $8711;
-  GL_MAGNITUDE_SCALE_NV = $8712;
-  GL_VIBRANCE_SCALE_NV = $8713;
-  GL_HI_BIAS_NV = $8714;
-  GL_LO_BIAS_NV = $8715;
-  GL_DS_BIAS_NV = $8716;
-  GL_DT_BIAS_NV = $8717;
-  GL_MAGNITUDE_BIAS_NV = $8718;
-  GL_VIBRANCE_BIAS_NV = $8719;
-  GL_TEXTURE_BORDER_VALUES_NV = $871A;
-  GL_TEXTURE_HI_SIZE_NV = $871B;
-  GL_TEXTURE_LO_SIZE_NV = $871C;
-  GL_TEXTURE_DS_SIZE_NV = $871D;
-  GL_TEXTURE_DT_SIZE_NV = $871E;
-  GL_TEXTURE_MAG_SIZE_NV = $871F;
-
-function Load_GL_NV_texture_shader: Boolean;
-
-//***** GL_NV_texture_shader2 *****//
-const
-  GL_DOT_PRODUCT_TEXTURE_3D_NV = $86EF;
-  // GL_HILO_NV  { already defined }
-  // GL_DSDT_NV  { already defined }
-  // GL_DSDT_MAG_NV  { already defined }
-  // GL_DSDT_MAG_VIB_NV  { already defined }
-  // GL_UNSIGNED_INT_S8_S8_8_8_NV  { already defined }
-  // GL_UNSIGNED_INT_8_8_S8_S8_REV_NV  { already defined }
-  // GL_SIGNED_RGBA_NV  { already defined }
-  // GL_SIGNED_RGBA8_NV  { already defined }
-  // GL_SIGNED_RGB_NV  { already defined }
-  // GL_SIGNED_RGB8_NV  { already defined }
-  // GL_SIGNED_LUMINANCE_NV  { already defined }
-  // GL_SIGNED_LUMINANCE8_NV  { already defined }
-  // GL_SIGNED_LUMINANCE_ALPHA_NV  { already defined }
-  // GL_SIGNED_LUMINANCE8_ALPHA8_NV  { already defined }
-  // GL_SIGNED_ALPHA_NV  { already defined }
-  // GL_SIGNED_ALPHA8_NV  { already defined }
-  // GL_SIGNED_INTENSITY_NV  { already defined }
-  // GL_SIGNED_INTENSITY8_NV  { already defined }
-  // GL_SIGNED_RGB_UNSIGNED_ALPHA_NV  { already defined }
-  // GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV  { already defined }
-  // GL_HILO16_NV  { already defined }
-  // GL_SIGNED_HILO_NV  { already defined }
-  // GL_SIGNED_HILO16_NV  { already defined }
-  // GL_DSDT8_NV  { already defined }
-  // GL_DSDT8_MAG8_NV  { already defined }
-  // GL_DSDT_MAG_INTENSITY_NV  { already defined }
-  // GL_DSDT8_MAG8_INTENSITY8_NV  { already defined }
-
-function Load_GL_NV_texture_shader2: Boolean;
-
-//***** GL_NV_texture_shader3 *****//
-const
-  GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV = $8850;
-  GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV = $8851;
-  GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV = $8852;
-  GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV = $8853;
-  GL_OFFSET_HILO_TEXTURE_2D_NV = $8854;
-  GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV = $8855;
-  GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV = $8856;
-  GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV = $8857;
-  GL_DEPENDENT_HILO_TEXTURE_2D_NV = $8858;
-  GL_DEPENDENT_RGB_TEXTURE_3D_NV = $8859;
-  GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV = $885A;
-  GL_DOT_PRODUCT_PASS_THROUGH_NV = $885B;
-  GL_DOT_PRODUCT_TEXTURE_1D_NV = $885C;
-  GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV = $885D;
-  GL_HILO8_NV = $885E;
-  GL_SIGNED_HILO8_NV = $885F;
-  GL_FORCE_BLUE_TO_ONE_NV = $8860;
-
-function Load_GL_NV_texture_shader3: Boolean;
-
-//***** GL_NV_vertex_array_range *****//
-const
-  GL_VERTEX_ARRAY_RANGE_NV = $851D;
-  GL_VERTEX_ARRAY_RANGE_LENGTH_NV = $851E;
-  GL_VERTEX_ARRAY_RANGE_VALID_NV = $851F;
-  GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV = $8520;
-  GL_VERTEX_ARRAY_RANGE_POINTER_NV = $8521;
-var
-  glVertexArrayRangeNV: procedure(length: GLsizei; pointer: PGLvoid); extdecl;
-  glFlushVertexArrayRangeNV: procedure(); extdecl;
-{$IFDEF Windows}
-  wglAllocateMemoryNV: function(size: GLsizei; readFrequency: GLfloat; writeFrequency: GLfloat; priority: GLfloat): PGLvoid; extdecl;
-  wglFreeMemoryNV: procedure(pointer: PGLvoid); extdecl;
-{$ENDIF}
-
-function Load_GL_NV_vertex_array_range: Boolean;
-
-//***** GL_NV_vertex_array_range2 *****//
-const
-  GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV = $8533;
-
-function Load_GL_NV_vertex_array_range2: Boolean;
-
-//***** GL_NV_vertex_program *****//
-const
-  GL_VERTEX_PROGRAM_NV = $8620;
-  GL_VERTEX_PROGRAM_POINT_SIZE_NV = $8642;
-  GL_VERTEX_PROGRAM_TWO_SIDE_NV = $8643;
-  GL_VERTEX_STATE_PROGRAM_NV = $8621;
-  GL_ATTRIB_ARRAY_SIZE_NV = $8623;
-  GL_ATTRIB_ARRAY_STRIDE_NV = $8624;
-  GL_ATTRIB_ARRAY_TYPE_NV = $8625;
-  GL_CURRENT_ATTRIB_NV = $8626;
-  GL_PROGRAM_PARAMETER_NV = $8644;
-  GL_ATTRIB_ARRAY_POINTER_NV = $8645;
-  GL_PROGRAM_TARGET_NV = $8646;
-  GL_PROGRAM_LENGTH_NV = $8627;
-  GL_PROGRAM_RESIDENT_NV = $8647;
-  GL_PROGRAM_STRING_NV = $8628;
-  GL_TRACK_MATRIX_NV = $8648;
-  GL_TRACK_MATRIX_TRANSFORM_NV = $8649;
-  GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV = $862E;
-  GL_MAX_TRACK_MATRICES_NV = $862F;
-  GL_CURRENT_MATRIX_STACK_DEPTH_NV = $8640;
-  GL_CURRENT_MATRIX_NV = $8641;
-  GL_VERTEX_PROGRAM_BINDING_NV = $864A;
-  GL_PROGRAM_ERROR_POSITION_NV = $864B;
-  GL_MODELVIEW_PROJECTION_NV = $8629;
-  GL_MATRIX0_NV = $8630;
-  GL_MATRIX1_NV = $8631;
-  GL_MATRIX2_NV = $8632;
-  GL_MATRIX3_NV = $8633;
-  GL_MATRIX4_NV = $8634;
-  GL_MATRIX5_NV = $8635;
-  GL_MATRIX6_NV = $8636;
-  GL_MATRIX7_NV = $8637;
-  GL_IDENTITY_NV = $862A;
-  GL_INVERSE_NV = $862B;
-  GL_TRANSPOSE_NV = $862C;
-  GL_INVERSE_TRANSPOSE_NV = $862D;
-  GL_VERTEX_ATTRIB_ARRAY0_NV = $8650;
-  GL_VERTEX_ATTRIB_ARRAY1_NV = $8651;
-  GL_VERTEX_ATTRIB_ARRAY2_NV = $8652;
-  GL_VERTEX_ATTRIB_ARRAY3_NV = $8653;
-  GL_VERTEX_ATTRIB_ARRAY4_NV = $8654;
-  GL_VERTEX_ATTRIB_ARRAY5_NV = $8655;
-  GL_VERTEX_ATTRIB_ARRAY6_NV = $8656;
-  GL_VERTEX_ATTRIB_ARRAY7_NV = $8657;
-  GL_VERTEX_ATTRIB_ARRAY8_NV = $8658;
-  GL_VERTEX_ATTRIB_ARRAY9_NV = $8659;
-  GL_VERTEX_ATTRIB_ARRAY10_NV = $865A;
-  GL_VERTEX_ATTRIB_ARRAY11_NV = $865B;
-  GL_VERTEX_ATTRIB_ARRAY12_NV = $865C;
-  GL_VERTEX_ATTRIB_ARRAY13_NV = $865D;
-  GL_VERTEX_ATTRIB_ARRAY14_NV = $865E;
-  GL_VERTEX_ATTRIB_ARRAY15_NV = $865F;
-  GL_MAP1_VERTEX_ATTRIB0_4_NV = $8660;
-  GL_MAP1_VERTEX_ATTRIB1_4_NV = $8661;
-  GL_MAP1_VERTEX_ATTRIB2_4_NV = $8662;
-  GL_MAP1_VERTEX_ATTRIB3_4_NV = $8663;
-  GL_MAP1_VERTEX_ATTRIB4_4_NV = $8664;
-  GL_MAP1_VERTEX_ATTRIB5_4_NV = $8665;
-  GL_MAP1_VERTEX_ATTRIB6_4_NV = $8666;
-  GL_MAP1_VERTEX_ATTRIB7_4_NV = $8667;
-  GL_MAP1_VERTEX_ATTRIB8_4_NV = $8668;
-  GL_MAP1_VERTEX_ATTRIB9_4_NV = $8669;
-  GL_MAP1_VERTEX_ATTRIB10_4_NV = $866A;
-  GL_MAP1_VERTEX_ATTRIB11_4_NV = $866B;
-  GL_MAP1_VERTEX_ATTRIB12_4_NV = $866C;
-  GL_MAP1_VERTEX_ATTRIB13_4_NV = $866D;
-  GL_MAP1_VERTEX_ATTRIB14_4_NV = $866E;
-  GL_MAP1_VERTEX_ATTRIB15_4_NV = $866F;
-  GL_MAP2_VERTEX_ATTRIB0_4_NV = $8670;
-  GL_MAP2_VERTEX_ATTRIB1_4_NV = $8671;
-  GL_MAP2_VERTEX_ATTRIB2_4_NV = $8672;
-  GL_MAP2_VERTEX_ATTRIB3_4_NV = $8673;
-  GL_MAP2_VERTEX_ATTRIB4_4_NV = $8674;
-  GL_MAP2_VERTEX_ATTRIB5_4_NV = $8675;
-  GL_MAP2_VERTEX_ATTRIB6_4_NV = $8676;
-  GL_MAP2_VERTEX_ATTRIB7_4_NV = $8677;
-  GL_MAP2_VERTEX_ATTRIB8_4_NV = $8678;
-  GL_MAP2_VERTEX_ATTRIB9_4_NV = $8679;
-  GL_MAP2_VERTEX_ATTRIB10_4_NV = $867A;
-  GL_MAP2_VERTEX_ATTRIB11_4_NV = $867B;
-  GL_MAP2_VERTEX_ATTRIB12_4_NV = $867C;
-  GL_MAP2_VERTEX_ATTRIB13_4_NV = $867D;
-  GL_MAP2_VERTEX_ATTRIB14_4_NV = $867E;
-  GL_MAP2_VERTEX_ATTRIB15_4_NV = $867F;
-var
-  glBindProgramNV: procedure(target: GLenum; id: GLuint); extdecl;
-  glDeleteProgramsNV: procedure(n: GLsizei; const ids: PGLuint); extdecl;
-  glExecuteProgramNV: procedure(target: GLenum; id: GLuint; const params: PGLfloat); extdecl;
-  glGenProgramsNV: procedure(n: GLsizei; ids: PGLuint); extdecl;
-  glAreProgramsResidentNV: function(n: GLsizei; const ids: PGLuint; residences: PGLboolean): GLboolean; extdecl;
-  glRequestResidentProgramsNV: procedure(n: GLsizei; ids: PGLuint); extdecl;
-  glGetProgramParameterfvNV: procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLfloat); extdecl;
-  glGetProgramParameterdvNV: procedure(target: GLenum; index: GLuint; pname: GLenum; params: PGLdouble); extdecl;
-  glGetProgramivNV: procedure(id: GLuint; pname: GLenum; params: PGLint); extdecl;
-  glGetProgramStringNV: procedure(id: GLuint; pname: GLenum; _program: PGLubyte); extdecl;
-  glGetTrackMatrixivNV: procedure(target: GLenum; address: GLuint; pname: GLenum; params: PGLint); extdecl;
-  glGetVertexAttribdvNV: procedure(index: GLuint; pname: GLenum; params: PGLdouble); extdecl;
-  glGetVertexAttribfvNV: procedure(index: GLuint; pname: GLenum; params: PGLfloat); extdecl;
-  glGetVertexAttribivNV: procedure(index: GLuint; pname: GLenum; params: PGLint); extdecl;
-  glGetVertexAttribPointervNV: procedure(index: GLuint; pname: GLenum; pointer: PGLvoid); extdecl;
-  glIsProgramNV: function(id: GLuint): GLboolean; extdecl;
-  glLoadProgramNV: procedure(target: GLenum; id: GLuint; len: GLsizei; const _program: PGLubyte); extdecl;
-  glProgramParameter4fNV: procedure(target: GLenum; index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); extdecl;
-  glProgramParameter4fvNV: procedure(target: GLenum; index: GLuint; const params: PGLfloat); extdecl;
-  glProgramParameters4dvNV: procedure(target: GLenum; index: GLuint; num: GLuint; const params: PGLdouble); extdecl;
-  glProgramParameters4fvNV: procedure(target: GLenum; index: GLuint; num: GLuint; const params: PGLfloat); extdecl;
-  glTrackMatrixNV: procedure(target: GLenum; address: GLuint; matrix: GLenum; transform: GLenum); extdecl;
-  glVertexAttribPointerNV: procedure(index: GLuint; size: GLint; _type: GLenum; stride: GLsizei; const pointer: PGLvoid); extdecl;
-  glVertexAttrib1sNV: procedure(index: GLuint; x: GLshort); extdecl;
-  glVertexAttrib1fNV: procedure(index: GLuint; x: GLfloat); extdecl;
-  glVertexAttrib1dNV: procedure(index: GLuint; x: GLdouble); extdecl;
-  glVertexAttrib2sNV: procedure(index: GLuint; x: GLshort; y: GLshort); extdecl;
-  glVertexAttrib2fNV: procedure(index: GLuint; x: GLfloat; y: GLfloat); extdecl;
-  glVertexAttrib2dNV: procedure(index: GLuint; x: GLdouble; y: GLdouble); extdecl;
-  glVertexAttrib3sNV: procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); extdecl;
-  glVertexAttrib3fNV: procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); extdecl;
-  glVertexAttrib3dNV: procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); extdecl;
-  glVertexAttrib4sNV: procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); extdecl;
-  glVertexAttrib4fNV: procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); extdecl;
-  glVertexAttrib4dNV: procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); extdecl;
-  glVertexAttrib4ubNV: procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); extdecl;
-  glVertexAttrib1svNV: procedure(index: GLuint; const v: PGLshort); extdecl;
-  glVertexAttrib1fvNV: procedure(index: GLuint; const v: PGLfloat); extdecl;
-  glVertexAttrib1dvNV: procedure(index: GLuint; const v: PGLdouble); extdecl;
-  glVertexAttrib2svNV: procedure(index: GLuint; const v: PGLshort); extdecl;
-  glVertexAttrib2fvNV: procedure(index: GLuint; const v: PGLfloat); extdecl;
-  glVertexAttrib2dvNV: procedure(index: GLuint; const v: PGLdouble); extdecl;
-  glVertexAttrib3svNV: procedure(index: GLuint; const v: PGLshort); extdecl;
-  glVertexAttrib3fvNV: procedure(index: GLuint; const v: PGLfloat); extdecl;
-  glVertexAttrib3dvNV: procedure(index: GLuint; const v: PGLdouble); extdecl;
-  glVertexAttrib4svNV: procedure(index: GLuint; const v: PGLshort); extdecl;
-  glVertexAttrib4fvNV: procedure(index: GLuint; const v: PGLfloat); extdecl;
-  glVertexAttrib4dvNV: procedure(index: GLuint; const v: PGLdouble); extdecl;
-  glVertexAttrib4ubvNV: procedure(index: GLuint; const v: PGLubyte); extdecl;
-  glVertexAttribs1svNV: procedure(index: GLuint; n: GLsizei; const v: PGLshort); extdecl;
-  glVertexAttribs1fvNV: procedure(index: GLuint; n: GLsizei; const v: PGLfloat); extdecl;
-  glVertexAttribs1dvNV: procedure(index: GLuint; n: GLsizei; const v: PGLdouble); extdecl;
-  glVertexAttribs2svNV: procedure(index: GLuint; n: GLsizei; const v: PGLshort); extdecl;
-  glVertexAttribs2fvNV: procedure(index: GLuint; n: GLsizei; const v: PGLfloat); extdecl;
-  glVertexAttribs2dvNV: procedure(index: GLuint; n: GLsizei; const v: PGLdouble); extdecl;
-  glVertexAttribs3svNV: procedure(index: GLuint; n: GLsizei; const v: PGLshort); extdecl;
-  glVertexAttribs3fvNV: procedure(index: GLuint; n: GLsizei; const v: PGLfloat); extdecl;
-  glVertexAttribs3dvNV: procedure(index: GLuint; n: GLsizei; const v: PGLdouble); extdecl;
-  glVertexAttribs4svNV: procedure(index: GLuint; n: GLsizei; const v: PGLshort); extdecl;
-  glVertexAttribs4fvNV: procedure(index: GLuint; n: GLsizei; const v: PGLfloat); extdecl;
-  glVertexAttribs4dvNV: procedure(index: GLuint; n: GLsizei; const v: PGLdouble); extdecl;
-  glVertexAttribs4ubvNV: procedure(index: GLuint; n: GLsizei; const v: PGLubyte); extdecl;
-
-function Load_GL_NV_vertex_program: Boolean;
-
-//***** GL_NV_vertex_program1_1 *****//
-
-function Load_GL_NV_vertex_program1_1: Boolean;
-
-//***** GL_ATI_element_array *****//
-const
-  GL_ELEMENT_ARRAY_ATI = $8768;
-  GL_ELEMENT_ARRAY_TYPE_ATI = $8769;
-  GL_ELEMENT_ARRAY_POINTER_ATI = $876A;
-var
-  glElementPointerATI: procedure(_type: GLenum; const pointer: PGLvoid); extdecl;
-  glDrawElementArrayATI: procedure(mode: GLenum; count: GLsizei); extdecl;
-  glDrawRangeElementArrayATI: procedure(mode: GLenum; start: GLuint; _end: GLuint; count: GLsizei); extdecl;
-
-function Load_GL_ATI_element_array: Boolean;
-
-//***** GL_ATI_envmap_bumpmap *****//
-const
-  GL_BUMP_ROT_MATRIX_ATI = $8775;
-  GL_BUMP_ROT_MATRIX_SIZE_ATI = $8776;
-  GL_BUMP_NUM_TEX_UNITS_ATI = $8777;
-  GL_BUMP_TEX_UNITS_ATI = $8778;
-  GL_DUDV_ATI = $8779;
-  GL_DU8DV8_ATI = $877A;
-  GL_BUMP_ENVMAP_ATI = $877B;
-  GL_BUMP_TARGET_ATI = $877C;
-var
-  glTexBumpParameterivATI: procedure(pname: GLenum; param: PGLint); extdecl;
-  glTexBumpParameterfvATI: procedure(pname: GLenum; param: PGLfloat); extdecl;
-  glGetTexBumpParameterivATI: procedure(pname: GLenum; param: PGLint); extdecl;
-  glGetTexBumpParameterfvATI: procedure(pname: GLenum; param: PGLfloat); extdecl;
-
-function Load_GL_ATI_envmap_bumpmap: Boolean;
-
-//***** GL_ATI_fragment_shader *****//
-const
-  GL_FRAGMENT_SHADER_ATI = $8920;
-  GL_REG_0_ATI = $8921;
-  GL_REG_1_ATI = $8922;
-  GL_REG_2_ATI = $8923;
-  GL_REG_3_ATI = $8924;
-  GL_REG_4_ATI = $8925;
-  GL_REG_5_ATI = $8926;
-  GL_CON_0_ATI = $8941;
-  GL_CON_1_ATI = $8942;
-  GL_CON_2_ATI = $8943;
-  GL_CON_3_ATI = $8944;
-  GL_CON_4_ATI = $8945;
-  GL_CON_5_ATI = $8946;
-  GL_CON_6_ATI = $8947;
-  GL_CON_7_ATI = $8948;
-  GL_MOV_ATI = $8961;
-  GL_ADD_ATI = $8963;
-  GL_MUL_ATI = $8964;
-  GL_SUB_ATI = $8965;
-  GL_DOT3_ATI = $8966;
-  GL_DOT4_ATI = $8967;
-  GL_MAD_ATI = $8968;
-  GL_LERP_ATI = $8969;
-  GL_CND_ATI = $896A;
-  GL_CND0_ATI = $896B;
-  GL_DOT2_ADD_ATI = $896C;
-  GL_SECONDARY_INTERPOLATOR_ATI = $896D;
-  GL_SWIZZLE_STR_ATI = $8976;
-  GL_SWIZZLE_STQ_ATI = $8977;
-  GL_SWIZZLE_STR_DR_ATI = $8978;
-  GL_SWIZZLE_STQ_DQ_ATI = $8979;
-  GL_RED_BIT_ATI = $0001;
-  GL_GREEN_BIT_ATI = $0002;
-  GL_BLUE_BIT_ATI = $0004;
-  GL_2X_BIT_ATI = $0001;
-  GL_4X_BIT_ATI = $0002;
-  GL_8X_BIT_ATI = $0004;
-  GL_HALF_BIT_ATI = $0008;
-  GL_QUARTER_BIT_ATI = $0010;
-  GL_EIGHTH_BIT_ATI = $0020;
-  GL_SATURATE_BIT_ATI = $0040;
-  // GL_2X_BIT_ATI  { already defined }
-  GL_COMP_BIT_ATI = $0002;
-  GL_NEGATE_BIT_ATI = $0004;
-  GL_BIAS_BIT_ATI = $0008;
-var
-  glGenFragmentShadersATI: function(range: GLuint): GLuint; extdecl;
-  glBindFragmentShaderATI: procedure(id: GLuint); extdecl;
-  glDeleteFragmentShaderATI: procedure(id: GLuint); extdecl;
-  glBeginFragmentShaderATI: procedure(); extdecl;
-  glEndFragmentShaderATI: procedure(); extdecl;
-  glPassTexCoordATI: procedure(dst: GLuint; coord: GLuint; swizzle: GLenum); extdecl;
-  glSampleMapATI: procedure(dst: GLuint; interp: GLuint; swizzle: GLenum); extdecl;
-  glColorFragmentOp1ATI: procedure(op: GLenum; dst: GLuint; dstMask: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint); extdecl;
-  glColorFragmentOp2ATI: procedure(op: GLenum; dst: GLuint; dstMask: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint; arg2: GLuint; arg2Rep: GLuint; arg2Mod: GLuint); extdecl;
-  glColorFragmentOp3ATI: procedure(op: GLenum; dst: GLuint; dstMask: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint; arg2: GLuint; arg2Rep: GLuint; arg2Mod: GLuint; arg3: GLuint; arg3Rep: GLuint; arg3Mod: GLuint); extdecl;
-  glAlphaFragmentOp1ATI: procedure(op: GLenum; dst: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint); extdecl;
-  glAlphaFragmentOp2ATI: procedure(op: GLenum; dst: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint; arg2: GLuint; arg2Rep: GLuint; arg2Mod: GLuint); extdecl;
-  glAlphaFragmentOp3ATI: procedure(op: GLenum; dst: GLuint; dstMod: GLuint; arg1: GLuint; arg1Rep: GLuint; arg1Mod: GLuint; arg2: GLuint; arg2Rep: GLuint; arg2Mod: GLuint; arg3: GLuint; arg3Rep: GLuint; arg3Mod: GLuint); extdecl;
-  glSetFragmentShaderConstantATI: procedure(dst: GLuint; const value: PGLfloat); extdecl;
-
-function Load_GL_ATI_fragment_shader: Boolean;
-
-//***** GL_ATI_pn_triangles *****//
-const
-  GL_PN_TRIANGLES_ATI = $87F0;
-  GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI = $87F1;
-  GL_PN_TRIANGLES_POINT_MODE_ATI = $87F2;
-  GL_PN_TRIANGLES_NORMAL_MODE_ATI = $87F3;
-  GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI = $87F4;
-  GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI = $87F5;
-  GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI = $87F6;
-  GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI = $87F7;
-  GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI = $87F8;
-var
-  glPNTrianglesiATI: procedure(pname: GLenum; param: GLint); extdecl;
-  glPNTrianglesfATI: procedure(pname: GLenum; param: GLfloat); extdecl;
-
-function Load_GL_ATI_pn_triangles: Boolean;
-
-//***** GL_ATI_texture_mirror_once *****//
-const
-  GL_MIRROR_CLAMP_ATI = $8742;
-  GL_MIRROR_CLAMP_TO_EDGE_ATI = $8743;
-
-function Load_GL_ATI_texture_mirror_once: Boolean;
-
-//***** GL_ATI_vertex_array_object *****//
-const
-  GL_STATIC_ATI = $8760;
-  GL_DYNAMIC_ATI = $8761;
-  GL_PRESERVE_ATI = $8762;
-  GL_DISCARD_ATI = $8763;
-  GL_OBJECT_BUFFER_SIZE_ATI = $8764;
-  GL_OBJECT_BUFFER_USAGE_ATI = $8765;
-  GL_ARRAY_OBJECT_BUFFER_ATI = $8766;
-  GL_ARRAY_OBJECT_OFFSET_ATI = $8767;
-var
-  glNewObjectBufferATI: function(size: GLsizei; const pointer: PGLvoid; usage: GLenum): GLuint; extdecl;
-  glIsObjectBufferATI: function(buffer: GLuint): GLboolean; extdecl;
-  glUpdateObjectBufferATI: procedure(buffer: GLuint; offset: GLuint; size: GLsizei; const pointer: PGLvoid; preserve: GLenum); extdecl;
-  glGetObjectBufferfvATI: procedure(buffer: GLuint; pname: GLenum; params: PGLfloat); extdecl;
-  glGetObjectBufferivATI: procedure(buffer: GLuint; pname: GLenum; params: PGLint); extdecl;
-  glDeleteObjectBufferATI: procedure(buffer: GLuint); extdecl;
-  glArrayObjectATI: procedure(_array: GLenum; size: GLint; _type: GLenum; stride: GLsizei; buffer: GLuint; offset: GLuint); extdecl;
-  glGetArrayObjectfvATI: procedure(_array: GLenum; pname: GLenum; params: PGLfloat); extdecl;
-  glGetArrayObjectivATI: procedure(_array: GLenum; pname: GLenum; params: PGLint); extdecl;
-  glVariantArrayObjectATI: procedure(id: GLuint; _type: GLenum; stride: GLsizei; buffer: GLuint; offset: GLuint); extdecl;
-  glGetVariantArrayObjectfvATI: procedure(id: GLuint; pname: GLenum; params: PGLfloat); extdecl;
-  glGetVariantArrayObjectivATI: procedure(id: GLuint; pname: GLenum; params: PGLint); extdecl;
-
-function Load_GL_ATI_vertex_array_object: Boolean;
-
-//***** GL_ATI_vertex_streams *****//
-const
-  GL_MAX_VERTEX_STREAMS_ATI = $876B;
-  GL_VERTEX_STREAM0_ATI = $876C;
-  GL_VERTEX_STREAM1_ATI = $876D;
-  GL_VERTEX_STREAM2_ATI = $876E;
-  GL_VERTEX_STREAM3_ATI = $876F;
-  GL_VERTEX_STREAM4_ATI = $8770;
-  GL_VERTEX_STREAM5_ATI = $8771;
-  GL_VERTEX_STREAM6_ATI = $8772;
-  GL_VERTEX_STREAM7_ATI = $8773;
-  GL_VERTEX_SOURCE_ATI = $8774;
-var
-  glVertexStream1s: procedure(stream: GLenum; coords: GLshort); extdecl;
-  glVertexStream1i: procedure(stream: GLenum; coords: GLint); extdecl;
-  glVertexStream1f: procedure(stream: GLenum; coords: GLfloat); extdecl;
-  glVertexStream1d: procedure(stream: GLenum; coords: GLdouble); extdecl;
-  glVertexStream1sv: procedure(stream: GLenum; coords: GLshort); extdecl;
-  glVertexStream1iv: procedure(stream: GLenum; coords: GLint); extdecl;
-  glVertexStream1fv: procedure(stream: GLenum; coords: GLfloat); extdecl;
-  glVertexStream1dv: procedure(stream: GLenum; coords: GLdouble); extdecl;
-  glVertexStream2s: procedure(stream: GLenum; coords: GLshort); extdecl;
-  glVertexStream2i: procedure(stream: GLenum; coords: GLint); extdecl;
-  glVertexStream2f: procedure(stream: GLenum; coords: GLfloat); extdecl;
-  glVertexStream2d: procedure(stream: GLenum; coords: GLdouble); extdecl;
-  glVertexStream2sv: procedure(stream: GLenum; coords: GLshort); extdecl;
-  glVertexStream2iv: procedure(stream: GLenum; coords: GLint); extdecl;
-  glVertexStream2fv: procedure(stream: GLenum; coords: GLfloat); extdecl;
-  glVertexStream2dv: procedure(stream: GLenum; coords: GLdouble); extdecl;
-  glVertexStream3s: procedure(stream: GLenum; coords: GLshort); extdecl;
-  glVertexStream3i: procedure(stream: GLenum; coords: GLint); extdecl;
-  glVertexStream3f: procedure(stream: GLenum; coords: GLfloat); extdecl;
-  glVertexStream3d: procedure(stream: GLenum; coords: GLdouble); extdecl;
-  glVertexStream3sv: procedure(stream: GLenum; coords: GLshort); extdecl;
-  glVertexStream3iv: procedure(stream: GLenum; coords: GLint); extdecl;
-  glVertexStream3fv: procedure(stream: GLenum; coords: GLfloat); extdecl;
-  glVertexStream3dv: procedure(stream: GLenum; coords: GLdouble); extdecl;
-  glVertexStream4s: procedure(stream: GLenum; coords: GLshort); extdecl;
-  glVertexStream4i: procedure(stream: GLenum; coords: GLint); extdecl;
-  glVertexStream4f: procedure(stream: GLenum; coords: GLfloat); extdecl;
-  glVertexStream4d: procedure(stream: GLenum; coords: GLdouble); extdecl;
-  glVertexStream4sv: procedure(stream: GLenum; coords: GLshort); extdecl;
-  glVertexStream4iv: procedure(stream: GLenum; coords: GLint); extdecl;
-  glVertexStream4fv: procedure(stream: GLenum; coords: GLfloat); extdecl;
-  glVertexStream4dv: procedure(stream: GLenum; coords: GLdouble); extdecl;
-  glNormalStream3b: procedure(stream: GLenum; coords: GLbyte); extdecl;
-  glNormalStream3s: procedure(stream: GLenum; coords: GLshort); extdecl;
-  glNormalStream3i: procedure(stream: GLenum; coords: GLint); extdecl;
-  glNormalStream3f: procedure(stream: GLenum; coords: GLfloat); extdecl;
-  glNormalStream3d: procedure(stream: GLenum; coords: GLdouble); extdecl;
-  glNormalStream3bv: procedure(stream: GLenum; coords: GLbyte); extdecl;
-  glNormalStream3sv: procedure(stream: GLenum; coords: GLshort); extdecl;
-  glNormalStream3iv: procedure(stream: GLenum; coords: GLint); extdecl;
-  glNormalStream3fv: procedure(stream: GLenum; coords: GLfloat); extdecl;
-  glNormalStream3dv: procedure(stream: GLenum; coords: GLdouble); extdecl;
-  glClientActiveVertexStream: procedure(stream: GLenum); extdecl;
-  glVertexBlendEnvi: procedure(pname: GLenum; param: GLint); extdecl;
-  glVertexBlendEnvf: procedure(pname: GLenum; param: GLfloat); extdecl;
-
-function Load_GL_ATI_vertex_streams: Boolean;
-
-{$IFDEF Windows}
-//***** WGL_I3D_image_buffer *****//
-const
-  WGL_IMAGE_BUFFER_MIN_ACCESS_I3D = $0001;
-  WGL_IMAGE_BUFFER_LOCK_I3D = $0002;
-var
-  wglCreateImageBufferI3D: function(hDC: HDC; dwSize: DWORD; uFlags: UINT): PGLvoid; extdecl;
-  wglDestroyImageBufferI3D: function(hDC: HDC; pAddress: PGLvoid): BOOL; extdecl;
-  wglAssociateImageBufferEventsI3D: function(hdc: HDC; pEvent: PHandle; pAddress: PGLvoid; pSize: PDWORD; count: UINT): BOOL; extdecl;
-  wglReleaseImageBufferEventsI3D: function(hdc: HDC; pAddress: PGLvoid; count: UINT): BOOL; extdecl;
-
-function Load_WGL_I3D_image_buffer: Boolean;
-
-//***** WGL_I3D_swap_frame_lock *****//
-var
-  wglEnableFrameLockI3D: function(): BOOL; extdecl;
-  wglDisableFrameLockI3D: function(): BOOL; extdecl;
-  wglIsEnabledFrameLockI3D: function(pFlag: PBOOL): BOOL; extdecl;
-  wglQueryFrameLockMasterI3D: function(pFlag: PBOOL): BOOL; extdecl;
-
-function Load_WGL_I3D_swap_frame_lock: Boolean;
-
-//***** WGL_I3D_swap_frame_usage *****//
-var
-  wglGetFrameUsageI3D: function(pUsage: PGLfloat): BOOL; extdecl;
-  wglBeginFrameTrackingI3D: function(): BOOL; extdecl;
-  wglEndFrameTrackingI3D: function(): BOOL; extdecl;
-  wglQueryFrameTrackingI3D: function(pFrameCount: PDWORD; pMissedFrames: PDWORD; pLastMissedUsage: PGLfloat): BOOL; extdecl;
-
-function Load_WGL_I3D_swap_frame_usage: Boolean;
-{$ENDIF}
-
-//***** GL_3DFX_texture_compression_FXT1 *****//
-const
-  GL_COMPRESSED_RGB_FXT1_3DFX = $86B0;
-  GL_COMPRESSED_RGBA_FXT1_3DFX = $86B1;
-
-function Load_GL_3DFX_texture_compression_FXT1: Boolean;
-
-//***** GL_IBM_cull_vertex *****//
-const
-  GL_CULL_VERTEX_IBM = $1928A;
-
-function Load_GL_IBM_cull_vertex: Boolean;
-
-//***** GL_IBM_multimode_draw_arrays *****//
-var
-  glMultiModeDrawArraysIBM: procedure(mode: PGLenum; first: PGLint; count: PGLsizei; primcount: GLsizei; modestride: GLint); extdecl;
-  glMultiModeDrawElementsIBM: procedure(mode: PGLenum; count: PGLsizei; _type: GLenum; const indices: PGLvoid; primcount: GLsizei; modestride: GLint); extdecl;
-
-function Load_GL_IBM_multimode_draw_arrays: Boolean;
-
-//***** GL_IBM_raster_pos_clip *****//
-const
-  GL_RASTER_POSITION_UNCLIPPED_IBM = $19262;
-
-function Load_GL_IBM_raster_pos_clip: Boolean;
-
-//***** GL_IBM_texture_mirrored_repeat *****//
-const
-  GL_MIRRORED_REPEAT_IBM = $8370;
-
-function Load_GL_IBM_texture_mirrored_repeat: Boolean;
-
-//***** GL_IBM_vertex_array_lists *****//
-const
-  GL_VERTEX_ARRAY_LIST_IBM = $1929E;
-  GL_NORMAL_ARRAY_LIST_IBM = $1929F;
-  GL_COLOR_ARRAY_LIST_IBM = $192A0;
-  GL_INDEX_ARRAY_LIST_IBM = $192A1;
-  GL_TEXTURE_COORD_ARRAY_LIST_IBM = $192A2;
-  GL_EDGE_FLAG_ARRAY_LIST_IBM = $192A3;
-  GL_FOG_COORDINATE_ARRAY_LIST_IBM = $192A4;
-  GL_SECONDARY_COLOR_ARRAY_LIST_IBM = $192A5;
-  GL_VERTEX_ARRAY_LIST_STRIDE_IBM = $192A8;
-  GL_NORMAL_ARRAY_LIST_STRIDE_IBM = $192A9;
-  GL_COLOR_ARRAY_LIST_STRIDE_IBM = $192AA;
-  GL_INDEX_ARRAY_LIST_STRIDE_IBM = $192AB;
-  GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM = $192AC;
-  GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM = $192AD;
-  GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM = $192AE;
-  GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM = $192AF;
-var
-  glColorPointerListIBM: procedure(size: GLint; _type: GLenum; stride: GLint; const pointer: PGLvoid; ptrstride: GLint); extdecl;
-  glSecondaryColorPointerListIBM: procedure(size: GLint; _type: GLenum; stride: GLint; const pointer: PGLvoid; ptrstride: GLint); extdecl;
-  glEdgeFlagPointerListIBM: procedure(stride: GLint; const pointer: PGLboolean; ptrstride: GLint); extdecl;
-  glFogCoordPointerListIBM: procedure(_type: GLenum; stride: GLint; const pointer: PGLvoid; ptrstride: GLint); extdecl;
-  glNormalPointerListIBM: procedure(_type: GLenum; stride: GLint; const pointer: PGLvoid; ptrstride: GLint); extdecl;
-  glTexCoordPointerListIBM: procedure(size: GLint; _type: GLenum; stride: GLint; const pointer: PGLvoid; ptrstride: GLint); extdecl;
-  glVertexPointerListIBM: procedure(size: GLint; _type: GLenum; stride: GLint; const pointer: PGLvoid; ptrstride: GLint); extdecl;
-
-function Load_GL_IBM_vertex_array_lists: Boolean;
-
-//***** GL_MESA_resize_buffers *****//
-var
-  glResizeBuffersMESA: procedure(); extdecl;
-
-function Load_GL_MESA_resize_buffers: Boolean;
-
-//***** GL_MESA_window_pos *****//
-var
-  glWindowPos2dMESA: procedure(x: GLdouble; y: GLdouble); extdecl;
-  glWindowPos2fMESA: procedure(x: GLfloat; y: GLfloat); extdecl;
-  glWindowPos2iMESA: procedure(x: GLint; y: GLint); extdecl;
-  glWindowPos2sMESA: procedure(x: GLshort; y: GLshort); extdecl;
-  glWindowPos2ivMESA: procedure(const p: PGLint); extdecl;
-  glWindowPos2svMESA: procedure(const p: PGLshort); extdecl;
-  glWindowPos2fvMESA: procedure(const p: PGLfloat); extdecl;
-  glWindowPos2dvMESA: procedure(const p: PGLdouble); extdecl;
-  glWindowPos3iMESA: procedure(x: GLint; y: GLint; z: GLint); extdecl;
-  glWindowPos3sMESA: procedure(x: GLshort; y: GLshort; z: GLshort); extdecl;
-  glWindowPos3fMESA: procedure(x: GLfloat; y: GLfloat; z: GLfloat); extdecl;
-  glWindowPos3dMESA: procedure(x: GLdouble; y: GLdouble; z: GLdouble); extdecl;
-  glWindowPos3ivMESA: procedure(const p: PGLint); extdecl;
-  glWindowPos3svMESA: procedure(const p: PGLshort); extdecl;
-  glWindowPos3fvMESA: procedure(const p: PGLfloat); extdecl;
-  glWindowPos3dvMESA: procedure(const p: PGLdouble); extdecl;
-  glWindowPos4iMESA: procedure(x: GLint; y: GLint; z: GLint; w: GLint); extdecl;
-  glWindowPos4sMESA: procedure(x: GLshort; y: GLshort; z: GLshort; w: GLshort); extdecl;
-  glWindowPos4fMESA: procedure(x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); extdecl;
-  glWindowPos4dMESA: procedure(x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); extdecl;
-  glWindowPos4ivMESA: procedure(const p: PGLint); extdecl;
-  glWindowPos4svMESA: procedure(const p: PGLshort); extdecl;
-  glWindowPos4fvMESA: procedure(const p: PGLfloat); extdecl;
-  glWindowPos4dvMESA: procedure(const p: PGLdouble); extdecl;
-
-function Load_GL_MESA_window_pos: Boolean;
-
-//***** GL_OML_interlace *****//
-const
-  GL_INTERLACE_OML = $8980;
-  GL_INTERLACE_READ_OML = $8981;
-
-function Load_GL_OML_interlace: Boolean;
-
-//***** GL_OML_resample *****//
-const
-  GL_PACK_RESAMPLE_OML = $8984;
-  GL_UNPACK_RESAMPLE_OML = $8985;
-  GL_RESAMPLE_REPLICATE_OML = $8986;
-  GL_RESAMPLE_ZERO_FILL_OML = $8987;
-  GL_RESAMPLE_AVERAGE_OML = $8988;
-  GL_RESAMPLE_DECIMATE_OML = $8989;
-  // GL_RESAMPLE_AVERAGE_OML  { already defined }
-
-function Load_GL_OML_resample: Boolean;
-
-//***** GL_OML_subsample *****//
-const
-  GL_FORMAT_SUBSAMPLE_24_24_OML = $8982;
-  GL_FORMAT_SUBSAMPLE_244_244_OML = $8983;
-
-function Load_GL_OML_subsample: Boolean;
-
-//***** GL_SGIS_generate_mipmap *****//
-const
-  GL_GENERATE_MIPMAP_SGIS = $8191;
-  GL_GENERATE_MIPMAP_HINT_SGIS = $8192;
-
-function Load_GL_SGIS_generate_mipmap: Boolean;
-
-//***** GL_SGIS_multisample *****//
-const
-  GLX_SAMPLE_BUFFERS_SGIS = $186A0;
-  GLX_SAMPLES_SGIS = $186A1;
-  GL_MULTISAMPLE_SGIS = $809D;
-  GL_SAMPLE_ALPHA_TO_MASK_SGIS = $809E;
-  GL_SAMPLE_ALPHA_TO_ONE_SGIS = $809F;
-  GL_SAMPLE_MASK_SGIS = $80A0;
-  GL_MULTISAMPLE_BIT_EXT = $20000000;
-  GL_1PASS_SGIS = $80A1;
-  GL_2PASS_0_SGIS = $80A2;
-  GL_2PASS_1_SGIS = $80A3;
-  GL_4PASS_0_SGIS = $80A4;
-  GL_4PASS_1_SGIS = $80A5;
-  GL_4PASS_2_SGIS = $80A6;
-  GL_4PASS_3_SGIS = $80A7;
-  GL_SAMPLE_BUFFERS_SGIS = $80A8;
-  GL_SAMPLES_SGIS = $80A9;
-  GL_SAMPLE_MASK_VALUE_SGIS = $80AA;
-  GL_SAMPLE_MASK_INVERT_SGIS = $80AB;
-  GL_SAMPLE_PATTERN_SGIS = $80AC;
-var
-  glSampleMaskSGIS: procedure(value: GLclampf; invert: GLboolean); extdecl;
-  glSamplePatternSGIS: procedure(pattern: GLenum); extdecl;
-
-function Load_GL_SGIS_multisample: Boolean;
-
-//***** GL_SGIS_pixel_texture *****//
-const
-  GL_PIXEL_TEXTURE_SGIS = $8353;
-  GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS = $8354;
-  GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS = $8355;
-  GL_PIXEL_GROUP_COLOR_SGIS = $8356;
-var
-  glPixelTexGenParameteriSGIS: procedure(pname: GLenum; param: GLint); extdecl;
-  glPixelTexGenParameterfSGIS: procedure(pname: GLenum; param: GLfloat); extdecl;
-  glGetPixelTexGenParameterivSGIS: procedure(pname: GLenum; params: GLint); extdecl;
-  glGetPixelTexGenParameterfvSGIS: procedure(pname: GLenum; params: GLfloat); extdecl;
-
-function Load_GL_SGIS_pixel_texture: Boolean;
-
-//***** GL_SGIS_texture_border_clamp *****//
-  // GL_CLAMP_TO_BORDER_SGIS  { already defined }
-
-function Load_GL_SGIS_texture_border_clamp: Boolean;
-
-//***** GL_SGIS_texture_color_mask *****//
-const
-  GL_TEXTURE_COLOR_WRITEMASK_SGIS = $81EF;
-var
-  glTextureColorMaskSGIS: procedure(r: GLboolean; g: GLboolean; b: GLboolean; a: GLboolean); extdecl;
-
-function Load_GL_SGIS_texture_color_mask: Boolean;
-
-//***** GL_SGIS_texture_edge_clamp *****//
-const
-  GL_CLAMP_TO_EDGE_SGIS = $812F;
-
-function Load_GL_SGIS_texture_edge_clamp: Boolean;
-
-//***** GL_SGIS_texture_lod *****//
-const
-  GL_TEXTURE_MIN_LOD_SGIS = $813A;
-  GL_TEXTURE_MAX_LOD_SGIS = $813B;
-  GL_TEXTURE_BASE_LEVEL_SGIS = $813C;
-  GL_TEXTURE_MAX_LEVEL_SGIS = $813D;
-
-function Load_GL_SGIS_texture_lod: Boolean;
-
-//***** GL_SGIS_depth_texture *****//
-const
-  GL_DEPTH_COMPONENT16_SGIX = $81A5;
-  GL_DEPTH_COMPONENT24_SGIX = $81A6;
-  GL_DEPTH_COMPONENT32_SGIX = $81A7;
-
-function Load_GL_SGIS_depth_texture: Boolean;
-
-//***** GL_SGIX_fog_offset *****//
-const
-  GL_FOG_OFFSET_SGIX = $8198;
-  GL_FOG_OFFSET_VALUE_SGIX = $8199;
-
-function Load_GL_SGIX_fog_offset: Boolean;
-
-//***** GL_SGIX_interlace *****//
-const
-  GL_INTERLACE_SGIX = $8094;
-
-function Load_GL_SGIX_interlace: Boolean;
-
-//***** GL_SGIX_shadow_ambient *****//
-const
-  GL_SHADOW_AMBIENT_SGIX = $80BF;
-
-function Load_GL_SGIX_shadow_ambient: Boolean;
-
-//***** GL_SGI_color_matrix *****//
-const
-  GL_COLOR_MATRIX_SGI = $80B1;
-  GL_COLOR_MATRIX_STACK_DEPTH_SGI = $80B2;
-  GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI = $80B3;
-  GL_POST_COLOR_MATRIX_RED_SCALE_SGI = $80B4;
-  GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI = $80B5;
-  GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI = $80B6;
-  GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI = $80B7;
-  GL_POST_COLOR_MATRIX_RED_BIAS_SGI = $80B8;
-  GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI = $80B9;
-  GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI = $80BA;
-  GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI = $80BB;
-
-function Load_GL_SGI_color_matrix: Boolean;
-
-//***** GL_SGI_color_table *****//
-const
-  GL_COLOR_TABLE_SGI = $80D0;
-  GL_POST_CONVOLUTION_COLOR_TABLE_SGI = $80D1;
-  GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI = $80D2;
-  GL_PROXY_COLOR_TABLE_SGI = $80D3;
-  GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI = $80D4;
-  GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI = $80D5;
-  GL_COLOR_TABLE_SCALE_SGI = $80D6;
-  GL_COLOR_TABLE_BIAS_SGI = $80D7;
-  GL_COLOR_TABLE_FORMAT_SGI = $80D8;
-  GL_COLOR_TABLE_WIDTH_SGI = $80D9;
-  GL_COLOR_TABLE_RED_SIZE_SGI = $80DA;
-  GL_COLOR_TABLE_GREEN_SIZE_SGI = $80DB;
-  GL_COLOR_TABLE_BLUE_SIZE_SGI = $80DC;
-  GL_COLOR_TABLE_ALPHA_SIZE_SGI = $80DD;
-  GL_COLOR_TABLE_LUMINANCE_SIZE_SGI = $80DE;
-  GL_COLOR_TABLE_INTENSITY_SIZE_SGI = $80DF;
-var
-  glColorTableSGI: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; format: GLenum; _type: GLenum; const table: PGLvoid); extdecl;
-  glCopyColorTableSGI: procedure(target: GLenum; internalformat: GLenum; x: GLint; y: GLint; width: GLsizei); extdecl;
-  glColorTableParameterivSGI: procedure(target: GLenum; pname: GLenum; const params: PGLint); extdecl;
-  glColorTableParameterfvSGI: procedure(target: GLenum; pname: GLenum; const params: PGLfloat); extdecl;
-  glGetColorTableSGI: procedure(target: GLenum; format: GLenum; _type: GLenum; table: PGLvoid); extdecl;
-  glGetColorTableParameterivSGI: procedure(target: GLenum; pname: GLenum; params: PGLint); extdecl;
-  glGetColorTableParameterfvSGI: procedure(target: GLenum; pname: GLenum; params: PGLfloat); extdecl;
-
-function Load_GL_SGI_color_table: Boolean;
-
-//***** GL_SGI_texture_color_table *****//
-const
-  GL_TEXTURE_COLOR_TABLE_SGI = $80BC;
-  GL_PROXY_TEXTURE_COLOR_TABLE_SGI = $80BD;
-
-function Load_GL_SGI_texture_color_table: Boolean;
-
-//***** GL_SUN_vertex *****//
-var
-  glColor4ubVertex2fSUN: procedure(r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat); extdecl;
-  glColor4ubVertex2fvSUN: procedure(const c: PGLubyte; const v: PGLfloat); extdecl;
-  glColor4ubVertex3fSUN: procedure(r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat; z: GLfloat); extdecl;
-  glColor4ubVertex3fvSUN: procedure(const c: PGLubyte; const v: PGLfloat); extdecl;
-  glColor3fVertex3fSUN: procedure(r: GLfloat; g: GLfloat; b: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); extdecl;
-  glColor3fVertex3fvSUN: procedure(const c: PGLfloat; const v: PGLfloat); extdecl;
-  glNormal3fVertex3fSUN: procedure(nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); extdecl;
-  glNormal3fVertex3fvSUN: procedure(const n: PGLfloat; const v: PGLfloat); extdecl;
-  glColor4fNormal3fVertex3fSUN: procedure(r: GLfloat; g: GLfloat; b: GLfloat; a: GLfloat; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); extdecl;
-  glColor4fNormal3fVertex3fvSUN: procedure(const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); extdecl;
-  glTexCoord2fVertex3fSUN: procedure(s: GLfloat; t: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); extdecl;
-  glTexCoord2fVertex3fvSUN: procedure(const tc: PGLfloat; const v: PGLfloat); extdecl;
-  glTexCoord4fVertex4fSUN: procedure(s: GLfloat; t: GLfloat; p: GLfloat; q: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); extdecl;
-  glTexCoord4fVertex4fvSUN: procedure(const tc: PGLfloat; const v: PGLfloat); extdecl;
-  glTexCoord2fColor4ubVertex3fSUN: procedure(s: GLfloat; t: GLfloat; r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat; z: GLfloat); extdecl;
-  glTexCoord2fColor4ubVertex3fvSUN: procedure(const tc: PGLfloat; const c: PGLubyte; const v: PGLfloat); extdecl;
-  glTexCoord2fColor3fVertex3fSUN: procedure(s: GLfloat; t: GLfloat; r: GLfloat; g: GLfloat; b: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); extdecl;
-  glTexCoord2fColor3fVertex3fvSUN: procedure(const tc: PGLfloat; const c: PGLfloat; const v: PGLfloat); extdecl;
-  glTexCoord2fNormal3fVertex3fSUN: procedure(s: GLfloat; t: GLfloat; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); extdecl;
-  glTexCoord2fNormal3fVertex3fvSUN: procedure(const tc: PGLfloat; const n: PGLfloat; const v: PGLfloat); extdecl;
-  glTexCoord2fColor4fNormal3fVertex3fSUN: procedure(s: GLfloat; t: GLfloat; r: GLfloat; g: GLfloat; b: GLfloat; a: GLfloat; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); extdecl;
-  glTexCoord2fColor4fNormal3fVertex3fvSUN: procedure(const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); extdecl;
-  glTexCoord4fColor4fNormal3fVertex4fSUN: procedure(s: GLfloat; t: GLfloat; p: GLfloat; q: GLfloat; r: GLfloat; g: GLfloat; b: GLfloat; a: GLfloat; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); extdecl;
-  glTexCoord4fColor4fNormal3fVertex4fvSUN: procedure(const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); extdecl;
-  glReplacementCodeuiVertex3fSUN: procedure(rc: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); extdecl;
-  glReplacementCodeuiVertex3fvSUN: procedure(const rc: PGLuint; const v: PGLfloat); extdecl;
-  glReplacementCodeuiColor4ubVertex3fSUN: procedure(rc: GLuint; r: GLubyte; g: GLubyte; b: GLubyte; a: GLubyte; x: GLfloat; y: GLfloat; z: GLfloat); extdecl;
-  glReplacementCodeuiColor4ubVertex3fvSUN: procedure(const rc: PGLuint; const c: PGLubyte; const v: PGLfloat); extdecl;
-  glReplacementCodeuiColor3fVertex3fSUN: procedure(rc: GLuint; r: GLfloat; g: GLfloat; b: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); extdecl;
-  glReplacementCodeuiColor3fVertex3fvSUN: procedure(const rc: PGLuint; const c: PGLfloat; const v: PGLfloat); extdecl;
-  glReplacementCodeuiNormal3fVertex3fSUN: procedure(rc: GLuint; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); extdecl;
-  glReplacementCodeuiNormal3fVertex3fvSUN: procedure(const rc: PGLuint; const n: PGLfloat; const v: PGLfloat); extdecl;
-  glReplacementCodeuiColor4fNormal3fVertex3fSUN: procedure(rc: GLuint; r: GLfloat; g: GLfloat; b: GLfloat; a: GLfloat; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); extdecl;
-  glReplacementCodeuiColor4fNormal3fVertex3fvSUN: procedure(const rc: PGLuint; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); extdecl;
-  glReplacementCodeuiTexCoord2fVertex3fSUN: procedure(rc: GLuint; s: GLfloat; t: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); extdecl;
-  glReplacementCodeuiTexCoord2fVertex3fvSUN: procedure(const rc: PGLuint; const tc: PGLfloat; const v: PGLfloat); extdecl;
-  glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN: procedure(rc: GLuint; s: GLfloat; t: GLfloat; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); extdecl;
-  glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN: procedure(const rc: PGLuint; const tc: PGLfloat; const n: PGLfloat; const v: PGLfloat); extdecl;
-  glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN: procedure(rc: GLuint; s: GLfloat; t: GLfloat; r: GLfloat; g: GLfloat; b: GLfloat; a: GLfloat; nx: GLfloat; ny: GLfloat; nz: GLfloat; x: GLfloat; y: GLfloat; z: GLfloat); extdecl;
-  glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN: procedure(const rc: PGLuint; const tc: PGLfloat; const c: PGLfloat; const n: PGLfloat; const v: PGLfloat); extdecl;
-
-function Load_GL_SUN_vertex: Boolean;
-
-//***** GL_ARB_fragment_program *****//
-const
-  GL_FRAGMENT_PROGRAM_ARB = $8804;
-  // GL_PROGRAM_FORMAT_ASCII_ARB  { already defined }
-  // GL_PROGRAM_LENGTH_ARB  { already defined }
-  // GL_PROGRAM_FORMAT_ARB  { already defined }
-  // GL_PROGRAM_BINDING_ARB  { already defined }
-  // GL_PROGRAM_INSTRUCTIONS_ARB  { already defined }
-  // GL_MAX_PROGRAM_INSTRUCTIONS_ARB  { already defined }
-  // GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB  { already defined }
-  // GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB  { already defined }
-  // GL_PROGRAM_TEMPORARIES_ARB  { already defined }
-  // GL_MAX_PROGRAM_TEMPORARIES_ARB  { already defined }
-  // GL_PROGRAM_NATIVE_TEMPORARIES_ARB  { already defined }
-  // GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB  { already defined }
-  // GL_PROGRAM_PARAMETERS_ARB  { already defined }
-  // GL_MAX_PROGRAM_PARAMETERS_ARB  { already defined }
-  // GL_PROGRAM_NATIVE_PARAMETERS_ARB  { already defined }
-  // GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB  { already defined }
-  // GL_PROGRAM_ATTRIBS_ARB  { already defined }
-  // GL_MAX_PROGRAM_ATTRIBS_ARB  { already defined }
-  // GL_PROGRAM_NATIVE_ATTRIBS_ARB  { already defined }
-  // GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB  { already defined }
-  // GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB  { already defined }
-  // GL_MAX_PROGRAM_ENV_PARAMETERS_ARB  { already defined }
-  // GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB  { already defined }
-  GL_PROGRAM_ALU_INSTRUCTIONS_ARB = $8805;
-  GL_PROGRAM_TEX_INSTRUCTIONS_ARB = $8806;
-  GL_PROGRAM_TEX_INDIRECTIONS_ARB = $8807;
-  GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = $8808;
-  GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = $8809;
-  GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = $880A;
-  GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB = $880B;
-  GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB = $880C;
-  GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB = $880D;
-  GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB = $880E;
-  GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB = $880F;
-  GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB = $8810;
-  // GL_PROGRAM_STRING_ARB  { already defined }
-  // GL_PROGRAM_ERROR_POSITION_ARB  { already defined }
-  // GL_CURRENT_MATRIX_ARB  { already defined }
-  // GL_TRANSPOSE_CURRENT_MATRIX_ARB  { already defined }
-  // GL_CURRENT_MATRIX_STACK_DEPTH_ARB  { already defined }
-  // GL_MAX_PROGRAM_MATRICES_ARB  { already defined }
-  // GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB  { already defined }
-  GL_MAX_TEXTURE_COORDS_ARB = $8871;
-  GL_MAX_TEXTURE_IMAGE_UNITS_ARB = $8872;
-  // GL_PROGRAM_ERROR_STRING_ARB  { already defined }
-  // GL_MATRIX0_ARB  { already defined }
-  // GL_MATRIX1_ARB  { already defined }
-  // GL_MATRIX2_ARB  { already defined }
-  // GL_MATRIX3_ARB  { already defined }
-  // GL_MATRIX4_ARB  { already defined }
-  // GL_MATRIX5_ARB  { already defined }
-  // GL_MATRIX6_ARB  { already defined }
-  // GL_MATRIX7_ARB  { already defined }
-  // GL_MATRIX8_ARB  { already defined }
-  // GL_MATRIX9_ARB  { already defined }
-  // GL_MATRIX10_ARB  { already defined }
-  // GL_MATRIX11_ARB  { already defined }
-  // GL_MATRIX12_ARB  { already defined }
-  // GL_MATRIX13_ARB  { already defined }
-  // GL_MATRIX14_ARB  { already defined }
-  // GL_MATRIX15_ARB  { already defined }
-  // GL_MATRIX16_ARB  { already defined }
-  // GL_MATRIX17_ARB  { already defined }
-  // GL_MATRIX18_ARB  { already defined }
-  // GL_MATRIX19_ARB  { already defined }
-  // GL_MATRIX20_ARB  { already defined }
-  // GL_MATRIX21_ARB  { already defined }
-  // GL_MATRIX22_ARB  { already defined }
-  // GL_MATRIX23_ARB  { already defined }
-  // GL_MATRIX24_ARB  { already defined }
-  // GL_MATRIX25_ARB  { already defined }
-  // GL_MATRIX26_ARB  { already defined }
-  // GL_MATRIX27_ARB  { already defined }
-  // GL_MATRIX28_ARB  { already defined }
-  // GL_MATRIX29_ARB  { already defined }
-  // GL_MATRIX30_ARB  { already defined }
-  // GL_MATRIX31_ARB  { already defined }
-  // glProgramStringARB  { already defined }
-  // glBindProgramARB  { already defined }
-  // glDeleteProgramsARB  { already defined }
-  // glGenProgramsARB  { already defined }
-  // glProgramEnvParameter4dARB  { already defined }
-  // glProgramEnvParameter4dvARB  { already defined }
-  // glProgramEnvParameter4fARB  { already defined }
-  // glProgramEnvParameter4fvARB  { already defined }
-  // glProgramLocalParameter4dARB  { already defined }
-  // glProgramLocalParameter4dvARB  { already defined }
-  // glProgramLocalParameter4fARB  { already defined }
-  // glProgramLocalParameter4fvARB  { already defined }
-  // glGetProgramEnvParameterdvARB  { already defined }
-  // glGetProgramEnvParameterfvARB  { already defined }
-  // glGetProgramLocalParameterdvARB  { already defined }
-  // glGetProgramLocalParameterfvARB  { already defined }
-  // glGetProgramivARB  { already defined }
-  // glGetProgramStringARB  { already defined }
-  // glIsProgramARB  { already defined }
-
-function Load_GL_ARB_fragment_program: Boolean;
-
-{***** GL_ATI_text_fragment_shader *****}
-const
-     GL_TEXT_FRAGMENT_SHADER_ATI = $8200;
-
-{***** GL_ARB_vertex_buffer_object *****}
-const
-     GL_BUFFER_SIZE_ARB = $8764;
-     GL_BUFFER_USAGE_ARB = $8765;
-     GL_ARRAY_BUFFER_ARB = $8892;
-     GL_ELEMENT_ARRAY_BUFFER_ARB = $8893;
-     GL_ARRAY_BUFFER_BINDING_ARB = $8894;
-     GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB = $8895;
-     GL_VERTEX_ARRAY_BUFFER_BINDING_ARB = $8896;
-     GL_NORMAL_ARRAY_BUFFER_BINDING_ARB = $8897;
-     GL_COLOR_ARRAY_BUFFER_BINDING_ARB = $8898;
-     GL_INDEX_ARRAY_BUFFER_BINDING_ARB = $8899;
-     GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB = $889A;
-     GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB = $889B;
-     GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB = $889C;
-     GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB = $889D;
-     GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB = $889E;
-     GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB = $889F;
-     GL_READ_ONLY_ARB = $88B8;
-     GL_WRITE_ONLY_ARB = $88B9;
-     GL_READ_WRITE_ARB = $88BA;
-     GL_BUFFER_ACCESS_ARB = $88BB;
-     GL_BUFFER_MAPPED_ARB = $88BC;
-     GL_BUFFER_MAP_POINTER_ARB = $88BD;
-     GL_STREAM_DRAW_ARB = $88E0;
-     GL_STREAM_READ_ARB = $88E1;
-     GL_STREAM_COPY_ARB = $88E2;
-     GL_STATIC_DRAW_ARB = $88E4;
-     GL_STATIC_READ_ARB = $88E5;
-     GL_STATIC_COPY_ARB = $88E6;
-     GL_DYNAMIC_DRAW_ARB = $88E8;
-     GL_DYNAMIC_READ_ARB = $88E9;
-     GL_DYNAMIC_COPY_ARB = $88EA;
-
-var
-     glBindBufferARB : procedure(target : GLenum; buffer: GLuint); extdecl;
-     glDeleteBuffersARB : procedure(n : GLsizei; buffers : PGLuint); extdecl;
-     glGenBuffersARB : procedure(n : GLsizei; buffers : PGLuint); extdecl;
-     glIsBufferARB : function (buffer : GLuint) :GLboolean; extdecl;
-     glBufferDataARB : procedure(target : GLenum; size:GLsizei; data:PGLvoid;usage: GLenum); extdecl;
-     glBufferSubDataARB : procedure(target : GLenum; offset :GLint; size : GLsizei; data: PGLvoid); extdecl;
-     glGetBufferSubDataARB : procedure(target : GLenum; offset :GLint; size : GLsizei; data: PGLvoid); extdecl;
-     glMapBufferARB : function (target :GLenum; access: GLenum) : PGLvoid; extdecl;
-     glUnmapBufferARB : function (target :GLenum) :GLboolean; extdecl;
-     glGetBufferParameterivARB:procedure(target:GLenum; pname:GLenum; params:PGLint); extdecl;
-     glGetBufferPointervARB : procedure(target: GLenum; pname:GLenum; params: PPGLvoid); extdecl;
-     function Load_GL_ARB_vertex_buffer_object : boolean;
-
-function Load_GL_ATI_text_fragment_shader: Boolean;
-
-//***** GL_APPLE_client_storage *****//
-const
-  GL_UNPACK_CLIENT_STORAGE_APPLE = $85B2;
-
-function Load_GL_APPLE_client_storage: Boolean;
-
-//***** GL_APPLE_element_array *****//
-const
-  GL_ELEMENT_ARRAY_APPLE = $8768;
-  GL_ELEMENT_ARRAY_TYPE_APPLE = $8769;
-  GL_ELEMENT_ARRAY_POINTER_APPLE = $876A;
-var
-  glElementPointerAPPLE: procedure(_type: GLenum; const pointer: PGLvoid); extdecl;
-  glDrawElementArrayAPPLE: procedure(mode: GLenum; first: GLint; count: GLsizei); extdecl;
-  glDrawRangeElementArrayAPPLE: procedure(mode: GLenum; start: GLuint; _end: GLuint; first: GLint; count: GLsizei); extdecl;
-  glMultiDrawElementArrayAPPLE: procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei); extdecl;
-  glMultiDrawRangeElementArrayAPPLE: procedure(mode: GLenum; start: GLuint; _end: GLuint; const first: PGLint; const count: PGLsizei; primcount: GLsizei); extdecl;
-
-function Load_GL_APPLE_element_array: Boolean;
-
-//***** GL_APPLE_fence *****//
-const
-  GL_DRAW_PIXELS_APPLE = $8A0A;
-  GL_FENCE_APPLE = $8A0B;
-var
-  glGenFencesAPPLE: procedure(n: GLsizei; fences: PGLuint); extdecl;
-  glDeleteFencesAPPLE: procedure(n: GLsizei; const fences: PGLuint); extdecl;
-  glSetFenceAPPLE: procedure(fence: GLuint); extdecl;
-  glIsFenceAPPLE: function(fence: GLuint): GLboolean; extdecl;
-  glTestFenceAPPLE: function(fence: GLuint): GLboolean; extdecl;
-  glFinishFenceAPPLE: procedure(fence: GLuint); extdecl;
-  glTestObjectAPPLE: function(_object: GLenum; name: GLuint): GLboolean; extdecl;
-  glFinishObjectAPPLE: procedure(_object: GLenum; name: GLint); extdecl;
-
-function Load_GL_APPLE_fence: Boolean;
-
-//***** GL_APPLE_vertex_array_object *****//
-const
-  GL_VERTEX_ARRAY_BINDING_APPLE = $85B5;
-var
-  glBindVertexArrayAPPLE: procedure(_array: GLuint); extdecl;
-  glDeleteVertexArraysAPPLE: procedure(n: GLsizei; const arrays: PGLuint); extdecl;
-  glGenVertexArraysAPPLE: procedure(n: GLsizei; const arrays: PGLuint); extdecl;
-  glIsVertexArrayAPPLE: function(_array: GLuint): GLboolean; extdecl;
-
-function Load_GL_APPLE_vertex_array_object: Boolean;
-
-//***** GL_APPLE_vertex_array_range *****//
-const
-  GL_VERTEX_ARRAY_RANGE_APPLE = $851D;
-  GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE = $851E;
-  GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_APPLE = $8520;
-  GL_VERTEX_ARRAY_RANGE_POINTER_APPLE = $8521;
-  GL_VERTEX_ARRAY_STORAGE_HINT_APPLE = $851F;
-  GL_STORAGE_CACHED_APPLE = $85BE;
-  GL_STORAGE_SHARED_APPLE = $85BF;
-var
-  glVertexArrayRangeAPPLE: procedure(length: GLsizei; pointer: PGLvoid); extdecl;
-  glFlushVertexArrayRangeAPPLE: procedure(length: GLsizei; pointer: PGLvoid); extdecl;
-  glVertexArrayParameteriAPPLE: procedure(pname: GLenum; param: GLint); extdecl;
-
-function Load_GL_APPLE_vertex_array_range: Boolean;
-
-{$IFDEF Windows}
-//***** WGL_ARB_pixel_format *****//
-const
-  WGL_NUMBER_PIXEL_FORMATS_ARB = $2000;
-  WGL_DRAW_TO_WINDOW_ARB = $2001;
-  WGL_DRAW_TO_BITMAP_ARB = $2002;
-  WGL_ACCELERATION_ARB = $2003;
-  WGL_NEED_PALETTE_ARB = $2004;
-  WGL_NEED_SYSTEM_PALETTE_ARB = $2005;
-  WGL_SWAP_LAYER_BUFFERS_ARB = $2006;
-  WGL_SWAP_METHOD_ARB = $2007;
-  WGL_NUMBER_OVERLAYS_ARB = $2008;
-  WGL_NUMBER_UNDERLAYS_ARB = $2009;
-  WGL_TRANSPARENT_ARB = $200A;
-  WGL_TRANSPARENT_RED_VALUE_ARB = $2037;
-  WGL_TRANSPARENT_GREEN_VALUE_ARB = $2038;
-  WGL_TRANSPARENT_BLUE_VALUE_ARB = $2039;
-  WGL_TRANSPARENT_ALPHA_VALUE_ARB = $203A;
-  WGL_TRANSPARENT_INDEX_VALUE_ARB = $203B;
-  WGL_SHARE_DEPTH_ARB = $200C;
-  WGL_SHARE_STENCIL_ARB = $200D;
-  WGL_SHARE_ACCUM_ARB = $200E;
-  WGL_SUPPORT_GDI_ARB = $200F;
-  WGL_SUPPORT_OPENGL_ARB = $2010;
-  WGL_DOUBLE_BUFFER_ARB = $2011;
-  WGL_STEREO_ARB = $2012;
-  WGL_PIXEL_TYPE_ARB = $2013;
-  WGL_COLOR_BITS_ARB = $2014;
-  WGL_RED_BITS_ARB = $2015;
-  WGL_RED_SHIFT_ARB = $2016;
-  WGL_GREEN_BITS_ARB = $2017;
-  WGL_GREEN_SHIFT_ARB = $2018;
-  WGL_BLUE_BITS_ARB = $2019;
-  WGL_BLUE_SHIFT_ARB = $201A;
-  WGL_ALPHA_BITS_ARB = $201B;
-  WGL_ALPHA_SHIFT_ARB = $201C;
-  WGL_ACCUM_BITS_ARB = $201D;
-  WGL_ACCUM_RED_BITS_ARB = $201E;
-  WGL_ACCUM_GREEN_BITS_ARB = $201F;
-  WGL_ACCUM_BLUE_BITS_ARB = $2020;
-  WGL_ACCUM_ALPHA_BITS_ARB = $2021;
-  WGL_DEPTH_BITS_ARB = $2022;
-  WGL_STENCIL_BITS_ARB = $2023;
-  WGL_AUX_BUFFERS_ARB = $2024;
-  WGL_NO_ACCELERATION_ARB = $2025;
-  WGL_GENERIC_ACCELERATION_ARB = $2026;
-  WGL_FULL_ACCELERATION_ARB = $2027;
-  WGL_SWAP_EXCHANGE_ARB = $2028;
-  WGL_SWAP_COPY_ARB = $2029;
-  WGL_SWAP_UNDEFINED_ARB = $202A;
-  WGL_TYPE_RGBA_ARB = $202B;
-  WGL_TYPE_COLORINDEX_ARB = $202C;
-var
-  wglGetPixelFormatAttribivARB: function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; const piAttributes: PGLint; piValues: PGLint): BOOL; extdecl;
-  wglGetPixelFormatAttribfvARB: function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; const piAttributes: PGLint; pfValues: PGLfloat): BOOL; extdecl;
-  wglChoosePixelFormatARB: function(hdc: HDC; const piAttribIList: PGLint; const pfAttribFList: PGLfloat; nMaxFormats: GLuint; piFormats: PGLint; nNumFormats: PGLuint): BOOL; extdecl;
-
-function Load_WGL_ARB_pixel_format: Boolean;
-
-//***** WGL_ARB_make_current_read *****//
-const
-  WGL_ERROR_INVALID_PIXEL_TYPE_ARB = $2043;
-  WGL_ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB = $2054;
-var
-  wglMakeContextCurrentARB: function(hDrawDC: HDC; hReadDC: HDC; hglrc: HGLRC): BOOL; extdecl;
-  wglGetCurrentReadDCARB: function(): HDC; extdecl;
-
-function Load_WGL_ARB_make_current_read: Boolean;
-
-//***** WGL_ARB_pbuffer *****//
-const
-  WGL_DRAW_TO_PBUFFER_ARB = $202D;
-  // WGL_DRAW_TO_PBUFFER_ARB  { already defined }
-  WGL_MAX_PBUFFER_PIXELS_ARB = $202E;
-  WGL_MAX_PBUFFER_WIDTH_ARB = $202F;
-  WGL_MAX_PBUFFER_HEIGHT_ARB = $2030;
-  WGL_PBUFFER_LARGEST_ARB = $2033;
-  WGL_PBUFFER_WIDTH_ARB = $2034;
-  WGL_PBUFFER_HEIGHT_ARB = $2035;
-  WGL_PBUFFER_LOST_ARB = $2036;
-var
-  wglCreatePbufferARB: function(hDC: HDC; iPixelFormat: GLint; iWidth: GLint; iHeight: GLint; const piAttribList: PGLint): THandle; extdecl;
-  wglGetPbufferDCARB: function(hPbuffer: THandle): HDC; extdecl;
-  wglReleasePbufferDCARB: function(hPbuffer: THandle; hDC: HDC): GLint; extdecl;
-  wglDestroyPbufferARB: function(hPbuffer: THandle): BOOL; extdecl;
-  wglQueryPbufferARB: function(hPbuffer: THandle; iAttribute: GLint; piValue: PGLint): BOOL; extdecl;
-
-function Load_WGL_ARB_pbuffer: Boolean;
-
-//***** WGL_EXT_swap_control *****//
-var
-  wglSwapIntervalEXT: function(interval: GLint): BOOL; extdecl;
-  wglGetSwapIntervalEXT: function(): GLint; extdecl;
-
-function Load_WGL_EXT_swap_control: Boolean;
-
-//***** WGL_ARB_render_texture *****//
-const
-  WGL_BIND_TO_TEXTURE_RGB_ARB = $2070;
-  WGL_BIND_TO_TEXTURE_RGBA_ARB = $2071;
-  WGL_TEXTURE_FORMAT_ARB = $2072;
-  WGL_TEXTURE_TARGET_ARB = $2073;
-  WGL_MIPMAP_TEXTURE_ARB = $2074;
-  WGL_TEXTURE_RGB_ARB = $2075;
-  WGL_TEXTURE_RGBA_ARB = $2076;
-  WGL_NO_TEXTURE_ARB = $2077;
-  WGL_TEXTURE_CUBE_MAP_ARB = $2078;
-  WGL_TEXTURE_1D_ARB = $2079;
-  WGL_TEXTURE_2D_ARB = $207A;
-  // WGL_NO_TEXTURE_ARB  { already defined }
-  WGL_MIPMAP_LEVEL_ARB = $207B;
-  WGL_CUBE_MAP_FACE_ARB = $207C;
-  WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB = $207D;
-  WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB = $207E;
-  WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB = $207F;
-  WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB = $2080;
-  WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB = $2081;
-  WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB = $2082;
-  WGL_FRONT_LEFT_ARB = $2083;
-  WGL_FRONT_RIGHT_ARB = $2084;
-  WGL_BACK_LEFT_ARB = $2085;
-  WGL_BACK_RIGHT_ARB = $2086;
-  WGL_AUX0_ARB = $2087;
-  WGL_AUX1_ARB = $2088;
-  WGL_AUX2_ARB = $2089;
-  WGL_AUX3_ARB = $208A;
-  WGL_AUX4_ARB = $208B;
-  WGL_AUX5_ARB = $208C;
-  WGL_AUX6_ARB = $208D;
-  WGL_AUX7_ARB = $208E;
-  WGL_AUX8_ARB = $208F;
-  WGL_AUX9_ARB = $2090;
-var
-  wglBindTexImageARB: function(hPbuffer: THandle; iBuffer: GLint): BOOL; extdecl;
-  wglReleaseTexImageARB: function(hPbuffer: THandle; iBuffer: GLint): BOOL; extdecl;
-  wglSetPbufferAttribARB: function(hPbuffer: THandle; const piAttribList: PGLint): BOOL; extdecl;
-
-function Load_WGL_ARB_render_texture: Boolean;
-
-//***** WGL_EXT_extensions_string *****//
-var
-  wglGetExtensionsStringEXT: function(): Pchar; extdecl;
-
-function Load_WGL_EXT_extensions_string: Boolean;
-
-//***** WGL_EXT_make_current_read *****//
-var
-  wglMakeContextCurrentEXT: function(hDrawDC: HDC; hReadDC: HDC; hglrc: HGLRC): BOOL; extdecl;
-  wglGetCurrentReadDCEXT: function(): HDC; extdecl;
-
-function Load_WGL_EXT_make_current_read: Boolean;
-
-//***** WGL_EXT_pbuffer *****//
-const
-  WGL_DRAW_TO_PBUFFER_EXT = $202D;
-  WGL_MAX_PBUFFER_PIXELS_EXT = $202E;
-  WGL_MAX_PBUFFER_WIDTH_EXT = $202F;
-  WGL_MAX_PBUFFER_HEIGHT_EXT = $2030;
-  WGL_OPTIMAL_PBUFFER_WIDTH_EXT = $2031;
-  WGL_OPTIMAL_PBUFFER_HEIGHT_EXT = $2032;
-  WGL_PBUFFER_LARGEST_EXT = $2033;
-  WGL_PBUFFER_WIDTH_EXT = $2034;
-  WGL_PBUFFER_HEIGHT_EXT = $2035;
-var
-  wglCreatePbufferEXT: function(hDC: HDC; iPixelFormat: GLint; iWidth: GLint; iHeight: GLint; const piAttribList: PGLint): THandle; extdecl;
-  wglGetPbufferDCEXT: function(hPbuffer: THandle): HDC; extdecl;
-  wglReleasePbufferDCEXT: function(hPbuffer: THandle; hDC: HDC): GLint; extdecl;
-  wglDestroyPbufferEXT: function(hPbuffer: THandle): BOOL; extdecl;
-  wglQueryPbufferEXT: function(hPbuffer: THandle; iAttribute: GLint; piValue: PGLint): BOOL; extdecl;
-
-function Load_WGL_EXT_pbuffer: Boolean;
-
-//***** WGL_EXT_pixel_format *****//
-const
-  WGL_NUMBER_PIXEL_FORMATS_EXT = $2000;
-  WGL_DRAW_TO_WINDOW_EXT = $2001;
-  WGL_DRAW_TO_BITMAP_EXT = $2002;
-  WGL_ACCELERATION_EXT = $2003;
-  WGL_NEED_PALETTE_EXT = $2004;
-  WGL_NEED_SYSTEM_PALETTE_EXT = $2005;
-  WGL_SWAP_LAYER_BUFFERS_EXT = $2006;
-  WGL_SWAP_METHOD_EXT = $2007;
-  WGL_NUMBER_OVERLAYS_EXT = $2008;
-  WGL_NUMBER_UNDERLAYS_EXT = $2009;
-  WGL_TRANSPARENT_EXT = $200A;
-  WGL_TRANSPARENT_VALUE_EXT = $200B;
-  WGL_SHARE_DEPTH_EXT = $200C;
-  WGL_SHARE_STENCIL_EXT = $200D;
-  WGL_SHARE_ACCUM_EXT = $200E;
-  WGL_SUPPORT_GDI_EXT = $200F;
-  WGL_SUPPORT_OPENGL_EXT = $2010;
-  WGL_DOUBLE_BUFFER_EXT = $2011;
-  WGL_STEREO_EXT = $2012;
-  WGL_PIXEL_TYPE_EXT = $2013;
-  WGL_COLOR_BITS_EXT = $2014;
-  WGL_RED_BITS_EXT = $2015;
-  WGL_RED_SHIFT_EXT = $2016;
-  WGL_GREEN_BITS_EXT = $2017;
-  WGL_GREEN_SHIFT_EXT = $2018;
-  WGL_BLUE_BITS_EXT = $2019;
-  WGL_BLUE_SHIFT_EXT = $201A;
-  WGL_ALPHA_BITS_EXT = $201B;
-  WGL_ALPHA_SHIFT_EXT = $201C;
-  WGL_ACCUM_BITS_EXT = $201D;
-  WGL_ACCUM_RED_BITS_EXT = $201E;
-  WGL_ACCUM_GREEN_BITS_EXT = $201F;
-  WGL_ACCUM_BLUE_BITS_EXT = $2020;
-  WGL_ACCUM_ALPHA_BITS_EXT = $2021;
-  WGL_DEPTH_BITS_EXT = $2022;
-  WGL_STENCIL_BITS_EXT = $2023;
-  WGL_AUX_BUFFERS_EXT = $2024;
-  WGL_NO_ACCELERATION_EXT = $2025;
-  WGL_GENERIC_ACCELERATION_EXT = $2026;
-  WGL_FULL_ACCELERATION_EXT = $2027;
-  WGL_SWAP_EXCHANGE_EXT = $2028;
-  WGL_SWAP_COPY_EXT = $2029;
-  WGL_SWAP_UNDEFINED_EXT = $202A;
-  WGL_TYPE_RGBA_EXT = $202B;
-  WGL_TYPE_COLORINDEX_EXT = $202C;
-var
-  wglGetPixelFormatAttribivEXT: function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; piAttributes: PGLint; piValues: PGLint): BOOL; extdecl;
-  wglGetPixelFormatAttribfvEXT: function(hdc: HDC; iPixelFormat: GLint; iLayerPlane: GLint; nAttributes: GLuint; piAttributes: PGLint; pfValues: PGLfloat): BOOL; extdecl;
-  wglChoosePixelFormatEXT: function(hdc: HDC; const piAttribIList: PGLint; const pfAttribFList: PGLfloat; nMaxFormats: GLuint; piFormats: PGLint; nNumFormats: PGLuint): BOOL; extdecl;
-
-function Load_WGL_EXT_pixel_format: Boolean;
-
-//***** WGL_I3D_digital_video_control *****//
-const
-  WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D = $2050;
-  WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D = $2051;
-  WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D = $2052;
-  WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D = $2053;
-var
-  wglGetDigitalVideoParametersI3D: function(hDC: HDC; iAttribute: GLint; piValue: PGLint): BOOL; extdecl;
-  wglSetDigitalVideoParametersI3D: function(hDC: HDC; iAttribute: GLint; const piValue: PGLint): BOOL; extdecl;
-
-function Load_WGL_I3D_digital_video_control: Boolean;
-
-//***** WGL_I3D_gamma *****//
-const
-  WGL_GAMMA_TABLE_SIZE_I3D = $204E;
-  WGL_GAMMA_EXCLUDE_DESKTOP_I3D = $204F;
-  // WGL_GAMMA_EXCLUDE_DESKTOP_I3D  { already defined }
-var
-  wglGetGammaTableParametersI3D: function(hDC: HDC; iAttribute: GLint; piValue: PGLint): BOOL; extdecl;
-  wglSetGammaTableParametersI3D: function(hDC: HDC; iAttribute: GLint; const piValue: PGLint): BOOL; extdecl;
-  wglGetGammaTableI3D: function(hDC: HDC; iEntries: GLint; puRed: PGLUSHORT; puGreen: PGLUSHORT; puBlue: PGLUSHORT): BOOL; extdecl;
-  wglSetGammaTableI3D: function(hDC: HDC; iEntries: GLint; const puRed: PGLUSHORT; const puGreen: PGLUSHORT; const puBlue: PGLUSHORT): BOOL; extdecl;
-
-function Load_WGL_I3D_gamma: Boolean;
-
-//***** WGL_I3D_genlock *****//
-const
-  WGL_GENLOCK_SOURCE_MULTIVIEW_I3D = $2044;
-  WGL_GENLOCK_SOURCE_EXTERNAL_SYNC_I3D = $2045;
-  WGL_GENLOCK_SOURCE_EXTERNAL_FIELD_I3D = $2046;
-  WGL_GENLOCK_SOURCE_EXTERNAL_TTL_I3D = $2047;
-  WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D = $2048;
-  WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D = $2049;
-  WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D = $204A;
-  WGL_GENLOCK_SOURCE_EDGE_RISING_I3D = $204B;
-  WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D = $204C;
-var
-  wglEnableGenlockI3D: function(hDC: HDC): BOOL; extdecl;
-  wglDisableGenlockI3D: function(hDC: HDC): BOOL; extdecl;
-  wglIsEnabledGenlockI3D: function(hDC: HDC; pFlag: PBOOL): BOOL; extdecl;
-  wglGenlockSourceI3D: function(hDC: HDC; uSource: GLUINT): BOOL; extdecl;
-  wglGetGenlockSourceI3D: function(hDC: HDC; uSource: PGLUINT): BOOL; extdecl;
-  wglGenlockSourceEdgeI3D: function(hDC: HDC; uEdge: GLUINT): BOOL; extdecl;
-  wglGetGenlockSourceEdgeI3D: function(hDC: HDC; uEdge: PGLUINT): BOOL; extdecl;
-  wglGenlockSampleRateI3D: function(hDC: HDC; uRate: GLUINT): BOOL; extdecl;
-  wglGetGenlockSampleRateI3D: function(hDC: HDC; uRate: PGLUINT): BOOL; extdecl;
-  wglGenlockSourceDelayI3D: function(hDC: HDC; uDelay: GLUINT): BOOL; extdecl;
-  wglGetGenlockSourceDelayI3D: function(hDC: HDC; uDelay: PGLUINT): BOOL; extdecl;
-  wglQueryGenlockMaxSourceDelayI3D: function(hDC: HDC; uMaxLineDelay: PGLUINT; uMaxPixelDelay: PGLUINT): BOOL; extdecl;
-
-function Load_WGL_I3D_genlock: Boolean;
-{$ENDIF}
-
-//***** GL_ARB_matrix_palette *****//
-const
-  GL_MATRIX_PALETTE_ARB = $8840;
-  GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB = $8841;
-  GL_MAX_PALETTE_MATRICES_ARB = $8842;
-  GL_CURRENT_PALETTE_MATRIX_ARB = $8843;
-  GL_MATRIX_INDEX_ARRAY_ARB = $8844;
-  GL_CURRENT_MATRIX_INDEX_ARB = $8845;
-  GL_MATRIX_INDEX_ARRAY_SIZE_ARB = $8846;
-  GL_MATRIX_INDEX_ARRAY_TYPE_ARB = $8847;
-  GL_MATRIX_INDEX_ARRAY_STRIDE_ARB = $8848;
-  GL_MATRIX_INDEX_ARRAY_POINTER_ARB = $8849;
-var
-  glCurrentPaletteMatrixARB: procedure(index: GLint); extdecl;
-  glMatrixIndexubvARB: procedure(size: GLint; indices: PGLubyte); extdecl;
-  glMatrixIndexusvARB: procedure(size: GLint; indices: PGLushort); extdecl;
-  glMatrixIndexuivARB: procedure(size: GLint; indices: PGLuint); extdecl;
-  glMatrixIndexPointerARB: procedure(size: GLint; _type: GLenum; stride: GLsizei; pointer: PGLvoid); extdecl;
-
-function Load_GL_ARB_matrix_palette: Boolean;
-
-//***** GL_NV_element_array *****//
-const
-  GL_ELEMENT_ARRAY_TYPE_NV = $8769;
-  GL_ELEMENT_ARRAY_POINTER_NV = $876A;
-var
-  glElementPointerNV: procedure(_type: GLenum; const pointer: PGLvoid); extdecl;
-  glDrawElementArrayNV: procedure(mode: GLenum; first: GLint; count: GLsizei); extdecl;
-  glDrawRangeElementArrayNV: procedure(mode: GLenum; start: GLuint; _end: GLuint; first: GLint; count: GLsizei); extdecl;
-  glMultiDrawElementArrayNV: procedure(mode: GLenum; const first: PGLint; const count: PGLsizei; primcount: GLsizei); extdecl;
-  glMultiDrawRangeElementArrayNV: procedure(mode: GLenum; start: GLuint; _end: GLuint; const first: PGLint; const count: PGLsizei; primcount: GLsizei); extdecl;
-
-function Load_GL_NV_element_array: Boolean;
-
-//***** GL_NV_float_buffer *****//
-const
-  GL_FLOAT_R_NV = $8880;
-  GL_FLOAT_RG_NV = $8881;
-  GL_FLOAT_RGB_NV = $8882;
-  GL_FLOAT_RGBA_NV = $8883;
-  GL_FLOAT_R16_NV = $8884;
-  GL_FLOAT_R32_NV = $8885;
-  GL_FLOAT_RG16_NV = $8886;
-  GL_FLOAT_RG32_NV = $8887;
-  GL_FLOAT_RGB16_NV = $8888;
-  GL_FLOAT_RGB32_NV = $8889;
-  GL_FLOAT_RGBA16_NV = $888A;
-  GL_FLOAT_RGBA32_NV = $888B;
-  GL_TEXTURE_FLOAT_COMPONENTS_NV = $888C;
-  GL_FLOAT_CLEAR_COLOR_VALUE_NV = $888D;
-  GL_FLOAT_RGBA_MODE_NV = $888E;
-{$IFDEF Windows}
-  WGL_FLOAT_COMPONENTS_NV = $20B0;
-  WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV = $20B1;
-  WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV = $20B2;
-  WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV = $20B3;
-  WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV = $20B4;
-  WGL_TEXTURE_FLOAT_R_NV = $20B5;
-  WGL_TEXTURE_FLOAT_RG_NV = $20B6;
-  WGL_TEXTURE_FLOAT_RGB_NV = $20B7;
-  WGL_TEXTURE_FLOAT_RGBA_NV = $20B8;
-{$ENDIF}
-
-function Load_GL_NV_float_buffer: Boolean;
-
-//***** GL_NV_fragment_program *****//
-const
-  GL_FRAGMENT_PROGRAM_NV = $8870;
-  GL_MAX_TEXTURE_COORDS_NV = $8871;
-  GL_MAX_TEXTURE_IMAGE_UNITS_NV = $8872;
-  GL_FRAGMENT_PROGRAM_BINDING_NV = $8873;
-  GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV = $8868;
-  GL_PROGRAM_ERROR_STRING_NV = $8874;
-var
-  glProgramNamedParameter4fNV: procedure(id: GLuint; len: GLsizei; const name: PGLubyte; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); extdecl;
-  glProgramNamedParameter4dNV: procedure(id: GLuint; len: GLsizei; const name: PGLubyte; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); extdecl;
-  glGetProgramNamedParameterfvNV: procedure(id: GLuint; len: GLsizei; const name: PGLubyte; params: PGLfloat); extdecl;
-  glGetProgramNamedParameterdvNV: procedure(id: GLuint; len: GLsizei; const name: PGLubyte; params: PGLdouble); extdecl;
-  // glProgramLocalParameter4dARB  { already defined }
-  // glProgramLocalParameter4dvARB  { already defined }
-  // glProgramLocalParameter4fARB  { already defined }
-  // glProgramLocalParameter4fvARB  { already defined }
-  // glGetProgramLocalParameterdvARB  { already defined }
-  // glGetProgramLocalParameterfvARB  { already defined }
-
-function Load_GL_NV_fragment_program: Boolean;
-
-//***** GL_NV_primitive_restart *****//
-const
-  GL_PRIMITIVE_RESTART_NV = $8558;
-  GL_PRIMITIVE_RESTART_INDEX_NV = $8559;
-var
-  glPrimitiveRestartNV: procedure(); extdecl;
-  glPrimitiveRestartIndexNV: procedure(index: GLuint); extdecl;
-
-function Load_GL_NV_primitive_restart: Boolean;
-
-//***** GL_NV_vertex_program2 *****//
-
-function Load_GL_NV_vertex_program2: Boolean;
-
-{$IFDEF Windows}
-//***** WGL_NV_render_texture_rectangle *****//
-const
-  WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV = $20A0;
-  WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV = $20A1;
-  WGL_TEXTURE_RECTANGLE_NV = $20A2;
-
-function Load_WGL_NV_render_texture_rectangle: Boolean;
-{$ENDIF}
-
-//***** GL_NV_pixel_data_range *****//
-const
-  GL_WRITE_PIXEL_DATA_RANGE_NV = $8878;
-  GL_READ_PIXEL_DATA_RANGE_NV = $8879;
-  GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV = $887A;
-  GL_READ_PIXEL_DATA_RANGE_LENGTH_NV = $887B;
-  GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV = $887C;
-  GL_READ_PIXEL_DATA_RANGE_POINTER_NV = $887D;
-var
-  glPixelDataRangeNV: procedure(target: GLenum; length: GLsizei; pointer: PGLvoid); extdecl;
-  glFlushPixelDataRangeNV: procedure(target: GLenum); extdecl;
-  // wglAllocateMemoryNV  { already defined }
-  // wglFreeMemoryNV  { already defined }
-
-function Load_GL_NV_pixel_data_range: Boolean;
-
-//***** GL_EXT_texture_rectangle *****//
-const
-  GL_TEXTURE_RECTANGLE_EXT = $84F5;
-  GL_TEXTURE_BINDING_RECTANGLE_EXT = $84F6;
-  GL_PROXY_TEXTURE_RECTANGLE_EXT = $84F7;
-  GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT = $84F8;
-
-function Load_GL_EXT_texture_rectangle: Boolean;
-
-//***** GL_S3_s3tc *****//
-const
-  GL_RGB_S3TC = $83A0;
-  GL_RGB4_S3TC = $83A1;
-  GL_RGBA_S3TC = $83A2;
-  GL_RGBA4_S3TC = $83A3;
-
-function Load_GL_S3_s3tc: Boolean;
-
-//***** GL_ATI_draw_buffers *****//
-const
-  GL_MAX_DRAW_BUFFERS_ATI = $8824;
-  GL_DRAW_BUFFER0_ATI = $8825;
-  GL_DRAW_BUFFER1_ATI = $8826;
-  GL_DRAW_BUFFER2_ATI = $8827;
-  GL_DRAW_BUFFER3_ATI = $8828;
-  GL_DRAW_BUFFER4_ATI = $8829;
-  GL_DRAW_BUFFER5_ATI = $882A;
-  GL_DRAW_BUFFER6_ATI = $882B;
-  GL_DRAW_BUFFER7_ATI = $882C;
-  GL_DRAW_BUFFER8_ATI = $882D;
-  GL_DRAW_BUFFER9_ATI = $882E;
-  GL_DRAW_BUFFER10_ATI = $882F;
-  GL_DRAW_BUFFER11_ATI = $8830;
-  GL_DRAW_BUFFER12_ATI = $8831;
-  GL_DRAW_BUFFER13_ATI = $8832;
-  GL_DRAW_BUFFER14_ATI = $8833;
-  GL_DRAW_BUFFER15_ATI = $8834;
-var
-  glDrawBuffersATI: procedure(n: GLsizei; const bufs: PGLenum); extdecl;
-
-function Load_GL_ATI_draw_buffers: Boolean;
-
-{$IFDEF Windows}
-//***** WGL_ATI_pixel_format_float *****//
-const
-  WGL_RGBA_FLOAT_MODE_ATI = $8820;
-  WGL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI = $8835;
-  WGL_TYPE_RGBA_FLOAT_ATI = $21A0;
-
-function Load_WGL_ATI_pixel_format_float: Boolean;
-{$ENDIF}
-
-//***** GL_ATI_texture_env_combine3 *****//
-const
-  GL_MODULATE_ADD_ATI = $8744;
-  GL_MODULATE_SIGNED_ADD_ATI = $8745;
-  GL_MODULATE_SUBTRACT_ATI = $8746;
-
-function Load_GL_ATI_texture_env_combine3: Boolean;
-
-//***** GL_ATI_texture_float *****//
-const
-  GL_RGBA_FLOAT32_ATI = $8814;
-  GL_RGB_FLOAT32_ATI = $8815;
-  GL_ALPHA_FLOAT32_ATI = $8816;
-  GL_INTENSITY_FLOAT32_ATI = $8817;
-  GL_LUMINANCE_FLOAT32_ATI = $8818;
-  GL_LUMINANCE_ALPHA_FLOAT32_ATI = $8819;
-  GL_RGBA_FLOAT16_ATI = $881A;
-  GL_RGB_FLOAT16_ATI = $881B;
-  GL_ALPHA_FLOAT16_ATI = $881C;
-  GL_INTENSITY_FLOAT16_ATI = $881D;
-  GL_LUMINANCE_FLOAT16_ATI = $881E;
-  GL_LUMINANCE_ALPHA_FLOAT16_ATI = $881F;
-
-function Load_GL_ATI_texture_float: Boolean;
-
-//***** GL_NV_texture_expand_normal *****//
-const
-  GL_TEXTURE_UNSIGNED_REMAP_MODE_NV = $888F;
-
-function Load_GL_NV_texture_expand_normal: Boolean;
-
-//***** GL_NV_half_float *****//
-const
-  GL_HALF_FLOAT_NV = $140B;
-var
-  glVertex2hNV: procedure(x: GLushort; y: GLushort); extdecl;
-  glVertex2hvNV: procedure(const v: PGLushort); extdecl;
-  glVertex3hNV: procedure(x: GLushort; y: GLushort; z: GLushort); extdecl;
-  glVertex3hvNV: procedure(const v: PGLushort); extdecl;
-  glVertex4hNV: procedure(x: GLushort; y: GLushort; z: GLushort; w: GLushort); extdecl;
-  glVertex4hvNV: procedure(const v: PGLushort); extdecl;
-  glNormal3hNV: procedure(nx: GLushort; ny: GLushort; nz: GLushort); extdecl;
-  glNormal3hvNV: procedure(const v: PGLushort); extdecl;
-  glColor3hNV: procedure(red: GLushort; green: GLushort; blue: GLushort); extdecl;
-  glColor3hvNV: procedure(const v: PGLushort); extdecl;
-  glColor4hNV: procedure(red: GLushort; green: GLushort; blue: GLushort; alpha: GLushort); extdecl;
-  glColor4hvNV: procedure(const v: PGLushort); extdecl;
-  glTexCoord1hNV: procedure(s: GLushort); extdecl;
-  glTexCoord1hvNV: procedure(const v: PGLushort); extdecl;
-  glTexCoord2hNV: procedure(s: GLushort; t: GLushort); extdecl;
-  glTexCoord2hvNV: procedure(const v: PGLushort); extdecl;
-  glTexCoord3hNV: procedure(s: GLushort; t: GLushort; r: GLushort); extdecl;
-  glTexCoord3hvNV: procedure(const v: PGLushort); extdecl;
-  glTexCoord4hNV: procedure(s: GLushort; t: GLushort; r: GLushort; q: GLushort); extdecl;
-  glTexCoord4hvNV: procedure(const v: PGLushort); extdecl;
-  glMultiTexCoord1hNV: procedure(target: GLenum; s: GLushort); extdecl;
-  glMultiTexCoord1hvNV: procedure(target: GLenum; const v: PGLushort); extdecl;
-  glMultiTexCoord2hNV: procedure(target: GLenum; s: GLushort; t: GLushort); extdecl;
-  glMultiTexCoord2hvNV: procedure(target: GLenum; const v: PGLushort); extdecl;
-  glMultiTexCoord3hNV: procedure(target: GLenum; s: GLushort; t: GLushort; r: GLushort); extdecl;
-  glMultiTexCoord3hvNV: procedure(target: GLenum; const v: PGLushort); extdecl;
-  glMultiTexCoord4hNV: procedure(target: GLenum; s: GLushort; t: GLushort; r: GLushort; q: GLushort); extdecl;
-  glMultiTexCoord4hvNV: procedure(target: GLenum; const v: PGLushort); extdecl;
-  glFogCoordhNV: procedure(fog: GLushort); extdecl;
-  glFogCoordhvNV: procedure(const fog: PGLushort); extdecl;
-  glSecondaryColor3hNV: procedure(red: GLushort; green: GLushort; blue: GLushort); extdecl;
-  glSecondaryColor3hvNV: procedure(const v: PGLushort); extdecl;
-  glVertexWeighthNV: procedure(weight: GLushort); extdecl;
-  glVertexWeighthvNV: procedure(const weight: PGLushort); extdecl;
-  glVertexAttrib1hNV: procedure(index: GLuint; x: GLushort); extdecl;
-  glVertexAttrib1hvNV: procedure(index: GLuint; const v: PGLushort); extdecl;
-  glVertexAttrib2hNV: procedure(index: GLuint; x: GLushort; y: GLushort); extdecl;
-  glVertexAttrib2hvNV: procedure(index: GLuint; const v: PGLushort); extdecl;
-  glVertexAttrib3hNV: procedure(index: GLuint; x: GLushort; y: GLushort; z: GLushort); extdecl;
-  glVertexAttrib3hvNV: procedure(index: GLuint; const v: PGLushort); extdecl;
-  glVertexAttrib4hNV: procedure(index: GLuint; x: GLushort; y: GLushort; z: GLushort; w: GLushort); extdecl;
-  glVertexAttrib4hvNV: procedure(index: GLuint; const v: PGLushort); extdecl;
-  glVertexAttribs1hvNV: procedure(index: GLuint; n: GLsizei; const v: PGLushort); extdecl;
-  glVertexAttribs2hvNV: procedure(index: GLuint; n: GLsizei; const v: PGLushort); extdecl;
-  glVertexAttribs3hvNV: procedure(index: GLuint; n: GLsizei; const v: PGLushort); extdecl;
-  glVertexAttribs4hvNV: procedure(index: GLuint; n: GLsizei; const v: PGLushort); extdecl;
-
-function Load_GL_NV_half_float: Boolean;
-
-//***** GL_ATI_map_object_buffer *****//
-var
-  glMapObjectBufferATI: function(buffer: GLuint): PGLvoid; extdecl;
-  glUnmapObjectBufferATI: procedure(buffer: GLuint); extdecl;
-
-function Load_GL_ATI_map_object_buffer: Boolean;
-
-//***** GL_ATI_separate_stencil *****//
-const
-  GL_KEEP = $1E00;
-  GL_ZERO = $0000;
-  GL_REPLACE = $1E01;
-  GL_INCR = $1E02;
-  GL_DECR = $1E03;
-  GL_INVERT = $150A;
-  GL_NEVER = $0200;
-  GL_LESS = $0201;
-  GL_LEQUAL = $0203;
-  GL_GREATER = $0204;
-  GL_GEQUAL = $0206;
-  GL_EQUAL = $0202;
-  GL_NOTEQUAL = $0205;
-  GL_ALWAYS = $0207;
-  GL_FRONT = $0404;
-  GL_BACK = $0405;
-  GL_FRONT_AND_BACK = $0408;
-  GL_STENCIL_BACK_FUNC_ATI = $8800;
-  GL_STENCIL_BACK_FAIL_ATI = $8801;
-  GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI = $8802;
-  GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI = $8803;
-var
-  glStencilOpSeparateATI: procedure(face: GLenum; sfail: GLenum; dpfail: GLenum; dppass: GLenum); extdecl;
-  glStencilFuncSeparateATI: procedure(frontfunc: GLenum; backfunc: GLenum; ref: GLint; mask: GLuint); extdecl;
-
-function Load_GL_ATI_separate_stencil: Boolean;
-
-//***** GL_ATI_vertex_attrib_array_object *****//
-var
-  glVertexAttribArrayObjectATI: procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; buffer: GLuint; offset: GLuint); extdecl;
-  glGetVertexAttribArrayObjectfvATI: procedure(index: GLuint; pname: GLenum; params: PGLfloat); extdecl;
-  glGetVertexAttribArrayObjectivATI: procedure(index: GLuint; pname: GLenum; params: PGLint); extdecl;
-
-function Load_GL_ATI_vertex_attrib_array_object: Boolean;
-
-//***** GL_ARB_occlusion_query *****//
-const
-  GL_SAMPLES_PASSED_ARB = $8914;
-  GL_QUERY_COUNTER_BITS_ARB = $8864;
-  GL_CURRENT_QUERY_ARB = $8865;
-  GL_QUERY_RESULT_ARB = $8866;
-  GL_QUERY_RESULT_AVAILABLE_ARB = $8867;
-var
-  glGenQueriesARB: procedure(n: GLsizei; ids: PGLuint); extdecl;
-  glDeleteQueriesARB: procedure(n: GLsizei; const ids: PGLuint); extdecl;
-  glIsQueryARB: function(id: GLuint): GLboolean; extdecl;
-  glBeginQueryARB: procedure(target: GLenum; id: GLuint); extdecl;
-  glEndQueryARB: procedure(target: GLenum); extdecl;
-  glGetQueryivARB: procedure(target: GLenum; pname: GLenum; params: PGLint); extdecl;
-  glGetQueryObjectivARB: procedure(id: GLuint; pname: GLenum; params: PGLint); extdecl;
-  glGetQueryObjectuivARB: procedure(id: GLuint; pname: GLenum; params: PGLuint); extdecl;
-
-function Load_GL_ARB_occlusion_query: Boolean;
-
-//***** GL_ARB_shader_objects *****//
-const
-  GL_PROGRAM_OBJECT_ARB = $8B40;
-  GL_OBJECT_TYPE_ARB = $8B4E;
-  GL_OBJECT_SUBTYPE_ARB = $8B4F;
-  GL_OBJECT_DELETE_STATUS_ARB = $8B80;
-  GL_OBJECT_COMPILE_STATUS_ARB = $8B81;
-  GL_OBJECT_LINK_STATUS_ARB = $8B82;
-  GL_OBJECT_VALIDATE_STATUS_ARB = $8B83;
-  GL_OBJECT_INFO_LOG_LENGTH_ARB = $8B84;
-  GL_OBJECT_ATTACHED_OBJECTS_ARB = $8B85;
-  GL_OBJECT_ACTIVE_UNIFORMS_ARB = $8B86;
-  GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB = $8B87;
-  GL_OBJECT_SHADER_SOURCE_LENGTH_ARB = $8B88;
-  GL_SHADER_OBJECT_ARB = $8B48;
-  GL_FLOAT = $1406;
-  GL_FLOAT_VEC2_ARB = $8B50;
-  GL_FLOAT_VEC3_ARB = $8B51;
-  GL_FLOAT_VEC4_ARB = $8B52;
-  GL_INT = $1404;
-  GL_INT_VEC2_ARB = $8B53;
-  GL_INT_VEC3_ARB = $8B54;
-  GL_INT_VEC4_ARB = $8B55;
-  GL_BOOL_ARB = $8B56;
-  GL_BOOL_VEC2_ARB = $8B57;
-  GL_BOOL_VEC3_ARB = $8B58;
-  GL_BOOL_VEC4_ARB = $8B59;
-  GL_FLOAT_MAT2_ARB = $8B5A;
-  GL_FLOAT_MAT3_ARB = $8B5B;
-  GL_FLOAT_MAT4_ARB = $8B5C;
-var
-  glDeleteObjectARB: procedure(obj: GLhandleARB); extdecl;
-  glGetHandleARB: function(pname: GLenum): GLhandleARB; extdecl;
-  glDetachObjectARB: procedure(containerObj: GLhandleARB; attachedObj: GLhandleARB); extdecl;
-  glCreateShaderObjectARB: function(shaderType: GLenum): GLhandleARB; extdecl;
-  glShaderSourceARB: procedure(shaderObj: GLhandleARB; count: GLsizei; const _string: PGLvoid; const length: PGLint); extdecl;
-  glCompileShaderARB: procedure(shaderObj: GLhandleARB); extdecl;
-  glCreateProgramObjectARB: function(): GLhandleARB; extdecl;
-  glAttachObjectARB: procedure(containerObj: GLhandleARB; obj: GLhandleARB); extdecl;
-  glLinkProgramARB: procedure(programObj: GLhandleARB); extdecl;
-  glUseProgramObjectARB: procedure(programObj: GLhandleARB); extdecl;
-  glValidateProgramARB: procedure(programObj: GLhandleARB); extdecl;
-  glUniform1fARB: procedure(location: GLint; v0: GLfloat); extdecl;
-  glUniform2fARB: procedure(location: GLint; v0: GLfloat; v1: GLfloat); extdecl;
-  glUniform3fARB: procedure(location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat); extdecl;
-  glUniform4fARB: procedure(location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat; v3: GLfloat); extdecl;
-  glUniform1iARB: procedure(location: GLint; v0: GLint); extdecl;
-  glUniform2iARB: procedure(location: GLint; v0: GLint; v1: GLint); extdecl;
-  glUniform3iARB: procedure(location: GLint; v0: GLint; v1: GLint; v2: GLint); extdecl;
-  glUniform4iARB: procedure(location: GLint; v0: GLint; v1: GLint; v2: GLint; v3: GLint); extdecl;
-  glUniform1fvARB: procedure(location: GLint; count: GLsizei; value: PGLfloat); extdecl;
-  glUniform2fvARB: procedure(location: GLint; count: GLsizei; value: PGLfloat); extdecl;
-  glUniform3fvARB: procedure(location: GLint; count: GLsizei; value: PGLfloat); extdecl;
-  glUniform4fvARB: procedure(location: GLint; count: GLsizei; value: PGLfloat); extdecl;
-  glUniform1ivARB: procedure(location: GLint; count: GLsizei; value: PGLint); extdecl;
-  glUniform2ivARB: procedure(location: GLint; count: GLsizei; value: PGLint); extdecl;
-  glUniform3ivARB: procedure(location: GLint; count: GLsizei; value: PGLint); extdecl;
-  glUniform4ivARB: procedure(location: GLint; count: GLsizei; value: PGLint); extdecl;
-  glUniformMatrix2fvARB: procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); extdecl;
-  glUniformMatrix3fvARB: procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); extdecl;
-  glUniformMatrix4fvARB: procedure(location: GLint; count: GLsizei; transpose: GLboolean; value: PGLfloat); extdecl;
-  glGetObjectParameterfvARB: procedure(obj: GLhandleARB; pname: GLenum; params: PGLfloat); extdecl;
-  glGetObjectParameterivARB: procedure(obj: GLhandleARB; pname: GLenum; params: PGLint); extdecl;
-  glGetInfoLogARB: procedure(obj: GLhandleARB; maxLength: GLsizei; length: PGLsizei; infoLog: PGLcharARB); extdecl;
-  glGetAttachedObjectsARB: procedure(containerObj: GLhandleARB; maxCount: GLsizei; count: PGLsizei; obj: PGLhandleARB); extdecl;
-  glGetUniformLocationARB: function(programObj: GLhandleARB; const name: PGLcharARB): GLint; extdecl;
-  glGetActiveUniformARB: procedure(programObj: GLhandleARB; index: GLuint; maxLength: GLsizei; length: PGLsizei; size: PGLint; _type: PGLenum; name: PGLcharARB); extdecl;
-  glGetUniformfvARB: procedure(programObj: GLhandleARB; location: GLint; params: PGLfloat); extdecl;
-  glGetUniformivARB: procedure(programObj: GLhandleARB; location: GLint; params: PGLint); extdecl;
-  glGetShaderSourceARB: procedure(obj: GLhandleARB; maxLength: GLsizei; length: PGLsizei; source: PGLcharARB); extdecl;
-
-function Load_GL_ARB_shader_objects: Boolean;
-
-//***** GL_ARB_vertex_shader *****//
-const
-  GL_VERTEX_SHADER_ARB = $8B31;
-  GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB = $8B4A;
-  GL_MAX_VARYING_FLOATS_ARB = $8B4B;
-  // GL_MAX_VERTEX_ATTRIBS_ARB  { already defined }
-  // GL_MAX_TEXTURE_IMAGE_UNITS_ARB  { already defined }
-  GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB = $8B4C;
-  GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB = $8B4D;
-  // GL_MAX_TEXTURE_COORDS_ARB  { already defined }
-  // GL_VERTEX_PROGRAM_POINT_SIZE_ARB  { already defined }
-  // GL_VERTEX_PROGRAM_TWO_SIDE_ARB  { already defined }
-  // GL_OBJECT_TYPE_ARB  { already defined }
-  // GL_OBJECT_SUBTYPE_ARB  { already defined }
-  GL_OBJECT_ACTIVE_ATTRIBUTES_ARB = $8B89;
-  GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB = $8B8A;
-  // GL_SHADER_OBJECT_ARB  { already defined }
-  // GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB  { already defined }
-  // GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB  { already defined }
-  // GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB  { already defined }
-  // GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB  { already defined }
-  // GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB  { already defined }
-  // GL_CURRENT_VERTEX_ATTRIB_ARB  { already defined }
-  // GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB  { already defined }
-  // GL_FLOAT  { already defined }
-  // GL_FLOAT_VEC2_ARB  { already defined }
-  // GL_FLOAT_VEC3_ARB  { already defined }
-  // GL_FLOAT_VEC4_ARB  { already defined }
-  // GL_FLOAT_MAT2_ARB  { already defined }
-  // GL_FLOAT_MAT3_ARB  { already defined }
-  // GL_FLOAT_MAT4_ARB  { already defined }
-  // glVertexAttrib1fARB  { already defined }
-  // glVertexAttrib1sARB  { already defined }
-  // glVertexAttrib1dARB  { already defined }
-  // glVertexAttrib2fARB  { already defined }
-  // glVertexAttrib2sARB  { already defined }
-  // glVertexAttrib2dARB  { already defined }
-  // glVertexAttrib3fARB  { already defined }
-  // glVertexAttrib3sARB  { already defined }
-  // glVertexAttrib3dARB  { already defined }
-  // glVertexAttrib4fARB  { already defined }
-  // glVertexAttrib4sARB  { already defined }
-  // glVertexAttrib4dARB  { already defined }
-  // glVertexAttrib4NubARB  { already defined }
-  // glVertexAttrib1fvARB  { already defined }
-  // glVertexAttrib1svARB  { already defined }
-  // glVertexAttrib1dvARB  { already defined }
-  // glVertexAttrib2fvARB  { already defined }
-  // glVertexAttrib2svARB  { already defined }
-  // glVertexAttrib2dvARB  { already defined }
-  // glVertexAttrib3fvARB  { already defined }
-  // glVertexAttrib3svARB  { already defined }
-  // glVertexAttrib3dvARB  { already defined }
-  // glVertexAttrib4fvARB  { already defined }
-  // glVertexAttrib4svARB  { already defined }
-  // glVertexAttrib4dvARB  { already defined }
-  // glVertexAttrib4ivARB  { already defined }
-  // glVertexAttrib4bvARB  { already defined }
-  // glVertexAttrib4ubvARB  { already defined }
-  // glVertexAttrib4usvARB  { already defined }
-  // glVertexAttrib4uivARB  { already defined }
-  // glVertexAttrib4NbvARB  { already defined }
-  // glVertexAttrib4NsvARB  { already defined }
-  // glVertexAttrib4NivARB  { already defined }
-  // glVertexAttrib4NubvARB  { already defined }
-  // glVertexAttrib4NusvARB  { already defined }
-  // glVertexAttrib4NuivARB  { already defined }
-  // glVertexAttribPointerARB  { already defined }
-  // glEnableVertexAttribArrayARB  { already defined }
-  // glDisableVertexAttribArrayARB  { already defined }
-var
-  glBindAttribLocationARB: procedure(programObj: GLhandleARB; index: GLuint; const name: PGLcharARB); extdecl;
-  glGetActiveAttribARB: procedure(programObj: GLhandleARB; index: GLuint; maxLength: GLsizei; length: PGLsizei; size: PGLint; _type: PGLenum; name: PGLcharARB); extdecl;
-  glGetAttribLocationARB: function(programObj: GLhandleARB; const name: PGLcharARB): GLint; extdecl;
-  // glGetVertexAttribdvARB  { already defined }
-  // glGetVertexAttribfvARB  { already defined }
-  // glGetVertexAttribivARB  { already defined }
-  // glGetVertexAttribPointervARB  { already defined }
-
-function Load_GL_ARB_vertex_shader: Boolean;
-
-//***** GL_ARB_fragment_shader *****//
-const
-  GL_FRAGMENT_SHADER_ARB = $8B30;
-  GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB = $8B49;
-  // GL_MAX_TEXTURE_COORDS_ARB  { already defined }
-  // GL_MAX_TEXTURE_IMAGE_UNITS_ARB  { already defined }
-  // GL_OBJECT_TYPE_ARB  { already defined }
-  // GL_OBJECT_SUBTYPE_ARB  { already defined }
-  // GL_SHADER_OBJECT_ARB  { already defined }
-
-function Load_GL_ARB_fragment_shader: Boolean;
-
-//***** GL_ARB_shading_language_100 *****//
-
-function Load_GL_ARB_shading_language_100: Boolean;
-
-//***** GL_ARB_texture_non_power_of_two *****//
-
-function Load_GL_ARB_texture_non_power_of_two: Boolean;
-
-//***** GL_ARB_point_sprite *****//
-const
-  GL_POINT_SPRITE_ARB = $8861;
-  GL_COORD_REPLACE_ARB = $8862;
-
-function Load_GL_ARB_point_sprite: Boolean;
-
-//***** GL_EXT_depth_bounds_test *****//
-const
-  GL_DEPTH_BOUNDS_TEST_EXT = $8890;
-  GL_DEPTH_BOUNDS_EXT = $8891;
-var
-  glDepthBoundsEXT: procedure(zmin: GLclampd; zmax: GLclampd); extdecl;
-
-function Load_GL_EXT_depth_bounds_test: Boolean;
-
-//***** GL_EXT_texture_mirror_clamp *****//
-const
-  GL_MIRROR_CLAMP_EXT = $8742;
-  GL_MIRROR_CLAMP_TO_EDGE_EXT = $8743;
-  GL_MIRROR_CLAMP_TO_BORDER_EXT = $8912;
-
-function Load_GL_EXT_texture_mirror_clamp: Boolean;
-
-//***** GL_EXT_blend_equation_separate *****//
-const
-  GL_BLEND_EQUATION_RGB_EXT = $8009;
-  GL_BLEND_EQUATION_ALPHA_EXT = $883D;
-var
-  glBlendEquationSeparateEXT: procedure(modeRGB: GLenum; modeAlpha: GLenum); extdecl;
-
-function Load_GL_EXT_blend_equation_separate: Boolean;
-
-//***** GL_MESA_pack_invert *****//
-const
-  GL_PACK_INVERT_MESA = $8758;
-
-function Load_GL_MESA_pack_invert: Boolean;
-
-//***** GL_MESA_ycbcr_texture *****//
-const
-  GL_YCBCR_MESA = $8757;
-  GL_UNSIGNED_SHORT_8_8_MESA = $85BA;
-  GL_UNSIGNED_SHORT_8_8_REV_MESA = $85BB;
-
-function Load_GL_MESA_ycbcr_texture: Boolean;
-
-//***** GL_ARB_fragment_program_shadow *****//
-
-function Load_GL_ARB_fragment_program_shadow: Boolean;
-
-//***** GL_NV_fragment_program_option *****//
-
-function Load_GL_NV_fragment_program_option: Boolean;
-
-//***** GL_EXT_pixel_buffer_object *****//
-const
-  GL_PIXEL_PACK_BUFFER_EXT = $88EB;
-  GL_PIXEL_UNPACK_BUFFER_EXT = $88EC;
-  GL_PIXEL_PACK_BUFFER_BINDING_EXT = $88ED;
-  GL_PIXEL_UNPACK_BUFFER_BINDING_EXT = $88EF;
-
-function Load_GL_EXT_pixel_buffer_object: Boolean;
-
-//***** GL_NV_fragment_program2 *****//
-const
-  GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV = $88F4;
-  GL_MAX_PROGRAM_CALL_DEPTH_NV = $88F5;
-  GL_MAX_PROGRAM_IF_DEPTH_NV = $88F6;
-  GL_MAX_PROGRAM_LOOP_DEPTH_NV = $88F7;
-  GL_MAX_PROGRAM_LOOP_COUNT_NV = $88F8;
-
-function Load_GL_NV_fragment_program2: Boolean;
-
-//***** GL_NV_vertex_program2_option *****//
-  // GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV  { already defined }
-  // GL_MAX_PROGRAM_CALL_DEPTH_NV  { already defined }
-
-function Load_GL_NV_vertex_program2_option: Boolean;
-
-//***** GL_NV_vertex_program3 *****//
-  // GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB  { already defined }
-
-function Load_GL_NV_vertex_program3: Boolean;
-
-//***** GL_ARB_draw_buffers *****//
-const
-  GL_MAX_DRAW_BUFFERS_ARB = $8824;
-  GL_DRAW_BUFFER0_ARB = $8825;
-  GL_DRAW_BUFFER1_ARB = $8826;
-  GL_DRAW_BUFFER2_ARB = $8827;
-  GL_DRAW_BUFFER3_ARB = $8828;
-  GL_DRAW_BUFFER4_ARB = $8829;
-  GL_DRAW_BUFFER5_ARB = $882A;
-  GL_DRAW_BUFFER6_ARB = $882B;
-  GL_DRAW_BUFFER7_ARB = $882C;
-  GL_DRAW_BUFFER8_ARB = $882D;
-  GL_DRAW_BUFFER9_ARB = $882E;
-  GL_DRAW_BUFFER10_ARB = $882F;
-  GL_DRAW_BUFFER11_ARB = $8830;
-  GL_DRAW_BUFFER12_ARB = $8831;
-  GL_DRAW_BUFFER13_ARB = $8832;
-  GL_DRAW_BUFFER14_ARB = $8833;
-  GL_DRAW_BUFFER15_ARB = $8834;
-var
-  glDrawBuffersARB: procedure(n: GLsizei; const bufs: PGLenum); extdecl;
-
-function Load_GL_ARB_draw_buffers: Boolean;
-
-//***** GL_ARB_texture_rectangle *****//
-const
-  GL_TEXTURE_RECTANGLE_ARB = $84F5;
-  GL_TEXTURE_BINDING_RECTANGLE_ARB = $84F6;
-  GL_PROXY_TEXTURE_RECTANGLE_ARB = $84F7;
-  GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB = $84F8;
-
-function Load_GL_ARB_texture_rectangle: Boolean;
-
-//***** GL_ARB_color_buffer_float *****//
-const
-  GL_RGBA_FLOAT_MODE_ARB = $8820;
-  GL_CLAMP_VERTEX_COLOR_ARB = $891A;
-  GL_CLAMP_FRAGMENT_COLOR_ARB = $891B;
-  GL_CLAMP_READ_COLOR_ARB = $891C;
-  GL_FIXED_ONLY_ARB = $891D;
-  WGL_TYPE_RGBA_FLOAT_ARB = $21A0;
-var
-  glClampColorARB: procedure(target: GLenum; clamp: GLenum); extdecl;
-
-function Load_GL_ARB_color_buffer_float: Boolean;
-
-//***** GL_ARB_half_float_pixel *****//
-const
-  GL_HALF_FLOAT_ARB = $140B;
-
-function Load_GL_ARB_half_float_pixel: Boolean;
-
-//***** GL_ARB_texture_float *****//
-const
-  GL_TEXTURE_RED_TYPE_ARB = $8C10;
-  GL_TEXTURE_GREEN_TYPE_ARB = $8C11;
-  GL_TEXTURE_BLUE_TYPE_ARB = $8C12;
-  GL_TEXTURE_ALPHA_TYPE_ARB = $8C13;
-  GL_TEXTURE_LUMINANCE_TYPE_ARB = $8C14;
-  GL_TEXTURE_INTENSITY_TYPE_ARB = $8C15;
-  GL_TEXTURE_DEPTH_TYPE_ARB = $8C16;
-  GL_UNSIGNED_NORMALIZED_ARB = $8C17;
-  GL_RGBA32F_ARB = $8814;
-  GL_RGB32F_ARB = $8815;
-  GL_ALPHA32F_ARB = $8816;
-  GL_INTENSITY32F_ARB = $8817;
-  GL_LUMINANCE32F_ARB = $8818;
-  GL_LUMINANCE_ALPHA32F_ARB = $8819;
-  GL_RGBA16F_ARB = $881A;
-  GL_RGB16F_ARB = $881B;
-  GL_ALPHA16F_ARB = $881C;
-  GL_INTENSITY16F_ARB = $881D;
-  GL_LUMINANCE16F_ARB = $881E;
-  GL_LUMINANCE_ALPHA16F_ARB = $881F;
-
-function Load_GL_ARB_texture_float: Boolean;
-
-//***** GL_EXT_texture_compression_dxt1 *****//
-  // GL_COMPRESSED_RGB_S3TC_DXT1_EXT  { already defined }
-  // GL_COMPRESSED_RGBA_S3TC_DXT1_EXT  { already defined }
-
-function Load_GL_EXT_texture_compression_dxt1: Boolean;
-
-//***** GL_ARB_pixel_buffer_object *****//
-const
-  GL_PIXEL_PACK_BUFFER_ARB = $88EB;
-  GL_PIXEL_UNPACK_BUFFER_ARB = $88EC;
-  GL_PIXEL_PACK_BUFFER_BINDING_ARB = $88ED;
-  GL_PIXEL_UNPACK_BUFFER_BINDING_ARB = $88EF;
-
-function Load_GL_ARB_pixel_buffer_object: Boolean;
-
-//***** GL_EXT_framebuffer_object *****//
-const
-  GL_FRAMEBUFFER_EXT = $8D40;
-  GL_RENDERBUFFER_EXT = $8D41;
-  GL_STENCIL_INDEX_EXT = $8D45;
-  GL_STENCIL_INDEX1_EXT = $8D46;
-  GL_STENCIL_INDEX4_EXT = $8D47;
-  GL_STENCIL_INDEX8_EXT = $8D48;
-  GL_STENCIL_INDEX16_EXT = $8D49;
-  GL_RENDERBUFFER_WIDTH_EXT = $8D42;
-  GL_RENDERBUFFER_HEIGHT_EXT = $8D43;
-  GL_RENDERBUFFER_INTERNAL_FORMAT_EXT = $8D44;
-  GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT = $8CD0;
-  GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT = $8CD1;
-  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT = $8CD2;
-  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT = $8CD3;
-  GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT = $8CD4;
-  GL_COLOR_ATTACHMENT0_EXT = $8CE0;
-  GL_COLOR_ATTACHMENT1_EXT = $8CE1;
-  GL_COLOR_ATTACHMENT2_EXT = $8CE2;
-  GL_COLOR_ATTACHMENT3_EXT = $8CE3;
-  GL_COLOR_ATTACHMENT4_EXT = $8CE4;
-  GL_COLOR_ATTACHMENT5_EXT = $8CE5;
-  GL_COLOR_ATTACHMENT6_EXT = $8CE6;
-  GL_COLOR_ATTACHMENT7_EXT = $8CE7;
-  GL_COLOR_ATTACHMENT8_EXT = $8CE8;
-  GL_COLOR_ATTACHMENT9_EXT = $8CE9;
-  GL_COLOR_ATTACHMENT10_EXT = $8CEA;
-  GL_COLOR_ATTACHMENT11_EXT = $8CEB;
-  GL_COLOR_ATTACHMENT12_EXT = $8CEC;
-  GL_COLOR_ATTACHMENT13_EXT = $8CED;
-  GL_COLOR_ATTACHMENT14_EXT = $8CEE;
-  GL_COLOR_ATTACHMENT15_EXT = $8CEF;
-  GL_DEPTH_ATTACHMENT_EXT = $8D00;
-  GL_STENCIL_ATTACHMENT_EXT = $8D20;
-  GL_FRAMEBUFFER_COMPLETE_EXT = $8CD5;
-  GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT = $8CD6;
-  GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT = $8CD7;
-  GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT = $8CD8;
-  GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT = $8CD9;
-  GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT = $8CDA;
-  GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT = $8CDB;
-  GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT = $8CDC;
-  GL_FRAMEBUFFER_UNSUPPORTED_EXT = $8CDD;
-  GL_FRAMEBUFFER_STATUS_ERROR_EXT = $8CDE;
-  GL_FRAMEBUFFER_BINDING_EXT = $8CA6;
-  GL_RENDERBUFFER_BINDING_EXT = $8CA7;
-  GL_MAX_COLOR_ATTACHMENTS_EXT = $8CDF;
-  GL_MAX_RENDERBUFFER_SIZE_EXT = $84E8;
-  GL_INVALID_FRAMEBUFFER_OPERATION_EXT = $0506;
-var
-  glIsRenderbufferEXT: function(renderbuffer: GLuint): GLboolean; extdecl;
-  glBindRenderbufferEXT: procedure(target: GLenum; renderbuffer: GLuint); extdecl;
-  glDeleteRenderbuffersEXT: procedure(n: GLsizei; const renderbuffers: PGLuint); extdecl;
-  glGenRenderbuffersEXT: procedure(n: GLsizei; renderbuffers: PGLuint); extdecl;
-  glRenderbufferStorageEXT: procedure(target: GLenum; internalformat: GLenum; width: GLsizei; height: GLsizei); extdecl;
-  glGetRenderbufferParameterivEXT: procedure(target: GLenum; pname: GLenum; params: PGLint); extdecl;
-  glIsFramebufferEXT: function(framebuffer: GLuint): GLboolean; extdecl;
-  glBindFramebufferEXT: procedure(target: GLenum; framebuffer: GLuint); extdecl;
-  glDeleteFramebuffersEXT: procedure(n: GLsizei; const framebuffers: PGLuint); extdecl;
-  glGenFramebuffersEXT: procedure(n: GLsizei; framebuffers: PGLuint); extdecl;
-  glCheckFramebufferStatusEXT: function(target: GLenum): GLenum; extdecl;
-  glFramebufferTexture1DEXT: procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); extdecl;
-  glFramebufferTexture2DEXT: procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint); extdecl;
-  glFramebufferTexture3DEXT: procedure(target: GLenum; attachment: GLenum; textarget: GLenum; texture: GLuint; level: GLint; zoffset: GLint); extdecl;
-  glFramebufferRenderbufferEXT: procedure(target: GLenum; attachment: GLenum; renderbuffertarget: GLenum; renderbuffer: GLuint); extdecl;
-  glGetFramebufferAttachmentParameterivEXT: procedure(target: GLenum; attachment: GLenum; pname: GLenum; params: PGLint); extdecl;
-  glGenerateMipmapEXT: procedure(target: GLenum); extdecl;
-
-function Load_GL_EXT_framebuffer_object: Boolean;
-
-//***** GL_version_1_4 *****//
-const
-  GL_BLEND_DST_RGB = $80C8;
-  GL_BLEND_SRC_RGB = $80C9;
-  GL_BLEND_DST_ALPHA = $80CA;
-  GL_BLEND_SRC_ALPHA = $80CB;
-  GL_POINT_SIZE_MIN = $8126;
-  GL_POINT_SIZE_MAX = $8127;
-  GL_POINT_FADE_THRESHOLD_SIZE = $8128;
-  GL_POINT_DISTANCE_ATTENUATION = $8129;
-  GL_GENERATE_MIPMAP = $8191;
-  GL_GENERATE_MIPMAP_HINT = $8192;
-  GL_DEPTH_COMPONENT16 = $81A5;
-  GL_DEPTH_COMPONENT24 = $81A6;
-  GL_DEPTH_COMPONENT32 = $81A7;
-  GL_MIRRORED_REPEAT = $8370;
-  GL_FOG_COORDINATE_SOURCE = $8450;
-  GL_FOG_COORDINATE = $8451;
-  GL_FRAGMENT_DEPTH = $8452;
-  GL_CURRENT_FOG_COORDINATE = $8453;
-  GL_FOG_COORDINATE_ARRAY_TYPE = $8454;
-  GL_FOG_COORDINATE_ARRAY_STRIDE = $8455;
-  GL_FOG_COORDINATE_ARRAY_POINTER = $8456;
-  GL_FOG_COORDINATE_ARRAY = $8457;
-  GL_COLOR_SUM = $8458;
-  GL_CURRENT_SECONDARY_COLOR = $8459;
-  GL_SECONDARY_COLOR_ARRAY_SIZE = $845A;
-  GL_SECONDARY_COLOR_ARRAY_TYPE = $845B;
-  GL_SECONDARY_COLOR_ARRAY_STRIDE = $845C;
-  GL_SECONDARY_COLOR_ARRAY_POINTER = $845D;
-  GL_SECONDARY_COLOR_ARRAY = $845E;
-  GL_MAX_TEXTURE_LOD_BIAS = $84FD;
-  GL_TEXTURE_FILTER_CONTROL = $8500;
-  GL_TEXTURE_LOD_BIAS = $8501;
-  GL_INCR_WRAP = $8507;
-  GL_DECR_WRAP = $8508;
-  GL_TEXTURE_DEPTH_SIZE = $884A;
-  GL_DEPTH_TEXTURE_MODE = $884B;
-  GL_TEXTURE_COMPARE_MODE = $884C;
-  GL_TEXTURE_COMPARE_FUNC = $884D;
-  GL_COMPARE_R_TO_TEXTURE = $884E;
-var
-  glBlendFuncSeparate: procedure(sfactorRGB: GLenum; dfactorRGB: GLenum; sfactorAlpha: GLenum; dfactorAlpha: GLenum); extdecl;
-  glFogCoordf: procedure(coord: GLfloat); extdecl;
-  glFogCoordfv: procedure(const coord: PGLfloat); extdecl;
-  glFogCoordd: procedure(coord: GLdouble); extdecl;
-  glFogCoorddv: procedure(const coord: PGLdouble); extdecl;
-  glFogCoordPointer: procedure(_type: GLenum; stride: GLsizei; const pointer: PGLvoid); extdecl;
-  glMultiDrawArrays: procedure(mode: GLenum; first: PGLint; count: PGLsizei; primcount: GLsizei); extdecl;
-  glMultiDrawElements: procedure(mode: GLenum; const count: PGLsizei; _type: GLenum; const indices: PGLvoid; primcount: GLsizei); extdecl;
-  glPointParameterf: procedure(pname: GLenum; param: GLfloat); extdecl;
-  glPointParameterfv: procedure(pname: GLenum; const params: PGLfloat); extdecl;
-  glPointParameteri: procedure(pname: GLenum; param: GLint); extdecl;
-  glPointParameteriv: procedure(pname: GLenum; const params: PGLint); extdecl;
-  glSecondaryColor3b: procedure(red: GLbyte; green: GLbyte; blue: GLbyte); extdecl;
-  glSecondaryColor3bv: procedure(const v: PGLbyte); extdecl;
-  glSecondaryColor3d: procedure(red: GLdouble; green: GLdouble; blue: GLdouble); extdecl;
-  glSecondaryColor3dv: procedure(const v: PGLdouble); extdecl;
-  glSecondaryColor3f: procedure(red: GLfloat; green: GLfloat; blue: GLfloat); extdecl;
-  glSecondaryColor3fv: procedure(const v: PGLfloat); extdecl;
-  glSecondaryColor3i: procedure(red: GLint; green: GLint; blue: GLint); extdecl;
-  glSecondaryColor3iv: procedure(const v: PGLint); extdecl;
-  glSecondaryColor3s: procedure(red: GLshort; green: GLshort; blue: GLshort); extdecl;
-  glSecondaryColor3sv: procedure(const v: PGLshort); extdecl;
-  glSecondaryColor3ub: procedure(red: GLubyte; green: GLubyte; blue: GLubyte); extdecl;
-  glSecondaryColor3ubv: procedure(const v: PGLubyte); extdecl;
-  glSecondaryColor3ui: procedure(red: GLuint; green: GLuint; blue: GLuint); extdecl;
-  glSecondaryColor3uiv: procedure(const v: PGLuint); extdecl;
-  glSecondaryColor3us: procedure(red: GLushort; green: GLushort; blue: GLushort); extdecl;
-  glSecondaryColor3usv: procedure(const v: PGLushort); extdecl;
-  glSecondaryColorPointer: procedure(size: GLint; _type: GLenum; stride: GLsizei; const pointer: PGLvoid); extdecl;
-  glWindowPos2d: procedure(x: GLdouble; y: GLdouble); extdecl;
-  glWindowPos2dv: procedure(const v: PGLdouble); extdecl;
-  glWindowPos2f: procedure(x: GLfloat; y: GLfloat); extdecl;
-  glWindowPos2fv: procedure(const v: PGLfloat); extdecl;
-  glWindowPos2i: procedure(x: GLint; y: GLint); extdecl;
-  glWindowPos2iv: procedure(const v: PGLint); extdecl;
-  glWindowPos2s: procedure(x: GLshort; y: GLshort); extdecl;
-  glWindowPos2sv: procedure(const v: PGLshort); extdecl;
-  glWindowPos3d: procedure(x: GLdouble; y: GLdouble; z: GLdouble); extdecl;
-  glWindowPos3dv: procedure(const v: PGLdouble); extdecl;
-  glWindowPos3f: procedure(x: GLfloat; y: GLfloat; z: GLfloat); extdecl;
-  glWindowPos3fv: procedure(const v: PGLfloat); extdecl;
-  glWindowPos3i: procedure(x: GLint; y: GLint; z: GLint); extdecl;
-  glWindowPos3iv: procedure(const v: PGLint); extdecl;
-  glWindowPos3s: procedure(x: GLshort; y: GLshort; z: GLshort); extdecl;
-  glWindowPos3sv: procedure(const v: PGLshort); extdecl;
-
-function Load_GL_version_1_4: Boolean;
-
-//***** GL_version_1_5 *****//
-const
-  GL_BUFFER_SIZE = $8764;
-  GL_BUFFER_USAGE = $8765;
-  GL_QUERY_COUNTER_BITS = $8864;
-  GL_CURRENT_QUERY = $8865;
-  GL_QUERY_RESULT = $8866;
-  GL_QUERY_RESULT_AVAILABLE = $8867;
-  GL_ARRAY_BUFFER = $8892;
-  GL_ELEMENT_ARRAY_BUFFER = $8893;
-  GL_ARRAY_BUFFER_BINDING = $8894;
-  GL_ELEMENT_ARRAY_BUFFER_BINDING = $8895;
-  GL_VERTEX_ARRAY_BUFFER_BINDING = $8896;
-  GL_NORMAL_ARRAY_BUFFER_BINDING = $8897;
-  GL_COLOR_ARRAY_BUFFER_BINDING = $8898;
-  GL_INDEX_ARRAY_BUFFER_BINDING = $8899;
-  GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING = $889A;
-  GL_EDGE_FLAG_ARRAY_BUFFER_BINDING = $889B;
-  GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING = $889C;
-  GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING = $889D;
-  GL_WEIGHT_ARRAY_BUFFER_BINDING = $889E;
-  GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = $889F;
-  GL_READ_ONLY = $88B8;
-  GL_WRITE_ONLY = $88B9;
-  GL_READ_WRITE = $88BA;
-  GL_BUFFER_ACCESS = $88BB;
-  GL_BUFFER_MAPPED = $88BC;
-  GL_BUFFER_MAP_POINTER = $88BD;
-  GL_STREAM_DRAW = $88E0;
-  GL_STREAM_READ = $88E1;
-  GL_STREAM_COPY = $88E2;
-  GL_STATIC_DRAW = $88E4;
-  GL_STATIC_READ = $88E5;
-  GL_STATIC_COPY = $88E6;
-  GL_DYNAMIC_DRAW = $88E8;
-  GL_DYNAMIC_READ = $88E9;
-  GL_DYNAMIC_COPY = $88EA;
-  GL_SAMPLES_PASSED = $8914;
-  GL_FOG_COORD_SRC = $8450;
-  GL_FOG_COORD = $8451;
-  GL_CURRENT_FOG_COORD = $8453;
-  GL_FOG_COORD_ARRAY_TYPE = $8454;
-  GL_FOG_COORD_ARRAY_STRIDE = $8455;
-  GL_FOG_COORD_ARRAY_POINTER = $8456;
-  GL_FOG_COORD_ARRAY = $8457;
-  GL_FOG_COORD_ARRAY_BUFFER_BINDING = $889D;
-  GL_SRC0_RGB = $8580;
-  GL_SRC1_RGB = $8581;
-  GL_SRC2_RGB = $8582;
-  GL_SRC0_ALPHA = $8588;
-  GL_SRC1_ALPHA = $8589;
-  GL_SRC2_ALPHA = $858A;
-var
-  glGenQueries: procedure(n: GLsizei; ids: PGLuint); extdecl;
-  glDeleteQueries: procedure(n: GLsizei; const ids: PGLuint); extdecl;
-  glIsQuery: function(id: GLuint): GLboolean; extdecl;
-  glBeginQuery: procedure(target: GLenum; id: GLuint); extdecl;
-  glEndQuery: procedure(target: GLenum); extdecl;
-  glGetQueryiv: procedure(target: GLenum; pname: GLenum; params: PGLint); extdecl;
-  glGetQueryObjectiv: procedure(id: GLuint; pname: GLenum; params: PGLint); extdecl;
-  glGetQueryObjectuiv: procedure(id: GLuint; pname: GLenum; params: PGLuint); extdecl;
-  glBindBuffer: procedure(target: GLenum; buffer: GLuint); extdecl;
-  glDeleteBuffers: procedure(n: GLsizei; const buffers: PGLuint); extdecl;
-  glGenBuffers: procedure(n: GLsizei; buffers: PGLuint); extdecl;
-  glIsBuffer: function(buffer: GLuint): GLboolean; extdecl;
-  glBufferData: procedure(target: GLenum; size: GLsizeiptr; const data: PGLvoid; usage: GLenum); extdecl;
-  glBufferSubData: procedure(target: GLenum; offset: GLintptr; size: GLsizeiptr; const data: PGLvoid); extdecl;
-  glGetBufferSubData: procedure(target: GLenum; offset: GLintptr; size: GLsizeiptr; data: PGLvoid); extdecl;
-  glMapBuffer: function(target: GLenum; access: GLenum): PGLvoid; extdecl;
-  glUnmapBuffer: function(target: GLenum): GLboolean; extdecl;
-  glGetBufferParameteriv: procedure(target: GLenum; pname: GLenum; params: PGLint); extdecl;
-  glGetBufferPointerv: procedure(target: GLenum; pname: GLenum; params: PGLvoid); extdecl;
-
-function Load_GL_version_1_5: Boolean;
-
-//***** GL_version_2_0 *****//
-const
-  GL_BLEND_EQUATION_RGB = $8009;
-  GL_VERTEX_ATTRIB_ARRAY_ENABLED = $8622;
-  GL_VERTEX_ATTRIB_ARRAY_SIZE = $8623;
-  GL_VERTEX_ATTRIB_ARRAY_STRIDE = $8624;
-  GL_VERTEX_ATTRIB_ARRAY_TYPE = $8625;
-  GL_CURRENT_VERTEX_ATTRIB = $8626;
-  GL_VERTEX_PROGRAM_POINT_SIZE = $8642;
-  GL_VERTEX_PROGRAM_TWO_SIDE = $8643;
-  GL_VERTEX_ATTRIB_ARRAY_POINTER = $8645;
-  GL_STENCIL_BACK_FUNC = $8800;
-  GL_STENCIL_BACK_FAIL = $8801;
-  GL_STENCIL_BACK_PASS_DEPTH_FAIL = $8802;
-  GL_STENCIL_BACK_PASS_DEPTH_PASS = $8803;
-  GL_MAX_DRAW_BUFFERS = $8824;
-  GL_DRAW_BUFFER0 = $8825;
-  GL_DRAW_BUFFER1 = $8826;
-  GL_DRAW_BUFFER2 = $8827;
-  GL_DRAW_BUFFER3 = $8828;
-  GL_DRAW_BUFFER4 = $8829;
-  GL_DRAW_BUFFER5 = $882A;
-  GL_DRAW_BUFFER6 = $882B;
-  GL_DRAW_BUFFER7 = $882C;
-  GL_DRAW_BUFFER8 = $882D;
-  GL_DRAW_BUFFER9 = $882E;
-  GL_DRAW_BUFFER10 = $882F;
-  GL_DRAW_BUFFER11 = $8830;
-  GL_DRAW_BUFFER12 = $8831;
-  GL_DRAW_BUFFER13 = $8832;
-  GL_DRAW_BUFFER14 = $8833;
-  GL_DRAW_BUFFER15 = $8834;
-  GL_BLEND_EQUATION_ALPHA = $883D;
-  GL_POINT_SPRITE = $8861;
-  GL_COORD_REPLACE = $8862;
-  GL_MAX_VERTEX_ATTRIBS = $8869;
-  GL_VERTEX_ATTRIB_ARRAY_NORMALIZED = $886A;
-  GL_MAX_TEXTURE_COORDS = $8871;
-  GL_MAX_TEXTURE_IMAGE_UNITS = $8872;
-  GL_FRAGMENT_SHADER = $8B30;
-  GL_VERTEX_SHADER = $8B31;
-  GL_MAX_FRAGMENT_UNIFORM_COMPONENTS = $8B49;
-  GL_MAX_VERTEX_UNIFORM_COMPONENTS = $8B4A;
-  GL_MAX_VARYING_FLOATS = $8B4B;
-  GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS = $8B4C;
-  GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS = $8B4D;
-  GL_SHADER_TYPE = $8B4F;
-  GL_FLOAT_VEC2 = $8B50;
-  GL_FLOAT_VEC3 = $8B51;
-  GL_FLOAT_VEC4 = $8B52;
-  GL_INT_VEC2 = $8B53;
-  GL_INT_VEC3 = $8B54;
-  GL_INT_VEC4 = $8B55;
-  GL_BOOL = $8B56;
-  GL_BOOL_VEC2 = $8B57;
-  GL_BOOL_VEC3 = $8B58;
-  GL_BOOL_VEC4 = $8B59;
-  GL_FLOAT_MAT2 = $8B5A;
-  GL_FLOAT_MAT3 = $8B5B;
-  GL_FLOAT_MAT4 = $8B5C;
-  GL_SAMPLER_1D = $8B5D;
-  GL_SAMPLER_2D = $8B5E;
-  GL_SAMPLER_3D = $8B5F;
-  GL_SAMPLER_CUBE = $8B60;
-  GL_SAMPLER_1D_SHADOW = $8B61;
-  GL_SAMPLER_2D_SHADOW = $8B62;
-  GL_DELETE_STATUS = $8B80;
-  GL_COMPILE_STATUS = $8B81;
-  GL_LINK_STATUS = $8B82;
-  GL_VALIDATE_STATUS = $8B83;
-  GL_INFO_LOG_LENGTH = $8B84;
-  GL_ATTACHED_SHADERS = $8B85;
-  GL_ACTIVE_UNIFORMS = $8B86;
-  GL_ACTIVE_UNIFORM_MAX_LENGTH = $8B87;
-  GL_SHADER_SOURCE_LENGTH = $8B88;
-  GL_ACTIVE_ATTRIBUTES = $8B89;
-  GL_ACTIVE_ATTRIBUTE_MAX_LENGTH = $8B8A;
-  GL_FRAGMENT_SHADER_DERIVATIVE_HINT = $8B8B;
-  GL_SHADING_LANGUAGE_VERSION = $8B8C;
-  GL_CURRENT_PROGRAM = $8B8D;
-  GL_POINT_SPRITE_COORD_ORIGIN = $8CA0;
-  GL_LOWER_LEFT = $8CA1;
-  GL_UPPER_LEFT = $8CA2;
-  GL_STENCIL_BACK_REF = $8CA3;
-  GL_STENCIL_BACK_VALUE_MASK = $8CA4;
-  GL_STENCIL_BACK_WRITEMASK = $8CA5;
-var
-  glBlendEquationSeparate: procedure(modeRGB: GLenum; modeAlpha: GLenum); extdecl;
-  glDrawBuffers: procedure(n: GLsizei; const bufs: PGLenum); extdecl;
-  glStencilOpSeparate: procedure(face: GLenum; sfail: GLenum; dpfail: GLenum; dppass: GLenum); extdecl;
-  glStencilFuncSeparate: procedure(frontfunc: GLenum; backfunc: GLenum; ref: GLint; mask: GLuint); extdecl;
-  glStencilMaskSeparate: procedure(face: GLenum; mask: GLuint); extdecl;
-  glAttachShader: procedure(_program: GLuint; shader: GLuint); extdecl;
-  glBindAttribLocation: procedure(_program: GLuint; index: GLuint; const name: PGLchar); extdecl;
-  glCompileShader: procedure(shader: GLuint); extdecl;
-  glCreateProgram: function(): GLuint; extdecl;
-  glCreateShader: function(_type: GLenum): GLuint; extdecl;
-  glDeleteProgram: procedure(_program: GLuint); extdecl;
-  glDeleteShader: procedure(shader: GLuint); extdecl;
-  glDetachShader: procedure(_program: GLuint; shader: GLuint); extdecl;
-  glDisableVertexAttribArray: procedure(index: GLuint); extdecl;
-  glEnableVertexAttribArray: procedure(index: GLuint); extdecl;
-  glGetActiveAttrib: procedure(_program: GLuint; index: GLuint; bufSize: GLsizei; length: PGLsizei; size: PGLint; _type: PGLenum; name: PGLchar); extdecl;
-  glGetActiveUniform: procedure(_program: GLuint; index: GLuint; bufSize: GLsizei; length: PGLsizei; size: PGLint; _type: PGLenum; name: PGLchar); extdecl;
-  glGetAttachedShaders: procedure(_program: GLuint; maxCount: GLsizei; count: PGLsizei; obj: PGLuint); extdecl;
-  glGetAttribLocation: function(_program: GLuint; const name: PGLchar): GLint; extdecl;
-  glGetProgramiv: procedure(_program: GLuint; pname: GLenum; params: PGLint); extdecl;
-  glGetProgramInfoLog: procedure(_program: GLuint; bufSize: GLsizei; length: PGLsizei; infoLog: PGLchar); extdecl;
-  glGetShaderiv: procedure(shader: GLuint; pname: GLenum; params: PGLint); extdecl;
-  glGetShaderInfoLog: procedure(shader: GLuint; bufSize: GLsizei; length: PGLsizei; infoLog: PGLchar); extdecl;
-  glGetShaderSource: procedure(shader: GLuint; bufSize: GLsizei; length: PGLsizei; source: PGLchar); extdecl;
-  glGetUniformLocation: function(_program: GLuint; const name: PGLchar): GLint; extdecl;
-  glGetUniformfv: procedure(_program: GLuint; location: GLint; params: PGLfloat); extdecl;
-  glGetUniformiv: procedure(_program: GLuint; location: GLint; params: PGLint); extdecl;
-  glGetVertexAttribdv: procedure(index: GLuint; pname: GLenum; params: PGLdouble); extdecl;
-  glGetVertexAttribfv: procedure(index: GLuint; pname: GLenum; params: PGLfloat); extdecl;
-  glGetVertexAttribiv: procedure(index: GLuint; pname: GLenum; params: PGLint); extdecl;
-  glGetVertexAttribPointerv: procedure(index: GLuint; pname: GLenum; pointer: PGLvoid); extdecl;
-  glIsProgram: function(_program: GLuint): GLboolean; extdecl;
-  glIsShader: function(shader: GLuint): GLboolean; extdecl;
-  glLinkProgram: procedure(_program: GLuint); extdecl;
-  glShaderSource: procedure(shader: GLuint; count: GLsizei; const _string: PGLchar; const length: PGLint); extdecl;
-  glUseProgram: procedure(_program: GLuint); extdecl;
-  glUniform1f: procedure(location: GLint; v0: GLfloat); extdecl;
-  glUniform2f: procedure(location: GLint; v0: GLfloat; v1: GLfloat); extdecl;
-  glUniform3f: procedure(location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat); extdecl;
-  glUniform4f: procedure(location: GLint; v0: GLfloat; v1: GLfloat; v2: GLfloat; v3: GLfloat); extdecl;
-  glUniform1i: procedure(location: GLint; v0: GLint); extdecl;
-  glUniform2i: procedure(location: GLint; v0: GLint; v1: GLint); extdecl;
-  glUniform3i: procedure(location: GLint; v0: GLint; v1: GLint; v2: GLint); extdecl;
-  glUniform4i: procedure(location: GLint; v0: GLint; v1: GLint; v2: GLint; v3: GLint); extdecl;
-  glUniform1fv: procedure(location: GLint; count: GLsizei; const value: PGLfloat); extdecl;
-  glUniform2fv: procedure(location: GLint; count: GLsizei; const value: PGLfloat); extdecl;
-  glUniform3fv: procedure(location: GLint; count: GLsizei; const value: PGLfloat); extdecl;
-  glUniform4fv: procedure(location: GLint; count: GLsizei; const value: PGLfloat); extdecl;
-  glUniform1iv: procedure(location: GLint; count: GLsizei; const value: PGLint); extdecl;
-  glUniform2iv: procedure(location: GLint; count: GLsizei; const value: PGLint); extdecl;
-  glUniform3iv: procedure(location: GLint; count: GLsizei; const value: PGLint); extdecl;
-  glUniform4iv: procedure(location: GLint; count: GLsizei; const value: PGLint); extdecl;
-  glUniformMatrix2fv: procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); extdecl;
-  glUniformMatrix3fv: procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); extdecl;
-  glUniformMatrix4fv: procedure(location: GLint; count: GLsizei; transpose: GLboolean; const value: PGLfloat); extdecl;
-  glValidateProgram: procedure(_program: GLuint); extdecl;
-  glVertexAttrib1d: procedure(index: GLuint; x: GLdouble); extdecl;
-  glVertexAttrib1dv: procedure(index: GLuint; const v: PGLdouble); extdecl;
-  glVertexAttrib1f: procedure(index: GLuint; x: GLfloat); extdecl;
-  glVertexAttrib1fv: procedure(index: GLuint; const v: PGLfloat); extdecl;
-  glVertexAttrib1s: procedure(index: GLuint; x: GLshort); extdecl;
-  glVertexAttrib1sv: procedure(index: GLuint; const v: PGLshort); extdecl;
-  glVertexAttrib2d: procedure(index: GLuint; x: GLdouble; y: GLdouble); extdecl;
-  glVertexAttrib2dv: procedure(index: GLuint; const v: PGLdouble); extdecl;
-  glVertexAttrib2f: procedure(index: GLuint; x: GLfloat; y: GLfloat); extdecl;
-  glVertexAttrib2fv: procedure(index: GLuint; const v: PGLfloat); extdecl;
-  glVertexAttrib2s: procedure(index: GLuint; x: GLshort; y: GLshort); extdecl;
-  glVertexAttrib2sv: procedure(index: GLuint; const v: PGLshort); extdecl;
-  glVertexAttrib3d: procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble); extdecl;
-  glVertexAttrib3dv: procedure(index: GLuint; const v: PGLdouble); extdecl;
-  glVertexAttrib3f: procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat); extdecl;
-  glVertexAttrib3fv: procedure(index: GLuint; const v: PGLfloat); extdecl;
-  glVertexAttrib3s: procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort); extdecl;
-  glVertexAttrib3sv: procedure(index: GLuint; const v: PGLshort); extdecl;
-  glVertexAttrib4Nbv: procedure(index: GLuint; const v: PGLbyte); extdecl;
-  glVertexAttrib4Niv: procedure(index: GLuint; const v: PGLint); extdecl;
-  glVertexAttrib4Nsv: procedure(index: GLuint; const v: PGLshort); extdecl;
-  glVertexAttrib4Nub: procedure(index: GLuint; x: GLubyte; y: GLubyte; z: GLubyte; w: GLubyte); extdecl;
-  glVertexAttrib4Nubv: procedure(index: GLuint; const v: PGLubyte); extdecl;
-  glVertexAttrib4Nuiv: procedure(index: GLuint; const v: PGLuint); extdecl;
-  glVertexAttrib4Nusv: procedure(index: GLuint; const v: PGLushort); extdecl;
-  glVertexAttrib4bv: procedure(index: GLuint; const v: PGLbyte); extdecl;
-  glVertexAttrib4d: procedure(index: GLuint; x: GLdouble; y: GLdouble; z: GLdouble; w: GLdouble); extdecl;
-  glVertexAttrib4dv: procedure(index: GLuint; const v: PGLdouble); extdecl;
-  glVertexAttrib4f: procedure(index: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); extdecl;
-  glVertexAttrib4fv: procedure(index: GLuint; const v: PGLfloat); extdecl;
-  glVertexAttrib4iv: procedure(index: GLuint; const v: PGLint); extdecl;
-  glVertexAttrib4s: procedure(index: GLuint; x: GLshort; y: GLshort; z: GLshort; w: GLshort); extdecl;
-  glVertexAttrib4sv: procedure(index: GLuint; const v: PGLshort); extdecl;
-  glVertexAttrib4ubv: procedure(index: GLuint; const v: PGLubyte); extdecl;
-  glVertexAttrib4uiv: procedure(index: GLuint; const v: PGLuint); extdecl;
-  glVertexAttrib4usv: procedure(index: GLuint; const v: PGLushort); extdecl;
-  glVertexAttribPointer: procedure(index: GLuint; size: GLint; _type: GLenum; normalized: GLboolean; stride: GLsizei; const pointer: PGLvoid); extdecl;
-
-function Load_GL_version_2_0: Boolean;
-
-
-implementation
-
-{$IFNDEF Windows}
-function wglGetProcAddress(proc: PChar): Pointer;
-begin
-  Result := GetProcAddress(LibGL, proc);
-end;
-{$ENDIF}
-
-function glext_ExtensionSupported(const extension: String; const searchIn: String): Boolean;
-var
-  extensions: PChar;
-  start: PChar;
-  where, terminator: PChar;
-begin
-
-  if (Pos(' ', extension) <> 0) or (extension = '') then
-  begin
-    Result := FALSE;
-    Exit;
-  end;
-
-  if searchIn = '' then extensions := PChar(glGetString(GL_EXTENSIONS))
-  else extensions := PChar(searchIn);
-  start := extensions;
-  while TRUE do
-  begin
-    where := StrPos(start, PChar(extension));
-    if where = nil then Break;
-    terminator := Pointer(PtrUInt(where) + Length(extension));
-    if (where = start) or (PChar(PtrUInt(where) - 1)^ = ' ') then
-    begin
-      if (terminator^ = ' ') or (terminator^ = #0) then
-      begin
-        Result := TRUE;
-        Exit;
-      end;
-    end;
-    start := terminator;
-  end;
-  Result := FALSE;
-
-end;
-
-function Load_GL_version_1_2: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-    glBlendColor := wglGetProcAddress('glBlendColor');
-    if not Assigned(glBlendColor) then Exit;
-    glBlendEquation := wglGetProcAddress('glBlendEquation');
-    if not Assigned(glBlendEquation) then Exit;
-    glDrawRangeElements := wglGetProcAddress('glDrawRangeElements');
-    if not Assigned(glDrawRangeElements) then Exit;
-    glColorTable := wglGetProcAddress('glColorTable');
-    if not Assigned(glColorTable) then Exit;
-    glColorTableParameterfv := wglGetProcAddress('glColorTableParameterfv');
-    if not Assigned(glColorTableParameterfv) then Exit;
-    glColorTableParameteriv := wglGetProcAddress('glColorTableParameteriv');
-    if not Assigned(glColorTableParameteriv) then Exit;
-    glCopyColorTable := wglGetProcAddress('glCopyColorTable');
-    if not Assigned(glCopyColorTable) then Exit;
-    glGetColorTable := wglGetProcAddress('glGetColorTable');
-    if not Assigned(glGetColorTable) then Exit;
-    glGetColorTableParameterfv := wglGetProcAddress('glGetColorTableParameterfv');
-    if not Assigned(glGetColorTableParameterfv) then Exit;
-    glGetColorTableParameteriv := wglGetProcAddress('glGetColorTableParameteriv');
-    if not Assigned(glGetColorTableParameteriv) then Exit;
-    glColorSubTable := wglGetProcAddress('glColorSubTable');
-    if not Assigned(glColorSubTable) then Exit;
-    glCopyColorSubTable := wglGetProcAddress('glCopyColorSubTable');
-    if not Assigned(glCopyColorSubTable) then Exit;
-    glConvolutionFilter1D := wglGetProcAddress('glConvolutionFilter1D');
-    if not Assigned(glConvolutionFilter1D) then Exit;
-    glConvolutionFilter2D := wglGetProcAddress('glConvolutionFilter2D');
-    if not Assigned(glConvolutionFilter2D) then Exit;
-    glConvolutionParameterf := wglGetProcAddress('glConvolutionParameterf');
-    if not Assigned(glConvolutionParameterf) then Exit;
-    glConvolutionParameterfv := wglGetProcAddress('glConvolutionParameterfv');
-    if not Assigned(glConvolutionParameterfv) then Exit;
-    glConvolutionParameteri := wglGetProcAddress('glConvolutionParameteri');
-    if not Assigned(glConvolutionParameteri) then Exit;
-    glConvolutionParameteriv := wglGetProcAddress('glConvolutionParameteriv');
-    if not Assigned(glConvolutionParameteriv) then Exit;
-    glCopyConvolutionFilter1D := wglGetProcAddress('glCopyConvolutionFilter1D');
-    if not Assigned(glCopyConvolutionFilter1D) then Exit;
-    glCopyConvolutionFilter2D := wglGetProcAddress('glCopyConvolutionFilter2D');
-    if not Assigned(glCopyConvolutionFilter2D) then Exit;
-    glGetConvolutionFilter := wglGetProcAddress('glGetConvolutionFilter');
-    if not Assigned(glGetConvolutionFilter) then Exit;
-    glGetConvolutionParameterfv := wglGetProcAddress('glGetConvolutionParameterfv');
-    if not Assigned(glGetConvolutionParameterfv) then Exit;
-    glGetConvolutionParameteriv := wglGetProcAddress('glGetConvolutionParameteriv');
-    if not Assigned(glGetConvolutionParameteriv) then Exit;
-    glGetSeparableFilter := wglGetProcAddress('glGetSeparableFilter');
-    if not Assigned(glGetSeparableFilter) then Exit;
-    glSeparableFilter2D := wglGetProcAddress('glSeparableFilter2D');
-    if not Assigned(glSeparableFilter2D) then Exit;
-    glGetHistogram := wglGetProcAddress('glGetHistogram');
-    if not Assigned(glGetHistogram) then Exit;
-    glGetHistogramParameterfv := wglGetProcAddress('glGetHistogramParameterfv');
-    if not Assigned(glGetHistogramParameterfv) then Exit;
-    glGetHistogramParameteriv := wglGetProcAddress('glGetHistogramParameteriv');
-    if not Assigned(glGetHistogramParameteriv) then Exit;
-    glGetMinmax := wglGetProcAddress('glGetMinmax');
-    if not Assigned(glGetMinmax) then Exit;
-    glGetMinmaxParameterfv := wglGetProcAddress('glGetMinmaxParameterfv');
-    if not Assigned(glGetMinmaxParameterfv) then Exit;
-    glGetMinmaxParameteriv := wglGetProcAddress('glGetMinmaxParameteriv');
-    if not Assigned(glGetMinmaxParameteriv) then Exit;
-    glHistogram := wglGetProcAddress('glHistogram');
-    if not Assigned(glHistogram) then Exit;
-    glMinmax := wglGetProcAddress('glMinmax');
-    if not Assigned(glMinmax) then Exit;
-    glResetHistogram := wglGetProcAddress('glResetHistogram');
-    if not Assigned(glResetHistogram) then Exit;
-    glResetMinmax := wglGetProcAddress('glResetMinmax');
-    if not Assigned(glResetMinmax) then Exit;
-    glTexImage3D := wglGetProcAddress('glTexImage3D');
-    if not Assigned(glTexImage3D) then Exit;
-    glTexSubImage3D := wglGetProcAddress('glTexSubImage3D');
-    if not Assigned(glTexSubImage3D) then Exit;
-    glCopyTexSubImage3D := wglGetProcAddress('glCopyTexSubImage3D');
-    if not Assigned(glCopyTexSubImage3D) then Exit;
-    Result := TRUE;
-
-end;
-
-function Load_GL_ARB_imaging: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_ARB_imaging', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_version_1_3: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-    glActiveTexture := wglGetProcAddress('glActiveTexture');
-    if not Assigned(glActiveTexture) then Exit;
-    glClientActiveTexture := wglGetProcAddress('glClientActiveTexture');
-    if not Assigned(glClientActiveTexture) then Exit;
-    glMultiTexCoord1d := wglGetProcAddress('glMultiTexCoord1d');
-    if not Assigned(glMultiTexCoord1d) then Exit;
-    glMultiTexCoord1dv := wglGetProcAddress('glMultiTexCoord1dv');
-    if not Assigned(glMultiTexCoord1dv) then Exit;
-    glMultiTexCoord1f := wglGetProcAddress('glMultiTexCoord1f');
-    if not Assigned(glMultiTexCoord1f) then Exit;
-    glMultiTexCoord1fv := wglGetProcAddress('glMultiTexCoord1fv');
-    if not Assigned(glMultiTexCoord1fv) then Exit;
-    glMultiTexCoord1i := wglGetProcAddress('glMultiTexCoord1i');
-    if not Assigned(glMultiTexCoord1i) then Exit;
-    glMultiTexCoord1iv := wglGetProcAddress('glMultiTexCoord1iv');
-    if not Assigned(glMultiTexCoord1iv) then Exit;
-    glMultiTexCoord1s := wglGetProcAddress('glMultiTexCoord1s');
-    if not Assigned(glMultiTexCoord1s) then Exit;
-    glMultiTexCoord1sv := wglGetProcAddress('glMultiTexCoord1sv');
-    if not Assigned(glMultiTexCoord1sv) then Exit;
-    glMultiTexCoord2d := wglGetProcAddress('glMultiTexCoord2d');
-    if not Assigned(glMultiTexCoord2d) then Exit;
-    glMultiTexCoord2dv := wglGetProcAddress('glMultiTexCoord2dv');
-    if not Assigned(glMultiTexCoord2dv) then Exit;
-    glMultiTexCoord2f := wglGetProcAddress('glMultiTexCoord2f');
-    if not Assigned(glMultiTexCoord2f) then Exit;
-    glMultiTexCoord2fv := wglGetProcAddress('glMultiTexCoord2fv');
-    if not Assigned(glMultiTexCoord2fv) then Exit;
-    glMultiTexCoord2i := wglGetProcAddress('glMultiTexCoord2i');
-    if not Assigned(glMultiTexCoord2i) then Exit;
-    glMultiTexCoord2iv := wglGetProcAddress('glMultiTexCoord2iv');
-    if not Assigned(glMultiTexCoord2iv) then Exit;
-    glMultiTexCoord2s := wglGetProcAddress('glMultiTexCoord2s');
-    if not Assigned(glMultiTexCoord2s) then Exit;
-    glMultiTexCoord2sv := wglGetProcAddress('glMultiTexCoord2sv');
-    if not Assigned(glMultiTexCoord2sv) then Exit;
-    glMultiTexCoord3d := wglGetProcAddress('glMultiTexCoord3d');
-    if not Assigned(glMultiTexCoord3d) then Exit;
-    glMultiTexCoord3dv := wglGetProcAddress('glMultiTexCoord3dv');
-    if not Assigned(glMultiTexCoord3dv) then Exit;
-    glMultiTexCoord3f := wglGetProcAddress('glMultiTexCoord3f');
-    if not Assigned(glMultiTexCoord3f) then Exit;
-    glMultiTexCoord3fv := wglGetProcAddress('glMultiTexCoord3fv');
-    if not Assigned(glMultiTexCoord3fv) then Exit;
-    glMultiTexCoord3i := wglGetProcAddress('glMultiTexCoord3i');
-    if not Assigned(glMultiTexCoord3i) then Exit;
-    glMultiTexCoord3iv := wglGetProcAddress('glMultiTexCoord3iv');
-    if not Assigned(glMultiTexCoord3iv) then Exit;
-    glMultiTexCoord3s := wglGetProcAddress('glMultiTexCoord3s');
-    if not Assigned(glMultiTexCoord3s) then Exit;
-    glMultiTexCoord3sv := wglGetProcAddress('glMultiTexCoord3sv');
-    if not Assigned(glMultiTexCoord3sv) then Exit;
-    glMultiTexCoord4d := wglGetProcAddress('glMultiTexCoord4d');
-    if not Assigned(glMultiTexCoord4d) then Exit;
-    glMultiTexCoord4dv := wglGetProcAddress('glMultiTexCoord4dv');
-    if not Assigned(glMultiTexCoord4dv) then Exit;
-    glMultiTexCoord4f := wglGetProcAddress('glMultiTexCoord4f');
-    if not Assigned(glMultiTexCoord4f) then Exit;
-    glMultiTexCoord4fv := wglGetProcAddress('glMultiTexCoord4fv');
-    if not Assigned(glMultiTexCoord4fv) then Exit;
-    glMultiTexCoord4i := wglGetProcAddress('glMultiTexCoord4i');
-    if not Assigned(glMultiTexCoord4i) then Exit;
-    glMultiTexCoord4iv := wglGetProcAddress('glMultiTexCoord4iv');
-    if not Assigned(glMultiTexCoord4iv) then Exit;
-    glMultiTexCoord4s := wglGetProcAddress('glMultiTexCoord4s');
-    if not Assigned(glMultiTexCoord4s) then Exit;
-    glMultiTexCoord4sv := wglGetProcAddress('glMultiTexCoord4sv');
-    if not Assigned(glMultiTexCoord4sv) then Exit;
-    glLoadTransposeMatrixf := wglGetProcAddress('glLoadTransposeMatrixf');
-    if not Assigned(glLoadTransposeMatrixf) then Exit;
-    glLoadTransposeMatrixd := wglGetProcAddress('glLoadTransposeMatrixd');
-    if not Assigned(glLoadTransposeMatrixd) then Exit;
-    glMultTransposeMatrixf := wglGetProcAddress('glMultTransposeMatrixf');
-    if not Assigned(glMultTransposeMatrixf) then Exit;
-    glMultTransposeMatrixd := wglGetProcAddress('glMultTransposeMatrixd');
-    if not Assigned(glMultTransposeMatrixd) then Exit;
-    glSampleCoverage := wglGetProcAddress('glSampleCoverage');
-    if not Assigned(glSampleCoverage) then Exit;
-    glCompressedTexImage3D := wglGetProcAddress('glCompressedTexImage3D');
-    if not Assigned(glCompressedTexImage3D) then Exit;
-    glCompressedTexImage2D := wglGetProcAddress('glCompressedTexImage2D');
-    if not Assigned(glCompressedTexImage2D) then Exit;
-    glCompressedTexImage1D := wglGetProcAddress('glCompressedTexImage1D');
-    if not Assigned(glCompressedTexImage1D) then Exit;
-    glCompressedTexSubImage3D := wglGetProcAddress('glCompressedTexSubImage3D');
-    if not Assigned(glCompressedTexSubImage3D) then Exit;
-    glCompressedTexSubImage2D := wglGetProcAddress('glCompressedTexSubImage2D');
-    if not Assigned(glCompressedTexSubImage2D) then Exit;
-    glCompressedTexSubImage1D := wglGetProcAddress('glCompressedTexSubImage1D');
-    if not Assigned(glCompressedTexSubImage1D) then Exit;
-    glGetCompressedTexImage := wglGetProcAddress('glGetCompressedTexImage');
-    if not Assigned(glGetCompressedTexImage) then Exit;
-    Result := TRUE;
-
-end;
-
-function Load_GL_ARB_multitexture: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_ARB_multitexture', extstring) then
-  begin
-    glActiveTextureARB := wglGetProcAddress('glActiveTextureARB');
-    if not Assigned(glActiveTextureARB) then Exit;
-    glClientActiveTextureARB := wglGetProcAddress('glClientActiveTextureARB');
-    if not Assigned(glClientActiveTextureARB) then Exit;
-    glMultiTexCoord1dARB := wglGetProcAddress('glMultiTexCoord1dARB');
-    if not Assigned(glMultiTexCoord1dARB) then Exit;
-    glMultiTexCoord1dvARB := wglGetProcAddress('glMultiTexCoord1dvARB');
-    if not Assigned(glMultiTexCoord1dvARB) then Exit;
-    glMultiTexCoord1fARB := wglGetProcAddress('glMultiTexCoord1fARB');
-    if not Assigned(glMultiTexCoord1fARB) then Exit;
-    glMultiTexCoord1fvARB := wglGetProcAddress('glMultiTexCoord1fvARB');
-    if not Assigned(glMultiTexCoord1fvARB) then Exit;
-    glMultiTexCoord1iARB := wglGetProcAddress('glMultiTexCoord1iARB');
-    if not Assigned(glMultiTexCoord1iARB) then Exit;
-    glMultiTexCoord1ivARB := wglGetProcAddress('glMultiTexCoord1ivARB');
-    if not Assigned(glMultiTexCoord1ivARB) then Exit;
-    glMultiTexCoord1sARB := wglGetProcAddress('glMultiTexCoord1sARB');
-    if not Assigned(glMultiTexCoord1sARB) then Exit;
-    glMultiTexCoord1svARB := wglGetProcAddress('glMultiTexCoord1svARB');
-    if not Assigned(glMultiTexCoord1svARB) then Exit;
-    glMultiTexCoord2dARB := wglGetProcAddress('glMultiTexCoord2dARB');
-    if not Assigned(glMultiTexCoord2dARB) then Exit;
-    glMultiTexCoord2dvARB := wglGetProcAddress('glMultiTexCoord2dvARB');
-    if not Assigned(glMultiTexCoord2dvARB) then Exit;
-    glMultiTexCoord2fARB := wglGetProcAddress('glMultiTexCoord2fARB');
-    if not Assigned(glMultiTexCoord2fARB) then Exit;
-    glMultiTexCoord2fvARB := wglGetProcAddress('glMultiTexCoord2fvARB');
-    if not Assigned(glMultiTexCoord2fvARB) then Exit;
-    glMultiTexCoord2iARB := wglGetProcAddress('glMultiTexCoord2iARB');
-    if not Assigned(glMultiTexCoord2iARB) then Exit;
-    glMultiTexCoord2ivARB := wglGetProcAddress('glMultiTexCoord2ivARB');
-    if not Assigned(glMultiTexCoord2ivARB) then Exit;
-    glMultiTexCoord2sARB := wglGetProcAddress('glMultiTexCoord2sARB');
-    if not Assigned(glMultiTexCoord2sARB) then Exit;
-    glMultiTexCoord2svARB := wglGetProcAddress('glMultiTexCoord2svARB');
-    if not Assigned(glMultiTexCoord2svARB) then Exit;
-    glMultiTexCoord3dARB := wglGetProcAddress('glMultiTexCoord3dARB');
-    if not Assigned(glMultiTexCoord3dARB) then Exit;
-    glMultiTexCoord3dvARB := wglGetProcAddress('glMultiTexCoord3dvARB');
-    if not Assigned(glMultiTexCoord3dvARB) then Exit;
-    glMultiTexCoord3fARB := wglGetProcAddress('glMultiTexCoord3fARB');
-    if not Assigned(glMultiTexCoord3fARB) then Exit;
-    glMultiTexCoord3fvARB := wglGetProcAddress('glMultiTexCoord3fvARB');
-    if not Assigned(glMultiTexCoord3fvARB) then Exit;
-    glMultiTexCoord3iARB := wglGetProcAddress('glMultiTexCoord3iARB');
-    if not Assigned(glMultiTexCoord3iARB) then Exit;
-    glMultiTexCoord3ivARB := wglGetProcAddress('glMultiTexCoord3ivARB');
-    if not Assigned(glMultiTexCoord3ivARB) then Exit;
-    glMultiTexCoord3sARB := wglGetProcAddress('glMultiTexCoord3sARB');
-    if not Assigned(glMultiTexCoord3sARB) then Exit;
-    glMultiTexCoord3svARB := wglGetProcAddress('glMultiTexCoord3svARB');
-    if not Assigned(glMultiTexCoord3svARB) then Exit;
-    glMultiTexCoord4dARB := wglGetProcAddress('glMultiTexCoord4dARB');
-    if not Assigned(glMultiTexCoord4dARB) then Exit;
-    glMultiTexCoord4dvARB := wglGetProcAddress('glMultiTexCoord4dvARB');
-    if not Assigned(glMultiTexCoord4dvARB) then Exit;
-    glMultiTexCoord4fARB := wglGetProcAddress('glMultiTexCoord4fARB');
-    if not Assigned(glMultiTexCoord4fARB) then Exit;
-    glMultiTexCoord4fvARB := wglGetProcAddress('glMultiTexCoord4fvARB');
-    if not Assigned(glMultiTexCoord4fvARB) then Exit;
-    glMultiTexCoord4iARB := wglGetProcAddress('glMultiTexCoord4iARB');
-    if not Assigned(glMultiTexCoord4iARB) then Exit;
-    glMultiTexCoord4ivARB := wglGetProcAddress('glMultiTexCoord4ivARB');
-    if not Assigned(glMultiTexCoord4ivARB) then Exit;
-    glMultiTexCoord4sARB := wglGetProcAddress('glMultiTexCoord4sARB');
-    if not Assigned(glMultiTexCoord4sARB) then Exit;
-    glMultiTexCoord4svARB := wglGetProcAddress('glMultiTexCoord4svARB');
-    if not Assigned(glMultiTexCoord4svARB) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ARB_transpose_matrix: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_ARB_transpose_matrix', extstring) then
-  begin
-    glLoadTransposeMatrixfARB := wglGetProcAddress('glLoadTransposeMatrixfARB');
-    if not Assigned(glLoadTransposeMatrixfARB) then Exit;
-    glLoadTransposeMatrixdARB := wglGetProcAddress('glLoadTransposeMatrixdARB');
-    if not Assigned(glLoadTransposeMatrixdARB) then Exit;
-    glMultTransposeMatrixfARB := wglGetProcAddress('glMultTransposeMatrixfARB');
-    if not Assigned(glMultTransposeMatrixfARB) then Exit;
-    glMultTransposeMatrixdARB := wglGetProcAddress('glMultTransposeMatrixdARB');
-    if not Assigned(glMultTransposeMatrixdARB) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ARB_multisample: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_ARB_multisample', extstring) then
-  begin
-    glSampleCoverageARB := wglGetProcAddress('glSampleCoverageARB');
-    if not Assigned(glSampleCoverageARB) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ARB_texture_env_add: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_ARB_texture_env_add', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-{$IFDEF Windows}
-function Load_WGL_ARB_extensions_string: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB');
-  if not Assigned(wglGetExtensionsStringARB) then Exit;
-  extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC)));
-
-  if glext_ExtensionSupported('WGL_ARB_extensions_string', extstring) then
-  begin
-    wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB');
-    if not Assigned(wglGetExtensionsStringARB) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_WGL_ARB_buffer_region: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB');
-  if not Assigned(wglGetExtensionsStringARB) then Exit;
-  extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC)));
-
-  if glext_ExtensionSupported('WGL_ARB_buffer_region', extstring) then
-  begin
-    wglCreateBufferRegionARB := wglGetProcAddress('wglCreateBufferRegionARB');
-    if not Assigned(wglCreateBufferRegionARB) then Exit;
-    wglDeleteBufferRegionARB := wglGetProcAddress('wglDeleteBufferRegionARB');
-    if not Assigned(wglDeleteBufferRegionARB) then Exit;
-    wglSaveBufferRegionARB := wglGetProcAddress('wglSaveBufferRegionARB');
-    if not Assigned(wglSaveBufferRegionARB) then Exit;
-    wglRestoreBufferRegionARB := wglGetProcAddress('wglRestoreBufferRegionARB');
-    if not Assigned(wglRestoreBufferRegionARB) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-{$ENDIF}
-
-function Load_GL_ARB_texture_cube_map: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_ARB_texture_cube_map', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ARB_depth_texture: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_ARB_depth_texture', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ARB_point_parameters: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_ARB_point_parameters', extstring) then
-  begin
-    glPointParameterfARB := wglGetProcAddress('glPointParameterfARB');
-    if not Assigned(glPointParameterfARB) then Exit;
-    glPointParameterfvARB := wglGetProcAddress('glPointParameterfvARB');
-    if not Assigned(glPointParameterfvARB) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ARB_shadow: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_ARB_shadow', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ARB_shadow_ambient: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_ARB_shadow_ambient', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ARB_texture_border_clamp: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_ARB_texture_border_clamp', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ARB_texture_compression: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_ARB_texture_compression', extstring) then
-  begin
-    glCompressedTexImage3DARB := wglGetProcAddress('glCompressedTexImage3DARB');
-    if not Assigned(glCompressedTexImage3DARB) then Exit;
-    glCompressedTexImage2DARB := wglGetProcAddress('glCompressedTexImage2DARB');
-    if not Assigned(glCompressedTexImage2DARB) then Exit;
-    glCompressedTexImage1DARB := wglGetProcAddress('glCompressedTexImage1DARB');
-    if not Assigned(glCompressedTexImage1DARB) then Exit;
-    glCompressedTexSubImage3DARB := wglGetProcAddress('glCompressedTexSubImage3DARB');
-    if not Assigned(glCompressedTexSubImage3DARB) then Exit;
-    glCompressedTexSubImage2DARB := wglGetProcAddress('glCompressedTexSubImage2DARB');
-    if not Assigned(glCompressedTexSubImage2DARB) then Exit;
-    glCompressedTexSubImage1DARB := wglGetProcAddress('glCompressedTexSubImage1DARB');
-    if not Assigned(glCompressedTexSubImage1DARB) then Exit;
-    glGetCompressedTexImageARB := wglGetProcAddress('glGetCompressedTexImageARB');
-    if not Assigned(glGetCompressedTexImageARB) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ARB_texture_env_combine: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_ARB_texture_env_combine', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ARB_texture_env_crossbar: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_ARB_texture_env_crossbar', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ARB_texture_env_dot3: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_ARB_texture_env_dot3', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ARB_texture_mirrored_repeat: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_ARB_texture_mirrored_repeat', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ARB_vertex_blend: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_ARB_vertex_blend', extstring) then
-  begin
-    glWeightbvARB := wglGetProcAddress('glWeightbvARB');
-    if not Assigned(glWeightbvARB) then Exit;
-    glWeightsvARB := wglGetProcAddress('glWeightsvARB');
-    if not Assigned(glWeightsvARB) then Exit;
-    glWeightivARB := wglGetProcAddress('glWeightivARB');
-    if not Assigned(glWeightivARB) then Exit;
-    glWeightfvARB := wglGetProcAddress('glWeightfvARB');
-    if not Assigned(glWeightfvARB) then Exit;
-    glWeightdvARB := wglGetProcAddress('glWeightdvARB');
-    if not Assigned(glWeightdvARB) then Exit;
-    glWeightvARB := wglGetProcAddress('glWeightvARB');
-    if not Assigned(glWeightvARB) then Exit;
-    glWeightubvARB := wglGetProcAddress('glWeightubvARB');
-    if not Assigned(glWeightubvARB) then Exit;
-    glWeightusvARB := wglGetProcAddress('glWeightusvARB');
-    if not Assigned(glWeightusvARB) then Exit;
-    glWeightuivARB := wglGetProcAddress('glWeightuivARB');
-    if not Assigned(glWeightuivARB) then Exit;
-    glWeightPointerARB := wglGetProcAddress('glWeightPointerARB');
-    if not Assigned(glWeightPointerARB) then Exit;
-    glVertexBlendARB := wglGetProcAddress('glVertexBlendARB');
-    if not Assigned(glVertexBlendARB) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ARB_vertex_program: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_ARB_vertex_program', extstring) then
-  begin
-    glVertexAttrib1sARB := wglGetProcAddress('glVertexAttrib1sARB');
-    if not Assigned(glVertexAttrib1sARB) then Exit;
-    glVertexAttrib1fARB := wglGetProcAddress('glVertexAttrib1fARB');
-    if not Assigned(glVertexAttrib1fARB) then Exit;
-    glVertexAttrib1dARB := wglGetProcAddress('glVertexAttrib1dARB');
-    if not Assigned(glVertexAttrib1dARB) then Exit;
-    glVertexAttrib2sARB := wglGetProcAddress('glVertexAttrib2sARB');
-    if not Assigned(glVertexAttrib2sARB) then Exit;
-    glVertexAttrib2fARB := wglGetProcAddress('glVertexAttrib2fARB');
-    if not Assigned(glVertexAttrib2fARB) then Exit;
-    glVertexAttrib2dARB := wglGetProcAddress('glVertexAttrib2dARB');
-    if not Assigned(glVertexAttrib2dARB) then Exit;
-    glVertexAttrib3sARB := wglGetProcAddress('glVertexAttrib3sARB');
-    if not Assigned(glVertexAttrib3sARB) then Exit;
-    glVertexAttrib3fARB := wglGetProcAddress('glVertexAttrib3fARB');
-    if not Assigned(glVertexAttrib3fARB) then Exit;
-    glVertexAttrib3dARB := wglGetProcAddress('glVertexAttrib3dARB');
-    if not Assigned(glVertexAttrib3dARB) then Exit;
-    glVertexAttrib4sARB := wglGetProcAddress('glVertexAttrib4sARB');
-    if not Assigned(glVertexAttrib4sARB) then Exit;
-    glVertexAttrib4fARB := wglGetProcAddress('glVertexAttrib4fARB');
-    if not Assigned(glVertexAttrib4fARB) then Exit;
-    glVertexAttrib4dARB := wglGetProcAddress('glVertexAttrib4dARB');
-    if not Assigned(glVertexAttrib4dARB) then Exit;
-    glVertexAttrib4NubARB := wglGetProcAddress('glVertexAttrib4NubARB');
-    if not Assigned(glVertexAttrib4NubARB) then Exit;
-    glVertexAttrib1svARB := wglGetProcAddress('glVertexAttrib1svARB');
-    if not Assigned(glVertexAttrib1svARB) then Exit;
-    glVertexAttrib1fvARB := wglGetProcAddress('glVertexAttrib1fvARB');
-    if not Assigned(glVertexAttrib1fvARB) then Exit;
-    glVertexAttrib1dvARB := wglGetProcAddress('glVertexAttrib1dvARB');
-    if not Assigned(glVertexAttrib1dvARB) then Exit;
-    glVertexAttrib2svARB := wglGetProcAddress('glVertexAttrib2svARB');
-    if not Assigned(glVertexAttrib2svARB) then Exit;
-    glVertexAttrib2fvARB := wglGetProcAddress('glVertexAttrib2fvARB');
-    if not Assigned(glVertexAttrib2fvARB) then Exit;
-    glVertexAttrib2dvARB := wglGetProcAddress('glVertexAttrib2dvARB');
-    if not Assigned(glVertexAttrib2dvARB) then Exit;
-    glVertexAttrib3svARB := wglGetProcAddress('glVertexAttrib3svARB');
-    if not Assigned(glVertexAttrib3svARB) then Exit;
-    glVertexAttrib3fvARB := wglGetProcAddress('glVertexAttrib3fvARB');
-    if not Assigned(glVertexAttrib3fvARB) then Exit;
-    glVertexAttrib3dvARB := wglGetProcAddress('glVertexAttrib3dvARB');
-    if not Assigned(glVertexAttrib3dvARB) then Exit;
-    glVertexAttrib4bvARB := wglGetProcAddress('glVertexAttrib4bvARB');
-    if not Assigned(glVertexAttrib4bvARB) then Exit;
-    glVertexAttrib4svARB := wglGetProcAddress('glVertexAttrib4svARB');
-    if not Assigned(glVertexAttrib4svARB) then Exit;
-    glVertexAttrib4ivARB := wglGetProcAddress('glVertexAttrib4ivARB');
-    if not Assigned(glVertexAttrib4ivARB) then Exit;
-    glVertexAttrib4ubvARB := wglGetProcAddress('glVertexAttrib4ubvARB');
-    if not Assigned(glVertexAttrib4ubvARB) then Exit;
-    glVertexAttrib4usvARB := wglGetProcAddress('glVertexAttrib4usvARB');
-    if not Assigned(glVertexAttrib4usvARB) then Exit;
-    glVertexAttrib4uivARB := wglGetProcAddress('glVertexAttrib4uivARB');
-    if not Assigned(glVertexAttrib4uivARB) then Exit;
-    glVertexAttrib4fvARB := wglGetProcAddress('glVertexAttrib4fvARB');
-    if not Assigned(glVertexAttrib4fvARB) then Exit;
-    glVertexAttrib4dvARB := wglGetProcAddress('glVertexAttrib4dvARB');
-    if not Assigned(glVertexAttrib4dvARB) then Exit;
-    glVertexAttrib4NbvARB := wglGetProcAddress('glVertexAttrib4NbvARB');
-    if not Assigned(glVertexAttrib4NbvARB) then Exit;
-    glVertexAttrib4NsvARB := wglGetProcAddress('glVertexAttrib4NsvARB');
-    if not Assigned(glVertexAttrib4NsvARB) then Exit;
-    glVertexAttrib4NivARB := wglGetProcAddress('glVertexAttrib4NivARB');
-    if not Assigned(glVertexAttrib4NivARB) then Exit;
-    glVertexAttrib4NubvARB := wglGetProcAddress('glVertexAttrib4NubvARB');
-    if not Assigned(glVertexAttrib4NubvARB) then Exit;
-    glVertexAttrib4NusvARB := wglGetProcAddress('glVertexAttrib4NusvARB');
-    if not Assigned(glVertexAttrib4NusvARB) then Exit;
-    glVertexAttrib4NuivARB := wglGetProcAddress('glVertexAttrib4NuivARB');
-    if not Assigned(glVertexAttrib4NuivARB) then Exit;
-    glVertexAttribPointerARB := wglGetProcAddress('glVertexAttribPointerARB');
-    if not Assigned(glVertexAttribPointerARB) then Exit;
-    glEnableVertexAttribArrayARB := wglGetProcAddress('glEnableVertexAttribArrayARB');
-    if not Assigned(glEnableVertexAttribArrayARB) then Exit;
-    glDisableVertexAttribArrayARB := wglGetProcAddress('glDisableVertexAttribArrayARB');
-    if not Assigned(glDisableVertexAttribArrayARB) then Exit;
-    glProgramStringARB := wglGetProcAddress('glProgramStringARB');
-    if not Assigned(glProgramStringARB) then Exit;
-    glBindProgramARB := wglGetProcAddress('glBindProgramARB');
-    if not Assigned(glBindProgramARB) then Exit;
-    glDeleteProgramsARB := wglGetProcAddress('glDeleteProgramsARB');
-    if not Assigned(glDeleteProgramsARB) then Exit;
-    glGenProgramsARB := wglGetProcAddress('glGenProgramsARB');
-    if not Assigned(glGenProgramsARB) then Exit;
-    glProgramEnvParameter4dARB := wglGetProcAddress('glProgramEnvParameter4dARB');
-    if not Assigned(glProgramEnvParameter4dARB) then Exit;
-    glProgramEnvParameter4dvARB := wglGetProcAddress('glProgramEnvParameter4dvARB');
-    if not Assigned(glProgramEnvParameter4dvARB) then Exit;
-    glProgramEnvParameter4fARB := wglGetProcAddress('glProgramEnvParameter4fARB');
-    if not Assigned(glProgramEnvParameter4fARB) then Exit;
-    glProgramEnvParameter4fvARB := wglGetProcAddress('glProgramEnvParameter4fvARB');
-    if not Assigned(glProgramEnvParameter4fvARB) then Exit;
-    glProgramLocalParameter4dARB := wglGetProcAddress('glProgramLocalParameter4dARB');
-    if not Assigned(glProgramLocalParameter4dARB) then Exit;
-    glProgramLocalParameter4dvARB := wglGetProcAddress('glProgramLocalParameter4dvARB');
-    if not Assigned(glProgramLocalParameter4dvARB) then Exit;
-    glProgramLocalParameter4fARB := wglGetProcAddress('glProgramLocalParameter4fARB');
-    if not Assigned(glProgramLocalParameter4fARB) then Exit;
-    glProgramLocalParameter4fvARB := wglGetProcAddress('glProgramLocalParameter4fvARB');
-    if not Assigned(glProgramLocalParameter4fvARB) then Exit;
-    glGetProgramEnvParameterdvARB := wglGetProcAddress('glGetProgramEnvParameterdvARB');
-    if not Assigned(glGetProgramEnvParameterdvARB) then Exit;
-    glGetProgramEnvParameterfvARB := wglGetProcAddress('glGetProgramEnvParameterfvARB');
-    if not Assigned(glGetProgramEnvParameterfvARB) then Exit;
-    glGetProgramLocalParameterdvARB := wglGetProcAddress('glGetProgramLocalParameterdvARB');
-    if not Assigned(glGetProgramLocalParameterdvARB) then Exit;
-    glGetProgramLocalParameterfvARB := wglGetProcAddress('glGetProgramLocalParameterfvARB');
-    if not Assigned(glGetProgramLocalParameterfvARB) then Exit;
-    glGetProgramivARB := wglGetProcAddress('glGetProgramivARB');
-    if not Assigned(glGetProgramivARB) then Exit;
-    glGetProgramStringARB := wglGetProcAddress('glGetProgramStringARB');
-    if not Assigned(glGetProgramStringARB) then Exit;
-    glGetVertexAttribdvARB := wglGetProcAddress('glGetVertexAttribdvARB');
-    if not Assigned(glGetVertexAttribdvARB) then Exit;
-    glGetVertexAttribfvARB := wglGetProcAddress('glGetVertexAttribfvARB');
-    if not Assigned(glGetVertexAttribfvARB) then Exit;
-    glGetVertexAttribivARB := wglGetProcAddress('glGetVertexAttribivARB');
-    if not Assigned(glGetVertexAttribivARB) then Exit;
-    glGetVertexAttribPointervARB := wglGetProcAddress('glGetVertexAttribPointervARB');
-    if not Assigned(glGetVertexAttribPointervARB) then Exit;
-    glIsProgramARB := wglGetProcAddress('glIsProgramARB');
-    if not Assigned(glIsProgramARB) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ARB_window_pos: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_ARB_window_pos', extstring) then
-  begin
-    glWindowPos2dARB := wglGetProcAddress('glWindowPos2dARB');
-    if not Assigned(glWindowPos2dARB) then Exit;
-    glWindowPos2fARB := wglGetProcAddress('glWindowPos2fARB');
-    if not Assigned(glWindowPos2fARB) then Exit;
-    glWindowPos2iARB := wglGetProcAddress('glWindowPos2iARB');
-    if not Assigned(glWindowPos2iARB) then Exit;
-    glWindowPos2sARB := wglGetProcAddress('glWindowPos2sARB');
-    if not Assigned(glWindowPos2sARB) then Exit;
-    glWindowPos2dvARB := wglGetProcAddress('glWindowPos2dvARB');
-    if not Assigned(glWindowPos2dvARB) then Exit;
-    glWindowPos2fvARB := wglGetProcAddress('glWindowPos2fvARB');
-    if not Assigned(glWindowPos2fvARB) then Exit;
-    glWindowPos2ivARB := wglGetProcAddress('glWindowPos2ivARB');
-    if not Assigned(glWindowPos2ivARB) then Exit;
-    glWindowPos2svARB := wglGetProcAddress('glWindowPos2svARB');
-    if not Assigned(glWindowPos2svARB) then Exit;
-    glWindowPos3dARB := wglGetProcAddress('glWindowPos3dARB');
-    if not Assigned(glWindowPos3dARB) then Exit;
-    glWindowPos3fARB := wglGetProcAddress('glWindowPos3fARB');
-    if not Assigned(glWindowPos3fARB) then Exit;
-    glWindowPos3iARB := wglGetProcAddress('glWindowPos3iARB');
-    if not Assigned(glWindowPos3iARB) then Exit;
-    glWindowPos3sARB := wglGetProcAddress('glWindowPos3sARB');
-    if not Assigned(glWindowPos3sARB) then Exit;
-    glWindowPos3dvARB := wglGetProcAddress('glWindowPos3dvARB');
-    if not Assigned(glWindowPos3dvARB) then Exit;
-    glWindowPos3fvARB := wglGetProcAddress('glWindowPos3fvARB');
-    if not Assigned(glWindowPos3fvARB) then Exit;
-    glWindowPos3ivARB := wglGetProcAddress('glWindowPos3ivARB');
-    if not Assigned(glWindowPos3ivARB) then Exit;
-    glWindowPos3svARB := wglGetProcAddress('glWindowPos3svARB');
-    if not Assigned(glWindowPos3svARB) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_422_pixels: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_EXT_422_pixels', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_abgr: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_EXT_abgr', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_bgra: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_EXT_bgra', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_blend_color: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_EXT_blend_color', extstring) then
-  begin
-    glBlendColorEXT := wglGetProcAddress('glBlendColorEXT');
-    if not Assigned(glBlendColorEXT) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_blend_func_separate: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_EXT_blend_func_separate', extstring) then
-  begin
-    glBlendFuncSeparateEXT := wglGetProcAddress('glBlendFuncSeparateEXT');
-    if not Assigned(glBlendFuncSeparateEXT) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_blend_logic_op: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_EXT_blend_logic_op', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_blend_minmax: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_EXT_blend_minmax', extstring) then
-  begin
-    glBlendEquationEXT := wglGetProcAddress('glBlendEquationEXT');
-    if not Assigned(glBlendEquationEXT) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_blend_subtract: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_EXT_blend_subtract', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_clip_volume_hint: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_EXT_clip_volume_hint', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_color_subtable: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_EXT_color_subtable', extstring) then
-  begin
-    glColorSubTableEXT := wglGetProcAddress('glColorSubTableEXT');
-    if not Assigned(glColorSubTableEXT) then Exit;
-    glCopyColorSubTableEXT := wglGetProcAddress('glCopyColorSubTableEXT');
-    if not Assigned(glCopyColorSubTableEXT) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_compiled_vertex_array: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_EXT_compiled_vertex_array', extstring) then
-  begin
-    glLockArraysEXT := wglGetProcAddress('glLockArraysEXT');
-    if not Assigned(glLockArraysEXT) then Exit;
-    glUnlockArraysEXT := wglGetProcAddress('glUnlockArraysEXT');
-    if not Assigned(glUnlockArraysEXT) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_convolution: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_EXT_convolution', extstring) then
-  begin
-    glConvolutionFilter1DEXT := wglGetProcAddress('glConvolutionFilter1DEXT');
-    if not Assigned(glConvolutionFilter1DEXT) then Exit;
-    glConvolutionFilter2DEXT := wglGetProcAddress('glConvolutionFilter2DEXT');
-    if not Assigned(glConvolutionFilter2DEXT) then Exit;
-    glCopyConvolutionFilter1DEXT := wglGetProcAddress('glCopyConvolutionFilter1DEXT');
-    if not Assigned(glCopyConvolutionFilter1DEXT) then Exit;
-    glCopyConvolutionFilter2DEXT := wglGetProcAddress('glCopyConvolutionFilter2DEXT');
-    if not Assigned(glCopyConvolutionFilter2DEXT) then Exit;
-    glGetConvolutionFilterEXT := wglGetProcAddress('glGetConvolutionFilterEXT');
-    if not Assigned(glGetConvolutionFilterEXT) then Exit;
-    glSeparableFilter2DEXT := wglGetProcAddress('glSeparableFilter2DEXT');
-    if not Assigned(glSeparableFilter2DEXT) then Exit;
-    glGetSeparableFilterEXT := wglGetProcAddress('glGetSeparableFilterEXT');
-    if not Assigned(glGetSeparableFilterEXT) then Exit;
-    glConvolutionParameteriEXT := wglGetProcAddress('glConvolutionParameteriEXT');
-    if not Assigned(glConvolutionParameteriEXT) then Exit;
-    glConvolutionParameterivEXT := wglGetProcAddress('glConvolutionParameterivEXT');
-    if not Assigned(glConvolutionParameterivEXT) then Exit;
-    glConvolutionParameterfEXT := wglGetProcAddress('glConvolutionParameterfEXT');
-    if not Assigned(glConvolutionParameterfEXT) then Exit;
-    glConvolutionParameterfvEXT := wglGetProcAddress('glConvolutionParameterfvEXT');
-    if not Assigned(glConvolutionParameterfvEXT) then Exit;
-    glGetConvolutionParameterivEXT := wglGetProcAddress('glGetConvolutionParameterivEXT');
-    if not Assigned(glGetConvolutionParameterivEXT) then Exit;
-    glGetConvolutionParameterfvEXT := wglGetProcAddress('glGetConvolutionParameterfvEXT');
-    if not Assigned(glGetConvolutionParameterfvEXT) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_fog_coord: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_EXT_fog_coord', extstring) then
-  begin
-    glFogCoordfEXT := wglGetProcAddress('glFogCoordfEXT');
-    if not Assigned(glFogCoordfEXT) then Exit;
-    glFogCoorddEXT := wglGetProcAddress('glFogCoorddEXT');
-    if not Assigned(glFogCoorddEXT) then Exit;
-    glFogCoordfvEXT := wglGetProcAddress('glFogCoordfvEXT');
-    if not Assigned(glFogCoordfvEXT) then Exit;
-    glFogCoorddvEXT := wglGetProcAddress('glFogCoorddvEXT');
-    if not Assigned(glFogCoorddvEXT) then Exit;
-    glFogCoordPointerEXT := wglGetProcAddress('glFogCoordPointerEXT');
-    if not Assigned(glFogCoordPointerEXT) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_histogram: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_EXT_histogram', extstring) then
-  begin
-    glHistogramEXT := wglGetProcAddress('glHistogramEXT');
-    if not Assigned(glHistogramEXT) then Exit;
-    glResetHistogramEXT := wglGetProcAddress('glResetHistogramEXT');
-    if not Assigned(glResetHistogramEXT) then Exit;
-    glGetHistogramEXT := wglGetProcAddress('glGetHistogramEXT');
-    if not Assigned(glGetHistogramEXT) then Exit;
-    glGetHistogramParameterivEXT := wglGetProcAddress('glGetHistogramParameterivEXT');
-    if not Assigned(glGetHistogramParameterivEXT) then Exit;
-    glGetHistogramParameterfvEXT := wglGetProcAddress('glGetHistogramParameterfvEXT');
-    if not Assigned(glGetHistogramParameterfvEXT) then Exit;
-    glMinmaxEXT := wglGetProcAddress('glMinmaxEXT');
-    if not Assigned(glMinmaxEXT) then Exit;
-    glResetMinmaxEXT := wglGetProcAddress('glResetMinmaxEXT');
-    if not Assigned(glResetMinmaxEXT) then Exit;
-    glGetMinmaxEXT := wglGetProcAddress('glGetMinmaxEXT');
-    if not Assigned(glGetMinmaxEXT) then Exit;
-    glGetMinmaxParameterivEXT := wglGetProcAddress('glGetMinmaxParameterivEXT');
-    if not Assigned(glGetMinmaxParameterivEXT) then Exit;
-    glGetMinmaxParameterfvEXT := wglGetProcAddress('glGetMinmaxParameterfvEXT');
-    if not Assigned(glGetMinmaxParameterfvEXT) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_multi_draw_arrays: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_EXT_multi_draw_arrays', extstring) then
-  begin
-    glMultiDrawArraysEXT := wglGetProcAddress('glMultiDrawArraysEXT');
-    if not Assigned(glMultiDrawArraysEXT) then Exit;
-    glMultiDrawElementsEXT := wglGetProcAddress('glMultiDrawElementsEXT');
-    if not Assigned(glMultiDrawElementsEXT) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_packed_pixels: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_EXT_packed_pixels', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_paletted_texture: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_EXT_paletted_texture', extstring) then
-  begin
-    glColorTableEXT := wglGetProcAddress('glColorTableEXT');
-    if not Assigned(glColorTableEXT) then Exit;
-    glColorSubTableEXT := wglGetProcAddress('glColorSubTableEXT');
-    if not Assigned(glColorSubTableEXT) then Exit;
-    glGetColorTableEXT := wglGetProcAddress('glGetColorTableEXT');
-    if not Assigned(glGetColorTableEXT) then Exit;
-    glGetColorTableParameterivEXT := wglGetProcAddress('glGetColorTableParameterivEXT');
-    if not Assigned(glGetColorTableParameterivEXT) then Exit;
-    glGetColorTableParameterfvEXT := wglGetProcAddress('glGetColorTableParameterfvEXT');
-    if not Assigned(glGetColorTableParameterfvEXT) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_point_parameters: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_EXT_point_parameters', extstring) then
-  begin
-    glPointParameterfEXT := wglGetProcAddress('glPointParameterfEXT');
-    if not Assigned(glPointParameterfEXT) then Exit;
-    glPointParameterfvEXT := wglGetProcAddress('glPointParameterfvEXT');
-    if not Assigned(glPointParameterfvEXT) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_polygon_offset: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_EXT_polygon_offset', extstring) then
-  begin
-    glPolygonOffsetEXT := wglGetProcAddress('glPolygonOffsetEXT');
-    if not Assigned(glPolygonOffsetEXT) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_secondary_color: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_EXT_secondary_color', extstring) then
-  begin
-    glSecondaryColor3bEXT := wglGetProcAddress('glSecondaryColor3bEXT');
-    if not Assigned(glSecondaryColor3bEXT) then Exit;
-    glSecondaryColor3sEXT := wglGetProcAddress('glSecondaryColor3sEXT');
-    if not Assigned(glSecondaryColor3sEXT) then Exit;
-    glSecondaryColor3iEXT := wglGetProcAddress('glSecondaryColor3iEXT');
-    if not Assigned(glSecondaryColor3iEXT) then Exit;
-    glSecondaryColor3fEXT := wglGetProcAddress('glSecondaryColor3fEXT');
-    if not Assigned(glSecondaryColor3fEXT) then Exit;
-    glSecondaryColor3dEXT := wglGetProcAddress('glSecondaryColor3dEXT');
-    if not Assigned(glSecondaryColor3dEXT) then Exit;
-    glSecondaryColor3ubEXT := wglGetProcAddress('glSecondaryColor3ubEXT');
-    if not Assigned(glSecondaryColor3ubEXT) then Exit;
-    glSecondaryColor3usEXT := wglGetProcAddress('glSecondaryColor3usEXT');
-    if not Assigned(glSecondaryColor3usEXT) then Exit;
-    glSecondaryColor3uiEXT := wglGetProcAddress('glSecondaryColor3uiEXT');
-    if not Assigned(glSecondaryColor3uiEXT) then Exit;
-    glSecondaryColor3bvEXT := wglGetProcAddress('glSecondaryColor3bvEXT');
-    if not Assigned(glSecondaryColor3bvEXT) then Exit;
-    glSecondaryColor3svEXT := wglGetProcAddress('glSecondaryColor3svEXT');
-    if not Assigned(glSecondaryColor3svEXT) then Exit;
-    glSecondaryColor3ivEXT := wglGetProcAddress('glSecondaryColor3ivEXT');
-    if not Assigned(glSecondaryColor3ivEXT) then Exit;
-    glSecondaryColor3fvEXT := wglGetProcAddress('glSecondaryColor3fvEXT');
-    if not Assigned(glSecondaryColor3fvEXT) then Exit;
-    glSecondaryColor3dvEXT := wglGetProcAddress('glSecondaryColor3dvEXT');
-    if not Assigned(glSecondaryColor3dvEXT) then Exit;
-    glSecondaryColor3ubvEXT := wglGetProcAddress('glSecondaryColor3ubvEXT');
-    if not Assigned(glSecondaryColor3ubvEXT) then Exit;
-    glSecondaryColor3usvEXT := wglGetProcAddress('glSecondaryColor3usvEXT');
-    if not Assigned(glSecondaryColor3usvEXT) then Exit;
-    glSecondaryColor3uivEXT := wglGetProcAddress('glSecondaryColor3uivEXT');
-    if not Assigned(glSecondaryColor3uivEXT) then Exit;
-    glSecondaryColorPointerEXT := wglGetProcAddress('glSecondaryColorPointerEXT');
-    if not Assigned(glSecondaryColorPointerEXT) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_separate_specular_color: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_EXT_separate_specular_color', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_shadow_funcs: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_EXT_shadow_funcs', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_shared_texture_palette: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_EXT_shared_texture_palette', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_stencil_two_side: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_EXT_stencil_two_side', extstring) then
-  begin
-    glActiveStencilFaceEXT := wglGetProcAddress('glActiveStencilFaceEXT');
-    if not Assigned(glActiveStencilFaceEXT) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_stencil_wrap: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_EXT_stencil_wrap', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_subtexture: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_EXT_subtexture', extstring) then
-  begin
-    glTexSubImage1DEXT := wglGetProcAddress('glTexSubImage1DEXT');
-    if not Assigned(glTexSubImage1DEXT) then Exit;
-    glTexSubImage2DEXT := wglGetProcAddress('glTexSubImage2DEXT');
-    if not Assigned(glTexSubImage2DEXT) then Exit;
-    glTexSubImage3DEXT := wglGetProcAddress('glTexSubImage3DEXT');
-    if not Assigned(glTexSubImage3DEXT) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_texture3D: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_EXT_texture3D', extstring) then
-  begin
-    glTexImage3DEXT := wglGetProcAddress('glTexImage3DEXT');
-    if not Assigned(glTexImage3DEXT) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_texture_compression_s3tc: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_EXT_texture_compression_s3tc', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_texture_env_add: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_EXT_texture_env_add', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_texture_env_combine: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_EXT_texture_env_combine', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_texture_env_dot3: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_EXT_texture_env_dot3', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_texture_filter_anisotropic: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_EXT_texture_filter_anisotropic', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_texture_lod_bias: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_EXT_texture_lod_bias', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_texture_object: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_EXT_texture_object', extstring) then
-  begin
-    glGenTexturesEXT := wglGetProcAddress('glGenTexturesEXT');
-    if not Assigned(glGenTexturesEXT) then Exit;
-    glDeleteTexturesEXT := wglGetProcAddress('glDeleteTexturesEXT');
-    if not Assigned(glDeleteTexturesEXT) then Exit;
-    glBindTextureEXT := wglGetProcAddress('glBindTextureEXT');
-    if not Assigned(glBindTextureEXT) then Exit;
-    glPrioritizeTexturesEXT := wglGetProcAddress('glPrioritizeTexturesEXT');
-    if not Assigned(glPrioritizeTexturesEXT) then Exit;
-    glAreTexturesResidentEXT := wglGetProcAddress('glAreTexturesResidentEXT');
-    if not Assigned(glAreTexturesResidentEXT) then Exit;
-    glIsTextureEXT := wglGetProcAddress('glIsTextureEXT');
-    if not Assigned(glIsTextureEXT) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_vertex_array: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_EXT_vertex_array', extstring) then
-  begin
-    glArrayElementEXT := wglGetProcAddress('glArrayElementEXT');
-    if not Assigned(glArrayElementEXT) then Exit;
-    glDrawArraysEXT := wglGetProcAddress('glDrawArraysEXT');
-    if not Assigned(glDrawArraysEXT) then Exit;
-    glVertexPointerEXT := wglGetProcAddress('glVertexPointerEXT');
-    if not Assigned(glVertexPointerEXT) then Exit;
-    glNormalPointerEXT := wglGetProcAddress('glNormalPointerEXT');
-    if not Assigned(glNormalPointerEXT) then Exit;
-    glColorPointerEXT := wglGetProcAddress('glColorPointerEXT');
-    if not Assigned(glColorPointerEXT) then Exit;
-    glIndexPointerEXT := wglGetProcAddress('glIndexPointerEXT');
-    if not Assigned(glIndexPointerEXT) then Exit;
-    glTexCoordPointerEXT := wglGetProcAddress('glTexCoordPointerEXT');
-    if not Assigned(glTexCoordPointerEXT) then Exit;
-    glEdgeFlagPointerEXT := wglGetProcAddress('glEdgeFlagPointerEXT');
-    if not Assigned(glEdgeFlagPointerEXT) then Exit;
-    glGetPointervEXT := wglGetProcAddress('glGetPointervEXT');
-    if not Assigned(glGetPointervEXT) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_vertex_shader: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_EXT_vertex_shader', extstring) then
-  begin
-    glBeginVertexShaderEXT := wglGetProcAddress('glBeginVertexShaderEXT');
-    if not Assigned(glBeginVertexShaderEXT) then Exit;
-    glEndVertexShaderEXT := wglGetProcAddress('glEndVertexShaderEXT');
-    if not Assigned(glEndVertexShaderEXT) then Exit;
-    glBindVertexShaderEXT := wglGetProcAddress('glBindVertexShaderEXT');
-    if not Assigned(glBindVertexShaderEXT) then Exit;
-    glGenVertexShadersEXT := wglGetProcAddress('glGenVertexShadersEXT');
-    if not Assigned(glGenVertexShadersEXT) then Exit;
-    glDeleteVertexShaderEXT := wglGetProcAddress('glDeleteVertexShaderEXT');
-    if not Assigned(glDeleteVertexShaderEXT) then Exit;
-    glShaderOp1EXT := wglGetProcAddress('glShaderOp1EXT');
-    if not Assigned(glShaderOp1EXT) then Exit;
-    glShaderOp2EXT := wglGetProcAddress('glShaderOp2EXT');
-    if not Assigned(glShaderOp2EXT) then Exit;
-    glShaderOp3EXT := wglGetProcAddress('glShaderOp3EXT');
-    if not Assigned(glShaderOp3EXT) then Exit;
-    glSwizzleEXT := wglGetProcAddress('glSwizzleEXT');
-    if not Assigned(glSwizzleEXT) then Exit;
-    glWriteMaskEXT := wglGetProcAddress('glWriteMaskEXT');
-    if not Assigned(glWriteMaskEXT) then Exit;
-    glInsertComponentEXT := wglGetProcAddress('glInsertComponentEXT');
-    if not Assigned(glInsertComponentEXT) then Exit;
-    glExtractComponentEXT := wglGetProcAddress('glExtractComponentEXT');
-    if not Assigned(glExtractComponentEXT) then Exit;
-    glGenSymbolsEXT := wglGetProcAddress('glGenSymbolsEXT');
-    if not Assigned(glGenSymbolsEXT) then Exit;
-    glSetInvariantEXT := wglGetProcAddress('glSetInvariantEXT');
-    if not Assigned(glSetInvariantEXT) then Exit;
-    glSetLocalConstantEXT := wglGetProcAddress('glSetLocalConstantEXT');
-    if not Assigned(glSetLocalConstantEXT) then Exit;
-    glVariantbvEXT := wglGetProcAddress('glVariantbvEXT');
-    if not Assigned(glVariantbvEXT) then Exit;
-    glVariantsvEXT := wglGetProcAddress('glVariantsvEXT');
-    if not Assigned(glVariantsvEXT) then Exit;
-    glVariantivEXT := wglGetProcAddress('glVariantivEXT');
-    if not Assigned(glVariantivEXT) then Exit;
-    glVariantfvEXT := wglGetProcAddress('glVariantfvEXT');
-    if not Assigned(glVariantfvEXT) then Exit;
-    glVariantdvEXT := wglGetProcAddress('glVariantdvEXT');
-    if not Assigned(glVariantdvEXT) then Exit;
-    glVariantubvEXT := wglGetProcAddress('glVariantubvEXT');
-    if not Assigned(glVariantubvEXT) then Exit;
-    glVariantusvEXT := wglGetProcAddress('glVariantusvEXT');
-    if not Assigned(glVariantusvEXT) then Exit;
-    glVariantuivEXT := wglGetProcAddress('glVariantuivEXT');
-    if not Assigned(glVariantuivEXT) then Exit;
-    glVariantPointerEXT := wglGetProcAddress('glVariantPointerEXT');
-    if not Assigned(glVariantPointerEXT) then Exit;
-    glEnableVariantClientStateEXT := wglGetProcAddress('glEnableVariantClientStateEXT');
-    if not Assigned(glEnableVariantClientStateEXT) then Exit;
-    glDisableVariantClientStateEXT := wglGetProcAddress('glDisableVariantClientStateEXT');
-    if not Assigned(glDisableVariantClientStateEXT) then Exit;
-    glBindLightParameterEXT := wglGetProcAddress('glBindLightParameterEXT');
-    if not Assigned(glBindLightParameterEXT) then Exit;
-    glBindMaterialParameterEXT := wglGetProcAddress('glBindMaterialParameterEXT');
-    if not Assigned(glBindMaterialParameterEXT) then Exit;
-    glBindTexGenParameterEXT := wglGetProcAddress('glBindTexGenParameterEXT');
-    if not Assigned(glBindTexGenParameterEXT) then Exit;
-    glBindTextureUnitParameterEXT := wglGetProcAddress('glBindTextureUnitParameterEXT');
-    if not Assigned(glBindTextureUnitParameterEXT) then Exit;
-    glBindParameterEXT := wglGetProcAddress('glBindParameterEXT');
-    if not Assigned(glBindParameterEXT) then Exit;
-    glIsVariantEnabledEXT := wglGetProcAddress('glIsVariantEnabledEXT');
-    if not Assigned(glIsVariantEnabledEXT) then Exit;
-    glGetVariantBooleanvEXT := wglGetProcAddress('glGetVariantBooleanvEXT');
-    if not Assigned(glGetVariantBooleanvEXT) then Exit;
-    glGetVariantIntegervEXT := wglGetProcAddress('glGetVariantIntegervEXT');
-    if not Assigned(glGetVariantIntegervEXT) then Exit;
-    glGetVariantFloatvEXT := wglGetProcAddress('glGetVariantFloatvEXT');
-    if not Assigned(glGetVariantFloatvEXT) then Exit;
-    glGetVariantPointervEXT := wglGetProcAddress('glGetVariantPointervEXT');
-    if not Assigned(glGetVariantPointervEXT) then Exit;
-    glGetInvariantBooleanvEXT := wglGetProcAddress('glGetInvariantBooleanvEXT');
-    if not Assigned(glGetInvariantBooleanvEXT) then Exit;
-    glGetInvariantIntegervEXT := wglGetProcAddress('glGetInvariantIntegervEXT');
-    if not Assigned(glGetInvariantIntegervEXT) then Exit;
-    glGetInvariantFloatvEXT := wglGetProcAddress('glGetInvariantFloatvEXT');
-    if not Assigned(glGetInvariantFloatvEXT) then Exit;
-    glGetLocalConstantBooleanvEXT := wglGetProcAddress('glGetLocalConstantBooleanvEXT');
-    if not Assigned(glGetLocalConstantBooleanvEXT) then Exit;
-    glGetLocalConstantIntegervEXT := wglGetProcAddress('glGetLocalConstantIntegervEXT');
-    if not Assigned(glGetLocalConstantIntegervEXT) then Exit;
-    glGetLocalConstantFloatvEXT := wglGetProcAddress('glGetLocalConstantFloatvEXT');
-    if not Assigned(glGetLocalConstantFloatvEXT) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_vertex_weighting: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_EXT_vertex_weighting', extstring) then
-  begin
-    glVertexWeightfEXT := wglGetProcAddress('glVertexWeightfEXT');
-    if not Assigned(glVertexWeightfEXT) then Exit;
-    glVertexWeightfvEXT := wglGetProcAddress('glVertexWeightfvEXT');
-    if not Assigned(glVertexWeightfvEXT) then Exit;
-    glVertexWeightPointerEXT := wglGetProcAddress('glVertexWeightPointerEXT');
-    if not Assigned(glVertexWeightPointerEXT) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_HP_occlusion_test: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_HP_occlusion_test', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_NV_blend_square: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_NV_blend_square', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_NV_copy_depth_to_color: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_NV_copy_depth_to_color', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_NV_depth_clamp: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_NV_depth_clamp', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_NV_evaluators: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_NV_evaluators', extstring) then
-  begin
-    glMapControlPointsNV := wglGetProcAddress('glMapControlPointsNV');
-    if not Assigned(glMapControlPointsNV) then Exit;
-    glMapParameterivNV := wglGetProcAddress('glMapParameterivNV');
-    if not Assigned(glMapParameterivNV) then Exit;
-    glMapParameterfvNV := wglGetProcAddress('glMapParameterfvNV');
-    if not Assigned(glMapParameterfvNV) then Exit;
-    glGetMapControlPointsNV := wglGetProcAddress('glGetMapControlPointsNV');
-    if not Assigned(glGetMapControlPointsNV) then Exit;
-    glGetMapParameterivNV := wglGetProcAddress('glGetMapParameterivNV');
-    if not Assigned(glGetMapParameterivNV) then Exit;
-    glGetMapParameterfvNV := wglGetProcAddress('glGetMapParameterfvNV');
-    if not Assigned(glGetMapParameterfvNV) then Exit;
-    glGetMapAttribParameterivNV := wglGetProcAddress('glGetMapAttribParameterivNV');
-    if not Assigned(glGetMapAttribParameterivNV) then Exit;
-    glGetMapAttribParameterfvNV := wglGetProcAddress('glGetMapAttribParameterfvNV');
-    if not Assigned(glGetMapAttribParameterfvNV) then Exit;
-    glEvalMapsNV := wglGetProcAddress('glEvalMapsNV');
-    if not Assigned(glEvalMapsNV) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_NV_fence: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_NV_fence', extstring) then
-  begin
-    glGenFencesNV := wglGetProcAddress('glGenFencesNV');
-    if not Assigned(glGenFencesNV) then Exit;
-    glDeleteFencesNV := wglGetProcAddress('glDeleteFencesNV');
-    if not Assigned(glDeleteFencesNV) then Exit;
-    glSetFenceNV := wglGetProcAddress('glSetFenceNV');
-    if not Assigned(glSetFenceNV) then Exit;
-    glTestFenceNV := wglGetProcAddress('glTestFenceNV');
-    if not Assigned(glTestFenceNV) then Exit;
-    glFinishFenceNV := wglGetProcAddress('glFinishFenceNV');
-    if not Assigned(glFinishFenceNV) then Exit;
-    glIsFenceNV := wglGetProcAddress('glIsFenceNV');
-    if not Assigned(glIsFenceNV) then Exit;
-    glGetFenceivNV := wglGetProcAddress('glGetFenceivNV');
-    if not Assigned(glGetFenceivNV) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_NV_fog_distance: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_NV_fog_distance', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_NV_light_max_exponent: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_NV_light_max_exponent', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_NV_multisample_filter_hint: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_NV_multisample_filter_hint', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_NV_occlusion_query: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_NV_occlusion_query', extstring) then
-  begin
-    glGenOcclusionQueriesNV := wglGetProcAddress('glGenOcclusionQueriesNV');
-    if not Assigned(glGenOcclusionQueriesNV) then Exit;
-    glDeleteOcclusionQueriesNV := wglGetProcAddress('glDeleteOcclusionQueriesNV');
-    if not Assigned(glDeleteOcclusionQueriesNV) then Exit;
-    glIsOcclusionQueryNV := wglGetProcAddress('glIsOcclusionQueryNV');
-    if not Assigned(glIsOcclusionQueryNV) then Exit;
-    glBeginOcclusionQueryNV := wglGetProcAddress('glBeginOcclusionQueryNV');
-    if not Assigned(glBeginOcclusionQueryNV) then Exit;
-    glEndOcclusionQueryNV := wglGetProcAddress('glEndOcclusionQueryNV');
-    if not Assigned(glEndOcclusionQueryNV) then Exit;
-    glGetOcclusionQueryivNV := wglGetProcAddress('glGetOcclusionQueryivNV');
-    if not Assigned(glGetOcclusionQueryivNV) then Exit;
-    glGetOcclusionQueryuivNV := wglGetProcAddress('glGetOcclusionQueryuivNV');
-    if not Assigned(glGetOcclusionQueryuivNV) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_NV_packed_depth_stencil: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_NV_packed_depth_stencil', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_NV_point_sprite: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_NV_point_sprite', extstring) then
-  begin
-    glPointParameteriNV := wglGetProcAddress('glPointParameteriNV');
-    if not Assigned(glPointParameteriNV) then Exit;
-    glPointParameterivNV := wglGetProcAddress('glPointParameterivNV');
-    if not Assigned(glPointParameterivNV) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_NV_register_combiners: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_NV_register_combiners', extstring) then
-  begin
-    glCombinerParameterfvNV := wglGetProcAddress('glCombinerParameterfvNV');
-    if not Assigned(glCombinerParameterfvNV) then Exit;
-    glCombinerParameterivNV := wglGetProcAddress('glCombinerParameterivNV');
-    if not Assigned(glCombinerParameterivNV) then Exit;
-    glCombinerParameterfNV := wglGetProcAddress('glCombinerParameterfNV');
-    if not Assigned(glCombinerParameterfNV) then Exit;
-    glCombinerParameteriNV := wglGetProcAddress('glCombinerParameteriNV');
-    if not Assigned(glCombinerParameteriNV) then Exit;
-    glCombinerInputNV := wglGetProcAddress('glCombinerInputNV');
-    if not Assigned(glCombinerInputNV) then Exit;
-    glCombinerOutputNV := wglGetProcAddress('glCombinerOutputNV');
-    if not Assigned(glCombinerOutputNV) then Exit;
-    glFinalCombinerInputNV := wglGetProcAddress('glFinalCombinerInputNV');
-    if not Assigned(glFinalCombinerInputNV) then Exit;
-    glGetCombinerInputParameterfvNV := wglGetProcAddress('glGetCombinerInputParameterfvNV');
-    if not Assigned(glGetCombinerInputParameterfvNV) then Exit;
-    glGetCombinerInputParameterivNV := wglGetProcAddress('glGetCombinerInputParameterivNV');
-    if not Assigned(glGetCombinerInputParameterivNV) then Exit;
-    glGetCombinerOutputParameterfvNV := wglGetProcAddress('glGetCombinerOutputParameterfvNV');
-    if not Assigned(glGetCombinerOutputParameterfvNV) then Exit;
-    glGetCombinerOutputParameterivNV := wglGetProcAddress('glGetCombinerOutputParameterivNV');
-    if not Assigned(glGetCombinerOutputParameterivNV) then Exit;
-    glGetFinalCombinerInputParameterfvNV := wglGetProcAddress('glGetFinalCombinerInputParameterfvNV');
-    if not Assigned(glGetFinalCombinerInputParameterfvNV) then Exit;
-    glGetFinalCombinerInputParameterivNV := wglGetProcAddress('glGetFinalCombinerInputParameterivNV');
-    if not Assigned(glGetFinalCombinerInputParameterivNV) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_NV_register_combiners2: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_NV_register_combiners2', extstring) then
-  begin
-    glCombinerStageParameterfvNV := wglGetProcAddress('glCombinerStageParameterfvNV');
-    if not Assigned(glCombinerStageParameterfvNV) then Exit;
-    glGetCombinerStageParameterfvNV := wglGetProcAddress('glGetCombinerStageParameterfvNV');
-    if not Assigned(glGetCombinerStageParameterfvNV) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_NV_texgen_emboss: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_NV_texgen_emboss', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_NV_texgen_reflection: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_NV_texgen_reflection', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_NV_texture_compression_vtc: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_NV_texture_compression_vtc', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_NV_texture_env_combine4: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_NV_texture_env_combine4', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_NV_texture_rectangle: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_NV_texture_rectangle', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_NV_texture_shader: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_NV_texture_shader', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_NV_texture_shader2: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_NV_texture_shader2', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_NV_texture_shader3: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_NV_texture_shader3', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_NV_vertex_array_range: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_NV_vertex_array_range', extstring) then
-  begin
-    glVertexArrayRangeNV := wglGetProcAddress('glVertexArrayRangeNV');
-    if not Assigned(glVertexArrayRangeNV) then Exit;
-    glFlushVertexArrayRangeNV := wglGetProcAddress('glFlushVertexArrayRangeNV');
-    if not Assigned(glFlushVertexArrayRangeNV) then Exit;
-{$IFDEF Windows}
-    wglAllocateMemoryNV := wglGetProcAddress('wglAllocateMemoryNV');
-    if not Assigned(wglAllocateMemoryNV) then Exit;
-    wglFreeMemoryNV := wglGetProcAddress('wglFreeMemoryNV');
-    if not Assigned(wglFreeMemoryNV) then Exit;
-{$ENDIF}
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_NV_vertex_array_range2: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_NV_vertex_array_range2', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_NV_vertex_program: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_NV_vertex_program', extstring) then
-  begin
-    glBindProgramNV := wglGetProcAddress('glBindProgramNV');
-    if not Assigned(glBindProgramNV) then Exit;
-    glDeleteProgramsNV := wglGetProcAddress('glDeleteProgramsNV');
-    if not Assigned(glDeleteProgramsNV) then Exit;
-    glExecuteProgramNV := wglGetProcAddress('glExecuteProgramNV');
-    if not Assigned(glExecuteProgramNV) then Exit;
-    glGenProgramsNV := wglGetProcAddress('glGenProgramsNV');
-    if not Assigned(glGenProgramsNV) then Exit;
-    glAreProgramsResidentNV := wglGetProcAddress('glAreProgramsResidentNV');
-    if not Assigned(glAreProgramsResidentNV) then Exit;
-    glRequestResidentProgramsNV := wglGetProcAddress('glRequestResidentProgramsNV');
-    if not Assigned(glRequestResidentProgramsNV) then Exit;
-    glGetProgramParameterfvNV := wglGetProcAddress('glGetProgramParameterfvNV');
-    if not Assigned(glGetProgramParameterfvNV) then Exit;
-    glGetProgramParameterdvNV := wglGetProcAddress('glGetProgramParameterdvNV');
-    if not Assigned(glGetProgramParameterdvNV) then Exit;
-    glGetProgramivNV := wglGetProcAddress('glGetProgramivNV');
-    if not Assigned(glGetProgramivNV) then Exit;
-    glGetProgramStringNV := wglGetProcAddress('glGetProgramStringNV');
-    if not Assigned(glGetProgramStringNV) then Exit;
-    glGetTrackMatrixivNV := wglGetProcAddress('glGetTrackMatrixivNV');
-    if not Assigned(glGetTrackMatrixivNV) then Exit;
-    glGetVertexAttribdvNV := wglGetProcAddress('glGetVertexAttribdvNV');
-    if not Assigned(glGetVertexAttribdvNV) then Exit;
-    glGetVertexAttribfvNV := wglGetProcAddress('glGetVertexAttribfvNV');
-    if not Assigned(glGetVertexAttribfvNV) then Exit;
-    glGetVertexAttribivNV := wglGetProcAddress('glGetVertexAttribivNV');
-    if not Assigned(glGetVertexAttribivNV) then Exit;
-    glGetVertexAttribPointervNV := wglGetProcAddress('glGetVertexAttribPointervNV');
-    if not Assigned(glGetVertexAttribPointervNV) then Exit;
-    glIsProgramNV := wglGetProcAddress('glIsProgramNV');
-    if not Assigned(glIsProgramNV) then Exit;
-    glLoadProgramNV := wglGetProcAddress('glLoadProgramNV');
-    if not Assigned(glLoadProgramNV) then Exit;
-    glProgramParameter4fNV := wglGetProcAddress('glProgramParameter4fNV');
-    if not Assigned(glProgramParameter4fNV) then Exit;
-    glProgramParameter4fvNV := wglGetProcAddress('glProgramParameter4fvNV');
-    if not Assigned(glProgramParameter4fvNV) then Exit;
-    glProgramParameters4dvNV := wglGetProcAddress('glProgramParameters4dvNV');
-    if not Assigned(glProgramParameters4dvNV) then Exit;
-    glProgramParameters4fvNV := wglGetProcAddress('glProgramParameters4fvNV');
-    if not Assigned(glProgramParameters4fvNV) then Exit;
-    glTrackMatrixNV := wglGetProcAddress('glTrackMatrixNV');
-    if not Assigned(glTrackMatrixNV) then Exit;
-    glVertexAttribPointerNV := wglGetProcAddress('glVertexAttribPointerNV');
-    if not Assigned(glVertexAttribPointerNV) then Exit;
-    glVertexAttrib1sNV := wglGetProcAddress('glVertexAttrib1sNV');
-    if not Assigned(glVertexAttrib1sNV) then Exit;
-    glVertexAttrib1fNV := wglGetProcAddress('glVertexAttrib1fNV');
-    if not Assigned(glVertexAttrib1fNV) then Exit;
-    glVertexAttrib1dNV := wglGetProcAddress('glVertexAttrib1dNV');
-    if not Assigned(glVertexAttrib1dNV) then Exit;
-    glVertexAttrib2sNV := wglGetProcAddress('glVertexAttrib2sNV');
-    if not Assigned(glVertexAttrib2sNV) then Exit;
-    glVertexAttrib2fNV := wglGetProcAddress('glVertexAttrib2fNV');
-    if not Assigned(glVertexAttrib2fNV) then Exit;
-    glVertexAttrib2dNV := wglGetProcAddress('glVertexAttrib2dNV');
-    if not Assigned(glVertexAttrib2dNV) then Exit;
-    glVertexAttrib3sNV := wglGetProcAddress('glVertexAttrib3sNV');
-    if not Assigned(glVertexAttrib3sNV) then Exit;
-    glVertexAttrib3fNV := wglGetProcAddress('glVertexAttrib3fNV');
-    if not Assigned(glVertexAttrib3fNV) then Exit;
-    glVertexAttrib3dNV := wglGetProcAddress('glVertexAttrib3dNV');
-    if not Assigned(glVertexAttrib3dNV) then Exit;
-    glVertexAttrib4sNV := wglGetProcAddress('glVertexAttrib4sNV');
-    if not Assigned(glVertexAttrib4sNV) then Exit;
-    glVertexAttrib4fNV := wglGetProcAddress('glVertexAttrib4fNV');
-    if not Assigned(glVertexAttrib4fNV) then Exit;
-    glVertexAttrib4dNV := wglGetProcAddress('glVertexAttrib4dNV');
-    if not Assigned(glVertexAttrib4dNV) then Exit;
-    glVertexAttrib4ubNV := wglGetProcAddress('glVertexAttrib4ubNV');
-    if not Assigned(glVertexAttrib4ubNV) then Exit;
-    glVertexAttrib1svNV := wglGetProcAddress('glVertexAttrib1svNV');
-    if not Assigned(glVertexAttrib1svNV) then Exit;
-    glVertexAttrib1fvNV := wglGetProcAddress('glVertexAttrib1fvNV');
-    if not Assigned(glVertexAttrib1fvNV) then Exit;
-    glVertexAttrib1dvNV := wglGetProcAddress('glVertexAttrib1dvNV');
-    if not Assigned(glVertexAttrib1dvNV) then Exit;
-    glVertexAttrib2svNV := wglGetProcAddress('glVertexAttrib2svNV');
-    if not Assigned(glVertexAttrib2svNV) then Exit;
-    glVertexAttrib2fvNV := wglGetProcAddress('glVertexAttrib2fvNV');
-    if not Assigned(glVertexAttrib2fvNV) then Exit;
-    glVertexAttrib2dvNV := wglGetProcAddress('glVertexAttrib2dvNV');
-    if not Assigned(glVertexAttrib2dvNV) then Exit;
-    glVertexAttrib3svNV := wglGetProcAddress('glVertexAttrib3svNV');
-    if not Assigned(glVertexAttrib3svNV) then Exit;
-    glVertexAttrib3fvNV := wglGetProcAddress('glVertexAttrib3fvNV');
-    if not Assigned(glVertexAttrib3fvNV) then Exit;
-    glVertexAttrib3dvNV := wglGetProcAddress('glVertexAttrib3dvNV');
-    if not Assigned(glVertexAttrib3dvNV) then Exit;
-    glVertexAttrib4svNV := wglGetProcAddress('glVertexAttrib4svNV');
-    if not Assigned(glVertexAttrib4svNV) then Exit;
-    glVertexAttrib4fvNV := wglGetProcAddress('glVertexAttrib4fvNV');
-    if not Assigned(glVertexAttrib4fvNV) then Exit;
-    glVertexAttrib4dvNV := wglGetProcAddress('glVertexAttrib4dvNV');
-    if not Assigned(glVertexAttrib4dvNV) then Exit;
-    glVertexAttrib4ubvNV := wglGetProcAddress('glVertexAttrib4ubvNV');
-    if not Assigned(glVertexAttrib4ubvNV) then Exit;
-    glVertexAttribs1svNV := wglGetProcAddress('glVertexAttribs1svNV');
-    if not Assigned(glVertexAttribs1svNV) then Exit;
-    glVertexAttribs1fvNV := wglGetProcAddress('glVertexAttribs1fvNV');
-    if not Assigned(glVertexAttribs1fvNV) then Exit;
-    glVertexAttribs1dvNV := wglGetProcAddress('glVertexAttribs1dvNV');
-    if not Assigned(glVertexAttribs1dvNV) then Exit;
-    glVertexAttribs2svNV := wglGetProcAddress('glVertexAttribs2svNV');
-    if not Assigned(glVertexAttribs2svNV) then Exit;
-    glVertexAttribs2fvNV := wglGetProcAddress('glVertexAttribs2fvNV');
-    if not Assigned(glVertexAttribs2fvNV) then Exit;
-    glVertexAttribs2dvNV := wglGetProcAddress('glVertexAttribs2dvNV');
-    if not Assigned(glVertexAttribs2dvNV) then Exit;
-    glVertexAttribs3svNV := wglGetProcAddress('glVertexAttribs3svNV');
-    if not Assigned(glVertexAttribs3svNV) then Exit;
-    glVertexAttribs3fvNV := wglGetProcAddress('glVertexAttribs3fvNV');
-    if not Assigned(glVertexAttribs3fvNV) then Exit;
-    glVertexAttribs3dvNV := wglGetProcAddress('glVertexAttribs3dvNV');
-    if not Assigned(glVertexAttribs3dvNV) then Exit;
-    glVertexAttribs4svNV := wglGetProcAddress('glVertexAttribs4svNV');
-    if not Assigned(glVertexAttribs4svNV) then Exit;
-    glVertexAttribs4fvNV := wglGetProcAddress('glVertexAttribs4fvNV');
-    if not Assigned(glVertexAttribs4fvNV) then Exit;
-    glVertexAttribs4dvNV := wglGetProcAddress('glVertexAttribs4dvNV');
-    if not Assigned(glVertexAttribs4dvNV) then Exit;
-    glVertexAttribs4ubvNV := wglGetProcAddress('glVertexAttribs4ubvNV');
-    if not Assigned(glVertexAttribs4ubvNV) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_NV_vertex_program1_1: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_NV_vertex_program1_1', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ATI_element_array: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_ATI_element_array', extstring) then
-  begin
-    glElementPointerATI := wglGetProcAddress('glElementPointerATI');
-    if not Assigned(glElementPointerATI) then Exit;
-    glDrawElementArrayATI := wglGetProcAddress('glDrawElementArrayATI');
-    if not Assigned(glDrawElementArrayATI) then Exit;
-    glDrawRangeElementArrayATI := wglGetProcAddress('glDrawRangeElementArrayATI');
-    if not Assigned(glDrawRangeElementArrayATI) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ATI_envmap_bumpmap: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_ATI_envmap_bumpmap', extstring) then
-  begin
-    glTexBumpParameterivATI := wglGetProcAddress('glTexBumpParameterivATI');
-    if not Assigned(glTexBumpParameterivATI) then Exit;
-    glTexBumpParameterfvATI := wglGetProcAddress('glTexBumpParameterfvATI');
-    if not Assigned(glTexBumpParameterfvATI) then Exit;
-    glGetTexBumpParameterivATI := wglGetProcAddress('glGetTexBumpParameterivATI');
-    if not Assigned(glGetTexBumpParameterivATI) then Exit;
-    glGetTexBumpParameterfvATI := wglGetProcAddress('glGetTexBumpParameterfvATI');
-    if not Assigned(glGetTexBumpParameterfvATI) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ATI_fragment_shader: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_ATI_fragment_shader', extstring) then
-  begin
-    glGenFragmentShadersATI := wglGetProcAddress('glGenFragmentShadersATI');
-    if not Assigned(glGenFragmentShadersATI) then Exit;
-    glBindFragmentShaderATI := wglGetProcAddress('glBindFragmentShaderATI');
-    if not Assigned(glBindFragmentShaderATI) then Exit;
-    glDeleteFragmentShaderATI := wglGetProcAddress('glDeleteFragmentShaderATI');
-    if not Assigned(glDeleteFragmentShaderATI) then Exit;
-    glBeginFragmentShaderATI := wglGetProcAddress('glBeginFragmentShaderATI');
-    if not Assigned(glBeginFragmentShaderATI) then Exit;
-    glEndFragmentShaderATI := wglGetProcAddress('glEndFragmentShaderATI');
-    if not Assigned(glEndFragmentShaderATI) then Exit;
-    glPassTexCoordATI := wglGetProcAddress('glPassTexCoordATI');
-    if not Assigned(glPassTexCoordATI) then Exit;
-    glSampleMapATI := wglGetProcAddress('glSampleMapATI');
-    if not Assigned(glSampleMapATI) then Exit;
-    glColorFragmentOp1ATI := wglGetProcAddress('glColorFragmentOp1ATI');
-    if not Assigned(glColorFragmentOp1ATI) then Exit;
-    glColorFragmentOp2ATI := wglGetProcAddress('glColorFragmentOp2ATI');
-    if not Assigned(glColorFragmentOp2ATI) then Exit;
-    glColorFragmentOp3ATI := wglGetProcAddress('glColorFragmentOp3ATI');
-    if not Assigned(glColorFragmentOp3ATI) then Exit;
-    glAlphaFragmentOp1ATI := wglGetProcAddress('glAlphaFragmentOp1ATI');
-    if not Assigned(glAlphaFragmentOp1ATI) then Exit;
-    glAlphaFragmentOp2ATI := wglGetProcAddress('glAlphaFragmentOp2ATI');
-    if not Assigned(glAlphaFragmentOp2ATI) then Exit;
-    glAlphaFragmentOp3ATI := wglGetProcAddress('glAlphaFragmentOp3ATI');
-    if not Assigned(glAlphaFragmentOp3ATI) then Exit;
-    glSetFragmentShaderConstantATI := wglGetProcAddress('glSetFragmentShaderConstantATI');
-    if not Assigned(glSetFragmentShaderConstantATI) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ATI_pn_triangles: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_ATI_pn_triangles', extstring) then
-  begin
-    glPNTrianglesiATI := wglGetProcAddress('glPNTrianglesiATI');
-    if not Assigned(glPNTrianglesiATI) then Exit;
-    glPNTrianglesfATI := wglGetProcAddress('glPNTrianglesfATI');
-    if not Assigned(glPNTrianglesfATI) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ATI_texture_mirror_once: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_ATI_texture_mirror_once', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ATI_vertex_array_object: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_ATI_vertex_array_object', extstring) then
-  begin
-    glNewObjectBufferATI := wglGetProcAddress('glNewObjectBufferATI');
-    if not Assigned(glNewObjectBufferATI) then Exit;
-    glIsObjectBufferATI := wglGetProcAddress('glIsObjectBufferATI');
-    if not Assigned(glIsObjectBufferATI) then Exit;
-    glUpdateObjectBufferATI := wglGetProcAddress('glUpdateObjectBufferATI');
-    if not Assigned(glUpdateObjectBufferATI) then Exit;
-    glGetObjectBufferfvATI := wglGetProcAddress('glGetObjectBufferfvATI');
-    if not Assigned(glGetObjectBufferfvATI) then Exit;
-    glGetObjectBufferivATI := wglGetProcAddress('glGetObjectBufferivATI');
-    if not Assigned(glGetObjectBufferivATI) then Exit;
-    glDeleteObjectBufferATI := wglGetProcAddress('glDeleteObjectBufferATI');
-    if not Assigned(glDeleteObjectBufferATI) then Exit;
-    glArrayObjectATI := wglGetProcAddress('glArrayObjectATI');
-    if not Assigned(glArrayObjectATI) then Exit;
-    glGetArrayObjectfvATI := wglGetProcAddress('glGetArrayObjectfvATI');
-    if not Assigned(glGetArrayObjectfvATI) then Exit;
-    glGetArrayObjectivATI := wglGetProcAddress('glGetArrayObjectivATI');
-    if not Assigned(glGetArrayObjectivATI) then Exit;
-    glVariantArrayObjectATI := wglGetProcAddress('glVariantArrayObjectATI');
-    if not Assigned(glVariantArrayObjectATI) then Exit;
-    glGetVariantArrayObjectfvATI := wglGetProcAddress('glGetVariantArrayObjectfvATI');
-    if not Assigned(glGetVariantArrayObjectfvATI) then Exit;
-    glGetVariantArrayObjectivATI := wglGetProcAddress('glGetVariantArrayObjectivATI');
-    if not Assigned(glGetVariantArrayObjectivATI) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ATI_vertex_streams: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_ATI_vertex_streams', extstring) then
-  begin
-    glVertexStream1s := wglGetProcAddress('glVertexStream1s');
-    if not Assigned(glVertexStream1s) then Exit;
-    glVertexStream1i := wglGetProcAddress('glVertexStream1i');
-    if not Assigned(glVertexStream1i) then Exit;
-    glVertexStream1f := wglGetProcAddress('glVertexStream1f');
-    if not Assigned(glVertexStream1f) then Exit;
-    glVertexStream1d := wglGetProcAddress('glVertexStream1d');
-    if not Assigned(glVertexStream1d) then Exit;
-    glVertexStream1sv := wglGetProcAddress('glVertexStream1sv');
-    if not Assigned(glVertexStream1sv) then Exit;
-    glVertexStream1iv := wglGetProcAddress('glVertexStream1iv');
-    if not Assigned(glVertexStream1iv) then Exit;
-    glVertexStream1fv := wglGetProcAddress('glVertexStream1fv');
-    if not Assigned(glVertexStream1fv) then Exit;
-    glVertexStream1dv := wglGetProcAddress('glVertexStream1dv');
-    if not Assigned(glVertexStream1dv) then Exit;
-    glVertexStream2s := wglGetProcAddress('glVertexStream2s');
-    if not Assigned(glVertexStream2s) then Exit;
-    glVertexStream2i := wglGetProcAddress('glVertexStream2i');
-    if not Assigned(glVertexStream2i) then Exit;
-    glVertexStream2f := wglGetProcAddress('glVertexStream2f');
-    if not Assigned(glVertexStream2f) then Exit;
-    glVertexStream2d := wglGetProcAddress('glVertexStream2d');
-    if not Assigned(glVertexStream2d) then Exit;
-    glVertexStream2sv := wglGetProcAddress('glVertexStream2sv');
-    if not Assigned(glVertexStream2sv) then Exit;
-    glVertexStream2iv := wglGetProcAddress('glVertexStream2iv');
-    if not Assigned(glVertexStream2iv) then Exit;
-    glVertexStream2fv := wglGetProcAddress('glVertexStream2fv');
-    if not Assigned(glVertexStream2fv) then Exit;
-    glVertexStream2dv := wglGetProcAddress('glVertexStream2dv');
-    if not Assigned(glVertexStream2dv) then Exit;
-    glVertexStream3s := wglGetProcAddress('glVertexStream3s');
-    if not Assigned(glVertexStream3s) then Exit;
-    glVertexStream3i := wglGetProcAddress('glVertexStream3i');
-    if not Assigned(glVertexStream3i) then Exit;
-    glVertexStream3f := wglGetProcAddress('glVertexStream3f');
-    if not Assigned(glVertexStream3f) then Exit;
-    glVertexStream3d := wglGetProcAddress('glVertexStream3d');
-    if not Assigned(glVertexStream3d) then Exit;
-    glVertexStream3sv := wglGetProcAddress('glVertexStream3sv');
-    if not Assigned(glVertexStream3sv) then Exit;
-    glVertexStream3iv := wglGetProcAddress('glVertexStream3iv');
-    if not Assigned(glVertexStream3iv) then Exit;
-    glVertexStream3fv := wglGetProcAddress('glVertexStream3fv');
-    if not Assigned(glVertexStream3fv) then Exit;
-    glVertexStream3dv := wglGetProcAddress('glVertexStream3dv');
-    if not Assigned(glVertexStream3dv) then Exit;
-    glVertexStream4s := wglGetProcAddress('glVertexStream4s');
-    if not Assigned(glVertexStream4s) then Exit;
-    glVertexStream4i := wglGetProcAddress('glVertexStream4i');
-    if not Assigned(glVertexStream4i) then Exit;
-    glVertexStream4f := wglGetProcAddress('glVertexStream4f');
-    if not Assigned(glVertexStream4f) then Exit;
-    glVertexStream4d := wglGetProcAddress('glVertexStream4d');
-    if not Assigned(glVertexStream4d) then Exit;
-    glVertexStream4sv := wglGetProcAddress('glVertexStream4sv');
-    if not Assigned(glVertexStream4sv) then Exit;
-    glVertexStream4iv := wglGetProcAddress('glVertexStream4iv');
-    if not Assigned(glVertexStream4iv) then Exit;
-    glVertexStream4fv := wglGetProcAddress('glVertexStream4fv');
-    if not Assigned(glVertexStream4fv) then Exit;
-    glVertexStream4dv := wglGetProcAddress('glVertexStream4dv');
-    if not Assigned(glVertexStream4dv) then Exit;
-    glNormalStream3b := wglGetProcAddress('glNormalStream3b');
-    if not Assigned(glNormalStream3b) then Exit;
-    glNormalStream3s := wglGetProcAddress('glNormalStream3s');
-    if not Assigned(glNormalStream3s) then Exit;
-    glNormalStream3i := wglGetProcAddress('glNormalStream3i');
-    if not Assigned(glNormalStream3i) then Exit;
-    glNormalStream3f := wglGetProcAddress('glNormalStream3f');
-    if not Assigned(glNormalStream3f) then Exit;
-    glNormalStream3d := wglGetProcAddress('glNormalStream3d');
-    if not Assigned(glNormalStream3d) then Exit;
-    glNormalStream3bv := wglGetProcAddress('glNormalStream3bv');
-    if not Assigned(glNormalStream3bv) then Exit;
-    glNormalStream3sv := wglGetProcAddress('glNormalStream3sv');
-    if not Assigned(glNormalStream3sv) then Exit;
-    glNormalStream3iv := wglGetProcAddress('glNormalStream3iv');
-    if not Assigned(glNormalStream3iv) then Exit;
-    glNormalStream3fv := wglGetProcAddress('glNormalStream3fv');
-    if not Assigned(glNormalStream3fv) then Exit;
-    glNormalStream3dv := wglGetProcAddress('glNormalStream3dv');
-    if not Assigned(glNormalStream3dv) then Exit;
-    glClientActiveVertexStream := wglGetProcAddress('glClientActiveVertexStream');
-    if not Assigned(glClientActiveVertexStream) then Exit;
-    glVertexBlendEnvi := wglGetProcAddress('glVertexBlendEnvi');
-    if not Assigned(glVertexBlendEnvi) then Exit;
-    glVertexBlendEnvf := wglGetProcAddress('glVertexBlendEnvf');
-    if not Assigned(glVertexBlendEnvf) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-{$IFDEF Windows}
-function Load_WGL_I3D_image_buffer: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB');
-  if not Assigned(wglGetExtensionsStringARB) then Exit;
-  extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC)));
-
-  if glext_ExtensionSupported('WGL_I3D_image_buffer', extstring) then
-  begin
-    wglCreateImageBufferI3D := wglGetProcAddress('wglCreateImageBufferI3D');
-    if not Assigned(wglCreateImageBufferI3D) then Exit;
-    wglDestroyImageBufferI3D := wglGetProcAddress('wglDestroyImageBufferI3D');
-    if not Assigned(wglDestroyImageBufferI3D) then Exit;
-    wglAssociateImageBufferEventsI3D := wglGetProcAddress('wglAssociateImageBufferEventsI3D');
-    if not Assigned(wglAssociateImageBufferEventsI3D) then Exit;
-    wglReleaseImageBufferEventsI3D := wglGetProcAddress('wglReleaseImageBufferEventsI3D');
-    if not Assigned(wglReleaseImageBufferEventsI3D) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_WGL_I3D_swap_frame_lock: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB');
-  if not Assigned(wglGetExtensionsStringARB) then Exit;
-  extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC)));
-
-  if glext_ExtensionSupported('WGL_I3D_swap_frame_lock', extstring) then
-  begin
-    wglEnableFrameLockI3D := wglGetProcAddress('wglEnableFrameLockI3D');
-    if not Assigned(wglEnableFrameLockI3D) then Exit;
-    wglDisableFrameLockI3D := wglGetProcAddress('wglDisableFrameLockI3D');
-    if not Assigned(wglDisableFrameLockI3D) then Exit;
-    wglIsEnabledFrameLockI3D := wglGetProcAddress('wglIsEnabledFrameLockI3D');
-    if not Assigned(wglIsEnabledFrameLockI3D) then Exit;
-    wglQueryFrameLockMasterI3D := wglGetProcAddress('wglQueryFrameLockMasterI3D');
-    if not Assigned(wglQueryFrameLockMasterI3D) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_WGL_I3D_swap_frame_usage: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB');
-  if not Assigned(wglGetExtensionsStringARB) then Exit;
-  extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC)));
-
-  if glext_ExtensionSupported('WGL_I3D_swap_frame_usage', extstring) then
-  begin
-    wglGetFrameUsageI3D := wglGetProcAddress('wglGetFrameUsageI3D');
-    if not Assigned(wglGetFrameUsageI3D) then Exit;
-    wglBeginFrameTrackingI3D := wglGetProcAddress('wglBeginFrameTrackingI3D');
-    if not Assigned(wglBeginFrameTrackingI3D) then Exit;
-    wglEndFrameTrackingI3D := wglGetProcAddress('wglEndFrameTrackingI3D');
-    if not Assigned(wglEndFrameTrackingI3D) then Exit;
-    wglQueryFrameTrackingI3D := wglGetProcAddress('wglQueryFrameTrackingI3D');
-    if not Assigned(wglQueryFrameTrackingI3D) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-{$ENDIF}
-
-function Load_GL_3DFX_texture_compression_FXT1: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_3DFX_texture_compression_FXT1', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_IBM_cull_vertex: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_IBM_cull_vertex', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_IBM_multimode_draw_arrays: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_IBM_multimode_draw_arrays', extstring) then
-  begin
-    glMultiModeDrawArraysIBM := wglGetProcAddress('glMultiModeDrawArraysIBM');
-    if not Assigned(glMultiModeDrawArraysIBM) then Exit;
-    glMultiModeDrawElementsIBM := wglGetProcAddress('glMultiModeDrawElementsIBM');
-    if not Assigned(glMultiModeDrawElementsIBM) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_IBM_raster_pos_clip: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_IBM_raster_pos_clip', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_IBM_texture_mirrored_repeat: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_IBM_texture_mirrored_repeat', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_IBM_vertex_array_lists: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_IBM_vertex_array_lists', extstring) then
-  begin
-    glColorPointerListIBM := wglGetProcAddress('glColorPointerListIBM');
-    if not Assigned(glColorPointerListIBM) then Exit;
-    glSecondaryColorPointerListIBM := wglGetProcAddress('glSecondaryColorPointerListIBM');
-    if not Assigned(glSecondaryColorPointerListIBM) then Exit;
-    glEdgeFlagPointerListIBM := wglGetProcAddress('glEdgeFlagPointerListIBM');
-    if not Assigned(glEdgeFlagPointerListIBM) then Exit;
-    glFogCoordPointerListIBM := wglGetProcAddress('glFogCoordPointerListIBM');
-    if not Assigned(glFogCoordPointerListIBM) then Exit;
-    glNormalPointerListIBM := wglGetProcAddress('glNormalPointerListIBM');
-    if not Assigned(glNormalPointerListIBM) then Exit;
-    glTexCoordPointerListIBM := wglGetProcAddress('glTexCoordPointerListIBM');
-    if not Assigned(glTexCoordPointerListIBM) then Exit;
-    glVertexPointerListIBM := wglGetProcAddress('glVertexPointerListIBM');
-    if not Assigned(glVertexPointerListIBM) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_MESA_resize_buffers: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_MESA_resize_buffers', extstring) then
-  begin
-    glResizeBuffersMESA := wglGetProcAddress('glResizeBuffersMESA');
-    if not Assigned(glResizeBuffersMESA) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_MESA_window_pos: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_MESA_window_pos', extstring) then
-  begin
-    glWindowPos2dMESA := wglGetProcAddress('glWindowPos2dMESA');
-    if not Assigned(glWindowPos2dMESA) then Exit;
-    glWindowPos2fMESA := wglGetProcAddress('glWindowPos2fMESA');
-    if not Assigned(glWindowPos2fMESA) then Exit;
-    glWindowPos2iMESA := wglGetProcAddress('glWindowPos2iMESA');
-    if not Assigned(glWindowPos2iMESA) then Exit;
-    glWindowPos2sMESA := wglGetProcAddress('glWindowPos2sMESA');
-    if not Assigned(glWindowPos2sMESA) then Exit;
-    glWindowPos2ivMESA := wglGetProcAddress('glWindowPos2ivMESA');
-    if not Assigned(glWindowPos2ivMESA) then Exit;
-    glWindowPos2svMESA := wglGetProcAddress('glWindowPos2svMESA');
-    if not Assigned(glWindowPos2svMESA) then Exit;
-    glWindowPos2fvMESA := wglGetProcAddress('glWindowPos2fvMESA');
-    if not Assigned(glWindowPos2fvMESA) then Exit;
-    glWindowPos2dvMESA := wglGetProcAddress('glWindowPos2dvMESA');
-    if not Assigned(glWindowPos2dvMESA) then Exit;
-    glWindowPos3iMESA := wglGetProcAddress('glWindowPos3iMESA');
-    if not Assigned(glWindowPos3iMESA) then Exit;
-    glWindowPos3sMESA := wglGetProcAddress('glWindowPos3sMESA');
-    if not Assigned(glWindowPos3sMESA) then Exit;
-    glWindowPos3fMESA := wglGetProcAddress('glWindowPos3fMESA');
-    if not Assigned(glWindowPos3fMESA) then Exit;
-    glWindowPos3dMESA := wglGetProcAddress('glWindowPos3dMESA');
-    if not Assigned(glWindowPos3dMESA) then Exit;
-    glWindowPos3ivMESA := wglGetProcAddress('glWindowPos3ivMESA');
-    if not Assigned(glWindowPos3ivMESA) then Exit;
-    glWindowPos3svMESA := wglGetProcAddress('glWindowPos3svMESA');
-    if not Assigned(glWindowPos3svMESA) then Exit;
-    glWindowPos3fvMESA := wglGetProcAddress('glWindowPos3fvMESA');
-    if not Assigned(glWindowPos3fvMESA) then Exit;
-    glWindowPos3dvMESA := wglGetProcAddress('glWindowPos3dvMESA');
-    if not Assigned(glWindowPos3dvMESA) then Exit;
-    glWindowPos4iMESA := wglGetProcAddress('glWindowPos4iMESA');
-    if not Assigned(glWindowPos4iMESA) then Exit;
-    glWindowPos4sMESA := wglGetProcAddress('glWindowPos4sMESA');
-    if not Assigned(glWindowPos4sMESA) then Exit;
-    glWindowPos4fMESA := wglGetProcAddress('glWindowPos4fMESA');
-    if not Assigned(glWindowPos4fMESA) then Exit;
-    glWindowPos4dMESA := wglGetProcAddress('glWindowPos4dMESA');
-    if not Assigned(glWindowPos4dMESA) then Exit;
-    glWindowPos4ivMESA := wglGetProcAddress('glWindowPos4ivMESA');
-    if not Assigned(glWindowPos4ivMESA) then Exit;
-    glWindowPos4svMESA := wglGetProcAddress('glWindowPos4svMESA');
-    if not Assigned(glWindowPos4svMESA) then Exit;
-    glWindowPos4fvMESA := wglGetProcAddress('glWindowPos4fvMESA');
-    if not Assigned(glWindowPos4fvMESA) then Exit;
-    glWindowPos4dvMESA := wglGetProcAddress('glWindowPos4dvMESA');
-    if not Assigned(glWindowPos4dvMESA) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_OML_interlace: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_OML_interlace', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_OML_resample: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_OML_resample', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_OML_subsample: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_OML_subsample', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_SGIS_generate_mipmap: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_SGIS_generate_mipmap', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_SGIS_multisample: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_SGIS_multisample', extstring) then
-  begin
-    glSampleMaskSGIS := wglGetProcAddress('glSampleMaskSGIS');
-    if not Assigned(glSampleMaskSGIS) then Exit;
-    glSamplePatternSGIS := wglGetProcAddress('glSamplePatternSGIS');
-    if not Assigned(glSamplePatternSGIS) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_SGIS_pixel_texture: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_SGIS_pixel_texture', extstring) then
-  begin
-    glPixelTexGenParameteriSGIS := wglGetProcAddress('glPixelTexGenParameteriSGIS');
-    if not Assigned(glPixelTexGenParameteriSGIS) then Exit;
-    glPixelTexGenParameterfSGIS := wglGetProcAddress('glPixelTexGenParameterfSGIS');
-    if not Assigned(glPixelTexGenParameterfSGIS) then Exit;
-    glGetPixelTexGenParameterivSGIS := wglGetProcAddress('glGetPixelTexGenParameterivSGIS');
-    if not Assigned(glGetPixelTexGenParameterivSGIS) then Exit;
-    glGetPixelTexGenParameterfvSGIS := wglGetProcAddress('glGetPixelTexGenParameterfvSGIS');
-    if not Assigned(glGetPixelTexGenParameterfvSGIS) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_SGIS_texture_border_clamp: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_SGIS_texture_border_clamp', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_SGIS_texture_color_mask: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_SGIS_texture_color_mask', extstring) then
-  begin
-    glTextureColorMaskSGIS := wglGetProcAddress('glTextureColorMaskSGIS');
-    if not Assigned(glTextureColorMaskSGIS) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_SGIS_texture_edge_clamp: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_SGIS_texture_edge_clamp', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_SGIS_texture_lod: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_SGIS_texture_lod', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_SGIS_depth_texture: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_SGIS_depth_texture', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_SGIX_fog_offset: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_SGIX_fog_offset', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_SGIX_interlace: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_SGIX_interlace', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_SGIX_shadow_ambient: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_SGIX_shadow_ambient', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_SGI_color_matrix: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_SGI_color_matrix', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_SGI_color_table: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_SGI_color_table', extstring) then
-  begin
-    glColorTableSGI := wglGetProcAddress('glColorTableSGI');
-    if not Assigned(glColorTableSGI) then Exit;
-    glCopyColorTableSGI := wglGetProcAddress('glCopyColorTableSGI');
-    if not Assigned(glCopyColorTableSGI) then Exit;
-    glColorTableParameterivSGI := wglGetProcAddress('glColorTableParameterivSGI');
-    if not Assigned(glColorTableParameterivSGI) then Exit;
-    glColorTableParameterfvSGI := wglGetProcAddress('glColorTableParameterfvSGI');
-    if not Assigned(glColorTableParameterfvSGI) then Exit;
-    glGetColorTableSGI := wglGetProcAddress('glGetColorTableSGI');
-    if not Assigned(glGetColorTableSGI) then Exit;
-    glGetColorTableParameterivSGI := wglGetProcAddress('glGetColorTableParameterivSGI');
-    if not Assigned(glGetColorTableParameterivSGI) then Exit;
-    glGetColorTableParameterfvSGI := wglGetProcAddress('glGetColorTableParameterfvSGI');
-    if not Assigned(glGetColorTableParameterfvSGI) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_SGI_texture_color_table: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_SGI_texture_color_table', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_SUN_vertex: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_SUN_vertex', extstring) then
-  begin
-    glColor4ubVertex2fSUN := wglGetProcAddress('glColor4ubVertex2fSUN');
-    if not Assigned(glColor4ubVertex2fSUN) then Exit;
-    glColor4ubVertex2fvSUN := wglGetProcAddress('glColor4ubVertex2fvSUN');
-    if not Assigned(glColor4ubVertex2fvSUN) then Exit;
-    glColor4ubVertex3fSUN := wglGetProcAddress('glColor4ubVertex3fSUN');
-    if not Assigned(glColor4ubVertex3fSUN) then Exit;
-    glColor4ubVertex3fvSUN := wglGetProcAddress('glColor4ubVertex3fvSUN');
-    if not Assigned(glColor4ubVertex3fvSUN) then Exit;
-    glColor3fVertex3fSUN := wglGetProcAddress('glColor3fVertex3fSUN');
-    if not Assigned(glColor3fVertex3fSUN) then Exit;
-    glColor3fVertex3fvSUN := wglGetProcAddress('glColor3fVertex3fvSUN');
-    if not Assigned(glColor3fVertex3fvSUN) then Exit;
-    glNormal3fVertex3fSUN := wglGetProcAddress('glNormal3fVertex3fSUN');
-    if not Assigned(glNormal3fVertex3fSUN) then Exit;
-    glNormal3fVertex3fvSUN := wglGetProcAddress('glNormal3fVertex3fvSUN');
-    if not Assigned(glNormal3fVertex3fvSUN) then Exit;
-    glColor4fNormal3fVertex3fSUN := wglGetProcAddress('glColor4fNormal3fVertex3fSUN');
-    if not Assigned(glColor4fNormal3fVertex3fSUN) then Exit;
-    glColor4fNormal3fVertex3fvSUN := wglGetProcAddress('glColor4fNormal3fVertex3fvSUN');
-    if not Assigned(glColor4fNormal3fVertex3fvSUN) then Exit;
-    glTexCoord2fVertex3fSUN := wglGetProcAddress('glTexCoord2fVertex3fSUN');
-    if not Assigned(glTexCoord2fVertex3fSUN) then Exit;
-    glTexCoord2fVertex3fvSUN := wglGetProcAddress('glTexCoord2fVertex3fvSUN');
-    if not Assigned(glTexCoord2fVertex3fvSUN) then Exit;
-    glTexCoord4fVertex4fSUN := wglGetProcAddress('glTexCoord4fVertex4fSUN');
-    if not Assigned(glTexCoord4fVertex4fSUN) then Exit;
-    glTexCoord4fVertex4fvSUN := wglGetProcAddress('glTexCoord4fVertex4fvSUN');
-    if not Assigned(glTexCoord4fVertex4fvSUN) then Exit;
-    glTexCoord2fColor4ubVertex3fSUN := wglGetProcAddress('glTexCoord2fColor4ubVertex3fSUN');
-    if not Assigned(glTexCoord2fColor4ubVertex3fSUN) then Exit;
-    glTexCoord2fColor4ubVertex3fvSUN := wglGetProcAddress('glTexCoord2fColor4ubVertex3fvSUN');
-    if not Assigned(glTexCoord2fColor4ubVertex3fvSUN) then Exit;
-    glTexCoord2fColor3fVertex3fSUN := wglGetProcAddress('glTexCoord2fColor3fVertex3fSUN');
-    if not Assigned(glTexCoord2fColor3fVertex3fSUN) then Exit;
-    glTexCoord2fColor3fVertex3fvSUN := wglGetProcAddress('glTexCoord2fColor3fVertex3fvSUN');
-    if not Assigned(glTexCoord2fColor3fVertex3fvSUN) then Exit;
-    glTexCoord2fNormal3fVertex3fSUN := wglGetProcAddress('glTexCoord2fNormal3fVertex3fSUN');
-    if not Assigned(glTexCoord2fNormal3fVertex3fSUN) then Exit;
-    glTexCoord2fNormal3fVertex3fvSUN := wglGetProcAddress('glTexCoord2fNormal3fVertex3fvSUN');
-    if not Assigned(glTexCoord2fNormal3fVertex3fvSUN) then Exit;
-    glTexCoord2fColor4fNormal3fVertex3fSUN := wglGetProcAddress('glTexCoord2fColor4fNormal3fVertex3fSUN');
-    if not Assigned(glTexCoord2fColor4fNormal3fVertex3fSUN) then Exit;
-    glTexCoord2fColor4fNormal3fVertex3fvSUN := wglGetProcAddress('glTexCoord2fColor4fNormal3fVertex3fvSUN');
-    if not Assigned(glTexCoord2fColor4fNormal3fVertex3fvSUN) then Exit;
-    glTexCoord4fColor4fNormal3fVertex4fSUN := wglGetProcAddress('glTexCoord4fColor4fNormal3fVertex4fSUN');
-    if not Assigned(glTexCoord4fColor4fNormal3fVertex4fSUN) then Exit;
-    glTexCoord4fColor4fNormal3fVertex4fvSUN := wglGetProcAddress('glTexCoord4fColor4fNormal3fVertex4fvSUN');
-    if not Assigned(glTexCoord4fColor4fNormal3fVertex4fvSUN) then Exit;
-    glReplacementCodeuiVertex3fSUN := wglGetProcAddress('glReplacementCodeuiVertex3fSUN');
-    if not Assigned(glReplacementCodeuiVertex3fSUN) then Exit;
-    glReplacementCodeuiVertex3fvSUN := wglGetProcAddress('glReplacementCodeuiVertex3fvSUN');
-    if not Assigned(glReplacementCodeuiVertex3fvSUN) then Exit;
-    glReplacementCodeuiColor4ubVertex3fSUN := wglGetProcAddress('glReplacementCodeuiColor4ubVertex3fSUN');
-    if not Assigned(glReplacementCodeuiColor4ubVertex3fSUN) then Exit;
-    glReplacementCodeuiColor4ubVertex3fvSUN := wglGetProcAddress('glReplacementCodeuiColor4ubVertex3fvSUN');
-    if not Assigned(glReplacementCodeuiColor4ubVertex3fvSUN) then Exit;
-    glReplacementCodeuiColor3fVertex3fSUN := wglGetProcAddress('glReplacementCodeuiColor3fVertex3fSUN');
-    if not Assigned(glReplacementCodeuiColor3fVertex3fSUN) then Exit;
-    glReplacementCodeuiColor3fVertex3fvSUN := wglGetProcAddress('glReplacementCodeuiColor3fVertex3fvSUN');
-    if not Assigned(glReplacementCodeuiColor3fVertex3fvSUN) then Exit;
-    glReplacementCodeuiNormal3fVertex3fSUN := wglGetProcAddress('glReplacementCodeuiNormal3fVertex3fSUN');
-    if not Assigned(glReplacementCodeuiNormal3fVertex3fSUN) then Exit;
-    glReplacementCodeuiNormal3fVertex3fvSUN := wglGetProcAddress('glReplacementCodeuiNormal3fVertex3fvSUN');
-    if not Assigned(glReplacementCodeuiNormal3fVertex3fvSUN) then Exit;
-    glReplacementCodeuiColor4fNormal3fVertex3fSUN := wglGetProcAddress('glReplacementCodeuiColor4fNormal3fVertex3fSUN');
-    if not Assigned(glReplacementCodeuiColor4fNormal3fVertex3fSUN) then Exit;
-    glReplacementCodeuiColor4fNormal3fVertex3fvSUN := wglGetProcAddress('glReplacementCodeuiColor4fNormal3fVertex3fvSUN');
-    if not Assigned(glReplacementCodeuiColor4fNormal3fVertex3fvSUN) then Exit;
-    glReplacementCodeuiTexCoord2fVertex3fSUN := wglGetProcAddress('glReplacementCodeuiTexCoord2fVertex3fSUN');
-    if not Assigned(glReplacementCodeuiTexCoord2fVertex3fSUN) then Exit;
-    glReplacementCodeuiTexCoord2fVertex3fvSUN := wglGetProcAddress('glReplacementCodeuiTexCoord2fVertex3fvSUN');
-    if not Assigned(glReplacementCodeuiTexCoord2fVertex3fvSUN) then Exit;
-    glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN := wglGetProcAddress('glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN');
-    if not Assigned(glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN) then Exit;
-    glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN := wglGetProcAddress('glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN');
-    if not Assigned(glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN) then Exit;
-    glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN := wglGetProcAddress('glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN');
-    if not Assigned(glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN) then Exit;
-    glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN := wglGetProcAddress('glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN');
-    if not Assigned(glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ARB_fragment_program: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_ARB_fragment_program', extstring) then
-  begin
-    glProgramStringARB := wglGetProcAddress('glProgramStringARB');
-    if not Assigned(glProgramStringARB) then Exit;
-    glBindProgramARB := wglGetProcAddress('glBindProgramARB');
-    if not Assigned(glBindProgramARB) then Exit;
-    glDeleteProgramsARB := wglGetProcAddress('glDeleteProgramsARB');
-    if not Assigned(glDeleteProgramsARB) then Exit;
-    glGenProgramsARB := wglGetProcAddress('glGenProgramsARB');
-    if not Assigned(glGenProgramsARB) then Exit;
-    glProgramEnvParameter4dARB := wglGetProcAddress('glProgramEnvParameter4dARB');
-    if not Assigned(glProgramEnvParameter4dARB) then Exit;
-    glProgramEnvParameter4dvARB := wglGetProcAddress('glProgramEnvParameter4dvARB');
-    if not Assigned(glProgramEnvParameter4dvARB) then Exit;
-    glProgramEnvParameter4fARB := wglGetProcAddress('glProgramEnvParameter4fARB');
-    if not Assigned(glProgramEnvParameter4fARB) then Exit;
-    glProgramEnvParameter4fvARB := wglGetProcAddress('glProgramEnvParameter4fvARB');
-    if not Assigned(glProgramEnvParameter4fvARB) then Exit;
-    glProgramLocalParameter4dARB := wglGetProcAddress('glProgramLocalParameter4dARB');
-    if not Assigned(glProgramLocalParameter4dARB) then Exit;
-    glProgramLocalParameter4dvARB := wglGetProcAddress('glProgramLocalParameter4dvARB');
-    if not Assigned(glProgramLocalParameter4dvARB) then Exit;
-    glProgramLocalParameter4fARB := wglGetProcAddress('glProgramLocalParameter4fARB');
-    if not Assigned(glProgramLocalParameter4fARB) then Exit;
-    glProgramLocalParameter4fvARB := wglGetProcAddress('glProgramLocalParameter4fvARB');
-    if not Assigned(glProgramLocalParameter4fvARB) then Exit;
-    glGetProgramEnvParameterdvARB := wglGetProcAddress('glGetProgramEnvParameterdvARB');
-    if not Assigned(glGetProgramEnvParameterdvARB) then Exit;
-    glGetProgramEnvParameterfvARB := wglGetProcAddress('glGetProgramEnvParameterfvARB');
-    if not Assigned(glGetProgramEnvParameterfvARB) then Exit;
-    glGetProgramLocalParameterdvARB := wglGetProcAddress('glGetProgramLocalParameterdvARB');
-    if not Assigned(glGetProgramLocalParameterdvARB) then Exit;
-    glGetProgramLocalParameterfvARB := wglGetProcAddress('glGetProgramLocalParameterfvARB');
-    if not Assigned(glGetProgramLocalParameterfvARB) then Exit;
-    glGetProgramivARB := wglGetProcAddress('glGetProgramivARB');
-    if not Assigned(glGetProgramivARB) then Exit;
-    glGetProgramStringARB := wglGetProcAddress('glGetProgramStringARB');
-    if not Assigned(glGetProgramStringARB) then Exit;
-    glIsProgramARB := wglGetProcAddress('glIsProgramARB');
-    if not Assigned(glIsProgramARB) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ATI_text_fragment_shader: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_ATI_text_fragment_shader', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_APPLE_client_storage: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_APPLE_client_storage', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_APPLE_element_array: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_APPLE_element_array', extstring) then
-  begin
-    glElementPointerAPPLE := wglGetProcAddress('glElementPointerAPPLE');
-    if not Assigned(glElementPointerAPPLE) then Exit;
-    glDrawElementArrayAPPLE := wglGetProcAddress('glDrawElementArrayAPPLE');
-    if not Assigned(glDrawElementArrayAPPLE) then Exit;
-    glDrawRangeElementArrayAPPLE := wglGetProcAddress('glDrawRangeElementArrayAPPLE');
-    if not Assigned(glDrawRangeElementArrayAPPLE) then Exit;
-    glMultiDrawElementArrayAPPLE := wglGetProcAddress('glMultiDrawElementArrayAPPLE');
-    if not Assigned(glMultiDrawElementArrayAPPLE) then Exit;
-    glMultiDrawRangeElementArrayAPPLE := wglGetProcAddress('glMultiDrawRangeElementArrayAPPLE');
-    if not Assigned(glMultiDrawRangeElementArrayAPPLE) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_APPLE_fence: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_APPLE_fence', extstring) then
-  begin
-    glGenFencesAPPLE := wglGetProcAddress('glGenFencesAPPLE');
-    if not Assigned(glGenFencesAPPLE) then Exit;
-    glDeleteFencesAPPLE := wglGetProcAddress('glDeleteFencesAPPLE');
-    if not Assigned(glDeleteFencesAPPLE) then Exit;
-    glSetFenceAPPLE := wglGetProcAddress('glSetFenceAPPLE');
-    if not Assigned(glSetFenceAPPLE) then Exit;
-    glIsFenceAPPLE := wglGetProcAddress('glIsFenceAPPLE');
-    if not Assigned(glIsFenceAPPLE) then Exit;
-    glTestFenceAPPLE := wglGetProcAddress('glTestFenceAPPLE');
-    if not Assigned(glTestFenceAPPLE) then Exit;
-    glFinishFenceAPPLE := wglGetProcAddress('glFinishFenceAPPLE');
-    if not Assigned(glFinishFenceAPPLE) then Exit;
-    glTestObjectAPPLE := wglGetProcAddress('glTestObjectAPPLE');
-    if not Assigned(glTestObjectAPPLE) then Exit;
-    glFinishObjectAPPLE := wglGetProcAddress('glFinishObjectAPPLE');
-    if not Assigned(glFinishObjectAPPLE) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_APPLE_vertex_array_object: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_APPLE_vertex_array_object', extstring) then
-  begin
-    glBindVertexArrayAPPLE := wglGetProcAddress('glBindVertexArrayAPPLE');
-    if not Assigned(glBindVertexArrayAPPLE) then Exit;
-    glDeleteVertexArraysAPPLE := wglGetProcAddress('glDeleteVertexArraysAPPLE');
-    if not Assigned(glDeleteVertexArraysAPPLE) then Exit;
-    glGenVertexArraysAPPLE := wglGetProcAddress('glGenVertexArraysAPPLE');
-    if not Assigned(glGenVertexArraysAPPLE) then Exit;
-    glIsVertexArrayAPPLE := wglGetProcAddress('glIsVertexArrayAPPLE');
-    if not Assigned(glIsVertexArrayAPPLE) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_APPLE_vertex_array_range: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_APPLE_vertex_array_range', extstring) then
-  begin
-    glVertexArrayRangeAPPLE := wglGetProcAddress('glVertexArrayRangeAPPLE');
-    if not Assigned(glVertexArrayRangeAPPLE) then Exit;
-    glFlushVertexArrayRangeAPPLE := wglGetProcAddress('glFlushVertexArrayRangeAPPLE');
-    if not Assigned(glFlushVertexArrayRangeAPPLE) then Exit;
-    glVertexArrayParameteriAPPLE := wglGetProcAddress('glVertexArrayParameteriAPPLE');
-    if not Assigned(glVertexArrayParameteriAPPLE) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-
-function load_GL_ARB_vertex_buffer_object : boolean;
-
-var extstring:string;
-
-begin
-  load_GL_ARB_vertex_buffer_object:=false;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-  if glext_ExtensionSupported('GL_ARB_vertex_buffer_object',extstring) then
-    begin
-      glBindBufferARB := wglGetProcAddress('glBindBufferARB');
-      if not Assigned(glBindBufferARB) then Exit;
-      glDeleteBuffersARB := wglGetProcAddress('glDeleteBuffersARB');
-      if not Assigned(glDeleteBuffersARB) then Exit;
-      glGenBuffersARB := wglGetProcAddress('glGenBuffersARB');
-      if not Assigned(glGenBuffersARB) then Exit;
-      glIsBufferARB := wglGetProcAddress('glIsBufferARB');
-      if not Assigned(glIsBufferARB) then Exit;
-      glBufferDataARB := wglGetProcAddress('glBufferDataARB');
-      if not Assigned(glBufferDataARB) then Exit;
-      glGetBufferSubDataARB := wglGetProcAddress('glGetBufferSubDataARB');
-      if not Assigned(glGetBufferSubDataARB) then Exit;
-      glMapBufferARB := wglGetProcAddress('glMapBufferARB');
-      if not Assigned(glMapBufferARB) then Exit;
-      glUnmapBufferARB := wglGetProcAddress('glUnmapBufferARB');
-      if not Assigned(glMapBufferARB) then Exit;
-      glGetBufferParameterivARB := wglGetProcAddress('glGetBufferParameterivARB');
-      if not Assigned(glGetBufferParameterivARB) then Exit;
-      glGetBufferPointervARB := wglGetProcAddress('glGetBufferPointervARB');
-      if not Assigned(glGetBufferPointervARB) then Exit;
-    end;
-  load_GL_ARB_vertex_buffer_object:=true;
-end;
-
-{$IFDEF Windows}
-function Load_WGL_ARB_pixel_format: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB');
-  if not Assigned(wglGetExtensionsStringARB) then Exit;
-  extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC)));
-
-  if glext_ExtensionSupported('WGL_ARB_pixel_format', extstring) then
-  begin
-    wglGetPixelFormatAttribivARB := wglGetProcAddress('wglGetPixelFormatAttribivARB');
-    if not Assigned(wglGetPixelFormatAttribivARB) then Exit;
-    wglGetPixelFormatAttribfvARB := wglGetProcAddress('wglGetPixelFormatAttribfvARB');
-    if not Assigned(wglGetPixelFormatAttribfvARB) then Exit;
-    wglChoosePixelFormatARB := wglGetProcAddress('wglChoosePixelFormatARB');
-    if not Assigned(wglChoosePixelFormatARB) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_WGL_ARB_make_current_read: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB');
-  if not Assigned(wglGetExtensionsStringARB) then Exit;
-  extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC)));
-
-  if glext_ExtensionSupported('WGL_ARB_make_current_read', extstring) then
-  begin
-    wglMakeContextCurrentARB := wglGetProcAddress('wglMakeContextCurrentARB');
-    if not Assigned(wglMakeContextCurrentARB) then Exit;
-    wglGetCurrentReadDCARB := wglGetProcAddress('wglGetCurrentReadDCARB');
-    if not Assigned(wglGetCurrentReadDCARB) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_WGL_ARB_pbuffer: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB');
-  if not Assigned(wglGetExtensionsStringARB) then Exit;
-  extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC)));
-
-  if glext_ExtensionSupported('WGL_ARB_pbuffer', extstring) then
-  begin
-    wglCreatePbufferARB := wglGetProcAddress('wglCreatePbufferARB');
-    if not Assigned(wglCreatePbufferARB) then Exit;
-    wglGetPbufferDCARB := wglGetProcAddress('wglGetPbufferDCARB');
-    if not Assigned(wglGetPbufferDCARB) then Exit;
-    wglReleasePbufferDCARB := wglGetProcAddress('wglReleasePbufferDCARB');
-    if not Assigned(wglReleasePbufferDCARB) then Exit;
-    wglDestroyPbufferARB := wglGetProcAddress('wglDestroyPbufferARB');
-    if not Assigned(wglDestroyPbufferARB) then Exit;
-    wglQueryPbufferARB := wglGetProcAddress('wglQueryPbufferARB');
-    if not Assigned(wglQueryPbufferARB) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_WGL_EXT_swap_control: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB');
-  if not Assigned(wglGetExtensionsStringARB) then Exit;
-  extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC)));
-
-  if glext_ExtensionSupported('WGL_EXT_swap_control', extstring) then
-  begin
-    wglSwapIntervalEXT := wglGetProcAddress('wglSwapIntervalEXT');
-    if not Assigned(wglSwapIntervalEXT) then Exit;
-    wglGetSwapIntervalEXT := wglGetProcAddress('wglGetSwapIntervalEXT');
-    if not Assigned(wglGetSwapIntervalEXT) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_WGL_ARB_render_texture: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB');
-  if not Assigned(wglGetExtensionsStringARB) then Exit;
-  extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC)));
-
-  if glext_ExtensionSupported('WGL_ARB_render_texture', extstring) then
-  begin
-    wglBindTexImageARB := wglGetProcAddress('wglBindTexImageARB');
-    if not Assigned(wglBindTexImageARB) then Exit;
-    wglReleaseTexImageARB := wglGetProcAddress('wglReleaseTexImageARB');
-    if not Assigned(wglReleaseTexImageARB) then Exit;
-    wglSetPbufferAttribARB := wglGetProcAddress('wglSetPbufferAttribARB');
-    if not Assigned(wglSetPbufferAttribARB) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_WGL_EXT_extensions_string: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB');
-  if not Assigned(wglGetExtensionsStringARB) then Exit;
-  extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC)));
-
-  if glext_ExtensionSupported('WGL_EXT_extensions_string', extstring) then
-  begin
-    wglGetExtensionsStringEXT := wglGetProcAddress('wglGetExtensionsStringEXT');
-    if not Assigned(wglGetExtensionsStringEXT) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_WGL_EXT_make_current_read: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB');
-  if not Assigned(wglGetExtensionsStringARB) then Exit;
-  extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC)));
-
-  if glext_ExtensionSupported('WGL_EXT_make_current_read', extstring) then
-  begin
-    wglMakeContextCurrentEXT := wglGetProcAddress('wglMakeContextCurrentEXT');
-    if not Assigned(wglMakeContextCurrentEXT) then Exit;
-    wglGetCurrentReadDCEXT := wglGetProcAddress('wglGetCurrentReadDCEXT');
-    if not Assigned(wglGetCurrentReadDCEXT) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_WGL_EXT_pbuffer: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB');
-  if not Assigned(wglGetExtensionsStringARB) then Exit;
-  extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC)));
-
-  if glext_ExtensionSupported('WGL_EXT_pbuffer', extstring) then
-  begin
-    wglCreatePbufferEXT := wglGetProcAddress('wglCreatePbufferEXT');
-    if not Assigned(wglCreatePbufferEXT) then Exit;
-    wglGetPbufferDCEXT := wglGetProcAddress('wglGetPbufferDCEXT');
-    if not Assigned(wglGetPbufferDCEXT) then Exit;
-    wglReleasePbufferDCEXT := wglGetProcAddress('wglReleasePbufferDCEXT');
-    if not Assigned(wglReleasePbufferDCEXT) then Exit;
-    wglDestroyPbufferEXT := wglGetProcAddress('wglDestroyPbufferEXT');
-    if not Assigned(wglDestroyPbufferEXT) then Exit;
-    wglQueryPbufferEXT := wglGetProcAddress('wglQueryPbufferEXT');
-    if not Assigned(wglQueryPbufferEXT) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_WGL_EXT_pixel_format: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB');
-  if not Assigned(wglGetExtensionsStringARB) then Exit;
-  extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC)));
-
-  if glext_ExtensionSupported('WGL_EXT_pixel_format', extstring) then
-  begin
-    wglGetPixelFormatAttribivEXT := wglGetProcAddress('wglGetPixelFormatAttribivEXT');
-    if not Assigned(wglGetPixelFormatAttribivEXT) then Exit;
-    wglGetPixelFormatAttribfvEXT := wglGetProcAddress('wglGetPixelFormatAttribfvEXT');
-    if not Assigned(wglGetPixelFormatAttribfvEXT) then Exit;
-    wglChoosePixelFormatEXT := wglGetProcAddress('wglChoosePixelFormatEXT');
-    if not Assigned(wglChoosePixelFormatEXT) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_WGL_I3D_digital_video_control: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB');
-  if not Assigned(wglGetExtensionsStringARB) then Exit;
-  extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC)));
-
-  if glext_ExtensionSupported('WGL_I3D_digital_video_control', extstring) then
-  begin
-    wglGetDigitalVideoParametersI3D := wglGetProcAddress('wglGetDigitalVideoParametersI3D');
-    if not Assigned(wglGetDigitalVideoParametersI3D) then Exit;
-    wglSetDigitalVideoParametersI3D := wglGetProcAddress('wglSetDigitalVideoParametersI3D');
-    if not Assigned(wglSetDigitalVideoParametersI3D) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_WGL_I3D_gamma: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB');
-  if not Assigned(wglGetExtensionsStringARB) then Exit;
-  extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC)));
-
-  if glext_ExtensionSupported('WGL_I3D_gamma', extstring) then
-  begin
-    wglGetGammaTableParametersI3D := wglGetProcAddress('wglGetGammaTableParametersI3D');
-    if not Assigned(wglGetGammaTableParametersI3D) then Exit;
-    wglSetGammaTableParametersI3D := wglGetProcAddress('wglSetGammaTableParametersI3D');
-    if not Assigned(wglSetGammaTableParametersI3D) then Exit;
-    wglGetGammaTableI3D := wglGetProcAddress('wglGetGammaTableI3D');
-    if not Assigned(wglGetGammaTableI3D) then Exit;
-    wglSetGammaTableI3D := wglGetProcAddress('wglSetGammaTableI3D');
-    if not Assigned(wglSetGammaTableI3D) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_WGL_I3D_genlock: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB');
-  if not Assigned(wglGetExtensionsStringARB) then Exit;
-  extstring := String(PChar(wglGetExtensionsStringARB(wglGetCurrentDC)));
-
-  if glext_ExtensionSupported('WGL_I3D_genlock', extstring) then
-  begin
-    wglEnableGenlockI3D := wglGetProcAddress('wglEnableGenlockI3D');
-    if not Assigned(wglEnableGenlockI3D) then Exit;
-    wglDisableGenlockI3D := wglGetProcAddress('wglDisableGenlockI3D');
-    if not Assigned(wglDisableGenlockI3D) then Exit;
-    wglIsEnabledGenlockI3D := wglGetProcAddress('wglIsEnabledGenlockI3D');
-    if not Assigned(wglIsEnabledGenlockI3D) then Exit;
-    wglGenlockSourceI3D := wglGetProcAddress('wglGenlockSourceI3D');
-    if not Assigned(wglGenlockSourceI3D) then Exit;
-    wglGetGenlockSourceI3D := wglGetProcAddress('wglGetGenlockSourceI3D');
-    if not Assigned(wglGetGenlockSourceI3D) then Exit;
-    wglGenlockSourceEdgeI3D := wglGetProcAddress('wglGenlockSourceEdgeI3D');
-    if not Assigned(wglGenlockSourceEdgeI3D) then Exit;
-    wglGetGenlockSourceEdgeI3D := wglGetProcAddress('wglGetGenlockSourceEdgeI3D');
-    if not Assigned(wglGetGenlockSourceEdgeI3D) then Exit;
-    wglGenlockSampleRateI3D := wglGetProcAddress('wglGenlockSampleRateI3D');
-    if not Assigned(wglGenlockSampleRateI3D) then Exit;
-    wglGetGenlockSampleRateI3D := wglGetProcAddress('wglGetGenlockSampleRateI3D');
-    if not Assigned(wglGetGenlockSampleRateI3D) then Exit;
-    wglGenlockSourceDelayI3D := wglGetProcAddress('wglGenlockSourceDelayI3D');
-    if not Assigned(wglGenlockSourceDelayI3D) then Exit;
-    wglGetGenlockSourceDelayI3D := wglGetProcAddress('wglGetGenlockSourceDelayI3D');
-    if not Assigned(wglGetGenlockSourceDelayI3D) then Exit;
-    wglQueryGenlockMaxSourceDelayI3D := wglGetProcAddress('wglQueryGenlockMaxSourceDelayI3D');
-    if not Assigned(wglQueryGenlockMaxSourceDelayI3D) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-{$ENDIF}
-
-function Load_GL_ARB_matrix_palette: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_ARB_matrix_palette', extstring) then
-  begin
-    glCurrentPaletteMatrixARB := wglGetProcAddress('glCurrentPaletteMatrixARB');
-    if not Assigned(glCurrentPaletteMatrixARB) then Exit;
-    glMatrixIndexubvARB := wglGetProcAddress('glMatrixIndexubvARB');
-    if not Assigned(glMatrixIndexubvARB) then Exit;
-    glMatrixIndexusvARB := wglGetProcAddress('glMatrixIndexusvARB');
-    if not Assigned(glMatrixIndexusvARB) then Exit;
-    glMatrixIndexuivARB := wglGetProcAddress('glMatrixIndexuivARB');
-    if not Assigned(glMatrixIndexuivARB) then Exit;
-    glMatrixIndexPointerARB := wglGetProcAddress('glMatrixIndexPointerARB');
-    if not Assigned(glMatrixIndexPointerARB) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_NV_element_array: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_NV_element_array', extstring) then
-  begin
-    glElementPointerNV := wglGetProcAddress('glElementPointerNV');
-    if not Assigned(glElementPointerNV) then Exit;
-    glDrawElementArrayNV := wglGetProcAddress('glDrawElementArrayNV');
-    if not Assigned(glDrawElementArrayNV) then Exit;
-    glDrawRangeElementArrayNV := wglGetProcAddress('glDrawRangeElementArrayNV');
-    if not Assigned(glDrawRangeElementArrayNV) then Exit;
-    glMultiDrawElementArrayNV := wglGetProcAddress('glMultiDrawElementArrayNV');
-    if not Assigned(glMultiDrawElementArrayNV) then Exit;
-    glMultiDrawRangeElementArrayNV := wglGetProcAddress('glMultiDrawRangeElementArrayNV');
-    if not Assigned(glMultiDrawRangeElementArrayNV) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_NV_float_buffer: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_NV_float_buffer', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_NV_fragment_program: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_NV_fragment_program', extstring) then
-  begin
-    glProgramNamedParameter4fNV := wglGetProcAddress('glProgramNamedParameter4fNV');
-    if not Assigned(glProgramNamedParameter4fNV) then Exit;
-    glProgramNamedParameter4dNV := wglGetProcAddress('glProgramNamedParameter4dNV');
-    if not Assigned(glProgramNamedParameter4dNV) then Exit;
-    glGetProgramNamedParameterfvNV := wglGetProcAddress('glGetProgramNamedParameterfvNV');
-    if not Assigned(glGetProgramNamedParameterfvNV) then Exit;
-    glGetProgramNamedParameterdvNV := wglGetProcAddress('glGetProgramNamedParameterdvNV');
-    if not Assigned(glGetProgramNamedParameterdvNV) then Exit;
-    glProgramLocalParameter4dARB := wglGetProcAddress('glProgramLocalParameter4dARB');
-    if not Assigned(glProgramLocalParameter4dARB) then Exit;
-    glProgramLocalParameter4dvARB := wglGetProcAddress('glProgramLocalParameter4dvARB');
-    if not Assigned(glProgramLocalParameter4dvARB) then Exit;
-    glProgramLocalParameter4fARB := wglGetProcAddress('glProgramLocalParameter4fARB');
-    if not Assigned(glProgramLocalParameter4fARB) then Exit;
-    glProgramLocalParameter4fvARB := wglGetProcAddress('glProgramLocalParameter4fvARB');
-    if not Assigned(glProgramLocalParameter4fvARB) then Exit;
-    glGetProgramLocalParameterdvARB := wglGetProcAddress('glGetProgramLocalParameterdvARB');
-    if not Assigned(glGetProgramLocalParameterdvARB) then Exit;
-    glGetProgramLocalParameterfvARB := wglGetProcAddress('glGetProgramLocalParameterfvARB');
-    if not Assigned(glGetProgramLocalParameterfvARB) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_NV_primitive_restart: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_NV_primitive_restart', extstring) then
-  begin
-    glPrimitiveRestartNV := wglGetProcAddress('glPrimitiveRestartNV');
-    if not Assigned(glPrimitiveRestartNV) then Exit;
-    glPrimitiveRestartIndexNV := wglGetProcAddress('glPrimitiveRestartIndexNV');
-    if not Assigned(glPrimitiveRestartIndexNV) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_NV_vertex_program2: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_NV_vertex_program2', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-{$IFDEF Windows}
-function Load_WGL_NV_render_texture_rectangle: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  @wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB');
-  if not Assigned(wglGetExtensionsStringARB) then Exit;
-  extstring := wglGetExtensionsStringARB(wglGetCurrentDC);
-
-  if glext_ExtensionSupported('WGL_NV_render_texture_rectangle', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-{$ENDIF}
-
-function Load_GL_NV_pixel_data_range: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_NV_pixel_data_range', extstring) then
-  begin
-    @glPixelDataRangeNV := wglGetProcAddress('glPixelDataRangeNV');
-    if not Assigned(glPixelDataRangeNV) then Exit;
-    @glFlushPixelDataRangeNV := wglGetProcAddress('glFlushPixelDataRangeNV');
-    if not Assigned(glFlushPixelDataRangeNV) then Exit;
-    {$IFDEF Windows}
-    @wglAllocateMemoryNV := wglGetProcAddress('wglAllocateMemoryNV');
-    if not Assigned(wglAllocateMemoryNV) then Exit;
-    @wglFreeMemoryNV := wglGetProcAddress('wglFreeMemoryNV');
-    if not Assigned(wglFreeMemoryNV) then Exit;
-    {$ENDIF}
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_texture_rectangle: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_EXT_texture_rectangle', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_S3_s3tc: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_S3_s3tc', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ATI_draw_buffers: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_ATI_draw_buffers', extstring) then
-  begin
-    @glDrawBuffersATI := wglGetProcAddress('glDrawBuffersATI');
-    if not Assigned(glDrawBuffersATI) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-{$IFDEF Windows}
-function Load_WGL_ATI_pixel_format_float: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  @wglGetExtensionsStringARB := wglGetProcAddress('wglGetExtensionsStringARB');
-  if not Assigned(wglGetExtensionsStringARB) then Exit;
-  extstring := wglGetExtensionsStringARB(wglGetCurrentDC);
-
-  if glext_ExtensionSupported('WGL_ATI_pixel_format_float', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-{$ENDIF}
-
-function Load_GL_ATI_texture_env_combine3: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_ATI_texture_env_combine3', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ATI_texture_float: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_ATI_texture_float', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_NV_texture_expand_normal: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_NV_texture_expand_normal', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_NV_half_float: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_NV_half_float', extstring) then
-  begin
-    @glVertex2hNV := wglGetProcAddress('glVertex2hNV');
-    if not Assigned(glVertex2hNV) then Exit;
-    @glVertex2hvNV := wglGetProcAddress('glVertex2hvNV');
-    if not Assigned(glVertex2hvNV) then Exit;
-    @glVertex3hNV := wglGetProcAddress('glVertex3hNV');
-    if not Assigned(glVertex3hNV) then Exit;
-    @glVertex3hvNV := wglGetProcAddress('glVertex3hvNV');
-    if not Assigned(glVertex3hvNV) then Exit;
-    @glVertex4hNV := wglGetProcAddress('glVertex4hNV');
-    if not Assigned(glVertex4hNV) then Exit;
-    @glVertex4hvNV := wglGetProcAddress('glVertex4hvNV');
-    if not Assigned(glVertex4hvNV) then Exit;
-    @glNormal3hNV := wglGetProcAddress('glNormal3hNV');
-    if not Assigned(glNormal3hNV) then Exit;
-    @glNormal3hvNV := wglGetProcAddress('glNormal3hvNV');
-    if not Assigned(glNormal3hvNV) then Exit;
-    @glColor3hNV := wglGetProcAddress('glColor3hNV');
-    if not Assigned(glColor3hNV) then Exit;
-    @glColor3hvNV := wglGetProcAddress('glColor3hvNV');
-    if not Assigned(glColor3hvNV) then Exit;
-    @glColor4hNV := wglGetProcAddress('glColor4hNV');
-    if not Assigned(glColor4hNV) then Exit;
-    @glColor4hvNV := wglGetProcAddress('glColor4hvNV');
-    if not Assigned(glColor4hvNV) then Exit;
-    @glTexCoord1hNV := wglGetProcAddress('glTexCoord1hNV');
-    if not Assigned(glTexCoord1hNV) then Exit;
-    @glTexCoord1hvNV := wglGetProcAddress('glTexCoord1hvNV');
-    if not Assigned(glTexCoord1hvNV) then Exit;
-    @glTexCoord2hNV := wglGetProcAddress('glTexCoord2hNV');
-    if not Assigned(glTexCoord2hNV) then Exit;
-    @glTexCoord2hvNV := wglGetProcAddress('glTexCoord2hvNV');
-    if not Assigned(glTexCoord2hvNV) then Exit;
-    @glTexCoord3hNV := wglGetProcAddress('glTexCoord3hNV');
-    if not Assigned(glTexCoord3hNV) then Exit;
-    @glTexCoord3hvNV := wglGetProcAddress('glTexCoord3hvNV');
-    if not Assigned(glTexCoord3hvNV) then Exit;
-    @glTexCoord4hNV := wglGetProcAddress('glTexCoord4hNV');
-    if not Assigned(glTexCoord4hNV) then Exit;
-    @glTexCoord4hvNV := wglGetProcAddress('glTexCoord4hvNV');
-    if not Assigned(glTexCoord4hvNV) then Exit;
-    @glMultiTexCoord1hNV := wglGetProcAddress('glMultiTexCoord1hNV');
-    if not Assigned(glMultiTexCoord1hNV) then Exit;
-    @glMultiTexCoord1hvNV := wglGetProcAddress('glMultiTexCoord1hvNV');
-    if not Assigned(glMultiTexCoord1hvNV) then Exit;
-    @glMultiTexCoord2hNV := wglGetProcAddress('glMultiTexCoord2hNV');
-    if not Assigned(glMultiTexCoord2hNV) then Exit;
-    @glMultiTexCoord2hvNV := wglGetProcAddress('glMultiTexCoord2hvNV');
-    if not Assigned(glMultiTexCoord2hvNV) then Exit;
-    @glMultiTexCoord3hNV := wglGetProcAddress('glMultiTexCoord3hNV');
-    if not Assigned(glMultiTexCoord3hNV) then Exit;
-    @glMultiTexCoord3hvNV := wglGetProcAddress('glMultiTexCoord3hvNV');
-    if not Assigned(glMultiTexCoord3hvNV) then Exit;
-    @glMultiTexCoord4hNV := wglGetProcAddress('glMultiTexCoord4hNV');
-    if not Assigned(glMultiTexCoord4hNV) then Exit;
-    @glMultiTexCoord4hvNV := wglGetProcAddress('glMultiTexCoord4hvNV');
-    if not Assigned(glMultiTexCoord4hvNV) then Exit;
-    @glFogCoordhNV := wglGetProcAddress('glFogCoordhNV');
-    if not Assigned(glFogCoordhNV) then Exit;
-    @glFogCoordhvNV := wglGetProcAddress('glFogCoordhvNV');
-    if not Assigned(glFogCoordhvNV) then Exit;
-    @glSecondaryColor3hNV := wglGetProcAddress('glSecondaryColor3hNV');
-    if not Assigned(glSecondaryColor3hNV) then Exit;
-    @glSecondaryColor3hvNV := wglGetProcAddress('glSecondaryColor3hvNV');
-    if not Assigned(glSecondaryColor3hvNV) then Exit;
-    @glVertexWeighthNV := wglGetProcAddress('glVertexWeighthNV');
-    if not Assigned(glVertexWeighthNV) then Exit;
-    @glVertexWeighthvNV := wglGetProcAddress('glVertexWeighthvNV');
-    if not Assigned(glVertexWeighthvNV) then Exit;
-    @glVertexAttrib1hNV := wglGetProcAddress('glVertexAttrib1hNV');
-    if not Assigned(glVertexAttrib1hNV) then Exit;
-    @glVertexAttrib1hvNV := wglGetProcAddress('glVertexAttrib1hvNV');
-    if not Assigned(glVertexAttrib1hvNV) then Exit;
-    @glVertexAttrib2hNV := wglGetProcAddress('glVertexAttrib2hNV');
-    if not Assigned(glVertexAttrib2hNV) then Exit;
-    @glVertexAttrib2hvNV := wglGetProcAddress('glVertexAttrib2hvNV');
-    if not Assigned(glVertexAttrib2hvNV) then Exit;
-    @glVertexAttrib3hNV := wglGetProcAddress('glVertexAttrib3hNV');
-    if not Assigned(glVertexAttrib3hNV) then Exit;
-    @glVertexAttrib3hvNV := wglGetProcAddress('glVertexAttrib3hvNV');
-    if not Assigned(glVertexAttrib3hvNV) then Exit;
-    @glVertexAttrib4hNV := wglGetProcAddress('glVertexAttrib4hNV');
-    if not Assigned(glVertexAttrib4hNV) then Exit;
-    @glVertexAttrib4hvNV := wglGetProcAddress('glVertexAttrib4hvNV');
-    if not Assigned(glVertexAttrib4hvNV) then Exit;
-    @glVertexAttribs1hvNV := wglGetProcAddress('glVertexAttribs1hvNV');
-    if not Assigned(glVertexAttribs1hvNV) then Exit;
-    @glVertexAttribs2hvNV := wglGetProcAddress('glVertexAttribs2hvNV');
-    if not Assigned(glVertexAttribs2hvNV) then Exit;
-    @glVertexAttribs3hvNV := wglGetProcAddress('glVertexAttribs3hvNV');
-    if not Assigned(glVertexAttribs3hvNV) then Exit;
-    @glVertexAttribs4hvNV := wglGetProcAddress('glVertexAttribs4hvNV');
-    if not Assigned(glVertexAttribs4hvNV) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ATI_map_object_buffer: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_ATI_map_object_buffer', extstring) then
-  begin
-    @glMapObjectBufferATI := wglGetProcAddress('glMapObjectBufferATI');
-    if not Assigned(glMapObjectBufferATI) then Exit;
-    @glUnmapObjectBufferATI := wglGetProcAddress('glUnmapObjectBufferATI');
-    if not Assigned(glUnmapObjectBufferATI) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ATI_separate_stencil: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_ATI_separate_stencil', extstring) then
-  begin
-    @glStencilOpSeparateATI := wglGetProcAddress('glStencilOpSeparateATI');
-    if not Assigned(glStencilOpSeparateATI) then Exit;
-    @glStencilFuncSeparateATI := wglGetProcAddress('glStencilFuncSeparateATI');
-    if not Assigned(glStencilFuncSeparateATI) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ATI_vertex_attrib_array_object: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_ATI_vertex_attrib_array_object', extstring) then
-  begin
-    @glVertexAttribArrayObjectATI := wglGetProcAddress('glVertexAttribArrayObjectATI');
-    if not Assigned(glVertexAttribArrayObjectATI) then Exit;
-    @glGetVertexAttribArrayObjectfvATI := wglGetProcAddress('glGetVertexAttribArrayObjectfvATI');
-    if not Assigned(glGetVertexAttribArrayObjectfvATI) then Exit;
-    @glGetVertexAttribArrayObjectivATI := wglGetProcAddress('glGetVertexAttribArrayObjectivATI');
-    if not Assigned(glGetVertexAttribArrayObjectivATI) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ARB_occlusion_query: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_ARB_occlusion_query', extstring) then
-  begin
-    @glGenQueriesARB := wglGetProcAddress('glGenQueriesARB');
-    if not Assigned(glGenQueriesARB) then Exit;
-    @glDeleteQueriesARB := wglGetProcAddress('glDeleteQueriesARB');
-    if not Assigned(glDeleteQueriesARB) then Exit;
-    @glIsQueryARB := wglGetProcAddress('glIsQueryARB');
-    if not Assigned(glIsQueryARB) then Exit;
-    @glBeginQueryARB := wglGetProcAddress('glBeginQueryARB');
-    if not Assigned(glBeginQueryARB) then Exit;
-    @glEndQueryARB := wglGetProcAddress('glEndQueryARB');
-    if not Assigned(glEndQueryARB) then Exit;
-    @glGetQueryivARB := wglGetProcAddress('glGetQueryivARB');
-    if not Assigned(glGetQueryivARB) then Exit;
-    @glGetQueryObjectivARB := wglGetProcAddress('glGetQueryObjectivARB');
-    if not Assigned(glGetQueryObjectivARB) then Exit;
-    @glGetQueryObjectuivARB := wglGetProcAddress('glGetQueryObjectuivARB');
-    if not Assigned(glGetQueryObjectuivARB) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ARB_shader_objects: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_ARB_shader_objects', extstring) then
-  begin
-    @glDeleteObjectARB := wglGetProcAddress('glDeleteObjectARB');
-    if not Assigned(glDeleteObjectARB) then Exit;
-    @glGetHandleARB := wglGetProcAddress('glGetHandleARB');
-    if not Assigned(glGetHandleARB) then Exit;
-    @glDetachObjectARB := wglGetProcAddress('glDetachObjectARB');
-    if not Assigned(glDetachObjectARB) then Exit;
-    @glCreateShaderObjectARB := wglGetProcAddress('glCreateShaderObjectARB');
-    if not Assigned(glCreateShaderObjectARB) then Exit;
-    @glShaderSourceARB := wglGetProcAddress('glShaderSourceARB');
-    if not Assigned(glShaderSourceARB) then Exit;
-    @glCompileShaderARB := wglGetProcAddress('glCompileShaderARB');
-    if not Assigned(glCompileShaderARB) then Exit;
-    @glCreateProgramObjectARB := wglGetProcAddress('glCreateProgramObjectARB');
-    if not Assigned(glCreateProgramObjectARB) then Exit;
-    @glAttachObjectARB := wglGetProcAddress('glAttachObjectARB');
-    if not Assigned(glAttachObjectARB) then Exit;
-    @glLinkProgramARB := wglGetProcAddress('glLinkProgramARB');
-    if not Assigned(glLinkProgramARB) then Exit;
-    @glUseProgramObjectARB := wglGetProcAddress('glUseProgramObjectARB');
-    if not Assigned(glUseProgramObjectARB) then Exit;
-    @glValidateProgramARB := wglGetProcAddress('glValidateProgramARB');
-    if not Assigned(glValidateProgramARB) then Exit;
-    @glUniform1fARB := wglGetProcAddress('glUniform1fARB');
-    if not Assigned(glUniform1fARB) then Exit;
-    @glUniform2fARB := wglGetProcAddress('glUniform2fARB');
-    if not Assigned(glUniform2fARB) then Exit;
-    @glUniform3fARB := wglGetProcAddress('glUniform3fARB');
-    if not Assigned(glUniform3fARB) then Exit;
-    @glUniform4fARB := wglGetProcAddress('glUniform4fARB');
-    if not Assigned(glUniform4fARB) then Exit;
-    @glUniform1iARB := wglGetProcAddress('glUniform1iARB');
-    if not Assigned(glUniform1iARB) then Exit;
-    @glUniform2iARB := wglGetProcAddress('glUniform2iARB');
-    if not Assigned(glUniform2iARB) then Exit;
-    @glUniform3iARB := wglGetProcAddress('glUniform3iARB');
-    if not Assigned(glUniform3iARB) then Exit;
-    @glUniform4iARB := wglGetProcAddress('glUniform4iARB');
-    if not Assigned(glUniform4iARB) then Exit;
-    @glUniform1fvARB := wglGetProcAddress('glUniform1fvARB');
-    if not Assigned(glUniform1fvARB) then Exit;
-    @glUniform2fvARB := wglGetProcAddress('glUniform2fvARB');
-    if not Assigned(glUniform2fvARB) then Exit;
-    @glUniform3fvARB := wglGetProcAddress('glUniform3fvARB');
-    if not Assigned(glUniform3fvARB) then Exit;
-    @glUniform4fvARB := wglGetProcAddress('glUniform4fvARB');
-    if not Assigned(glUniform4fvARB) then Exit;
-    @glUniform1ivARB := wglGetProcAddress('glUniform1ivARB');
-    if not Assigned(glUniform1ivARB) then Exit;
-    @glUniform2ivARB := wglGetProcAddress('glUniform2ivARB');
-    if not Assigned(glUniform2ivARB) then Exit;
-    @glUniform3ivARB := wglGetProcAddress('glUniform3ivARB');
-    if not Assigned(glUniform3ivARB) then Exit;
-    @glUniform4ivARB := wglGetProcAddress('glUniform4ivARB');
-    if not Assigned(glUniform4ivARB) then Exit;
-    @glUniformMatrix2fvARB := wglGetProcAddress('glUniformMatrix2fvARB');
-    if not Assigned(glUniformMatrix2fvARB) then Exit;
-    @glUniformMatrix3fvARB := wglGetProcAddress('glUniformMatrix3fvARB');
-    if not Assigned(glUniformMatrix3fvARB) then Exit;
-    @glUniformMatrix4fvARB := wglGetProcAddress('glUniformMatrix4fvARB');
-    if not Assigned(glUniformMatrix4fvARB) then Exit;
-    @glGetObjectParameterfvARB := wglGetProcAddress('glGetObjectParameterfvARB');
-    if not Assigned(glGetObjectParameterfvARB) then Exit;
-    @glGetObjectParameterivARB := wglGetProcAddress('glGetObjectParameterivARB');
-    if not Assigned(glGetObjectParameterivARB) then Exit;
-    @glGetInfoLogARB := wglGetProcAddress('glGetInfoLogARB');
-    if not Assigned(glGetInfoLogARB) then Exit;
-    @glGetAttachedObjectsARB := wglGetProcAddress('glGetAttachedObjectsARB');
-    if not Assigned(glGetAttachedObjectsARB) then Exit;
-    @glGetUniformLocationARB := wglGetProcAddress('glGetUniformLocationARB');
-    if not Assigned(glGetUniformLocationARB) then Exit;
-    @glGetActiveUniformARB := wglGetProcAddress('glGetActiveUniformARB');
-    if not Assigned(glGetActiveUniformARB) then Exit;
-    @glGetUniformfvARB := wglGetProcAddress('glGetUniformfvARB');
-    if not Assigned(glGetUniformfvARB) then Exit;
-    @glGetUniformivARB := wglGetProcAddress('glGetUniformivARB');
-    if not Assigned(glGetUniformivARB) then Exit;
-    @glGetShaderSourceARB := wglGetProcAddress('glGetShaderSourceARB');
-    if not Assigned(glGetShaderSourceARB) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ARB_vertex_shader: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_ARB_vertex_shader', extstring) then
-  begin
-    @glVertexAttrib1fARB := wglGetProcAddress('glVertexAttrib1fARB');
-    if not Assigned(glVertexAttrib1fARB) then Exit;
-    @glVertexAttrib1sARB := wglGetProcAddress('glVertexAttrib1sARB');
-    if not Assigned(glVertexAttrib1sARB) then Exit;
-    @glVertexAttrib1dARB := wglGetProcAddress('glVertexAttrib1dARB');
-    if not Assigned(glVertexAttrib1dARB) then Exit;
-    @glVertexAttrib2fARB := wglGetProcAddress('glVertexAttrib2fARB');
-    if not Assigned(glVertexAttrib2fARB) then Exit;
-    @glVertexAttrib2sARB := wglGetProcAddress('glVertexAttrib2sARB');
-    if not Assigned(glVertexAttrib2sARB) then Exit;
-    @glVertexAttrib2dARB := wglGetProcAddress('glVertexAttrib2dARB');
-    if not Assigned(glVertexAttrib2dARB) then Exit;
-    @glVertexAttrib3fARB := wglGetProcAddress('glVertexAttrib3fARB');
-    if not Assigned(glVertexAttrib3fARB) then Exit;
-    @glVertexAttrib3sARB := wglGetProcAddress('glVertexAttrib3sARB');
-    if not Assigned(glVertexAttrib3sARB) then Exit;
-    @glVertexAttrib3dARB := wglGetProcAddress('glVertexAttrib3dARB');
-    if not Assigned(glVertexAttrib3dARB) then Exit;
-    @glVertexAttrib4fARB := wglGetProcAddress('glVertexAttrib4fARB');
-    if not Assigned(glVertexAttrib4fARB) then Exit;
-    @glVertexAttrib4sARB := wglGetProcAddress('glVertexAttrib4sARB');
-    if not Assigned(glVertexAttrib4sARB) then Exit;
-    @glVertexAttrib4dARB := wglGetProcAddress('glVertexAttrib4dARB');
-    if not Assigned(glVertexAttrib4dARB) then Exit;
-    @glVertexAttrib4NubARB := wglGetProcAddress('glVertexAttrib4NubARB');
-    if not Assigned(glVertexAttrib4NubARB) then Exit;
-    @glVertexAttrib1fvARB := wglGetProcAddress('glVertexAttrib1fvARB');
-    if not Assigned(glVertexAttrib1fvARB) then Exit;
-    @glVertexAttrib1svARB := wglGetProcAddress('glVertexAttrib1svARB');
-    if not Assigned(glVertexAttrib1svARB) then Exit;
-    @glVertexAttrib1dvARB := wglGetProcAddress('glVertexAttrib1dvARB');
-    if not Assigned(glVertexAttrib1dvARB) then Exit;
-    @glVertexAttrib2fvARB := wglGetProcAddress('glVertexAttrib2fvARB');
-    if not Assigned(glVertexAttrib2fvARB) then Exit;
-    @glVertexAttrib2svARB := wglGetProcAddress('glVertexAttrib2svARB');
-    if not Assigned(glVertexAttrib2svARB) then Exit;
-    @glVertexAttrib2dvARB := wglGetProcAddress('glVertexAttrib2dvARB');
-    if not Assigned(glVertexAttrib2dvARB) then Exit;
-    @glVertexAttrib3fvARB := wglGetProcAddress('glVertexAttrib3fvARB');
-    if not Assigned(glVertexAttrib3fvARB) then Exit;
-    @glVertexAttrib3svARB := wglGetProcAddress('glVertexAttrib3svARB');
-    if not Assigned(glVertexAttrib3svARB) then Exit;
-    @glVertexAttrib3dvARB := wglGetProcAddress('glVertexAttrib3dvARB');
-    if not Assigned(glVertexAttrib3dvARB) then Exit;
-    @glVertexAttrib4fvARB := wglGetProcAddress('glVertexAttrib4fvARB');
-    if not Assigned(glVertexAttrib4fvARB) then Exit;
-    @glVertexAttrib4svARB := wglGetProcAddress('glVertexAttrib4svARB');
-    if not Assigned(glVertexAttrib4svARB) then Exit;
-    @glVertexAttrib4dvARB := wglGetProcAddress('glVertexAttrib4dvARB');
-    if not Assigned(glVertexAttrib4dvARB) then Exit;
-    @glVertexAttrib4ivARB := wglGetProcAddress('glVertexAttrib4ivARB');
-    if not Assigned(glVertexAttrib4ivARB) then Exit;
-    @glVertexAttrib4bvARB := wglGetProcAddress('glVertexAttrib4bvARB');
-    if not Assigned(glVertexAttrib4bvARB) then Exit;
-    @glVertexAttrib4ubvARB := wglGetProcAddress('glVertexAttrib4ubvARB');
-    if not Assigned(glVertexAttrib4ubvARB) then Exit;
-    @glVertexAttrib4usvARB := wglGetProcAddress('glVertexAttrib4usvARB');
-    if not Assigned(glVertexAttrib4usvARB) then Exit;
-    @glVertexAttrib4uivARB := wglGetProcAddress('glVertexAttrib4uivARB');
-    if not Assigned(glVertexAttrib4uivARB) then Exit;
-    @glVertexAttrib4NbvARB := wglGetProcAddress('glVertexAttrib4NbvARB');
-    if not Assigned(glVertexAttrib4NbvARB) then Exit;
-    @glVertexAttrib4NsvARB := wglGetProcAddress('glVertexAttrib4NsvARB');
-    if not Assigned(glVertexAttrib4NsvARB) then Exit;
-    @glVertexAttrib4NivARB := wglGetProcAddress('glVertexAttrib4NivARB');
-    if not Assigned(glVertexAttrib4NivARB) then Exit;
-    @glVertexAttrib4NubvARB := wglGetProcAddress('glVertexAttrib4NubvARB');
-    if not Assigned(glVertexAttrib4NubvARB) then Exit;
-    @glVertexAttrib4NusvARB := wglGetProcAddress('glVertexAttrib4NusvARB');
-    if not Assigned(glVertexAttrib4NusvARB) then Exit;
-    @glVertexAttrib4NuivARB := wglGetProcAddress('glVertexAttrib4NuivARB');
-    if not Assigned(glVertexAttrib4NuivARB) then Exit;
-    @glVertexAttribPointerARB := wglGetProcAddress('glVertexAttribPointerARB');
-    if not Assigned(glVertexAttribPointerARB) then Exit;
-    @glEnableVertexAttribArrayARB := wglGetProcAddress('glEnableVertexAttribArrayARB');
-    if not Assigned(glEnableVertexAttribArrayARB) then Exit;
-    @glDisableVertexAttribArrayARB := wglGetProcAddress('glDisableVertexAttribArrayARB');
-    if not Assigned(glDisableVertexAttribArrayARB) then Exit;
-    @glBindAttribLocationARB := wglGetProcAddress('glBindAttribLocationARB');
-    if not Assigned(glBindAttribLocationARB) then Exit;
-    @glGetActiveAttribARB := wglGetProcAddress('glGetActiveAttribARB');
-    if not Assigned(glGetActiveAttribARB) then Exit;
-    @glGetAttribLocationARB := wglGetProcAddress('glGetAttribLocationARB');
-    if not Assigned(glGetAttribLocationARB) then Exit;
-    @glGetVertexAttribdvARB := wglGetProcAddress('glGetVertexAttribdvARB');
-    if not Assigned(glGetVertexAttribdvARB) then Exit;
-    @glGetVertexAttribfvARB := wglGetProcAddress('glGetVertexAttribfvARB');
-    if not Assigned(glGetVertexAttribfvARB) then Exit;
-    @glGetVertexAttribivARB := wglGetProcAddress('glGetVertexAttribivARB');
-    if not Assigned(glGetVertexAttribivARB) then Exit;
-    @glGetVertexAttribPointervARB := wglGetProcAddress('glGetVertexAttribPointervARB');
-    if not Assigned(glGetVertexAttribPointervARB) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ARB_fragment_shader: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_ARB_fragment_shader', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ARB_shading_language_100: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_ARB_shading_language_100', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ARB_texture_non_power_of_two: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_ARB_texture_non_power_of_two', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ARB_point_sprite: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_ARB_point_sprite', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_depth_bounds_test: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_EXT_depth_bounds_test', extstring) then
-  begin
-    @glDepthBoundsEXT := wglGetProcAddress('glDepthBoundsEXT');
-    if not Assigned(glDepthBoundsEXT) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_texture_mirror_clamp: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_EXT_texture_mirror_clamp', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_blend_equation_separate: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_EXT_blend_equation_separate', extstring) then
-  begin
-    @glBlendEquationSeparateEXT := wglGetProcAddress('glBlendEquationSeparateEXT');
-    if not Assigned(glBlendEquationSeparateEXT) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_MESA_pack_invert: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_MESA_pack_invert', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_MESA_ycbcr_texture: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_MESA_ycbcr_texture', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ARB_fragment_program_shadow: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_ARB_fragment_program_shadow', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_NV_fragment_program_option: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_NV_fragment_program_option', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_pixel_buffer_object: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_EXT_pixel_buffer_object', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_NV_fragment_program2: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_NV_fragment_program2', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_NV_vertex_program2_option: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_NV_vertex_program2_option', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_NV_vertex_program3: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-  if glext_ExtensionSupported('GL_NV_vertex_program3', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ARB_draw_buffers: Boolean;
-var
-  extstring: PChar;
-begin
-
-  Result := FALSE;
-  extstring := glGetString(GL_EXTENSIONS);
-
-  if glext_ExtensionSupported('GL_ARB_draw_buffers', extstring) then
-  begin
-    glDrawBuffersARB := wglGetProcAddress('glDrawBuffersARB');
-    if not Assigned(glDrawBuffersARB) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ARB_texture_rectangle: Boolean;
-var
-  extstring: PChar;
-begin
-
-  Result := FALSE;
-  extstring := glGetString(GL_EXTENSIONS);
-
-  if glext_ExtensionSupported('GL_ARB_texture_rectangle', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ARB_color_buffer_float: Boolean;
-var
-  extstring: PChar;
-begin
-
-  Result := FALSE;
-  extstring := glGetString(GL_EXTENSIONS);
-
-  if glext_ExtensionSupported('GL_ARB_color_buffer_float', extstring) then
-  begin
-    glClampColorARB := wglGetProcAddress('glClampColorARB');
-    if not Assigned(glClampColorARB) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ARB_half_float_pixel: Boolean;
-var
-  extstring: PChar;
-begin
-
-  Result := FALSE;
-  extstring := glGetString(GL_EXTENSIONS);
-
-  if glext_ExtensionSupported('GL_ARB_half_float_pixel', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ARB_texture_float: Boolean;
-var
-  extstring: PChar;
-begin
-
-  Result := FALSE;
-  extstring := glGetString(GL_EXTENSIONS);
-
-  if glext_ExtensionSupported('GL_ARB_texture_float', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_texture_compression_dxt1: Boolean;
-var
-  extstring: PChar;
-begin
-
-  Result := FALSE;
-  extstring := glGetString(GL_EXTENSIONS);
-
-  if glext_ExtensionSupported('GL_EXT_texture_compression_dxt1', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_ARB_pixel_buffer_object: Boolean;
-var
-  extstring: PChar;
-begin
-
-  Result := FALSE;
-  extstring := glGetString(GL_EXTENSIONS);
-
-  if glext_ExtensionSupported('GL_ARB_pixel_buffer_object', extstring) then
-  begin
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_EXT_framebuffer_object: Boolean;
-var
-  extstring: PChar;
-begin
-
-  Result := FALSE;
-  extstring := glGetString(GL_EXTENSIONS);
-
-  if glext_ExtensionSupported('GL_EXT_framebuffer_object', extstring) then
-  begin
-    glIsRenderbufferEXT := wglGetProcAddress('glIsRenderbufferEXT');
-    if not Assigned(glIsRenderbufferEXT) then Exit;
-    glBindRenderbufferEXT := wglGetProcAddress('glBindRenderbufferEXT');
-    if not Assigned(glBindRenderbufferEXT) then Exit;
-    glDeleteRenderbuffersEXT := wglGetProcAddress('glDeleteRenderbuffersEXT');
-    if not Assigned(glDeleteRenderbuffersEXT) then Exit;
-    glGenRenderbuffersEXT := wglGetProcAddress('glGenRenderbuffersEXT');
-    if not Assigned(glGenRenderbuffersEXT) then Exit;
-    glRenderbufferStorageEXT := wglGetProcAddress('glRenderbufferStorageEXT');
-    if not Assigned(glRenderbufferStorageEXT) then Exit;
-    glGetRenderbufferParameterivEXT := wglGetProcAddress('glGetRenderbufferParameterivEXT');
-    if not Assigned(glGetRenderbufferParameterivEXT) then Exit;
-    glIsFramebufferEXT := wglGetProcAddress('glIsFramebufferEXT');
-    if not Assigned(glIsFramebufferEXT) then Exit;
-    glBindFramebufferEXT := wglGetProcAddress('glBindFramebufferEXT');
-    if not Assigned(glBindFramebufferEXT) then Exit;
-    glDeleteFramebuffersEXT := wglGetProcAddress('glDeleteFramebuffersEXT');
-    if not Assigned(glDeleteFramebuffersEXT) then Exit;
-    glGenFramebuffersEXT := wglGetProcAddress('glGenFramebuffersEXT');
-    if not Assigned(glGenFramebuffersEXT) then Exit;
-    glCheckFramebufferStatusEXT := wglGetProcAddress('glCheckFramebufferStatusEXT');
-    if not Assigned(glCheckFramebufferStatusEXT) then Exit;
-    glFramebufferTexture1DEXT := wglGetProcAddress('glFramebufferTexture1DEXT');
-    if not Assigned(glFramebufferTexture1DEXT) then Exit;
-    glFramebufferTexture2DEXT := wglGetProcAddress('glFramebufferTexture2DEXT');
-    if not Assigned(glFramebufferTexture2DEXT) then Exit;
-    glFramebufferTexture3DEXT := wglGetProcAddress('glFramebufferTexture3DEXT');
-    if not Assigned(glFramebufferTexture3DEXT) then Exit;
-    glFramebufferRenderbufferEXT := wglGetProcAddress('glFramebufferRenderbufferEXT');
-    if not Assigned(glFramebufferRenderbufferEXT) then Exit;
-    glGetFramebufferAttachmentParameterivEXT := wglGetProcAddress('glGetFramebufferAttachmentParameterivEXT');
-    if not Assigned(glGetFramebufferAttachmentParameterivEXT) then Exit;
-    glGenerateMipmapEXT := wglGetProcAddress('glGenerateMipmapEXT');
-    if not Assigned(glGenerateMipmapEXT) then Exit;
-    Result := TRUE;
-  end;
-
-end;
-
-function Load_GL_version_1_4: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-    glBlendFuncSeparate := wglGetProcAddress('glBlendFuncSeparate');
-    if not Assigned(glBlendFuncSeparate) then Exit;
-    glFogCoordf := wglGetProcAddress('glFogCoordf');
-    if not Assigned(glFogCoordf) then Exit;
-    glFogCoordfv := wglGetProcAddress('glFogCoordfv');
-    if not Assigned(glFogCoordfv) then Exit;
-    glFogCoordd := wglGetProcAddress('glFogCoordd');
-    if not Assigned(glFogCoordd) then Exit;
-    glFogCoorddv := wglGetProcAddress('glFogCoorddv');
-    if not Assigned(glFogCoorddv) then Exit;
-    glFogCoordPointer := wglGetProcAddress('glFogCoordPointer');
-    if not Assigned(glFogCoordPointer) then Exit;
-    glMultiDrawArrays := wglGetProcAddress('glMultiDrawArrays');
-    if not Assigned(glMultiDrawArrays) then Exit;
-    glMultiDrawElements := wglGetProcAddress('glMultiDrawElements');
-    if not Assigned(glMultiDrawElements) then Exit;
-    glPointParameterf := wglGetProcAddress('glPointParameterf');
-    if not Assigned(glPointParameterf) then Exit;
-    glPointParameterfv := wglGetProcAddress('glPointParameterfv');
-    if not Assigned(glPointParameterfv) then Exit;
-    glPointParameteri := wglGetProcAddress('glPointParameteri');
-    if not Assigned(glPointParameteri) then Exit;
-    glPointParameteriv := wglGetProcAddress('glPointParameteriv');
-    if not Assigned(glPointParameteriv) then Exit;
-    glSecondaryColor3b := wglGetProcAddress('glSecondaryColor3b');
-    if not Assigned(glSecondaryColor3b) then Exit;
-    glSecondaryColor3bv := wglGetProcAddress('glSecondaryColor3bv');
-    if not Assigned(glSecondaryColor3bv) then Exit;
-    glSecondaryColor3d := wglGetProcAddress('glSecondaryColor3d');
-    if not Assigned(glSecondaryColor3d) then Exit;
-    glSecondaryColor3dv := wglGetProcAddress('glSecondaryColor3dv');
-    if not Assigned(glSecondaryColor3dv) then Exit;
-    glSecondaryColor3f := wglGetProcAddress('glSecondaryColor3f');
-    if not Assigned(glSecondaryColor3f) then Exit;
-    glSecondaryColor3fv := wglGetProcAddress('glSecondaryColor3fv');
-    if not Assigned(glSecondaryColor3fv) then Exit;
-    glSecondaryColor3i := wglGetProcAddress('glSecondaryColor3i');
-    if not Assigned(glSecondaryColor3i) then Exit;
-    glSecondaryColor3iv := wglGetProcAddress('glSecondaryColor3iv');
-    if not Assigned(glSecondaryColor3iv) then Exit;
-    glSecondaryColor3s := wglGetProcAddress('glSecondaryColor3s');
-    if not Assigned(glSecondaryColor3s) then Exit;
-    glSecondaryColor3sv := wglGetProcAddress('glSecondaryColor3sv');
-    if not Assigned(glSecondaryColor3sv) then Exit;
-    glSecondaryColor3ub := wglGetProcAddress('glSecondaryColor3ub');
-    if not Assigned(glSecondaryColor3ub) then Exit;
-    glSecondaryColor3ubv := wglGetProcAddress('glSecondaryColor3ubv');
-    if not Assigned(glSecondaryColor3ubv) then Exit;
-    glSecondaryColor3ui := wglGetProcAddress('glSecondaryColor3ui');
-    if not Assigned(glSecondaryColor3ui) then Exit;
-    glSecondaryColor3uiv := wglGetProcAddress('glSecondaryColor3uiv');
-    if not Assigned(glSecondaryColor3uiv) then Exit;
-    glSecondaryColor3us := wglGetProcAddress('glSecondaryColor3us');
-    if not Assigned(glSecondaryColor3us) then Exit;
-    glSecondaryColor3usv := wglGetProcAddress('glSecondaryColor3usv');
-    if not Assigned(glSecondaryColor3usv) then Exit;
-    glSecondaryColorPointer := wglGetProcAddress('glSecondaryColorPointer');
-    if not Assigned(glSecondaryColorPointer) then Exit;
-    glWindowPos2d := wglGetProcAddress('glWindowPos2d');
-    if not Assigned(glWindowPos2d) then Exit;
-    glWindowPos2dv := wglGetProcAddress('glWindowPos2dv');
-    if not Assigned(glWindowPos2dv) then Exit;
-    glWindowPos2f := wglGetProcAddress('glWindowPos2f');
-    if not Assigned(glWindowPos2f) then Exit;
-    glWindowPos2fv := wglGetProcAddress('glWindowPos2fv');
-    if not Assigned(glWindowPos2fv) then Exit;
-    glWindowPos2i := wglGetProcAddress('glWindowPos2i');
-    if not Assigned(glWindowPos2i) then Exit;
-    glWindowPos2iv := wglGetProcAddress('glWindowPos2iv');
-    if not Assigned(glWindowPos2iv) then Exit;
-    glWindowPos2s := wglGetProcAddress('glWindowPos2s');
-    if not Assigned(glWindowPos2s) then Exit;
-    glWindowPos2sv := wglGetProcAddress('glWindowPos2sv');
-    if not Assigned(glWindowPos2sv) then Exit;
-    glWindowPos3d := wglGetProcAddress('glWindowPos3d');
-    if not Assigned(glWindowPos3d) then Exit;
-    glWindowPos3dv := wglGetProcAddress('glWindowPos3dv');
-    if not Assigned(glWindowPos3dv) then Exit;
-    glWindowPos3f := wglGetProcAddress('glWindowPos3f');
-    if not Assigned(glWindowPos3f) then Exit;
-    glWindowPos3fv := wglGetProcAddress('glWindowPos3fv');
-    if not Assigned(glWindowPos3fv) then Exit;
-    glWindowPos3i := wglGetProcAddress('glWindowPos3i');
-    if not Assigned(glWindowPos3i) then Exit;
-    glWindowPos3iv := wglGetProcAddress('glWindowPos3iv');
-    if not Assigned(glWindowPos3iv) then Exit;
-    glWindowPos3s := wglGetProcAddress('glWindowPos3s');
-    if not Assigned(glWindowPos3s) then Exit;
-    glWindowPos3sv := wglGetProcAddress('glWindowPos3sv');
-    if not Assigned(glWindowPos3sv) then Exit;
-    Result := TRUE;
-
-end;
-
-function Load_GL_version_1_5: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-    glGenQueries := wglGetProcAddress('glGenQueries');
-    if not Assigned(glGenQueries) then Exit;
-    glDeleteQueries := wglGetProcAddress('glDeleteQueries');
-    if not Assigned(glDeleteQueries) then Exit;
-    glIsQuery := wglGetProcAddress('glIsQuery');
-    if not Assigned(glIsQuery) then Exit;
-    glBeginQuery := wglGetProcAddress('glBeginQuery');
-    if not Assigned(glBeginQuery) then Exit;
-    glEndQuery := wglGetProcAddress('glEndQuery');
-    if not Assigned(glEndQuery) then Exit;
-    glGetQueryiv := wglGetProcAddress('glGetQueryiv');
-    if not Assigned(glGetQueryiv) then Exit;
-    glGetQueryObjectiv := wglGetProcAddress('glGetQueryObjectiv');
-    if not Assigned(glGetQueryObjectiv) then Exit;
-    glGetQueryObjectuiv := wglGetProcAddress('glGetQueryObjectuiv');
-    if not Assigned(glGetQueryObjectuiv) then Exit;
-    glBindBuffer := wglGetProcAddress('glBindBuffer');
-    if not Assigned(glBindBuffer) then Exit;
-    glDeleteBuffers := wglGetProcAddress('glDeleteBuffers');
-    if not Assigned(glDeleteBuffers) then Exit;
-    glGenBuffers := wglGetProcAddress('glGenBuffers');
-    if not Assigned(glGenBuffers) then Exit;
-    glIsBuffer := wglGetProcAddress('glIsBuffer');
-    if not Assigned(glIsBuffer) then Exit;
-    glBufferData := wglGetProcAddress('glBufferData');
-    if not Assigned(glBufferData) then Exit;
-    glBufferSubData := wglGetProcAddress('glBufferSubData');
-    if not Assigned(glBufferSubData) then Exit;
-    glGetBufferSubData := wglGetProcAddress('glGetBufferSubData');
-    if not Assigned(glGetBufferSubData) then Exit;
-    glMapBuffer := wglGetProcAddress('glMapBuffer');
-    if not Assigned(glMapBuffer) then Exit;
-    glUnmapBuffer := wglGetProcAddress('glUnmapBuffer');
-    if not Assigned(glUnmapBuffer) then Exit;
-    glGetBufferParameteriv := wglGetProcAddress('glGetBufferParameteriv');
-    if not Assigned(glGetBufferParameteriv) then Exit;
-    glGetBufferPointerv := wglGetProcAddress('glGetBufferPointerv');
-    if not Assigned(glGetBufferPointerv) then Exit;
-    Result := TRUE;
-
-end;
-
-function Load_GL_version_2_0: Boolean;
-var
-  extstring: String;
-begin
-
-  Result := FALSE;
-  extstring := String(PChar(glGetString(GL_EXTENSIONS)));
-
-    glBlendEquationSeparate := wglGetProcAddress('glBlendEquationSeparate');
-    if not Assigned(glBlendEquationSeparate) then Exit;
-    glDrawBuffers := wglGetProcAddress('glDrawBuffers');
-    if not Assigned(glDrawBuffers) then Exit;
-    glStencilOpSeparate := wglGetProcAddress('glStencilOpSeparate');
-    if not Assigned(glStencilOpSeparate) then Exit;
-    glStencilFuncSeparate := wglGetProcAddress('glStencilFuncSeparate');
-    if not Assigned(glStencilFuncSeparate) then Exit;
-    glStencilMaskSeparate := wglGetProcAddress('glStencilMaskSeparate');
-    if not Assigned(glStencilMaskSeparate) then Exit;
-    glAttachShader := wglGetProcAddress('glAttachShader');
-    if not Assigned(glAttachShader) then Exit;
-    glBindAttribLocation := wglGetProcAddress('glBindAttribLocation');
-    if not Assigned(glBindAttribLocation) then Exit;
-    glCompileShader := wglGetProcAddress('glCompileShader');
-    if not Assigned(glCompileShader) then Exit;
-    glCreateProgram := wglGetProcAddress('glCreateProgram');
-    if not Assigned(glCreateProgram) then Exit;
-    glCreateShader := wglGetProcAddress('glCreateShader');
-    if not Assigned(glCreateShader) then Exit;
-    glDeleteProgram := wglGetProcAddress('glDeleteProgram');
-    if not Assigned(glDeleteProgram) then Exit;
-    glDeleteShader := wglGetProcAddress('glDeleteShader');
-    if not Assigned(glDeleteShader) then Exit;
-    glDetachShader := wglGetProcAddress('glDetachShader');
-    if not Assigned(glDetachShader) then Exit;
-    glDisableVertexAttribArray := wglGetProcAddress('glDisableVertexAttribArray');
-    if not Assigned(glDisableVertexAttribArray) then Exit;
-    glEnableVertexAttribArray := wglGetProcAddress('glEnableVertexAttribArray');
-    if not Assigned(glEnableVertexAttribArray) then Exit;
-    glGetActiveAttrib := wglGetProcAddress('glGetActiveAttrib');
-    if not Assigned(glGetActiveAttrib) then Exit;
-    glGetActiveUniform := wglGetProcAddress('glGetActiveUniform');
-    if not Assigned(glGetActiveUniform) then Exit;
-    glGetAttachedShaders := wglGetProcAddress('glGetAttachedShaders');
-    if not Assigned(glGetAttachedShaders) then Exit;
-    glGetAttribLocation := wglGetProcAddress('glGetAttribLocation');
-    if not Assigned(glGetAttribLocation) then Exit;
-    glGetProgramiv := wglGetProcAddress('glGetProgramiv');
-    if not Assigned(glGetProgramiv) then Exit;
-    glGetProgramInfoLog := wglGetProcAddress('glGetProgramInfoLog');
-    if not Assigned(glGetProgramInfoLog) then Exit;
-    glGetShaderiv := wglGetProcAddress('glGetShaderiv');
-    if not Assigned(glGetShaderiv) then Exit;
-    glGetShaderInfoLog := wglGetProcAddress('glGetShaderInfoLog');
-    if not Assigned(glGetShaderInfoLog) then Exit;
-    glGetShaderSource := wglGetProcAddress('glGetShaderSource');
-    if not Assigned(glGetShaderSource) then Exit;
-    glGetUniformLocation := wglGetProcAddress('glGetUniformLocation');
-    if not Assigned(glGetUniformLocation) then Exit;
-    glGetUniformfv := wglGetProcAddress('glGetUniformfv');
-    if not Assigned(glGetUniformfv) then Exit;
-    glGetUniformiv := wglGetProcAddress('glGetUniformiv');
-    if not Assigned(glGetUniformiv) then Exit;
-    glGetVertexAttribdv := wglGetProcAddress('glGetVertexAttribdv');
-    if not Assigned(glGetVertexAttribdv) then Exit;
-    glGetVertexAttribfv := wglGetProcAddress('glGetVertexAttribfv');
-    if not Assigned(glGetVertexAttribfv) then Exit;
-    glGetVertexAttribiv := wglGetProcAddress('glGetVertexAttribiv');
-    if not Assigned(glGetVertexAttribiv) then Exit;
-    glGetVertexAttribPointerv := wglGetProcAddress('glGetVertexAttribPointerv');
-    if not Assigned(glGetVertexAttribPointerv) then Exit;
-    glIsProgram := wglGetProcAddress('glIsProgram');
-    if not Assigned(glIsProgram) then Exit;
-    glIsShader := wglGetProcAddress('glIsShader');
-    if not Assigned(glIsShader) then Exit;
-    glLinkProgram := wglGetProcAddress('glLinkProgram');
-    if not Assigned(glLinkProgram) then Exit;
-    glShaderSource := wglGetProcAddress('glShaderSource');
-    if not Assigned(glShaderSource) then Exit;
-    glUseProgram := wglGetProcAddress('glUseProgram');
-    if not Assigned(glUseProgram) then Exit;
-    glUniform1f := wglGetProcAddress('glUniform1f');
-    if not Assigned(glUniform1f) then Exit;
-    glUniform2f := wglGetProcAddress('glUniform2f');
-    if not Assigned(glUniform2f) then Exit;
-    glUniform3f := wglGetProcAddress('glUniform3f');
-    if not Assigned(glUniform3f) then Exit;
-    glUniform4f := wglGetProcAddress('glUniform4f');
-    if not Assigned(glUniform4f) then Exit;
-    glUniform1i := wglGetProcAddress('glUniform1i');
-    if not Assigned(glUniform1i) then Exit;
-    glUniform2i := wglGetProcAddress('glUniform2i');
-    if not Assigned(glUniform2i) then Exit;
-    glUniform3i := wglGetProcAddress('glUniform3i');
-    if not Assigned(glUniform3i) then Exit;
-    glUniform4i := wglGetProcAddress('glUniform4i');
-    if not Assigned(glUniform4i) then Exit;
-    glUniform1fv := wglGetProcAddress('glUniform1fv');
-    if not Assigned(glUniform1fv) then Exit;
-    glUniform2fv := wglGetProcAddress('glUniform2fv');
-    if not Assigned(glUniform2fv) then Exit;
-    glUniform3fv := wglGetProcAddress('glUniform3fv');
-    if not Assigned(glUniform3fv) then Exit;
-    glUniform4fv := wglGetProcAddress('glUniform4fv');
-    if not Assigned(glUniform4fv) then Exit;
-    glUniform1iv := wglGetProcAddress('glUniform1iv');
-    if not Assigned(glUniform1iv) then Exit;
-    glUniform2iv := wglGetProcAddress('glUniform2iv');
-    if not Assigned(glUniform2iv) then Exit;
-    glUniform3iv := wglGetProcAddress('glUniform3iv');
-    if not Assigned(glUniform3iv) then Exit;
-    glUniform4iv := wglGetProcAddress('glUniform4iv');
-    if not Assigned(glUniform4iv) then Exit;
-    glUniformMatrix2fv := wglGetProcAddress('glUniformMatrix2fv');
-    if not Assigned(glUniformMatrix2fv) then Exit;
-    glUniformMatrix3fv := wglGetProcAddress('glUniformMatrix3fv');
-    if not Assigned(glUniformMatrix3fv) then Exit;
-    glUniformMatrix4fv := wglGetProcAddress('glUniformMatrix4fv');
-    if not Assigned(glUniformMatrix4fv) then Exit;
-    glValidateProgram := wglGetProcAddress('glValidateProgram');
-    if not Assigned(glValidateProgram) then Exit;
-    glVertexAttrib1d := wglGetProcAddress('glVertexAttrib1d');
-    if not Assigned(glVertexAttrib1d) then Exit;
-    glVertexAttrib1dv := wglGetProcAddress('glVertexAttrib1dv');
-    if not Assigned(glVertexAttrib1dv) then Exit;
-    glVertexAttrib1f := wglGetProcAddress('glVertexAttrib1f');
-    if not Assigned(glVertexAttrib1f) then Exit;
-    glVertexAttrib1fv := wglGetProcAddress('glVertexAttrib1fv');
-    if not Assigned(glVertexAttrib1fv) then Exit;
-    glVertexAttrib1s := wglGetProcAddress('glVertexAttrib1s');
-    if not Assigned(glVertexAttrib1s) then Exit;
-    glVertexAttrib1sv := wglGetProcAddress('glVertexAttrib1sv');
-    if not Assigned(glVertexAttrib1sv) then Exit;
-    glVertexAttrib2d := wglGetProcAddress('glVertexAttrib2d');
-    if not Assigned(glVertexAttrib2d) then Exit;
-    glVertexAttrib2dv := wglGetProcAddress('glVertexAttrib2dv');
-    if not Assigned(glVertexAttrib2dv) then Exit;
-    glVertexAttrib2f := wglGetProcAddress('glVertexAttrib2f');
-    if not Assigned(glVertexAttrib2f) then Exit;
-    glVertexAttrib2fv := wglGetProcAddress('glVertexAttrib2fv');
-    if not Assigned(glVertexAttrib2fv) then Exit;
-    glVertexAttrib2s := wglGetProcAddress('glVertexAttrib2s');
-    if not Assigned(glVertexAttrib2s) then Exit;
-    glVertexAttrib2sv := wglGetProcAddress('glVertexAttrib2sv');
-    if not Assigned(glVertexAttrib2sv) then Exit;
-    glVertexAttrib3d := wglGetProcAddress('glVertexAttrib3d');
-    if not Assigned(glVertexAttrib3d) then Exit;
-    glVertexAttrib3dv := wglGetProcAddress('glVertexAttrib3dv');
-    if not Assigned(glVertexAttrib3dv) then Exit;
-    glVertexAttrib3f := wglGetProcAddress('glVertexAttrib3f');
-    if not Assigned(glVertexAttrib3f) then Exit;
-    glVertexAttrib3fv := wglGetProcAddress('glVertexAttrib3fv');
-    if not Assigned(glVertexAttrib3fv) then Exit;
-    glVertexAttrib3s := wglGetProcAddress('glVertexAttrib3s');
-    if not Assigned(glVertexAttrib3s) then Exit;
-    glVertexAttrib3sv := wglGetProcAddress('glVertexAttrib3sv');
-    if not Assigned(glVertexAttrib3sv) then Exit;
-    glVertexAttrib4Nbv := wglGetProcAddress('glVertexAttrib4Nbv');
-    if not Assigned(glVertexAttrib4Nbv) then Exit;
-    glVertexAttrib4Niv := wglGetProcAddress('glVertexAttrib4Niv');
-    if not Assigned(glVertexAttrib4Niv) then Exit;
-    glVertexAttrib4Nsv := wglGetProcAddress('glVertexAttrib4Nsv');
-    if not Assigned(glVertexAttrib4Nsv) then Exit;
-    glVertexAttrib4Nub := wglGetProcAddress('glVertexAttrib4Nub');
-    if not Assigned(glVertexAttrib4Nub) then Exit;
-    glVertexAttrib4Nubv := wglGetProcAddress('glVertexAttrib4Nubv');
-    if not Assigned(glVertexAttrib4Nubv) then Exit;
-    glVertexAttrib4Nuiv := wglGetProcAddress('glVertexAttrib4Nuiv');
-    if not Assigned(glVertexAttrib4Nuiv) then Exit;
-    glVertexAttrib4Nusv := wglGetProcAddress('glVertexAttrib4Nusv');
-    if not Assigned(glVertexAttrib4Nusv) then Exit;
-    glVertexAttrib4bv := wglGetProcAddress('glVertexAttrib4bv');
-    if not Assigned(glVertexAttrib4bv) then Exit;
-    glVertexAttrib4d := wglGetProcAddress('glVertexAttrib4d');
-    if not Assigned(glVertexAttrib4d) then Exit;
-    glVertexAttrib4dv := wglGetProcAddress('glVertexAttrib4dv');
-    if not Assigned(glVertexAttrib4dv) then Exit;
-    glVertexAttrib4f := wglGetProcAddress('glVertexAttrib4f');
-    if not Assigned(glVertexAttrib4f) then Exit;
-    glVertexAttrib4fv := wglGetProcAddress('glVertexAttrib4fv');
-    if not Assigned(glVertexAttrib4fv) then Exit;
-    glVertexAttrib4iv := wglGetProcAddress('glVertexAttrib4iv');
-    if not Assigned(glVertexAttrib4iv) then Exit;
-    glVertexAttrib4s := wglGetProcAddress('glVertexAttrib4s');
-    if not Assigned(glVertexAttrib4s) then Exit;
-    glVertexAttrib4sv := wglGetProcAddress('glVertexAttrib4sv');
-    if not Assigned(glVertexAttrib4sv) then Exit;
-    glVertexAttrib4ubv := wglGetProcAddress('glVertexAttrib4ubv');
-    if not Assigned(glVertexAttrib4ubv) then Exit;
-    glVertexAttrib4uiv := wglGetProcAddress('glVertexAttrib4uiv');
-    if not Assigned(glVertexAttrib4uiv) then Exit;
-    glVertexAttrib4usv := wglGetProcAddress('glVertexAttrib4usv');
-    if not Assigned(glVertexAttrib4usv) then Exit;
-    glVertexAttribPointer := wglGetProcAddress('glVertexAttribPointer');
-    if not Assigned(glVertexAttribPointer) then Exit;
-    Result := TRUE;
-
-end;
-
-function glext_LoadExtension(ext: String): Boolean;
-begin
-
-  Result := FALSE;
-
-  if ext = 'GL_version_1_2' then Result := Load_GL_version_1_2
-  else if ext = 'GL_ARB_imaging' then Result := Load_GL_ARB_imaging
-  else if ext = 'GL_version_1_3' then Result := Load_GL_version_1_3
-  else if ext = 'GL_ARB_multitexture' then Result := Load_GL_ARB_multitexture
-  else if ext = 'GL_ARB_transpose_matrix' then Result := Load_GL_ARB_transpose_matrix
-  else if ext = 'GL_ARB_multisample' then Result := Load_GL_ARB_multisample
-  else if ext = 'GL_ARB_texture_env_add' then Result := Load_GL_ARB_texture_env_add
-{$IFDEF Windows}
-  else if ext = 'WGL_ARB_extensions_string' then Result := Load_WGL_ARB_extensions_string
-  else if ext = 'WGL_ARB_buffer_region' then Result := Load_WGL_ARB_buffer_region
-{$ENDIF}
-  else if ext = 'GL_ARB_texture_cube_map' then Result := Load_GL_ARB_texture_cube_map
-  else if ext = 'GL_ARB_depth_texture' then Result := Load_GL_ARB_depth_texture
-  else if ext = 'GL_ARB_point_parameters' then Result := Load_GL_ARB_point_parameters
-  else if ext = 'GL_ARB_shadow' then Result := Load_GL_ARB_shadow
-  else if ext = 'GL_ARB_shadow_ambient' then Result := Load_GL_ARB_shadow_ambient
-  else if ext = 'GL_ARB_texture_border_clamp' then Result := Load_GL_ARB_texture_border_clamp
-  else if ext = 'GL_ARB_texture_compression' then Result := Load_GL_ARB_texture_compression
-  else if ext = 'GL_ARB_texture_env_combine' then Result := Load_GL_ARB_texture_env_combine
-  else if ext = 'GL_ARB_texture_env_crossbar' then Result := Load_GL_ARB_texture_env_crossbar
-  else if ext = 'GL_ARB_texture_env_dot3' then Result := Load_GL_ARB_texture_env_dot3
-  else if ext = 'GL_ARB_texture_mirrored_repeat' then Result := Load_GL_ARB_texture_mirrored_repeat
-  else if ext = 'GL_ARB_vertex_blend' then Result := Load_GL_ARB_vertex_blend
-  else if ext = 'GL_ARB_vertex_program' then Result := Load_GL_ARB_vertex_program
-  else if ext = 'GL_ARB_window_pos' then Result := Load_GL_ARB_window_pos
-  else if ext = 'GL_EXT_422_pixels' then Result := Load_GL_EXT_422_pixels
-  else if ext = 'GL_EXT_abgr' then Result := Load_GL_EXT_abgr
-  else if ext = 'GL_EXT_bgra' then Result := Load_GL_EXT_bgra
-  else if ext = 'GL_EXT_blend_color' then Result := Load_GL_EXT_blend_color
-  else if ext = 'GL_EXT_blend_func_separate' then Result := Load_GL_EXT_blend_func_separate
-  else if ext = 'GL_EXT_blend_logic_op' then Result := Load_GL_EXT_blend_logic_op
-  else if ext = 'GL_EXT_blend_minmax' then Result := Load_GL_EXT_blend_minmax
-  else if ext = 'GL_EXT_blend_subtract' then Result := Load_GL_EXT_blend_subtract
-  else if ext = 'GL_EXT_clip_volume_hint' then Result := Load_GL_EXT_clip_volume_hint
-  else if ext = 'GL_EXT_color_subtable' then Result := Load_GL_EXT_color_subtable
-  else if ext = 'GL_EXT_compiled_vertex_array' then Result := Load_GL_EXT_compiled_vertex_array
-  else if ext = 'GL_EXT_convolution' then Result := Load_GL_EXT_convolution
-  else if ext = 'GL_EXT_fog_coord' then Result := Load_GL_EXT_fog_coord
-  else if ext = 'GL_EXT_histogram' then Result := Load_GL_EXT_histogram
-  else if ext = 'GL_EXT_multi_draw_arrays' then Result := Load_GL_EXT_multi_draw_arrays
-  else if ext = 'GL_EXT_packed_pixels' then Result := Load_GL_EXT_packed_pixels
-  else if ext = 'GL_EXT_paletted_texture' then Result := Load_GL_EXT_paletted_texture
-  else if ext = 'GL_EXT_point_parameters' then Result := Load_GL_EXT_point_parameters
-  else if ext = 'GL_EXT_polygon_offset' then Result := Load_GL_EXT_polygon_offset
-  else if ext = 'GL_EXT_secondary_color' then Result := Load_GL_EXT_secondary_color
-  else if ext = 'GL_EXT_separate_specular_color' then Result := Load_GL_EXT_separate_specular_color
-  else if ext = 'GL_EXT_shadow_funcs' then Result := Load_GL_EXT_shadow_funcs
-  else if ext = 'GL_EXT_shared_texture_palette' then Result := Load_GL_EXT_shared_texture_palette
-  else if ext = 'GL_EXT_stencil_two_side' then Result := Load_GL_EXT_stencil_two_side
-  else if ext = 'GL_EXT_stencil_wrap' then Result := Load_GL_EXT_stencil_wrap
-  else if ext = 'GL_EXT_subtexture' then Result := Load_GL_EXT_subtexture
-  else if ext = 'GL_EXT_texture3D' then Result := Load_GL_EXT_texture3D
-  else if ext = 'GL_EXT_texture_compression_s3tc' then Result := Load_GL_EXT_texture_compression_s3tc
-  else if ext = 'GL_EXT_texture_env_add' then Result := Load_GL_EXT_texture_env_add
-  else if ext = 'GL_EXT_texture_env_combine' then Result := Load_GL_EXT_texture_env_combine
-  else if ext = 'GL_EXT_texture_env_dot3' then Result := Load_GL_EXT_texture_env_dot3
-  else if ext = 'GL_EXT_texture_filter_anisotropic' then Result := Load_GL_EXT_texture_filter_anisotropic
-  else if ext = 'GL_EXT_texture_lod_bias' then Result := Load_GL_EXT_texture_lod_bias
-  else if ext = 'GL_EXT_texture_object' then Result := Load_GL_EXT_texture_object
-  else if ext = 'GL_EXT_vertex_array' then Result := Load_GL_EXT_vertex_array
-  else if ext = 'GL_EXT_vertex_shader' then Result := Load_GL_EXT_vertex_shader
-  else if ext = 'GL_EXT_vertex_weighting' then Result := Load_GL_EXT_vertex_weighting
-  else if ext = 'GL_HP_occlusion_test' then Result := Load_GL_HP_occlusion_test
-  else if ext = 'GL_NV_blend_square' then Result := Load_GL_NV_blend_square
-  else if ext = 'GL_NV_copy_depth_to_color' then Result := Load_GL_NV_copy_depth_to_color
-  else if ext = 'GL_NV_depth_clamp' then Result := Load_GL_NV_depth_clamp
-  else if ext = 'GL_NV_evaluators' then Result := Load_GL_NV_evaluators
-  else if ext = 'GL_NV_fence' then Result := Load_GL_NV_fence
-  else if ext = 'GL_NV_fog_distance' then Result := Load_GL_NV_fog_distance
-  else if ext = 'GL_NV_light_max_exponent' then Result := Load_GL_NV_light_max_exponent
-  else if ext = 'GL_NV_multisample_filter_hint' then Result := Load_GL_NV_multisample_filter_hint
-  else if ext = 'GL_NV_occlusion_query' then Result := Load_GL_NV_occlusion_query
-  else if ext = 'GL_NV_packed_depth_stencil' then Result := Load_GL_NV_packed_depth_stencil
-  else if ext = 'GL_NV_point_sprite' then Result := Load_GL_NV_point_sprite
-  else if ext = 'GL_NV_register_combiners' then Result := Load_GL_NV_register_combiners
-  else if ext = 'GL_NV_register_combiners2' then Result := Load_GL_NV_register_combiners2
-  else if ext = 'GL_NV_texgen_emboss' then Result := Load_GL_NV_texgen_emboss
-  else if ext = 'GL_NV_texgen_reflection' then Result := Load_GL_NV_texgen_reflection
-  else if ext = 'GL_NV_texture_compression_vtc' then Result := Load_GL_NV_texture_compression_vtc
-  else if ext = 'GL_NV_texture_env_combine4' then Result := Load_GL_NV_texture_env_combine4
-  else if ext = 'GL_NV_texture_rectangle' then Result := Load_GL_NV_texture_rectangle
-  else if ext = 'GL_NV_texture_shader' then Result := Load_GL_NV_texture_shader
-  else if ext = 'GL_NV_texture_shader2' then Result := Load_GL_NV_texture_shader2
-  else if ext = 'GL_NV_texture_shader3' then Result := Load_GL_NV_texture_shader3
-  else if ext = 'GL_NV_vertex_array_range' then Result := Load_GL_NV_vertex_array_range
-  else if ext = 'GL_NV_vertex_array_range2' then Result := Load_GL_NV_vertex_array_range2
-  else if ext = 'GL_NV_vertex_program' then Result := Load_GL_NV_vertex_program
-  else if ext = 'GL_NV_vertex_program1_1' then Result := Load_GL_NV_vertex_program1_1
-  else if ext = 'GL_ATI_element_array' then Result := Load_GL_ATI_element_array
-  else if ext = 'GL_ATI_envmap_bumpmap' then Result := Load_GL_ATI_envmap_bumpmap
-  else if ext = 'GL_ATI_fragment_shader' then Result := Load_GL_ATI_fragment_shader
-  else if ext = 'GL_ATI_pn_triangles' then Result := Load_GL_ATI_pn_triangles
-  else if ext = 'GL_ATI_texture_mirror_once' then Result := Load_GL_ATI_texture_mirror_once
-  else if ext = 'GL_ATI_vertex_array_object' then Result := Load_GL_ATI_vertex_array_object
-  else if ext = 'GL_ATI_vertex_streams' then Result := Load_GL_ATI_vertex_streams
-{$IFDEF Windows}
-  else if ext = 'WGL_I3D_image_buffer' then Result := Load_WGL_I3D_image_buffer
-  else if ext = 'WGL_I3D_swap_frame_lock' then Result := Load_WGL_I3D_swap_frame_lock
-  else if ext = 'WGL_I3D_swap_frame_usage' then Result := Load_WGL_I3D_swap_frame_usage
-{$ENDIF}
-  else if ext = 'GL_3DFX_texture_compression_FXT1' then Result := Load_GL_3DFX_texture_compression_FXT1
-  else if ext = 'GL_IBM_cull_vertex' then Result := Load_GL_IBM_cull_vertex
-  else if ext = 'GL_IBM_multimode_draw_arrays' then Result := Load_GL_IBM_multimode_draw_arrays
-  else if ext = 'GL_IBM_raster_pos_clip' then Result := Load_GL_IBM_raster_pos_clip
-  else if ext = 'GL_IBM_texture_mirrored_repeat' then Result := Load_GL_IBM_texture_mirrored_repeat
-  else if ext = 'GL_IBM_vertex_array_lists' then Result := Load_GL_IBM_vertex_array_lists
-  else if ext = 'GL_MESA_resize_buffers' then Result := Load_GL_MESA_resize_buffers
-  else if ext = 'GL_MESA_window_pos' then Result := Load_GL_MESA_window_pos
-  else if ext = 'GL_OML_interlace' then Result := Load_GL_OML_interlace
-  else if ext = 'GL_OML_resample' then Result := Load_GL_OML_resample
-  else if ext = 'GL_OML_subsample' then Result := Load_GL_OML_subsample
-  else if ext = 'GL_SGIS_generate_mipmap' then Result := Load_GL_SGIS_generate_mipmap
-  else if ext = 'GL_SGIS_multisample' then Result := Load_GL_SGIS_multisample
-  else if ext = 'GL_SGIS_pixel_texture' then Result := Load_GL_SGIS_pixel_texture
-  else if ext = 'GL_SGIS_texture_border_clamp' then Result := Load_GL_SGIS_texture_border_clamp
-  else if ext = 'GL_SGIS_texture_color_mask' then Result := Load_GL_SGIS_texture_color_mask
-  else if ext = 'GL_SGIS_texture_edge_clamp' then Result := Load_GL_SGIS_texture_edge_clamp
-  else if ext = 'GL_SGIS_texture_lod' then Result := Load_GL_SGIS_texture_lod
-  else if ext = 'GL_SGIS_depth_texture' then Result := Load_GL_SGIS_depth_texture
-  else if ext = 'GL_SGIX_fog_offset' then Result := Load_GL_SGIX_fog_offset
-  else if ext = 'GL_SGIX_interlace' then Result := Load_GL_SGIX_interlace
-  else if ext = 'GL_SGIX_shadow_ambient' then Result := Load_GL_SGIX_shadow_ambient
-  else if ext = 'GL_SGI_color_matrix' then Result := Load_GL_SGI_color_matrix
-  else if ext = 'GL_SGI_color_table' then Result := Load_GL_SGI_color_table
-  else if ext = 'GL_SGI_texture_color_table' then Result := Load_GL_SGI_texture_color_table
-  else if ext = 'GL_SUN_vertex' then Result := Load_GL_SUN_vertex
-  else if ext = 'GL_ARB_fragment_program' then Result := Load_GL_ARB_fragment_program
-  else if ext = 'GL_ATI_text_fragment_shader' then Result := Load_GL_ATI_text_fragment_shader
-  else if ext = 'GL_APPLE_client_storage' then Result := Load_GL_APPLE_client_storage
-  else if ext = 'GL_APPLE_element_array' then Result := Load_GL_APPLE_element_array
-  else if ext = 'GL_APPLE_fence' then Result := Load_GL_APPLE_fence
-  else if ext = 'GL_APPLE_vertex_array_object' then Result := Load_GL_APPLE_vertex_array_object
-  else if ext = 'GL_APPLE_vertex_array_range' then Result := Load_GL_APPLE_vertex_array_range
-{$IFDEF Windows}
-  else if ext = 'WGL_ARB_pixel_format' then Result := Load_WGL_ARB_pixel_format
-  else if ext = 'WGL_ARB_make_current_read' then Result := Load_WGL_ARB_make_current_read
-  else if ext = 'WGL_ARB_pbuffer' then Result := Load_WGL_ARB_pbuffer
-  else if ext = 'WGL_EXT_swap_control' then Result := Load_WGL_EXT_swap_control
-  else if ext = 'WGL_ARB_render_texture' then Result := Load_WGL_ARB_render_texture
-  else if ext = 'WGL_EXT_extensions_string' then Result := Load_WGL_EXT_extensions_string
-  else if ext = 'WGL_EXT_make_current_read' then Result := Load_WGL_EXT_make_current_read
-  else if ext = 'WGL_EXT_pbuffer' then Result := Load_WGL_EXT_pbuffer
-  else if ext = 'WGL_EXT_pixel_format' then Result := Load_WGL_EXT_pixel_format
-  else if ext = 'WGL_I3D_digital_video_control' then Result := Load_WGL_I3D_digital_video_control
-  else if ext = 'WGL_I3D_gamma' then Result := Load_WGL_I3D_gamma
-  else if ext = 'WGL_I3D_genlock' then Result := Load_WGL_I3D_genlock
-{$ENDIF}
-  else if ext = 'GL_ARB_matrix_palette' then Result := Load_GL_ARB_matrix_palette
-  else if ext = 'GL_NV_element_array' then Result := Load_GL_NV_element_array
-  else if ext = 'GL_NV_float_buffer' then Result := Load_GL_NV_float_buffer
-  else if ext = 'GL_NV_fragment_program' then Result := Load_GL_NV_fragment_program
-  else if ext = 'GL_NV_primitive_restart' then Result := Load_GL_NV_primitive_restart
-  else if ext = 'GL_NV_vertex_program2' then Result := Load_GL_NV_vertex_program2
-  {$IFDEF Windows}
-  else if ext = 'WGL_NV_render_texture_rectangle' then Result := Load_WGL_NV_render_texture_rectangle
-  {$ENDIF}
-  else if ext = 'GL_NV_pixel_data_range' then Result := Load_GL_NV_pixel_data_range
-  else if ext = 'GL_EXT_texture_rectangle' then Result := Load_GL_EXT_texture_rectangle
-  else if ext = 'GL_S3_s3tc' then Result := Load_GL_S3_s3tc
-  else if ext = 'GL_ATI_draw_buffers' then Result := Load_GL_ATI_draw_buffers
-  {$IFDEF Windows}
-  else if ext = 'WGL_ATI_pixel_format_float' then Result := Load_WGL_ATI_pixel_format_float
-  {$ENDIF}
-  else if ext = 'GL_ATI_texture_env_combine3' then Result := Load_GL_ATI_texture_env_combine3
-  else if ext = 'GL_ATI_texture_float' then Result := Load_GL_ATI_texture_float
-  else if ext = 'GL_NV_texture_expand_normal' then Result := Load_GL_NV_texture_expand_normal
-  else if ext = 'GL_NV_half_float' then Result := Load_GL_NV_half_float
-  else if ext = 'GL_ATI_map_object_buffer' then Result := Load_GL_ATI_map_object_buffer
-  else if ext = 'GL_ATI_separate_stencil' then Result := Load_GL_ATI_separate_stencil
-  else if ext = 'GL_ATI_vertex_attrib_array_object' then Result := Load_GL_ATI_vertex_attrib_array_object
-  else if ext = 'GL_ARB_vertex_buffer_object' then Result := Load_GL_ARB_vertex_buffer_object
-  else if ext = 'GL_ARB_occlusion_query' then Result := Load_GL_ARB_occlusion_query
-  else if ext = 'GL_ARB_shader_objects' then Result := Load_GL_ARB_shader_objects
-  else if ext = 'GL_ARB_vertex_shader' then Result := Load_GL_ARB_vertex_shader
-  else if ext = 'GL_ARB_fragment_shader' then Result := Load_GL_ARB_fragment_shader
-  else if ext = 'GL_ARB_shading_language_100' then Result := Load_GL_ARB_shading_language_100
-  else if ext = 'GL_ARB_texture_non_power_of_two' then Result := Load_GL_ARB_texture_non_power_of_two
-  else if ext = 'GL_ARB_point_sprite' then Result := Load_GL_ARB_point_sprite
-  else if ext = 'GL_EXT_depth_bounds_test' then Result := Load_GL_EXT_depth_bounds_test
-  else if ext = 'GL_EXT_texture_mirror_clamp' then Result := Load_GL_EXT_texture_mirror_clamp
-  else if ext = 'GL_EXT_blend_equation_separate' then Result := Load_GL_EXT_blend_equation_separate
-  else if ext = 'GL_MESA_pack_invert' then Result := Load_GL_MESA_pack_invert
-  else if ext = 'GL_MESA_ycbcr_texture' then Result := Load_GL_MESA_ycbcr_texture
-  else if ext = 'GL_ARB_fragment_program_shadow' then Result := Load_GL_ARB_fragment_program_shadow
-  else if ext = 'GL_NV_fragment_program_option' then Result := Load_GL_NV_fragment_program_option
-  else if ext = 'GL_EXT_pixel_buffer_object' then Result := Load_GL_EXT_pixel_buffer_object
-  else if ext = 'GL_NV_fragment_program2' then Result := Load_GL_NV_fragment_program2
-  else if ext = 'GL_NV_vertex_program2_option' then Result := Load_GL_NV_vertex_program2_option
-  else if ext = 'GL_NV_vertex_program3' then Result := Load_GL_NV_vertex_program3
-  else if ext = 'GL_ARB_draw_buffers' then Result := Load_GL_ARB_draw_buffers
-  else if ext = 'GL_ARB_texture_rectangle' then Result := Load_GL_ARB_texture_rectangle
-  else if ext = 'GL_ARB_color_buffer_float' then Result := Load_GL_ARB_color_buffer_float
-  else if ext = 'GL_ARB_half_float_pixel' then Result := Load_GL_ARB_half_float_pixel
-  else if ext = 'GL_ARB_texture_float' then Result := Load_GL_ARB_texture_float
-  else if ext = 'GL_EXT_texture_compression_dxt1' then Result := Load_GL_EXT_texture_compression_dxt1
-  else if ext = 'GL_ARB_pixel_buffer_object' then Result := Load_GL_ARB_pixel_buffer_object
-  else if ext = 'GL_EXT_framebuffer_object' then Result := Load_GL_EXT_framebuffer_object
-  else if ext = 'GL_version_1_4' then Result := Load_GL_version_1_4
-  else if ext = 'GL_version_1_5' then Result := Load_GL_version_1_5
-  else if ext = 'GL_version_2_0' then Result := Load_GL_version_2_0
-
-end;
-
-end.

+ 0 - 572
packages/extra/opengl/glu.pp

@@ -1,572 +0,0 @@
-{
-
-  Adaption of the delphi3d.net OpenGL units to FreePascal
-  Sebastian Guenther ([email protected]) in 2002
-  These units are free to use
-}
-
-{*++ BUILD Version: 0004    // Increment this if a change has global effects
-
-Copyright (c) 1985-95, Microsoft Corporation
-
-Module Name:
-
-    glu.h
-
-Abstract:
-
-    Procedure declarations, constant definitions and macros for the OpenGL
-    Utility Library.
-
---*}
-
-{*
-** Copyright 1991-1993, Silicon Graphics, Inc.
-** All Rights Reserved.
-**
-** This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;
-** the contents of this file may not be disclosed to third parties, copied or
-** duplicated in any form, in whole or in part, without the prior written
-** permission of Silicon Graphics, Inc.
-**
-** RESTRICTED RIGHTS LEGEND:
-** Use, duplication or disclosure by the Government is subject to restrictions
-** as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
-** and Computer Software clause at DFARS 252.227-7013, and/or in similar or
-** successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
-** rights reserved under the Copyright Laws of the United States.
-*}
-
-{*
-** Return the error string associated with a particular error code.
-** This will return 0 for an invalid error code.
-**
-** The generic function prototype that can be compiled for ANSI or Unicode
-** is defined as follows:
-**
-** LPCTSTR APIENTRY gluErrorStringWIN (GLenum errCode);
-*}
-
-{******************************************************************************}
-{ Converted to Delphi by Tom Nuydens ([email protected])                        }
-{ For the latest updates, visit Delphi3D: http://www.delphi3d.net              }
-{******************************************************************************}
-
-{$MACRO ON}
-{$MODE Delphi}
-{$IFDEF Windows}
-  {$DEFINE extdecl := stdcall}
-{$ELSE}
-  {$DEFINE extdecl := cdecl}
-{$ENDIF}
-
-{$IFDEF MORPHOS}
-{$INLINE ON}
-{$DEFINE GLU_UNIT}
-{$ENDIF}
-
-unit GLu;
-
-interface
-
-uses
-  SysUtils,
-  {$IFDEF Windows}
-  Windows,
-  {$ELSE}
-  {$IFDEF MORPHOS}
-  TinyGL,
-  {$ENDIF}
-  {$ENDIF}
-  GL;
-
-type
-  TViewPortArray = array [0..3] of GLint;
-  T16dArray = array [0..15] of GLdouble;
-  TCallBack = procedure;
-  T3dArray = array [0..2] of GLdouble;
-  T4pArray = array [0..3] of Pointer;
-  T4fArray = array [0..3] of GLfloat;
-  PPointer = ^Pointer;
-
-type
-  GLUnurbs = record end;                PGLUnurbs = ^GLUnurbs;
-  GLUquadric = record end;              PGLUquadric = ^GLUquadric;
-  GLUtesselator = record end;           PGLUtesselator = ^GLUtesselator;
-
-  // backwards compatibility:
-  GLUnurbsObj = GLUnurbs;               PGLUnurbsObj = PGLUnurbs;
-  GLUquadricObj = GLUquadric;           PGLUquadricObj = PGLUquadric;
-  GLUtesselatorObj = GLUtesselator;     PGLUtesselatorObj = PGLUtesselator;
-  GLUtriangulatorObj = GLUtesselator;   PGLUtriangulatorObj = PGLUtesselator;
-
-  TGLUnurbs = GLUnurbs;
-  TGLUquadric = GLUquadric;
-  TGLUtesselator = GLUtesselator;
-
-  TGLUnurbsObj = GLUnurbsObj;
-  TGLUquadricObj = GLUquadricObj;
-  TGLUtesselatorObj = GLUtesselatorObj;
-  TGLUtriangulatorObj = GLUtriangulatorObj;
-
-{$IFDEF MORPHOS}
-
-{ MorphOS GL works differently due to different dynamic-library handling on Amiga-like }
-{ systems, so its headers are included here. }
-{$INCLUDE tinyglh.inc}
-
-{$ELSE MORPHOS}
-var
-  gluErrorString: function(errCode: GLenum): PChar; extdecl;
-  gluErrorUnicodeStringEXT: function(errCode: GLenum): PWideChar; extdecl;
-  gluGetString: function(name: GLenum): PChar; extdecl;
-  gluOrtho2D: procedure(left,right, bottom, top: GLdouble); extdecl;
-  gluPerspective: procedure(fovy, aspect, zNear, zFar: GLdouble); extdecl;
-  gluPickMatrix: procedure(x, y, width, height: GLdouble; var viewport: TViewPortArray); extdecl;
-  gluLookAt: procedure(eyex, eyey, eyez, centerx, centery, centerz, upx, upy, upz: GLdouble); extdecl;
-  gluProject: function(objx, objy, objz: GLdouble; var modelMatrix, projMatrix: T16dArray; var viewport: TViewPortArray; winx, winy, winz: PGLdouble): Integer; extdecl;
-  gluUnProject: function(winx, winy, winz: GLdouble; var modelMatrix, projMatrix: T16dArray; var viewport: TViewPortArray; objx, objy, objz: PGLdouble): Integer; extdecl;
-  gluScaleImage: function(format: GLenum; widthin, heightin: GLint; typein: GLenum; const datain: Pointer; widthout, heightout: GLint; typeout: GLenum; dataout: Pointer): Integer; extdecl;
-  gluBuild1DMipmaps: function(target: GLenum; components, width: GLint; format, atype: GLenum; const data: Pointer): Integer; extdecl;
-  gluBuild2DMipmaps: function(target: GLenum; components, width, height: GLint; format, atype: GLenum; const data: Pointer): Integer; extdecl;
-
-var
-  gluNewQuadric: function: PGLUquadric; extdecl;
-  gluDeleteQuadric: procedure(state: PGLUquadric); extdecl;
-  gluQuadricNormals: procedure(quadObject: PGLUquadric; normals: GLenum); extdecl;
-  gluQuadricTexture: procedure(quadObject: PGLUquadric; textureCoords: GLboolean); extdecl;
-  gluQuadricOrientation: procedure(quadObject: PGLUquadric; orientation: GLenum); extdecl;
-  gluQuadricDrawStyle: procedure(quadObject: PGLUquadric; drawStyle: GLenum); extdecl;
-  gluCylinder: procedure(qobj: PGLUquadric; baseRadius, topRadius, height: GLdouble; slices, stacks: GLint); extdecl;
-  gluDisk: procedure(qobj: PGLUquadric; innerRadius, outerRadius: GLdouble; slices, loops: GLint); extdecl;
-  gluPartialDisk: procedure(qobj: PGLUquadric; innerRadius, outerRadius: GLdouble; slices, loops: GLint; startAngle, sweepAngle: GLdouble); extdecl;
-  gluSphere: procedure(qobj: PGLuquadric; radius: GLdouble; slices, stacks: GLint); extdecl;
-  gluQuadricCallback: procedure(qobj: PGLUquadric; which: GLenum; fn: TCallBack); extdecl;
-  gluNewTess: function: PGLUtesselator; extdecl;
-  gluDeleteTess: procedure(tess: PGLUtesselator); extdecl;
-  gluTessBeginPolygon: procedure(tess: PGLUtesselator; polygon_data: Pointer); extdecl;
-  gluTessBeginContour: procedure(tess: PGLUtesselator); extdecl;
-  gluTessVertex: procedure(tess: PGLUtesselator; var coords: T3dArray; data: Pointer); extdecl;
-  gluTessEndContour: procedure(tess: PGLUtesselator); extdecl;
-  gluTessEndPolygon: procedure(tess: PGLUtesselator); extdecl;
-  gluTessProperty: procedure(tess: PGLUtesselator; which: GLenum; value: GLdouble); extdecl;
-  gluTessNormal: procedure(tess: PGLUtesselator; x, y, z: GLdouble); extdecl;
-  gluTessCallback: procedure(tess: PGLUtesselator; which: GLenum;fn: TCallBack); extdecl;
-  gluGetTessProperty: procedure(tess: PGLUtesselator; which: GLenum; value: PGLdouble); extdecl;
-  gluNewNurbsRenderer: function: PGLUnurbs; extdecl;
-  gluDeleteNurbsRenderer: procedure(nobj: PGLUnurbs); extdecl;
-  gluBeginSurface: procedure(nobj: PGLUnurbs); extdecl;
-  gluBeginCurve: procedure(nobj: PGLUnurbs); extdecl;
-  gluEndCurve: procedure(nobj: PGLUnurbs); extdecl;
-  gluEndSurface: procedure(nobj: PGLUnurbs); extdecl;
-  gluBeginTrim: procedure(nobj: PGLUnurbs); extdecl;
-  gluEndTrim: procedure(nobj: PGLUnurbs); extdecl;
-  gluPwlCurve: procedure(nobj: PGLUnurbs; count: GLint; aarray: PGLfloat; stride: GLint; atype: GLenum); extdecl;
-  gluNurbsCurve: procedure(nobj: PGLUnurbs; nknots: GLint; knot: PGLfloat; stride: GLint; ctlarray: PGLfloat; order: GLint; atype: GLenum); extdecl;
-  gluNurbsSurface: procedure(nobj: PGLUnurbs; sknot_count: GLint; sknot: PGLfloat; tknot_count: GLint; tknot: PGLfloat; s_stride, t_stride: GLint; ctlarray: PGLfloat; sorder, torder: GLint; atype: GLenum); extdecl;
-  gluLoadSamplingMatrices: procedure(nobj: PGLUnurbs; var modelMatrix, projMatrix: T16dArray; var viewport: TViewPortArray); extdecl;
-  gluNurbsProperty: procedure(nobj: PGLUnurbs; aproperty: GLenum; value: GLfloat); extdecl;
-  gluGetNurbsProperty: procedure(nobj: PGLUnurbs; aproperty: GLenum; value: PGLfloat); extdecl;
-  gluNurbsCallback: procedure(nobj: PGLUnurbs; which: GLenum; fn: TCallBack); extdecl;
-{$ENDIF MORPHOS}
-
-(**** Callback function prototypes ****)
-
-type
-  // gluQuadricCallback
-  GLUquadricErrorProc = procedure(p: GLenum); extdecl;
-
-  // gluTessCallback
-  GLUtessBeginProc = procedure(p: GLenum); extdecl;
-  GLUtessEdgeFlagProc = procedure(p: GLboolean); extdecl;
-  GLUtessVertexProc = procedure(p: Pointer); extdecl;
-  GLUtessEndProc = procedure; extdecl;
-  GLUtessErrorProc = procedure(p: GLenum); extdecl;
-  GLUtessCombineProc = procedure(var p1: T3dArray; p2: T4pArray; p3: T4fArray; p4: PPointer); extdecl;
-  GLUtessBeginDataProc = procedure(p1: GLenum; p2: Pointer); extdecl;
-  GLUtessEdgeFlagDataProc = procedure(p1: GLboolean; p2: Pointer); extdecl;
-  GLUtessVertexDataProc = procedure(p1, p2: Pointer); extdecl;
-  GLUtessEndDataProc = procedure(p: Pointer); extdecl;
-  GLUtessErrorDataProc = procedure(p1: GLenum; p2: Pointer); extdecl;
-  GLUtessCombineDataProc = procedure(var p1: T3dArray; var p2: T4pArray; var p3: T4fArray;
-                                     p4: PPointer; p5: Pointer); extdecl;
-
-  // gluNurbsCallback
-  GLUnurbsErrorProc = procedure(p: GLenum); extdecl;
-
-
-//***           Generic constants               ****/
-
-const
-  // Version
-  GLU_VERSION_1_1                 = 1;
-  GLU_VERSION_1_2                 = 1;
-
-  // Errors: (return value 0 = no error)
-  GLU_INVALID_ENUM                = 100900;
-  GLU_INVALID_VALUE               = 100901;
-  GLU_OUT_OF_MEMORY               = 100902;
-  GLU_INCOMPATIBLE_GL_VERSION     = 100903;
-
-  // StringName
-  GLU_VERSION                     = 100800;
-  GLU_EXTENSIONS                  = 100801;
-
-  // Boolean
-  GLU_TRUE                        = GL_TRUE;
-  GLU_FALSE                       = GL_FALSE;
-
-
-  //***           Quadric constants               ****/
-
-  // QuadricNormal
-  GLU_SMOOTH              = 100000;
-  GLU_FLAT                = 100001;
-  GLU_NONE                = 100002;
-
-  // QuadricDrawStyle
-  GLU_POINT               = 100010;
-  GLU_LINE                = 100011;
-  GLU_FILL                = 100012;
-  GLU_SILHOUETTE          = 100013;
-
-  // QuadricOrientation
-  GLU_OUTSIDE             = 100020;
-  GLU_INSIDE              = 100021;
-
-  // Callback types:
-  //      GLU_ERROR       = 100103;
-
-
-  //***           Tesselation constants           ****/
-
-  GLU_TESS_MAX_COORD              = 1.0e150;
-
-  // TessProperty
-  GLU_TESS_WINDING_RULE           = 100140;
-  GLU_TESS_BOUNDARY_ONLY          = 100141;
-  GLU_TESS_TOLERANCE              = 100142;
-
-  // TessWinding
-  GLU_TESS_WINDING_ODD            = 100130;
-  GLU_TESS_WINDING_NONZERO        = 100131;
-  GLU_TESS_WINDING_POSITIVE       = 100132;
-  GLU_TESS_WINDING_NEGATIVE       = 100133;
-  GLU_TESS_WINDING_ABS_GEQ_TWO    = 100134;
-
-  // TessCallback
-  GLU_TESS_BEGIN          = 100100;    // void (CALLBACK*)(GLenum    type)
-  GLU_TESS_VERTEX         = 100101;    // void (CALLBACK*)(void      *data)
-  GLU_TESS_END            = 100102;    // void (CALLBACK*)(void)
-  GLU_TESS_ERROR          = 100103;    // void (CALLBACK*)(GLenum    errno)
-  GLU_TESS_EDGE_FLAG      = 100104;    // void (CALLBACK*)(GLboolean boundaryEdge)
-  GLU_TESS_COMBINE        = 100105;    { void (CALLBACK*)(GLdouble  coords[3],
-                                                            void      *data[4],
-                                                            GLfloat   weight[4],
-                                                            void      **dataOut) }
-  GLU_TESS_BEGIN_DATA     = 100106;    { void (CALLBACK*)(GLenum    type,
-                                                            void      *polygon_data) }
-  GLU_TESS_VERTEX_DATA    = 100107;    { void (CALLBACK*)(void      *data,
-                                                            void      *polygon_data) }
-  GLU_TESS_END_DATA       = 100108;    // void (CALLBACK*)(void      *polygon_data)
-  GLU_TESS_ERROR_DATA     = 100109;    { void (CALLBACK*)(GLenum    errno,
-                                                            void      *polygon_data) }
-  GLU_TESS_EDGE_FLAG_DATA = 100110;    { void (CALLBACK*)(GLboolean boundaryEdge,
-                                                            void      *polygon_data) }
-  GLU_TESS_COMBINE_DATA   = 100111;    { void (CALLBACK*)(GLdouble  coords[3],
-                                                            void      *data[4],
-                                                            GLfloat   weight[4],
-                                                            void      **dataOut,
-                                                            void      *polygon_data) }
-
-  // TessError
-  GLU_TESS_ERROR1     = 100151;
-  GLU_TESS_ERROR2     = 100152;
-  GLU_TESS_ERROR3     = 100153;
-  GLU_TESS_ERROR4     = 100154;
-  GLU_TESS_ERROR5     = 100155;
-  GLU_TESS_ERROR6     = 100156;
-  GLU_TESS_ERROR7     = 100157;
-  GLU_TESS_ERROR8     = 100158;
-
-  GLU_TESS_MISSING_BEGIN_POLYGON  = GLU_TESS_ERROR1;
-  GLU_TESS_MISSING_BEGIN_CONTOUR  = GLU_TESS_ERROR2;
-  GLU_TESS_MISSING_END_POLYGON    = GLU_TESS_ERROR3;
-  GLU_TESS_MISSING_END_CONTOUR    = GLU_TESS_ERROR4;
-  GLU_TESS_COORD_TOO_LARGE        = GLU_TESS_ERROR5;
-  GLU_TESS_NEED_COMBINE_CALLBACK  = GLU_TESS_ERROR6;
-
-  //***           NURBS constants                 ****/
-
-  // NurbsProperty
-  GLU_AUTO_LOAD_MATRIX            = 100200;
-  GLU_CULLING                     = 100201;
-  GLU_SAMPLING_TOLERANCE          = 100203;
-  GLU_DISPLAY_MODE                = 100204;
-  GLU_PARAMETRIC_TOLERANCE        = 100202;
-  GLU_SAMPLING_METHOD             = 100205;
-  GLU_U_STEP                      = 100206;
-  GLU_V_STEP                      = 100207;
-
-  // NurbsSampling
-  GLU_PATH_LENGTH                 = 100215;
-  GLU_PARAMETRIC_ERROR            = 100216;
-  GLU_DOMAIN_DISTANCE             = 100217;
-
-
-  // NurbsTrim
-  GLU_MAP1_TRIM_2                 = 100210;
-  GLU_MAP1_TRIM_3                 = 100211;
-
-  // NurbsDisplay
-  //      GLU_FILL                = 100012;
-  GLU_OUTLINE_POLYGON             = 100240;
-  GLU_OUTLINE_PATCH               = 100241;
-
-  // NurbsCallback
-  //      GLU_ERROR               = 100103;
-
-  // NurbsErrors
-  GLU_NURBS_ERROR1        = 100251;
-  GLU_NURBS_ERROR2        = 100252;
-  GLU_NURBS_ERROR3        = 100253;
-  GLU_NURBS_ERROR4        = 100254;
-  GLU_NURBS_ERROR5        = 100255;
-  GLU_NURBS_ERROR6        = 100256;
-  GLU_NURBS_ERROR7        = 100257;
-  GLU_NURBS_ERROR8        = 100258;
-  GLU_NURBS_ERROR9        = 100259;
-  GLU_NURBS_ERROR10       = 100260;
-  GLU_NURBS_ERROR11       = 100261;
-  GLU_NURBS_ERROR12       = 100262;
-  GLU_NURBS_ERROR13       = 100263;
-  GLU_NURBS_ERROR14       = 100264;
-  GLU_NURBS_ERROR15       = 100265;
-  GLU_NURBS_ERROR16       = 100266;
-  GLU_NURBS_ERROR17       = 100267;
-  GLU_NURBS_ERROR18       = 100268;
-  GLU_NURBS_ERROR19       = 100269;
-  GLU_NURBS_ERROR20       = 100270;
-  GLU_NURBS_ERROR21       = 100271;
-  GLU_NURBS_ERROR22       = 100272;
-  GLU_NURBS_ERROR23       = 100273;
-  GLU_NURBS_ERROR24       = 100274;
-  GLU_NURBS_ERROR25       = 100275;
-  GLU_NURBS_ERROR26       = 100276;
-  GLU_NURBS_ERROR27       = 100277;
-  GLU_NURBS_ERROR28       = 100278;
-  GLU_NURBS_ERROR29       = 100279;
-  GLU_NURBS_ERROR30       = 100280;
-  GLU_NURBS_ERROR31       = 100281;
-  GLU_NURBS_ERROR32       = 100282;
-  GLU_NURBS_ERROR33       = 100283;
-  GLU_NURBS_ERROR34       = 100284;
-  GLU_NURBS_ERROR35       = 100285;
-  GLU_NURBS_ERROR36       = 100286;
-  GLU_NURBS_ERROR37       = 100287;
-
-//***           Backwards compatibility for old tesselator           ****/
-
-var
-  gluBeginPolygon: procedure(tess: PGLUtesselator); extdecl;
-  gluNextContour: procedure(tess: PGLUtesselator; atype: GLenum); extdecl;
-  gluEndPolygon: procedure(tess: PGLUtesselator); extdecl;
-
-const
-  // Contours types -- obsolete!
-  GLU_CW          = 100120;
-  GLU_CCW         = 100121;
-  GLU_INTERIOR    = 100122;
-  GLU_EXTERIOR    = 100123;
-  GLU_UNKNOWN     = 100124;
-
-  // Names without "TESS_" prefix
-  GLU_BEGIN       = GLU_TESS_BEGIN;
-  GLU_VERTEX      = GLU_TESS_VERTEX;
-  GLU_END         = GLU_TESS_END;
-  GLU_ERROR       = GLU_TESS_ERROR;
-  GLU_EDGE_FLAG   = GLU_TESS_EDGE_FLAG;
-
-procedure LoadGLu(const dll: String);
-procedure FreeGLu;
-
-implementation
-
-{$IFDEF MORPHOS}
-
-{ MorphOS GL works differently due to different dynamic-library handling on Amiga-like }
-{ systems, so its functions are included here. }
-{$INCLUDE tinygl.inc}
-
-{$ELSE MORPHOS}
-uses
-  dynlibs;
-
-var
-  hDLL: TLibHandle;
-
-{$ENDIF MORPHOS}
-
-procedure FreeGLu;
-begin
-{$IFDEF MORPHOS}
-  // MorphOS's GL will closed down by TinyGL unit, nothing is needed here.
-{$ELSE MORPHOS}
-  @gluErrorString := nil;
-  @gluErrorUnicodeStringEXT := nil;
-  @gluGetString := nil;
-  @gluOrtho2D := nil;
-  @gluPerspective := nil;
-  @gluPickMatrix := nil;
-  @gluLookAt := nil;
-  @gluProject := nil;
-  @gluUnProject := nil;
-  @gluScaleImage := nil;
-  @gluBuild1DMipmaps := nil;
-  @gluBuild2DMipmaps := nil;
-  @gluNewQuadric := nil;
-  @gluDeleteQuadric := nil;
-  @gluQuadricNormals := nil;
-  @gluQuadricTexture := nil;
-  @gluQuadricOrientation := nil;
-  @gluQuadricDrawStyle := nil;
-  @gluCylinder := nil;
-  @gluDisk := nil;
-  @gluPartialDisk := nil;
-  @gluSphere := nil;
-  @gluQuadricCallback := nil;
-  @gluNewTess := nil;
-  @gluDeleteTess := nil;
-  @gluTessBeginPolygon := nil;
-  @gluTessBeginContour := nil;
-  @gluTessVertex := nil;
-  @gluTessEndContour := nil;
-  @gluTessEndPolygon := nil;
-  @gluTessProperty := nil;
-  @gluTessNormal := nil;
-  @gluTessCallback := nil;
-  @gluGetTessProperty := nil;
-  @gluNewNurbsRenderer := nil;
-  @gluDeleteNurbsRenderer := nil;
-  @gluBeginSurface := nil;
-  @gluBeginCurve := nil;
-  @gluEndCurve := nil;
-  @gluEndSurface := nil;
-  @gluBeginTrim := nil;
-  @gluEndTrim := nil;
-  @gluPwlCurve := nil;
-  @gluNurbsCurve := nil;
-  @gluNurbsSurface := nil;
-  @gluLoadSamplingMatrices := nil;
-  @gluNurbsProperty := nil;
-  @gluGetNurbsProperty := nil;
-  @gluNurbsCallback := nil;
-  @gluBeginPolygon := nil;
-  @gluNextContour := nil;
-  @gluEndPolygon := nil;
-
-  if (hDLL <> 0) then
-    FreeLibrary(hDLL);
-{$ENDIF MORPHOS}
-end;
-
-procedure LoadGLu(const dll: String);
-{$IFDEF MORPHOS}
-begin
-  // MorphOS's GL has own initialization in TinyGL unit, nothing is needed here.
-end;
-{$ELSE MORPHOS}
-var
-  MethodName: string = '';
-
-  function GetGLuProcAddress(Lib: PtrInt; ProcName: PChar): Pointer;
-  begin
-    MethodName:=ProcName;
-    Result:=GetProcAddress(Lib, ProcName);
-  end;
-
-begin
-
-  FreeGLu;
-
-  hDLL := LoadLibrary(PChar(dll));
-  if hDLL = 0 then raise Exception.Create('Could not load GLu from ' + dll);
-  try
-    @gluErrorString := GetGLuProcAddress(hDLL, 'gluErrorString');
-    @gluErrorUnicodeStringEXT := GetGLuProcAddress(hDLL, 'gluErrorUnicodeStringEXT');
-    @gluGetString := GetGLuProcAddress(hDLL, 'gluGetString');
-    @gluOrtho2D := GetGLuProcAddress(hDLL, 'gluOrtho2D');
-    @gluPerspective := GetGLuProcAddress(hDLL, 'gluPerspective');
-    @gluPickMatrix := GetGLuProcAddress(hDLL, 'gluPickMatrix');
-    @gluLookAt := GetGLuProcAddress(hDLL, 'gluLookAt');
-    @gluProject := GetGLuProcAddress(hDLL, 'gluProject');
-    @gluUnProject := GetGLuProcAddress(hDLL, 'gluUnProject');
-    @gluScaleImage := GetGLuProcAddress(hDLL, 'gluScaleImage');
-    @gluBuild1DMipmaps := GetGLuProcAddress(hDLL, 'gluBuild1DMipmaps');
-    @gluBuild2DMipmaps := GetGLuProcAddress(hDLL, 'gluBuild2DMipmaps');
-    @gluNewQuadric := GetGLuProcAddress(hDLL, 'gluNewQuadric');
-    @gluDeleteQuadric := GetGLuProcAddress(hDLL, 'gluDeleteQuadric');
-    @gluQuadricNormals := GetGLuProcAddress(hDLL, 'gluQuadricNormals');
-    @gluQuadricTexture := GetGLuProcAddress(hDLL, 'gluQuadricTexture');
-    @gluQuadricOrientation := GetGLuProcAddress(hDLL, 'gluQuadricOrientation');
-    @gluQuadricDrawStyle := GetGLuProcAddress(hDLL, 'gluQuadricDrawStyle');
-    @gluCylinder := GetGLuProcAddress(hDLL, 'gluCylinder');
-    @gluDisk := GetGLuProcAddress(hDLL, 'gluDisk');
-    @gluPartialDisk := GetGLuProcAddress(hDLL, 'gluPartialDisk');
-    @gluSphere := GetGLuProcAddress(hDLL, 'gluSphere');
-    @gluQuadricCallback := GetGLuProcAddress(hDLL, 'gluQuadricCallback');
-    @gluNewTess := GetGLuProcAddress(hDLL, 'gluNewTess');
-    @gluDeleteTess := GetGLuProcAddress(hDLL, 'gluDeleteTess');
-    @gluTessBeginPolygon := GetGLuProcAddress(hDLL, 'gluTessBeginPolygon');
-    @gluTessBeginContour := GetGLuProcAddress(hDLL, 'gluTessBeginContour');
-    @gluTessVertex := GetGLuProcAddress(hDLL, 'gluTessVertex');
-    @gluTessEndContour := GetGLuProcAddress(hDLL, 'gluTessEndContour');
-    @gluTessEndPolygon := GetGLuProcAddress(hDLL, 'gluTessEndPolygon');
-    @gluTessProperty := GetGLuProcAddress(hDLL, 'gluTessProperty');
-    @gluTessNormal := GetGLuProcAddress(hDLL, 'gluTessNormal');
-    @gluTessCallback := GetGLuProcAddress(hDLL, 'gluTessCallback');
-    @gluGetTessProperty := GetGLuProcAddress(hDLL, 'gluGetTessProperty');
-    @gluNewNurbsRenderer := GetGLuProcAddress(hDLL, 'gluNewNurbsRenderer');
-    @gluDeleteNurbsRenderer := GetGLuProcAddress(hDLL, 'gluDeleteNurbsRenderer');
-    @gluBeginSurface := GetGLuProcAddress(hDLL, 'gluBeginSurface');
-    @gluBeginCurve := GetGLuProcAddress(hDLL, 'gluBeginCurve');
-    @gluEndCurve := GetGLuProcAddress(hDLL, 'gluEndCurve');
-    @gluEndSurface := GetGLuProcAddress(hDLL, 'gluEndSurface');
-    @gluBeginTrim := GetGLuProcAddress(hDLL, 'gluBeginTrim');
-    @gluEndTrim := GetGLuProcAddress(hDLL, 'gluEndTrim');
-    @gluPwlCurve := GetGLuProcAddress(hDLL, 'gluPwlCurve');
-    @gluNurbsCurve := GetGLuProcAddress(hDLL, 'gluNurbsCurve');
-    @gluNurbsSurface := GetGLuProcAddress(hDLL, 'gluNurbsSurface');
-    @gluLoadSamplingMatrices := GetGLuProcAddress(hDLL, 'gluLoadSamplingMatrices');
-    @gluNurbsProperty := GetGLuProcAddress(hDLL, 'gluNurbsProperty');
-    @gluGetNurbsProperty := GetGLuProcAddress(hDLL, 'gluGetNurbsProperty');
-    @gluNurbsCallback := GetGLuProcAddress(hDLL, 'gluNurbsCallback');
-
-    @gluBeginPolygon := GetGLuProcAddress(hDLL, 'gluBeginPolygon');
-    @gluNextContour := GetGLuProcAddress(hDLL, 'gluNextContour');
-    @gluEndPolygon := GetGLuProcAddress(hDLL, 'gluEndPolygon');
-  except
-    raise Exception.Create('Could not load ' + MethodName + ' from ' + dll);
-  end;
-end;
-{$ENDIF MORPHOS}
-
-initialization
-
-  {$IFDEF Windows}
-  LoadGLu('glu32.dll');
-  {$ELSE}
-  {$ifdef darwin}
-  LoadGLu('/System/Library/Frameworks/OpenGL.framework/Libraries/libGLU.dylib');
-  {$else}
-  {$ifndef MorphOS}
-  LoadGLu('libGLU.so.1');
-  {$endif}
-  {$ENDIF}
-  {$endif}
-
-finalization
-
-  FreeGLu;
-
-end.

+ 0 - 46
packages/extra/opengl/glunits.txt

@@ -1,46 +0,0 @@
-  glunits.zip
-***************
-
-These are the Delphi conversions of gl.h, glu.h, glut.h and
-glext.h. Copy them to your Delphi\Lib directory or somewhere else
-in your compiler's search path and you're all set!
-
-To use these units with OpenGL drivers other than Microsoft's,
-you need to manually initialize three DLL libraries. For example:
-
-  LoadOpenGL('opengl.dll');
-  LoadGLu('glu.dll');
-  LoadGlut('glut.dll');  // Optional
-
-If you do this, make sure to free the previously loaded library
-first:
-
-  FreeOpenGL;
-  FreeGLu;
-  FreeGlut;
-
-If the DLLs the application is trying to load cannot be found, an
-exception will be raised. By default, the units will try to load
-OpenGL32.dll, GLu32.dll and Glut32.dll. No exception will be
-thrown if they are not found, so if you want to support multiple
-OpenGL implementations in your app, it's probably best to
-explicitly load the DLLs explicitly as shown above. This way, you
-can properly trap errors.
-
-A final note: if you have a 3D card with an OpenGL ICD, you do NOT
-need to load the driver yourself. Microsoft's OpenGL32.dll will
-automatically detect and use your 3D card's drivers, so the
-default settings in these units will work perfectly.
-
-The fourth file in this archive, glext.pas, contains declarations
-of constants and function prototypes of most OpenGL extensions.
-To use an extension, you just need to check if it's supported, and
-load it's functions with wglGetProcAddress() if it is. You can
-check the presence of an extension with the included function
-glext_ExtensionSupported(). By using glext.pas, you no longer have
-to copy/paste/translate declarations from the extension specs. If
-you should come across an extension that isn't yet included in
-glext.pas, I'd appreciate it if you could drop me a line so I can
-add it ASAP.
-
-  Tom Nuydens ([email protected])

+ 0 - 2102
packages/extra/opengl/glut.pp

@@ -1,2102 +0,0 @@
-{ Adaption of the delphi3d.net OpenGL units to FreePascal
-  Sebastian Guenther ([email protected]) in 2002
-  These units are free to use
-
-  19.6.07 : Added GLUT_EXCLUSIVE_FPUMODE to allow for
-  unsafe glut-libs, that don't handle FPU-exceptions in
-  a compatible way.  Jan Bruns ([email protected])
-}
-
-{$MACRO ON}
-{$MODE Delphi}
-{$IFDEF Windows}
-  {$DEFINE extdecl := stdcall}
-{$ELSE}
-  {$DEFINE extdecl := cdecl}
-{$ENDIF}
-
-
-{$IFDEF CPU86}
-  {$DEFINE GLUT_EXCLUSIVE_FPUMODE}
-  {$DEFINE mode_inline := register} //inine or local-calling
-{$ENDIF}
-
-
-{$IFDEF MORPHOS}
-{$INLINE ON}
-{$DEFINE GLUT_UNIT}
-{$ENDIF}
-
-unit Glut;
-
-// Copyright (c) Mark J. Kilgard, 1994, 1995, 1996. */
-
-(* This program is freely distributable without licensing fees  and is
-   provided without guarantee or warrantee expressed or  implied. This
-   program is -not- in the public domain. *)
-
-{******************************************************************************}
-{ Converted to Delphi by Tom Nuydens ([email protected])                        }
-{   Contributions by Igor Karpov ([email protected])                           }
-{   For the latest updates, visit Delphi3D: http://www.delphi3d.net            }
-{******************************************************************************}
-
-interface
-
-uses
-  SysUtils,
-  {$IFDEF Windows}
-  Windows, dynlibs,
-  {$ELSE}
-  {$IFDEF MORPHOS}
-  TinyGL,
-  {$ELSE}
-  dynlibs,
-  {$ENDIF}
-  {$ENDIF}
-  {$IFDEF GLUT_EXCLUSIVE_FPUMODE}
-  math,
-  {$ENDIF}
-  GL;
-
-type
-  PInteger = ^Integer;
-  PPChar = ^PChar;
-  TGlutVoidCallback = procedure; cdecl;
-  TGlut1IntCallback = procedure(value: Integer); cdecl;
-  TGlut2IntCallback = procedure(v1, v2: Integer); cdecl;
-  TGlut3IntCallback = procedure(v1, v2, v3: Integer); cdecl;
-  TGlut4IntCallback = procedure(v1, v2, v3, v4: Integer); cdecl;
-  TGlut1Char2IntCallback = procedure(c: Byte; v1, v2: Integer); cdecl;
-  TGlut1UInt3IntCallback = procedure(u: Cardinal; v1, v2, v3: Integer); cdecl;
-
-const
-  GLUT_API_VERSION                = 3;
-  GLUT_XLIB_IMPLEMENTATION        = 12;
-  // Display mode bit masks.
-  GLUT_RGB                        = 0;
-  GLUT_RGBA                       = GLUT_RGB;
-  GLUT_INDEX                      = 1;
-  GLUT_SINGLE                     = 0;
-  GLUT_DOUBLE                     = 2;
-  GLUT_ACCUM                      = 4;
-  GLUT_ALPHA                      = 8;
-  GLUT_DEPTH                      = 16;
-  GLUT_STENCIL                    = 32;
-  GLUT_MULTISAMPLE                = 128;
-  GLUT_STEREO                     = 256;
-  GLUT_LUMINANCE                  = 512;
-
-  // Mouse buttons.
-  GLUT_LEFT_BUTTON                = 0;
-  GLUT_MIDDLE_BUTTON              = 1;
-  GLUT_RIGHT_BUTTON               = 2;
-
-  // Mouse button state.
-  GLUT_DOWN                       = 0;
-  GLUT_UP                         = 1;
-
-  // function keys
-  GLUT_KEY_F1                     = 1;
-  GLUT_KEY_F2                     = 2;
-  GLUT_KEY_F3                     = 3;
-  GLUT_KEY_F4                     = 4;
-  GLUT_KEY_F5                     = 5;
-  GLUT_KEY_F6                     = 6;
-  GLUT_KEY_F7                     = 7;
-  GLUT_KEY_F8                     = 8;
-  GLUT_KEY_F9                     = 9;
-  GLUT_KEY_F10                    = 10;
-  GLUT_KEY_F11                    = 11;
-  GLUT_KEY_F12                    = 12;
-  // directional keys
-  GLUT_KEY_LEFT                   = 100;
-  GLUT_KEY_UP                     = 101;
-  GLUT_KEY_RIGHT                  = 102;
-  GLUT_KEY_DOWN                   = 103;
-  GLUT_KEY_PAGE_UP                = 104;
-  GLUT_KEY_PAGE_DOWN              = 105;
-  GLUT_KEY_HOME                   = 106;
-  GLUT_KEY_END                    = 107;
-  GLUT_KEY_INSERT                 = 108;
-
-  // Entry/exit  state.
-  GLUT_LEFT                       = 0;
-  GLUT_ENTERED                    = 1;
-
-  // Menu usage state.
-  GLUT_MENU_NOT_IN_USE            = 0;
-  GLUT_MENU_IN_USE                = 1;
-
-  // Visibility  state.
-  GLUT_NOT_VISIBLE                = 0;
-  GLUT_VISIBLE                    = 1;
-
-  // Window status  state.
-  GLUT_HIDDEN                     = 0;
-  GLUT_FULLY_RETAINED             = 1;
-  GLUT_PARTIALLY_RETAINED         = 2;
-  GLUT_FULLY_COVERED              = 3;
-
-  // Color index component selection values.
-  GLUT_RED                        = 0;
-  GLUT_GREEN                      = 1;
-  GLUT_BLUE                       = 2;
-
-  // Layers for use.
-  GLUT_NORMAL                     = 0;
-  GLUT_OVERLAY                    = 1;
-
-{$ifdef Windows}
-  // Stroke font constants (use these in GLUT program).
-  GLUT_STROKE_ROMAN               = Pointer(0);
-  GLUT_STROKE_MONO_ROMAN          = Pointer(1);
-
-  // Bitmap font constants (use these in GLUT program).
-  GLUT_BITMAP_9_BY_15             = Pointer(2);
-  GLUT_BITMAP_8_BY_13             = Pointer(3);
-  GLUT_BITMAP_TIMES_ROMAN_10      = Pointer(4);
-  GLUT_BITMAP_TIMES_ROMAN_24      = Pointer(5);
-  GLUT_BITMAP_HELVETICA_10        = Pointer(6);
-  GLUT_BITMAP_HELVETICA_12        = Pointer(7);
-  GLUT_BITMAP_HELVETICA_18        = Pointer(8);
-{$else Windows}
-var
-  // Stroke font constants (use these in GLUT program).
-  GLUT_STROKE_ROMAN               : Pointer;
-  GLUT_STROKE_MONO_ROMAN          : Pointer;
-
-  // Bitmap font constants (use these in GLUT program).
-  GLUT_BITMAP_9_BY_15             : Pointer;
-  GLUT_BITMAP_8_BY_13             : Pointer;
-  GLUT_BITMAP_TIMES_ROMAN_10      : Pointer;
-  GLUT_BITMAP_TIMES_ROMAN_24      : Pointer;
-  GLUT_BITMAP_HELVETICA_10        : Pointer;
-  GLUT_BITMAP_HELVETICA_12        : Pointer;
-  GLUT_BITMAP_HELVETICA_18        : Pointer;
-
-const
-{$endif Windows}
-
-  // glutGet parameters.
-  GLUT_WINDOW_X                   = 100;
-  GLUT_WINDOW_Y                   = 101;
-  GLUT_WINDOW_WIDTH               = 102;
-  GLUT_WINDOW_HEIGHT              = 103;
-  GLUT_WINDOW_BUFFER_SIZE         = 104;
-  GLUT_WINDOW_STENCIL_SIZE        = 105;
-  GLUT_WINDOW_DEPTH_SIZE          = 106;
-  GLUT_WINDOW_RED_SIZE            = 107;
-  GLUT_WINDOW_GREEN_SIZE          = 108;
-  GLUT_WINDOW_BLUE_SIZE           = 109;
-  GLUT_WINDOW_ALPHA_SIZE          = 110;
-  GLUT_WINDOW_ACCUM_RED_SIZE      = 111;
-  GLUT_WINDOW_ACCUM_GREEN_SIZE    = 112;
-  GLUT_WINDOW_ACCUM_BLUE_SIZE     = 113;
-  GLUT_WINDOW_ACCUM_ALPHA_SIZE    = 114;
-  GLUT_WINDOW_DOUBLEBUFFER        = 115;
-  GLUT_WINDOW_RGBA                = 116;
-  GLUT_WINDOW_PARENT              = 117;
-  GLUT_WINDOW_NUM_CHILDREN        = 118;
-  GLUT_WINDOW_COLORMAP_SIZE       = 119;
-  GLUT_WINDOW_NUM_SAMPLES         = 120;
-  GLUT_WINDOW_STEREO              = 121;
-  GLUT_WINDOW_CURSOR              = 122;
-  GLUT_SCREEN_WIDTH               = 200;
-  GLUT_SCREEN_HEIGHT              = 201;
-  GLUT_SCREEN_WIDTH_MM            = 202;
-  GLUT_SCREEN_HEIGHT_MM           = 203;
-  GLUT_MENU_NUM_ITEMS             = 300;
-  GLUT_DISPLAY_MODE_POSSIBLE      = 400;
-  GLUT_INIT_WINDOW_X              = 500;
-  GLUT_INIT_WINDOW_Y              = 501;
-  GLUT_INIT_WINDOW_WIDTH          = 502;
-  GLUT_INIT_WINDOW_HEIGHT         = 503;
-  GLUT_INIT_DISPLAY_MODE          = 504;
-  GLUT_ELAPSED_TIME               = 700;
-  GLUT_WINDOW_FORMAT_ID		  = 123;
-
-  // glutDeviceGet parameters.
-  GLUT_HAS_KEYBOARD               = 600;
-  GLUT_HAS_MOUSE                  = 601;
-  GLUT_HAS_SPACEBALL              = 602;
-  GLUT_HAS_DIAL_AND_BUTTON_BOX    = 603;
-  GLUT_HAS_TABLET                 = 604;
-  GLUT_NUM_MOUSE_BUTTONS          = 605;
-  GLUT_NUM_SPACEBALL_BUTTONS      = 606;
-  GLUT_NUM_BUTTON_BOX_BUTTONS     = 607;
-  GLUT_NUM_DIALS                  = 608;
-  GLUT_NUM_TABLET_BUTTONS         = 609;
-  GLUT_DEVICE_IGNORE_KEY_REPEAT   = 610;
-  GLUT_DEVICE_KEY_REPEAT          = 611;
-  GLUT_HAS_JOYSTICK               = 612;
-  GLUT_OWNS_JOYSTICK              = 613;
-  GLUT_JOYSTICK_BUTTONS           = 614;
-  GLUT_JOYSTICK_AXES              = 615;
-  GLUT_JOYSTICK_POLL_RATE         = 616;
-
-
-  // glutLayerGet parameters.
-  GLUT_OVERLAY_POSSIBLE           = 800;
-  GLUT_LAYER_IN_USE               = 801;
-  GLUT_HAS_OVERLAY                = 802;
-  GLUT_TRANSPARENT_INDEX          = 803;
-  GLUT_NORMAL_DAMAGED             = 804;
-  GLUT_OVERLAY_DAMAGED            = 805;
-
-  // glutVideoResizeGet parameters.
-  GLUT_VIDEO_RESIZE_POSSIBLE       = 900;
-  GLUT_VIDEO_RESIZE_IN_USE         = 901;
-  GLUT_VIDEO_RESIZE_X_DELTA        = 902;
-  GLUT_VIDEO_RESIZE_Y_DELTA        = 903;
-  GLUT_VIDEO_RESIZE_WIDTH_DELTA    = 904;
-  GLUT_VIDEO_RESIZE_HEIGHT_DELTA   = 905;
-  GLUT_VIDEO_RESIZE_X              = 906;
-  GLUT_VIDEO_RESIZE_Y              = 907;
-  GLUT_VIDEO_RESIZE_WIDTH          = 908;
-  GLUT_VIDEO_RESIZE_HEIGHT         = 909;
-
-  // glutGetModifiers return mask.
-  GLUT_ACTIVE_SHIFT                = 1;
-  GLUT_ACTIVE_CTRL                 = 2;
-  GLUT_ACTIVE_ALT                  = 4;
-
-  // glutSetCursor parameters.
-  // Basic arrows.
-  GLUT_CURSOR_RIGHT_ARROW          = 0;
-  GLUT_CURSOR_LEFT_ARROW           = 1;
-  // Symbolic cursor shapes.
-  GLUT_CURSOR_INFO                 = 2;
-  GLUT_CURSOR_DESTROY              = 3;
-  GLUT_CURSOR_HELP                 = 4;
-  GLUT_CURSOR_CYCLE                = 5;
-  GLUT_CURSOR_SPRAY                = 6;
-  GLUT_CURSOR_WAIT                 = 7;
-  GLUT_CURSOR_TEXT                 = 8;
-  GLUT_CURSOR_CROSSHAIR            = 9;
-  // Directional cursors.
-  GLUT_CURSOR_UP_DOWN              = 10;
-  GLUT_CURSOR_LEFT_RIGHT           = 11;
-  // Sizing cursors.
-  GLUT_CURSOR_TOP_SIDE             = 12;
-  GLUT_CURSOR_BOTTOM_SIDE          = 13;
-  GLUT_CURSOR_LEFT_SIDE            = 14;
-  GLUT_CURSOR_RIGHT_SIDE           = 15;
-  GLUT_CURSOR_TOP_LEFT_CORNER      = 16;
-  GLUT_CURSOR_TOP_RIGHT_CORNER     = 17;
-  GLUT_CURSOR_BOTTOM_RIGHT_CORNER  = 18;
-  GLUT_CURSOR_BOTTOM_LEFT_CORNER   = 19;
-  // Inherit from parent window.
-  GLUT_CURSOR_INHERIT              = 100;
-  // Blank cursor.
-  GLUT_CURSOR_NONE                 = 101;
-  // Fullscreen crosshair (if available).
-  GLUT_CURSOR_FULL_CROSSHAIR       = 102;
-
-  // GLUT device control sub-API.
-  // glutSetKeyRepeat modes.
-  GLUT_KEY_REPEAT_OFF      = 0;
-  GLUT_KEY_REPEAT_ON       = 1;
-  GLUT_KEY_REPEAT_DEFAULT  = 2;
-
-// Joystick button masks.
-  GLUT_JOYSTICK_BUTTON_A = 1;
-  GLUT_JOYSTICK_BUTTON_B = 2;
-  GLUT_JOYSTICK_BUTTON_C = 4;
-  GLUT_JOYSTICK_BUTTON_D = 8;
-
-  // GLUT game mode sub-API.
-  // glutGameModeGet.
-  GLUT_GAME_MODE_ACTIVE           = 0;
-  GLUT_GAME_MODE_POSSIBLE         = 1;
-  GLUT_GAME_MODE_WIDTH            = 2;
-  GLUT_GAME_MODE_HEIGHT           = 3;
-  GLUT_GAME_MODE_PIXEL_DEPTH      = 4;
-  GLUT_GAME_MODE_REFRESH_RATE     = 5;
-  GLUT_GAME_MODE_DISPLAY_CHANGED  = 6;
-
-{$IFDEF MORPHOS}
-
-{ MorphOS GL works differently due to different dynamic-library handling on Amiga-like }
-{ systems, so its headers are included here. }
-{$INCLUDE tinyglh.inc}
-
-{$ELSE MORPHOS}
-
-{$IFDEF GLUT_EXCLUSIVE_FPUMODE}
-var
-OLD_glutInit:procedure(argcp: PInteger; argv: PPChar); extdecl;
-OLD_glutInitDisplayMode:procedure(mode: Cardinal); extdecl;
-OLD_glutInitDisplayString:procedure(const str: PChar); extdecl;
-OLD_glutInitWindowPosition:procedure(x, y: Integer); extdecl;
-OLD_glutInitWindowSize:procedure(width, height: Integer); extdecl;
-OLD_glutMainLoop:procedure; extdecl;
-OLD_glutCreateWindow:function(const title: PChar): Integer; extdecl;
-OLD_glutCreateSubWindow:function(win, x, y, width, height: Integer): Integer; extdecl;
-OLD_glutDestroyWindow:procedure(win: Integer); extdecl;
-OLD_glutPostRedisplay:procedure; extdecl;
-OLD_glutPostWindowRedisplay:procedure(win: Integer); extdecl;
-OLD_glutSwapBuffers:procedure; extdecl;
-OLD_glutGetWindow:function: Integer; extdecl;
-OLD_glutSetWindow:procedure(win: Integer); extdecl;
-OLD_glutSetWindowTitle:procedure(const title: PChar); extdecl;
-OLD_glutSetIconTitle:procedure(const title: PChar); extdecl;
-OLD_glutPositionWindow:procedure(x, y: Integer); extdecl;
-OLD_glutReshapeWindow:procedure(width, height: Integer); extdecl;
-OLD_glutPopWindow:procedure; extdecl;
-OLD_glutPushWindow:procedure; extdecl;
-OLD_glutIconifyWindow:procedure; extdecl;
-OLD_glutShowWindow:procedure; extdecl;
-OLD_glutHideWindow:procedure; extdecl;
-OLD_glutFullScreen:procedure; extdecl;
-OLD_glutSetCursor:procedure(cursor: Integer); extdecl;
-OLD_glutWarpPointer:procedure(x, y: Integer); extdecl;
-OLD_glutEstablishOverlay:procedure; extdecl;
-OLD_glutRemoveOverlay:procedure; extdecl;
-OLD_glutUseLayer:procedure(layer: GLenum); extdecl;
-OLD_glutPostOverlayRedisplay:procedure; extdecl;
-OLD_glutPostWindowOverlayRedisplay:procedure(win: Integer); extdecl;
-OLD_glutShowOverlay:procedure; extdecl;
-OLD_glutHideOverlay:procedure; extdecl;
-OLD_glutCreateMenu:function(callback: TGlut1IntCallback): Integer; extdecl;
-OLD_glutDestroyMenu:procedure(menu: Integer); extdecl;
-OLD_glutGetMenu:function: Integer; extdecl;
-OLD_glutSetMenu:procedure(menu: Integer); extdecl;
-OLD_glutAddMenuEntry:procedure(const caption: PChar; value: Integer); extdecl;
-OLD_glutAddSubMenu:procedure(const caption: PChar; submenu: Integer); extdecl;
-OLD_glutChangeToMenuEntry:procedure(item: Integer; const caption: PChar; value: Integer); extdecl;
-OLD_glutChangeToSubMenu:procedure(item: Integer; const caption: PChar; submenu: Integer); extdecl;
-OLD_glutRemoveMenuItem:procedure(item: Integer); extdecl;
-OLD_glutAttachMenu:procedure(button: Integer); extdecl;
-OLD_glutDetachMenu:procedure(button: Integer); extdecl;
-OLD_glutDisplayFunc:procedure(f: TGlutVoidCallback); extdecl;
-OLD_glutReshapeFunc:procedure(f: TGlut2IntCallback); extdecl;
-OLD_glutKeyboardFunc:procedure(f: TGlut1Char2IntCallback); extdecl;
-OLD_glutMouseFunc:procedure(f: TGlut4IntCallback); extdecl;
-OLD_glutMotionFunc:procedure(f: TGlut2IntCallback); extdecl;
-OLD_glutPassiveMotionFunc:procedure(f: TGlut2IntCallback); extdecl;
-OLD_glutEntryFunc:procedure(f: TGlut1IntCallback); extdecl;
-OLD_glutVisibilityFunc:procedure(f: TGlut1IntCallback); extdecl;
-OLD_glutIdleFunc:procedure(f: TGlutVoidCallback); extdecl;
-OLD_glutTimerFunc:procedure(millis: Cardinal; f: TGlut1IntCallback; value: Integer); extdecl;
-OLD_glutMenuStateFunc:procedure(f: TGlut1IntCallback); extdecl;
-OLD_glutSpecialFunc:procedure(f: TGlut3IntCallback); extdecl;
-OLD_glutSpaceballMotionFunc:procedure(f: TGlut3IntCallback); extdecl;
-OLD_glutSpaceballRotateFunc:procedure(f: TGlut3IntCallback); extdecl;
-OLD_glutSpaceballButtonFunc:procedure(f: TGlut2IntCallback); extdecl;
-OLD_glutButtonBoxFunc:procedure(f: TGlut2IntCallback); extdecl;
-OLD_glutDialsFunc:procedure(f: TGlut2IntCallback); extdecl;
-OLD_glutTabletMotionFunc:procedure(f: TGlut2IntCallback); extdecl;
-OLD_glutTabletButtonFunc:procedure(f: TGlut4IntCallback); extdecl;
-OLD_glutMenuStatusFunc:procedure(f: TGlut3IntCallback); extdecl;
-OLD_glutOverlayDisplayFunc:procedure(f:TGlutVoidCallback); extdecl;
-OLD_glutWindowStatusFunc:procedure(f: TGlut1IntCallback); extdecl;
-OLD_glutKeyboardUpFunc:procedure(f: TGlut1Char2IntCallback); extdecl;
-OLD_glutSpecialUpFunc:procedure(f: TGlut3IntCallback); extdecl;
-OLD_glutJoystickFunc:procedure(f: TGlut1UInt3IntCallback; pollInterval: Integer); extdecl;
-OLD_glutSetColor:procedure(cell: Integer; red, green, blue: GLfloat); extdecl;
-OLD_glutGetColor:function(ndx, component: Integer): GLfloat; extdecl;
-OLD_glutCopyColormap:procedure(win: Integer); extdecl;
-OLD_glutGet:function(t: GLenum): Integer; extdecl;
-OLD_glutDeviceGet:function(t: GLenum): Integer; extdecl;
-OLD_glutExtensionSupported:function(const name: PChar): Integer; extdecl;
-OLD_glutGetModifiers:function: Integer; extdecl;
-OLD_glutLayerGet:function(t: GLenum): Integer; extdecl;
-OLD_glutBitmapCharacter:procedure(font : pointer; character: Integer); extdecl;
-OLD_glutBitmapWidth:function(font : pointer; character: Integer): Integer; extdecl;
-OLD_glutStrokeCharacter:procedure(font : pointer; character: Integer); extdecl;
-OLD_glutStrokeWidth:function(font : pointer; character: Integer): Integer; extdecl;
-OLD_glutBitmapLength:function(font: pointer; const str: PChar): Integer; extdecl;
-OLD_glutStrokeLength:function(font: pointer; const str: PChar): Integer; extdecl;
-OLD_glutWireSphere:procedure(radius: GLdouble; slices, stacks: GLint); extdecl;
-OLD_glutSolidSphere:procedure(radius: GLdouble; slices, stacks: GLint); extdecl;
-OLD_glutWireCone:procedure(base, height: GLdouble; slices, stacks: GLint); extdecl;
-OLD_glutSolidCone:procedure(base, height: GLdouble; slices, stacks: GLint); extdecl;
-OLD_glutWireCube:procedure(size: GLdouble); extdecl;
-OLD_glutSolidCube:procedure(size: GLdouble); extdecl;
-OLD_glutWireTorus:procedure(innerRadius, outerRadius: GLdouble; sides, rings: GLint); extdecl;
-OLD_glutSolidTorus:procedure(innerRadius, outerRadius: GLdouble; sides, rings: GLint); extdecl;
-OLD_glutWireDodecahedron:procedure; extdecl;
-OLD_glutSolidDodecahedron:procedure; extdecl;
-OLD_glutWireTeapot:procedure(size: GLdouble); extdecl;
-OLD_glutSolidTeapot:procedure(size: GLdouble); extdecl;
-OLD_glutWireOctahedron:procedure; extdecl;
-OLD_glutSolidOctahedron:procedure; extdecl;
-OLD_glutWireTetrahedron:procedure; extdecl;
-OLD_glutSolidTetrahedron:procedure; extdecl;
-OLD_glutWireIcosahedron:procedure; extdecl;
-OLD_glutSolidIcosahedron:procedure; extdecl;
-OLD_glutVideoResizeGet:function(param: GLenum): Integer; extdecl;
-OLD_glutSetupVideoResizing:procedure; extdecl;
-OLD_glutStopVideoResizing:procedure; extdecl;
-OLD_glutVideoResize:procedure(x, y, width, height: Integer); extdecl;
-OLD_glutVideoPan:procedure(x, y, width, height: Integer); extdecl;
-OLD_glutReportErrors:procedure; extdecl;
-OLD_glutIgnoreKeyRepeat:procedure(ignore: Integer); extdecl;
-OLD_glutSetKeyRepeat:procedure(repeatMode: Integer); extdecl;
-OLD_glutForceJoystickFunc:procedure; extdecl;
-OLD_glutGameModeString:procedure(const AString : PChar); extdecl;
-OLD_glutEnterGameMode:function: integer; extdecl;
-OLD_glutLeaveGameMode:procedure; extdecl;
-OLD_glutGameModeGet:function(mode : GLenum): integer; extdecl;
-
-procedure glutInit(argcp: PInteger; argv: PPChar); mode_inline;
-procedure glutInitDisplayMode(mode: Cardinal); mode_inline;
-procedure glutInitDisplayString(const str: PChar); mode_inline;
-procedure glutInitWindowPosition(x, y: Integer); mode_inline;
-procedure glutInitWindowSize(width, height: Integer); mode_inline;
-procedure glutMainLoop; mode_inline;
-function glutCreateWindow(const title: PChar): Integer; mode_inline;
-function glutCreateSubWindow(win, x, y, width, height: Integer): Integer; mode_inline;
-procedure glutDestroyWindow(win: Integer); mode_inline;
-procedure glutPostRedisplay; mode_inline;
-procedure glutPostWindowRedisplay(win: Integer); mode_inline;
-procedure glutSwapBuffers; mode_inline;
-function glutGetWindow: Integer; mode_inline;
-procedure glutSetWindow(win: Integer); mode_inline;
-procedure glutSetWindowTitle(const title: PChar); mode_inline;
-procedure glutSetIconTitle(const title: PChar); mode_inline;
-procedure glutPositionWindow(x, y: Integer); mode_inline;
-procedure glutReshapeWindow(width, height: Integer); mode_inline;
-procedure glutPopWindow; mode_inline;
-procedure glutPushWindow; mode_inline;
-procedure glutIconifyWindow; mode_inline;
-procedure glutShowWindow; mode_inline;
-procedure glutHideWindow; mode_inline;
-procedure glutFullScreen; mode_inline;
-procedure glutSetCursor(cursor: Integer); mode_inline;
-procedure glutWarpPointer(x, y: Integer); mode_inline;
-procedure glutEstablishOverlay; mode_inline;
-procedure glutRemoveOverlay; mode_inline;
-procedure glutUseLayer(layer: GLenum); mode_inline;
-procedure glutPostOverlayRedisplay; mode_inline;
-procedure glutPostWindowOverlayRedisplay(win: Integer); mode_inline;
-procedure glutShowOverlay; mode_inline;
-procedure glutHideOverlay; mode_inline;
-function glutCreateMenu(callback: TGlut1IntCallback): Integer; mode_inline;
-procedure glutDestroyMenu(menu: Integer); mode_inline;
-function glutGetMenu: Integer; mode_inline;
-procedure glutSetMenu(menu: Integer); mode_inline;
-procedure glutAddMenuEntry(const caption: PChar; value: Integer); mode_inline;
-procedure glutAddSubMenu(const caption: PChar; submenu: Integer); mode_inline;
-procedure glutChangeToMenuEntry(item: Integer; const caption: PChar; value: Integer); mode_inline;
-procedure glutChangeToSubMenu(item: Integer; const caption: PChar; submenu: Integer); mode_inline;
-procedure glutRemoveMenuItem(item: Integer); mode_inline;
-procedure glutAttachMenu(button: Integer); mode_inline;
-procedure glutDetachMenu(button: Integer); mode_inline;
-procedure glutDisplayFunc(f: TGlutVoidCallback); mode_inline;
-procedure glutReshapeFunc(f: TGlut2IntCallback); mode_inline;
-procedure glutKeyboardFunc(f: TGlut1Char2IntCallback); mode_inline;
-procedure glutMouseFunc(f: TGlut4IntCallback); mode_inline;
-procedure glutMotionFunc(f: TGlut2IntCallback); mode_inline;
-procedure glutPassiveMotionFunc(f: TGlut2IntCallback); mode_inline;
-procedure glutEntryFunc(f: TGlut1IntCallback); mode_inline;
-procedure glutVisibilityFunc(f: TGlut1IntCallback); mode_inline;
-procedure glutIdleFunc(f: TGlutVoidCallback); mode_inline;
-procedure glutTimerFunc(millis: Cardinal; f: TGlut1IntCallback; value: Integer); mode_inline;
-procedure glutMenuStateFunc(f: TGlut1IntCallback); mode_inline;
-procedure glutSpecialFunc(f: TGlut3IntCallback); mode_inline;
-procedure glutSpaceballMotionFunc(f: TGlut3IntCallback); mode_inline;
-procedure glutSpaceballRotateFunc(f: TGlut3IntCallback); mode_inline;
-procedure glutSpaceballButtonFunc(f: TGlut2IntCallback); mode_inline;
-procedure glutButtonBoxFunc(f: TGlut2IntCallback); mode_inline;
-procedure glutDialsFunc(f: TGlut2IntCallback); mode_inline;
-procedure glutTabletMotionFunc(f: TGlut2IntCallback); mode_inline;
-procedure glutTabletButtonFunc(f: TGlut4IntCallback); mode_inline;
-procedure glutMenuStatusFunc(f: TGlut3IntCallback); mode_inline;
-procedure glutOverlayDisplayFunc(f:TGlutVoidCallback); mode_inline;
-procedure glutWindowStatusFunc(f: TGlut1IntCallback); mode_inline;
-procedure glutKeyboardUpFunc(f: TGlut1Char2IntCallback); mode_inline;
-procedure glutSpecialUpFunc(f: TGlut3IntCallback); mode_inline;
-procedure glutJoystickFunc(f: TGlut1UInt3IntCallback; pollInterval: Integer); mode_inline;
-procedure glutSetColor(cell: Integer; red, green, blue: GLfloat); mode_inline;
-function glutGetColor(ndx, component: Integer): GLfloat; mode_inline;
-procedure glutCopyColormap(win: Integer); mode_inline;
-function glutGet(t: GLenum): Integer; mode_inline;
-function glutDeviceGet(t: GLenum): Integer; mode_inline;
-function glutExtensionSupported(const name: PChar): Integer; mode_inline;
-function glutGetModifiers: Integer; mode_inline;
-function glutLayerGet(t: GLenum): Integer; mode_inline;
-procedure glutBitmapCharacter(font : pointer; character: Integer); mode_inline;
-function glutBitmapWidth(font : pointer; character: Integer): Integer; mode_inline;
-procedure glutStrokeCharacter(font : pointer; character: Integer); mode_inline;
-function glutStrokeWidth(font : pointer; character: Integer): Integer; mode_inline;
-function glutBitmapLength(font: pointer; const str: PChar): Integer; mode_inline;
-function glutStrokeLength(font: pointer; const str: PChar): Integer; mode_inline;
-procedure glutWireSphere(radius: GLdouble; slices, stacks: GLint); mode_inline;
-procedure glutSolidSphere(radius: GLdouble; slices, stacks: GLint); mode_inline;
-procedure glutWireCone(base, height: GLdouble; slices, stacks: GLint); mode_inline;
-procedure glutSolidCone(base, height: GLdouble; slices, stacks: GLint); mode_inline;
-procedure glutWireCube(size: GLdouble); mode_inline;
-procedure glutSolidCube(size: GLdouble); mode_inline;
-procedure glutWireTorus(innerRadius, outerRadius: GLdouble; sides, rings: GLint); mode_inline;
-procedure glutSolidTorus(innerRadius, outerRadius: GLdouble; sides, rings: GLint); mode_inline;
-procedure glutWireDodecahedron; mode_inline;
-procedure glutSolidDodecahedron; mode_inline;
-procedure glutWireTeapot(size: GLdouble); mode_inline;
-procedure glutSolidTeapot(size: GLdouble); mode_inline;
-procedure glutWireOctahedron; mode_inline;
-procedure glutSolidOctahedron; mode_inline;
-procedure glutWireTetrahedron; mode_inline;
-procedure glutSolidTetrahedron; mode_inline;
-procedure glutWireIcosahedron; mode_inline;
-procedure glutSolidIcosahedron; mode_inline;
-function glutVideoResizeGet(param: GLenum): Integer; mode_inline;
-procedure glutSetupVideoResizing; mode_inline;
-procedure glutStopVideoResizing; mode_inline;
-procedure glutVideoResize(x, y, width, height: Integer); mode_inline;
-procedure glutVideoPan(x, y, width, height: Integer); mode_inline;
-procedure glutReportErrors; mode_inline;
-procedure glutIgnoreKeyRepeat(ignore: Integer); mode_inline;
-procedure glutSetKeyRepeat(repeatMode: Integer); mode_inline;
-procedure glutForceJoystickFunc; mode_inline;
-procedure glutGameModeString(const AString : PChar); mode_inline;
-function glutEnterGameMode: integer; mode_inline;
-procedure glutLeaveGameMode; mode_inline;
-function glutGameModeGet(mode : GLenum): integer; mode_inline;
-
-
-{$ELSE GLUT_EXCLUSIVE_FPUMODE}
-var
-// GLUT initialization sub-API.
-  glutInit: procedure(argcp: PInteger; argv: PPChar); extdecl;
-  glutInitDisplayMode: procedure(mode: Cardinal); extdecl;
-  glutInitDisplayString: procedure(const str: PChar); extdecl;
-  glutInitWindowPosition: procedure(x, y: Integer); extdecl;
-  glutInitWindowSize: procedure(width, height: Integer); extdecl;
-  glutMainLoop: procedure; extdecl;
-
-// GLUT window sub-API.
-  glutCreateWindow: function(const title: PChar): Integer; extdecl;
-  glutCreateSubWindow: function(win, x, y, width, height: Integer): Integer; extdecl;
-  glutDestroyWindow: procedure(win: Integer); extdecl;
-  glutPostRedisplay: procedure; extdecl;
-  glutPostWindowRedisplay: procedure(win: Integer); extdecl;
-  glutSwapBuffers: procedure; extdecl;
-  glutGetWindow: function: Integer; extdecl;
-  glutSetWindow: procedure(win: Integer); extdecl;
-  glutSetWindowTitle: procedure(const title: PChar); extdecl;
-  glutSetIconTitle: procedure(const title: PChar); extdecl;
-  glutPositionWindow: procedure(x, y: Integer); extdecl;
-  glutReshapeWindow: procedure(width, height: Integer); extdecl;
-  glutPopWindow: procedure; extdecl;
-  glutPushWindow: procedure; extdecl;
-  glutIconifyWindow: procedure; extdecl;
-  glutShowWindow: procedure; extdecl;
-  glutHideWindow: procedure; extdecl;
-  glutFullScreen: procedure; extdecl;
-  glutSetCursor: procedure(cursor: Integer); extdecl;
-  glutWarpPointer: procedure(x, y: Integer); extdecl;
-
-// GLUT overlay sub-API.
-  glutEstablishOverlay: procedure; extdecl;
-  glutRemoveOverlay: procedure; extdecl;
-  glutUseLayer: procedure(layer: GLenum); extdecl;
-  glutPostOverlayRedisplay: procedure; extdecl;
-  glutPostWindowOverlayRedisplay: procedure(win: Integer); extdecl;
-  glutShowOverlay: procedure; extdecl;
-  glutHideOverlay: procedure; extdecl;
-
-// GLUT menu sub-API.
-  glutCreateMenu: function(callback: TGlut1IntCallback): Integer; extdecl;
-  glutDestroyMenu: procedure(menu: Integer); extdecl;
-  glutGetMenu: function: Integer; extdecl;
-  glutSetMenu: procedure(menu: Integer); extdecl;
-  glutAddMenuEntry: procedure(const caption: PChar; value: Integer); extdecl;
-  glutAddSubMenu: procedure(const caption: PChar; submenu: Integer); extdecl;
-  glutChangeToMenuEntry: procedure(item: Integer; const caption: PChar; value: Integer); extdecl;
-  glutChangeToSubMenu: procedure(item: Integer; const caption: PChar; submenu: Integer); extdecl;
-  glutRemoveMenuItem: procedure(item: Integer); extdecl;
-  glutAttachMenu: procedure(button: Integer); extdecl;
-  glutDetachMenu: procedure(button: Integer); extdecl;
-
-// GLUT window callback sub-API.
-  glutDisplayFunc: procedure(f: TGlutVoidCallback); extdecl;
-  glutReshapeFunc: procedure(f: TGlut2IntCallback); extdecl;
-  glutKeyboardFunc: procedure(f: TGlut1Char2IntCallback); extdecl;
-  glutMouseFunc: procedure(f: TGlut4IntCallback); extdecl;
-  glutMotionFunc: procedure(f: TGlut2IntCallback); extdecl;
-  glutPassiveMotionFunc: procedure(f: TGlut2IntCallback); extdecl;
-  glutEntryFunc: procedure(f: TGlut1IntCallback); extdecl;
-  glutVisibilityFunc: procedure(f: TGlut1IntCallback); extdecl;
-  glutIdleFunc: procedure(f: TGlutVoidCallback); extdecl;
-  glutTimerFunc: procedure(millis: Cardinal; f: TGlut1IntCallback; value: Integer); extdecl;
-  glutMenuStateFunc: procedure(f: TGlut1IntCallback); extdecl;
-  glutSpecialFunc: procedure(f: TGlut3IntCallback); extdecl;
-  glutSpaceballMotionFunc: procedure(f: TGlut3IntCallback); extdecl;
-  glutSpaceballRotateFunc: procedure(f: TGlut3IntCallback); extdecl;
-  glutSpaceballButtonFunc: procedure(f: TGlut2IntCallback); extdecl;
-  glutButtonBoxFunc: procedure(f: TGlut2IntCallback); extdecl;
-  glutDialsFunc: procedure(f: TGlut2IntCallback); extdecl;
-  glutTabletMotionFunc: procedure(f: TGlut2IntCallback); extdecl;
-  glutTabletButtonFunc: procedure(f: TGlut4IntCallback); extdecl;
-  glutMenuStatusFunc: procedure(f: TGlut3IntCallback); extdecl;
-  glutOverlayDisplayFunc: procedure(f:TGlutVoidCallback); extdecl;
-  glutWindowStatusFunc: procedure(f: TGlut1IntCallback); extdecl;
-  glutKeyboardUpFunc: procedure(f: TGlut1Char2IntCallback); extdecl;
-  glutSpecialUpFunc: procedure(f: TGlut3IntCallback); extdecl;
-  glutJoystickFunc: procedure(f: TGlut1UInt3IntCallback; pollInterval: Integer); extdecl;
-
-// GLUT color index sub-API.
-  glutSetColor: procedure(cell: Integer; red, green, blue: GLfloat); extdecl;
-  glutGetColor: function(ndx, component: Integer): GLfloat; extdecl;
-  glutCopyColormap: procedure(win: Integer); extdecl;
-
-// GLUT state retrieval sub-API.
-  glutGet: function(t: GLenum): Integer; extdecl;
-  glutDeviceGet: function(t: GLenum): Integer; extdecl;
-
-// GLUT extension support sub-API
-  glutExtensionSupported: function(const name: PChar): Integer; extdecl;
-  glutGetModifiers: function: Integer; extdecl;
-  glutLayerGet: function(t: GLenum): Integer; extdecl;
-
-// GLUT font sub-API
-  glutBitmapCharacter: procedure(font : pointer; character: Integer); extdecl;
-  glutBitmapWidth: function(font : pointer; character: Integer): Integer; extdecl;
-  glutStrokeCharacter: procedure(font : pointer; character: Integer); extdecl;
-  glutStrokeWidth: function(font : pointer; character: Integer): Integer; extdecl;
-  glutBitmapLength: function(font: pointer; const str: PChar): Integer; extdecl;
-  glutStrokeLength: function(font: pointer; const str: PChar): Integer; extdecl;
-
-// GLUT pre-built models sub-API
-  glutWireSphere: procedure(radius: GLdouble; slices, stacks: GLint); extdecl;
-  glutSolidSphere: procedure(radius: GLdouble; slices, stacks: GLint); extdecl;
-  glutWireCone: procedure(base, height: GLdouble; slices, stacks: GLint); extdecl;
-  glutSolidCone: procedure(base, height: GLdouble; slices, stacks: GLint); extdecl;
-  glutWireCube: procedure(size: GLdouble); extdecl;
-  glutSolidCube: procedure(size: GLdouble); extdecl;
-  glutWireTorus: procedure(innerRadius, outerRadius: GLdouble; sides, rings: GLint); extdecl;
-  glutSolidTorus: procedure(innerRadius, outerRadius: GLdouble; sides, rings: GLint); extdecl;
-  glutWireDodecahedron: procedure; extdecl;
-  glutSolidDodecahedron: procedure; extdecl;
-  glutWireTeapot: procedure(size: GLdouble); extdecl;
-  glutSolidTeapot: procedure(size: GLdouble); extdecl;
-  glutWireOctahedron: procedure; extdecl;
-  glutSolidOctahedron: procedure; extdecl;
-  glutWireTetrahedron: procedure; extdecl;
-  glutSolidTetrahedron: procedure; extdecl;
-  glutWireIcosahedron: procedure; extdecl;
-  glutSolidIcosahedron: procedure; extdecl;
-
-// GLUT video resize sub-API.
-  glutVideoResizeGet: function(param: GLenum): Integer; extdecl;
-  glutSetupVideoResizing: procedure; extdecl;
-  glutStopVideoResizing: procedure; extdecl;
-  glutVideoResize: procedure(x, y, width, height: Integer); extdecl;
-  glutVideoPan: procedure(x, y, width, height: Integer); extdecl;
-
-// GLUT debugging sub-API.
-  glutReportErrors: procedure; extdecl;
-
-// GLUT device control sub-API.
-
-  glutIgnoreKeyRepeat: procedure(ignore: Integer); extdecl;
-  glutSetKeyRepeat: procedure(repeatMode: Integer); extdecl;
-  glutForceJoystickFunc: procedure; extdecl;
-
-// GLUT game mode sub-API.
-
-  //example glutGameModeString('1280x1024:32@75');
-  glutGameModeString : procedure (const AString : PChar); extdecl;
-  glutEnterGameMode : function : integer; extdecl;
-  glutLeaveGameMode : procedure; extdecl;
-  glutGameModeGet : function (mode : GLenum) : integer; extdecl;
-
-{$ENDIF GLUT_EXCLUSIVE_FPUMODE}
-{$ENDIF MORPHOS}
-
-procedure LoadGlut(const dll: String);
-procedure FreeGlut;
-
-implementation
-
-{$IFDEF MORPHOS}
-
-{ MorphOS GL works differently due to different dynamic-library handling on Amiga-like }
-{ systems, so its functions are included here. }
-{$INCLUDE tinygl.inc}
-
-{$ELSE MORPHOS}
-var
-  hDLL: TLibHandle;
-{$ENDIF MORPHOS}
-
-procedure FreeGlut;
-begin
-{$IFDEF MORPHOS}
-  // MorphOS's GL will closed down by TinyGL unit, nothing is needed here.
-{$ELSE MORPHOS}
-
-  if (hDLL <> 0) then
-    FreeLibrary(hDLL);
-
-{$IFDEF GLUT_EXCLUSIVE_FPUMODE}
-
-  @OLD_glutInit := nil;
-  @OLD_glutInitDisplayMode := nil;
-  @OLD_glutInitDisplayString := nil;
-  @OLD_glutInitWindowPosition := nil;
-  @OLD_glutInitWindowSize := nil;
-  @OLD_glutMainLoop := nil;
-  @OLD_glutCreateWindow := nil;
-  @OLD_glutCreateSubWindow := nil;
-  @OLD_glutDestroyWindow := nil;
-  @OLD_glutPostRedisplay := nil;
-  @OLD_glutPostWindowRedisplay := nil;
-  @OLD_glutSwapBuffers := nil;
-  @OLD_glutGetWindow := nil;
-  @OLD_glutSetWindow := nil;
-  @OLD_glutSetWindowTitle := nil;
-  @OLD_glutSetIconTitle := nil;
-  @OLD_glutPositionWindow := nil;
-  @OLD_glutReshapeWindow := nil;
-  @OLD_glutPopWindow := nil;
-  @OLD_glutPushWindow := nil;
-  @OLD_glutIconifyWindow := nil;
-  @OLD_glutShowWindow := nil;
-  @OLD_glutHideWindow := nil;
-  @OLD_glutFullScreen := nil;
-  @OLD_glutSetCursor := nil;
-  @OLD_glutWarpPointer := nil;
-  @OLD_glutEstablishOverlay := nil;
-  @OLD_glutRemoveOverlay := nil;
-  @OLD_glutUseLayer := nil;
-  @OLD_glutPostOverlayRedisplay := nil;
-  @OLD_glutPostWindowOverlayRedisplay := nil;
-  @OLD_glutShowOverlay := nil;
-  @OLD_glutHideOverlay := nil;
-  @OLD_glutCreateMenu := nil;
-  @OLD_glutDestroyMenu := nil;
-  @OLD_glutGetMenu := nil;
-  @OLD_glutSetMenu := nil;
-  @OLD_glutAddMenuEntry := nil;
-  @OLD_glutAddSubMenu := nil;
-  @OLD_glutChangeToMenuEntry := nil;
-  @OLD_glutChangeToSubMenu := nil;
-  @OLD_glutRemoveMenuItem := nil;
-  @OLD_glutAttachMenu := nil;
-  @OLD_glutDetachMenu := nil;
-  @OLD_glutDisplayFunc := nil;
-  @OLD_glutReshapeFunc := nil;
-  @OLD_glutKeyboardFunc := nil;
-  @OLD_glutMouseFunc := nil;
-  @OLD_glutMotionFunc := nil;
-  @OLD_glutPassiveMotionFunc := nil;
-  @OLD_glutEntryFunc := nil;
-  @OLD_glutVisibilityFunc := nil;
-  @OLD_glutIdleFunc := nil;
-  @OLD_glutTimerFunc := nil;
-  @OLD_glutMenuStateFunc := nil;
-  @OLD_glutSpecialFunc := nil;
-  @OLD_glutSpaceballMotionFunc := nil;
-  @OLD_glutSpaceballRotateFunc := nil;
-  @OLD_glutSpaceballButtonFunc := nil;
-  @OLD_glutButtonBoxFunc := nil;
-  @OLD_glutDialsFunc := nil;
-  @OLD_glutTabletMotionFunc := nil;
-  @OLD_glutTabletButtonFunc := nil;
-  @OLD_glutMenuStatusFunc := nil;
-  @OLD_glutOverlayDisplayFunc := nil;
-  @OLD_glutWindowStatusFunc := nil;
-  @OLD_glutKeyboardUpFunc := nil;
-  @OLD_glutSpecialUpFunc := nil;
-  @OLD_glutJoystickFunc := nil;
-  @OLD_glutSetColor := nil;
-  @OLD_glutGetColor := nil;
-  @OLD_glutCopyColormap := nil;
-  @OLD_glutGet := nil;
-  @OLD_glutDeviceGet := nil;
-  @OLD_glutExtensionSupported := nil;
-  @OLD_glutGetModifiers := nil;
-  @OLD_glutLayerGet := nil;
-  @OLD_glutBitmapCharacter := nil;
-  @OLD_glutBitmapWidth := nil;
-  @OLD_glutStrokeCharacter := nil;
-  @OLD_glutStrokeWidth := nil;
-  @OLD_glutBitmapLength := nil;
-  @OLD_glutStrokeLength := nil;
-  @OLD_glutWireSphere := nil;
-  @OLD_glutSolidSphere := nil;
-  @OLD_glutWireCone := nil;
-  @OLD_glutSolidCone := nil;
-  @OLD_glutWireCube := nil;
-  @OLD_glutSolidCube := nil;
-  @OLD_glutWireTorus := nil;
-  @OLD_glutSolidTorus := nil;
-  @OLD_glutWireDodecahedron := nil;
-  @OLD_glutSolidDodecahedron := nil;
-  @OLD_glutWireTeapot := nil;
-  @OLD_glutSolidTeapot := nil;
-  @OLD_glutWireOctahedron := nil;
-  @OLD_glutSolidOctahedron := nil;
-  @OLD_glutWireTetrahedron := nil;
-  @OLD_glutSolidTetrahedron := nil;
-  @OLD_glutWireIcosahedron := nil;
-  @OLD_glutSolidIcosahedron := nil;
-  @OLD_glutVideoResizeGet := nil;
-  @OLD_glutSetupVideoResizing := nil;
-  @OLD_glutStopVideoResizing := nil;
-  @OLD_glutVideoResize := nil;
-  @OLD_glutVideoPan := nil;
-  @OLD_glutReportErrors := nil;
-  @OLD_glutIgnoreKeyRepeat := nil;
-  @OLD_glutSetKeyRepeat := nil;
-  @OLD_glutForceJoystickFunc := nil;
-  @OLD_glutGameModeString := nil;
-  @OLD_glutEnterGameMode := nil;
-  @OLD_glutLeaveGameMode := nil;
-  @OLD_glutGameModeGet := nil;
-
-{$ELSE GLUT_EXCLUSIVE_FPUMODE}
-  @glutInit := nil;
-  @glutInitDisplayMode := nil;
-  @glutInitDisplayString := nil;
-  @glutInitWindowPosition := nil;
-  @glutInitWindowSize := nil;
-  @glutMainLoop := nil;
-  @glutCreateWindow := nil;
-  @glutCreateSubWindow := nil;
-  @glutDestroyWindow := nil;
-  @glutPostRedisplay := nil;
-  @glutPostWindowRedisplay := nil;
-  @glutSwapBuffers := nil;
-  @glutGetWindow := nil;
-  @glutSetWindow := nil;
-  @glutSetWindowTitle := nil;
-  @glutSetIconTitle := nil;
-  @glutPositionWindow := nil;
-  @glutReshapeWindow := nil;
-  @glutPopWindow := nil;
-  @glutPushWindow := nil;
-  @glutIconifyWindow := nil;
-  @glutShowWindow := nil;
-  @glutHideWindow := nil;
-  @glutFullScreen := nil;
-  @glutSetCursor := nil;
-  @glutWarpPointer := nil;
-  @glutEstablishOverlay := nil;
-  @glutRemoveOverlay := nil;
-  @glutUseLayer := nil;
-  @glutPostOverlayRedisplay := nil;
-  @glutPostWindowOverlayRedisplay := nil;
-  @glutShowOverlay := nil;
-  @glutHideOverlay := nil;
-  @glutCreateMenu := nil;
-  @glutDestroyMenu := nil;
-  @glutGetMenu := nil;
-  @glutSetMenu := nil;
-  @glutAddMenuEntry := nil;
-  @glutAddSubMenu := nil;
-  @glutChangeToMenuEntry := nil;
-  @glutChangeToSubMenu := nil;
-  @glutRemoveMenuItem := nil;
-  @glutAttachMenu := nil;
-  @glutDetachMenu := nil;
-  @glutDisplayFunc := nil;
-  @glutReshapeFunc := nil;
-  @glutKeyboardFunc := nil;
-  @glutMouseFunc := nil;
-  @glutMotionFunc := nil;
-  @glutPassiveMotionFunc := nil;
-  @glutEntryFunc := nil;
-  @glutVisibilityFunc := nil;
-  @glutIdleFunc := nil;
-  @glutTimerFunc := nil;
-  @glutMenuStateFunc := nil;
-  @glutSpecialFunc := nil;
-  @glutSpaceballMotionFunc := nil;
-  @glutSpaceballRotateFunc := nil;
-  @glutSpaceballButtonFunc := nil;
-  @glutButtonBoxFunc := nil;
-  @glutDialsFunc := nil;
-  @glutTabletMotionFunc := nil;
-  @glutTabletButtonFunc := nil;
-  @glutMenuStatusFunc := nil;
-  @glutOverlayDisplayFunc := nil;
-  @glutWindowStatusFunc := nil;
-  @glutKeyboardUpFunc := nil;
-  @glutSpecialUpFunc := nil;
-  @glutJoystickFunc := nil;
-  @glutSetColor := nil;
-  @glutGetColor := nil;
-  @glutCopyColormap := nil;
-  @glutGet := nil;
-  @glutDeviceGet := nil;
-  @glutExtensionSupported := nil;
-  @glutGetModifiers := nil;
-  @glutLayerGet := nil;
-  @glutBitmapCharacter := nil;
-  @glutBitmapWidth := nil;
-  @glutStrokeCharacter := nil;
-  @glutStrokeWidth := nil;
-  @glutBitmapLength := nil;
-  @glutStrokeLength := nil;
-  @glutWireSphere := nil;
-  @glutSolidSphere := nil;
-  @glutWireCone := nil;
-  @glutSolidCone := nil;
-  @glutWireCube := nil;
-  @glutSolidCube := nil;
-  @glutWireTorus := nil;
-  @glutSolidTorus := nil;
-  @glutWireDodecahedron := nil;
-  @glutSolidDodecahedron := nil;
-  @glutWireTeapot := nil;
-  @glutSolidTeapot := nil;
-  @glutWireOctahedron := nil;
-  @glutSolidOctahedron := nil;
-  @glutWireTetrahedron := nil;
-  @glutSolidTetrahedron := nil;
-  @glutWireIcosahedron := nil;
-  @glutSolidIcosahedron := nil;
-  @glutVideoResizeGet := nil;
-  @glutSetupVideoResizing := nil;
-  @glutStopVideoResizing := nil;
-  @glutVideoResize := nil;
-  @glutVideoPan := nil;
-  @glutReportErrors := nil;
-  @glutIgnoreKeyRepeat := nil;
-  @glutSetKeyRepeat := nil;
-  @glutForceJoystickFunc := nil;
-  @glutGameModeString := nil;
-  @glutEnterGameMode := nil;
-  @glutLeaveGameMode := nil;
-  @glutGameModeGet := nil;
-{$ENDIF GLUT_EXCLUSIVE_FPUMODE}
-{$ENDIF MORPHOS}
-end;
-
-procedure LoadGlut(const dll: String);
-{$IFDEF MORPHOS}
-begin
-  // MorphOS's GL has own initialization in TinyGL unit, nothing is needed here.
-end;
-{$ELSE MORPHOS}
-var
-  MethodName: string = '';
-
-  function GetGLutProcAddress(Lib: PtrInt; ProcName: PChar): Pointer;
-  begin
-    MethodName:=ProcName;
-    Result:=GetProcAddress(Lib, ProcName);
-  end;
-
-begin
-
-  FreeGlut;
-
-  hDLL := LoadLibrary(PChar(dll));
-  if hDLL = 0 then raise Exception.Create('Could not load Glut from ' + dll);
-  try
-{$IFDEF GLUT_EXCLUSIVE_FPUMODE}
-    @OLD_glutInit := GetGLutProcAddress(hDLL, 'glutInit');
-    @OLD_glutInitDisplayMode := GetGLutProcAddress(hDLL, 'glutInitDisplayMode');
-    @OLD_glutInitDisplayString := GetGLutProcAddress(hDLL, 'glutInitDisplayString');
-    @OLD_glutInitWindowPosition := GetGLutProcAddress(hDLL, 'glutInitWindowPosition');
-    @OLD_glutInitWindowSize := GetGLutProcAddress(hDLL, 'glutInitWindowSize');
-    @OLD_glutMainLoop := GetGLutProcAddress(hDLL, 'glutMainLoop');
-    @OLD_glutCreateWindow := GetGLutProcAddress(hDLL, 'glutCreateWindow');
-    @OLD_glutCreateSubWindow := GetGLutProcAddress(hDLL, 'glutCreateSubWindow');
-    @OLD_glutDestroyWindow := GetGLutProcAddress(hDLL, 'glutDestroyWindow');
-    @OLD_glutPostRedisplay := GetGLutProcAddress(hDLL, 'glutPostRedisplay');
-    @OLD_glutPostWindowRedisplay := GetGLutProcAddress(hDLL, 'glutPostWindowRedisplay');
-    @OLD_glutSwapBuffers := GetGLutProcAddress(hDLL, 'glutSwapBuffers');
-    @OLD_glutGetWindow := GetGLutProcAddress(hDLL, 'glutGetWindow');
-    @OLD_glutSetWindow := GetGLutProcAddress(hDLL, 'glutSetWindow');
-    @OLD_glutSetWindowTitle := GetGLutProcAddress(hDLL, 'glutSetWindowTitle');
-    @OLD_glutSetIconTitle := GetGLutProcAddress(hDLL, 'glutSetIconTitle');
-    @OLD_glutPositionWindow := GetGLutProcAddress(hDLL, 'glutPositionWindow');
-    @OLD_glutReshapeWindow := GetGLutProcAddress(hDLL, 'glutReshapeWindow');
-    @OLD_glutPopWindow := GetGLutProcAddress(hDLL, 'glutPopWindow');
-    @OLD_glutPushWindow := GetGLutProcAddress(hDLL, 'glutPushWindow');
-    @OLD_glutIconifyWindow := GetGLutProcAddress(hDLL, 'glutIconifyWindow');
-    @OLD_glutShowWindow := GetGLutProcAddress(hDLL, 'glutShowWindow');
-    @OLD_glutHideWindow := GetGLutProcAddress(hDLL, 'glutHideWindow');
-    @OLD_glutFullScreen := GetGLutProcAddress(hDLL, 'glutFullScreen');
-    @OLD_glutSetCursor := GetGLutProcAddress(hDLL, 'glutSetCursor');
-    @OLD_glutWarpPointer := GetGLutProcAddress(hDLL, 'glutWarpPointer');
-    @OLD_glutEstablishOverlay := GetGLutProcAddress(hDLL, 'glutEstablishOverlay');
-    @OLD_glutRemoveOverlay := GetGLutProcAddress(hDLL, 'glutRemoveOverlay');
-    @OLD_glutUseLayer := GetGLutProcAddress(hDLL, 'glutUseLayer');
-    @OLD_glutPostOverlayRedisplay := GetGLutProcAddress(hDLL, 'glutPostOverlayRedisplay');
-    @OLD_glutPostWindowOverlayRedisplay := GetGLutProcAddress(hDLL, 'glutPostWindowOverlayRedisplay');
-    @OLD_glutShowOverlay := GetGLutProcAddress(hDLL, 'glutShowOverlay');
-    @OLD_glutHideOverlay := GetGLutProcAddress(hDLL, 'glutHideOverlay');
-    @OLD_glutCreateMenu := GetGLutProcAddress(hDLL, 'glutCreateMenu');
-    @OLD_glutDestroyMenu := GetGLutProcAddress(hDLL, 'glutDestroyMenu');
-    @OLD_glutGetMenu := GetGLutProcAddress(hDLL, 'glutGetMenu');
-    @OLD_glutSetMenu := GetGLutProcAddress(hDLL, 'glutSetMenu');
-    @OLD_glutAddMenuEntry := GetGLutProcAddress(hDLL, 'glutAddMenuEntry');
-    @OLD_glutAddSubMenu := GetGLutProcAddress(hDLL, 'glutAddSubMenu');
-    @OLD_glutChangeToMenuEntry := GetGLutProcAddress(hDLL, 'glutChangeToMenuEntry');
-    @OLD_glutChangeToSubMenu := GetGLutProcAddress(hDLL, 'glutChangeToSubMenu');
-    @OLD_glutRemoveMenuItem := GetGLutProcAddress(hDLL, 'glutRemoveMenuItem');
-    @OLD_glutAttachMenu := GetGLutProcAddress(hDLL, 'glutAttachMenu');
-    @OLD_glutDetachMenu := GetGLutProcAddress(hDLL, 'glutDetachMenu');
-    @OLD_glutDisplayFunc := GetGLutProcAddress(hDLL, 'glutDisplayFunc');
-    @OLD_glutReshapeFunc := GetGLutProcAddress(hDLL, 'glutReshapeFunc');
-    @OLD_glutKeyboardFunc := GetGLutProcAddress(hDLL, 'glutKeyboardFunc');
-    @OLD_glutMouseFunc := GetGLutProcAddress(hDLL, 'glutMouseFunc');
-    @OLD_glutMotionFunc := GetGLutProcAddress(hDLL, 'glutMotionFunc');
-    @OLD_glutPassiveMotionFunc := GetGLutProcAddress(hDLL, 'glutPassiveMotionFunc');
-    @OLD_glutEntryFunc := GetGLutProcAddress(hDLL, 'glutEntryFunc');
-    @OLD_glutVisibilityFunc := GetGLutProcAddress(hDLL, 'glutVisibilityFunc');
-    @OLD_glutIdleFunc := GetGLutProcAddress(hDLL, 'glutIdleFunc');
-    @OLD_glutTimerFunc := GetGLutProcAddress(hDLL, 'glutTimerFunc');
-    @OLD_glutMenuStateFunc := GetGLutProcAddress(hDLL, 'glutMenuStateFunc');
-    @OLD_glutSpecialFunc := GetGLutProcAddress(hDLL, 'glutSpecialFunc');
-    @OLD_glutSpaceballMotionFunc := GetGLutProcAddress(hDLL, 'glutSpaceballMotionFunc');
-    @OLD_glutSpaceballRotateFunc := GetGLutProcAddress(hDLL, 'glutSpaceballRotateFunc');
-    @OLD_glutSpaceballButtonFunc := GetGLutProcAddress(hDLL, 'glutSpaceballButtonFunc');
-    @OLD_glutButtonBoxFunc := GetGLutProcAddress(hDLL, 'glutButtonBoxFunc');
-    @OLD_glutDialsFunc := GetGLutProcAddress(hDLL, 'glutDialsFunc');
-    @OLD_glutTabletMotionFunc := GetGLutProcAddress(hDLL, 'glutTabletMotionFunc');
-    @OLD_glutTabletButtonFunc := GetGLutProcAddress(hDLL, 'glutTabletButtonFunc');
-    @OLD_glutMenuStatusFunc := GetGLutProcAddress(hDLL, 'glutMenuStatusFunc');
-    @OLD_glutOverlayDisplayFunc := GetGLutProcAddress(hDLL, 'glutOverlayDisplayFunc');
-    @OLD_glutWindowStatusFunc := GetGLutProcAddress(hDLL, 'glutWindowStatusFunc');
-    @OLD_glutKeyboardUpFunc := GetGLutProcAddress(hDLL, 'glutKeyboardUpFunc');
-    @OLD_glutSpecialUpFunc := GetGLutProcAddress(hDLL, 'glutSpecialUpFunc');
-    @OLD_glutJoystickFunc := GetGLutProcAddress(hDLL, 'glutJoystickFunc');
-    @OLD_glutSetColor := GetGLutProcAddress(hDLL, 'glutSetColor');
-    @OLD_glutGetColor := GetGLutProcAddress(hDLL, 'glutGetColor');
-    @OLD_glutCopyColormap := GetGLutProcAddress(hDLL, 'glutCopyColormap');
-    @OLD_glutGet := GetGLutProcAddress(hDLL, 'glutGet');
-    @OLD_glutDeviceGet := GetGLutProcAddress(hDLL, 'glutDeviceGet');
-    @OLD_glutExtensionSupported := GetGLutProcAddress(hDLL, 'glutExtensionSupported');
-    @OLD_glutGetModifiers := GetGLutProcAddress(hDLL, 'glutGetModifiers');
-    @OLD_glutLayerGet := GetGLutProcAddress(hDLL, 'glutLayerGet');
-    @OLD_glutBitmapCharacter := GetGLutProcAddress(hDLL, 'glutBitmapCharacter');
-    @OLD_glutBitmapWidth := GetGLutProcAddress(hDLL, 'glutBitmapWidth');
-    @OLD_glutStrokeCharacter := GetGLutProcAddress(hDLL, 'glutStrokeCharacter');
-    @OLD_glutStrokeWidth := GetGLutProcAddress(hDLL, 'glutStrokeWidth');
-    @OLD_glutBitmapLength := GetGLutProcAddress(hDLL, 'glutBitmapLength');
-    @OLD_glutStrokeLength := GetGLutProcAddress(hDLL, 'glutStrokeLength');
-    @OLD_glutWireSphere := GetGLutProcAddress(hDLL, 'glutWireSphere');
-    @OLD_glutSolidSphere := GetGLutProcAddress(hDLL, 'glutSolidSphere');
-    @OLD_glutWireCone := GetGLutProcAddress(hDLL, 'glutWireCone');
-    @OLD_glutSolidCone := GetGLutProcAddress(hDLL, 'glutSolidCone');
-    @OLD_glutWireCube := GetGLutProcAddress(hDLL, 'glutWireCube');
-    @OLD_glutSolidCube := GetGLutProcAddress(hDLL, 'glutSolidCube');
-    @OLD_glutWireTorus := GetGLutProcAddress(hDLL, 'glutWireTorus');
-    @OLD_glutSolidTorus := GetGLutProcAddress(hDLL, 'glutSolidTorus');
-    @OLD_glutWireDodecahedron := GetGLutProcAddress(hDLL, 'glutWireDodecahedron');
-    @OLD_glutSolidDodecahedron := GetGLutProcAddress(hDLL, 'glutSolidDodecahedron');
-    @OLD_glutWireTeapot := GetGLutProcAddress(hDLL, 'glutWireTeapot');
-    @OLD_glutSolidTeapot := GetGLutProcAddress(hDLL, 'glutSolidTeapot');
-    @OLD_glutWireOctahedron := GetGLutProcAddress(hDLL, 'glutWireOctahedron');
-    @OLD_glutSolidOctahedron := GetGLutProcAddress(hDLL, 'glutSolidOctahedron');
-    @OLD_glutWireTetrahedron := GetGLutProcAddress(hDLL, 'glutWireTetrahedron');
-    @OLD_glutSolidTetrahedron := GetGLutProcAddress(hDLL, 'glutSolidTetrahedron');
-    @OLD_glutWireIcosahedron := GetGLutProcAddress(hDLL, 'glutWireIcosahedron');
-    @OLD_glutSolidIcosahedron := GetGLutProcAddress(hDLL, 'glutSolidIcosahedron');
-    @OLD_glutVideoResizeGet := GetGLutProcAddress(hDLL, 'glutVideoResizeGet');
-    @OLD_glutSetupVideoResizing := GetGLutProcAddress(hDLL, 'glutSetupVideoResizing');
-    @OLD_glutStopVideoResizing := GetGLutProcAddress(hDLL, 'glutStopVideoResizing');
-    @OLD_glutVideoResize := GetGLutProcAddress(hDLL, 'glutVideoResize');
-    @OLD_glutVideoPan := GetGLutProcAddress(hDLL, 'glutVideoPan');
-    @OLD_glutReportErrors := GetGLutProcAddress(hDLL, 'glutReportErrors');
-    @OLD_glutIgnoreKeyRepeat := GetGLutProcAddress(hDLL, 'glutIgnoreKeyRepeat');
-    @OLD_glutSetKeyRepeat := GetGLutProcAddress(hDLL, 'glutSetKeyRepeat');
-    @OLD_glutForceJoystickFunc := GetGLutProcAddress(hDLL, 'glutForceJoystickFunc');
-    @OLD_glutGameModeString := GetGLutProcAddress(hDLL, 'glutGameModeString');
-    @OLD_glutEnterGameMode := GetGLutProcAddress(hDLL, 'glutEnterGameMode');
-    @OLD_glutLeaveGameMode := GetGLutProcAddress(hDLL, 'glutLeaveGameMode');
-    @OLD_glutGameModeGet := GetGLutProcAddress(hDLL, 'glutGameModeGet');
-{$ELSE GLUT_EXCLUSIVE_FPUMODE}
-    @glutInit := GetGLutProcAddress(hDLL, 'glutInit');
-    @glutInitDisplayMode := GetGLutProcAddress(hDLL, 'glutInitDisplayMode');
-    @glutInitDisplayString := GetGLutProcAddress(hDLL, 'glutInitDisplayString');
-    @glutInitWindowPosition := GetGLutProcAddress(hDLL, 'glutInitWindowPosition');
-    @glutInitWindowSize := GetGLutProcAddress(hDLL, 'glutInitWindowSize');
-    @glutMainLoop := GetGLutProcAddress(hDLL, 'glutMainLoop');
-    @glutCreateWindow := GetGLutProcAddress(hDLL, 'glutCreateWindow');
-    @glutCreateSubWindow := GetGLutProcAddress(hDLL, 'glutCreateSubWindow');
-    @glutDestroyWindow := GetGLutProcAddress(hDLL, 'glutDestroyWindow');
-    @glutPostRedisplay := GetGLutProcAddress(hDLL, 'glutPostRedisplay');
-    @glutPostWindowRedisplay := GetGLutProcAddress(hDLL, 'glutPostWindowRedisplay');
-    @glutSwapBuffers := GetGLutProcAddress(hDLL, 'glutSwapBuffers');
-    @glutGetWindow := GetGLutProcAddress(hDLL, 'glutGetWindow');
-    @glutSetWindow := GetGLutProcAddress(hDLL, 'glutSetWindow');
-    @glutSetWindowTitle := GetGLutProcAddress(hDLL, 'glutSetWindowTitle');
-    @glutSetIconTitle := GetGLutProcAddress(hDLL, 'glutSetIconTitle');
-    @glutPositionWindow := GetGLutProcAddress(hDLL, 'glutPositionWindow');
-    @glutReshapeWindow := GetGLutProcAddress(hDLL, 'glutReshapeWindow');
-    @glutPopWindow := GetGLutProcAddress(hDLL, 'glutPopWindow');
-    @glutPushWindow := GetGLutProcAddress(hDLL, 'glutPushWindow');
-    @glutIconifyWindow := GetGLutProcAddress(hDLL, 'glutIconifyWindow');
-    @glutShowWindow := GetGLutProcAddress(hDLL, 'glutShowWindow');
-    @glutHideWindow := GetGLutProcAddress(hDLL, 'glutHideWindow');
-    @glutFullScreen := GetGLutProcAddress(hDLL, 'glutFullScreen');
-    @glutSetCursor := GetGLutProcAddress(hDLL, 'glutSetCursor');
-    @glutWarpPointer := GetGLutProcAddress(hDLL, 'glutWarpPointer');
-    @glutEstablishOverlay := GetGLutProcAddress(hDLL, 'glutEstablishOverlay');
-    @glutRemoveOverlay := GetGLutProcAddress(hDLL, 'glutRemoveOverlay');
-    @glutUseLayer := GetGLutProcAddress(hDLL, 'glutUseLayer');
-    @glutPostOverlayRedisplay := GetGLutProcAddress(hDLL, 'glutPostOverlayRedisplay');
-    @glutPostWindowOverlayRedisplay := GetGLutProcAddress(hDLL, 'glutPostWindowOverlayRedisplay');
-    @glutShowOverlay := GetGLutProcAddress(hDLL, 'glutShowOverlay');
-    @glutHideOverlay := GetGLutProcAddress(hDLL, 'glutHideOverlay');
-    @glutCreateMenu := GetGLutProcAddress(hDLL, 'glutCreateMenu');
-    @glutDestroyMenu := GetGLutProcAddress(hDLL, 'glutDestroyMenu');
-    @glutGetMenu := GetGLutProcAddress(hDLL, 'glutGetMenu');
-    @glutSetMenu := GetGLutProcAddress(hDLL, 'glutSetMenu');
-    @glutAddMenuEntry := GetGLutProcAddress(hDLL, 'glutAddMenuEntry');
-    @glutAddSubMenu := GetGLutProcAddress(hDLL, 'glutAddSubMenu');
-    @glutChangeToMenuEntry := GetGLutProcAddress(hDLL, 'glutChangeToMenuEntry');
-    @glutChangeToSubMenu := GetGLutProcAddress(hDLL, 'glutChangeToSubMenu');
-    @glutRemoveMenuItem := GetGLutProcAddress(hDLL, 'glutRemoveMenuItem');
-    @glutAttachMenu := GetGLutProcAddress(hDLL, 'glutAttachMenu');
-    @glutDetachMenu := GetGLutProcAddress(hDLL, 'glutDetachMenu');
-    @glutDisplayFunc := GetGLutProcAddress(hDLL, 'glutDisplayFunc');
-    @glutReshapeFunc := GetGLutProcAddress(hDLL, 'glutReshapeFunc');
-    @glutKeyboardFunc := GetGLutProcAddress(hDLL, 'glutKeyboardFunc');
-    @glutMouseFunc := GetGLutProcAddress(hDLL, 'glutMouseFunc');
-    @glutMotionFunc := GetGLutProcAddress(hDLL, 'glutMotionFunc');
-    @glutPassiveMotionFunc := GetGLutProcAddress(hDLL, 'glutPassiveMotionFunc');
-    @glutEntryFunc := GetGLutProcAddress(hDLL, 'glutEntryFunc');
-    @glutVisibilityFunc := GetGLutProcAddress(hDLL, 'glutVisibilityFunc');
-    @glutIdleFunc := GetGLutProcAddress(hDLL, 'glutIdleFunc');
-    @glutTimerFunc := GetGLutProcAddress(hDLL, 'glutTimerFunc');
-    @glutMenuStateFunc := GetGLutProcAddress(hDLL, 'glutMenuStateFunc');
-    @glutSpecialFunc := GetGLutProcAddress(hDLL, 'glutSpecialFunc');
-    @glutSpaceballMotionFunc := GetGLutProcAddress(hDLL, 'glutSpaceballMotionFunc');
-    @glutSpaceballRotateFunc := GetGLutProcAddress(hDLL, 'glutSpaceballRotateFunc');
-    @glutSpaceballButtonFunc := GetGLutProcAddress(hDLL, 'glutSpaceballButtonFunc');
-    @glutButtonBoxFunc := GetGLutProcAddress(hDLL, 'glutButtonBoxFunc');
-    @glutDialsFunc := GetGLutProcAddress(hDLL, 'glutDialsFunc');
-    @glutTabletMotionFunc := GetGLutProcAddress(hDLL, 'glutTabletMotionFunc');
-    @glutTabletButtonFunc := GetGLutProcAddress(hDLL, 'glutTabletButtonFunc');
-    @glutMenuStatusFunc := GetGLutProcAddress(hDLL, 'glutMenuStatusFunc');
-    @glutOverlayDisplayFunc := GetGLutProcAddress(hDLL, 'glutOverlayDisplayFunc');
-    @glutWindowStatusFunc := GetGLutProcAddress(hDLL, 'glutWindowStatusFunc');
-    @glutKeyboardUpFunc := GetGLutProcAddress(hDLL, 'glutKeyboardUpFunc');
-    @glutSpecialUpFunc := GetGLutProcAddress(hDLL, 'glutSpecialUpFunc');
-    @glutJoystickFunc := GetGLutProcAddress(hDLL, 'glutJoystickFunc');
-    @glutSetColor := GetGLutProcAddress(hDLL, 'glutSetColor');
-    @glutGetColor := GetGLutProcAddress(hDLL, 'glutGetColor');
-    @glutCopyColormap := GetGLutProcAddress(hDLL, 'glutCopyColormap');
-    @glutGet := GetGLutProcAddress(hDLL, 'glutGet');
-    @glutDeviceGet := GetGLutProcAddress(hDLL, 'glutDeviceGet');
-    @glutExtensionSupported := GetGLutProcAddress(hDLL, 'glutExtensionSupported');
-    @glutGetModifiers := GetGLutProcAddress(hDLL, 'glutGetModifiers');
-    @glutLayerGet := GetGLutProcAddress(hDLL, 'glutLayerGet');
-    @glutBitmapCharacter := GetGLutProcAddress(hDLL, 'glutBitmapCharacter');
-    @glutBitmapWidth := GetGLutProcAddress(hDLL, 'glutBitmapWidth');
-    @glutStrokeCharacter := GetGLutProcAddress(hDLL, 'glutStrokeCharacter');
-    @glutStrokeWidth := GetGLutProcAddress(hDLL, 'glutStrokeWidth');
-    @glutBitmapLength := GetGLutProcAddress(hDLL, 'glutBitmapLength');
-    @glutStrokeLength := GetGLutProcAddress(hDLL, 'glutStrokeLength');
-    @glutWireSphere := GetGLutProcAddress(hDLL, 'glutWireSphere');
-    @glutSolidSphere := GetGLutProcAddress(hDLL, 'glutSolidSphere');
-    @glutWireCone := GetGLutProcAddress(hDLL, 'glutWireCone');
-    @glutSolidCone := GetGLutProcAddress(hDLL, 'glutSolidCone');
-    @glutWireCube := GetGLutProcAddress(hDLL, 'glutWireCube');
-    @glutSolidCube := GetGLutProcAddress(hDLL, 'glutSolidCube');
-    @glutWireTorus := GetGLutProcAddress(hDLL, 'glutWireTorus');
-    @glutSolidTorus := GetGLutProcAddress(hDLL, 'glutSolidTorus');
-    @glutWireDodecahedron := GetGLutProcAddress(hDLL, 'glutWireDodecahedron');
-    @glutSolidDodecahedron := GetGLutProcAddress(hDLL, 'glutSolidDodecahedron');
-    @glutWireTeapot := GetGLutProcAddress(hDLL, 'glutWireTeapot');
-    @glutSolidTeapot := GetGLutProcAddress(hDLL, 'glutSolidTeapot');
-    @glutWireOctahedron := GetGLutProcAddress(hDLL, 'glutWireOctahedron');
-    @glutSolidOctahedron := GetGLutProcAddress(hDLL, 'glutSolidOctahedron');
-    @glutWireTetrahedron := GetGLutProcAddress(hDLL, 'glutWireTetrahedron');
-    @glutSolidTetrahedron := GetGLutProcAddress(hDLL, 'glutSolidTetrahedron');
-    @glutWireIcosahedron := GetGLutProcAddress(hDLL, 'glutWireIcosahedron');
-    @glutSolidIcosahedron := GetGLutProcAddress(hDLL, 'glutSolidIcosahedron');
-    @glutVideoResizeGet := GetGLutProcAddress(hDLL, 'glutVideoResizeGet');
-    @glutSetupVideoResizing := GetGLutProcAddress(hDLL, 'glutSetupVideoResizing');
-    @glutStopVideoResizing := GetGLutProcAddress(hDLL, 'glutStopVideoResizing');
-    @glutVideoResize := GetGLutProcAddress(hDLL, 'glutVideoResize');
-    @glutVideoPan := GetGLutProcAddress(hDLL, 'glutVideoPan');
-    @glutReportErrors := GetGLutProcAddress(hDLL, 'glutReportErrors');
-    @glutIgnoreKeyRepeat := GetGLutProcAddress(hDLL, 'glutIgnoreKeyRepeat');
-    @glutSetKeyRepeat := GetGLutProcAddress(hDLL, 'glutSetKeyRepeat');
-    @glutForceJoystickFunc := GetGLutProcAddress(hDLL, 'glutForceJoystickFunc');
-    @glutGameModeString := GetGLutProcAddress(hDLL, 'glutGameModeString');
-    @glutEnterGameMode := GetGLutProcAddress(hDLL, 'glutEnterGameMode');
-    @glutLeaveGameMode := GetGLutProcAddress(hDLL, 'glutLeaveGameMode');
-    @glutGameModeGet := GetGLutProcAddress(hDLL, 'glutGameModeGet');
-{$ENDIF GLUT_EXCLUSIVE_FPUMODE}
-
-{$ifndef Windows}
-    GLUT_STROKE_ROMAN := GetGLutProcAddress(hDll, 'glutStrokeRoman');
-    GLUT_STROKE_MONO_ROMAN := GetGLutProcAddress(hDll,'glutStrokeMonoRoman');
-    GLUT_BITMAP_9_BY_15 := GetGLutProcAddress(hDll, 'glutBitmap9By15');
-    GLUT_BITMAP_8_BY_13 := GetGLutProcAddress(hDll, 'glutBitmap8By13');
-    GLUT_BITMAP_TIMES_ROMAN_10 := GetGLutProcAddress(hDll, 'glutBitmapTimesRoman10');
-    GLUT_BITMAP_TIMES_ROMAN_24 := GetGLutProcAddress(hDll, 'glutBitmapTimesRoman24');
-    GLUT_BITMAP_HELVETICA_10 := GetGLutProcAddress(hDll, 'glutBitmapHelvetica10');
-    GLUT_BITMAP_HELVETICA_12 := GetGLutProcAddress(hDll, 'glutBitmapHelvetica12');
-    GLUT_BITMAP_HELVETICA_18 := GetGLutProcAddress(hDll, 'glutBitmapHelvetica18');
-{$endif Windows}
-  except
-    raise Exception.Create('Could not load ' + MethodName + ' from ' + dll);
-  end;
-end;
-{$ENDIF MORPHOS}
-
-{$IFDEF GLUT_EXCLUSIVE_FPUMODE}
-
-VAR
-GLUT_EXCLUSIVE_glut_ExceptionMask : TFPUExceptionMask;
-GLUT_EXCLUSIVE_fpc__ExceptionMask : TFPUExceptionMask;
-GLUT_EXCLUSIVE_glut_PrecisionMode : TFPUPrecisionMode;
-GLUT_EXCLUSIVE_fpc__PrecisionMode : TFPUPrecisionMode;
-GLUT_EXCLUSIVE_glut_RoundMode : TFPURoundingMode;
-GLUT_EXCLUSIVE_fpc__RoundMode : TFPURoundingMode;
-
-
-PROCEDURE init_fpumode;
-BEGIN
-  GLUT_EXCLUSIVE_glut_ExceptionMask := GetExceptionMask+[exDenormalized, exInvalidOp, exOverflow, exPrecision, exUnderflow, exZeroDivide];
-  GLUT_EXCLUSIVE_glut_PrecisionMode := GetPrecisionMode;
-  GLUT_EXCLUSIVE_glut_RoundMode     := GetRoundMode;
-END;
-
-
-PROCEDURE switch_to_glut_fpumode; mode_inline;
-BEGIN
-  GLUT_EXCLUSIVE_fpc__ExceptionMask := GetExceptionMask;
-  GLUT_EXCLUSIVE_fpc__PrecisionMode := GetPrecisionMode;
-  GLUT_EXCLUSIVE_fpc__RoundMode     := GetRoundMode;
-  SetExceptionMask(GLUT_EXCLUSIVE_glut_ExceptionMask);
-  SetPrecisionMode(GLUT_EXCLUSIVE_glut_PrecisionMode);
-  SetRoundMode(GLUT_EXCLUSIVE_glut_RoundMode);
-END;
-
-PROCEDURE switch_to_FPC_fpumode; mode_inline;
-BEGIN
-  GLUT_EXCLUSIVE_glut_ExceptionMask := GetExceptionMask;
-  GLUT_EXCLUSIVE_glut_PrecisionMode := GetPrecisionMode;
-  GLUT_EXCLUSIVE_glut_RoundMode     := GetRoundMode;
-  SetExceptionMask(GLUT_EXCLUSIVE_fpc__ExceptionMask);
-  SetPrecisionMode(GLUT_EXCLUSIVE_fpc__PrecisionMode);
-  SetRoundMode(GLUT_EXCLUSIVE_fpc__RoundMode);
-END;
-
-
-procedure glutInit(argcp: PInteger; argv: PPChar);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutInit(argcp,argv);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutInitDisplayMode(mode: Cardinal);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutInitDisplayMode(mode);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutInitDisplayString(const str: PChar);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutInitDisplayString(str);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutInitWindowPosition(x, y: Integer);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutInitWindowPosition(x,y);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutInitWindowSize(width, height: Integer);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutInitWindowSize(width,height);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutMainLoop;
-begin
-  switch_to_glut_fpumode;
-  OLD_glutMainLoop();
-  switch_to_FPC_fpumode;
-end;
-
-function glutCreateWindow(const title: PChar): Integer;
-begin
-  switch_to_glut_fpumode;
-  glutCreateWindow := OLD_glutCreateWindow(title);
-  switch_to_FPC_fpumode;
-end;
-
-function glutCreateSubWindow(win, x, y, width, height: Integer): Integer;
-begin
-  switch_to_glut_fpumode;
-  glutCreateSubWindow := OLD_glutCreateSubWindow(win,x,y,width,height);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutDestroyWindow(win: Integer);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutDestroyWindow(win);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutPostRedisplay;
-begin
-  switch_to_glut_fpumode;
-  OLD_glutPostRedisplay();
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutPostWindowRedisplay(win: Integer);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutPostWindowRedisplay(win);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutSwapBuffers;
-begin
-  switch_to_glut_fpumode;
-  OLD_glutSwapBuffers();
-  switch_to_FPC_fpumode;
-end;
-
-function glutGetWindow: Integer;
-begin
-  switch_to_glut_fpumode;
-  glutGetWindow := OLD_glutGetWindow();
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutSetWindow(win: Integer);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutSetWindow(win);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutSetWindowTitle(const title: PChar);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutSetWindowTitle(title);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutSetIconTitle(const title: PChar);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutSetIconTitle(title);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutPositionWindow(x, y: Integer);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutPositionWindow(x,y);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutReshapeWindow(width, height: Integer);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutReshapeWindow(width,height);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutPopWindow;
-begin
-  switch_to_glut_fpumode;
-  OLD_glutPopWindow();
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutPushWindow;
-begin
-  switch_to_glut_fpumode;
-  OLD_glutPushWindow();
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutIconifyWindow;
-begin
-  switch_to_glut_fpumode;
-  OLD_glutIconifyWindow();
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutShowWindow;
-begin
-  switch_to_glut_fpumode;
-  OLD_glutShowWindow();
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutHideWindow;
-begin
-  switch_to_glut_fpumode;
-  OLD_glutHideWindow();
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutFullScreen;
-begin
-  switch_to_glut_fpumode;
-  OLD_glutFullScreen();
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutSetCursor(cursor: Integer);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutSetCursor(cursor);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutWarpPointer(x, y: Integer);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutWarpPointer(x,y);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutEstablishOverlay;
-begin
-  switch_to_glut_fpumode;
-  OLD_glutEstablishOverlay();
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutRemoveOverlay;
-begin
-  switch_to_glut_fpumode;
-  OLD_glutRemoveOverlay();
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutUseLayer(layer: GLenum);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutUseLayer(layer);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutPostOverlayRedisplay;
-begin
-  switch_to_glut_fpumode;
-  OLD_glutPostOverlayRedisplay();
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutPostWindowOverlayRedisplay(win: Integer);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutPostWindowOverlayRedisplay(win);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutShowOverlay;
-begin
-  switch_to_glut_fpumode;
-  OLD_glutShowOverlay();
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutHideOverlay;
-begin
-  switch_to_glut_fpumode;
-  OLD_glutHideOverlay();
-  switch_to_FPC_fpumode;
-end;
-
-function glutCreateMenu(callback: TGlut1IntCallback): Integer;
-begin
-  switch_to_glut_fpumode;
-  glutCreateMenu := OLD_glutCreateMenu(callback);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutDestroyMenu(menu: Integer);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutDestroyMenu(menu);
-  switch_to_FPC_fpumode;
-end;
-
-function glutGetMenu: Integer;
-begin
-  switch_to_glut_fpumode;
-  glutGetMenu := OLD_glutGetMenu();
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutSetMenu(menu: Integer);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutSetMenu(menu);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutAddMenuEntry(const caption: PChar; value: Integer);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutAddMenuEntry(caption,value);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutAddSubMenu(const caption: PChar; submenu: Integer);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutAddSubMenu(caption,submenu);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutChangeToMenuEntry(item: Integer; const caption: PChar; value: Integer);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutChangeToMenuEntry(item,caption,value);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutChangeToSubMenu(item: Integer; const caption: PChar; submenu: Integer);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutChangeToSubMenu(item,caption,submenu);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutRemoveMenuItem(item: Integer);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutRemoveMenuItem(item);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutAttachMenu(button: Integer);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutAttachMenu(button);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutDetachMenu(button: Integer);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutDetachMenu(button);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutDisplayFunc(f: TGlutVoidCallback);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutDisplayFunc(f);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutReshapeFunc(f: TGlut2IntCallback);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutReshapeFunc(f);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutKeyboardFunc(f: TGlut1Char2IntCallback);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutKeyboardFunc(f);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutMouseFunc(f: TGlut4IntCallback);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutMouseFunc(f);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutMotionFunc(f: TGlut2IntCallback);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutMotionFunc(f);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutPassiveMotionFunc(f: TGlut2IntCallback);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutPassiveMotionFunc(f);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutEntryFunc(f: TGlut1IntCallback);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutEntryFunc(f);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutVisibilityFunc(f: TGlut1IntCallback);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutVisibilityFunc(f);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutIdleFunc(f: TGlutVoidCallback);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutIdleFunc(f);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutTimerFunc(millis: Cardinal; f: TGlut1IntCallback; value: Integer);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutTimerFunc(millis,f,value);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutMenuStateFunc(f: TGlut1IntCallback);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutMenuStateFunc(f);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutSpecialFunc(f: TGlut3IntCallback);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutSpecialFunc(f);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutSpaceballMotionFunc(f: TGlut3IntCallback);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutSpaceballMotionFunc(f);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutSpaceballRotateFunc(f: TGlut3IntCallback);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutSpaceballRotateFunc(f);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutSpaceballButtonFunc(f: TGlut2IntCallback);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutSpaceballButtonFunc(f);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutButtonBoxFunc(f: TGlut2IntCallback);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutButtonBoxFunc(f);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutDialsFunc(f: TGlut2IntCallback);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutDialsFunc(f);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutTabletMotionFunc(f: TGlut2IntCallback);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutTabletMotionFunc(f);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutTabletButtonFunc(f: TGlut4IntCallback);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutTabletButtonFunc(f);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutMenuStatusFunc(f: TGlut3IntCallback);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutMenuStatusFunc(f);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutOverlayDisplayFunc(f:TGlutVoidCallback);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutOverlayDisplayFunc(f);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutWindowStatusFunc(f: TGlut1IntCallback);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutWindowStatusFunc(f);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutKeyboardUpFunc(f: TGlut1Char2IntCallback);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutKeyboardUpFunc(f);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutSpecialUpFunc(f: TGlut3IntCallback);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutSpecialUpFunc(f);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutJoystickFunc(f: TGlut1UInt3IntCallback; pollInterval: Integer);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutJoystickFunc(f,pollInterval);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutSetColor(cell: Integer; red, green, blue: GLfloat);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutSetColor(cell,red,green,blue);
-  switch_to_FPC_fpumode;
-end;
-
-function glutGetColor(ndx, component: Integer): GLfloat;
-begin
-  switch_to_glut_fpumode;
-  glutGetColor := OLD_glutGetColor(ndx,component);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutCopyColormap(win: Integer);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutCopyColormap(win);
-  switch_to_FPC_fpumode;
-end;
-
-function glutGet(t: GLenum): Integer;
-begin
-  switch_to_glut_fpumode;
-  glutGet := OLD_glutGet(t);
-  switch_to_FPC_fpumode;
-end;
-
-function glutDeviceGet(t: GLenum): Integer;
-begin
-  switch_to_glut_fpumode;
-  glutDeviceGet := OLD_glutDeviceGet(t);
-  switch_to_FPC_fpumode;
-end;
-
-function glutExtensionSupported(const name: PChar): Integer;
-begin
-  switch_to_glut_fpumode;
-  glutExtensionSupported := OLD_glutExtensionSupported(name);
-  switch_to_FPC_fpumode;
-end;
-
-function glutGetModifiers: Integer;
-begin
-  switch_to_glut_fpumode;
-  glutGetModifiers := OLD_glutGetModifiers();
-  switch_to_FPC_fpumode;
-end;
-
-function glutLayerGet(t: GLenum): Integer;
-begin
-  switch_to_glut_fpumode;
-  glutLayerGet := OLD_glutLayerGet(t);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutBitmapCharacter(font : pointer; character: Integer);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutBitmapCharacter(font,character);
-  switch_to_FPC_fpumode;
-end;
-
-function glutBitmapWidth(font : pointer; character: Integer): Integer;
-begin
-  switch_to_glut_fpumode;
-  glutBitmapWidth := OLD_glutBitmapWidth(font,character);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutStrokeCharacter(font : pointer; character: Integer);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutStrokeCharacter(font,character);
-  switch_to_FPC_fpumode;
-end;
-
-function glutStrokeWidth(font : pointer; character: Integer): Integer;
-begin
-  switch_to_glut_fpumode;
-  glutStrokeWidth := OLD_glutStrokeWidth(font,character);
-  switch_to_FPC_fpumode;
-end;
-
-function glutBitmapLength(font: pointer; const str: PChar): Integer;
-begin
-  switch_to_glut_fpumode;
-  glutBitmapLength := OLD_glutBitmapLength(font,str);
-  switch_to_FPC_fpumode;
-end;
-
-function glutStrokeLength(font: pointer; const str: PChar): Integer;
-begin
-  switch_to_glut_fpumode;
-  glutStrokeLength := OLD_glutStrokeLength(font,str);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutWireSphere(radius: GLdouble; slices, stacks: GLint);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutWireSphere(radius,slices,stacks);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutSolidSphere(radius: GLdouble; slices, stacks: GLint);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutSolidSphere(radius,slices,stacks);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutWireCone(base, height: GLdouble; slices, stacks: GLint);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutWireCone(base,height,slices,stacks);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutSolidCone(base, height: GLdouble; slices, stacks: GLint);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutSolidCone(base,height,slices,stacks);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutWireCube(size: GLdouble);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutWireCube(size);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutSolidCube(size: GLdouble);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutSolidCube(size);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutWireTorus(innerRadius, outerRadius: GLdouble; sides, rings: GLint);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutWireTorus(innerRadius,outerRadius,sides,rings);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutSolidTorus(innerRadius, outerRadius: GLdouble; sides, rings: GLint);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutSolidTorus(innerRadius,outerRadius,sides,rings);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutWireDodecahedron;
-begin
-  switch_to_glut_fpumode;
-  OLD_glutWireDodecahedron();
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutSolidDodecahedron;
-begin
-  switch_to_glut_fpumode;
-  OLD_glutSolidDodecahedron();
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutWireTeapot(size: GLdouble);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutWireTeapot(size);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutSolidTeapot(size: GLdouble);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutSolidTeapot(size);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutWireOctahedron;
-begin
-  switch_to_glut_fpumode;
-  OLD_glutWireOctahedron();
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutSolidOctahedron;
-begin
-  switch_to_glut_fpumode;
-  OLD_glutSolidOctahedron();
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutWireTetrahedron;
-begin
-  switch_to_glut_fpumode;
-  OLD_glutWireTetrahedron();
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutSolidTetrahedron;
-begin
-  switch_to_glut_fpumode;
-  OLD_glutSolidTetrahedron();
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutWireIcosahedron;
-begin
-  switch_to_glut_fpumode;
-  OLD_glutWireIcosahedron();
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutSolidIcosahedron;
-begin
-  switch_to_glut_fpumode;
-  OLD_glutSolidIcosahedron();
-  switch_to_FPC_fpumode;
-end;
-
-function glutVideoResizeGet(param: GLenum): Integer;
-begin
-  switch_to_glut_fpumode;
-  glutVideoResizeGet := OLD_glutVideoResizeGet(param);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutSetupVideoResizing;
-begin
-  switch_to_glut_fpumode;
-  OLD_glutSetupVideoResizing();
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutStopVideoResizing;
-begin
-  switch_to_glut_fpumode;
-  OLD_glutStopVideoResizing();
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutVideoResize(x, y, width, height: Integer);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutVideoResize(x,y,width,height);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutVideoPan(x, y, width, height: Integer);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutVideoPan(x,y,width,height);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutReportErrors;
-begin
-  switch_to_glut_fpumode;
-  OLD_glutReportErrors();
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutIgnoreKeyRepeat(ignore: Integer);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutIgnoreKeyRepeat(ignore);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutSetKeyRepeat(repeatMode: Integer);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutSetKeyRepeat(repeatMode);
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutForceJoystickFunc;
-begin
-  switch_to_glut_fpumode;
-  OLD_glutForceJoystickFunc();
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutGameModeString(const AString : PChar);
-begin
-  switch_to_glut_fpumode;
-  OLD_glutGameModeString(AString);
-  switch_to_FPC_fpumode;
-end;
-
-function glutEnterGameMode: integer;
-begin
-  switch_to_glut_fpumode;
-  glutEnterGameMode := OLD_glutEnterGameMode();
-  switch_to_FPC_fpumode;
-end;
-
-procedure glutLeaveGameMode;
-begin
-  switch_to_glut_fpumode;
-  OLD_glutLeaveGameMode();
-  switch_to_FPC_fpumode;
-end;
-
-function glutGameModeGet(mode : GLenum): integer;
-begin
-  switch_to_glut_fpumode;
-  glutGameModeGet := OLD_glutGameModeGet(mode);
-  switch_to_FPC_fpumode;
-end;
-
-
-{$ENDIF GLUT_EXCLUSIVE_FPUMODE}
-
-initialization
-
-  {$IFDEF GLUT_EXCLUSIVE_FPUMODE}
-  init_fpumode;
-  {$ENDIF GLUT_EXCLUSIVE_FPUMODE}
-
-  {$IFDEF Windows}
-  LoadGlut('glut32.dll');
-  {$ELSE}
-  {$ifdef darwin}
-  LoadGlut('/System/Library/Frameworks/GLUT.framework/GLUT');
-  {$else}
-  {$IFNDEF MORPHOS}
-  LoadGlut('libglut.so.3');
-  {$ENDIF}
-  {$endif}
-  {$ENDIF}
-
-finalization
-  FreeGlut;
-end.

+ 0 - 240
packages/extra/opengl/glx.pp

@@ -1,240 +0,0 @@
-{
-
-  Translation of the Mesa GLX headers for FreePascal
-  Copyright (C) 1999 Sebastian Guenther
-
-
-  Mesa 3-D graphics library
-  Version:  3.0
-  Copyright (C) 1995-1998  Brian Paul
-
-  This library is free software; you can redistribute it and/or
-  modify it under the terms of the GNU Library General Public
-  License as published by the Free Software Foundation; either
-  version 2 of the License, or (at your option) any later version.
-
-  This library is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-  Library General Public License for more details.
-
-  You should have received a copy of the GNU Library General Public
-  License along with this library; if not, write to the Free
-  Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-}
-
-{$MODE delphi}  // objfpc would not work because of direct proc var assignments
-
-{You have to enable Macros (compiler switch "-Sm") for compiling this unit!
- This is necessary for supporting different platforms with different calling
- conventions via a single unit.}
-
-unit GLX;
-
-interface
-
-{$MACRO ON}
-
-{$IFDEF Unix}
-  uses
-    X, XLib, XUtil;
-  {$DEFINE HasGLX}  // Activate GLX stuff
-{$ELSE}
-  {$MESSAGE Unsupported platform.}
-{$ENDIF}
-
-{$IFNDEF HasGLX}
-  {$MESSAGE GLX not present on this platform.}
-{$ENDIF}
-
-
-// =======================================================
-//   Unit specific extensions
-// =======================================================
-
-// Note: Requires that the GL library has already been initialized
-function InitGLX: Boolean;
-
-var
-  GLXDumpUnresolvedFunctions,
-  GLXInitialized: Boolean;
-
-
-// =======================================================
-//   GLX consts, types and functions
-// =======================================================
-
-// Tokens for glXChooseVisual and glXGetConfig:
-const
-  GLX_USE_GL                            = 1;
-  GLX_BUFFER_SIZE                       = 2;
-  GLX_LEVEL                             = 3;
-  GLX_RGBA                              = 4;
-  GLX_DOUBLEBUFFER                      = 5;
-  GLX_STEREO                            = 6;
-  GLX_AUX_BUFFERS                       = 7;
-  GLX_RED_SIZE                          = 8;
-  GLX_GREEN_SIZE                        = 9;
-  GLX_BLUE_SIZE                         = 10;
-  GLX_ALPHA_SIZE                        = 11;
-  GLX_DEPTH_SIZE                        = 12;
-  GLX_STENCIL_SIZE                      = 13;
-  GLX_ACCUM_RED_SIZE                    = 14;
-  GLX_ACCUM_GREEN_SIZE                  = 15;
-  GLX_ACCUM_BLUE_SIZE                   = 16;
-  GLX_ACCUM_ALPHA_SIZE                  = 17;
-
-  // GLX_EXT_visual_info extension
-  GLX_X_VISUAL_TYPE_EXT                 = $22;
-  GLX_TRANSPARENT_TYPE_EXT              = $23;
-  GLX_TRANSPARENT_INDEX_VALUE_EXT       = $24;
-  GLX_TRANSPARENT_RED_VALUE_EXT         = $25;
-  GLX_TRANSPARENT_GREEN_VALUE_EXT       = $26;
-  GLX_TRANSPARENT_BLUE_VALUE_EXT        = $27;
-  GLX_TRANSPARENT_ALPHA_VALUE_EXT       = $28;
-
-
-  // Error codes returned by glXGetConfig:
-  GLX_BAD_SCREEN                        = 1;
-  GLX_BAD_ATTRIBUTE                     = 2;
-  GLX_NO_EXTENSION                      = 3;
-  GLX_BAD_VISUAL                        = 4;
-  GLX_BAD_CONTEXT                       = 5;
-  GLX_BAD_VALUE                         = 6;
-  GLX_BAD_ENUM                          = 7;
-
-  // GLX 1.1 and later:
-  GLX_VENDOR                            = 1;
-  GLX_VERSION                           = 2;
-  GLX_EXTENSIONS                        = 3;
-
-  // GLX_visual_info extension
-  GLX_TRUE_COLOR_EXT                    = $8002;
-  GLX_DIRECT_COLOR_EXT                  = $8003;
-  GLX_PSEUDO_COLOR_EXT                  = $8004;
-  GLX_STATIC_COLOR_EXT                  = $8005;
-  GLX_GRAY_SCALE_EXT                    = $8006;
-  GLX_STATIC_GRAY_EXT                   = $8007;
-  GLX_NONE_EXT                          = $8000;
-  GLX_TRANSPARENT_RGB_EXT               = $8008;
-  GLX_TRANSPARENT_INDEX_EXT             = $8009;
-
-type
-  // From XLib:
-  XPixmap = TXID;
-  XFont = TXID;
-  XColormap = TXID;
-
-  GLXContext = Pointer;
-  GLXPixmap = TXID;
-  GLXDrawable = TXID;
-  GLXContextID = TXID;
-  
-  TXPixmap = XPixmap;
-  TXFont = XFont;
-  TXColormap = XColormap;
-
-  TGLXContext = GLXContext;
-  TGLXPixmap = GLXPixmap;
-  TGLXDrawable = GLXDrawable;
-  TGLXContextID = GLXContextID;
-
-var
-  glXChooseVisual: function(dpy: PDisplay; screen: Integer; attribList: PInteger): PXVisualInfo; cdecl;
-  glXCreateContext: function(dpy: PDisplay; vis: PXVisualInfo; shareList: GLXContext; direct: Boolean): GLXContext; cdecl;
-  glXDestroyContext: procedure(dpy: PDisplay; ctx: GLXContext); cdecl;
-  glXMakeCurrent: function(dpy: PDisplay; drawable: GLXDrawable; ctx: GLXContext): Boolean; cdecl;
-  glXCopyContext: procedure(dpy: PDisplay; src, dst: GLXContext; mask: LongWord); cdecl;
-  glXSwapBuffers: procedure(dpy: PDisplay; drawable: GLXDrawable); cdecl;
-  glXCreateGLXPixmap: function(dpy: PDisplay; visual: PXVisualInfo; pixmap: XPixmap): GLXPixmap; cdecl;
-  glXDestroyGLXPixmap: procedure(dpy: PDisplay; pixmap: GLXPixmap); cdecl;
-  glXQueryExtension: function(dpy: PDisplay; var errorb, event: Integer): Boolean; cdecl;
-  glXQueryVersion: function(dpy: PDisplay; var maj, min: Integer): Boolean; cdecl;
-  glXIsDirect: function(dpy: PDisplay; ctx: GLXContext): Boolean; cdecl;
-  glXGetConfig: function(dpy: PDisplay; visual: PXVisualInfo; attrib: Integer; var value: Integer): Integer; cdecl;
-  glXGetCurrentContext: function: GLXContext; cdecl;
-  glXGetCurrentDrawable: function: GLXDrawable; cdecl;
-  glXWaitGL: procedure; cdecl;
-  glXWaitX: procedure; cdecl;
-  glXUseXFont: procedure(font: XFont; first, count, list: Integer); cdecl;
-
-  // GLX 1.1 and later
-  glXQueryExtensionsString: function(dpy: PDisplay; screen: Integer): PChar; cdecl;
-  glXQueryServerString: function(dpy: PDisplay; screen, name: Integer): PChar; cdecl;
-  glXGetClientString: function(dpy: PDisplay; name: Integer): PChar; cdecl;
-
-  // Mesa GLX Extensions
-  glXCreateGLXPixmapMESA: function(dpy: PDisplay; visual: PXVisualInfo; pixmap: XPixmap; cmap: XColormap): GLXPixmap; cdecl;
-  glXReleaseBufferMESA: function(dpy: PDisplay; d: GLXDrawable): Boolean; cdecl;
-  glXCopySubBufferMESA: procedure(dpy: PDisplay; drawbale: GLXDrawable; x, y, width, height: Integer); cdecl;
-  glXGetVideoSyncSGI: function(var counter: LongWord): Integer; cdecl;
-  glXWaitVideoSyncSGI: function(divisor, remainder: Integer; var count: LongWord): Integer; cdecl;
-
-
-// =======================================================
-//
-// =======================================================
-
-implementation
-
-uses GL, dynlibs;
-
-{$LINKLIB m}
-
-function GetProc(handle: PtrInt; name: PChar): Pointer;
-begin
-  Result := GetProcAddress(handle, name);
-  if (Result = nil) and GLXDumpUnresolvedFunctions then
-    WriteLn('Unresolved: ', name);
-end;
-
-function InitGLX: Boolean;
-var
-  OurLibGL: TLibHandle;
-begin
-  Result := False;
-
-{$ifndef darwin}
-  OurLibGL := libGl;
-{$else darwin}
-  OurLibGL := LoadLibrary('/usr/X11R6/lib/libGL.dylib');
-{$endif darwin}
-
-  if OurLibGL = 0 then
-    exit;
-
-  glXChooseVisual := GetProc(OurLibGL, 'glXChooseVisual');
-  glXCreateContext := GetProc(OurLibGL, 'glXCreateContext');
-  glXDestroyContext := GetProc(OurLibGL, 'glXDestroyContext');
-  glXMakeCurrent := GetProc(OurLibGL, 'glXMakeCurrent');
-  glXCopyContext := GetProc(OurLibGL, 'glXCopyContext');
-  glXSwapBuffers := GetProc(OurLibGL, 'glXSwapBuffers');
-  glXCreateGLXPixmap := GetProc(OurLibGL, 'glXCreateGLXPixmap');
-  glXDestroyGLXPixmap := GetProc(OurLibGL, 'glXDestroyGLXPixmap');
-  glXQueryExtension := GetProc(OurLibGL, 'glXQueryExtension');
-  glXQueryVersion := GetProc(OurLibGL, 'glXQueryVersion');
-  glXIsDirect := GetProc(OurLibGL, 'glXIsDirect');
-  glXGetConfig := GetProc(OurLibGL, 'glXGetConfig');
-  glXGetCurrentContext := GetProc(OurLibGL, 'glXGetCurrentContext');
-  glXGetCurrentDrawable := GetProc(OurLibGL, 'glXGetCurrentDrawable');
-  glXWaitGL := GetProc(OurLibGL, 'glXWaitGL');
-  glXWaitX := GetProc(OurLibGL, 'glXWaitX');
-  glXUseXFont := GetProc(OurLibGL, 'glXUseXFont');
-  // GLX 1.1 and later
-  glXQueryExtensionsString := GetProc(OurLibGL, 'glXQueryExtensionsString');
-  glXQueryServerString := GetProc(OurLibGL, 'glXQueryServerString');
-  glXGetClientString := GetProc(OurLibGL, 'glXGetClientString');
-  // Mesa GLX Extensions
-  glXCreateGLXPixmapMESA := GetProc(OurLibGL, 'glXCreateGLXPixmapMESA');
-  glXReleaseBufferMESA := GetProc(OurLibGL, 'glXReleaseBufferMESA');
-  glXCopySubBufferMESA := GetProc(OurLibGL, 'glXCopySubBufferMESA');
-  glXGetVideoSyncSGI := GetProc(OurLibGL, 'glXGetVideoSyncSGI');
-  glXWaitVideoSyncSGI := GetProc(OurLibGL, 'glXWaitVideoSyncSGI');
-
-  GLXInitialized := True;
-  Result := True;
-end;
-
-initialization
-  InitGLX;
-end.

+ 0 - 22
packages/extra/opengl/readme

@@ -1,22 +0,0 @@
-New Free Pascal OpenGL (GL, GLU, GLUT, GLX) Units
-GLX unit (c) 1999-2002 Sebastian Guenther, [email protected]
-other units adapted to Free Pascal from the delphi3d.net units
-by Tom Nuydens ([email protected]), see http://www.delphi3d.net/
-
-You might have a look at the original readme, glunits.txt, as well 
-
-
-Some remarks:
-* The new OpenGL units are not 100% compatible to the old ones; the new units
-  use exactly the same function declarations as their C counterpart.
-* Platform compatiblity: You can work on all targets exactly as on Win32;
-  for example, you can use wglGetProcAddress for loading OpenGL extensions even
-  on Unix based systems. A future release of the glext unit might have helper
-  functions for loading specific extensions. (There is a small problem with
-  Free Pascal: In FPC mode, you cannot assign a pointer, as returned by
-  wglGetProcAddress, to a variable which holds a function pointer. Currently
-  you have to compile your programs in Delphi mode, if they are using OpenGL
-  extensions)
-* GLUT on Win32: Get the glut32.dll from here:
-  http://www.xmission.com/~nate/glut.html
-* GTKGLArea: The GL Area widget for GTK is available in the GTK package

+ 0 - 846
packages/extra/opengl/tinygl.inc

@@ -1,846 +0,0 @@
-{
-    This file is part of the Free Pascal run time library.
-    Copyright (c) 2005 by Karoly Balogh
-
-     TinyGL/OpenGL wrapper include for MorphOS/PowerPC
-
-    Thanks to Michal 'kiero' Wozniak and Mark 'bigfoot' Olsen
-    for their help.
-
-    See the file COPYING.FPC, included in this distribution,
-    for details about the copyright.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- **********************************************************************}
-
-{ ****************************************************************************************************** }
-{ ** TinyGL syscalls                                                                                  ** }
-{ ****************************************************************************************************** }
-
-{$IFDEF GL_UNIT}
-procedure _GLEnable(gcl: pointer; cap: GLenum);
-syscall sysvbase TinyGLBase 28;
-
-procedure _GLDisable(gcl: pointer; cap: GLenum);
-syscall sysvbase TinyGLBase 34;
-
-procedure _GLShadeModel(gcl: pointer; mode: GLenum);
-syscall sysvbase TinyGLBase 46;
-
-procedure _GLCullFace(gcl: pointer; mode: GLenum);
-syscall sysvbase TinyGLBase 52;
-
-procedure _GLBegin(gcl: pointer; mode: GLenum);
-syscall sysvbase TinyGLBase 64;
-
-procedure _GLEnd(gcl: pointer);
-syscall sysvbase TinyGLBase 70;
-
-procedure _GLVertex3f(gcl: pointer; x, y, z: GLfloat);
-syscall sysvbase TinyGLBase 76;
-
-procedure _GlVertex3fv(gcl: pointer; const v: PGLfloat);
-syscall sysvbase TinyGLBase 88;
-
-procedure _GLColor3f(gcl: pointer; red, green, blue: GLfloat); 
-syscall sysvbase TinyGLBase 100;
-
-procedure _GLColor4f(gcl: pointer; red, green, blue, alpha: GLfloat); 
-syscall sysvbase TinyGLBase 106;
-
-procedure _GLNormal3f(gcl: pointer; nx, ny, nz: GLfloat);
-syscall sysvbase TinyGLBase 148;
-
-procedure _GLTexCoord2f(gcl: pointer; s, t: GLfloat); 
-syscall sysvbase TinyGLBase 160;
-
-procedure _GLMatrixMode(gcl: pointer; mode: GLenum);
-syscall sysvbase TinyGLBase 190;
-
-procedure _GLLoadIdentity(gcl: pointer);
-syscall sysvbase TinyGLBase 202;
-
-procedure _GLPushMatrix(gcl: pointer);
-syscall sysvbase TinyGLBase 214;
-
-procedure _GLPopMatrix(gcl: pointer);
-syscall sysvbase TinyGLBase 220;
-
-procedure _GLRotatef(gcl: pointer; angle, x, y, z: GLfloat); 
-syscall sysvbase TinyGLBase 226;
-
-procedure _GLTranslatef(gcl: pointer; x, y, z: GLfloat); 
-syscall sysvbase TinyGLBase 232;
-
-procedure _GLScalef(gcl: pointer; x, y, z: GLfloat); 
-syscall sysvbase TinyGLBase 238;
-
-procedure _GLViewPort(gcl: pointer; x, y: GLint; width, height: GLsizei);
-syscall sysvbase TinyGLBase 244;
-
-procedure _GLFrustum(gcl: pointer; left, right, bottom, top, zNear, zFar: GLdouble); 
-syscall sysvbase TinyGLBase 250;
-{$ENDIF GL_UNIT}
-
-{$IF DEFINED(GL_UNIT) OR DEFINED(GLU_UNIT)}
-procedure _GLOrtho(gcl: pointer; left, right, bottom, top, zNear, zFar: GLdouble);
-syscall sysvbase TinyGLBase 256;
-{$ENDIF}
-
-{$IFDEF GL_UNIT}
-function  _GLGenLists(gcl: pointer; range: GLsizei): GLuint;
-syscall sysvbase TinyGLBase 262;
-
-procedure _GLNewList(gcl: pointer; list: GLuint; mode: GLenum);
-syscall sysvbase TinyGLBase 274;
-
-procedure _GLEndList(gcl: pointer);
-syscall sysvbase TinyGLBase 280;
-
-procedure _GLCallList(gcl: pointer; list: GLuint);
-syscall sysvbase TinyGLBase 286;
-
-procedure _GLDeleteLists(gcl: pointer; list: GLuint; range: GLsizei);
-syscall sysvbase TinyGLBase 292;
-
-procedure _GLClear(gcl: pointer; mask: GLbitfield);
-syscall sysvbase TinyGLBase 298;
-
-procedure _GLClearColor(gcl: pointer; red, green, blue, alpha: GLclampf);
-syscall sysvbase TinyGLBase 304;
-
-procedure _GLClearDepth(gcl: pointer; depth: GLclampd);
-syscall sysvbase TinyGLBase 310;
-
-procedure _GLGenTextures(gcl: pointer; n: GLsizei; textures: PGLuint);
-syscall sysvbase TinyGLBase 352;
-
-procedure _GLDeleteTextures(gcl: pointer; n: GLsizei; const textures: PGLuint);
-syscall sysvbase TinyGLBase 358;
-
-procedure _GLBindTexture(gcl: pointer; target: GLenum; texture: GLuint);
-syscall sysvbase TinyGLBase 364;
-
-procedure _GLTexImage2D(gcl: pointer; target: GLenum; level, internalformat: GLint; width, height: GLsizei; border: GLint; format, atype: GLenum; const pixels: Pointer);
-syscall sysvbase TinyGLBase 370;
-
-procedure _GLTexParameteri(gcl: pointer; target: GLenum; pname: GLenum; param: GLint);
-syscall sysvbase TinyGLBase 394;
-
-procedure _GLTexParameterf(gcl: pointer; target: GLenum; pname: GLenum; param: GLfloat);
-syscall sysvbase TinyGLBase 400;
-
-procedure _GLTexGeni(gcl: pointer; coord: GLenum; pname: GLenum; param: GLint);
-syscall sysvbase TinyGLBase 418;
-
-procedure _GLMaterialfv(gcl: pointer; face, pname: GLenum; const params: PGLfloat);
-syscall sysvbase TinyGLBase 430;
-
-procedure _GLMaterialf(gcl: pointer; face, pname: GLenum; param: GLfloat);
-syscall sysvbase TinyGLBase 436;
-
-procedure _GLLightfv(gcl: pointer; light, pname: GLenum; const params: PGLfloat);
-syscall sysvbase TinyGLBase 448;
-
-procedure _GLLightf(gcl: pointer; light, pname: GLenum; param: GLfloat);
-syscall sysvbase TinyGLBase 454;
-
-procedure _GLLightModelfv(gcl: pointer; pname: GLenum; const params: PGLfloat);
-syscall sysvbase TinyGLBase 466;
-
-procedure _GLFlush(gcl: pointer);
-syscall sysvbase TinyGLBase 478;
-
-procedure _GLHint(gcl: pointer; target, mode: GLenum);
-syscall sysvbase TinyGLBase 484;
-
-procedure _GLGetFloatv(gcl: pointer; pname: GLenum; params: PGLfloat);
-syscall sysvbase TinyGLBase 496;
-
-procedure _GLEnableClientState(gcl: pointer; aarray: GLenum);
-syscall sysvbase TinyGLBase 508;
-
-procedure _GLDisableClientState(gcl: pointer; aarray: GLenum);
-syscall sysvbase TinyGLBase 514;
-
-procedure _GLVertexPointer(gcl: pointer; size: GLint; atype: GLenum; stride: GLsizei; const pointer: Pointer);
-syscall sysvbase TinyGLBase 526;
-
-procedure _GLColorPointer(gcl: pointer; size: GLint; atype: GLenum; stride: GLsizei; const pointer: Pointer);
-syscall sysvbase TinyGLBase 532;
-
-procedure _GLNormalPointer(gcl: pointer; atype: GLenum; stride: GLsizei; const pointer: Pointer);
-syscall sysvbase TinyGLBase 538;
-
-procedure _GLTexCoordPointer(gcl: pointer; size: GLint; atype: GLenum; stride: GLsizei; const pointer: Pointer);
-syscall sysvbase TinyGLBase 544;
-
-procedure _GLDrawElements(gcl: pointer; mode: GLenum; count: GLsizei; atype: GLenum; const indices: Pointer);
-syscall sysvbase TinyGLBase 562;
-
-procedure _GLBlendFunc(gcl: pointer; sfactor, dfactor: GLenum);
-syscall sysvbase TinyGLBase 586;
-
-procedure _GLDepthMask(gcl: pointer; flag: GLboolean);
-syscall sysvbase TinyGLBase 592;
-
-procedure _GLAlphaFunc(gcl: pointer; func: GLenum; ref: GLclampf);
-syscall sysvbase TinyGLBase 598;
-
-procedure _GLPointSize(gcl: pointer; size: GLfloat);
-syscall sysvbase TinyGLBase 604;
-
-procedure _GLDepthFunc(gcl: pointer; func: GLenum);
-syscall sysvbase TinyGLBase 628;
-
-function _GLInit: Pointer; 
-syscall sysvbase TinyGLBase 640;
-
-procedure _GLClose(gcl: pointer);
-syscall sysvbase TinyGLBase 646;
-{$ENDIF GL_UNIT}
-
-{$IFDEF GLU_UNIT}
-procedure _GLUPerspective(gcl: pointer; fovy, aspect, zNear, zFar: GLdouble);
-syscall sysvbase TinyGLBase 652;
-
-procedure _GLULookAt(gcl: pointer; eyex, eyey, eyez, centerx, centery, centerz, upx, upy, upz: GLdouble);
-syscall sysvbase TinyGLBase 658;
-{$ENDIF GLU_UNIT}
-
-{$IFDEF GLUT_UNIT}
-procedure _GLUTInit(gcl: pointer; argcp: PLongInt; argv: PPChar);
-syscall sysvbase TinyGLBase 664;
-
-procedure _GLUTInitWindowPosition(gcl: pointer; x, y: Integer);
-syscall sysvbase TinyGLBase 670;
-
-procedure _GLUTInitWindowSize(gcl: pointer; width, height: LongInt);
-syscall sysvbase TinyGLBase 676;
-
-function  _GLUTCreateWindow(gcl: pointer; const title: PChar): LongInt;
-syscall sysvbase TinyGLBase 682;
-
-procedure _GLUTFullScreen(gcl: pointer);
-syscall sysvbase TinyGLBase 688;
-
-procedure _GLUTDestroyWindow(gcl: pointer; win: LongInt);
-syscall sysvbase TinyGLBase 706;
-
-procedure _GLUTSwapBuffers(gcl: pointer);
-syscall sysvbase TinyGLBase 712;
-
-procedure _GLUTMainLoop(gcl: pointer);
-syscall sysvbase TinyGLBase 718;
-
-procedure _GLUTPostRedisplay(gcl: pointer);
-syscall sysvbase TinyGLBase 724;
-
-procedure _GLUTDisplayFunc(gcl: pointer; f: TGlutVoidCallback);
-syscall sysvbase TinyGLBase 730;
-
-procedure _GLUTReshapeFunc(gcl: pointer; f: TGlut2IntCallback);
-syscall sysvbase TinyGLBase 736;
-
-procedure _GLUTIdleFunc(gcl: pointer; f: TGlutVoidCallback);
-syscall sysvbase TinyGLBase 742; 
-
-procedure _GLUTKeyboardFunc(gcl: pointer; f: TGlut1Char2IntCallback);
-syscall sysvbase TinyGLBase 748;
-
-procedure _GLUTMouseFunc(gcl: pointer; f: TGlut4IntCallback);
-syscall sysvbase TinyGLBase 760;
-
-procedure _GLUTMotionFunc(gcl: pointer; f: TGlut2IntCallback);
-syscall sysvbase TinyGLBase 766;
-
-function _GLUTGet(gcl: pointer; t: GLenum): LongInt;
-syscall sysvbase TinyGLBase 802;
-
-procedure _GLUTInitDisplayMode(gcl: pointer; mode: Word);
-syscall sysvbase TinyGLBase 808;
-
-procedure _GLUTSpecialFunc(gcl: pointer; f: TGlut3IntCallback);
-syscall sysvbase TinyGLBase 814;
-
-procedure _GLUTTimerFunc(gcl: pointer; millis: Word; f: TGlut1IntCallback; value: LongInt);
-syscall sysvbase TinyGLBase 820;
-
-procedure _GLUTPassiveMotionFunc(gcl: pointer; f: TGlut2IntCallback);
-syscall sysvbase TinyGLBase 832;
-
-// MorphOS specific GLUT call, returns Intuition window handle
-function _GLUTGetWindowHandle(gcl: pointer): Pointer;
-syscall sysvbase TinyGLBase 856;
-{$ENDIF GLUT_UNIT}
-
-{$IFDEF GL_UNIT}
-function _GLGetString(gcl: pointer; name: GLenum): PChar;
-syscall sysvbase TinyGLBase 862;
-
-procedure _GLCallLists(gcl: pointer; n: GLsizei; atype: GLenum; const lists: Pointer);
-syscall sysvbase TinyGLBase 892;
-
-procedure _GLLineWidth(gcl: pointer; width: GLfloat);
-syscall sysvbase TinyGLBase 910;
-
-procedure _GLRasterPos3f(gcl: pointer; x, y, z: GLfloat);
-syscall sysvbase TinyGLBase 1108;
-{$ENDIF GL_UNIT}
-
-{$IFDEF GLUT_UNIT}
-procedure _GLUTVisibilityFunc(gcl: pointer; f: TGlut1IntCallback);
-syscall sysvbase TinyGLBase 1114;
-{$ENDIF GLUT_UNIT}
-
-{$IFDEF GL_UNIT}
-procedure _GLFogf(gcl: pointer; pname: GLenum; param: GLfloat);
-syscall sysvbase TinyGLBase 1120;
-
-procedure _GLFogfv(gcl: pointer; pname: GLenum; const params: PGLfloat); 
-syscall sysvbase TinyGLBase 1126;
-
-procedure _GLReadPixels(gcl: pointer; x, y: GLint; width, height: GLsizei; format, atype: GLenum; pixels: Pointer);
-syscall sysvbase TinyGLBase 1180;
-
-procedure _GLStencilFunc(gcl: pointer; func: GLenum; ref: GLint; mask: GLuint);
-syscall sysvbase TinyGLBase 1210;
-
-procedure _GLStencilOp(gcl: pointer; fail, zfail, zpass: GLenum);
-syscall sysvbase TinyGLBase 1216;
-
-procedure _GLColorMask(gcl: pointer; red, green, blue, alpha: GLboolean);
-syscall sysvbase TinyGLBase 1282;
-{$ENDIF GL_UNIT}
-
-
-{ ****************************************************************************************************** }
-{ ** GL functions                                                                                     ** }
-{ ****************************************************************************************************** }
-
-{$IFDEF GL_UNIT}
-procedure glAlphaFunc(func: GLenum; ref: GLclampf); inline;
-begin
-  _GLAlphaFunc(tglContext, func, ref);
-end;
-
-procedure glBegin(mode: GLenum); inline;
-begin
-  _GLBegin(tglContext, mode);
-end;
-
-procedure glCallList(list: GLuint); inline;
-begin
-  _GLCallList(tglContext, list);
-end;
-
-procedure glCallLists(n: GLsizei; atype: GLenum; const lists: Pointer); inline;
-begin
-  _GLCallLists(tglContext, n, atype, lists);
-end;
-
-procedure glClear(mask: GLbitfield); inline;
-begin
-  _GLClear(tglContext, mask);
-end;
-
-procedure glClearColor(red, green, blue, alpha: GLclampf); inline;
-begin
-  _GLClearColor(tglContext, red, green, blue, alpha);
-end;
-
-procedure glClearDepth(depth: GLclampd); inline;
-begin
-  _GLClearDepth(tglContext, depth);
-end;
-
-procedure glColorMask(red, green, blue, alpha: GLboolean); inline;
-begin
-  _GLColorMask(tglContext, red, green, blue, alpha);
-end;
-
-procedure glColorPointer(size: GLint; atype: GLenum; stride: GLsizei; const pointer: Pointer); inline;
-begin
-  _GLColorPointer(tglContext, size, atype, stride, pointer);
-end;
-
-procedure glCopyTexImage2D(target: GLenum; level: GLint; internalFormat: GLenum; x, y: GLint; width, height: GLsizei; border: GLint); inline;
-begin
-{$WARNING glCopyTexImage2D is dummy.}
-  // DUMMY, FIX ME!!! 
-  // TinyGL doesn't support this yet.
-end;
-
-procedure glCullFace(mode: GLenum); inline;
-begin
-  _GLCullFace(tglContext, mode);
-end;
-
-procedure glDeleteLists(list: GLuint; range: GLsizei); inline;
-begin
-  _GLDeleteLists(tglContext, list, range);
-end;
-
-procedure glEnd; inline;
-begin
-  _GLEnd(tglContext);
-end;
-
-procedure glEndList; inline;
-begin
-  _GLEndList(tglContext);
-end;
-
-procedure glFlush; inline;
-begin
-  _GLFlush(tglContext);
-end;
-
-function  glGenLists(range: GLsizei): GLuint; inline;
-begin
-  glGenLists:=_GLGenLists(tglContext, range);
-end;
-
-procedure glGetFloatv(pname: GLenum; params: PGLfloat); inline;
-begin
-  _GLGetFloatv(tglContext, pname, params);
-end;
-
-function glGetString(name: GLenum): PChar; inline;
-begin
-  glGetString:=_GLGetString(tglContext, name);
-end;
-
-procedure glHint(target, mode: GLenum); inline;
-begin
-  _GLHint(tglContext, target, mode);
-end;
-
-procedure glIndexi(c: GLint); inline;
-begin
-{$WARNING glIndexi is dummy.}
-  // DUMMY, FIX ME!!! 
-end;
-
-procedure glLightModelfv(pname: GLenum; const params: PGLfloat); inline;
-begin
-  _GLLightModelfv(tglContext, pname, params);
-end;
-
-procedure glNewList(list: GLuint; mode: GLenum); inline;
-begin
-  _GLNewList(tglContext, list, mode);
-end;
-
-procedure glVertex2f(x, y: GLfloat); inline;
-begin
-  _GLVertex3f(tglContext, x, y, 0);
-end;
-
-procedure glVertex2i(x, y: GLint); inline;
-begin
-  _GLVertex3f(tglContext, x, y, 0);
-end;
-
-procedure glVertex3f(x, y, z: GLfloat); inline;
-begin
-  _GLVertex3f(tglContext, x, y ,z);
-end; 
-
-procedure glVertex3fv(const v: PGLfloat); inline;
-begin
-  _GLVertex3fv(tglContext, v);
-end;
-
-procedure glLightf(light, pname: GLenum; param: GLfloat); inline;
-begin
-  _GLLightf(tglContext, light, pname, param);
-end;
-
-procedure glLightfv(light, pname: GLenum; const params: PGLfloat); inline;
-begin
-  _GLLightfv(tglContext, light, pname, params);
-end;
-
-procedure glLineWidth(width: GLfloat); inline;
-begin
-  _GLLineWidth(tglContext, width);
-end;
-
-procedure glLoadIdentity; inline;
-begin
-  _GLLoadIdentity(tglContext);
-end;
-
-procedure glMaterialf(face, pname: GLenum; param: GLfloat); inline;
-begin
-  _GLMaterialf(tglContext, face, pname, param);
-end;
-
-procedure glMaterialfv(face, pname: GLenum; const params: PGLfloat); inline;
-begin
-  _GLMaterialfv(tglContext, face, pname, params);
-end;
-
-procedure glMateriali(face, pname: GLenum; param: GLint); inline;
-begin
-  // WTF?! 
-  _GLMaterialf(tglContext, face, pname, param);
-end;
-
-procedure glMaterialiv(face, pname: GLenum; const params: PGLint); inline;
-begin
-  // WTF?!
-  _GLMaterialfv(tglContext, face, pname, PGLfloat(params));
-end;
-
-procedure glMatrixMode(mode: GLenum); inline;
-begin
-  _GLMatrixMode(tglContext, mode);
-end; 
-
-procedure glNormalPointer(atype: GLenum; stride: GLsizei; const pointer: Pointer); inline;
-begin
-  _GLNormalPointer(tglContext, atype, stride, pointer);
-end;
-
-procedure glPointSize(size: GLfloat); inline;
-begin
-  // 604! :)
-  _GLPointSize(tglContext, size);
-end;
-
-procedure glRasterPos3f(x, y, z: GLfloat); inline;
-begin
-  _GLRasterPos3f(tglContext, x, y, z);
-end;
-
-procedure glReadPixels(x, y: GLint; width, height: GLsizei; format, atype: GLenum; pixels: Pointer); inline;
-begin
-  _GLReadPixels(tglContext, x, y, width, height, format, atype, pixels);
-end;
-
-procedure glShadeModel(mode: GLenum); inline;
-begin
-  _GLShadeModel(tglContext, mode);
-end;
-
-procedure glStencilFunc(func: GLenum; ref: GLint; mask: GLuint); inline;
-begin
-  _GLStencilFunc(tglContext, func, ref, mask);
-end;
-
-procedure glStencilOp(fail, zfail, zpass: GLenum); inline;
-begin
-  _GLStencilOp(tglContext, fail, zfail, zpass);
-end;
-
-procedure glTexCoordPointer(size: GLint; atype: GLenum; stride: GLsizei; const pointer: Pointer); inline;
-begin
-  _GLTexCoordPointer(tglContext, size, atype, stride, pointer);
-end;
-
-procedure glTexParameterf(target: GLenum; pname: GLenum; param: GLfloat); inline;
-begin
-  _GLTexParameterf(tglContext, target, pname, param);
-end;
-
-procedure glFrustum(left, right, bottom, top, zNear, zFar: GLdouble); inline;
-begin
-  _GLFrustum(tglContext, left, right, bottom, top, zNear, zFar);
-end; 
-
-procedure glTranslatef(x, y, z: GLfloat); inline;
-begin
-  _GLTranslatef(tglContext, x, y, z);
-end; 
-
-procedure glScalef(x, y, z: GLfloat); inline;
-begin
-  _GLScalef(tglContext, x, y, z);
-end; 
-
-procedure glRotatef(angle, x, y, z: GLfloat); inline;
-begin
-  _GLRotatef(tglContext, angle, x, y, z);
-end; 
-
-procedure glColor3f(red, green, blue: GLfloat); inline;
-begin
-  _GLColor3f(tglContext, red, green, blue);
-end; 
-
-procedure glColor4f(red, green, blue, alpha: GLfloat); inline;
-begin
-  _GLColor4f(tglContext, red, green, blue, alpha);
-end; 
-
-procedure glNormal3f(nx, ny, nz: GLfloat); inline;
-begin
-  _GLNormal3f(tglContext, nx, ny, nz);
-end;
-
-procedure glDeleteTextures(n: GLsizei; const textures: PGLuint); inline;
-begin
-  _GLDeleteTextures(tglContext, n, textures);
-end;
-
-procedure glDisable(cap: GLenum); inline;
-begin
-  _GLDisable(tglContext, cap);
-end;
-
-procedure glDisableClientState(aarray: GLenum); inline;
-begin
-  _GLDisableClientState(tglContext, aarray);
-end;
-
-procedure glDrawElements(mode: GLenum; count: GLsizei; atype: GLenum; const indices: Pointer); inline;
-begin
-  _GLDrawElements(tglContext, mode, count, atype, indices);
-end;
-
-procedure glEnable(cap: GLenum); inline;
-begin
-  _GLEnable(tglContext, cap);
-end;
-
-procedure glEnableClientState(aarray: GLenum); inline;
-begin
-  _GLEnableClientState(tglContext, aarray);
-end;
-
-procedure glFogf(pname: GLenum; param: GLfloat); inline;
-begin
-  _GLFogf(tglContext, pname, param);
-end;
-
-procedure glFogfv(pname: GLenum; const params: PGLfloat); inline;
-begin
-  _GLFogfv(tglContext, pname, params);
-end;
-
-procedure glFogi(pname: GLenum; param: GLint); inline;
-begin
-  // WTF!? And it actually works!
-  _GLFogf(tglContext, pname, param);
-end;
-
-procedure glOrtho(left, right, bottom, top, zNear, zFar: GLdouble); inline;
-begin
-  _GLOrtho(tglContext, left, right, bottom, top, zNear, zFar);
-end;
-
-procedure glPopMatrix; inline;
-begin
-  _GLPopMatrix(tglContext);
-end;
-
-procedure glPushMatrix; inline;
-begin
-  _GLPushMatrix(tglContext);
-end;
-
-procedure glTexImage2D(target: GLenum; level, internalformat: GLint; width, height: GLsizei; border: GLint; format, atype: GLenum; const pixels: Pointer); inline;
-begin
-  _GLTexImage2D(tglContext, target, level, internalformat, width, height, border, format, atype, pixels);
-end;
-
-procedure glTexParameteri(target: GLenum; pname: GLenum; param: GLint); inline;
-begin
-  _GLTexParameteri(tglContext, target, pname, param);
-end;
-
-procedure glTexCoord2f(s, t: GLfloat); inline;
-begin
-  _GLTexCoord2f(tglContext, s, t);
-end;
-
-procedure glTexGeni(coord: GLenum; pname: GLenum; param: GLint); inline;
-begin
-  _GLTexGeni(tglContext, coord, pname, param);
-end;
-
-procedure glBindTexture(target: GLenum; texture: GLuint); inline;
-begin
-  _GLBindTexture(tglContext, target, texture);
-end;
-
-procedure glGenTextures(n: GLsizei; textures: PGLuint); inline;
-begin
-  _GLGenTextures(tglContext, n, textures);
-end;
-
-procedure glBlendFunc(sfactor, dfactor: GLenum); inline;
-begin
-  _GLBlendFunc(tglContext, sfactor, dfactor);
-end;
-
-procedure glDepthFunc(func: GLenum); inline;
-begin
-  _GLDepthFunc(tglContext, func);
-end;
-
-procedure glDepthMask(flag: GLboolean); inline;
-begin
-  _GLDepthMask(tglContext, flag);
-end;
-
-procedure glVertexPointer(size: GLint; atype: GLenum; stride: GLsizei; const pointer: Pointer); inline;
-begin
-  _GLVertexPointer(tglContext, size, atype, stride, pointer);
-end;
-
-procedure glViewport(x, y: GLint; width, height: GLsizei); inline;
-begin
-  _GLViewport(tglContext, x, x, width, height);
-end;
-{$ENDIF GL_UNIT}
-
-
-{ ****************************************************************************************************** }
-{ ** GLU functions                                                                                    ** }
-{ ****************************************************************************************************** }
-
-{$IFDEF GLU_UNIT}
-procedure gluLookAt(eyex, eyey, eyez, centerx, centery, centerz, upx, upy, upz: GLdouble); inline;
-begin
-  _GLULookAt(tglContext, eyex, eyey, eyez, centerx, centery, centerz, upx, upy, upz);
-end;
-
-procedure gluOrtho2D(left,right, bottom, top: GLdouble); inline;
-begin
-  _GLOrtho(tglContext, left, right, bottom, top, -1.0, 1.0)
-end;
-
-procedure gluPerspective(fovy, aspect, zNear, zFar: GLdouble); inline;
-begin
-  _GLUPerspective(tglContext, fovy, aspect, zNear, zFar);
-end;
-{$ENDIF GLU_UNIT}
-
-
-{ ****************************************************************************************************** }
-{ ** GLUT functions                                                                                   ** }
-{ ****************************************************************************************************** }
-
-{$IFDEF GLUT_UNIT}
-procedure GLUTInit(argcp: PLongInt; argv: PPChar); inline;
-begin
-  _GLUTInit(tglContext,argcp,argv);
-end;
-
-procedure GLUTInitDisplayMode(mode: Word); inline;
-begin
-  _GLUTInitDisplayMode(tglContext,mode);
-end;
-
-procedure GLUTInitWindowPosition(x, y: Integer); inline;
-begin
- _GLUTInitWindowPosition(tglContext, x, y);
-end;
-
-procedure GLUTInitWindowSize(width, height: LongInt); inline;
-begin
-  _GLUTInitWindowSize(tglContext, width, height);
-end;
-
-procedure GLUTSwapBuffers; inline;
-begin
-  _GLUTSwapBuffers(tglContext);
-end;
-
-procedure GLUTPostRedisplay; inline;
-begin
-  _GLUTPostRedisplay(tglContext);
-end;
-
-procedure GLUTReshapeFunc(f: TGlut2IntCallback); inline;
-begin
-  _GLUTReshapeFunc(tglContext, f);
-end;
-
-function GLUTCreateWindow(const title: PChar): LongInt; inline;
-begin
-  GLUTCreateWindow:=_GLUTCreateWindow(tglContext, title);
-end;
-
-procedure GLUTDestroyWindow(win: LongInt); inline;
-begin
-  _GLUTDestroyWindow(tglContext, win);
-end;
-
-procedure GLUTDisplayFunc(f: TGlutVoidCallback); inline;
-begin
-  _GLUTDisplayFunc(tglContext, f);
-end;
-
-procedure GLUTIdleFunc(f: TGlutVoidCallback); inline;
-begin
-  _GLUTIdleFunc(tglContext, f);
-end;
-
-procedure GLUTTimerFunc(millis: Word; f: TGlut1IntCallback; value: LongInt); inline;
-begin
-  _GLUTTimerFunc(tglContext, millis, f, value);
-end;
-
-procedure GLUTKeyboardFunc(f: TGlut1Char2IntCallback); inline;
-begin
-  _GLUTKeyboardFunc(tglContext, f);
-end;
-
-procedure GLUTMouseFunc(f: TGlut4IntCallback); inline;
-begin
-  _GLUTMouseFunc(tglContext, f);
-end;
-
-procedure GLUTSpecialFunc(f: TGlut3IntCallback); inline;
-begin
-  _GLUTSpecialFunc(tglContext, f);
-end;
-
-procedure GLUTMotionFunc(f: TGlut2IntCallback); inline;
-begin
-  _GLUTMotionFunc(tglContext, f);
-end;
-
-procedure GLUTPassiveMotionFunc(f: TGlut2IntCallback); inline;
-begin
-  _GLUTPassiveMotionFunc(tglContext, f);
-end;
-
-function GLUTGetWindowHandle: pointer; inline;
-begin
-  GLUTGetWindowHandle:=_GLUTGetWindowHandle(tglContext);
-end;
-
-procedure GLUTVisibilityFunc(f: TGlut1IntCallback); inline;
-begin
-  _GLUTVisibilityFunc(tglContext, f);
-end;
-
-function  GLUTGet(t: GLenum): LongInt; inline;
-begin
-  GLUTGet:=_GLUTGet(tglContext,t);
-end;
-
-procedure GLUTMainLoop; inline;
-begin
-  _GLUTMainLoop(tglContext);
-end;
-
-procedure GLUTFullScreen; inline;
-begin
-  _GLUTFullScreen(tglContext);
-end;
-
-procedure GLUTSetColor(cell: Integer; red, green, blue: GLfloat); inline;
-begin
-{$WARNING GLUTSetColor is dummy.}
-  // DUMMY, FIX ME!!! 
-end;
-{$ENDIF GLUT_UNIT}

+ 0 - 165
packages/extra/opengl/tinyglh.inc

@@ -1,165 +0,0 @@
-{
-    This file is part of the Free Pascal run time library.
-    Copyright (c) 2005 by Karoly Balogh
-
-     TinyGL/OpenGL wrapper include header for MorphOS/PowerPC
-
-    Thanks to Michal 'kiero' Wozniak and Mark 'bigfoot' Olsen
-    for their help.
-
-    See the file COPYING.FPC, included in this distribution,
-    for details about the copyright.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
- **********************************************************************}
-
-{ ****************************************************************************************************** }
-{ ** GL functions                                                                                     ** }
-{ ****************************************************************************************************** }
-
-{$IFDEF GL_UNIT}
-procedure glAlphaFunc(func: GLenum; ref: GLclampf); inline;
-
-procedure glBegin(mode: GLenum); inline;
-
-procedure glCallList(list: GLuint); inline;
-procedure glCallLists(n: GLsizei; atype: GLenum; const lists: Pointer); inline;
-procedure glClear(mask: GLbitfield); inline;
-procedure glClearColor(red, green, blue, alpha: GLclampf); inline;
-procedure glClearDepth(depth: GLclampd); inline;
-procedure glColor3f(red, green, blue: GLfloat); inline;
-procedure glColor4f(red, green, blue, alpha: GLfloat); inline;
-procedure glColorMask(red, green, blue, alpha: GLboolean); inline;
-procedure glColorPointer(size: GLint; atype: GLenum; stride: GLsizei; const pointer: Pointer); inline;
-procedure glCopyTexImage2D(target: GLenum; level: GLint; internalFormat: GLenum; x, y: GLint; width, height: GLsizei; border: GLint); inline;
-procedure glCullFace(mode: GLenum); inline;
-
-procedure glDeleteLists(list: GLuint; range: GLsizei); inline;
-procedure glDeleteTextures(n: GLsizei; const textures: PGLuint); inline;
-procedure glDepthFunc(func: GLenum); inline;
-procedure glDepthMask(flag: GLboolean); inline;
-procedure glDisable(cap: GLenum); inline;
-procedure glDisableClientState(aarray: GLenum); inline;
-procedure glDrawElements(mode: GLenum; count: GLsizei; atype: GLenum; const indices: Pointer); inline;
-
-procedure glEnable(cap: GLenum); inline;
-procedure glEnableClientState(aarray: GLenum); inline;
-procedure glEnd; inline;
-procedure glEndList; inline;
-
-procedure glFlush; inline;
-procedure glFogf(pname: GLenum; param: GLfloat); inline;
-procedure glFogfv(pname: GLenum; const params: PGLfloat); inline;
-procedure glFogi(pname: GLenum; param: GLint); inline;
-
-function  glGenLists(range: GLsizei): GLuint; inline;
-procedure glGetFloatv(pname: GLenum; params: PGLfloat); inline;
-function  glGetString(name: GLenum): PChar; inline;
-
-procedure glHint(target, mode: GLenum); inline;
-
-procedure glIndexi(c: GLint); inline;
-
-procedure glLightf(light, pname: GLenum; param: GLfloat); inline;
-procedure glLightfv(light, pname: GLenum; const params: PGLfloat); inline;
-procedure glLineWidth(width: GLfloat); inline;
-procedure glLoadIdentity; inline;
-procedure glLightModelfv(pname: GLenum; const params: PGLfloat); inline;
-
-procedure glMaterialf(face, pname: GLenum; param: GLfloat); inline;
-procedure glMaterialfv(face, pname: GLenum; const params: PGLfloat); inline;
-procedure glMateriali(face, pname: GLenum; param: GLint); inline;
-procedure glMaterialiv(face, pname: GLenum; const params: PGLint); inline;
-procedure glMatrixMode(mode: GLenum); inline;
-
-procedure glNewList(list: GLuint; mode: GLenum); inline;
-procedure glNormal3f(nx, ny, nz: GLfloat); inline;
-procedure glNormalPointer(atype: GLenum; stride: GLsizei; const pointer: Pointer); inline;
-
-procedure glVertex2f(x, y: GLfloat); inline;
-procedure glVertex2i(x, y: GLint); inline;
-procedure glVertex3f(x, y, z: GLfloat); inline;
-procedure glVertex3fv(const v: PGLfloat); inline;
-
-procedure glPointSize(size: GLfloat); inline;
-procedure glRasterPos3f(x, y, z: GLfloat); inline;
-procedure glReadPixels(x, y: GLint; width, height: GLsizei; format, atype: GLenum; pixels: Pointer); inline;
-
-procedure glShadeModel(mode: GLenum); inline;
-
-procedure glStencilFunc(func: GLenum; ref: GLint; mask: GLuint); inline;
-procedure glStencilOp(fail, zfail, zpass: GLenum); inline;
-
-procedure glTexCoordPointer(size: GLint; atype: GLenum; stride: GLsizei; const pointer: Pointer); inline;
-procedure glTexParameterf(target: GLenum; pname: GLenum; param: GLfloat); inline;
-
-procedure glFrustum(left, right, bottom, top, zNear, zFar: GLdouble); inline;
-procedure glTranslatef(x, y, z: GLfloat); inline;
-procedure glScalef(x, y, z: GLfloat); inline;
-procedure glRotatef(angle, x, y, z: GLfloat); inline;
-
-procedure glOrtho(left, right, bottom, top, zNear, zFar: GLdouble); inline;
-procedure glPopMatrix; inline;
-procedure glPushMatrix; inline;
-
-procedure glTexImage2D(target: GLenum; level, internalformat: GLint; width, height: GLsizei; border: GLint; format, atype: GLenum; const pixels: Pointer); inline;
-procedure glTexParameteri(target: GLenum; pname: GLenum; param: GLint); inline;
-procedure glTexCoord2f(s, t: GLfloat); inline;
-procedure glTexGeni(coord: GLenum; pname: GLenum; param: GLint); inline;
-procedure glBindTexture(target: GLenum; texture: GLuint); inline;
-procedure glGenTextures(n: GLsizei; textures: PGLuint); inline;
-
-procedure glBlendFunc(sfactor, dfactor: GLenum); inline;
-
-procedure glVertexPointer(size: GLint; atype: GLenum; stride: GLsizei; const pointer: Pointer); inline;
-
-procedure glViewport(x, y: GLint; width, height: GLsizei); inline;
-{$ENDIF GL_UNIT}
-
-{ ****************************************************************************************************** }
-{ ** GLU functions                                                                                    ** }
-{ ****************************************************************************************************** }
-
-{$IFDEF GLU_UNIT}
-procedure gluLookAt(eyex, eyey, eyez, centerx, centery, centerz, upx, upy, upz: GLdouble); inline;
-procedure gluOrtho2D(left,right, bottom, top: GLdouble); inline;
-procedure gluPerspective(fovy, aspect, zNear, zFar: GLdouble); inline;
-{$ENDIF GLU_UNIT}
-
-{ ****************************************************************************************************** }
-{ ** GLUT functions                                                                                   ** }
-{ ****************************************************************************************************** }
-
-{$IFDEF GLUT_UNIT}
-procedure GLUTInit(argcp: PLongInt; argv: PPChar); inline;
-procedure GLUTInitDisplayMode(mode: Word); inline;
-procedure GLUTInitWindowPosition(x, y: Integer); inline;
-procedure GLUTInitWindowSize(width, height: LongInt); inline;
-
-function  GLUTCreateWindow(const title: PChar): LongInt; inline;
-procedure GLUTDestroyWindow(win: LongInt); inline;
-procedure GLUTDisplayFunc(f: TGlutVoidCallback); inline;
-procedure GLUTIdleFunc(f: TGlutVoidCallback); inline;
-procedure GLUTTimerFunc(millis: Word; f: TGlut1IntCallback; value: LongInt); inline;
-function  GLUTGetWindowHandle: pointer; inline; // MorphOS specific
-procedure GLUTVisibilityFunc(f: TGlut1IntCallback); inline;
-procedure GLUTKeyboardFunc(f: TGlut1Char2IntCallback); inline;
-procedure GLUTMouseFunc(f: TGlut4IntCallback); inline;
-procedure GLUTSpecialFunc(f: TGlut3IntCallback); inline;
-procedure GLUTReshapeFunc(f: TGlut2IntCallback); inline;
-procedure GLUTMotionFunc(f: TGlut2IntCallback); inline;
-procedure GLUTPassiveMotionFunc(f: TGlut2IntCallback); inline;
-
-procedure GLUTSwapBuffers; inline;
-procedure GLUTPostRedisplay; inline;
-
-function  GLUTGet(t: GLenum): LongInt; inline;
-  
-procedure GLUTMainLoop; inline;
-
-procedure GLUTFullScreen; inline;
-procedure GLUTSetColor(cell: Integer; red, green, blue: GLfloat); inline;
-{$ENDIF GLUT_UNIT}