pax_global_header 0000666 0000000 0000000 00000000064 14156730761 0014524 g ustar 00root root 0000000 0000000 52 comment=3a22665d2660ff6f1012db3d5d06f3ac867cb059
3p-libepoxy-master/ 0000775 0000000 0000000 00000000000 14156730761 0014534 5 ustar 00root root 0000000 0000000 3p-libepoxy-master/.gitignore 0000664 0000000 0000000 00000000046 14156730761 0016524 0 ustar 00root root 0000000 0000000 stage/
autobuild-parabuild-bootstrap/
3p-libepoxy-master/.gitlab-ci.yml 0000664 0000000 0000000 00000000133 14156730761 0017165 0 ustar 00root root 0000000 0000000 include:
- project: 'alchemy/infrastructure/gitlab-ci-config'
file: '3p-library.yml'
3p-libepoxy-master/README 0000664 0000000 0000000 00000000000 14156730761 0015402 0 ustar 00root root 0000000 0000000 3p-libepoxy-master/autobuild.xml 0000664 0000000 0000000 00000007106 14156730761 0017252 0 ustar 00root root 0000000 0000000
3p-libepoxy-master/build-cmd.sh 0000775 0000000 0000000 00000014727 14156730761 0016746 0 ustar 00root root 0000000 0000000 #!/usr/bin/env bash
cd "$(dirname "$0")"
# turn on verbose debugging output for parabuild logs.
exec 4>&1; export BASH_XTRACEFD=4; set -x
# make errors fatal
set -e
# complain about unset env variables
set -u
if [ -z "$AUTOBUILD" ] ; then
exit 1
fi
if [ "$OSTYPE" = "cygwin" ] ; then
autobuild="$(cygpath -u $AUTOBUILD)"
else
autobuild="$AUTOBUILD"
fi
top="$(pwd)"
stage="$(pwd)/stage"
mkdir -p $stage
# Load autobuild provided shell functions and variables
source_environment_tempfile="$stage/source_environment.sh"
"$autobuild" source_environment > "$source_environment_tempfile"
. "$source_environment_tempfile"
EPOXY_VERSION="1.5.7"
EPOXY_SOURCE_DIR="$top/libepoxy"
VERSION_HEADER_FILE="$EPOXY_SOURCE_DIR/_build_release/src/config.h"
# Create the staging folders
mkdir -p "$stage/lib"/{debug,release,relwithdebinfo}
mkdir -p "$stage/include/epoxy"
mkdir -p "$stage/LICENSES"
pushd "$EPOXY_SOURCE_DIR"
case "$AUTOBUILD_PLATFORM" in
# ------------------------ windows, windows64 ------------------------
windows*)
load_vsvars
meson "_build_debug" --prefix="$(cygpath -w ${stage})" --libdir="$(cygpath -w ${stage})/lib/debug" --bindir="$(cygpath -w ${stage})/lib/debug" \
--buildtype debug -Dtests=false
pushd "_build_debug"
ninja
ninja install
popd
meson "_build_release" --prefix="$(cygpath -w ${stage})" --libdir="$(cygpath -w ${stage})/lib/release" --bindir="$(cygpath -w ${stage})/lib/release" \
--buildtype debugoptimized -Dtests=false
pushd "_build_release"
ninja
ninja install
popd
;;
darwin*)
# Setup osx sdk platform
SDKNAME="macosx"
export SDKROOT=$(xcodebuild -version -sdk ${SDKNAME} Path)
export MACOSX_DEPLOYMENT_TARGET=10.15
# Setup build flags
ARCH_FLAGS="-arch x86_64"
SDK_FLAGS="-mmacosx-version-min=${MACOSX_DEPLOYMENT_TARGET} -isysroot ${SDKROOT}"
DEBUG_COMMON_FLAGS="$ARCH_FLAGS $SDK_FLAGS -Og -g -msse4.2 -fPIC -DPIC"
RELEASE_COMMON_FLAGS="$ARCH_FLAGS $SDK_FLAGS -O3 -g -msse4.2 -fPIC -DPIC -fstack-protector-strong"
DEBUG_CFLAGS="$DEBUG_COMMON_FLAGS"
RELEASE_CFLAGS="$RELEASE_COMMON_FLAGS"
DEBUG_CXXFLAGS="$DEBUG_COMMON_FLAGS -std=c++17"
RELEASE_CXXFLAGS="$RELEASE_COMMON_FLAGS -std=c++17"
DEBUG_CPPFLAGS="-DPIC"
RELEASE_CPPFLAGS="-DPIC"
DEBUG_LDFLAGS="$ARCH_FLAGS $SDK_FLAGS -Wl,-headerpad_max_install_names"
RELEASE_LDFLAGS="$ARCH_FLAGS $SDK_FLAGS -Wl,-headerpad_max_install_names"
CFLAGS="$DEBUG_CFLAGS" \
CXXFLAGS="$DEBUG_CXXFLAGS" \
CPPFLAGS="$DEBUG_CPPFLAGS" \
LDFLAGS="$DEBUG_LDFLAGS" \
meson "_build_debug" --prefix="${stage}" --libdir="${stage}/lib/debug" --bindir="${stage}/lib/debug" \
-Doptimization=g -Ddebug=true -Dtests=false
pushd "_build_debug"
ninja
ninja install
popd
CFLAGS="$RELEASE_CFLAGS" \
CXXFLAGS="$RELEASE_CXXFLAGS" \
CPPFLAGS="$RELEASE_CPPFLAGS" \
LDFLAGS="$RELEASE_LDFLAGS" \
meson "_build_release" --prefix="${stage}" --libdir="${stage}/lib/release" --bindir="${stage}/lib/release" \
-Doptimization=3 -Ddebug=true -Db_ndebug=true -Dtests=false
pushd "_build_release"
ninja
ninja install
popd
pushd "${stage}/lib/debug"
fix_dylib_id "libepoxy.dylib"
dsymutil libepoxy.0.dylib
strip -x -S libepoxy.0.dylib
popd
pushd "${stage}/lib/release"
fix_dylib_id "libepoxy.dylib"
dsymutil libepoxy.0.dylib
strip -x -S libepoxy.0.dylib
popd
;;
linux*)
unset DISTCC_HOSTS CC CXX CFLAGS CPPFLAGS CXXFLAGS
# Default target per autobuild build --address-size
opts="${TARGET_OPTS:--m$AUTOBUILD_ADDRSIZE}"
DEBUG_COMMON_FLAGS="$opts -Og -g -fPIC -DPIC"
RELEASE_COMMON_FLAGS="$opts -O3 -g -fPIC -DPIC -fstack-protector-strong -D_FORTIFY_SOURCE=2"
DEBUG_CFLAGS="$DEBUG_COMMON_FLAGS"
RELEASE_CFLAGS="$RELEASE_COMMON_FLAGS"
DEBUG_CXXFLAGS="$DEBUG_COMMON_FLAGS -std=c++17"
RELEASE_CXXFLAGS="$RELEASE_COMMON_FLAGS -std=c++17"
DEBUG_CPPFLAGS="-DPIC"
RELEASE_CPPFLAGS="-DPIC"
DEBUG_LDFLAGS="$opts"
RELEASE_LDFLAGS="$opts"
# Handle any deliberate platform targeting
if [ -z "${TARGET_CPPFLAGS:-}" ]; then
# Remove sysroot contamination from build environment
unset CPPFLAGS
else
# Incorporate special pre-processing flags
export CPPFLAGS="$TARGET_CPPFLAGS"
fi
CFLAGS="$DEBUG_CFLAGS" \
CXXFLAGS="$DEBUG_CXXFLAGS" \
CPPFLAGS="${CPPFLAGS:-} ${DEBUG_CPPFLAGS}" \
LDFLAGS="$DEBUG_LDFLAGS" \
meson "_build_debug" --prefix="${stage}" --libdir="${stage}/lib/debug" --bindir="${stage}/lib/debug" \
-Doptimization=g -Ddebug=true -Dtests=false
pushd "_build_debug"
ninja
ninja install
popd
CFLAGS="$RELEASE_CFLAGS" \
CXXFLAGS="$RELEASE_CXXFLAGS" \
CPPFLAGS="${CPPFLAGS:-} ${RELEASE_CPPFLAGS}" \
LDFLAGS="$RELEASE_LDFLAGS" \
meson "_build_release" --prefix="${stage}" --libdir="${stage}/lib/release" --bindir="${stage}/lib/release" \
-Doptimization=3 -Ddebug=true -Db_ndebug=true -Dtests=false
pushd "_build_release"
ninja
ninja install
popd
;;
esac
mkdir -p "$stage/LICENSES"
cp COPYING "$stage/LICENSES/libepoxy.txt"
popd
# version will be (e.g.) "1.4.0"
version=`sed -n -E 's/#define PACKAGE_VERSION "([0-9])[.]([0-9])[.]([0-9]).*/\1.\2.\3/p' "${VERSION_HEADER_FILE}"`
# shortver will be (e.g.) "230": eliminate all '.' chars
#since the libs do not use micro in their filenames, chop off shortver at minor
short="$(echo $version | cut -d"." -f1-2)"
shortver="${short//.}"
echo "${version}" > "${stage}/VERSION.txt"
3p-libepoxy-master/libepoxy/ 0000775 0000000 0000000 00000000000 14156730761 0016367 5 ustar 00root root 0000000 0000000 3p-libepoxy-master/libepoxy/.dir-locals.el 0000664 0000000 0000000 00000000121 14156730761 0021012 0 ustar 00root root 0000000 0000000 ((nil
(indent-tabs-mode . nil)
(tab-width . 8)
(c-basic-offset . 4)
)
)
3p-libepoxy-master/libepoxy/.editorconfig 0000664 0000000 0000000 00000000457 14156730761 0021052 0 ustar 00root root 0000000 0000000 root = true
[*]
charset = utf-8
[*.{c,h}]
indent_style = space
indent_size = 4
end_of_line = lf
trim_trailing_whitespace = true
insert_final_newline = true
[.travis.yml]
indent_style = space
indent_size = 2
[*.md]
trim_trailing_whitespace = false
[meson.build]
indent_style = space
indent_size = 8
3p-libepoxy-master/libepoxy/COPYING 0000664 0000000 0000000 00000004641 14156730761 0017427 0 ustar 00root root 0000000 0000000 The libepoxy project code is covered by the MIT license:
/*
* Copyright © 2013-2014 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
The generated code is derived from Khronos's xml files, which appear
under the following license:
/*
* Copyright (c) 2013 The Khronos Group Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and/or associated documentation files (the
* "Materials"), to deal in the Materials without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Materials, and to
* permit persons to whom the Materials are furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Materials.
*
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
*/
3p-libepoxy-master/libepoxy/README.md 0000664 0000000 0000000 00000010223 14156730761 0017644 0 ustar 00root root 0000000 0000000 ![Ubuntu](https://github.com/anholt/libepoxy/workflows/Ubuntu/badge.svg)
![macOS](https://github.com/anholt/libepoxy/workflows/macOS/badge.svg)
![MSVC Build](https://github.com/anholt/libepoxy/workflows/MSVC%20Build/badge.svg)
![MSYS2 Build](https://github.com/anholt/libepoxy/workflows/MSYS2%20Build/badge.svg)
[![License: MIT](https://img.shields.io/badge/license-MIT-brightgreen.svg)](https://opensource.org/licenses/MIT)
Epoxy is a library for handling OpenGL function pointer management for
you.
It hides the complexity of `dlopen()`, `dlsym()`, `glXGetProcAddress()`,
`eglGetProcAddress()`, etc. from the app developer, with very little
knowledge needed on their part. They get to read GL specs and write
code using undecorated function names like `glCompileShader()`.
Don't forget to check for your extensions or versions being present
before you use them, just like before! We'll tell you what you forgot
to check for instead of just segfaulting, though.
Features
--------
* Automatically initializes as new GL functions are used.
* GL 4.6 core and compatibility context support.
* GLES 1/2/3 context support.
* Knows about function aliases so (e.g.) `glBufferData()` can be
used with `GL_ARB_vertex_buffer_object` implementations, along
with GL 1.5+ implementations.
* EGL, GLX, and WGL support.
* Can be mixed with non-epoxy GL usage.
Building
--------
```sh
mkdir _build && cd _build
meson
ninja
sudo ninja install
```
Dependencies for Debian:
* meson
* libegl1-mesa-dev
Dependencies for macOS (using MacPorts):
* pkgconfig
* meson
The test suite has additional dependencies depending on the platform.
(X11, EGL, a running X Server).
Switching your code to using epoxy
----------------------------------
It should be as easy as replacing:
```cpp
#include
#include
#include
```
with:
```cpp
#include
#include
```
As long as epoxy's headers appear first, you should be ready to go.
Additionally, some new helpers become available, so you don't have to
write them:
`int epoxy_gl_version()` returns the GL version:
* 12 for GL 1.2
* 20 for GL 2.0
* 44 for GL 4.4
`bool epoxy_has_gl_extension()` returns whether a GL extension is
available (`GL_ARB_texture_buffer_object`, for example).
Note that this is not terribly fast, so keep it out of your hot paths,
ok?
Why not use libGLEW?
--------------------
GLEW has several issues:
* Doesn't know about aliases of functions (There are 5 providers of
`glPointParameterfv()`, for example, and you don't want to have to
choose which one to call when they're all the same).
* Doesn't support OpenGL ES.
* Has a hard-to-maintain parser of extension specification text
instead of using the old .spec file or the new .xml.
* Has significant startup time overhead when `glewInit()`
autodetects the world.
* User-visible multithreading support choice for win32.
The motivation for this project came out of previous use of libGLEW in
[piglit](http://piglit.freedesktop.org/). Other GL dispatch code
generation projects had similar failures. Ideally, piglit wants to be
able to build a single binary for a test that can run on whatever
context or window system it chooses, not based on link time choices.
We had to solve some of GLEW's problems for piglit and solving them
meant replacing every single piece of GLEW, so we built
piglit-dispatch from scratch. And since we wanted to reuse it in
other GL-related projects, this is the result.
Known issues when running on Windows
------------------------------------
The automatic per-context symbol resolution for win32 requires that
epoxy knows when `wglMakeCurrent()` is called, because `wglGetProcAddress()`
returns values depend on the context's device and pixel format. If
`wglMakeCurrent()` is called from outside of epoxy (in a way that might
change the device or pixel format), then epoxy needs to be notified of
the change using the `epoxy_handle_external_wglMakeCurrent()` function.
The win32 `wglMakeCurrent()` variants are slower than they should be,
because they should be caching the resolved dispatch tables instead of
resetting an entire thread-local dispatch table every time.
3p-libepoxy-master/libepoxy/cross/ 0000775 0000000 0000000 00000000000 14156730761 0017520 5 ustar 00root root 0000000 0000000 3p-libepoxy-master/libepoxy/cross/fedora-mingw64.txt 0000664 0000000 0000000 00000001137 14156730761 0023014 0 ustar 00root root 0000000 0000000 [binaries]
c = '/usr/bin/x86_64-w64-mingw32-gcc'
cpp = '/usr/bin/x86_64-w64-mingw32-cpp'
ar = '/usr/bin/x86_64-w64-mingw32-ar'
strip = '/usr/bin/x86_64-w64-mingw32-strip'
pkgconfig = '/usr/bin/x86_64-w64-mingw32-pkg-config'
exe_wrapper = 'wine'
[properties]
root = '/usr/x86_64-w64-mingw32/sys-root/mingw'
c_args = [ '-pipe', '-Wp,-D_FORTIFY_SOURCE=2', '-fexceptions', '--param=ssp-buffer-size=4', '-I/usr/x86_64-w64-mingw32/sys-root/mingw/include' ]
c_link_args = [ '-L/usr/x86_64-w64-mingw32/sys-root/mingw/lib' ]
[host_machine]
system = 'windows'
cpu_family = 'x86_64'
cpu = 'x86_64'
endian = 'little'
3p-libepoxy-master/libepoxy/doc/ 0000775 0000000 0000000 00000000000 14156730761 0017134 5 ustar 00root root 0000000 0000000 3p-libepoxy-master/libepoxy/doc/Doxyfile.in 0000664 0000000 0000000 00000015542 14156730761 0021256 0 ustar 00root root 0000000 0000000 DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = @PACKAGE_NAME@
PROJECT_NUMBER = @PACKAGE_VERSION@
PROJECT_BRIEF =
PROJECT_LOGO =
OUTPUT_DIRECTORY = doc
CREATE_SUBDIRS = NO
ALLOW_UNICODE_NAMES = YES
OUTPUT_LANGUAGE = English
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES
ABBREVIATE_BRIEF =
ALWAYS_DETAILED_SEC = NO
INLINE_INHERITED_MEMB = NO
FULL_PATH_NAMES = YES
STRIP_FROM_PATH = "@top_srcdir@/include" "@top_builddir@/include"
SHORT_NAMES = NO
JAVADOC_AUTOBRIEF = YES
QT_AUTOBRIEF = NO
MULTILINE_CPP_IS_BRIEF = NO
INHERIT_DOCS = YES
SEPARATE_MEMBER_PAGES = NO
TAB_SIZE = 8
ALIASES = "newin{2}=\xrefitem since_\1_\2 \"Since @PACKAGE_NAME@ \1.\2\" \"New API in @PACKAGE_NAME@ \1.\2\""
TCL_SUBST =
OPTIMIZE_OUTPUT_FOR_C = YES
OPTIMIZE_OUTPUT_JAVA = NO
OPTIMIZE_FOR_FORTRAN = NO
OPTIMIZE_OUTPUT_VHDL = NO
EXTENSION_MAPPING =
MARKDOWN_SUPPORT = YES
AUTOLINK_SUPPORT = YES
BUILTIN_STL_SUPPORT = NO
CPP_CLI_SUPPORT = NO
SIP_SUPPORT = NO
IDL_PROPERTY_SUPPORT = NO
DISTRIBUTE_GROUP_DOC = NO
GROUP_NESTED_COMPOUNDS = NO
SUBGROUPING = YES
INLINE_GROUPED_CLASSES = NO
INLINE_SIMPLE_STRUCTS = NO
TYPEDEF_HIDES_STRUCT = NO
LOOKUP_CACHE_SIZE = 0
EXTRACT_ALL = YES
EXTRACT_PRIVATE = NO
EXTRACT_PACKAGE = NO
EXTRACT_STATIC = NO
EXTRACT_LOCAL_CLASSES = NO
EXTRACT_LOCAL_METHODS = NO
EXTRACT_ANON_NSPACES = NO
HIDE_UNDOC_MEMBERS = YES
HIDE_UNDOC_CLASSES = YES
HIDE_FRIEND_COMPOUNDS = YES
HIDE_IN_BODY_DOCS = YES
INTERNAL_DOCS = NO
CASE_SENSE_NAMES = YES
HIDE_SCOPE_NAMES = NO
HIDE_COMPOUND_REFERENCE= NO
SHOW_INCLUDE_FILES = YES
SHOW_GROUPED_MEMB_INC = NO
FORCE_LOCAL_INCLUDES = NO
INLINE_INFO = YES
SORT_MEMBER_DOCS = YES
SORT_BRIEF_DOCS = NO
SORT_MEMBERS_CTORS_1ST = YES
SORT_GROUP_NAMES = YES
SORT_BY_SCOPE_NAME = YES
STRICT_PROTO_MATCHING = NO
GENERATE_TODOLIST = YES
GENERATE_TESTLIST = NO
GENERATE_BUGLIST = YES
GENERATE_DEPRECATEDLIST= YES
ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 2
SHOW_USED_FILES = YES
SHOW_FILES = YES
SHOW_NAMESPACES = NO
FILE_VERSION_FILTER =
LAYOUT_FILE =
CITE_BIB_FILES =
QUIET = YES
WARNINGS = YES
WARN_IF_UNDOCUMENTED = YES
WARN_IF_DOC_ERROR = YES
WARN_NO_PARAMDOC = YES
WARN_AS_ERROR = NO
WARN_FORMAT = "$file:$line: $text"
WARN_LOGFILE = doc/doxygen.log
INPUT = "@top_srcdir@/include/epoxy" "@top_srcdir@/src"
INPUT_ENCODING = UTF-8
FILE_PATTERNS = "*.h" "*.c"
RECURSIVE = NO
EXCLUDE = "@top_srcdir@/src/gen_dispatch.py"
EXCLUDE_SYMLINKS = YES
EXCLUDE_PATTERNS =
EXCLUDE_SYMBOLS = _* GLAPI* KHRONOS_* APIENTRY* GLX* wgl* EPOXY_CALLSPEC EPOXY_BEGIN_DECLS EPOXY_END_DECLS
EXAMPLE_PATH =
EXAMPLE_PATTERNS =
EXAMPLE_RECURSIVE = NO
IMAGE_PATH =
INPUT_FILTER =
FILTER_PATTERNS =
FILTER_SOURCE_FILES = NO
FILTER_SOURCE_PATTERNS =
USE_MDFILE_AS_MAINPAGE =
SOURCE_BROWSER = NO
INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = NO
REFERENCES_RELATION = NO
REFERENCES_LINK_SOURCE = YES
SOURCE_TOOLTIPS = YES
USE_HTAGS = NO
VERBATIM_HEADERS = NO
ALPHABETICAL_INDEX = YES
COLS_IN_ALPHA_INDEX = 3
IGNORE_PREFIX = "epoxy"
GENERATE_HTML = YES
HTML_OUTPUT = html
HTML_FILE_EXTENSION = .html
HTML_HEADER =
HTML_FOOTER =
HTML_STYLESHEET =
HTML_EXTRA_STYLESHEET =
HTML_EXTRA_FILES =
HTML_COLORSTYLE_HUE = 220
HTML_COLORSTYLE_SAT = 100
HTML_COLORSTYLE_GAMMA = 80
HTML_TIMESTAMP = YES
HTML_DYNAMIC_SECTIONS = NO
HTML_INDEX_NUM_ENTRIES = 100
GENERATE_DOCSET = NO
DOCSET_FEEDNAME = "Doxygen generated docs"
DOCSET_BUNDLE_ID = org.doxygen.Project
DOCSET_PUBLISHER_ID = org.doxygen.Publisher
DOCSET_PUBLISHER_NAME = Publisher
GENERATE_HTMLHELP = NO
CHM_FILE =
HHC_LOCATION =
GENERATE_CHI = NO
CHM_INDEX_ENCODING =
BINARY_TOC = NO
TOC_EXPAND = NO
GENERATE_QHP = NO
QCH_FILE =
QHP_NAMESPACE =
QHP_VIRTUAL_FOLDER = doc
QHP_CUST_FILTER_NAME =
QHP_CUST_FILTER_ATTRS =
QHP_SECT_FILTER_ATTRS =
QHG_LOCATION =
GENERATE_ECLIPSEHELP = NO
ECLIPSE_DOC_ID = org.doxygen.Project
DISABLE_INDEX = NO
GENERATE_TREEVIEW = NO
ENUM_VALUES_PER_LINE = 1
TREEVIEW_WIDTH = 250
EXT_LINKS_IN_WINDOW = NO
FORMULA_FONTSIZE = 10
FORMULA_TRANSPARENT = YES
USE_MATHJAX = NO
MATHJAX_FORMAT = HTML-CSS
MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest
MATHJAX_EXTENSIONS =
MATHJAX_CODEFILE =
SEARCHENGINE = NO
SERVER_BASED_SEARCH = NO
EXTERNAL_SEARCH = NO
SEARCHENGINE_URL =
SEARCHDATA_FILE =
EXTERNAL_SEARCH_ID =
EXTRA_SEARCH_MAPPINGS =
GENERATE_LATEX = NO
GENERATE_RTF = NO
GENERATE_MAN = NO
GENERATE_XML = NO
GENERATE_DOCBOOK = NO
GENERATE_AUTOGEN_DEF = NO
GENERATE_PERLMOD = NO
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = YES
SEARCH_INCLUDES = YES
INCLUDE_PATH = "@top_srcdir@/include" \
"@top_builddir@/include"
INCLUDE_FILE_PATTERNS = *.h
PREDEFINED = DOXYGEN_SHOULD_SKIP_THIS \
"EPOXY_BEGIN_DECLS=" \
"EPOXY_END_DECLS=" \
"EPOXY_PUBLIC="
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
ALLEXTERNALS = NO
EXTERNAL_GROUPS = NO
EXTERNAL_PAGES = NO
HAVE_DOT = @HAVE_DOT@
CLASS_DIAGRAMS = NO
MSCGEN_PATH =
DIA_PATH =
HIDE_UNDOC_RELATIONS = NO
DOT_NUM_THREADS = 0
DOT_FONTNAME = Sans
DOT_FONTSIZE = 10
DOT_FONTPATH =
CLASS_GRAPH = NO
COLLABORATION_GRAPH = YES
GROUP_GRAPHS = YES
UML_LOOK = NO
UML_LIMIT_NUM_FIELDS = 10
TEMPLATE_RELATIONS = NO
INCLUDE_GRAPH = NO
INCLUDED_BY_GRAPH = NO
CALL_GRAPH = NO
CALLER_GRAPH = NO
GRAPHICAL_HIERARCHY = YES
DIRECTORY_GRAPH = YES
DOT_IMAGE_FORMAT = png
INTERACTIVE_SVG = NO
DOT_PATH =
DOTFILE_DIRS =
MSCFILE_DIRS =
DIAFILE_DIRS =
PLANTUML_JAR_PATH =
PLANTUML_INCLUDE_PATH =
DOT_GRAPH_MAX_NODES = 50
MAX_DOT_GRAPH_DEPTH = 0
DOT_TRANSPARENT = NO
DOT_MULTI_TARGETS = YES
GENERATE_LEGEND = YES
DOT_CLEANUP = YES
3p-libepoxy-master/libepoxy/doc/meson.build 0000664 0000000 0000000 00000001664 14156730761 0021305 0 ustar 00root root 0000000 0000000 doxyfile_conf = configuration_data()
doxyfile_conf.set('PACKAGE_NAME', meson.project_name())
doxyfile_conf.set('PACKAGE_VERSION', meson.project_version())
doxyfile_conf.set('top_srcdir', meson.source_root())
doxyfile_conf.set('top_builddir', meson.build_root())
if find_program('dot', required: false).found()
doxyfile_conf.set('HAVE_DOT', 'YES')
else
doxyfile_conf.set('HAVE_DOT', 'NO')
endif
doxyfile = configure_file(input: 'Doxyfile.in',
output: 'Doxyfile',
configuration: doxyfile_conf,
install: false)
docdir = join_paths(epoxy_datadir, 'doc')
html_target = custom_target('epoxy-docs',
input: [ doxyfile ],
output: [ 'html' ],
command: [ doxygen, doxyfile ],
install: true,
install_dir: join_paths(docdir, 'epoxy'))
3p-libepoxy-master/libepoxy/include/ 0000775 0000000 0000000 00000000000 14156730761 0020012 5 ustar 00root root 0000000 0000000 3p-libepoxy-master/libepoxy/include/epoxy/ 0000775 0000000 0000000 00000000000 14156730761 0021156 5 ustar 00root root 0000000 0000000 3p-libepoxy-master/libepoxy/include/epoxy/common.h 0000664 0000000 0000000 00000003706 14156730761 0022625 0 ustar 00root root 0000000 0000000 /*
* Copyright 2017 Emmanuele Bassi
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
/** @file common.h
*
* A common header file, used to define macros and shared symbols.
*/
#ifndef EPOXY_COMMON_H
#define EPOXY_COMMON_H
#ifdef __cplusplus
# define EPOXY_BEGIN_DECLS extern "C" {
# define EPOXY_END_DECLS }
#else
# define EPOXY_BEGIN_DECLS
# define EPOXY_END_DECLS
#endif
#ifndef EPOXY_PUBLIC
# if defined(_MSC_VER)
# define EPOXY_PUBLIC __declspec(dllimport) extern
# else
# define EPOXY_PUBLIC extern
# endif
#endif
#if defined(_MSC_VER) && !defined(__bool_true_false_are_defined) && (_MSC_VER < 1800)
typedef unsigned char bool;
# define false 0
# define true 1
#else
# include
#endif
EPOXY_BEGIN_DECLS
EPOXY_PUBLIC bool epoxy_extension_in_string(const char *extension_list,
const char *ext);
EPOXY_END_DECLS
#endif /* EPOXY_COMMON_H */
3p-libepoxy-master/libepoxy/include/epoxy/egl.h 0000664 0000000 0000000 00000003460 14156730761 0022101 0 ustar 00root root 0000000 0000000 /*
* Copyright © 2013 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
/** @file egl.h
*
* Provides an implementation of an EGL dispatch layer using global
* function pointers
*
* You should include `` instead of ``.
*/
#ifndef EPOXY_EGL_H
#define EPOXY_EGL_H
#include "epoxy/common.h"
#if defined(__egl_h_) || defined(__eglext_h_)
#error epoxy/egl.h must be included before (or in place of) GL/egl.h
#else
#define __egl_h_
#define __eglext_h_
#endif
EPOXY_BEGIN_DECLS
#include "epoxy/egl_generated.h"
EPOXY_PUBLIC bool epoxy_has_egl_extension(EGLDisplay dpy, const char *extension);
EPOXY_PUBLIC int epoxy_egl_version(EGLDisplay dpy);
EPOXY_PUBLIC bool epoxy_has_egl(void);
EPOXY_END_DECLS
#endif /* EPOXY_EGL_H */
3p-libepoxy-master/libepoxy/include/epoxy/gl.h 0000664 0000000 0000000 00000006040 14156730761 0021731 0 ustar 00root root 0000000 0000000 /*
* Copyright © 2013 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
/** @file gl.h
*
* Provides an implementation of a GL dispatch layer using either
* global function pointers or a hidden vtable.
*
* You should include `` instead of `` and ``.
*/
#ifndef EPOXY_GL_H
#define EPOXY_GL_H
#include "epoxy/common.h"
#if defined(__gl_h_) || defined(__glext_h_)
#error epoxy/gl.h must be included before (or in place of) GL/gl.h
#else
#define __gl_h_
#define __glext_h_
#endif
#define KHRONOS_SUPPORT_INT64 1
#define KHRONOS_SUPPORT_FLOAT 1
#define KHRONOS_APIATTRIBUTES
#ifndef _WIN32
/* APIENTRY and GLAPIENTRY are not used on Linux or Mac. */
#define APIENTRY
#define GLAPIENTRY
#define EPOXY_CALLSPEC
#define GLAPI
#define KHRONOS_APIENTRY
#define KHRONOS_APICALL
#else
#ifndef APIENTRY
#define APIENTRY __stdcall
#endif
#ifndef GLAPIENTRY
#define GLAPIENTRY APIENTRY
#endif
#ifndef EPOXY_CALLSPEC
#define EPOXY_CALLSPEC __stdcall
#endif
#ifndef GLAPI
#define GLAPI extern
#endif
#define KHRONOS_APIENTRY __stdcall
#define KHRONOS_APICALL __declspec(dllimport) __stdcall
#endif /* _WIN32 */
#ifndef APIENTRYP
#define APIENTRYP APIENTRY *
#endif
#ifndef GLAPIENTRYP
#define GLAPIENTRYP GLAPIENTRY *
#endif
EPOXY_BEGIN_DECLS
#include "epoxy/gl_generated.h"
EPOXY_PUBLIC bool epoxy_has_gl_extension(const char *extension);
EPOXY_PUBLIC bool epoxy_is_desktop_gl(void);
EPOXY_PUBLIC int epoxy_gl_version(void);
EPOXY_PUBLIC int epoxy_glsl_version(void);
/*
* the type of the stub function that the failure handler must return;
* this function will be called on subsequent calls to the same bogus
* function name
*/
typedef void (*epoxy_resolver_stub_t)(void);
/* the type of the failure handler itself */
typedef epoxy_resolver_stub_t
(*epoxy_resolver_failure_handler_t)(const char *name);
EPOXY_PUBLIC epoxy_resolver_failure_handler_t
epoxy_set_resolver_failure_handler(epoxy_resolver_failure_handler_t handler);
EPOXY_END_DECLS
#endif /* EPOXY_GL_H */
3p-libepoxy-master/libepoxy/include/epoxy/glx.h 0000664 0000000 0000000 00000003600 14156730761 0022120 0 ustar 00root root 0000000 0000000 /*
* Copyright © 2013 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
/** @file glx.h
*
* Provides an implementation of a GLX dispatch layer using global
* function pointers.
*
* You should include `` instead of ``.
*/
#ifndef EPOXY_GLX_H
#define EPOXY_GLX_H
#include
#include
#include
#if defined(GLX_H) || defined(__glxext_h_)
#error epoxy/glx.h must be included before (or in place of) GL/glx.h
#else
#define GLX_H
#define __glx_h__
#define __glxext_h_
#endif
EPOXY_BEGIN_DECLS
#include "epoxy/glx_generated.h"
EPOXY_PUBLIC bool epoxy_has_glx_extension(Display *dpy, int screen, const char *extension);
EPOXY_PUBLIC int epoxy_glx_version(Display *dpy, int screen);
EPOXY_PUBLIC bool epoxy_has_glx(Display *dpy);
EPOXY_END_DECLS
#endif /* EPOXY_GLX_H */
3p-libepoxy-master/libepoxy/include/epoxy/meson.build 0000664 0000000 0000000 00000002272 14156730761 0023323 0 ustar 00root root 0000000 0000000 headers = [ 'common.h' ]
# GL is always generated
generated_headers = [ [ 'gl.h', 'gl_generated.h', gl_registry ] ]
if build_egl
generated_headers += [ [ 'egl.h', 'egl_generated.h', egl_registry ] ]
endif
if build_glx
generated_headers += [ [ 'glx.h', 'glx_generated.h', glx_registry ] ]
endif
if build_wgl
generated_headers += [ [ 'wgl.h', 'wgl_generated.h', wgl_registry ] ]
endif
gen_headers = []
foreach g: generated_headers
header = g[0]
gen_header = g[1]
registry = g[2]
generated = custom_target(gen_header,
input: registry,
output: [ gen_header ],
command: [
gen_dispatch_py,
'--header',
'--no-source',
'--outputdir=@OUTDIR@',
'@INPUT@',
],
install: true,
install_dir: join_paths(epoxy_includedir, 'epoxy'))
gen_headers += [ generated ]
headers += [ header ]
endforeach
epoxy_headers = files(headers) + gen_headers
install_headers(headers, subdir: 'epoxy')
3p-libepoxy-master/libepoxy/include/epoxy/wgl.h 0000664 0000000 0000000 00000003532 14156730761 0022123 0 ustar 00root root 0000000 0000000 /*
* Copyright © 2013 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
/** @file wgl.h
*
* Provides an implementation of a WGL dispatch layer using a hidden
* vtable.
*/
#ifndef EPOXY_WGL_H
#define EPOXY_WGL_H
#include
#include "epoxy/common.h"
#undef wglUseFontBitmaps
#undef wglUseFontOutlines
#if defined(__wglxext_h_)
#error epoxy/wgl.h must be included before (or in place of) wgl.h
#else
#define __wglxext_h_
#endif
#ifdef UNICODE
#define wglUseFontBitmaps wglUseFontBitmapsW
#else
#define wglUseFontBitmaps wglUseFontBitmapsA
#endif
EPOXY_BEGIN_DECLS
#include "epoxy/wgl_generated.h"
EPOXY_PUBLIC bool epoxy_has_wgl_extension(HDC hdc, const char *extension);
EPOXY_PUBLIC void epoxy_handle_external_wglMakeCurrent(void);
EPOXY_END_DECLS
#endif /* EPOXY_WGL_H */
3p-libepoxy-master/libepoxy/meson.build 0000664 0000000 0000000 00000016227 14156730761 0020541 0 ustar 00root root 0000000 0000000 project('libepoxy', 'c', version: '1.5.9',
default_options: [
'buildtype=debugoptimized',
'c_std=gnu99',
'warning_level=1',
],
license: 'MIT',
meson_version: '>= 0.54.0')
epoxy_version = meson.project_version().split('.')
epoxy_major_version = epoxy_version[0].to_int()
epoxy_minor_version = epoxy_version[1].to_int()
epoxy_micro_version = epoxy_version[2].to_int()
epoxy_prefix = get_option('prefix')
epoxy_libdir = join_paths(epoxy_prefix, get_option('libdir'))
epoxy_datadir = join_paths(epoxy_prefix, get_option('datadir'))
epoxy_includedir = join_paths(epoxy_prefix, get_option('includedir'))
cc = meson.get_compiler('c')
host_system = host_machine.system()
conf = configuration_data()
conf.set_quoted('PACKAGE_NAME', meson.project_name())
conf.set_quoted('PACKAGE_VERSION', meson.project_version())
conf.set_quoted('PACKAGE_STRING', '@0@-@1@'.format(meson.project_name(), meson.project_version()))
conf.set_quoted('PACKAGE_DATADIR', join_paths(get_option('prefix'), get_option('datadir')))
conf.set_quoted('PACKAGE_LIBDIR', join_paths(get_option('prefix'), get_option('libdir')))
conf.set_quoted('PACKAGE_LOCALEDIR', join_paths(get_option('prefix'), get_option('datadir'), 'locale'))
conf.set_quoted('PACKAGE_LIBEXECDIR', join_paths(get_option('prefix'), get_option('libexecdir')))
conf.set('HAVE_KHRPLATFORM_H', cc.has_header('KHR/khrplatform.h'))
# GLX can be used on different platforms, so we expose a
# configure time switch to enable or disable it; in case
# the "auto" default value is set, we only enable GLX
# support on Linux and Unix
enable_glx = get_option('glx')
if enable_glx == 'auto'
build_glx = not ['windows', 'darwin', 'android', 'haiku'].contains(host_system)
else
build_glx = enable_glx == 'yes'
endif
enable_egl = get_option('egl')
if enable_egl == 'auto'
build_egl = not ['windows', 'darwin'].contains(host_system)
else
build_egl = enable_egl == 'yes'
endif
enable_x11 = get_option('x11')
if not enable_x11
if enable_glx == 'yes'
error('GLX support is explicitly enabled, but X11 was disabled')
endif
build_glx = false
endif
# The remaining platform specific API for GL/GLES are enabled
# depending on the platform we're building for
if host_system == 'windows'
build_wgl = true
has_znow = true
elif host_system == 'darwin'
build_wgl = false
has_znow = false
else
build_wgl = false
has_znow = true
endif
conf.set10('ENABLE_GLX', build_glx)
conf.set10('ENABLE_EGL', build_egl)
conf.set10('ENABLE_X11', enable_x11)
# Compiler flags, taken from the Xorg macros
if cc.get_id() == 'msvc'
# Compiler options taken from msvc_recommended_pragmas.h
# in GLib, based on _Win32_Programming_ by Rector and Newcomer
test_cflags = [
'-we4002', # too many actual parameters for macro
'-we4003', # not enough actual parameters for macro
'-w14010', # single-line comment contains line-continuation character
'-we4013', # 'function' undefined; assuming extern returning int
'-w14016', # no function return type; using int as default
'-we4020', # too many actual parameters
'-we4021', # too few actual parameters
'-we4027', # function declared without formal parameter list
'-we4029', # declared formal parameter list different from definition
'-we4033', # 'function' must return a value
'-we4035', # 'function' : no return value
'-we4045', # array bounds overflow
'-we4047', # different levels of indirection
'-we4049', # terminating line number emission
'-we4053', # an expression of type void was used as an operand
'-we4071', # no function prototype given
'-we4819', # the file contains a character that cannot be represented in the current code page
]
elif cc.get_id() == 'gcc' or cc.get_id() == 'clang'
test_cflags = [
'-Wpointer-arith',
'-Wmissing-declarations',
'-Wformat=2',
'-Wstrict-prototypes',
'-Wmissing-prototypes',
'-Wnested-externs',
'-Wbad-function-cast',
'-Wold-style-definition',
'-Wdeclaration-after-statement',
'-Wunused',
'-Wuninitialized',
'-Wshadow',
'-Wmissing-noreturn',
'-Wmissing-format-attribute',
'-Wredundant-decls',
'-Wlogical-op',
'-Werror=implicit',
'-Werror=nonnull',
'-Werror=init-self',
'-Werror=main',
'-Werror=missing-braces',
'-Werror=sequence-point',
'-Werror=return-type',
'-Werror=trigraphs',
'-Werror=array-bounds',
'-Werror=write-strings',
'-Werror=address',
'-Werror=int-to-pointer-cast',
'-Werror=pointer-to-int-cast',
'-fno-strict-aliasing',
'-Wno-int-conversion',
]
else
test_cflags = []
endif
common_cflags = cc.get_supported_arguments(test_cflags)
libtype = get_option('default_library')
# Visibility compiler flags; we only use this for shared libraries
visibility_cflags = []
if libtype == 'shared'
if host_system == 'windows'
conf.set('DLL_EXPORT', true)
conf.set('EPOXY_PUBLIC', '__declspec(dllexport) extern')
if cc.get_id() != 'msvc'
visibility_cflags += [ '-fvisibility=hidden' ]
endif
else
conf.set('EPOXY_PUBLIC', '__attribute__((visibility("default"))) extern')
visibility_cflags += [ '-fvisibility=hidden' ]
endif
endif
# The inline keyword is available only for C++ in MSVC.
# So we need to use Microsoft specific __inline.
if host_system == 'windows'
if cc.get_id() == 'msvc'
conf.set('inline', '__inline')
endif
endif
# Dependencies
dl_dep = cc.find_library('dl', required: false)
gl_dep = dependency('gl', required: false)
egl_dep = dependency('egl', required: false)
# Optional dependencies for tests
x11_dep = dependency('x11', required: false)
# GLES v2 and v1 may have pkg-config files, courtesy of downstream
# packagers; let's check those first, and fall back to find_library()
# if we fail
gles2_dep = dependency('glesv2', required: false)
if not gles2_dep.found()
gles2_dep = cc.find_library('libGLESv2', required: false)
endif
gles1_dep = dependency('glesv1_cm', required: false)
if not gles1_dep.found()
gles1_dep = cc.find_library('libGLESv1_CM', required: false)
endif
# On windows, the DLL has to have all of its functions
# resolved at link time, so we have to link directly against
# opengl32. But that's the only GL provider, anyway.
if host_system == 'windows'
opengl32_dep = cc.find_library('opengl32', required: true)
# When building against static libraries, we need to control
# the order of the dependencies, and gdi32 provides symbols
# needed when using opengl32, like SetPixelFormat and
# ChoosePixelFormat. This is mostly a workaround for older
# versions of Meson.
gdi32_dep = cc.find_library('gdi32', required: true)
endif
# Generates the dispatch tables
gen_dispatch_py = find_program('src/gen_dispatch.py')
gl_registry = files('registry/gl.xml')
egl_registry = files('registry/egl.xml')
glx_registry = files('registry/glx.xml')
wgl_registry = files('registry/wgl.xml')
libepoxy_inc = [
include_directories('include'),
include_directories('src'),
]
subdir('include/epoxy')
subdir('src')
if get_option('tests')
subdir('test')
endif
if get_option('docs')
doxygen = find_program('doxygen', required: false)
if doxygen.found()
subdir('doc')
else
message('Documentation disabled without doxygen')
endif
endif
3p-libepoxy-master/libepoxy/meson_options.txt 0000664 0000000 0000000 00000001202 14156730761 0022017 0 ustar 00root root 0000000 0000000 option('docs',
type: 'boolean', value: false,
description: 'Enable generating the Epoxy API reference (depends on Doxygen)')
option('glx',
type: 'combo',
choices: [ 'auto', 'yes', 'no' ],
value: 'auto',
description: 'Enable GLX support')
option('egl',
type: 'combo',
choices: [ 'auto', 'yes', 'no' ],
value: 'auto',
description: 'Enable EGL support')
option('x11',
type: 'boolean',
value: true,
description: 'Enable X11 support (GLX or EGL-X11)')
option('tests',
type: 'boolean',
value: true,
description: 'Build the test suite')
3p-libepoxy-master/libepoxy/registry/ 0000775 0000000 0000000 00000000000 14156730761 0020237 5 ustar 00root root 0000000 0000000 3p-libepoxy-master/libepoxy/registry/README.md 0000664 0000000 0000000 00000001126 14156730761 0021516 0 ustar 00root root 0000000 0000000 ## Updating the registry XML
In order to update the registry XML files and retain the history you cannot
simply download the files the [Khronos website](https://khronos.org/registry/OpenGL/index_gl.php)
and copy them into this directory. You should follow these steps, instead:
1. check out the `khronos-registry` branch
2. download the XML files from the Khronos repository
3. copy them under the `registry` directory
4. check the result for consistency and commit it
5. check out the `master` branch and merge the `khronos-registry` branch
into it with the appropriate commit message
3p-libepoxy-master/libepoxy/registry/egl.xml 0000664 0000000 0000000 00000531651 14156730761 0021543 0 ustar 00root root 0000000 0000000
#include <KHR/khrplatform.h>
#include <EGL/eglplatform.h>
struct AHardwareBuffer;
typedef unsigned int EGLBoolean;
typedef unsigned int EGLenum;
typedef intptr_t EGLAttribKHR;
typedef intptr_t EGLAttrib;
typedef void *EGLClientBuffer;
typedef void *EGLConfig;
typedef void *EGLContext;
typedef void *EGLDeviceEXT;
typedef void *EGLDisplay;
typedef void *EGLImage;
typedef void *EGLImageKHR;
typedef void *EGLLabelKHR;
typedef void *EGLObjectKHR;
typedef void *EGLOutputLayerEXT;
typedef void *EGLOutputPortEXT;
typedef void *EGLStreamKHR;
typedef void *EGLSurface;
typedef void *EGLSync;
typedef void *EGLSyncKHR;
typedef void *EGLSyncNV;
typedef void (*__eglMustCastToProperFunctionPointerType)(void);
typedef khronos_utime_nanoseconds_t EGLTimeKHR;
typedef khronos_utime_nanoseconds_t EGLTime;
typedef khronos_utime_nanoseconds_t EGLTimeNV;
typedef khronos_utime_nanoseconds_t EGLuint64NV;
typedef khronos_uint64_t EGLuint64KHR;
typedef khronos_stime_nanoseconds_t EGLnsecsANDROID;
typedef int EGLNativeFileDescriptorKHR;
typedef khronos_ssize_t EGLsizeiANDROID;
typedef void (*EGLSetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, const void *value, EGLsizeiANDROID valueSize);
typedef EGLsizeiANDROID (*EGLGetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, void *value, EGLsizeiANDROID valueSize);
struct EGLClientPixmapHI {
void *pData;
EGLint iWidth;
EGLint iHeight;
EGLint iStride;
};
typedef void ( *EGLDEBUGPROCKHR)(EGLenum error,const char *command,EGLint messageType,EGLLabelKHR threadLabel,EGLLabelKHR objectLabel,const char* message);
EGLBoolean eglBindAPI
EGLenum api
EGLBoolean eglBindTexImage
EGLDisplay dpy
EGLSurface surface
EGLint buffer
EGLBoolean eglChooseConfig
EGLDisplay dpy
const EGLint *attrib_list
EGLConfig *configs
EGLint config_size
EGLint *num_config
EGLBoolean eglClientSignalSyncEXT
EGLDisplay dpy
EGLSync sync
const EGLAttrib *attrib_list
EGLint eglClientWaitSync
EGLDisplay dpy
EGLSync sync
EGLint flags
EGLTime timeout
EGLint eglClientWaitSyncKHR
EGLDisplay dpy
EGLSyncKHR sync
EGLint flags
EGLTimeKHR timeout
EGLint eglClientWaitSyncNV
EGLSyncNV sync
EGLint flags
EGLTimeNV timeout
EGLBoolean eglCopyBuffers
EGLDisplay dpy
EGLSurface surface
EGLNativePixmapType target
EGLContext eglCreateContext
EGLDisplay dpy
EGLConfig config
EGLContext share_context
const EGLint *attrib_list
EGLImageKHR eglCreateDRMImageMESA
EGLDisplay dpy
const EGLint *attrib_list
EGLSyncNV eglCreateFenceSyncNV
EGLDisplay dpy
EGLenum condition
const EGLint *attrib_list
EGLImage eglCreateImage
EGLDisplay dpy
EGLContext ctx
EGLenum target
EGLClientBuffer buffer
const EGLAttrib *attrib_list
EGLImageKHR eglCreateImageKHR
EGLDisplay dpy
EGLContext ctx
EGLenum target
EGLClientBuffer buffer
const EGLint *attrib_list
EGLClientBuffer eglCreateNativeClientBufferANDROID
const EGLint *attrib_list
EGLSurface eglCreatePbufferFromClientBuffer
EGLDisplay dpy
EGLenum buftype
EGLClientBuffer buffer
EGLConfig config
const EGLint *attrib_list
EGLSurface eglCreatePbufferSurface
EGLDisplay dpy
EGLConfig config
const EGLint *attrib_list
EGLSurface eglCreatePixmapSurface
EGLDisplay dpy
EGLConfig config
EGLNativePixmapType pixmap
const EGLint *attrib_list
EGLSurface eglCreatePixmapSurfaceHI
EGLDisplay dpy
EGLConfig config
struct EGLClientPixmapHI *pixmap
EGLSurface eglCreatePlatformPixmapSurface
EGLDisplay dpy
EGLConfig config
void *native_pixmap
const EGLAttrib *attrib_list
EGLSurface eglCreatePlatformPixmapSurfaceEXT
EGLDisplay dpy
EGLConfig config
void *native_pixmap
const EGLint *attrib_list
EGLSurface eglCreatePlatformWindowSurface
EGLDisplay dpy
EGLConfig config
void *native_window
const EGLAttrib *attrib_list
EGLSurface eglCreatePlatformWindowSurfaceEXT
EGLDisplay dpy
EGLConfig config
void *native_window
const EGLint *attrib_list
EGLStreamKHR eglCreateStreamFromFileDescriptorKHR
EGLDisplay dpy
EGLNativeFileDescriptorKHR file_descriptor
EGLStreamKHR eglCreateStreamKHR
EGLDisplay dpy
const EGLint *attrib_list
EGLStreamKHR eglCreateStreamAttribKHR
EGLDisplay dpy
const EGLAttrib *attrib_list
EGLSurface eglCreateStreamProducerSurfaceKHR
EGLDisplay dpy
EGLConfig config
EGLStreamKHR stream
const EGLint *attrib_list
EGLSyncKHR eglCreateStreamSyncNV
EGLDisplay dpy
EGLStreamKHR stream
EGLenum type
const EGLint *attrib_list
EGLSync eglCreateSync
EGLDisplay dpy
EGLenum type
const EGLAttrib *attrib_list
EGLSyncKHR eglCreateSyncKHR
EGLDisplay dpy
EGLenum type
const EGLint *attrib_list
EGLSyncKHR eglCreateSync64KHR
EGLDisplay dpy
EGLenum type
const EGLAttribKHR *attrib_list
EGLSurface eglCreateWindowSurface
EGLDisplay dpy
EGLConfig config
EGLNativeWindowType win
const EGLint *attrib_list
EGLint eglDebugMessageControlKHR
EGLDEBUGPROCKHR callback
const EGLAttrib *attrib_list
EGLBoolean eglDestroyContext
EGLDisplay dpy
EGLContext ctx
EGLBoolean eglDestroyImage
EGLDisplay dpy
EGLImage image
EGLBoolean eglDestroyImageKHR
EGLDisplay dpy
EGLImageKHR image
EGLBoolean eglDestroyStreamKHR
EGLDisplay dpy
EGLStreamKHR stream
EGLBoolean eglDestroySurface
EGLDisplay dpy
EGLSurface surface
EGLBoolean eglDestroySync
EGLDisplay dpy
EGLSync sync
EGLBoolean eglDestroySyncKHR
EGLDisplay dpy
EGLSyncKHR sync
EGLBoolean eglDestroySyncNV
EGLSyncNV sync
EGLint eglDupNativeFenceFDANDROID
EGLDisplay dpy
EGLSyncKHR sync
EGLBoolean eglExportDMABUFImageMESA
EGLDisplay dpy
EGLImageKHR image
int *fds
EGLint *strides
EGLint *offsets
EGLBoolean eglExportDMABUFImageQueryMESA
EGLDisplay dpy
EGLImageKHR image
int *fourcc
int *num_planes
EGLuint64KHR *modifiers
EGLBoolean eglExportDRMImageMESA
EGLDisplay dpy
EGLImageKHR image
EGLint *name
EGLint *handle
EGLint *stride
EGLBoolean eglFenceNV
EGLSyncNV sync
EGLBoolean eglGetConfigAttrib
EGLDisplay dpy
EGLConfig config
EGLint attribute
EGLint *value
EGLBoolean eglGetConfigs
EGLDisplay dpy
EGLConfig *configs
EGLint config_size
EGLint *num_config
EGLContext eglGetCurrentContext
EGLDisplay eglGetCurrentDisplay
EGLSurface eglGetCurrentSurface
EGLint readdraw
EGLDisplay eglGetDisplay
EGLNativeDisplayType display_id
char *eglGetDisplayDriverConfig
EGLDisplay dpy
const char *eglGetDisplayDriverName
EGLDisplay dpy
EGLint eglGetError
EGLClientBuffer eglGetNativeClientBufferANDROID
const struct AHardwareBuffer *buffer
EGLBoolean eglGetOutputLayersEXT
EGLDisplay dpy
const EGLAttrib *attrib_list
EGLOutputLayerEXT *layers
EGLint max_layers
EGLint *num_layers
EGLBoolean eglGetOutputPortsEXT
EGLDisplay dpy
const EGLAttrib *attrib_list
EGLOutputPortEXT *ports
EGLint max_ports
EGLint *num_ports
EGLDisplay eglGetPlatformDisplay
EGLenum platform
void *native_display
const EGLAttrib *attrib_list
EGLDisplay eglGetPlatformDisplayEXT
EGLenum platform
void *native_display
const EGLint *attrib_list
__eglMustCastToProperFunctionPointerType eglGetProcAddress
const char *procname
EGLNativeFileDescriptorKHR eglGetStreamFileDescriptorKHR
EGLDisplay dpy
EGLStreamKHR stream
EGLBoolean eglGetSyncAttrib
EGLDisplay dpy
EGLSync sync
EGLint attribute
EGLAttrib *value
EGLBoolean eglGetSyncAttribKHR
EGLDisplay dpy
EGLSyncKHR sync
EGLint attribute
EGLint *value
EGLBoolean eglGetSyncAttribNV
EGLSyncNV sync
EGLint attribute
EGLint *value
EGLuint64NV eglGetSystemTimeFrequencyNV
EGLuint64NV eglGetSystemTimeNV
EGLBoolean eglInitialize
EGLDisplay dpy
EGLint *major
EGLint *minor
EGLint eglLabelObjectKHR
EGLDisplay display
EGLenum objectType
EGLObjectKHR object
EGLLabelKHR label
EGLBoolean eglLockSurfaceKHR
EGLDisplay dpy
EGLSurface surface
const EGLint *attrib_list
EGLBoolean eglMakeCurrent
EGLDisplay dpy
EGLSurface draw
EGLSurface read
EGLContext ctx
EGLBoolean eglOutputLayerAttribEXT
EGLDisplay dpy
EGLOutputLayerEXT layer
EGLint attribute
EGLAttrib value
EGLBoolean eglOutputPortAttribEXT
EGLDisplay dpy
EGLOutputPortEXT port
EGLint attribute
EGLAttrib value
EGLBoolean eglPostSubBufferNV
EGLDisplay dpy
EGLSurface surface
EGLint x
EGLint y
EGLint width
EGLint height
EGLBoolean eglPresentationTimeANDROID
EGLDisplay dpy
EGLSurface surface
EGLnsecsANDROID time
EGLBoolean eglGetCompositorTimingSupportedANDROID
EGLDisplay dpy
EGLSurface surface
EGLint name
EGLBoolean eglGetCompositorTimingANDROID
EGLDisplay dpy
EGLSurface surface
EGLint numTimestamps
const EGLint *names
EGLnsecsANDROID *values
EGLBoolean eglGetNextFrameIdANDROID
EGLDisplay dpy
EGLSurface surface
EGLuint64KHR *frameId
EGLBoolean eglGetFrameTimestampSupportedANDROID
EGLDisplay dpy
EGLSurface surface
EGLint timestamp
EGLBoolean eglGetFrameTimestampsANDROID
EGLDisplay dpy
EGLSurface surface
EGLuint64KHR frameId
EGLint numTimestamps
const EGLint *timestamps
EGLnsecsANDROID *values
EGLenum eglQueryAPI
EGLBoolean eglQueryContext
EGLDisplay dpy
EGLContext ctx
EGLint attribute
EGLint *value
EGLBoolean eglQueryDebugKHR
EGLint attribute
EGLAttrib *value
EGLBoolean eglQueryDeviceAttribEXT
EGLDeviceEXT device
EGLint attribute
EGLAttrib *value
const char *eglQueryDeviceStringEXT
EGLDeviceEXT device
EGLint name
EGLBoolean eglQueryDevicesEXT
EGLint max_devices
EGLDeviceEXT *devices
EGLint *num_devices
EGLBoolean eglQueryDisplayAttribEXT
EGLDisplay dpy
EGLint attribute
EGLAttrib *value
EGLBoolean eglQueryDisplayAttribKHR
EGLDisplay dpy
EGLint name
EGLAttrib *value
EGLBoolean eglQueryDisplayAttribNV
EGLDisplay dpy
EGLint attribute
EGLAttrib *value
EGLBoolean eglQueryDmaBufFormatsEXT
EGLDisplay dpy
EGLint max_formats
EGLint *formats
EGLint *num_formats
EGLBoolean eglQueryDmaBufModifiersEXT
EGLDisplay dpy
EGLint format
EGLint max_modifiers
EGLuint64KHR *modifiers
EGLBoolean *external_only
EGLint *num_modifiers
EGLBoolean eglQueryNativeDisplayNV
EGLDisplay dpy
EGLNativeDisplayType *display_id
EGLBoolean eglQueryNativePixmapNV
EGLDisplay dpy
EGLSurface surf
EGLNativePixmapType *pixmap
EGLBoolean eglQueryNativeWindowNV
EGLDisplay dpy
EGLSurface surf
EGLNativeWindowType *window
EGLBoolean eglQueryOutputLayerAttribEXT
EGLDisplay dpy
EGLOutputLayerEXT layer
EGLint attribute
EGLAttrib *value
const char *eglQueryOutputLayerStringEXT
EGLDisplay dpy
EGLOutputLayerEXT layer
EGLint name
EGLBoolean eglQueryOutputPortAttribEXT
EGLDisplay dpy
EGLOutputPortEXT port
EGLint attribute
EGLAttrib *value
const char *eglQueryOutputPortStringEXT
EGLDisplay dpy
EGLOutputPortEXT port
EGLint name
EGLBoolean eglQueryStreamKHR
EGLDisplay dpy
EGLStreamKHR stream
EGLenum attribute
EGLint *value
EGLBoolean eglQueryStreamAttribKHR
EGLDisplay dpy
EGLStreamKHR stream
EGLenum attribute
EGLAttrib *value
EGLBoolean eglQueryStreamMetadataNV
EGLDisplay dpy
EGLStreamKHR stream
EGLenum name
EGLint n
EGLint offset
EGLint size
void *data
EGLBoolean eglQueryStreamTimeKHR
EGLDisplay dpy
EGLStreamKHR stream
EGLenum attribute
EGLTimeKHR *value
EGLBoolean eglQueryStreamu64KHR
EGLDisplay dpy
EGLStreamKHR stream
EGLenum attribute
EGLuint64KHR *value
const char *eglQueryString
EGLDisplay dpy
EGLint name
EGLBoolean eglQuerySurface
EGLDisplay dpy
EGLSurface surface
EGLint attribute
EGLint *value
EGLBoolean eglQuerySurface64KHR
EGLDisplay dpy
EGLSurface surface
EGLint attribute
EGLAttribKHR *value
EGLBoolean eglQuerySurfacePointerANGLE
EGLDisplay dpy
EGLSurface surface
EGLint attribute
void **value
EGLBoolean eglReleaseTexImage
EGLDisplay dpy
EGLSurface surface
EGLint buffer
EGLBoolean eglReleaseThread
EGLBoolean eglResetStreamNV
EGLDisplay dpy
EGLStreamKHR stream
void eglSetBlobCacheFuncsANDROID
EGLDisplay dpy
EGLSetBlobFuncANDROID set
EGLGetBlobFuncANDROID get
EGLBoolean eglSetDamageRegionKHR
EGLDisplay dpy
EGLSurface surface
EGLint *rects
EGLint n_rects
EGLBoolean eglSetStreamAttribKHR
EGLDisplay dpy
EGLStreamKHR stream
EGLenum attribute
EGLAttrib value
EGLBoolean eglSetStreamMetadataNV
EGLDisplay dpy
EGLStreamKHR stream
EGLint n
EGLint offset
EGLint size
const void *data
EGLBoolean eglSignalSyncKHR
EGLDisplay dpy
EGLSyncKHR sync
EGLenum mode
EGLBoolean eglSignalSyncNV
EGLSyncNV sync
EGLenum mode
EGLBoolean eglStreamAttribKHR
EGLDisplay dpy
EGLStreamKHR stream
EGLenum attribute
EGLint value
EGLBoolean eglStreamConsumerAcquireKHR
EGLDisplay dpy
EGLStreamKHR stream
EGLBoolean eglStreamConsumerAcquireAttribKHR
EGLDisplay dpy
EGLStreamKHR stream
const EGLAttrib *attrib_list
EGLBoolean eglStreamConsumerGLTextureExternalKHR
EGLDisplay dpy
EGLStreamKHR stream
EGLBoolean eglStreamConsumerGLTextureExternalAttribsNV
EGLDisplay dpy
EGLStreamKHR stream
const EGLAttrib *attrib_list
EGLBoolean eglStreamConsumerOutputEXT
EGLDisplay dpy
EGLStreamKHR stream
EGLOutputLayerEXT layer
EGLBoolean eglStreamConsumerReleaseKHR
EGLDisplay dpy
EGLStreamKHR stream
EGLBoolean eglStreamConsumerReleaseAttribKHR
EGLDisplay dpy
EGLStreamKHR stream
const EGLAttrib *attrib_list
EGLBoolean eglStreamFlushNV
EGLDisplay dpy
EGLStreamKHR stream
EGLBoolean eglSurfaceAttrib
EGLDisplay dpy
EGLSurface surface
EGLint attribute
EGLint value
EGLBoolean eglSwapBuffers
EGLDisplay dpy
EGLSurface surface
EGLBoolean eglSwapBuffersWithDamageEXT
EGLDisplay dpy
EGLSurface surface
EGLint *rects
EGLint n_rects
EGLBoolean eglSwapBuffersWithDamageKHR
EGLDisplay dpy
EGLSurface surface
EGLint *rects
EGLint n_rects
EGLBoolean eglSwapBuffersRegionNOK
EGLDisplay dpy
EGLSurface surface
EGLint numRects
const EGLint *rects
EGLBoolean eglSwapBuffersRegion2NOK
EGLDisplay dpy
EGLSurface surface
EGLint numRects
const EGLint *rects
EGLBoolean eglSwapInterval
EGLDisplay dpy
EGLint interval
EGLBoolean eglTerminate
EGLDisplay dpy
EGLBoolean eglUnlockSurfaceKHR
EGLDisplay dpy
EGLSurface surface
EGLBoolean eglUnsignalSyncEXT
EGLDisplay dpy
EGLSync sync
const EGLAttrib *attrib_list
EGLBoolean eglWaitClient
EGLBoolean eglWaitGL
EGLBoolean eglWaitNative
EGLint engine
EGLBoolean eglWaitSync
EGLDisplay dpy
EGLSync sync
EGLint flags
EGLint eglWaitSyncKHR
EGLDisplay dpy
EGLSyncKHR sync
EGLint flags
EGLBoolean eglCompositorSetContextListEXT
const EGLint *external_ref_ids
EGLint num_entries
EGLBoolean eglCompositorSetContextAttributesEXT
EGLint external_ref_id
const EGLint *context_attributes
EGLint num_entries
EGLBoolean eglCompositorSetWindowListEXT
EGLint external_ref_id
const EGLint *external_win_ids
EGLint num_entries
EGLBoolean eglCompositorSetWindowAttributesEXT
EGLint external_win_id
const EGLint *window_attributes
EGLint num_entries
EGLBoolean eglCompositorBindTexWindowEXT
EGLint external_win_id
EGLBoolean eglCompositorSetSizeEXT
EGLint external_win_id
EGLint width
EGLint height
EGLBoolean eglCompositorSwapPolicyEXT
EGLint external_win_id
EGLint policy
3p-libepoxy-master/libepoxy/registry/gl.xml 0000664 0000000 0000000 00012533151 14156730761 0021376 0 ustar 00root root 0000000 0000000
Copyright (c) 2013-2018 The Khronos Group Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
------------------------------------------------------------------------
This file, gl.xml, is the OpenGL and OpenGL API Registry. The canonical
version of the registry, together with documentation, schema, and Python
generator scripts used to generate C header files for OpenGL and OpenGL ES,
can always be found in the Khronos Registry at
https://github.com/KhronosGroup/OpenGL-Registry
#include <KHR/khrplatform.h>
typedef unsigned int GLenum;
typedef unsigned char GLboolean;
typedef unsigned int GLbitfield;
typedef void GLvoid;
typedef khronos_int8_t GLbyte;
typedef khronos_uint8_t GLubyte;
typedef khronos_int16_t GLshort;
typedef khronos_uint16_t GLushort;
typedef int GLint;
typedef unsigned int GLuint;
typedef khronos_int32_t GLclampx;
typedef int GLsizei;
typedef khronos_float_t GLfloat;
typedef khronos_float_t GLclampf;
typedef double GLdouble;
typedef double GLclampd;
typedef void *GLeglClientBufferEXT;
typedef void *GLeglImageOES;
typedef char GLchar;
typedef char GLcharARB;
#ifdef __APPLE__
typedef void *GLhandleARB;
#else
typedef unsigned int GLhandleARB;
#endif
typedef khronos_uint16_t GLhalf;
typedef khronos_uint16_t GLhalfARB;
typedef khronos_int32_t GLfixed;
typedef khronos_intptr_t GLintptr;
typedef khronos_intptr_t GLintptrARB;
typedef khronos_ssize_t GLsizeiptr;
typedef khronos_ssize_t GLsizeiptrARB;
typedef khronos_int64_t GLint64;
typedef khronos_int64_t GLint64EXT;
typedef khronos_uint64_t GLuint64;
typedef khronos_uint64_t GLuint64EXT;
typedef struct __GLsync *GLsync;
struct _cl_context;
struct _cl_event;
typedef void ( *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
typedef void ( *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
typedef void ( *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
typedef void ( *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,void *userParam);
typedef unsigned short GLhalfNV;
typedef GLintptr GLvdpauSurfaceNV;
typedef void ( *GLVULKANPROCNV)(void);
void glAccum
GLenum op
GLfloat value
void glAccumxOES
GLenum op
GLfixed value
void glActiveProgramEXT
GLuint program
void glActiveShaderProgram
GLuint pipeline
GLuint program
void glActiveShaderProgramEXT
GLuint pipeline
GLuint program
void glActiveStencilFaceEXT
GLenum face
void glActiveTexture
GLenum texture
void glActiveTextureARB
GLenum texture
void glActiveVaryingNV
GLuint program
const GLchar *name
void glAlphaFragmentOp1ATI
GLenum op
GLuint dst
GLuint dstMod
GLuint arg1
GLuint arg1Rep
GLuint arg1Mod
void glAlphaFragmentOp2ATI
GLenum op
GLuint dst
GLuint dstMod
GLuint arg1
GLuint arg1Rep
GLuint arg1Mod
GLuint arg2
GLuint arg2Rep
GLuint arg2Mod
void glAlphaFragmentOp3ATI
GLenum op
GLuint dst
GLuint dstMod
GLuint arg1
GLuint arg1Rep
GLuint arg1Mod
GLuint arg2
GLuint arg2Rep
GLuint arg2Mod
GLuint arg3
GLuint arg3Rep
GLuint arg3Mod
void glAlphaFunc
GLenum func
GLfloat ref
void glAlphaFuncQCOM
GLenum func
GLclampf ref
void glAlphaFuncx
GLenum func
GLfixed ref
void glAlphaFuncxOES
GLenum func
GLfixed ref
void glAlphaToCoverageDitherControlNV
GLenum mode
void glApplyFramebufferAttachmentCMAAINTEL
void glApplyTextureEXT
GLenum mode
GLboolean glAcquireKeyedMutexWin32EXT
GLuint memory
GLuint64 key
GLuint timeout
GLboolean glAreProgramsResidentNV
GLsizei n
const GLuint *programs
GLboolean *residences
GLboolean glAreTexturesResident
GLsizei n
const GLuint *textures
GLboolean *residences
GLboolean glAreTexturesResidentEXT
GLsizei n
const GLuint *textures
GLboolean *residences
void glArrayElement
GLint i
void glArrayElementEXT
GLint i
void glArrayObjectATI
GLenum array
GLint size
GLenum type
GLsizei stride
GLuint buffer
GLuint offset
GLuint glAsyncCopyBufferSubDataNVX
GLsizei waitSemaphoreCount
const GLuint *waitSemaphoreArray
const GLuint64 *fenceValueArray
GLuint readGpu
GLbitfield writeGpuMask
GLuint readBuffer
GLuint writeBuffer
GLintptr readOffset
GLintptr writeOffset
GLsizeiptr size
GLsizei signalSemaphoreCount
const GLuint *signalSemaphoreArray
const GLuint64 *signalValueArray
GLuint glAsyncCopyImageSubDataNVX
GLsizei waitSemaphoreCount
const GLuint *waitSemaphoreArray
const GLuint64 *waitValueArray
GLuint srcGpu
GLbitfield dstGpuMask
GLuint srcName
GLenum srcTarget
GLint srcLevel
GLint srcX
GLint srcY
GLint srcZ
GLuint dstName
GLenum dstTarget
GLint dstLevel
GLint dstX
GLint dstY
GLint dstZ
GLsizei srcWidth
GLsizei srcHeight
GLsizei srcDepth
GLsizei signalSemaphoreCount
const GLuint *signalSemaphoreArray
const GLuint64 *signalValueArray
void glAsyncMarkerSGIX
GLuint marker
void glAttachObjectARB
GLhandleARB containerObj
GLhandleARB obj
void glAttachShader
GLuint program
GLuint shader
void glBegin
GLenum mode
void glBeginConditionalRender
GLuint id
GLenum mode
void glBeginConditionalRenderNV
GLuint id
GLenum mode
void glBeginConditionalRenderNVX
GLuint id
void glBeginFragmentShaderATI
void glBeginOcclusionQueryNV
GLuint id
void glBeginPerfMonitorAMD
GLuint monitor
void glBeginPerfQueryINTEL
GLuint queryHandle
void glBeginQuery
GLenum target
GLuint id
void glBeginQueryARB
GLenum target
GLuint id
void glBeginQueryEXT
GLenum target
GLuint id
void glBeginQueryIndexed
GLenum target
GLuint index
GLuint id
void glBeginTransformFeedback
GLenum primitiveMode
void glBeginTransformFeedbackEXT
GLenum primitiveMode
void glBeginTransformFeedbackNV
GLenum primitiveMode
void glBeginVertexShaderEXT
void glBeginVideoCaptureNV
GLuint video_capture_slot
void glBindAttribLocation
GLuint program
GLuint index
const GLchar *name
void glBindAttribLocationARB
GLhandleARB programObj
GLuint index
const GLcharARB *name
void glBindBuffer
GLenum target
GLuint buffer
void glBindBufferARB
GLenum target
GLuint buffer
void glBindBufferBase
GLenum target
GLuint index
GLuint buffer
void glBindBufferBaseEXT
GLenum target
GLuint index
GLuint buffer
void glBindBufferBaseNV
GLenum target
GLuint index
GLuint buffer
void glBindBufferOffsetEXT
GLenum target
GLuint index
GLuint buffer
GLintptr offset
void glBindBufferOffsetNV
GLenum target
GLuint index
GLuint buffer
GLintptr offset
void glBindBufferRange
GLenum target
GLuint index
GLuint buffer
GLintptr offset
GLsizeiptr size
void glBindBufferRangeEXT
GLenum target
GLuint index
GLuint buffer
GLintptr offset
GLsizeiptr size
void glBindBufferRangeNV
GLenum target
GLuint index
GLuint buffer
GLintptr offset
GLsizeiptr size
void glBindBuffersBase
GLenum target
GLuint first
GLsizei count
const GLuint *buffers
void glBindBuffersRange
GLenum target
GLuint first
GLsizei count
const GLuint *buffers
const GLintptr *offsets
const GLsizeiptr *sizes
void glBindFragDataLocation
GLuint program
GLuint color
const GLchar *name
void glBindFragDataLocationEXT
GLuint program
GLuint color
const GLchar *name
void glBindFragDataLocationIndexed
GLuint program
GLuint colorNumber
GLuint index
const GLchar *name
void glBindFragDataLocationIndexedEXT
GLuint program
GLuint colorNumber
GLuint index
const GLchar *name
void glBindFragmentShaderATI
GLuint id
void glBindFramebuffer
GLenum target
GLuint framebuffer
void glBindFramebufferEXT
GLenum target
GLuint framebuffer
void glBindFramebufferOES
GLenum target
GLuint framebuffer
void glBindImageTexture
GLuint unit
GLuint texture
GLint level
GLboolean layered
GLint layer
GLenum access
GLenum format
void glBindImageTextureEXT
GLuint index
GLuint texture
GLint level
GLboolean layered
GLint layer
GLenum access
GLint format
void glBindImageTextures
GLuint first
GLsizei count
const GLuint *textures
GLuint glBindLightParameterEXT
GLenum light
GLenum value
GLuint glBindMaterialParameterEXT
GLenum face
GLenum value
void glBindMultiTextureEXT
GLenum texunit
GLenum target
GLuint texture
GLuint glBindParameterEXT
GLenum value
void glBindProgramARB
GLenum target
GLuint program
void glBindProgramNV
GLenum target
GLuint id
void glBindProgramPipeline
GLuint pipeline
void glBindProgramPipelineEXT
GLuint pipeline
void glBindRenderbuffer
GLenum target
GLuint renderbuffer
void glBindRenderbufferEXT
GLenum target
GLuint renderbuffer
void glBindRenderbufferOES
GLenum target
GLuint renderbuffer
void glBindSampler
GLuint unit
GLuint sampler
void glBindSamplers
GLuint first
GLsizei count
const GLuint *samplers
void glBindShadingRateImageNV
GLuint texture
GLuint glBindTexGenParameterEXT
GLenum unit
GLenum coord
GLenum value
void glBindTexture
GLenum target
GLuint texture
void glBindTextureEXT
GLenum target
GLuint texture
void glBindTextureUnit
GLuint unit
GLuint texture
GLuint glBindTextureUnitParameterEXT
GLenum unit
GLenum value
void glBindTextures
GLuint first
GLsizei count
const GLuint *textures
void glBindTransformFeedback
GLenum target
GLuint id
void glBindTransformFeedbackNV
GLenum target
GLuint id
void glBindVertexArray
GLuint array
void glBindVertexArrayAPPLE
GLuint array
void glBindVertexArrayOES
GLuint array
void glBindVertexBuffer
GLuint bindingindex
GLuint buffer
GLintptr offset
GLsizei stride
void glBindVertexBuffers
GLuint first
GLsizei count
const GLuint *buffers
const GLintptr *offsets
const GLsizei *strides
void glBindVertexShaderEXT
GLuint id
void glBindVideoCaptureStreamBufferNV
GLuint video_capture_slot
GLuint stream
GLenum frame_region
GLintptrARB offset
void glBindVideoCaptureStreamTextureNV
GLuint video_capture_slot
GLuint stream
GLenum frame_region
GLenum target
GLuint texture
void glBinormal3bEXT
GLbyte bx
GLbyte by
GLbyte bz
void glBinormal3bvEXT
const GLbyte *v
void glBinormal3dEXT
GLdouble bx
GLdouble by
GLdouble bz
void glBinormal3dvEXT
const GLdouble *v
void glBinormal3fEXT
GLfloat bx
GLfloat by
GLfloat bz
void glBinormal3fvEXT
const GLfloat *v
void glBinormal3iEXT
GLint bx
GLint by
GLint bz
void glBinormal3ivEXT
const GLint *v
void glBinormal3sEXT
GLshort bx
GLshort by
GLshort bz
void glBinormal3svEXT
const GLshort *v
void glBinormalPointerEXT
GLenum type
GLsizei stride
const void *pointer
void glBitmap
GLsizei width
GLsizei height
GLfloat xorig
GLfloat yorig
GLfloat xmove
GLfloat ymove
const GLubyte *bitmap
void glBitmapxOES
GLsizei width
GLsizei height
GLfixed xorig
GLfixed yorig
GLfixed xmove
GLfixed ymove
const GLubyte *bitmap
void glBlendBarrier
void glBlendBarrierKHR
void glBlendBarrierNV
void glBlendColor
GLfloat red
GLfloat green
GLfloat blue
GLfloat alpha
void glBlendColorEXT
GLfloat red
GLfloat green
GLfloat blue
GLfloat alpha
void glBlendColorxOES
GLfixed red
GLfixed green
GLfixed blue
GLfixed alpha
void glBlendEquation
GLenum mode
void glBlendEquationEXT
GLenum mode
void glBlendEquationIndexedAMD
GLuint buf
GLenum mode
void glBlendEquationOES
GLenum mode
void glBlendEquationSeparate
GLenum modeRGB
GLenum modeAlpha
void glBlendEquationSeparateEXT
GLenum modeRGB
GLenum modeAlpha
void glBlendEquationSeparateIndexedAMD
GLuint buf
GLenum modeRGB
GLenum modeAlpha
void glBlendEquationSeparateOES
GLenum modeRGB
GLenum modeAlpha
void glBlendEquationSeparatei
GLuint buf
GLenum modeRGB
GLenum modeAlpha
void glBlendEquationSeparateiARB
GLuint buf
GLenum modeRGB
GLenum modeAlpha
void glBlendEquationSeparateiEXT
GLuint buf
GLenum modeRGB
GLenum modeAlpha
void glBlendEquationSeparateiOES
GLuint buf
GLenum modeRGB
GLenum modeAlpha
void glBlendEquationi
GLuint buf
GLenum mode
void glBlendEquationiARB
GLuint buf
GLenum mode
void glBlendEquationiEXT
GLuint buf
GLenum mode
void glBlendEquationiOES
GLuint buf
GLenum mode
void glBlendFunc
GLenum sfactor
GLenum dfactor
void glBlendFuncIndexedAMD
GLuint buf
GLenum src
GLenum dst
void glBlendFuncSeparate
GLenum sfactorRGB
GLenum dfactorRGB
GLenum sfactorAlpha
GLenum dfactorAlpha
void glBlendFuncSeparateEXT
GLenum sfactorRGB
GLenum dfactorRGB
GLenum sfactorAlpha
GLenum dfactorAlpha
void glBlendFuncSeparateINGR
GLenum sfactorRGB
GLenum dfactorRGB
GLenum sfactorAlpha
GLenum dfactorAlpha
void glBlendFuncSeparateIndexedAMD
GLuint buf
GLenum srcRGB
GLenum dstRGB
GLenum srcAlpha
GLenum dstAlpha
void glBlendFuncSeparateOES
GLenum srcRGB
GLenum dstRGB
GLenum srcAlpha
GLenum dstAlpha
void glBlendFuncSeparatei
GLuint buf
GLenum srcRGB
GLenum dstRGB
GLenum srcAlpha
GLenum dstAlpha
void glBlendFuncSeparateiARB
GLuint buf
GLenum srcRGB
GLenum dstRGB
GLenum srcAlpha
GLenum dstAlpha
void glBlendFuncSeparateiEXT
GLuint buf
GLenum srcRGB
GLenum dstRGB
GLenum srcAlpha
GLenum dstAlpha
void glBlendFuncSeparateiOES
GLuint buf
GLenum srcRGB
GLenum dstRGB
GLenum srcAlpha
GLenum dstAlpha
void glBlendFunci
GLuint buf
GLenum src
GLenum dst
void glBlendFunciARB
GLuint buf
GLenum src
GLenum dst
void glBlendFunciEXT
GLuint buf
GLenum src
GLenum dst
void glBlendFunciOES
GLuint buf
GLenum src
GLenum dst
void glBlendParameteriNV
GLenum pname
GLint value
void glBlitFramebuffer
GLint srcX0
GLint srcY0
GLint srcX1
GLint srcY1
GLint dstX0
GLint dstY0
GLint dstX1
GLint dstY1
GLbitfield mask
GLenum filter
void glBlitFramebufferANGLE
GLint srcX0
GLint srcY0
GLint srcX1
GLint srcY1
GLint dstX0
GLint dstY0
GLint dstX1
GLint dstY1
GLbitfield mask
GLenum filter
void glBlitFramebufferEXT
GLint srcX0
GLint srcY0
GLint srcX1
GLint srcY1
GLint dstX0
GLint dstY0
GLint dstX1
GLint dstY1
GLbitfield mask
GLenum filter
void glBlitFramebufferNV
GLint srcX0
GLint srcY0
GLint srcX1
GLint srcY1
GLint dstX0
GLint dstY0
GLint dstX1
GLint dstY1
GLbitfield mask
GLenum filter
void glBlitNamedFramebuffer
GLuint readFramebuffer
GLuint drawFramebuffer
GLint srcX0
GLint srcY0
GLint srcX1
GLint srcY1
GLint dstX0
GLint dstY0
GLint dstX1
GLint dstY1
GLbitfield mask
GLenum filter
void glBufferAddressRangeNV
GLenum pname
GLuint index
GLuint64EXT address
GLsizeiptr length
void glBufferAttachMemoryNV
GLenum target
GLuint memory
GLuint64 offset
void glBufferData
GLenum target
GLsizeiptr size
const void *data
GLenum usage
void glBufferDataARB
GLenum target
GLsizeiptrARB size
const void *data
GLenum usage
void glBufferPageCommitmentARB
GLenum target
GLintptr offset
GLsizeiptr size
GLboolean commit
void glBufferParameteriAPPLE
GLenum target
GLenum pname
GLint param
void glBufferStorage
GLenum target
GLsizeiptr size
const void *data
GLbitfield flags
void glBufferStorageEXT
GLenum target
GLsizeiptr size
const void *data
GLbitfield flags
void glBufferStorageExternalEXT
GLenum target
GLintptr offset
GLsizeiptr size
GLeglClientBufferEXT clientBuffer
GLbitfield flags
void glBufferStorageMemEXT
GLenum target
GLsizeiptr size
GLuint memory
GLuint64 offset
void glBufferSubData
GLenum target
GLintptr offset
GLsizeiptr size
const void *data
void glBufferSubDataARB
GLenum target
GLintptrARB offset
GLsizeiptrARB size
const void *data
void glCallCommandListNV
GLuint list
void glCallList
GLuint list
void glCallLists
GLsizei n
GLenum type
const void *lists
GLenum glCheckFramebufferStatus
GLenum target
GLenum glCheckFramebufferStatusEXT
GLenum target
GLenum glCheckFramebufferStatusOES
GLenum target
GLenum glCheckNamedFramebufferStatus
GLuint framebuffer
GLenum target
GLenum glCheckNamedFramebufferStatusEXT
GLuint framebuffer
GLenum target
void glClampColor
GLenum target
GLenum clamp
void glClampColorARB
GLenum target
GLenum clamp
void glClear
GLbitfield mask
void glClearAccum
GLfloat red
GLfloat green
GLfloat blue
GLfloat alpha
void glClearAccumxOES
GLfixed red
GLfixed green
GLfixed blue
GLfixed alpha
void glClearBufferData
GLenum target
GLenum internalformat
GLenum format
GLenum type
const void *data
void glClearBufferSubData
GLenum target
GLenum internalformat
GLintptr offset
GLsizeiptr size
GLenum format
GLenum type
const void *data
void glClearBufferfi
GLenum buffer
GLint drawbuffer
GLfloat depth
GLint stencil
void glClearBufferfv
GLenum buffer
GLint drawbuffer
const GLfloat *value
void glClearBufferiv
GLenum buffer
GLint drawbuffer
const GLint *value
void glClearBufferuiv
GLenum buffer
GLint drawbuffer
const GLuint *value
void glClearColor
GLfloat red
GLfloat green
GLfloat blue
GLfloat alpha
void glClearColorIiEXT
GLint red
GLint green
GLint blue
GLint alpha
void glClearColorIuiEXT
GLuint red
GLuint green
GLuint blue
GLuint alpha
void glClearColorx
GLfixed red
GLfixed green
GLfixed blue
GLfixed alpha
void glClearColorxOES
GLfixed red
GLfixed green
GLfixed blue
GLfixed alpha
void glClearDepth
GLdouble depth
void glClearDepthdNV
GLdouble depth
void glClearDepthf
GLfloat d
void glClearDepthfOES
GLclampf depth
void glClearDepthx
GLfixed depth
void glClearDepthxOES
GLfixed depth
void glClearIndex
GLfloat c
void glClearNamedBufferData
GLuint buffer
GLenum internalformat
GLenum format
GLenum type
const void *data
void glClearNamedBufferDataEXT
GLuint buffer
GLenum internalformat
GLenum format
GLenum type
const void *data
void glClearNamedBufferSubData
GLuint buffer
GLenum internalformat
GLintptr offset
GLsizeiptr size
GLenum format
GLenum type
const void *data
void glClearNamedBufferSubDataEXT
GLuint buffer
GLenum internalformat
GLsizeiptr offset
GLsizeiptr size
GLenum format
GLenum type
const void *data
void glClearNamedFramebufferfi
GLuint framebuffer
GLenum buffer
GLint drawbuffer
GLfloat depth
GLint stencil
void glClearNamedFramebufferfv
GLuint framebuffer
GLenum buffer
GLint drawbuffer
const GLfloat *value
void glClearNamedFramebufferiv
GLuint framebuffer
GLenum buffer
GLint drawbuffer
const GLint *value
void glClearNamedFramebufferuiv
GLuint framebuffer
GLenum buffer
GLint drawbuffer
const GLuint *value
void glClearPixelLocalStorageuiEXT
GLsizei offset
GLsizei n
const GLuint *values
void glClearStencil
GLint s
void glClearTexImage
GLuint texture
GLint level
GLenum format
GLenum type
const void *data
void glClearTexImageEXT
GLuint texture
GLint level
GLenum format
GLenum type
const void *data
void glClearTexSubImage
GLuint texture
GLint level
GLint xoffset
GLint yoffset
GLint zoffset
GLsizei width
GLsizei height
GLsizei depth
GLenum format
GLenum type
const void *data
void glClearTexSubImageEXT
GLuint texture
GLint level
GLint xoffset
GLint yoffset
GLint zoffset
GLsizei width
GLsizei height
GLsizei depth
GLenum format
GLenum type
const void *data
void glClientActiveTexture
GLenum texture
void glClientActiveTextureARB
GLenum texture
void glClientActiveVertexStreamATI
GLenum stream
void glClientAttribDefaultEXT
GLbitfield mask
void glClientWaitSemaphoreui64NVX
GLsizei fenceObjectCount
const GLuint *semaphoreArray
const GLuint64 *fenceValueArray
GLenum glClientWaitSync
GLsync sync
GLbitfield flags
GLuint64 timeout
GLenum glClientWaitSyncAPPLE
GLsync sync
GLbitfield flags
GLuint64 timeout
void glClipControl
GLenum origin
GLenum depth
void glClipControlEXT
GLenum origin
GLenum depth
void glClipPlane
GLenum plane
const GLdouble *equation
void glClipPlanef
GLenum p
const GLfloat *eqn
void glClipPlanefIMG
GLenum p
const GLfloat *eqn
void glClipPlanefOES
GLenum plane
const GLfloat *equation
void glClipPlanex
GLenum plane
const GLfixed *equation
void glClipPlanexIMG
GLenum p
const GLfixed *eqn
void glClipPlanexOES
GLenum plane
const GLfixed *equation
void glColor3b
GLbyte red
GLbyte green
GLbyte blue
void glColor3bv
const GLbyte *v
void glColor3d
GLdouble red
GLdouble green
GLdouble blue
void glColor3dv
const GLdouble *v
void glColor3f
GLfloat red
GLfloat green
GLfloat blue
void glColor3fVertex3fSUN
GLfloat r
GLfloat g
GLfloat b
GLfloat x
GLfloat y
GLfloat z
void glColor3fVertex3fvSUN
const GLfloat *c
const GLfloat *v
void glColor3fv
const GLfloat *v
void glColor3hNV
GLhalfNV red
GLhalfNV green
GLhalfNV blue
void glColor3hvNV
const GLhalfNV *v
void glColor3i
GLint red
GLint green
GLint blue
void glColor3iv
const GLint *v
void glColor3s
GLshort red
GLshort green
GLshort blue
void glColor3sv
const GLshort *v
void glColor3ub
GLubyte red
GLubyte green
GLubyte blue
void glColor3ubv
const GLubyte *v
void glColor3ui
GLuint red
GLuint green
GLuint blue
void glColor3uiv
const GLuint *v
void glColor3us
GLushort red
GLushort green
GLushort blue
void glColor3usv
const GLushort *v
void glColor3xOES
GLfixed red
GLfixed green
GLfixed blue
void glColor3xvOES
const GLfixed *components
void glColor4b
GLbyte red
GLbyte green
GLbyte blue
GLbyte alpha
void glColor4bv
const GLbyte *v
void glColor4d
GLdouble red
GLdouble green
GLdouble blue
GLdouble alpha
void glColor4dv
const GLdouble *v
void glColor4f
GLfloat red
GLfloat green
GLfloat blue
GLfloat alpha
void glColor4fNormal3fVertex3fSUN
GLfloat r
GLfloat g
GLfloat b
GLfloat a
GLfloat nx
GLfloat ny
GLfloat nz
GLfloat x
GLfloat y
GLfloat z
void glColor4fNormal3fVertex3fvSUN
const GLfloat *c
const GLfloat *n
const GLfloat *v
void glColor4fv
const GLfloat *v
void glColor4hNV
GLhalfNV red
GLhalfNV green
GLhalfNV blue
GLhalfNV alpha
void glColor4hvNV
const GLhalfNV *v
void glColor4i
GLint red
GLint green
GLint blue
GLint alpha
void glColor4iv
const GLint *v
void glColor4s
GLshort red
GLshort green
GLshort blue
GLshort alpha
void glColor4sv
const GLshort *v
void glColor4ub
GLubyte red
GLubyte green
GLubyte blue
GLubyte alpha
void glColor4ubVertex2fSUN
GLubyte r
GLubyte g
GLubyte b
GLubyte a
GLfloat x
GLfloat y
void glColor4ubVertex2fvSUN
const GLubyte *c
const GLfloat *v
void glColor4ubVertex3fSUN
GLubyte r
GLubyte g
GLubyte b
GLubyte a
GLfloat x
GLfloat y
GLfloat z
void glColor4ubVertex3fvSUN
const GLubyte *c
const GLfloat *v
void glColor4ubv
const GLubyte *v
void glColor4ui
GLuint red
GLuint green
GLuint blue
GLuint alpha
void glColor4uiv
const GLuint *v
void glColor4us
GLushort red
GLushort green
GLushort blue
GLushort alpha
void glColor4usv
const GLushort *v
void glColor4x
GLfixed red
GLfixed green
GLfixed blue
GLfixed alpha
void glColor4xOES
GLfixed red
GLfixed green
GLfixed blue
GLfixed alpha
void glColor4xvOES
const GLfixed *components
void glColorFormatNV
GLint size
GLenum type
GLsizei stride
void glColorFragmentOp1ATI
GLenum op
GLuint dst
GLuint dstMask
GLuint dstMod
GLuint arg1
GLuint arg1Rep
GLuint arg1Mod
void glColorFragmentOp2ATI
GLenum op
GLuint dst
GLuint dstMask
GLuint dstMod
GLuint arg1
GLuint arg1Rep
GLuint arg1Mod
GLuint arg2
GLuint arg2Rep
GLuint arg2Mod
void glColorFragmentOp3ATI
GLenum op
GLuint dst
GLuint dstMask
GLuint dstMod
GLuint arg1
GLuint arg1Rep
GLuint arg1Mod
GLuint arg2
GLuint arg2Rep
GLuint arg2Mod
GLuint arg3
GLuint arg3Rep
GLuint arg3Mod
void glColorMask
GLboolean red
GLboolean green
GLboolean blue
GLboolean alpha
void glColorMaskIndexedEXT
GLuint index
GLboolean r
GLboolean g
GLboolean b
GLboolean a
void glColorMaski
GLuint index
GLboolean r
GLboolean g
GLboolean b
GLboolean a
void glColorMaskiEXT
GLuint index
GLboolean r
GLboolean g
GLboolean b
GLboolean a
void glColorMaskiOES
GLuint index
GLboolean r
GLboolean g
GLboolean b
GLboolean a
void glColorMaterial
GLenum face
GLenum mode
void glColorP3ui
GLenum type
GLuint color
void glColorP3uiv
GLenum type
const GLuint *color
void glColorP4ui
GLenum type
GLuint color
void glColorP4uiv
GLenum type
const GLuint *color
void glColorPointer
GLint size
GLenum type
GLsizei stride
const void *pointer
void glColorPointerEXT
GLint size
GLenum type
GLsizei stride
GLsizei count
const void *pointer
void glColorPointerListIBM
GLint size
GLenum type
GLint stride
const void **pointer
GLint ptrstride
void glColorPointervINTEL
GLint size
GLenum type
const void **pointer
void glColorSubTable
GLenum target
GLsizei start
GLsizei count
GLenum format
GLenum type
const void *data
void glColorSubTableEXT
GLenum target
GLsizei start
GLsizei count
GLenum format
GLenum type
const void *data
void glColorTable
GLenum target
GLenum internalformat
GLsizei width
GLenum format
GLenum type
const void *table
void glColorTableEXT
GLenum target
GLenum internalFormat
GLsizei width
GLenum format
GLenum type
const void *table
void glColorTableParameterfv
GLenum target
GLenum pname
const GLfloat *params
void glColorTableParameterfvSGI
GLenum target
GLenum pname
const GLfloat *params
void glColorTableParameteriv
GLenum target
GLenum pname
const GLint *params
void glColorTableParameterivSGI
GLenum target
GLenum pname
const GLint *params
void glColorTableSGI
GLenum target
GLenum internalformat
GLsizei width
GLenum format
GLenum type
const void *table
void glCombinerInputNV
GLenum stage
GLenum portion
GLenum variable
GLenum input
GLenum mapping
GLenum componentUsage
void glCombinerOutputNV
GLenum stage
GLenum portion
GLenum abOutput
GLenum cdOutput
GLenum sumOutput
GLenum scale
GLenum bias
GLboolean abDotProduct
GLboolean cdDotProduct
GLboolean muxSum
void glCombinerParameterfNV
GLenum pname
GLfloat param
void glCombinerParameterfvNV
GLenum pname
const GLfloat *params
void glCombinerParameteriNV
GLenum pname
GLint param
void glCombinerParameterivNV
GLenum pname
const GLint *params
void glCombinerStageParameterfvNV
GLenum stage
GLenum pname
const GLfloat *params
void glCommandListSegmentsNV
GLuint list
GLuint segments
void glCompileCommandListNV
GLuint list
void glCompileShader
GLuint shader
void glCompileShaderARB
GLhandleARB shaderObj
void glCompileShaderIncludeARB
GLuint shader
GLsizei count
const GLchar *const*path
const GLint *length
void glCompressedMultiTexImage1DEXT
GLenum texunit
GLenum target
GLint level
GLenum internalformat
GLsizei width
GLint border
GLsizei imageSize
const void *bits
void glCompressedMultiTexImage2DEXT
GLenum texunit
GLenum target
GLint level
GLenum internalformat
GLsizei width
GLsizei height
GLint border
GLsizei imageSize
const void *bits
void glCompressedMultiTexImage3DEXT
GLenum texunit
GLenum target
GLint level
GLenum internalformat
GLsizei width
GLsizei height
GLsizei depth
GLint border
GLsizei imageSize
const void *bits
void glCompressedMultiTexSubImage1DEXT
GLenum texunit
GLenum target
GLint level
GLint xoffset
GLsizei width
GLenum format
GLsizei imageSize
const void *bits
void glCompressedMultiTexSubImage2DEXT
GLenum texunit
GLenum target
GLint level
GLint xoffset
GLint yoffset
GLsizei width
GLsizei height
GLenum format
GLsizei imageSize
const void *bits
void glCompressedMultiTexSubImage3DEXT
GLenum texunit
GLenum target
GLint level
GLint xoffset
GLint yoffset
GLint zoffset
GLsizei width
GLsizei height
GLsizei depth
GLenum format
GLsizei imageSize
const void *bits
void glCompressedTexImage1D
GLenum target
GLint level
GLenum internalformat
GLsizei width
GLint border
GLsizei imageSize
const void *data
void glCompressedTexImage1DARB
GLenum target
GLint level
GLenum internalformat
GLsizei width
GLint border
GLsizei imageSize
const void *data
void glCompressedTexImage2D
GLenum target
GLint level
GLenum internalformat
GLsizei width
GLsizei height
GLint border
GLsizei imageSize
const void *data
void glCompressedTexImage2DARB
GLenum target
GLint level
GLenum internalformat
GLsizei width
GLsizei height
GLint border
GLsizei imageSize
const void *data
void glCompressedTexImage3D
GLenum target
GLint level
GLenum internalformat
GLsizei width
GLsizei height
GLsizei depth
GLint border
GLsizei imageSize
const void *data
void glCompressedTexImage3DARB
GLenum target
GLint level
GLenum internalformat
GLsizei width
GLsizei height
GLsizei depth
GLint border
GLsizei imageSize
const void *data
void glCompressedTexImage3DOES
GLenum target
GLint level
GLenum internalformat
GLsizei width
GLsizei height
GLsizei depth
GLint border
GLsizei imageSize
const void *data
void glCompressedTexSubImage1D
GLenum target
GLint level
GLint xoffset
GLsizei width
GLenum format
GLsizei imageSize
const void *data
void glCompressedTexSubImage1DARB
GLenum target
GLint level
GLint xoffset
GLsizei width
GLenum format
GLsizei imageSize
const void *data
void glCompressedTexSubImage2D
GLenum target
GLint level
GLint xoffset
GLint yoffset
GLsizei width
GLsizei height
GLenum format
GLsizei imageSize
const void *data
void glCompressedTexSubImage2DARB
GLenum target
GLint level
GLint xoffset
GLint yoffset
GLsizei width
GLsizei height
GLenum format
GLsizei imageSize
const void *data
void glCompressedTexSubImage3D
GLenum target
GLint level
GLint xoffset
GLint yoffset
GLint zoffset
GLsizei width
GLsizei height
GLsizei depth
GLenum format
GLsizei imageSize
const void *data
void glCompressedTexSubImage3DARB
GLenum target
GLint level
GLint xoffset
GLint yoffset
GLint zoffset
GLsizei width
GLsizei height
GLsizei depth
GLenum format
GLsizei imageSize
const void *data
void glCompressedTexSubImage3DOES
GLenum target
GLint level
GLint xoffset
GLint yoffset
GLint zoffset
GLsizei width
GLsizei height
GLsizei depth
GLenum format
GLsizei imageSize
const void *data
void glCompressedTextureImage1DEXT
GLuint texture
GLenum target
GLint level
GLenum internalformat
GLsizei width
GLint border
GLsizei imageSize
const void *bits
void glCompressedTextureImage2DEXT
GLuint texture
GLenum target
GLint level
GLenum internalformat
GLsizei width
GLsizei height
GLint border
GLsizei imageSize
const void *bits
void glCompressedTextureImage3DEXT
GLuint texture
GLenum target
GLint level
GLenum internalformat
GLsizei width
GLsizei height
GLsizei depth
GLint border
GLsizei imageSize
const void *bits
void glCompressedTextureSubImage1D
GLuint texture
GLint level
GLint xoffset
GLsizei width
GLenum format
GLsizei imageSize
const void *data
void glCompressedTextureSubImage1DEXT
GLuint texture
GLenum target
GLint level
GLint xoffset
GLsizei width
GLenum format
GLsizei imageSize
const void *bits
void glCompressedTextureSubImage2D
GLuint texture
GLint level
GLint xoffset
GLint yoffset
GLsizei width
GLsizei height
GLenum format
GLsizei imageSize
const void *data
void glCompressedTextureSubImage2DEXT
GLuint texture
GLenum target
GLint level
GLint xoffset
GLint yoffset
GLsizei width
GLsizei height
GLenum format
GLsizei imageSize
const void *bits
void glCompressedTextureSubImage3D
GLuint texture
GLint level
GLint xoffset
GLint yoffset
GLint zoffset
GLsizei width
GLsizei height
GLsizei depth
GLenum format
GLsizei imageSize
const void *data
void glCompressedTextureSubImage3DEXT
GLuint texture
GLenum target
GLint level
GLint xoffset
GLint yoffset
GLint zoffset
GLsizei width
GLsizei height
GLsizei depth
GLenum format
GLsizei imageSize
const void *bits
void glConservativeRasterParameterfNV
GLenum pname
GLfloat value
void glConservativeRasterParameteriNV
GLenum pname
GLint param
void glConvolutionFilter1D
GLenum target
GLenum internalformat
GLsizei width
GLenum format
GLenum type
const void *image
void glConvolutionFilter1DEXT
GLenum target
GLenum internalformat
GLsizei width
GLenum format
GLenum type
const void *image
void glConvolutionFilter2D
GLenum target
GLenum internalformat
GLsizei width
GLsizei height
GLenum format
GLenum type
const void *image
void glConvolutionFilter2DEXT
GLenum target
GLenum internalformat
GLsizei width
GLsizei height
GLenum format
GLenum type
const void *image
void glConvolutionParameterf
GLenum target
GLenum pname
GLfloat params
void glConvolutionParameterfEXT
GLenum target
GLenum pname
GLfloat params
void glConvolutionParameterfv
GLenum target
GLenum pname
const GLfloat *params
void glConvolutionParameterfvEXT
GLenum target
GLenum pname
const GLfloat *params
void glConvolutionParameteri
GLenum target
GLenum pname
GLint params
void glConvolutionParameteriEXT
GLenum target
GLenum pname
GLint params
void glConvolutionParameteriv
GLenum target
GLenum pname
const GLint *params
void glConvolutionParameterivEXT
GLenum target
GLenum pname
const GLint *params
void glConvolutionParameterxOES
GLenum target
GLenum pname
GLfixed param
void glConvolutionParameterxvOES
GLenum target
GLenum pname
const GLfixed *params
void glCopyBufferSubData
GLenum readTarget
GLenum writeTarget
GLintptr readOffset
GLintptr writeOffset
GLsizeiptr size
void glCopyBufferSubDataNV
GLenum readTarget
GLenum writeTarget
GLintptr readOffset
GLintptr writeOffset
GLsizeiptr size
void glCopyColorSubTable
GLenum target
GLsizei start
GLint x
GLint y
GLsizei width
void glCopyColorSubTableEXT
GLenum target
GLsizei start
GLint x
GLint y
GLsizei width
void glCopyColorTable
GLenum target
GLenum internalformat
GLint x
GLint y
GLsizei width
void glCopyColorTableSGI
GLenum target
GLenum internalformat
GLint x
GLint y
GLsizei width
void glCopyConvolutionFilter1D
GLenum target
GLenum internalformat
GLint x
GLint y
GLsizei width
void glCopyConvolutionFilter1DEXT
GLenum target
GLenum internalformat
GLint x
GLint y
GLsizei width
void glCopyConvolutionFilter2D
GLenum target
GLenum internalformat
GLint x
GLint y
GLsizei width
GLsizei height
void glCopyConvolutionFilter2DEXT
GLenum target
GLenum internalformat
GLint x
GLint y
GLsizei width
GLsizei height
void glCopyImageSubData
GLuint srcName
GLenum srcTarget
GLint srcLevel
GLint srcX
GLint srcY
GLint srcZ
GLuint dstName
GLenum dstTarget
GLint dstLevel
GLint dstX
GLint dstY
GLint dstZ
GLsizei srcWidth
GLsizei srcHeight
GLsizei srcDepth
void glCopyImageSubDataEXT
GLuint srcName
GLenum srcTarget
GLint srcLevel
GLint srcX
GLint srcY
GLint srcZ
GLuint dstName
GLenum dstTarget
GLint dstLevel
GLint dstX
GLint dstY
GLint dstZ
GLsizei srcWidth
GLsizei srcHeight
GLsizei srcDepth
void glCopyImageSubDataNV
GLuint srcName
GLenum srcTarget
GLint srcLevel
GLint srcX
GLint srcY
GLint srcZ
GLuint dstName
GLenum dstTarget
GLint dstLevel
GLint dstX
GLint dstY
GLint dstZ
GLsizei width
GLsizei height
GLsizei depth
void glCopyImageSubDataOES
GLuint srcName
GLenum srcTarget
GLint srcLevel
GLint srcX
GLint srcY
GLint srcZ
GLuint dstName
GLenum dstTarget
GLint dstLevel
GLint dstX
GLint dstY
GLint dstZ
GLsizei srcWidth
GLsizei srcHeight
GLsizei srcDepth
void glCopyMultiTexImage1DEXT
GLenum texunit
GLenum target
GLint level
GLenum internalformat
GLint x
GLint y
GLsizei width
GLint border
void glCopyMultiTexImage2DEXT
GLenum texunit
GLenum target
GLint level
GLenum internalformat
GLint x
GLint y
GLsizei width
GLsizei height
GLint border
void glCopyMultiTexSubImage1DEXT
GLenum texunit
GLenum target
GLint level
GLint xoffset
GLint x
GLint y
GLsizei width
void glCopyMultiTexSubImage2DEXT
GLenum texunit
GLenum target
GLint level
GLint xoffset
GLint yoffset
GLint x
GLint y
GLsizei width
GLsizei height
void glCopyMultiTexSubImage3DEXT
GLenum texunit
GLenum target
GLint level
GLint xoffset
GLint yoffset
GLint zoffset
GLint x
GLint y
GLsizei width
GLsizei height
void glCopyNamedBufferSubData
GLuint readBuffer
GLuint writeBuffer
GLintptr readOffset
GLintptr writeOffset
GLsizeiptr size
void glCopyPathNV
GLuint resultPath
GLuint srcPath
void glCopyPixels
GLint x
GLint y
GLsizei width
GLsizei height
GLenum type
void glCopyTexImage1D
GLenum target
GLint level
GLenum internalformat
GLint x
GLint y
GLsizei width
GLint border
void glCopyTexImage1DEXT
GLenum target
GLint level
GLenum internalformat
GLint x
GLint y
GLsizei width
GLint border
void glCopyTexImage2D
GLenum target
GLint level
GLenum internalformat
GLint x
GLint y
GLsizei width
GLsizei height
GLint border
void glCopyTexImage2DEXT
GLenum target
GLint level
GLenum internalformat
GLint x
GLint y
GLsizei width
GLsizei height
GLint border
void glCopyTexSubImage1D
GLenum target
GLint level
GLint xoffset
GLint x
GLint y
GLsizei width
void glCopyTexSubImage1DEXT
GLenum target
GLint level
GLint xoffset
GLint x
GLint y
GLsizei width
void glCopyTexSubImage2D
GLenum target
GLint level
GLint xoffset
GLint yoffset
GLint x
GLint y
GLsizei width
GLsizei height
void glCopyTexSubImage2DEXT
GLenum target
GLint level
GLint xoffset
GLint yoffset
GLint x
GLint y
GLsizei width
GLsizei height
void glCopyTexSubImage3D
GLenum target
GLint level
GLint xoffset
GLint yoffset
GLint zoffset
GLint x
GLint y
GLsizei width
GLsizei height
void glCopyTexSubImage3DEXT
GLenum target
GLint level
GLint xoffset
GLint yoffset
GLint zoffset
GLint x
GLint y
GLsizei width
GLsizei height
void glCopyTexSubImage3DOES
GLenum target
GLint level
GLint xoffset
GLint yoffset
GLint zoffset
GLint x
GLint y
GLsizei width
GLsizei height
void glCopyTextureImage1DEXT
GLuint texture
GLenum target
GLint level
GLenum internalformat
GLint x
GLint y
GLsizei width
GLint border
void glCopyTextureImage2DEXT
GLuint texture
GLenum target
GLint level
GLenum internalformat
GLint x
GLint y
GLsizei width
GLsizei height
GLint border
void glCopyTextureLevelsAPPLE
GLuint destinationTexture
GLuint sourceTexture
GLint sourceBaseLevel
GLsizei sourceLevelCount
void glCopyTextureSubImage1D
GLuint texture
GLint level
GLint xoffset
GLint x
GLint y
GLsizei width
void glCopyTextureSubImage1DEXT
GLuint texture
GLenum target
GLint level
GLint xoffset
GLint x
GLint y
GLsizei width
void glCopyTextureSubImage2D
GLuint texture
GLint level
GLint xoffset
GLint yoffset
GLint x
GLint y
GLsizei width
GLsizei height
void glCopyTextureSubImage2DEXT
GLuint texture
GLenum target
GLint level
GLint xoffset
GLint yoffset
GLint x
GLint y
GLsizei width
GLsizei height
void glCopyTextureSubImage3D
GLuint texture
GLint level
GLint xoffset
GLint yoffset
GLint zoffset
GLint x
GLint y
GLsizei width
GLsizei height
void glCopyTextureSubImage3DEXT
GLuint texture
GLenum target
GLint level
GLint xoffset
GLint yoffset
GLint zoffset
GLint x
GLint y
GLsizei width
GLsizei height
void glCoverFillPathInstancedNV
GLsizei numPaths
GLenum pathNameType
const void *paths
GLuint pathBase
GLenum coverMode
GLenum transformType
const GLfloat *transformValues
void glCoverFillPathNV
GLuint path
GLenum coverMode
void glCoverStrokePathInstancedNV
GLsizei numPaths
GLenum pathNameType
const void *paths
GLuint pathBase
GLenum coverMode
GLenum transformType
const GLfloat *transformValues
void glCoverStrokePathNV
GLuint path
GLenum coverMode
void glCoverageMaskNV
GLboolean mask
void glCoverageModulationNV
GLenum components
void glCoverageModulationTableNV
GLsizei n
const GLfloat *v
void glCoverageOperationNV
GLenum operation
void glCreateBuffers
GLsizei n
GLuint *buffers
void glCreateCommandListsNV
GLsizei n
GLuint *lists
void glCreateFramebuffers
GLsizei n
GLuint *framebuffers
void glCreateMemoryObjectsEXT
GLsizei n
GLuint *memoryObjects
void glCreatePerfQueryINTEL
GLuint queryId
GLuint *queryHandle
GLuint glCreateProgram
GLhandleARB glCreateProgramObjectARB
void glCreateProgramPipelines
GLsizei n
GLuint *pipelines
GLuint glCreateProgressFenceNVX
void glCreateQueries
GLenum target
GLsizei n
GLuint *ids
void glCreateRenderbuffers
GLsizei n
GLuint *renderbuffers
void glCreateSamplers
GLsizei n
GLuint *samplers
GLuint glCreateShader
GLenum type
GLhandleARB glCreateShaderObjectARB
GLenum shaderType
GLuint glCreateShaderProgramEXT
GLenum type
const GLchar *string
GLuint glCreateShaderProgramv
GLenum type
GLsizei count
const GLchar *const*strings
GLuint glCreateShaderProgramvEXT
GLenum type
GLsizei count
const GLchar **strings
void glCreateStatesNV
GLsizei n
GLuint *states
GLsync glCreateSyncFromCLeventARB
struct _cl_context *context
struct _cl_event *event
GLbitfield flags
void glCreateTextures
GLenum target
GLsizei n
GLuint *textures
void glCreateTransformFeedbacks
GLsizei n
GLuint *ids
void glCreateVertexArrays
GLsizei n
GLuint *arrays
void glCullFace
GLenum mode
void glCullParameterdvEXT
GLenum pname
GLdouble *params
void glCullParameterfvEXT
GLenum pname
GLfloat *params
void glCurrentPaletteMatrixARB
GLint index
void glCurrentPaletteMatrixOES
GLuint matrixpaletteindex
void glDebugMessageCallback
GLDEBUGPROC callback
const void *userParam
void glDebugMessageCallbackAMD
GLDEBUGPROCAMD callback
void *userParam
void glDebugMessageCallbackARB
GLDEBUGPROCARB callback
const void *userParam
void glDebugMessageCallbackKHR
GLDEBUGPROCKHR callback
const void *userParam
void glDebugMessageControl
GLenum source
GLenum type
GLenum severity
GLsizei count
const GLuint *ids
GLboolean enabled
void glDebugMessageControlARB
GLenum source
GLenum type
GLenum severity
GLsizei count
const GLuint *ids
GLboolean enabled
void glDebugMessageControlKHR
GLenum source
GLenum type
GLenum severity
GLsizei count
const GLuint *ids
GLboolean enabled
void glDebugMessageEnableAMD
GLenum category
GLenum severity
GLsizei count
const GLuint *ids
GLboolean enabled
void glDebugMessageInsert
GLenum source
GLenum type
GLuint id
GLenum severity
GLsizei length
const GLchar *buf
void glDebugMessageInsertAMD
GLenum category
GLenum severity
GLuint id
GLsizei length
const GLchar *buf
void glDebugMessageInsertARB
GLenum source
GLenum type
GLuint id
GLenum severity
GLsizei length
const GLchar *buf
void glDebugMessageInsertKHR
GLenum source
GLenum type
GLuint id
GLenum severity
GLsizei length
const GLchar *buf
void glDeformSGIX
GLbitfield mask
void glDeformationMap3dSGIX
GLenum target
GLdouble u1
GLdouble u2
GLint ustride
GLint uorder
GLdouble v1
GLdouble v2
GLint vstride
GLint vorder
GLdouble w1
GLdouble w2
GLint wstride
GLint worder
const GLdouble *points
void glDeformationMap3fSGIX
GLenum target
GLfloat u1
GLfloat u2
GLint ustride
GLint uorder
GLfloat v1
GLfloat v2
GLint vstride
GLint vorder
GLfloat w1
GLfloat w2
GLint wstride
GLint worder
const GLfloat *points
void glDeleteAsyncMarkersSGIX
GLuint marker
GLsizei range
void glDeleteBuffers
GLsizei n
const GLuint *buffers
void glDeleteBuffersARB
GLsizei n
const GLuint *buffers
void glDeleteCommandListsNV
GLsizei n
const GLuint *lists
void glDeleteFencesAPPLE
GLsizei n
const GLuint *fences
void glDeleteFencesNV
GLsizei n
const GLuint *fences
void glDeleteFragmentShaderATI
GLuint id
void glDeleteFramebuffers
GLsizei n
const GLuint *framebuffers
void glDeleteFramebuffersEXT
GLsizei n
const GLuint *framebuffers
void glDeleteFramebuffersOES
GLsizei n
const GLuint *framebuffers
void glDeleteLists
GLuint list
GLsizei range
void glDeleteMemoryObjectsEXT
GLsizei n
const GLuint *memoryObjects
void glDeleteNamedStringARB
GLint namelen
const GLchar *name
void glDeleteNamesAMD
GLenum identifier
GLuint num
const GLuint *names
void glDeleteObjectARB
GLhandleARB obj
void glDeleteOcclusionQueriesNV
GLsizei n
const GLuint *ids
void glDeletePathsNV
GLuint path
GLsizei range
void glDeletePerfMonitorsAMD
GLsizei n
GLuint *monitors
void glDeletePerfQueryINTEL
GLuint queryHandle
void glDeleteProgram
GLuint program
void glDeleteProgramPipelines
GLsizei n
const GLuint *pipelines
void glDeleteProgramPipelinesEXT
GLsizei n
const GLuint *pipelines
void glDeleteProgramsARB
GLsizei n
const GLuint *programs
void glDeleteProgramsNV
GLsizei n
const GLuint *programs
void glDeleteQueries
GLsizei n
const GLuint *ids
void glDeleteQueriesARB
GLsizei n
const GLuint *ids
void glDeleteQueriesEXT
GLsizei n
const GLuint *ids
void glDeleteQueryResourceTagNV
GLsizei n
const GLint *tagIds
void glDeleteRenderbuffers
GLsizei n
const GLuint *renderbuffers
void glDeleteRenderbuffersEXT
GLsizei n
const GLuint *renderbuffers
void glDeleteRenderbuffersOES
GLsizei n
const GLuint *renderbuffers
void glDeleteSamplers
GLsizei count
const GLuint *samplers
void glDeleteSemaphoresEXT
GLsizei n
const GLuint *semaphores
void glDeleteShader
GLuint shader
void glDeleteStatesNV
GLsizei n
const GLuint *states
void glDeleteSync
GLsync sync
void glDeleteSyncAPPLE
GLsync sync
void glDeleteTextures
GLsizei n
const GLuint *textures
void glDeleteTexturesEXT
GLsizei n
const GLuint *textures
void glDeleteTransformFeedbacks
GLsizei n
const GLuint *ids
void glDeleteTransformFeedbacksNV
GLsizei n
const GLuint *ids
void glDeleteVertexArrays
GLsizei n
const GLuint *arrays
void glDeleteVertexArraysAPPLE
GLsizei n
const GLuint *arrays
void glDeleteVertexArraysOES
GLsizei n
const GLuint *arrays
void glDeleteVertexShaderEXT
GLuint id
void glDepthBoundsEXT
GLclampd zmin
GLclampd zmax
void glDepthBoundsdNV
GLdouble zmin
GLdouble zmax
void glDepthFunc
GLenum func
void glDepthMask
GLboolean flag
void glDepthRange
GLdouble n
GLdouble f
void glDepthRangeArrayfvNV
GLuint first
GLsizei count
const GLfloat *v
void glDepthRangeArrayfvOES
GLuint first
GLsizei count
const GLfloat *v
void glDepthRangeArrayv
GLuint first
GLsizei count
const GLdouble *v
void glDepthRangeIndexed
GLuint index
GLdouble n
GLdouble f
void glDepthRangeIndexedfNV
GLuint index
GLfloat n
GLfloat f
void glDepthRangeIndexedfOES
GLuint index
GLfloat n
GLfloat f
void glDepthRangedNV
GLdouble zNear
GLdouble zFar
void glDepthRangef
GLfloat n
GLfloat f
void glDepthRangefOES
GLclampf n
GLclampf f
void glDepthRangex
GLfixed n
GLfixed f
void glDepthRangexOES
GLfixed n
GLfixed f
void glDetachObjectARB
GLhandleARB containerObj
GLhandleARB attachedObj
void glDetachShader
GLuint program
GLuint shader
void glDetailTexFuncSGIS
GLenum target
GLsizei n
const GLfloat *points
void glDisable
GLenum cap
void glDisableClientState
GLenum array
void glDisableClientStateIndexedEXT
GLenum array
GLuint index
void glDisableClientStateiEXT
GLenum array
GLuint index
void glDisableDriverControlQCOM
GLuint driverControl
void glDisableIndexedEXT
GLenum target
GLuint index
void glDisableVariantClientStateEXT
GLuint id
void glDisableVertexArrayAttrib
GLuint vaobj
GLuint index
void glDisableVertexArrayAttribEXT
GLuint vaobj
GLuint index
void glDisableVertexArrayEXT
GLuint vaobj
GLenum array
void glDisableVertexAttribAPPLE
GLuint index
GLenum pname
void glDisableVertexAttribArray
GLuint index
void glDisableVertexAttribArrayARB
GLuint index
void glDisablei
GLenum target
GLuint index
void glDisableiEXT
GLenum target
GLuint index
void glDisableiNV
GLenum target
GLuint index
void glDisableiOES
GLenum target
GLuint index
void glDiscardFramebufferEXT
GLenum target
GLsizei numAttachments
const GLenum *attachments
void glDispatchCompute
GLuint num_groups_x
GLuint num_groups_y
GLuint num_groups_z
void glDispatchComputeGroupSizeARB
GLuint num_groups_x
GLuint num_groups_y
GLuint num_groups_z
GLuint group_size_x
GLuint group_size_y
GLuint group_size_z
void glDispatchComputeIndirect
GLintptr indirect
void glDrawArrays
GLenum mode
GLint first
GLsizei count
void glDrawArraysEXT
GLenum mode
GLint first
GLsizei count
void glDrawArraysIndirect
GLenum mode
const void *indirect
void glDrawArraysInstanced
GLenum mode
GLint first
GLsizei count
GLsizei instancecount
void glDrawArraysInstancedANGLE
GLenum mode
GLint first
GLsizei count
GLsizei primcount
void glDrawArraysInstancedARB
GLenum mode
GLint first
GLsizei count
GLsizei primcount
void glDrawArraysInstancedBaseInstance
GLenum mode
GLint first
GLsizei count
GLsizei instancecount
GLuint baseinstance
void glDrawArraysInstancedBaseInstanceEXT
GLenum mode
GLint first
GLsizei count
GLsizei instancecount
GLuint baseinstance
void glDrawArraysInstancedEXT
GLenum mode
GLint start
GLsizei count
GLsizei primcount
void glDrawArraysInstancedNV
GLenum mode
GLint first
GLsizei count
GLsizei primcount
void glDrawBuffer
GLenum buf
void glDrawBuffers
GLsizei n
const GLenum *bufs
void glDrawBuffersARB
GLsizei n
const GLenum *bufs
void glDrawBuffersATI
GLsizei n
const GLenum *bufs
void glDrawBuffersEXT
GLsizei n
const GLenum *bufs
void glDrawBuffersIndexedEXT
GLint n
const GLenum *location
const GLint *indices
void glDrawBuffersNV
GLsizei n
const GLenum *bufs
void glDrawCommandsAddressNV
GLenum primitiveMode
const GLuint64 *indirects
const GLsizei *sizes
GLuint count
void glDrawCommandsNV
GLenum primitiveMode
GLuint buffer
const GLintptr *indirects
const GLsizei *sizes
GLuint count
void glDrawCommandsStatesAddressNV
const GLuint64 *indirects
const GLsizei *sizes
const GLuint *states
const GLuint *fbos
GLuint count
void glDrawCommandsStatesNV
GLuint buffer
const GLintptr *indirects
const GLsizei *sizes
const GLuint *states
const GLuint *fbos
GLuint count
void glDrawElementArrayAPPLE
GLenum mode
GLint first
GLsizei count
void glDrawElementArrayATI
GLenum mode
GLsizei count
void glDrawElements
GLenum mode
GLsizei count
GLenum type
const void *indices
void glDrawElementsBaseVertex
GLenum mode
GLsizei count
GLenum type
const void *indices
GLint basevertex
void glDrawElementsBaseVertexEXT
GLenum mode
GLsizei count
GLenum type
const void *indices
GLint basevertex
void glDrawElementsBaseVertexOES
GLenum mode
GLsizei count
GLenum type
const void *indices
GLint basevertex
void glDrawElementsIndirect
GLenum mode
GLenum type
const void *indirect
void glDrawElementsInstanced
GLenum mode
GLsizei count
GLenum type
const void *indices
GLsizei instancecount
void glDrawElementsInstancedANGLE
GLenum mode
GLsizei count
GLenum type
const void *indices
GLsizei primcount
void glDrawElementsInstancedARB
GLenum mode
GLsizei count
GLenum type
const void *indices
GLsizei primcount
void glDrawElementsInstancedBaseInstance
GLenum mode
GLsizei count
GLenum type
const void *indices
GLsizei instancecount
GLuint baseinstance
void glDrawElementsInstancedBaseInstanceEXT
GLenum mode
GLsizei count
GLenum type
const void *indices
GLsizei instancecount
GLuint baseinstance
void glDrawElementsInstancedBaseVertex
GLenum mode
GLsizei count
GLenum type
const void *indices
GLsizei instancecount
GLint basevertex
void glDrawElementsInstancedBaseVertexBaseInstance
GLenum mode
GLsizei count
GLenum type
const void *indices
GLsizei instancecount
GLint basevertex
GLuint baseinstance
void glDrawElementsInstancedBaseVertexBaseInstanceEXT
GLenum mode
GLsizei count
GLenum type
const void *indices
GLsizei instancecount
GLint basevertex
GLuint baseinstance
void glDrawElementsInstancedBaseVertexEXT
GLenum mode
GLsizei count
GLenum type
const void *indices
GLsizei instancecount
GLint basevertex
void glDrawElementsInstancedBaseVertexOES
GLenum mode
GLsizei count
GLenum type
const void *indices
GLsizei instancecount
GLint basevertex
void glDrawElementsInstancedEXT
GLenum mode
GLsizei count
GLenum type
const void *indices
GLsizei primcount
void glDrawElementsInstancedNV
GLenum mode
GLsizei count
GLenum type
const void *indices
GLsizei primcount
void glDrawMeshArraysSUN
GLenum mode
GLint first
GLsizei count
GLsizei width
void glDrawMeshTasksNV
GLuint first
GLuint count
void glDrawMeshTasksIndirectNV
GLintptr indirect
void glDrawPixels
GLsizei width
GLsizei height
GLenum format
GLenum type
const void *pixels
void glDrawRangeElementArrayAPPLE
GLenum mode
GLuint start
GLuint end
GLint first
GLsizei count
void glDrawRangeElementArrayATI
GLenum mode
GLuint start
GLuint end
GLsizei count
void glDrawRangeElements
GLenum mode
GLuint start
GLuint end
GLsizei count
GLenum type
const void *indices
void glDrawRangeElementsBaseVertex
GLenum mode
GLuint start
GLuint end
GLsizei count
GLenum type
const void *indices
GLint basevertex
void glDrawRangeElementsBaseVertexEXT
GLenum mode
GLuint start
GLuint end
GLsizei count
GLenum type
const void *indices
GLint basevertex
void glDrawRangeElementsBaseVertexOES
GLenum mode
GLuint start
GLuint end
GLsizei count
GLenum type
const void *indices
GLint basevertex
void glDrawRangeElementsEXT
GLenum mode
GLuint start
GLuint end
GLsizei count
GLenum type
const void *indices
void glDrawTexfOES
GLfloat x
GLfloat y
GLfloat z
GLfloat width
GLfloat height
void glDrawTexfvOES
const GLfloat *coords
void glDrawTexiOES
GLint x
GLint y
GLint z
GLint width
GLint height
void glDrawTexivOES
const GLint *coords
void glDrawTexsOES
GLshort x
GLshort y
GLshort z
GLshort width
GLshort height
void glDrawTexsvOES
const GLshort *coords
void glDrawTextureNV
GLuint texture
GLuint sampler
GLfloat x0
GLfloat y0
GLfloat x1
GLfloat y1
GLfloat z
GLfloat s0
GLfloat t0
GLfloat s1
GLfloat t1
void glDrawTexxOES
GLfixed x
GLfixed y
GLfixed z
GLfixed width
GLfixed height
void glDrawTexxvOES
const GLfixed *coords
void glDrawTransformFeedback
GLenum mode
GLuint id
void glDrawTransformFeedbackEXT
GLenum mode
GLuint id
void glDrawTransformFeedbackInstanced
GLenum mode
GLuint id
GLsizei instancecount
void glDrawTransformFeedbackInstancedEXT
GLenum mode
GLuint id
GLsizei instancecount
void glDrawTransformFeedbackNV
GLenum mode
GLuint id
void glDrawTransformFeedbackStream
GLenum mode
GLuint id
GLuint stream
void glDrawTransformFeedbackStreamInstanced
GLenum mode
GLuint id
GLuint stream
GLsizei instancecount
void glEGLImageTargetRenderbufferStorageOES
GLenum target
GLeglImageOES image
void glEGLImageTargetTexStorageEXT
GLenum target
GLeglImageOES image
const GLint* attrib_list
void glEGLImageTargetTexture2DOES
GLenum target
GLeglImageOES image
void glEGLImageTargetTextureStorageEXT
GLuint texture
GLeglImageOES image
const GLint* attrib_list
void glEdgeFlag
GLboolean flag
void glEdgeFlagFormatNV
GLsizei stride
void glEdgeFlagPointer
GLsizei stride
const void *pointer
void glEdgeFlagPointerEXT
GLsizei stride
GLsizei count
const GLboolean *pointer
void glEdgeFlagPointerListIBM
GLint stride
const GLboolean **pointer
GLint ptrstride
void glEdgeFlagv
const GLboolean *flag
void glElementPointerAPPLE
GLenum type
const void *pointer
void glElementPointerATI
GLenum type
const void *pointer
void glEnable
GLenum cap
void glEnableClientState
GLenum array
void glEnableClientStateIndexedEXT
GLenum array
GLuint index
void glEnableClientStateiEXT
GLenum array
GLuint index
void glEnableDriverControlQCOM
GLuint driverControl
void glEnableIndexedEXT
GLenum target
GLuint index
void glEnableVariantClientStateEXT
GLuint id
void glEnableVertexArrayAttrib
GLuint vaobj
GLuint index
void glEnableVertexArrayAttribEXT
GLuint vaobj
GLuint index
void glEnableVertexArrayEXT
GLuint vaobj
GLenum array
void glEnableVertexAttribAPPLE
GLuint index
GLenum pname
void glEnableVertexAttribArray
GLuint index
void glEnableVertexAttribArrayARB
GLuint index
void glEnablei
GLenum target
GLuint index
void glEnableiEXT
GLenum target
GLuint index
void glEnableiNV
GLenum target
GLuint index
void glEnableiOES
GLenum target
GLuint index
void glEnd
void glEndConditionalRender
void glEndConditionalRenderNV
void glEndConditionalRenderNVX
void glEndFragmentShaderATI
void glEndList
void glEndOcclusionQueryNV
void glEndPerfMonitorAMD
GLuint monitor
void glEndPerfQueryINTEL
GLuint queryHandle
void glEndQuery
GLenum target
void glEndQueryARB
GLenum target
void glEndQueryEXT
GLenum target
void glEndQueryIndexed
GLenum target
GLuint index
void glEndTilingQCOM
GLbitfield preserveMask
void glEndTransformFeedback
void glEndTransformFeedbackEXT
void glEndTransformFeedbackNV
void glEndVertexShaderEXT
void glEndVideoCaptureNV
GLuint video_capture_slot
void glEvalCoord1d
GLdouble u
void glEvalCoord1dv
const GLdouble *u
void glEvalCoord1f
GLfloat u
void glEvalCoord1fv
const GLfloat *u
void glEvalCoord1xOES
GLfixed u
void glEvalCoord1xvOES
const GLfixed *coords
void glEvalCoord2d
GLdouble u
GLdouble v
void glEvalCoord2dv
const GLdouble *u
void glEvalCoord2f
GLfloat u
GLfloat v
void glEvalCoord2fv
const GLfloat *u
void glEvalCoord2xOES
GLfixed u
GLfixed v
void glEvalCoord2xvOES
const GLfixed *coords
void glEvalMapsNV
GLenum target
GLenum mode
void glEvalMesh1
GLenum mode
GLint i1
GLint i2
void glEvalMesh2
GLenum mode
GLint i1
GLint i2
GLint j1
GLint j2
void glEvalPoint1
GLint i
void glEvalPoint2
GLint i
GLint j
void glEvaluateDepthValuesARB
void glExecuteProgramNV
GLenum target
GLuint id
const GLfloat *params
void glExtGetBufferPointervQCOM
GLenum target
void **params
void glExtGetBuffersQCOM
GLuint *buffers
GLint maxBuffers
GLint *numBuffers
void glExtGetFramebuffersQCOM
GLuint *framebuffers
GLint maxFramebuffers
GLint *numFramebuffers
void glExtGetProgramBinarySourceQCOM
GLuint program
GLenum shadertype
GLchar *source
GLint *length
void glExtGetProgramsQCOM
GLuint *programs
GLint maxPrograms
GLint *numPrograms
void glExtGetRenderbuffersQCOM
GLuint *renderbuffers
GLint maxRenderbuffers
GLint *numRenderbuffers
void glExtGetShadersQCOM
GLuint *shaders
GLint maxShaders
GLint *numShaders
void glExtGetTexLevelParameterivQCOM
GLuint texture
GLenum face
GLint level
GLenum pname
GLint *params
void glExtGetTexSubImageQCOM
GLenum target
GLint level
GLint xoffset
GLint yoffset
GLint zoffset
GLsizei width
GLsizei height
GLsizei depth
GLenum format
GLenum type
void *texels
void glExtGetTexturesQCOM
GLuint *textures
GLint maxTextures
GLint *numTextures
GLboolean glExtIsProgramBinaryQCOM
GLuint program
void glExtTexObjectStateOverrideiQCOM
GLenum target
GLenum pname
GLint param
void glExtractComponentEXT
GLuint res
GLuint src
GLuint num
void glFeedbackBuffer
GLsizei size
GLenum type
GLfloat *buffer
void glFeedbackBufferxOES
GLsizei n
GLenum type
const GLfixed *buffer
GLsync glFenceSync
GLenum condition
GLbitfield flags
GLsync glFenceSyncAPPLE
GLenum condition
GLbitfield flags
void glFinalCombinerInputNV
GLenum variable
GLenum input
GLenum mapping
GLenum componentUsage
void glFinish
GLint glFinishAsyncSGIX
GLuint *markerp
void glFinishFenceAPPLE
GLuint fence
void glFinishFenceNV
GLuint fence
void glFinishObjectAPPLE
GLenum object
GLint name
void glFinishTextureSUNX
void glFlush
void glFlushMappedBufferRange
GLenum target
GLintptr offset
GLsizeiptr length
void glFlushMappedBufferRangeAPPLE
GLenum target
GLintptr offset
GLsizeiptr size
void glFlushMappedBufferRangeEXT
GLenum target
GLintptr offset
GLsizeiptr length
void glFlushMappedNamedBufferRange
GLuint buffer
GLintptr offset
GLsizeiptr length
void glFlushMappedNamedBufferRangeEXT
GLuint buffer
GLintptr offset
GLsizeiptr length
void glFlushPixelDataRangeNV
GLenum target
void glFlushRasterSGIX
void glFlushStaticDataIBM
GLenum target
void glFlushVertexArrayRangeAPPLE
GLsizei length
void *pointer
void glFlushVertexArrayRangeNV
void glFogCoordFormatNV
GLenum type
GLsizei stride
void glFogCoordPointer
GLenum type
GLsizei stride
const void *pointer
void glFogCoordPointerEXT
GLenum type
GLsizei stride
const void *pointer
void glFogCoordPointerListIBM
GLenum type
GLint stride
const void **pointer
GLint ptrstride
void glFogCoordd
GLdouble coord
void glFogCoorddEXT
GLdouble coord
void glFogCoorddv
const GLdouble *coord
void glFogCoorddvEXT
const GLdouble *coord
void glFogCoordf
GLfloat coord
void glFogCoordfEXT
GLfloat coord
void glFogCoordfv
const GLfloat *coord
void glFogCoordfvEXT
const GLfloat *coord
void glFogCoordhNV
GLhalfNV fog
void glFogCoordhvNV
const GLhalfNV *fog
void glFogFuncSGIS
GLsizei n
const GLfloat *points
void glFogf
GLenum pname
GLfloat param
void glFogfv
GLenum pname
const GLfloat *params
void glFogi
GLenum pname
GLint param
void glFogiv
GLenum pname
const GLint *params
void glFogx
GLenum pname
GLfixed param
void glFogxOES
GLenum pname
GLfixed param
void glFogxv
GLenum pname
const GLfixed *param
void glFogxvOES
GLenum pname
const GLfixed *param
void glFragmentColorMaterialSGIX
GLenum face
GLenum mode
void glFragmentCoverageColorNV
GLuint color
void glFragmentLightModelfSGIX
GLenum pname
GLfloat param
void glFragmentLightModelfvSGIX
GLenum pname
const GLfloat *params
void glFragmentLightModeliSGIX
GLenum pname
GLint param
void glFragmentLightModelivSGIX
GLenum pname
const GLint *params
void glFragmentLightfSGIX
GLenum light
GLenum pname
GLfloat param
void glFragmentLightfvSGIX
GLenum light
GLenum pname
const GLfloat *params
void glFragmentLightiSGIX
GLenum light
GLenum pname
GLint param
void glFragmentLightivSGIX
GLenum light
GLenum pname
const GLint *params
void glFragmentMaterialfSGIX
GLenum face
GLenum pname
GLfloat param
void glFragmentMaterialfvSGIX
GLenum face
GLenum pname
const GLfloat *params
void glFragmentMaterialiSGIX
GLenum face
GLenum pname
GLint param
void glFragmentMaterialivSGIX
GLenum face
GLenum pname
const GLint *params
void glFrameTerminatorGREMEDY
void glFrameZoomSGIX
GLint factor
void glFramebufferDrawBufferEXT
GLuint framebuffer
GLenum mode
void glFramebufferDrawBuffersEXT
GLuint framebuffer
GLsizei n
const GLenum *bufs
void glFramebufferFetchBarrierEXT
void glFramebufferFetchBarrierQCOM
void glFramebufferFoveationConfigQCOM
GLuint framebuffer
GLuint numLayers
GLuint focalPointsPerLayer
GLuint requestedFeatures
GLuint *providedFeatures
void glFramebufferFoveationParametersQCOM
GLuint framebuffer
GLuint layer
GLuint focalPoint
GLfloat focalX
GLfloat focalY
GLfloat gainX
GLfloat gainY
GLfloat foveaArea
void glFramebufferParameteri
GLenum target
GLenum pname
GLint param
void glFramebufferPixelLocalStorageSizeEXT
GLuint target
GLsizei size
void glFramebufferReadBufferEXT
GLuint framebuffer
GLenum mode
void glFramebufferRenderbuffer
GLenum target
GLenum attachment
GLenum renderbuffertarget
GLuint renderbuffer
void glFramebufferRenderbufferEXT
GLenum target
GLenum attachment
GLenum renderbuffertarget
GLuint renderbuffer
void glFramebufferRenderbufferOES
GLenum target
GLenum attachment
GLenum renderbuffertarget
GLuint renderbuffer
void glFramebufferSampleLocationsfvARB
GLenum target
GLuint start
GLsizei count
const GLfloat *v
void glFramebufferSampleLocationsfvNV
GLenum target
GLuint start
GLsizei count
const GLfloat *v
void glFramebufferSamplePositionsfvAMD
GLenum target
GLuint numsamples
GLuint pixelindex
const GLfloat *values
void glFramebufferTexture
GLenum target
GLenum attachment
GLuint texture
GLint level
void glFramebufferTexture1D
GLenum target
GLenum attachment
GLenum textarget
GLuint texture
GLint level
void glFramebufferTexture1DEXT
GLenum target
GLenum attachment
GLenum textarget
GLuint texture
GLint level
void glFramebufferTexture2D
GLenum target
GLenum attachment
GLenum textarget
GLuint texture
GLint level
void glFramebufferTexture2DEXT
GLenum target
GLenum attachment
GLenum textarget
GLuint texture
GLint level
void glFramebufferTexture2DDownsampleIMG
GLenum target
GLenum attachment
GLenum textarget
GLuint texture
GLint level
GLint xscale
GLint yscale
void glFramebufferTexture2DMultisampleEXT
GLenum target
GLenum attachment
GLenum textarget
GLuint texture
GLint level
GLsizei samples
void glFramebufferTexture2DMultisampleIMG
GLenum target
GLenum attachment
GLenum textarget
GLuint texture
GLint level
GLsizei samples
void glFramebufferTexture2DOES
GLenum target
GLenum attachment
GLenum textarget
GLuint texture
GLint level
void glFramebufferTexture3D
GLenum target
GLenum attachment
GLenum textarget
GLuint texture
GLint level
GLint zoffset
void glFramebufferTexture3DEXT
GLenum target
GLenum attachment
GLenum textarget
GLuint texture
GLint level
GLint zoffset
void glFramebufferTexture3DOES
GLenum target
GLenum attachment
GLenum textarget
GLuint texture
GLint level
GLint zoffset
void glFramebufferTextureARB
GLenum target
GLenum attachment
GLuint texture
GLint level
void glFramebufferTextureEXT
GLenum target
GLenum attachment
GLuint texture
GLint level
void glFramebufferTextureFaceARB
GLenum target
GLenum attachment
GLuint texture
GLint level
GLenum face
void glFramebufferTextureFaceEXT
GLenum target
GLenum attachment
GLuint texture
GLint level
GLenum face
void glFramebufferTextureLayer
GLenum target
GLenum attachment
GLuint texture
GLint level
GLint layer
void glFramebufferTextureLayerARB
GLenum target
GLenum attachment
GLuint texture
GLint level
GLint layer
void glFramebufferTextureLayerEXT
GLenum target
GLenum attachment
GLuint texture
GLint level
GLint layer
void glFramebufferTextureLayerDownsampleIMG
GLenum target
GLenum attachment
GLuint texture
GLint level
GLint layer
GLint xscale
GLint yscale
void glFramebufferTextureMultisampleMultiviewOVR
GLenum target
GLenum attachment
GLuint texture
GLint level
GLsizei samples
GLint baseViewIndex
GLsizei numViews
void glFramebufferTextureMultiviewOVR
GLenum target
GLenum attachment
GLuint texture
GLint level
GLint baseViewIndex
GLsizei numViews
void glFramebufferTextureOES
GLenum target
GLenum attachment
GLuint texture
GLint level
void glFreeObjectBufferATI
GLuint buffer
void glFrontFace
GLenum mode
void glFrustum
GLdouble left
GLdouble right
GLdouble bottom
GLdouble top
GLdouble zNear
GLdouble zFar
void glFrustumf
GLfloat l
GLfloat r
GLfloat b
GLfloat t
GLfloat n
GLfloat f
void glFrustumfOES
GLfloat l
GLfloat r
GLfloat b
GLfloat t
GLfloat n
GLfloat f
void glFrustumx
GLfixed l
GLfixed r
GLfixed b
GLfixed t
GLfixed n
GLfixed f
void glFrustumxOES
GLfixed l
GLfixed r
GLfixed b
GLfixed t
GLfixed n
GLfixed f
GLuint glGenAsyncMarkersSGIX
GLsizei range
void glGenBuffers
GLsizei n
GLuint *buffers
void glGenBuffersARB
GLsizei n
GLuint *buffers
void glGenFencesAPPLE
GLsizei n
GLuint *fences
void glGenFencesNV
GLsizei n
GLuint *fences
GLuint glGenFragmentShadersATI
GLuint range
void glGenFramebuffers
GLsizei n
GLuint *framebuffers
void glGenFramebuffersEXT
GLsizei n
GLuint *framebuffers
void glGenFramebuffersOES
GLsizei n
GLuint *framebuffers
GLuint glGenLists
GLsizei range
void glGenNamesAMD
GLenum identifier
GLuint num
GLuint *names
void glGenOcclusionQueriesNV
GLsizei n
GLuint *ids
GLuint glGenPathsNV
GLsizei range
void glGenPerfMonitorsAMD
GLsizei n
GLuint *monitors
void glGenProgramPipelines
GLsizei n
GLuint *pipelines
void glGenProgramPipelinesEXT
GLsizei n
GLuint *pipelines
void glGenProgramsARB
GLsizei n
GLuint *programs
void glGenProgramsNV
GLsizei n
GLuint *programs
void glGenQueries
GLsizei n
GLuint *ids
void glGenQueriesARB
GLsizei n
GLuint *ids
void glGenQueriesEXT
GLsizei n
GLuint *ids
void glGenQueryResourceTagNV
GLsizei n
GLint *tagIds
void glGenRenderbuffers
GLsizei n
GLuint *renderbuffers
void glGenRenderbuffersEXT
GLsizei n
GLuint *renderbuffers
void glGenRenderbuffersOES
GLsizei n
GLuint *renderbuffers
void glGenSamplers
GLsizei count
GLuint *samplers
void glGenSemaphoresEXT
GLsizei n
GLuint *semaphores
GLuint glGenSymbolsEXT
GLenum datatype
GLenum storagetype
GLenum range
GLuint components
void glGenTextures
GLsizei n
GLuint *textures
void glGenTexturesEXT
GLsizei n
GLuint *textures
void glGenTransformFeedbacks
GLsizei n
GLuint *ids
void glGenTransformFeedbacksNV
GLsizei n
GLuint *ids
void glGenVertexArrays
GLsizei n
GLuint *arrays
void glGenVertexArraysAPPLE
GLsizei n
GLuint *arrays
void glGenVertexArraysOES
GLsizei n
GLuint *arrays
GLuint glGenVertexShadersEXT
GLuint range
void glGenerateMipmap
GLenum target
void glGenerateMipmapEXT
GLenum target
void glGenerateMipmapOES
GLenum target
void glGenerateMultiTexMipmapEXT
GLenum texunit
GLenum target
void glGenerateTextureMipmap
GLuint texture
void glGenerateTextureMipmapEXT
GLuint texture
GLenum target
void glGetActiveAtomicCounterBufferiv
GLuint program
GLuint bufferIndex
GLenum pname
GLint *params
void glGetActiveAttrib
GLuint program
GLuint index
GLsizei bufSize
GLsizei *length
GLint *size
GLenum *type
GLchar *name
void glGetActiveAttribARB
GLhandleARB programObj
GLuint index
GLsizei maxLength
GLsizei *length
GLint *size
GLenum *type
GLcharARB *name
void glGetActiveSubroutineName
GLuint program
GLenum shadertype
GLuint index
GLsizei bufsize
GLsizei *length
GLchar *name
void glGetActiveSubroutineUniformName
GLuint program
GLenum shadertype
GLuint index
GLsizei bufsize
GLsizei *length
GLchar *name
void glGetActiveSubroutineUniformiv
GLuint program
GLenum shadertype
GLuint index
GLenum pname
GLint *values
void glGetActiveUniform
GLuint program
GLuint index
GLsizei bufSize
GLsizei *length
GLint *size
GLenum *type
GLchar *name
void glGetActiveUniformARB
GLhandleARB programObj
GLuint index
GLsizei maxLength
GLsizei *length
GLint *size
GLenum *type
GLcharARB *name
void glGetActiveUniformBlockName
GLuint program
GLuint uniformBlockIndex
GLsizei bufSize
GLsizei *length
GLchar *uniformBlockName
void glGetActiveUniformBlockiv
GLuint program
GLuint uniformBlockIndex
GLenum pname
GLint *params
void glGetActiveUniformName
GLuint program
GLuint uniformIndex
GLsizei bufSize
GLsizei *length
GLchar *uniformName
void glGetActiveUniformsiv
GLuint program
GLsizei uniformCount
const GLuint *uniformIndices
GLenum pname
GLint *params
void glGetActiveVaryingNV
GLuint program
GLuint index
GLsizei bufSize
GLsizei *length
GLsizei *size
GLenum *type
GLchar *name
void glGetArrayObjectfvATI
GLenum array
GLenum pname
GLfloat *params
void glGetArrayObjectivATI
GLenum array
GLenum pname
GLint *params
void glGetAttachedObjectsARB
GLhandleARB containerObj
GLsizei maxCount
GLsizei *count
GLhandleARB *obj
void glGetAttachedShaders
GLuint program
GLsizei maxCount
GLsizei *count
GLuint *shaders
GLint glGetAttribLocation
GLuint program
const GLchar *name
GLint glGetAttribLocationARB
GLhandleARB programObj
const GLcharARB *name
void glGetBooleanIndexedvEXT
GLenum target
GLuint index
GLboolean *data
void glGetBooleani_v
GLenum target
GLuint index
GLboolean *data
void glGetBooleanv
GLenum pname
GLboolean *data
void glGetBufferParameteri64v
GLenum target
GLenum pname
GLint64 *params
void glGetBufferParameteriv
GLenum target
GLenum pname
GLint *params
void glGetBufferParameterivARB
GLenum target
GLenum pname
GLint *params
void glGetBufferParameterui64vNV
GLenum target
GLenum pname
GLuint64EXT *params
void glGetBufferPointerv
GLenum target
GLenum pname
void **params
void glGetBufferPointervARB
GLenum target
GLenum pname
void **params
void glGetBufferPointervOES
GLenum target
GLenum pname
void **params
void glGetBufferSubData
GLenum target
GLintptr offset
GLsizeiptr size
void *data
void glGetBufferSubDataARB
GLenum target
GLintptrARB offset
GLsizeiptrARB size
void *data
void glGetClipPlane
GLenum plane
GLdouble *equation
void glGetClipPlanef
GLenum plane
GLfloat *equation
void glGetClipPlanefOES
GLenum plane
GLfloat *equation
void glGetClipPlanex
GLenum plane
GLfixed *equation
void glGetClipPlanexOES
GLenum plane
GLfixed *equation
void glGetColorTable
GLenum target
GLenum format
GLenum type
void *table
void glGetColorTableEXT
GLenum target
GLenum format
GLenum type
void *data
void glGetColorTableParameterfv
GLenum target
GLenum pname
GLfloat *params
void glGetColorTableParameterfvEXT
GLenum target
GLenum pname
GLfloat *params
void glGetColorTableParameterfvSGI
GLenum target
GLenum pname
GLfloat *params
void glGetColorTableParameteriv
GLenum target
GLenum pname
GLint *params
void glGetColorTableParameterivEXT
GLenum target
GLenum pname
GLint *params
void glGetColorTableParameterivSGI
GLenum target
GLenum pname
GLint *params
void glGetColorTableSGI
GLenum target
GLenum format
GLenum type
void *table
void glGetCombinerInputParameterfvNV
GLenum stage
GLenum portion
GLenum variable
GLenum pname
GLfloat *params
void glGetCombinerInputParameterivNV
GLenum stage
GLenum portion
GLenum variable
GLenum pname
GLint *params
void glGetCombinerOutputParameterfvNV
GLenum stage
GLenum portion
GLenum pname
GLfloat *params
void glGetCombinerOutputParameterivNV
GLenum stage
GLenum portion
GLenum pname
GLint *params
void glGetCombinerStageParameterfvNV
GLenum stage
GLenum pname
GLfloat *params
GLuint glGetCommandHeaderNV
GLenum tokenID
GLuint size
void glGetCompressedMultiTexImageEXT
GLenum texunit
GLenum target
GLint lod
void *img
void glGetCompressedTexImage
GLenum target
GLint level
void *img
void glGetCompressedTexImageARB
GLenum target
GLint level
void *img
void glGetCompressedTextureImage
GLuint texture
GLint level
GLsizei bufSize
void *pixels
void glGetCompressedTextureImageEXT
GLuint texture
GLenum target
GLint lod
void *img
void glGetCompressedTextureSubImage
GLuint texture
GLint level
GLint xoffset
GLint yoffset
GLint zoffset
GLsizei width
GLsizei height
GLsizei depth
GLsizei bufSize
void *pixels
void glGetConvolutionFilter
GLenum target
GLenum format
GLenum type
void *image
void glGetConvolutionFilterEXT
GLenum target
GLenum format
GLenum type
void *image
void glGetConvolutionParameterfv
GLenum target
GLenum pname
GLfloat *params
void glGetConvolutionParameterfvEXT
GLenum target
GLenum pname
GLfloat *params
void glGetConvolutionParameteriv
GLenum target
GLenum pname
GLint *params
void glGetConvolutionParameterivEXT
GLenum target
GLenum pname
GLint *params
void glGetConvolutionParameterxvOES
GLenum target
GLenum pname
GLfixed *params
void glGetCoverageModulationTableNV
GLsizei bufsize
GLfloat *v
GLuint glGetDebugMessageLog
GLuint count
GLsizei bufSize
GLenum *sources
GLenum *types
GLuint *ids
GLenum *severities
GLsizei *lengths
GLchar *messageLog
GLuint glGetDebugMessageLogAMD
GLuint count
GLsizei bufsize
GLenum *categories
GLuint *severities
GLuint *ids
GLsizei *lengths
GLchar *message
GLuint glGetDebugMessageLogARB
GLuint count
GLsizei bufSize
GLenum *sources
GLenum *types
GLuint *ids
GLenum *severities
GLsizei *lengths
GLchar *messageLog
GLuint glGetDebugMessageLogKHR
GLuint count
GLsizei bufSize
GLenum *sources
GLenum *types
GLuint *ids
GLenum *severities
GLsizei *lengths
GLchar *messageLog
void glGetDetailTexFuncSGIS
GLenum target
GLfloat *points
void glGetDoubleIndexedvEXT
GLenum target
GLuint index
GLdouble *data
void glGetDoublei_v
GLenum target
GLuint index
GLdouble *data
void glGetDoublei_vEXT
GLenum pname
GLuint index
GLdouble *params
void glGetDoublev
GLenum pname
GLdouble *data
void glGetDriverControlStringQCOM
GLuint driverControl
GLsizei bufSize
GLsizei *length
GLchar *driverControlString
void glGetDriverControlsQCOM
GLint *num
GLsizei size
GLuint *driverControls
GLenum glGetError
void glGetFenceivNV
GLuint fence
GLenum pname
GLint *params
void glGetFinalCombinerInputParameterfvNV
GLenum variable
GLenum pname
GLfloat *params
void glGetFinalCombinerInputParameterivNV
GLenum variable
GLenum pname
GLint *params
void glGetFirstPerfQueryIdINTEL
GLuint *queryId
void glGetFixedv
GLenum pname
GLfixed *params
void glGetFixedvOES
GLenum pname
GLfixed *params
void glGetFloatIndexedvEXT
GLenum target
GLuint index
GLfloat *data
void glGetFloati_v
GLenum target
GLuint index
GLfloat *data
void glGetFloati_vEXT
GLenum pname
GLuint index
GLfloat *params
void glGetFloati_vNV
GLenum target
GLuint index
GLfloat *data
void glGetFloati_vOES
GLenum target
GLuint index
GLfloat *data
void glGetFloatv
GLenum pname
GLfloat *data
void glGetFogFuncSGIS
GLfloat *points
GLint glGetFragDataIndex
GLuint program
const GLchar *name
GLint glGetFragDataIndexEXT
GLuint program
const GLchar *name
GLint glGetFragDataLocation
GLuint program
const GLchar *name
GLint glGetFragDataLocationEXT
GLuint program
const GLchar *name
void glGetFragmentLightfvSGIX
GLenum light
GLenum pname
GLfloat *params
void glGetFragmentLightivSGIX
GLenum light
GLenum pname
GLint *params
void glGetFragmentMaterialfvSGIX
GLenum face
GLenum pname
GLfloat *params
void glGetFragmentMaterialivSGIX
GLenum face
GLenum pname
GLint *params
void glGetFramebufferAttachmentParameteriv
GLenum target
GLenum attachment
GLenum pname
GLint *params
void glGetFramebufferAttachmentParameterivEXT
GLenum target
GLenum attachment
GLenum pname
GLint *params
void glGetFramebufferAttachmentParameterivOES
GLenum target
GLenum attachment
GLenum pname
GLint *params
void glGetFramebufferParameterfvAMD
GLenum target
GLenum pname
GLuint numsamples
GLuint pixelindex
GLsizei size
GLfloat *values
void glGetFramebufferParameteriv
GLenum target
GLenum pname
GLint *params
void glGetFramebufferParameterivEXT
GLuint framebuffer
GLenum pname
GLint *params
GLsizei glGetFramebufferPixelLocalStorageSizeEXT
GLuint target
GLenum glGetGraphicsResetStatus
GLenum glGetGraphicsResetStatusARB
GLenum glGetGraphicsResetStatusEXT
GLenum glGetGraphicsResetStatusKHR
GLhandleARB glGetHandleARB
GLenum pname
void glGetHistogram
GLenum target
GLboolean reset
GLenum format
GLenum type
void *values
void glGetHistogramEXT
GLenum target
GLboolean reset
GLenum format
GLenum type
void *values
void glGetHistogramParameterfv
GLenum target
GLenum pname
GLfloat *params
void glGetHistogramParameterfvEXT
GLenum target
GLenum pname
GLfloat *params
void glGetHistogramParameteriv
GLenum target
GLenum pname
GLint *params
void glGetHistogramParameterivEXT
GLenum target
GLenum pname
GLint *params
void glGetHistogramParameterxvOES
GLenum target
GLenum pname
GLfixed *params
GLuint64 glGetImageHandleARB
GLuint texture
GLint level
GLboolean layered
GLint layer
GLenum format
GLuint64 glGetImageHandleNV
GLuint texture
GLint level
GLboolean layered
GLint layer
GLenum format
void glGetImageTransformParameterfvHP
GLenum target
GLenum pname
GLfloat *params
void glGetImageTransformParameterivHP
GLenum target
GLenum pname
GLint *params
void glGetInfoLogARB
GLhandleARB obj
GLsizei maxLength
GLsizei *length
GLcharARB *infoLog
GLint glGetInstrumentsSGIX
void glGetInteger64i_v
GLenum target
GLuint index
GLint64 *data
void glGetInteger64v
GLenum pname
GLint64 *data
void glGetInteger64vAPPLE
GLenum pname
GLint64 *params
void glGetIntegerIndexedvEXT
GLenum target
GLuint index
GLint *data
void glGetIntegeri_v
GLenum target
GLuint index
GLint *data
void glGetIntegeri_vEXT
GLenum target
GLuint index
GLint *data
void glGetIntegerui64i_vNV
GLenum value
GLuint index
GLuint64EXT *result
void glGetIntegerui64vNV
GLenum value
GLuint64EXT *result
void glGetIntegerv
GLenum pname
GLint *data
void glGetInternalformatSampleivNV
GLenum target
GLenum internalformat
GLsizei samples
GLenum pname
GLsizei bufSize
GLint *params
void glGetInternalformati64v
GLenum target
GLenum internalformat
GLenum pname
GLsizei bufSize
GLint64 *params
void glGetInternalformativ
GLenum target
GLenum internalformat
GLenum pname
GLsizei bufSize
GLint *params
void glGetInvariantBooleanvEXT
GLuint id
GLenum value
GLboolean *data
void glGetInvariantFloatvEXT
GLuint id
GLenum value
GLfloat *data
void glGetInvariantIntegervEXT
GLuint id
GLenum value
GLint *data
void glGetLightfv
GLenum light
GLenum pname
GLfloat *params
void glGetLightiv
GLenum light
GLenum pname
GLint *params
void glGetLightxOES
GLenum light
GLenum pname
GLfixed *params
void glGetLightxv
GLenum light
GLenum pname
GLfixed *params
void glGetLightxvOES
GLenum light
GLenum pname
GLfixed *params
void glGetListParameterfvSGIX
GLuint list
GLenum pname
GLfloat *params
void glGetListParameterivSGIX
GLuint list
GLenum pname
GLint *params
void glGetLocalConstantBooleanvEXT
GLuint id
GLenum value
GLboolean *data
void glGetLocalConstantFloatvEXT
GLuint id
GLenum value
GLfloat *data
void glGetLocalConstantIntegervEXT
GLuint id
GLenum value
GLint *data
void glGetMapAttribParameterfvNV
GLenum target
GLuint index
GLenum pname
GLfloat *params
void glGetMapAttribParameterivNV
GLenum target
GLuint index
GLenum pname
GLint *params
void glGetMapControlPointsNV
GLenum target
GLuint index
GLenum type
GLsizei ustride
GLsizei vstride
GLboolean packed
void *points
void glGetMapParameterfvNV
GLenum target
GLenum pname
GLfloat *params
void glGetMapParameterivNV
GLenum target
GLenum pname
GLint *params
void glGetMapdv
GLenum target
GLenum query
GLdouble *v
void glGetMapfv
GLenum target
GLenum query
GLfloat *v
void glGetMapiv
GLenum target
GLenum query
GLint *v
void glGetMapxvOES
GLenum target
GLenum query
GLfixed *v
void glGetMaterialfv
GLenum face
GLenum pname
GLfloat *params
void glGetMaterialiv
GLenum face
GLenum pname
GLint *params
void glGetMaterialxOES
GLenum face
GLenum pname
GLfixed param
void glGetMaterialxv
GLenum face
GLenum pname
GLfixed *params
void glGetMaterialxvOES
GLenum face
GLenum pname
GLfixed *params
void glGetMemoryObjectDetachedResourcesuivNV
GLuint memory
GLenum pname
GLint first
GLsizei count
GLuint *params
void glGetMemoryObjectParameterivEXT
GLuint memoryObject
GLenum pname
GLint *params
void glGetMinmax
GLenum target
GLboolean reset
GLenum format
GLenum type
void *values
void glGetMinmaxEXT
GLenum target
GLboolean reset
GLenum format
GLenum type
void *values
void glGetMinmaxParameterfv
GLenum target
GLenum pname
GLfloat *params
void glGetMinmaxParameterfvEXT
GLenum target
GLenum pname
GLfloat *params
void glGetMinmaxParameteriv
GLenum target
GLenum pname
GLint *params
void glGetMinmaxParameterivEXT
GLenum target
GLenum pname
GLint *params
void glGetMultiTexEnvfvEXT
GLenum texunit
GLenum target
GLenum pname
GLfloat *params
void glGetMultiTexEnvivEXT
GLenum texunit
GLenum target
GLenum pname
GLint *params
void glGetMultiTexGendvEXT
GLenum texunit
GLenum coord
GLenum pname
GLdouble *params
void glGetMultiTexGenfvEXT
GLenum texunit
GLenum coord
GLenum pname
GLfloat *params
void glGetMultiTexGenivEXT
GLenum texunit
GLenum coord
GLenum pname
GLint *params
void glGetMultiTexImageEXT
GLenum texunit
GLenum target
GLint level
GLenum format
GLenum type
void *pixels
void glGetMultiTexLevelParameterfvEXT
GLenum texunit
GLenum target
GLint level
GLenum pname
GLfloat *params
void glGetMultiTexLevelParameterivEXT
GLenum texunit
GLenum target
GLint level
GLenum pname
GLint *params
void glGetMultiTexParameterIivEXT
GLenum texunit
GLenum target
GLenum pname
GLint *params
void glGetMultiTexParameterIuivEXT
GLenum texunit
GLenum target
GLenum pname
GLuint *params
void glGetMultiTexParameterfvEXT
GLenum texunit
GLenum target
GLenum pname
GLfloat *params
void glGetMultiTexParameterivEXT
GLenum texunit
GLenum target
GLenum pname
GLint *params
void glGetMultisamplefv
GLenum pname
GLuint index
GLfloat *val
void glGetMultisamplefvNV
GLenum pname
GLuint index
GLfloat *val
void glGetNamedBufferParameteri64v
GLuint buffer
GLenum pname
GLint64 *params
void glGetNamedBufferParameteriv
GLuint buffer
GLenum pname
GLint *params
void glGetNamedBufferParameterivEXT
GLuint buffer
GLenum pname
GLint *params
void glGetNamedBufferParameterui64vNV
GLuint buffer
GLenum pname
GLuint64EXT *params
void glGetNamedBufferPointerv
GLuint buffer
GLenum pname
void **params
void glGetNamedBufferPointervEXT
GLuint buffer
GLenum pname
void **params
void glGetNamedBufferSubData
GLuint buffer
GLintptr offset
GLsizeiptr size
void *data
void glGetNamedBufferSubDataEXT
GLuint buffer
GLintptr offset
GLsizeiptr size
void *data
void glGetNamedFramebufferParameterfvAMD
GLuint framebuffer
GLenum pname
GLuint numsamples
GLuint pixelindex
GLsizei size
GLfloat *values
void glGetNamedFramebufferAttachmentParameteriv
GLuint framebuffer
GLenum attachment
GLenum pname
GLint *params
void glGetNamedFramebufferAttachmentParameterivEXT
GLuint framebuffer
GLenum attachment
GLenum pname
GLint *params
void glGetNamedFramebufferParameteriv
GLuint framebuffer
GLenum pname
GLint *param
void glGetNamedFramebufferParameterivEXT
GLuint framebuffer
GLenum pname
GLint *params
void glGetNamedProgramLocalParameterIivEXT
GLuint program
GLenum target
GLuint index
GLint *params
void glGetNamedProgramLocalParameterIuivEXT
GLuint program
GLenum target
GLuint index
GLuint *params
void glGetNamedProgramLocalParameterdvEXT
GLuint program
GLenum target
GLuint index
GLdouble *params
void glGetNamedProgramLocalParameterfvEXT
GLuint program
GLenum target
GLuint index
GLfloat *params
void glGetNamedProgramStringEXT
GLuint program
GLenum target
GLenum pname
void *string
void glGetNamedProgramivEXT
GLuint program
GLenum target
GLenum pname
GLint *params
void glGetNamedRenderbufferParameteriv
GLuint renderbuffer
GLenum pname
GLint *params
void glGetNamedRenderbufferParameterivEXT
GLuint renderbuffer
GLenum pname
GLint *params
void glGetNamedStringARB
GLint namelen
const GLchar *name
GLsizei bufSize
GLint *stringlen
GLchar *string
void glGetNamedStringivARB
GLint namelen
const GLchar *name
GLenum pname
GLint *params
void glGetNextPerfQueryIdINTEL
GLuint queryId
GLuint *nextQueryId
void glGetObjectBufferfvATI
GLuint buffer
GLenum pname
GLfloat *params
void glGetObjectBufferivATI
GLuint buffer
GLenum pname
GLint *params
void glGetObjectLabel
GLenum identifier
GLuint name
GLsizei bufSize
GLsizei *length
GLchar *label
void glGetObjectLabelEXT
GLenum type
GLuint object
GLsizei bufSize
GLsizei *length
GLchar *label
void glGetObjectLabelKHR
GLenum identifier
GLuint name
GLsizei bufSize
GLsizei *length
GLchar *label
void glGetObjectParameterfvARB
GLhandleARB obj
GLenum pname
GLfloat *params
void glGetObjectParameterivAPPLE
GLenum objectType
GLuint name
GLenum pname
GLint *params
void glGetObjectParameterivARB
GLhandleARB obj
GLenum pname
GLint *params
void glGetObjectPtrLabel
const void *ptr
GLsizei bufSize
GLsizei *length
GLchar *label
void glGetObjectPtrLabelKHR
const void *ptr
GLsizei bufSize
GLsizei *length
GLchar *label
void glGetOcclusionQueryivNV
GLuint id
GLenum pname
GLint *params
void glGetOcclusionQueryuivNV
GLuint id
GLenum pname
GLuint *params
void glGetPathColorGenfvNV
GLenum color
GLenum pname
GLfloat *value
void glGetPathColorGenivNV
GLenum color
GLenum pname
GLint *value
void glGetPathCommandsNV
GLuint path
GLubyte *commands
void glGetPathCoordsNV
GLuint path
GLfloat *coords
void glGetPathDashArrayNV
GLuint path
GLfloat *dashArray
GLfloat glGetPathLengthNV
GLuint path
GLsizei startSegment
GLsizei numSegments
void glGetPathMetricRangeNV
GLbitfield metricQueryMask
GLuint firstPathName
GLsizei numPaths
GLsizei stride
GLfloat *metrics
void glGetPathMetricsNV
GLbitfield metricQueryMask
GLsizei numPaths
GLenum pathNameType
const void *paths
GLuint pathBase
GLsizei stride
GLfloat *metrics
void glGetPathParameterfvNV
GLuint path
GLenum pname
GLfloat *value
void glGetPathParameterivNV
GLuint path
GLenum pname
GLint *value
void glGetPathSpacingNV
GLenum pathListMode
GLsizei numPaths
GLenum pathNameType
const void *paths
GLuint pathBase
GLfloat advanceScale
GLfloat kerningScale
GLenum transformType
GLfloat *returnedSpacing
void glGetPathTexGenfvNV
GLenum texCoordSet
GLenum pname
GLfloat *value
void glGetPathTexGenivNV
GLenum texCoordSet
GLenum pname
GLint *value
void glGetPerfCounterInfoINTEL
GLuint queryId
GLuint counterId
GLuint counterNameLength
GLchar *counterName
GLuint counterDescLength
GLchar *counterDesc
GLuint *counterOffset
GLuint *counterDataSize
GLuint *counterTypeEnum
GLuint *counterDataTypeEnum
GLuint64 *rawCounterMaxValue
void glGetPerfMonitorCounterDataAMD
GLuint monitor
GLenum pname
GLsizei dataSize
GLuint *data
GLint *bytesWritten
void glGetPerfMonitorCounterInfoAMD
GLuint group
GLuint counter
GLenum pname
void *data
void glGetPerfMonitorCounterStringAMD
GLuint group
GLuint counter
GLsizei bufSize
GLsizei *length
GLchar *counterString
void glGetPerfMonitorCountersAMD
GLuint group
GLint *numCounters
GLint *maxActiveCounters
GLsizei counterSize
GLuint *counters
void glGetPerfMonitorGroupStringAMD
GLuint group
GLsizei bufSize
GLsizei *length
GLchar *groupString
void glGetPerfMonitorGroupsAMD
GLint *numGroups
GLsizei groupsSize
GLuint *groups
void glGetPerfQueryDataINTEL
GLuint queryHandle
GLuint flags
GLsizei dataSize
void *data
GLuint *bytesWritten
void glGetPerfQueryIdByNameINTEL
GLchar *queryName
GLuint *queryId
void glGetPerfQueryInfoINTEL
GLuint queryId
GLuint queryNameLength
GLchar *queryName
GLuint *dataSize
GLuint *noCounters
GLuint *noInstances
GLuint *capsMask
void glGetPixelMapfv
GLenum map
GLfloat *values
void glGetPixelMapuiv
GLenum map
GLuint *values
void glGetPixelMapusv
GLenum map
GLushort *values
void glGetPixelMapxv
GLenum map
GLint size
GLfixed *values
void glGetPixelTexGenParameterfvSGIS
GLenum pname
GLfloat *params
void glGetPixelTexGenParameterivSGIS
GLenum pname
GLint *params
void glGetPixelTransformParameterfvEXT
GLenum target
GLenum pname
GLfloat *params
void glGetPixelTransformParameterivEXT
GLenum target
GLenum pname
GLint *params
void glGetPointerIndexedvEXT
GLenum target
GLuint index
void **data
void glGetPointeri_vEXT
GLenum pname
GLuint index
void **params
void glGetPointerv
GLenum pname
void **params
void glGetPointervEXT
GLenum pname
void **params
void glGetPointervKHR
GLenum pname
void **params
void glGetPolygonStipple
GLubyte *mask
void glGetProgramBinary
GLuint program
GLsizei bufSize
GLsizei *length
GLenum *binaryFormat
void *binary
void glGetProgramBinaryOES
GLuint program
GLsizei bufSize
GLsizei *length
GLenum *binaryFormat
void *binary
void glGetProgramEnvParameterIivNV
GLenum target
GLuint index
GLint *params
void glGetProgramEnvParameterIuivNV
GLenum target
GLuint index
GLuint *params
void glGetProgramEnvParameterdvARB
GLenum target
GLuint index
GLdouble *params
void glGetProgramEnvParameterfvARB
GLenum target
GLuint index
GLfloat *params
void glGetProgramInfoLog
GLuint program
GLsizei bufSize
GLsizei *length
GLchar *infoLog
void glGetProgramInterfaceiv
GLuint program
GLenum programInterface
GLenum pname
GLint *params
void glGetProgramLocalParameterIivNV
GLenum target
GLuint index
GLint *params
void glGetProgramLocalParameterIuivNV
GLenum target
GLuint index
GLuint *params
void glGetProgramLocalParameterdvARB
GLenum target
GLuint index
GLdouble *params
void glGetProgramLocalParameterfvARB
GLenum target
GLuint index
GLfloat *params
void glGetProgramNamedParameterdvNV
GLuint id
GLsizei len
const GLubyte *name
GLdouble *params
void glGetProgramNamedParameterfvNV
GLuint id
GLsizei len
const GLubyte *name
GLfloat *params
void glGetProgramParameterdvNV
GLenum target
GLuint index
GLenum pname
GLdouble *params
void glGetProgramParameterfvNV
GLenum target
GLuint index
GLenum pname
GLfloat *params
void glGetProgramPipelineInfoLog
GLuint pipeline
GLsizei bufSize
GLsizei *length
GLchar *infoLog
void glGetProgramPipelineInfoLogEXT
GLuint pipeline
GLsizei bufSize
GLsizei *length
GLchar *infoLog
void glGetProgramPipelineiv
GLuint pipeline
GLenum pname
GLint *params
void glGetProgramPipelineivEXT
GLuint pipeline
GLenum pname
GLint *params
GLuint glGetProgramResourceIndex
GLuint program
GLenum programInterface
const GLchar *name
GLint glGetProgramResourceLocation
GLuint program
GLenum programInterface
const GLchar *name
GLint glGetProgramResourceLocationIndex
GLuint program
GLenum programInterface
const GLchar *name
GLint glGetProgramResourceLocationIndexEXT
GLuint program
GLenum programInterface
const GLchar *name
void glGetProgramResourceName
GLuint program
GLenum programInterface
GLuint index
GLsizei bufSize
GLsizei *length
GLchar *name
void glGetProgramResourcefvNV
GLuint program
GLenum programInterface
GLuint index
GLsizei propCount
const GLenum *props
GLsizei bufSize
GLsizei *length
GLfloat *params
void glGetProgramResourceiv
GLuint program
GLenum programInterface
GLuint index
GLsizei propCount
const GLenum *props
GLsizei bufSize
GLsizei *length
GLint *params
void glGetProgramStageiv
GLuint program
GLenum shadertype
GLenum pname
GLint *values
void glGetProgramStringARB
GLenum target
GLenum pname
void *string
void glGetProgramStringNV
GLuint id
GLenum pname
GLubyte *program
void glGetProgramSubroutineParameteruivNV
GLenum target
GLuint index
GLuint *param
void glGetProgramiv
GLuint program
GLenum pname
GLint *params
void glGetProgramivARB
GLenum target
GLenum pname
GLint *params
void glGetProgramivNV
GLuint id
GLenum pname
GLint *params
void glGetQueryBufferObjecti64v
GLuint id
GLuint buffer
GLenum pname
GLintptr offset
void glGetQueryBufferObjectiv
GLuint id
GLuint buffer
GLenum pname
GLintptr offset
void glGetQueryBufferObjectui64v
GLuint id
GLuint buffer
GLenum pname
GLintptr offset
void glGetQueryBufferObjectuiv
GLuint id
GLuint buffer
GLenum pname
GLintptr offset
void glGetQueryIndexediv
GLenum target
GLuint index
GLenum pname
GLint *params
void glGetQueryObjecti64v
GLuint id
GLenum pname
GLint64 *params
void glGetQueryObjecti64vEXT
GLuint id
GLenum pname
GLint64 *params
void glGetQueryObjectiv
GLuint id
GLenum pname
GLint *params
void glGetQueryObjectivARB
GLuint id
GLenum pname
GLint *params
void glGetQueryObjectivEXT
GLuint id
GLenum pname
GLint *params
void glGetQueryObjectui64v
GLuint id
GLenum pname
GLuint64 *params
void glGetQueryObjectui64vEXT
GLuint id
GLenum pname
GLuint64 *params
void glGetQueryObjectuiv
GLuint id
GLenum pname
GLuint *params
void glGetQueryObjectuivARB
GLuint id
GLenum pname
GLuint *params
void glGetQueryObjectuivEXT
GLuint id
GLenum pname
GLuint *params
void glGetQueryiv
GLenum target
GLenum pname
GLint *params
void glGetQueryivARB
GLenum target
GLenum pname
GLint *params
void glGetQueryivEXT
GLenum target
GLenum pname
GLint *params
void glGetRenderbufferParameteriv
GLenum target
GLenum pname
GLint *params
void glGetRenderbufferParameterivEXT
GLenum target
GLenum pname
GLint *params
void glGetRenderbufferParameterivOES
GLenum target
GLenum pname
GLint *params
void glGetSamplerParameterIiv
GLuint sampler
GLenum pname
GLint *params
void glGetSamplerParameterIivEXT
GLuint sampler
GLenum pname
GLint *params
void glGetSamplerParameterIivOES
GLuint sampler
GLenum pname
GLint *params
void glGetSamplerParameterIuiv
GLuint sampler
GLenum pname
GLuint *params
void glGetSamplerParameterIuivEXT
GLuint sampler
GLenum pname
GLuint *params
void glGetSamplerParameterIuivOES
GLuint sampler
GLenum pname
GLuint *params
void glGetSamplerParameterfv
GLuint sampler
GLenum pname
GLfloat *params
void glGetSamplerParameteriv
GLuint sampler
GLenum pname
GLint *params
void glGetSemaphoreParameterui64vEXT
GLuint semaphore
GLenum pname
GLuint64 *params
void glGetSeparableFilter
GLenum target
GLenum format
GLenum type
void *row
void *column
void *span
void glGetSeparableFilterEXT
GLenum target
GLenum format
GLenum type
void *row
void *column
void *span
void glGetShaderInfoLog
GLuint shader
GLsizei bufSize
GLsizei *length
GLchar *infoLog
void glGetShaderPrecisionFormat
GLenum shadertype
GLenum precisiontype
GLint *range
GLint *precision
void glGetShaderSource
GLuint shader
GLsizei bufSize
GLsizei *length
GLchar *source
void glGetShaderSourceARB
GLhandleARB obj
GLsizei maxLength
GLsizei *length
GLcharARB *source
void glGetShaderiv
GLuint shader
GLenum pname
GLint *params
void glGetShadingRateImagePaletteNV
GLuint viewport
GLuint entry
GLenum *rate
void glGetShadingRateSampleLocationivNV
GLenum rate
GLuint samples
GLuint index
GLint *location
void glGetSharpenTexFuncSGIS
GLenum target
GLfloat *points
GLushort glGetStageIndexNV
GLenum shadertype
const GLubyte *glGetString
GLenum name
const GLubyte *glGetStringi
GLenum name
GLuint index
GLuint glGetSubroutineIndex
GLuint program
GLenum shadertype
const GLchar *name
GLint glGetSubroutineUniformLocation
GLuint program
GLenum shadertype
const GLchar *name
void glGetSynciv
GLsync sync
GLenum pname
GLsizei bufSize
GLsizei *length
GLint *values
void glGetSyncivAPPLE
GLsync sync
GLenum pname
GLsizei bufSize
GLsizei *length
GLint *values
void glGetTexBumpParameterfvATI
GLenum pname
GLfloat *param
void glGetTexBumpParameterivATI
GLenum pname
GLint *param
void glGetTexEnvfv
GLenum target
GLenum pname
GLfloat *params
void glGetTexEnviv
GLenum target
GLenum pname
GLint *params
void glGetTexEnvxv
GLenum target
GLenum pname
GLfixed *params
void glGetTexEnvxvOES
GLenum target
GLenum pname
GLfixed *params
void glGetTexFilterFuncSGIS
GLenum target
GLenum filter
GLfloat *weights
void glGetTexGendv
GLenum coord
GLenum pname
GLdouble *params
void glGetTexGenfv
GLenum coord
GLenum pname
GLfloat *params
void glGetTexGenfvOES
GLenum coord
GLenum pname
GLfloat *params
void glGetTexGeniv
GLenum coord
GLenum pname
GLint *params
void glGetTexGenivOES
GLenum coord
GLenum pname
GLint *params
void glGetTexGenxvOES
GLenum coord
GLenum pname
GLfixed *params
void glGetTexImage
GLenum target
GLint level
GLenum format
GLenum type
void *pixels
void glGetTexLevelParameterfv
GLenum target
GLint level
GLenum pname
GLfloat *params
void glGetTexLevelParameteriv
GLenum target
GLint level
GLenum pname
GLint *params
void glGetTexLevelParameterxvOES
GLenum target
GLint level
GLenum pname
GLfixed *params
void glGetTexParameterIiv
GLenum target
GLenum pname
GLint *params
void glGetTexParameterIivEXT
GLenum target
GLenum pname
GLint *params
void glGetTexParameterIivOES
GLenum target
GLenum pname
GLint *params
void glGetTexParameterIuiv
GLenum target
GLenum pname
GLuint *params
void glGetTexParameterIuivEXT
GLenum target
GLenum pname
GLuint *params
void glGetTexParameterIuivOES
GLenum target
GLenum pname
GLuint *params
void glGetTexParameterPointervAPPLE
GLenum target
GLenum pname
void **params
void glGetTexParameterfv
GLenum target
GLenum pname
GLfloat *params
void glGetTexParameteriv
GLenum target
GLenum pname
GLint *params
void glGetTexParameterxv
GLenum target
GLenum pname
GLfixed *params
void glGetTexParameterxvOES
GLenum target
GLenum pname
GLfixed *params
GLuint64 glGetTextureHandleARB
GLuint texture
GLuint64 glGetTextureHandleIMG
GLuint texture
GLuint64 glGetTextureHandleNV
GLuint texture
void glGetTextureImage
GLuint texture
GLint level
GLenum format
GLenum type
GLsizei bufSize
void *pixels
void glGetTextureImageEXT
GLuint texture
GLenum target
GLint level
GLenum format
GLenum type
void *pixels
void glGetTextureLevelParameterfv
GLuint texture
GLint level
GLenum pname
GLfloat *params
void glGetTextureLevelParameterfvEXT
GLuint texture
GLenum target
GLint level
GLenum pname
GLfloat *params
void glGetTextureLevelParameteriv
GLuint texture
GLint level
GLenum pname
GLint *params
void glGetTextureLevelParameterivEXT
GLuint texture
GLenum target
GLint level
GLenum pname
GLint *params
void glGetTextureParameterIiv
GLuint texture
GLenum pname
GLint *params
void glGetTextureParameterIivEXT
GLuint texture
GLenum target
GLenum pname
GLint *params
void glGetTextureParameterIuiv
GLuint texture
GLenum pname
GLuint *params
void glGetTextureParameterIuivEXT
GLuint texture
GLenum target
GLenum pname
GLuint *params
void glGetTextureParameterfv
GLuint texture
GLenum pname
GLfloat *params
void glGetTextureParameterfvEXT
GLuint texture
GLenum target
GLenum pname
GLfloat *params
void glGetTextureParameteriv
GLuint texture
GLenum pname
GLint *params
void glGetTextureParameterivEXT
GLuint texture
GLenum target
GLenum pname
GLint *params
GLuint64 glGetTextureSamplerHandleARB
GLuint texture
GLuint sampler
GLuint64 glGetTextureSamplerHandleIMG
GLuint texture
GLuint sampler
GLuint64 glGetTextureSamplerHandleNV
GLuint texture
GLuint sampler
void glGetTextureSubImage
GLuint texture
GLint level
GLint xoffset
GLint yoffset
GLint zoffset
GLsizei width
GLsizei height
GLsizei depth
GLenum format
GLenum type
GLsizei bufSize
void *pixels
void glGetTrackMatrixivNV
GLenum target
GLuint address
GLenum pname
GLint *params
void glGetTransformFeedbackVarying
GLuint program
GLuint index
GLsizei bufSize
GLsizei *length
GLsizei *size
GLenum *type
GLchar *name
void glGetTransformFeedbackVaryingEXT
GLuint program
GLuint index
GLsizei bufSize
GLsizei *length
GLsizei *size
GLenum *type
GLchar *name
void glGetTransformFeedbackVaryingNV
GLuint program
GLuint index
GLint *location
void glGetTransformFeedbacki64_v
GLuint xfb
GLenum pname
GLuint index
GLint64 *param
void glGetTransformFeedbacki_v
GLuint xfb
GLenum pname
GLuint index
GLint *param
void glGetTransformFeedbackiv
GLuint xfb
GLenum pname
GLint *param
void glGetTranslatedShaderSourceANGLE
GLuint shader
GLsizei bufsize
GLsizei *length
GLchar *source
GLuint glGetUniformBlockIndex
GLuint program
const GLchar *uniformBlockName
GLint glGetUniformBufferSizeEXT
GLuint program
GLint location
void glGetUniformIndices
GLuint program
GLsizei uniformCount
const GLchar *const*uniformNames
GLuint *uniformIndices
GLint glGetUniformLocation
GLuint program
const GLchar *name
GLint glGetUniformLocationARB
GLhandleARB programObj
const GLcharARB *name
GLintptr glGetUniformOffsetEXT
GLuint program
GLint location
void glGetUniformSubroutineuiv
GLenum shadertype
GLint location
GLuint *params
void glGetUniformdv
GLuint program
GLint location
GLdouble *params
void glGetUniformfv
GLuint program
GLint location
GLfloat *params
void glGetUniformfvARB
GLhandleARB programObj
GLint location
GLfloat *params
void glGetUniformi64vARB
GLuint program
GLint location
GLint64 *params
void glGetUniformi64vNV
GLuint program
GLint location
GLint64EXT *params
void glGetUniformiv
GLuint program
GLint location
GLint *params
void glGetUniformivARB
GLhandleARB programObj
GLint location
GLint *params
void glGetUniformui64vARB
GLuint program
GLint location
GLuint64 *params
void glGetUniformui64vNV
GLuint program
GLint location
GLuint64EXT *params
void glGetUniformuiv
GLuint program
GLint location
GLuint *params
void glGetUniformuivEXT
GLuint program
GLint location
GLuint *params
void glGetUnsignedBytevEXT
GLenum pname
GLubyte *data
void glGetUnsignedBytei_vEXT
GLenum target
GLuint index
GLubyte *data
void glGetVariantArrayObjectfvATI
GLuint id
GLenum pname
GLfloat *params
void glGetVariantArrayObjectivATI
GLuint id
GLenum pname
GLint *params
void glGetVariantBooleanvEXT
GLuint id
GLenum value
GLboolean *data
void glGetVariantFloatvEXT
GLuint id
GLenum value
GLfloat *data
void glGetVariantIntegervEXT
GLuint id
GLenum value
GLint *data
void glGetVariantPointervEXT
GLuint id
GLenum value
void **data
GLint glGetVaryingLocationNV
GLuint program
const GLchar *name
void glGetVertexArrayIndexed64iv
GLuint vaobj
GLuint index
GLenum pname
GLint64 *param
void glGetVertexArrayIndexediv
GLuint vaobj
GLuint index
GLenum pname
GLint *param
void glGetVertexArrayIntegeri_vEXT
GLuint vaobj
GLuint index
GLenum pname
GLint *param
void glGetVertexArrayIntegervEXT
GLuint vaobj
GLenum pname
GLint *param
void glGetVertexArrayPointeri_vEXT
GLuint vaobj
GLuint index
GLenum pname
void **param
void glGetVertexArrayPointervEXT
GLuint vaobj
GLenum pname
void **param
void glGetVertexArrayiv
GLuint vaobj
GLenum pname
GLint *param
void glGetVertexAttribArrayObjectfvATI
GLuint index
GLenum pname
GLfloat *params
void glGetVertexAttribArrayObjectivATI
GLuint index
GLenum pname
GLint *params
void glGetVertexAttribIiv
GLuint index
GLenum pname
GLint *params
void glGetVertexAttribIivEXT
GLuint index
GLenum pname
GLint *params
void glGetVertexAttribIuiv
GLuint index
GLenum pname
GLuint *params
void glGetVertexAttribIuivEXT
GLuint index
GLenum pname
GLuint *params
void glGetVertexAttribLdv
GLuint index
GLenum pname
GLdouble *params
void glGetVertexAttribLdvEXT
GLuint index
GLenum pname
GLdouble *params
void glGetVertexAttribLi64vNV
GLuint index
GLenum pname
GLint64EXT *params
void glGetVertexAttribLui64vARB
GLuint index
GLenum pname
GLuint64EXT *params
void glGetVertexAttribLui64vNV
GLuint index
GLenum pname
GLuint64EXT *params
void glGetVertexAttribPointerv
GLuint index
GLenum pname
void **pointer
void glGetVertexAttribPointervARB
GLuint index
GLenum pname
void **pointer
void glGetVertexAttribPointervNV
GLuint index
GLenum pname
void **pointer
void glGetVertexAttribdv
GLuint index
GLenum pname
GLdouble *params
void glGetVertexAttribdvARB
GLuint index
GLenum pname
GLdouble *params
void glGetVertexAttribdvNV
GLuint index
GLenum pname
GLdouble *params
void glGetVertexAttribfv
GLuint index
GLenum pname
GLfloat *params
void glGetVertexAttribfvARB
GLuint index
GLenum pname
GLfloat *params
void glGetVertexAttribfvNV
GLuint index
GLenum pname
GLfloat *params
void glGetVertexAttribiv
GLuint index
GLenum pname
GLint *params
void glGetVertexAttribivARB
GLuint index
GLenum pname
GLint *params
void glGetVertexAttribivNV
GLuint index
GLenum pname
GLint *params
void glGetVideoCaptureStreamdvNV
GLuint video_capture_slot
GLuint stream
GLenum pname
GLdouble *params
void glGetVideoCaptureStreamfvNV
GLuint video_capture_slot
GLuint stream
GLenum pname
GLfloat *params
void glGetVideoCaptureStreamivNV
GLuint video_capture_slot
GLuint stream
GLenum pname
GLint *params
void glGetVideoCaptureivNV
GLuint video_capture_slot
GLenum pname
GLint *params
void glGetVideoi64vNV
GLuint video_slot
GLenum pname
GLint64EXT *params
void glGetVideoivNV
GLuint video_slot
GLenum pname
GLint *params
void glGetVideoui64vNV
GLuint video_slot
GLenum pname
GLuint64EXT *params
void glGetVideouivNV
GLuint video_slot
GLenum pname
GLuint *params
void glGetnColorTable
GLenum target
GLenum format
GLenum type
GLsizei bufSize
void *table
void glGetnColorTableARB
GLenum target
GLenum format
GLenum type
GLsizei bufSize
void *table
void glGetnCompressedTexImage
GLenum target
GLint lod
GLsizei bufSize
void *pixels
void glGetnCompressedTexImageARB
GLenum target
GLint lod
GLsizei bufSize
void *img
void glGetnConvolutionFilter
GLenum target
GLenum format
GLenum type
GLsizei bufSize
void *image
void glGetnConvolutionFilterARB
GLenum target
GLenum format
GLenum type
GLsizei bufSize
void *image
void glGetnHistogram
GLenum target
GLboolean reset
GLenum format
GLenum type
GLsizei bufSize
void *values
void glGetnHistogramARB
GLenum target
GLboolean reset
GLenum format
GLenum type
GLsizei bufSize
void *values
void glGetnMapdv
GLenum target
GLenum query
GLsizei bufSize
GLdouble *v
void glGetnMapdvARB
GLenum target
GLenum query
GLsizei bufSize
GLdouble *v
void glGetnMapfv
GLenum target
GLenum query
GLsizei bufSize
GLfloat *v
void glGetnMapfvARB
GLenum target
GLenum query
GLsizei bufSize
GLfloat *v
void glGetnMapiv
GLenum target
GLenum query
GLsizei bufSize
GLint *v
void glGetnMapivARB
GLenum target
GLenum query
GLsizei bufSize
GLint *v
void glGetnMinmax
GLenum target
GLboolean reset
GLenum format
GLenum type
GLsizei bufSize
void *values
void glGetnMinmaxARB
GLenum target
GLboolean reset
GLenum format
GLenum type
GLsizei bufSize
void *values
void glGetnPixelMapfv
GLenum map
GLsizei bufSize
GLfloat *values
void glGetnPixelMapfvARB
GLenum map
GLsizei bufSize
GLfloat *values
void glGetnPixelMapuiv
GLenum map
GLsizei bufSize
GLuint *values
void glGetnPixelMapuivARB
GLenum map
GLsizei bufSize
GLuint *values
void glGetnPixelMapusv
GLenum map
GLsizei bufSize
GLushort *values
void glGetnPixelMapusvARB
GLenum map
GLsizei bufSize
GLushort *values
void glGetnPolygonStipple
GLsizei bufSize
GLubyte *pattern
void glGetnPolygonStippleARB
GLsizei bufSize
GLubyte *pattern
void glGetnSeparableFilter
GLenum target
GLenum format
GLenum type
GLsizei rowBufSize
void *row
GLsizei columnBufSize
void *column
void *span
void glGetnSeparableFilterARB
GLenum target
GLenum format
GLenum type
GLsizei rowBufSize
void *row
GLsizei columnBufSize
void *column
void *span
void glGetnTexImage
GLenum target
GLint level
GLenum format
GLenum type
GLsizei bufSize
void *pixels
void glGetnTexImageARB
GLenum target
GLint level
GLenum format
GLenum type
GLsizei bufSize
void *img
void glGetnUniformdv
GLuint program
GLint location
GLsizei bufSize
GLdouble *params
void glGetnUniformdvARB
GLuint program
GLint location
GLsizei bufSize
GLdouble *params
void glGetnUniformfv
GLuint program
GLint location
GLsizei bufSize
GLfloat *params
void glGetnUniformfvARB
GLuint program
GLint location
GLsizei bufSize
GLfloat *params
void glGetnUniformfvEXT
GLuint program
GLint location
GLsizei bufSize
GLfloat *params
void glGetnUniformfvKHR
GLuint program
GLint location
GLsizei bufSize
GLfloat *params
void glGetnUniformi64vARB
GLuint program
GLint location
GLsizei bufSize
GLint64 *params
void glGetnUniformiv
GLuint program
GLint location
GLsizei bufSize
GLint *params
void glGetnUniformivARB
GLuint program
GLint location
GLsizei bufSize
GLint *params
void glGetnUniformivEXT
GLuint program
GLint location
GLsizei bufSize
GLint *params
void glGetnUniformivKHR
GLuint program
GLint location
GLsizei bufSize
GLint *params
void glGetnUniformui64vARB
GLuint program
GLint location
GLsizei bufSize
GLuint64 *params
void glGetnUniformuiv
GLuint program
GLint location
GLsizei bufSize
GLuint *params
void glGetnUniformuivARB
GLuint program
GLint location
GLsizei bufSize
GLuint *params
void glGetnUniformuivKHR
GLuint program
GLint location
GLsizei bufSize
GLuint *params
void glGlobalAlphaFactorbSUN
GLbyte factor
void glGlobalAlphaFactordSUN
GLdouble factor
void glGlobalAlphaFactorfSUN
GLfloat factor
void glGlobalAlphaFactoriSUN
GLint factor
void glGlobalAlphaFactorsSUN
GLshort factor
void glGlobalAlphaFactorubSUN
GLubyte factor
void glGlobalAlphaFactoruiSUN
GLuint factor
void glGlobalAlphaFactorusSUN
GLushort factor
void glHint
GLenum target
GLenum mode
void glHintPGI
GLenum target
GLint mode
void glHistogram
GLenum target
GLsizei width
GLenum internalformat
GLboolean sink
void glHistogramEXT
GLenum target
GLsizei width
GLenum internalformat
GLboolean sink
void glIglooInterfaceSGIX
GLenum pname
const void *params
void glImageTransformParameterfHP
GLenum target
GLenum pname
GLfloat param
void glImageTransformParameterfvHP
GLenum target
GLenum pname
const GLfloat *params
void glImageTransformParameteriHP
GLenum target
GLenum pname
GLint param
void glImageTransformParameterivHP
GLenum target
GLenum pname
const GLint *params
void glImportMemoryFdEXT
GLuint memory
GLuint64 size
GLenum handleType
GLint fd
void glImportMemoryWin32HandleEXT
GLuint memory
GLuint64 size
GLenum handleType
void *handle
void glImportMemoryWin32NameEXT
GLuint memory
GLuint64 size
GLenum handleType
const void *name
void glImportSemaphoreFdEXT
GLuint semaphore
GLenum handleType
GLint fd
void glImportSemaphoreWin32HandleEXT
GLuint semaphore
GLenum handleType
void *handle
void glImportSemaphoreWin32NameEXT
GLuint semaphore
GLenum handleType
const void *name
GLsync glImportSyncEXT
GLenum external_sync_type
GLintptr external_sync
GLbitfield flags
void glIndexFormatNV
GLenum type
GLsizei stride
void glIndexFuncEXT
GLenum func
GLclampf ref
void glIndexMask
GLuint mask
void glIndexMaterialEXT
GLenum face
GLenum mode
void glIndexPointer
GLenum type
GLsizei stride
const void *pointer
void glIndexPointerEXT
GLenum type
GLsizei stride
GLsizei count
const void *pointer
void glIndexPointerListIBM
GLenum type
GLint stride
const void **pointer
GLint ptrstride
void glIndexd
GLdouble c
void glIndexdv
const GLdouble *c
void glIndexf
GLfloat c
void glIndexfv
const GLfloat *c
void glIndexi
GLint c
void glIndexiv
const GLint *c
void glIndexs
GLshort c
void glIndexsv
const GLshort *c
void glIndexub
GLubyte c
void glIndexubv
const GLubyte *c
void glIndexxOES
GLfixed component
void glIndexxvOES
const GLfixed *component
void glInitNames
void glInsertComponentEXT
GLuint res
GLuint src
GLuint num
void glInsertEventMarkerEXT
GLsizei length
const GLchar *marker
void glInstrumentsBufferSGIX
GLsizei size
GLint *buffer
void glInterleavedArrays
GLenum format
GLsizei stride
const void *pointer
void glInterpolatePathsNV
GLuint resultPath
GLuint pathA
GLuint pathB
GLfloat weight
void glInvalidateBufferData
GLuint buffer
void glInvalidateBufferSubData
GLuint buffer
GLintptr offset
GLsizeiptr length
void glInvalidateFramebuffer
GLenum target
GLsizei numAttachments
const GLenum *attachments
void glInvalidateNamedFramebufferData
GLuint framebuffer
GLsizei numAttachments
const GLenum *attachments
void glInvalidateNamedFramebufferSubData
GLuint framebuffer
GLsizei numAttachments
const GLenum *attachments
GLint x
GLint y
GLsizei width
GLsizei height
void glInvalidateSubFramebuffer
GLenum target
GLsizei numAttachments
const GLenum *attachments
GLint x
GLint y
GLsizei width
GLsizei height
void glInvalidateTexImage
GLuint texture
GLint level
void glInvalidateTexSubImage
GLuint texture
GLint level
GLint xoffset
GLint yoffset
GLint zoffset
GLsizei width
GLsizei height
GLsizei depth
GLboolean glIsAsyncMarkerSGIX
GLuint marker
GLboolean glIsBuffer
GLuint buffer
GLboolean glIsBufferARB
GLuint buffer
GLboolean glIsBufferResidentNV
GLenum target
GLboolean glIsCommandListNV
GLuint list
GLboolean glIsEnabled
GLenum cap
GLboolean glIsEnabledIndexedEXT
GLenum target
GLuint index
GLboolean glIsEnabledi
GLenum target
GLuint index
GLboolean glIsEnablediEXT
GLenum target
GLuint index
GLboolean glIsEnablediNV
GLenum target
GLuint index
GLboolean glIsEnablediOES
GLenum target
GLuint index
GLboolean glIsFenceAPPLE
GLuint fence
GLboolean glIsFenceNV
GLuint fence
GLboolean glIsFramebuffer
GLuint framebuffer
GLboolean glIsFramebufferEXT
GLuint framebuffer
GLboolean glIsFramebufferOES
GLuint framebuffer
GLboolean glIsImageHandleResidentARB
GLuint64 handle
GLboolean glIsImageHandleResidentNV
GLuint64 handle
GLboolean glIsList
GLuint list
GLboolean glIsMemoryObjectEXT
GLuint memoryObject
GLboolean glIsNameAMD
GLenum identifier
GLuint name
GLboolean glIsNamedBufferResidentNV
GLuint buffer
GLboolean glIsNamedStringARB
GLint namelen
const GLchar *name
GLboolean glIsObjectBufferATI
GLuint buffer
GLboolean glIsOcclusionQueryNV
GLuint id
GLboolean glIsPathNV
GLuint path
GLboolean glIsPointInFillPathNV
GLuint path
GLuint mask
GLfloat x
GLfloat y
GLboolean glIsPointInStrokePathNV
GLuint path
GLfloat x
GLfloat y
GLboolean glIsProgram
GLuint program
GLboolean glIsProgramARB
GLuint program
GLboolean glIsProgramNV
GLuint id
GLboolean glIsProgramPipeline
GLuint pipeline
GLboolean glIsProgramPipelineEXT
GLuint pipeline
GLboolean glIsQuery
GLuint id
GLboolean glIsQueryARB
GLuint id
GLboolean glIsQueryEXT
GLuint id
GLboolean glIsRenderbuffer
GLuint renderbuffer
GLboolean glIsRenderbufferEXT
GLuint renderbuffer
GLboolean glIsRenderbufferOES
GLuint renderbuffer
GLboolean glIsSemaphoreEXT
GLuint semaphore
GLboolean glIsSampler
GLuint sampler
GLboolean glIsShader
GLuint shader
GLboolean glIsStateNV
GLuint state
GLboolean glIsSync
GLsync sync
GLboolean glIsSyncAPPLE
GLsync sync
GLboolean glIsTexture
GLuint texture
GLboolean glIsTextureEXT
GLuint texture
GLboolean glIsTextureHandleResidentARB
GLuint64 handle
GLboolean glIsTextureHandleResidentNV
GLuint64 handle
GLboolean glIsTransformFeedback
GLuint id
GLboolean glIsTransformFeedbackNV
GLuint id
GLboolean glIsVariantEnabledEXT
GLuint id
GLenum cap
GLboolean glIsVertexArray
GLuint array
GLboolean glIsVertexArrayAPPLE
GLuint array
GLboolean glIsVertexArrayOES
GLuint array
GLboolean glIsVertexAttribEnabledAPPLE
GLuint index
GLenum pname
void glLGPUCopyImageSubDataNVX
GLuint sourceGpu
GLbitfield destinationGpuMask
GLuint srcName
GLenum srcTarget
GLint srcLevel
GLint srcX
GLint srxY
GLint srcZ
GLuint dstName
GLenum dstTarget
GLint dstLevel
GLint dstX
GLint dstY
GLint dstZ
GLsizei width
GLsizei height
GLsizei depth
void glLGPUInterlockNVX
void glLGPUNamedBufferSubDataNVX
GLbitfield gpuMask
GLuint buffer
GLintptr offset
GLsizeiptr size
const void *data
void glLabelObjectEXT
GLenum type
GLuint object
GLsizei length
const GLchar *label
void glLightEnviSGIX
GLenum pname
GLint param
void glLightModelf
GLenum pname
GLfloat param
void glLightModelfv
GLenum pname
const GLfloat *params
void glLightModeli
GLenum pname
GLint param
void glLightModeliv
GLenum pname
const GLint *params
void glLightModelx
GLenum pname
GLfixed param
void glLightModelxOES
GLenum pname
GLfixed param
void glLightModelxv
GLenum pname
const GLfixed *param
void glLightModelxvOES
GLenum pname
const GLfixed *param
void glLightf
GLenum light
GLenum pname
GLfloat param
void glLightfv
GLenum light
GLenum pname
const GLfloat *params
void glLighti
GLenum light
GLenum pname
GLint param
void glLightiv
GLenum light
GLenum pname
const GLint *params
void glLightx
GLenum light
GLenum pname
GLfixed param
void glLightxOES
GLenum light
GLenum pname
GLfixed param
void glLightxv
GLenum light
GLenum pname
const GLfixed *params
void glLightxvOES
GLenum light
GLenum pname
const GLfixed *params
void glLineStipple
GLint factor
GLushort pattern
void glLineWidth
GLfloat width
void glLineWidthx
GLfixed width
void glLineWidthxOES
GLfixed width
void glLinkProgram
GLuint program
void glLinkProgramARB
GLhandleARB programObj
void glListBase
GLuint base
void glListDrawCommandsStatesClientNV
GLuint list
GLuint segment
const void **indirects
const GLsizei *sizes
const GLuint *states
const GLuint *fbos
GLuint count
void glListParameterfSGIX
GLuint list
GLenum pname
GLfloat param
void glListParameterfvSGIX
GLuint list
GLenum pname
const GLfloat *params
void glListParameteriSGIX
GLuint list
GLenum pname
GLint param
void glListParameterivSGIX
GLuint list
GLenum pname
const GLint *params
void glLoadIdentity
void glLoadIdentityDeformationMapSGIX
GLbitfield mask
void glLoadMatrixd
const GLdouble *m
void glLoadMatrixf
const GLfloat *m
void glLoadMatrixx
const GLfixed *m
void glLoadMatrixxOES
const GLfixed *m
void glLoadName
GLuint name
void glLoadPaletteFromModelViewMatrixOES
void glLoadProgramNV
GLenum target
GLuint id
GLsizei len
const GLubyte *program
void glLoadTransposeMatrixd
const GLdouble *m
void glLoadTransposeMatrixdARB
const GLdouble *m
void glLoadTransposeMatrixf
const GLfloat *m
void glLoadTransposeMatrixfARB
const GLfloat *m
void glLoadTransposeMatrixxOES
const GLfixed *m
void glLockArraysEXT
GLint first
GLsizei count
void glLogicOp
GLenum opcode
void glMakeBufferNonResidentNV
GLenum target
void glMakeBufferResidentNV
GLenum target
GLenum access
void glMakeImageHandleNonResidentARB
GLuint64 handle
void glMakeImageHandleNonResidentNV
GLuint64 handle
void glMakeImageHandleResidentARB
GLuint64 handle
GLenum access
void glMakeImageHandleResidentNV
GLuint64 handle
GLenum access
void glMakeNamedBufferNonResidentNV
GLuint buffer
void glMakeNamedBufferResidentNV
GLuint buffer
GLenum access
void glMakeTextureHandleNonResidentARB
GLuint64 handle
void glMakeTextureHandleNonResidentNV
GLuint64 handle
void glMakeTextureHandleResidentARB
GLuint64 handle
void glMakeTextureHandleResidentNV
GLuint64 handle
void glMap1d
GLenum target
GLdouble u1
GLdouble u2
GLint stride
GLint order
const GLdouble *points
void glMap1f
GLenum target
GLfloat u1
GLfloat u2
GLint stride
GLint order
const GLfloat *points
void glMap1xOES
GLenum target
GLfixed u1
GLfixed u2
GLint stride
GLint order
GLfixed points
void glMap2d
GLenum target
GLdouble u1
GLdouble u2
GLint ustride
GLint uorder
GLdouble v1
GLdouble v2
GLint vstride
GLint vorder
const GLdouble *points
void glMap2f
GLenum target
GLfloat u1
GLfloat u2
GLint ustride
GLint uorder
GLfloat v1
GLfloat v2
GLint vstride
GLint vorder
const GLfloat *points
void glMap2xOES
GLenum target
GLfixed u1
GLfixed u2
GLint ustride
GLint uorder
GLfixed v1
GLfixed v2
GLint vstride
GLint vorder
GLfixed points
void *glMapBuffer
GLenum target
GLenum access
void *glMapBufferARB
GLenum target
GLenum access
void *glMapBufferOES
GLenum target
GLenum access
void *glMapBufferRange
GLenum target
GLintptr offset
GLsizeiptr length
GLbitfield access
void *glMapBufferRangeEXT
GLenum target
GLintptr offset
GLsizeiptr length
GLbitfield access
void glMapControlPointsNV
GLenum target
GLuint index
GLenum type
GLsizei ustride
GLsizei vstride
GLint uorder
GLint vorder
GLboolean packed
const void *points
void glMapGrid1d
GLint un
GLdouble u1
GLdouble u2
void glMapGrid1f
GLint un
GLfloat u1
GLfloat u2
void glMapGrid1xOES
GLint n
GLfixed u1
GLfixed u2
void glMapGrid2d
GLint un
GLdouble u1
GLdouble u2
GLint vn
GLdouble v1
GLdouble v2
void glMapGrid2f
GLint un
GLfloat u1
GLfloat u2
GLint vn
GLfloat v1
GLfloat v2
void glMapGrid2xOES
GLint n
GLfixed u1
GLfixed u2
GLfixed v1
GLfixed v2
void *glMapNamedBuffer
GLuint buffer
GLenum access
void *glMapNamedBufferEXT
GLuint buffer
GLenum access
void *glMapNamedBufferRange
GLuint buffer
GLintptr offset
GLsizeiptr length
GLbitfield access
void *glMapNamedBufferRangeEXT
GLuint buffer
GLintptr offset
GLsizeiptr length
GLbitfield access
void *glMapObjectBufferATI
GLuint buffer
void glMapParameterfvNV
GLenum target
GLenum pname
const GLfloat *params
void glMapParameterivNV
GLenum target
GLenum pname
const GLint *params
void *glMapTexture2DINTEL
GLuint texture
GLint level
GLbitfield access
GLint *stride
GLenum *layout
void glMapVertexAttrib1dAPPLE
GLuint index
GLuint size
GLdouble u1
GLdouble u2
GLint stride
GLint order
const GLdouble *points
void glMapVertexAttrib1fAPPLE
GLuint index
GLuint size
GLfloat u1
GLfloat u2
GLint stride
GLint order
const GLfloat *points
void glMapVertexAttrib2dAPPLE
GLuint index
GLuint size
GLdouble u1
GLdouble u2
GLint ustride
GLint uorder
GLdouble v1
GLdouble v2
GLint vstride
GLint vorder
const GLdouble *points
void glMapVertexAttrib2fAPPLE
GLuint index
GLuint size
GLfloat u1
GLfloat u2
GLint ustride
GLint uorder
GLfloat v1
GLfloat v2
GLint vstride
GLint vorder
const GLfloat *points
void glMaterialf
GLenum face
GLenum pname
GLfloat param
void glMaterialfv
GLenum face
GLenum pname
const GLfloat *params
void glMateriali
GLenum face
GLenum pname
GLint param
void glMaterialiv
GLenum face
GLenum pname
const GLint *params
void glMaterialx
GLenum face
GLenum pname
GLfixed param
void glMaterialxOES
GLenum face
GLenum pname
GLfixed param
void glMaterialxv
GLenum face
GLenum pname
const GLfixed *param
void glMaterialxvOES
GLenum face
GLenum pname
const GLfixed *param
void glMatrixFrustumEXT
GLenum mode
GLdouble left
GLdouble right
GLdouble bottom
GLdouble top
GLdouble zNear
GLdouble zFar
void glMatrixIndexPointerARB
GLint size
GLenum type
GLsizei stride
const void *pointer
void glMatrixIndexPointerOES
GLint size
GLenum type
GLsizei stride
const void *pointer
void glMatrixIndexubvARB
GLint size
const GLubyte *indices
void glMatrixIndexuivARB
GLint size
const GLuint *indices
void glMatrixIndexusvARB
GLint size
const GLushort *indices
void glMatrixLoad3x2fNV
GLenum matrixMode
const GLfloat *m
void glMatrixLoad3x3fNV
GLenum matrixMode
const GLfloat *m
void glMatrixLoadIdentityEXT
GLenum mode
void glMatrixLoadTranspose3x3fNV
GLenum matrixMode
const GLfloat *m
void glMatrixLoadTransposedEXT
GLenum mode
const GLdouble *m
void glMatrixLoadTransposefEXT
GLenum mode
const GLfloat *m
void glMatrixLoaddEXT
GLenum mode
const GLdouble *m
void glMatrixLoadfEXT
GLenum mode
const GLfloat *m
void glMatrixMode
GLenum mode
void glMatrixMult3x2fNV
GLenum matrixMode
const GLfloat *m
void glMatrixMult3x3fNV
GLenum matrixMode
const GLfloat *m
void glMatrixMultTranspose3x3fNV
GLenum matrixMode
const GLfloat *m
void glMatrixMultTransposedEXT
GLenum mode
const GLdouble *m
void glMatrixMultTransposefEXT
GLenum mode
const GLfloat *m
void glMatrixMultdEXT
GLenum mode
const GLdouble *m
void glMatrixMultfEXT
GLenum mode
const GLfloat *m
void glMatrixOrthoEXT
GLenum mode
GLdouble left
GLdouble right
GLdouble bottom
GLdouble top
GLdouble zNear
GLdouble zFar
void glMatrixPopEXT
GLenum mode
void glMatrixPushEXT
GLenum mode
void glMatrixRotatedEXT
GLenum mode
GLdouble angle
GLdouble x
GLdouble y
GLdouble z
void glMatrixRotatefEXT
GLenum mode
GLfloat angle
GLfloat x
GLfloat y
GLfloat z
void glMatrixScaledEXT
GLenum mode
GLdouble x
GLdouble y
GLdouble z
void glMatrixScalefEXT
GLenum mode
GLfloat x
GLfloat y
GLfloat z
void glMatrixTranslatedEXT
GLenum mode
GLdouble x
GLdouble y
GLdouble z
void glMatrixTranslatefEXT
GLenum mode
GLfloat x
GLfloat y
GLfloat z
void glMaxShaderCompilerThreadsKHR
GLuint count
void glMaxShaderCompilerThreadsARB
GLuint count
void glMemoryBarrier
GLbitfield barriers
void glMemoryBarrierByRegion
GLbitfield barriers
void glMemoryBarrierEXT
GLbitfield barriers
void glMemoryObjectParameterivEXT
GLuint memoryObject
GLenum pname
const GLint *params
void glMinSampleShading
GLfloat value
void glMinSampleShadingARB
GLfloat value
void glMinSampleShadingOES
GLfloat value
void glMinmax
GLenum target
GLenum internalformat
GLboolean sink
void glMinmaxEXT
GLenum target
GLenum internalformat
GLboolean sink
void glMultMatrixd
const GLdouble *m
void glMultMatrixf
const GLfloat *m
void glMultMatrixx
const GLfixed *m
void glMultMatrixxOES
const GLfixed *m
void glMultTransposeMatrixd
const GLdouble *m
void glMultTransposeMatrixdARB
const GLdouble *m
void glMultTransposeMatrixf
const GLfloat *m
void glMultTransposeMatrixfARB
const GLfloat *m
void glMultTransposeMatrixxOES
const GLfixed *m
void glMultiDrawArrays
GLenum mode
const GLint *first
const GLsizei *count
GLsizei drawcount
void glMultiDrawArraysEXT
GLenum mode
const GLint *first
const GLsizei *count
GLsizei primcount
void glMultiDrawArraysIndirect
GLenum mode
const void *indirect
GLsizei drawcount
GLsizei stride
void glMultiDrawArraysIndirectAMD
GLenum mode
const void *indirect
GLsizei primcount
GLsizei stride
void glMultiDrawArraysIndirectBindlessCountNV
GLenum mode
const void *indirect
GLsizei drawCount
GLsizei maxDrawCount
GLsizei stride
GLint vertexBufferCount
void glMultiDrawArraysIndirectBindlessNV
GLenum mode
const void *indirect
GLsizei drawCount
GLsizei stride
GLint vertexBufferCount
void glMultiDrawArraysIndirectCount
GLenum mode
const void *indirect
GLintptr drawcount
GLsizei maxdrawcount
GLsizei stride
void glMultiDrawArraysIndirectCountARB
GLenum mode
const void *indirect
GLintptr drawcount
GLsizei maxdrawcount
GLsizei stride
void glMultiDrawArraysIndirectEXT
GLenum mode
const void *indirect
GLsizei drawcount
GLsizei stride
void glMultiDrawElementArrayAPPLE
GLenum mode
const GLint *first
const GLsizei *count
GLsizei primcount
void glMultiDrawElements
GLenum mode
const GLsizei *count
GLenum type
const void *const*indices
GLsizei drawcount
void glMultiDrawElementsBaseVertex
GLenum mode
const GLsizei *count
GLenum type
const void *const*indices
GLsizei drawcount
const GLint *basevertex
void glMultiDrawElementsBaseVertexEXT
GLenum mode
const GLsizei *count
GLenum type
const void *const*indices
GLsizei primcount
const GLint *basevertex
void glMultiDrawElementsEXT
GLenum mode
const GLsizei *count
GLenum type
const void *const*indices
GLsizei primcount
void glMultiDrawElementsIndirect
GLenum mode
GLenum type
const void *indirect
GLsizei drawcount
GLsizei stride
void glMultiDrawElementsIndirectAMD
GLenum mode
GLenum type
const void *indirect
GLsizei primcount
GLsizei stride
void glMultiDrawElementsIndirectBindlessCountNV
GLenum mode
GLenum type
const void *indirect
GLsizei drawCount
GLsizei maxDrawCount
GLsizei stride
GLint vertexBufferCount
void glMultiDrawElementsIndirectBindlessNV
GLenum mode
GLenum type
const void *indirect
GLsizei drawCount
GLsizei stride
GLint vertexBufferCount
void glMultiDrawElementsIndirectCount
GLenum mode
GLenum type
const void *indirect
GLintptr drawcount
GLsizei maxdrawcount
GLsizei stride
void glMultiDrawElementsIndirectCountARB
GLenum mode
GLenum type
const void *indirect
GLintptr drawcount
GLsizei maxdrawcount
GLsizei stride
void glMultiDrawElementsIndirectCountARB
GLenum mode
GLenum type
const void *indirect
GLintptr drawcount
GLsizei maxdrawcount
GLsizei stride
void glMultiDrawElementsIndirectEXT
GLenum mode
GLenum type
const void *indirect
GLsizei drawcount
GLsizei stride
void glMultiDrawMeshTasksIndirectNV
GLintptr indirect
GLsizei drawcount
GLsizei stride
void glMultiDrawMeshTasksIndirectCountNV
GLintptr indirect
GLintptr drawcount
GLsizei maxdrawcount
GLsizei stride
void glMultiDrawRangeElementArrayAPPLE
GLenum mode
GLuint start
GLuint end
const GLint *first
const GLsizei *count
GLsizei primcount
void glMultiModeDrawArraysIBM
const GLenum *mode
const GLint *first
const GLsizei *count
GLsizei primcount
GLint modestride
void glMultiModeDrawElementsIBM
const GLenum *mode
const GLsizei *count
GLenum type
const void *const*indices
GLsizei primcount
GLint modestride
void glMultiTexBufferEXT
GLenum texunit
GLenum target
GLenum internalformat
GLuint buffer
void glMultiTexCoord1bOES
GLenum texture
GLbyte s
void glMultiTexCoord1bvOES
GLenum texture
const GLbyte *coords
void glMultiTexCoord1d
GLenum target
GLdouble s
void glMultiTexCoord1dARB
GLenum target
GLdouble s
void glMultiTexCoord1dv
GLenum target
const GLdouble *v
void glMultiTexCoord1dvARB
GLenum target
const GLdouble *v
void glMultiTexCoord1f
GLenum target
GLfloat s
void glMultiTexCoord1fARB
GLenum target
GLfloat s
void glMultiTexCoord1fv
GLenum target
const GLfloat *v
void glMultiTexCoord1fvARB
GLenum target
const GLfloat *v
void glMultiTexCoord1hNV
GLenum target
GLhalfNV s
void glMultiTexCoord1hvNV
GLenum target
const GLhalfNV *v
void glMultiTexCoord1i
GLenum target
GLint s
void glMultiTexCoord1iARB
GLenum target
GLint s
void glMultiTexCoord1iv
GLenum target
const GLint *v
void glMultiTexCoord1ivARB
GLenum target
const GLint *v
void glMultiTexCoord1s
GLenum target
GLshort s
void glMultiTexCoord1sARB
GLenum target
GLshort s
void glMultiTexCoord1sv
GLenum target
const GLshort *v
void glMultiTexCoord1svARB
GLenum target
const GLshort *v
void glMultiTexCoord1xOES
GLenum texture
GLfixed s
void glMultiTexCoord1xvOES
GLenum texture
const GLfixed *coords
void glMultiTexCoord2bOES
GLenum texture
GLbyte s
GLbyte t
void glMultiTexCoord2bvOES
GLenum texture
const GLbyte *coords
void glMultiTexCoord2d
GLenum target
GLdouble s
GLdouble t
void glMultiTexCoord2dARB
GLenum target
GLdouble s
GLdouble t
void glMultiTexCoord2dv
GLenum target
const GLdouble *v
void glMultiTexCoord2dvARB
GLenum target
const GLdouble *v
void glMultiTexCoord2f
GLenum target
GLfloat s
GLfloat t
void glMultiTexCoord2fARB
GLenum target
GLfloat s
GLfloat t
void glMultiTexCoord2fv
GLenum target
const GLfloat *v
void glMultiTexCoord2fvARB
GLenum target
const GLfloat *v
void glMultiTexCoord2hNV
GLenum target
GLhalfNV s
GLhalfNV t
void glMultiTexCoord2hvNV
GLenum target
const GLhalfNV *v
void glMultiTexCoord2i
GLenum target
GLint s
GLint t
void glMultiTexCoord2iARB
GLenum target
GLint s
GLint t
void glMultiTexCoord2iv
GLenum target
const GLint *v
void glMultiTexCoord2ivARB
GLenum target
const GLint *v
void glMultiTexCoord2s
GLenum target
GLshort s
GLshort t
void glMultiTexCoord2sARB
GLenum target
GLshort s
GLshort t
void glMultiTexCoord2sv
GLenum target
const GLshort *v
void glMultiTexCoord2svARB
GLenum target
const GLshort *v
void glMultiTexCoord2xOES
GLenum texture
GLfixed s
GLfixed t
void glMultiTexCoord2xvOES
GLenum texture
const GLfixed *coords
void glMultiTexCoord3bOES
GLenum texture
GLbyte s
GLbyte t
GLbyte r
void glMultiTexCoord3bvOES
GLenum texture
const GLbyte *coords
void glMultiTexCoord3d
GLenum target
GLdouble s
GLdouble t
GLdouble r
void glMultiTexCoord3dARB
GLenum target
GLdouble s
GLdouble t
GLdouble r
void glMultiTexCoord3dv
GLenum target
const GLdouble *v
void glMultiTexCoord3dvARB
GLenum target
const GLdouble *v
void glMultiTexCoord3f
GLenum target
GLfloat s
GLfloat t
GLfloat r
void glMultiTexCoord3fARB
GLenum target
GLfloat s
GLfloat t
GLfloat r
void glMultiTexCoord3fv
GLenum target
const GLfloat *v
void glMultiTexCoord3fvARB
GLenum target
const GLfloat *v
void glMultiTexCoord3hNV
GLenum target
GLhalfNV s
GLhalfNV t
GLhalfNV r
void glMultiTexCoord3hvNV
GLenum target
const GLhalfNV *v
void glMultiTexCoord3i
GLenum target
GLint s
GLint t
GLint r
void glMultiTexCoord3iARB
GLenum target
GLint s
GLint t
GLint r
void glMultiTexCoord3iv
GLenum target
const GLint *v
void glMultiTexCoord3ivARB
GLenum target
const GLint *v
void glMultiTexCoord3s
GLenum target
GLshort s
GLshort t
GLshort r
void glMultiTexCoord3sARB
GLenum target
GLshort s
GLshort t
GLshort r
void glMultiTexCoord3sv
GLenum target
const GLshort *v
void glMultiTexCoord3svARB
GLenum target
const GLshort *v
void glMultiTexCoord3xOES
GLenum texture
GLfixed s
GLfixed t
GLfixed r
void glMultiTexCoord3xvOES
GLenum texture
const GLfixed *coords
void glMultiTexCoord4bOES
GLenum texture
GLbyte s
GLbyte t
GLbyte r
GLbyte q
void glMultiTexCoord4bvOES
GLenum texture
const GLbyte *coords
void glMultiTexCoord4d
GLenum target
GLdouble s
GLdouble t
GLdouble r
GLdouble q
void glMultiTexCoord4dARB
GLenum target
GLdouble s
GLdouble t
GLdouble r
GLdouble q
void glMultiTexCoord4dv
GLenum target
const GLdouble *v
void glMultiTexCoord4dvARB
GLenum target
const GLdouble *v
void glMultiTexCoord4f
GLenum target
GLfloat s
GLfloat t
GLfloat r
GLfloat q
void glMultiTexCoord4fARB
GLenum target
GLfloat s
GLfloat t
GLfloat r
GLfloat q
void glMultiTexCoord4fv
GLenum target
const GLfloat *v
void glMultiTexCoord4fvARB
GLenum target
const GLfloat *v
void glMultiTexCoord4hNV
GLenum target
GLhalfNV s
GLhalfNV t
GLhalfNV r
GLhalfNV q
void glMultiTexCoord4hvNV
GLenum target
const GLhalfNV *v
void glMultiTexCoord4i
GLenum target
GLint s
GLint t
GLint r
GLint q
void glMultiTexCoord4iARB
GLenum target
GLint s
GLint t
GLint r
GLint q
void glMultiTexCoord4iv
GLenum target
const GLint *v
void glMultiTexCoord4ivARB
GLenum target
const GLint *v
void glMultiTexCoord4s
GLenum target
GLshort s
GLshort t
GLshort r
GLshort q
void glMultiTexCoord4sARB
GLenum target
GLshort s
GLshort t
GLshort r
GLshort q
void glMultiTexCoord4sv
GLenum target
const GLshort *v
void glMultiTexCoord4svARB
GLenum target
const GLshort *v
void glMultiTexCoord4x
GLenum texture
GLfixed s
GLfixed t
GLfixed r
GLfixed q
void glMultiTexCoord4xOES
GLenum texture
GLfixed s
GLfixed t
GLfixed r
GLfixed q
void glMultiTexCoord4xvOES
GLenum texture
const GLfixed *coords
void glMultiTexCoordP1ui
GLenum texture
GLenum type
GLuint coords
void glMultiTexCoordP1uiv
GLenum texture
GLenum type
const GLuint *coords
void glMultiTexCoordP2ui
GLenum texture
GLenum type
GLuint coords
void glMultiTexCoordP2uiv
GLenum texture
GLenum type
const GLuint *coords
void glMultiTexCoordP3ui
GLenum texture
GLenum type
GLuint coords
void glMultiTexCoordP3uiv
GLenum texture
GLenum type
const GLuint *coords
void glMultiTexCoordP4ui
GLenum texture
GLenum type
GLuint coords
void glMultiTexCoordP4uiv
GLenum texture
GLenum type
const GLuint *coords
void glMultiTexCoordPointerEXT
GLenum texunit
GLint size
GLenum type
GLsizei stride
const void *pointer
void glMultiTexEnvfEXT
GLenum texunit
GLenum target
GLenum pname
GLfloat param
void glMultiTexEnvfvEXT
GLenum texunit
GLenum target
GLenum pname
const GLfloat *params
void glMultiTexEnviEXT
GLenum texunit
GLenum target
GLenum pname
GLint param
void glMultiTexEnvivEXT
GLenum texunit
GLenum target
GLenum pname
const GLint *params
void glMultiTexGendEXT
GLenum texunit
GLenum coord
GLenum pname
GLdouble param
void glMultiTexGendvEXT
GLenum texunit
GLenum coord
GLenum pname
const GLdouble *params
void glMultiTexGenfEXT
GLenum texunit
GLenum coord
GLenum pname
GLfloat param
void glMultiTexGenfvEXT
GLenum texunit
GLenum coord
GLenum pname
const GLfloat *params
void glMultiTexGeniEXT
GLenum texunit
GLenum coord
GLenum pname
GLint param
void glMultiTexGenivEXT
GLenum texunit
GLenum coord
GLenum pname
const GLint *params
void glMultiTexImage1DEXT
GLenum texunit
GLenum target
GLint level
GLint internalformat
GLsizei width
GLint border
GLenum format
GLenum type
const void *pixels
void glMultiTexImage2DEXT
GLenum texunit
GLenum target
GLint level
GLint internalformat
GLsizei width
GLsizei height
GLint border
GLenum format
GLenum type
const void *pixels
void glMultiTexImage3DEXT
GLenum texunit
GLenum target
GLint level
GLint internalformat
GLsizei width
GLsizei height
GLsizei depth
GLint border
GLenum format
GLenum type
const void *pixels
void glMultiTexParameterIivEXT
GLenum texunit
GLenum target
GLenum pname
const GLint *params
void glMultiTexParameterIuivEXT
GLenum texunit
GLenum target
GLenum pname
const GLuint *params
void glMultiTexParameterfEXT
GLenum texunit
GLenum target
GLenum pname
GLfloat param
void glMultiTexParameterfvEXT
GLenum texunit
GLenum target
GLenum pname
const GLfloat *params
void glMultiTexParameteriEXT
GLenum texunit
GLenum target
GLenum pname
GLint param
void glMultiTexParameterivEXT
GLenum texunit
GLenum target
GLenum pname
const GLint *params
void glMultiTexRenderbufferEXT
GLenum texunit
GLenum target
GLuint renderbuffer
void glMultiTexSubImage1DEXT
GLenum texunit
GLenum target
GLint level
GLint xoffset
GLsizei width
GLenum format
GLenum type
const void *pixels
void glMultiTexSubImage2DEXT
GLenum texunit
GLenum target
GLint level
GLint xoffset
GLint yoffset
GLsizei width
GLsizei height
GLenum format
GLenum type
const void *pixels
void glMultiTexSubImage3DEXT
GLenum texunit
GLenum target
GLint level
GLint xoffset
GLint yoffset
GLint zoffset
GLsizei width
GLsizei height
GLsizei depth
GLenum format
GLenum type
const void *pixels
void glMulticastBarrierNV
void glMulticastBlitFramebufferNV
GLuint srcGpu
GLuint dstGpu
GLint srcX0
GLint srcY0
GLint srcX1
GLint srcY1
GLint dstX0
GLint dstY0
GLint dstX1
GLint dstY1
GLbitfield mask
GLenum filter
void glMulticastBufferSubDataNV
GLbitfield gpuMask
GLuint buffer
GLintptr offset
GLsizeiptr size
const void *data
void glMulticastCopyBufferSubDataNV
GLuint readGpu
GLbitfield writeGpuMask
GLuint readBuffer
GLuint writeBuffer
GLintptr readOffset
GLintptr writeOffset
GLsizeiptr size
void glMulticastCopyImageSubDataNV
GLuint srcGpu
GLbitfield dstGpuMask
GLuint srcName
GLenum srcTarget
GLint srcLevel
GLint srcX
GLint srcY
GLint srcZ
GLuint dstName
GLenum dstTarget
GLint dstLevel
GLint dstX
GLint dstY
GLint dstZ
GLsizei srcWidth
GLsizei srcHeight
GLsizei srcDepth
void glMulticastFramebufferSampleLocationsfvNV
GLuint gpu
GLuint framebuffer
GLuint start
GLsizei count
const GLfloat *v
void glMulticastGetQueryObjecti64vNV
GLuint gpu
GLuint id
GLenum pname
GLint64 *params
void glMulticastGetQueryObjectivNV
GLuint gpu
GLuint id
GLenum pname
GLint *params
void glMulticastGetQueryObjectui64vNV
GLuint gpu
GLuint id
GLenum pname
GLuint64 *params
void glMulticastGetQueryObjectuivNV
GLuint gpu
GLuint id
GLenum pname
GLuint *params
void glMulticastScissorArrayvNVX
GLuint gpu
GLuint first
GLsizei count
const GLint *v
void glMulticastViewportArrayvNVX
GLuint gpu
GLuint first
GLsizei count
const GLfloat *v
void glMulticastViewportPositionWScaleNVX
GLuint gpu
GLuint index
GLfloat xcoeff
GLfloat ycoeff
void glMulticastWaitSyncNV
GLuint signalGpu
GLbitfield waitGpuMask
void glNamedBufferAttachMemoryNV
GLuint buffer
GLuint memory
GLuint64 offset
void glNamedBufferData
GLuint buffer
GLsizeiptr size
const void *data
GLenum usage
void glNamedBufferDataEXT
GLuint buffer
GLsizeiptr size
const void *data
GLenum usage
void glNamedBufferPageCommitmentARB
GLuint buffer
GLintptr offset
GLsizeiptr size
GLboolean commit
void glNamedBufferPageCommitmentEXT
GLuint buffer
GLintptr offset
GLsizeiptr size
GLboolean commit
void glNamedBufferStorage
GLuint buffer
GLsizeiptr size
const void *data
GLbitfield flags
void glNamedBufferStorageExternalEXT
GLuint buffer
GLintptr offset
GLsizeiptr size
GLeglClientBufferEXT clientBuffer
GLbitfield flags
void glNamedBufferStorageEXT
GLuint buffer
GLsizeiptr size
const void *data
GLbitfield flags
void glNamedBufferStorageMemEXT
GLuint buffer
GLsizeiptr size
GLuint memory
GLuint64 offset
void glNamedBufferSubData
GLuint buffer
GLintptr offset
GLsizeiptr size
const void *data
void glNamedBufferSubDataEXT
GLuint buffer
GLintptr offset
GLsizeiptr size
const void *data
void glNamedCopyBufferSubDataEXT
GLuint readBuffer
GLuint writeBuffer
GLintptr readOffset
GLintptr writeOffset
GLsizeiptr size
void glNamedFramebufferDrawBuffer
GLuint framebuffer
GLenum buf
void glNamedFramebufferDrawBuffers
GLuint framebuffer
GLsizei n
const GLenum *bufs
void glNamedFramebufferParameteri
GLuint framebuffer
GLenum pname
GLint param
void glNamedFramebufferParameteriEXT
GLuint framebuffer
GLenum pname
GLint param
void glNamedFramebufferReadBuffer
GLuint framebuffer
GLenum src
void glNamedFramebufferRenderbuffer
GLuint framebuffer
GLenum attachment
GLenum renderbuffertarget
GLuint renderbuffer
void glNamedFramebufferRenderbufferEXT
GLuint framebuffer
GLenum attachment
GLenum renderbuffertarget
GLuint renderbuffer
void glNamedFramebufferSampleLocationsfvARB
GLuint framebuffer
GLuint start
GLsizei count
const GLfloat *v
void glNamedFramebufferSampleLocationsfvNV
GLuint framebuffer
GLuint start
GLsizei count
const GLfloat *v
void glNamedFramebufferTexture
GLuint framebuffer
GLenum attachment
GLuint texture
GLint level
void glNamedFramebufferSamplePositionsfvAMD
GLuint framebuffer
GLuint numsamples
GLuint pixelindex
const GLfloat *values
void glNamedFramebufferTexture1DEXT
GLuint framebuffer
GLenum attachment
GLenum textarget
GLuint texture
GLint level
void glNamedFramebufferTexture2DEXT
GLuint framebuffer
GLenum attachment
GLenum textarget
GLuint texture
GLint level
void glNamedFramebufferTexture3DEXT
GLuint framebuffer
GLenum attachment
GLenum textarget
GLuint texture
GLint level
GLint zoffset
void glNamedFramebufferTextureEXT
GLuint framebuffer
GLenum attachment
GLuint texture
GLint level
void glNamedFramebufferTextureFaceEXT
GLuint framebuffer
GLenum attachment
GLuint texture
GLint level
GLenum face
void glNamedFramebufferTextureLayer
GLuint framebuffer
GLenum attachment
GLuint texture
GLint level
GLint layer
void glNamedFramebufferTextureLayerEXT
GLuint framebuffer
GLenum attachment
GLuint texture
GLint level
GLint layer
void glNamedProgramLocalParameter4dEXT
GLuint program
GLenum target
GLuint index
GLdouble x
GLdouble y
GLdouble z
GLdouble w
void glNamedProgramLocalParameter4dvEXT
GLuint program
GLenum target
GLuint index
const GLdouble *params
void glNamedProgramLocalParameter4fEXT
GLuint program
GLenum target
GLuint index
GLfloat x
GLfloat y
GLfloat z
GLfloat w
void glNamedProgramLocalParameter4fvEXT
GLuint program
GLenum target
GLuint index
const GLfloat *params
void glNamedProgramLocalParameterI4iEXT
GLuint program
GLenum target
GLuint index
GLint x
GLint y
GLint z
GLint w
void glNamedProgramLocalParameterI4ivEXT
GLuint program
GLenum target
GLuint index
const GLint *params
void glNamedProgramLocalParameterI4uiEXT
GLuint program
GLenum target
GLuint index
GLuint x
GLuint y
GLuint z
GLuint w
void glNamedProgramLocalParameterI4uivEXT
GLuint program
GLenum target
GLuint index
const GLuint *params
void glNamedProgramLocalParameters4fvEXT
GLuint program
GLenum target
GLuint index
GLsizei count
const GLfloat *params
void glNamedProgramLocalParametersI4ivEXT
GLuint program
GLenum target
GLuint index
GLsizei count
const GLint *params
void glNamedProgramLocalParametersI4uivEXT
GLuint program
GLenum target
GLuint index
GLsizei count
const GLuint *params
void glNamedProgramStringEXT
GLuint program
GLenum target
GLenum format
GLsizei len
const void *string
void glNamedRenderbufferStorage
GLuint renderbuffer
GLenum internalformat
GLsizei width
GLsizei height
void glNamedRenderbufferStorageEXT
GLuint renderbuffer
GLenum internalformat
GLsizei width
GLsizei height
void glNamedRenderbufferStorageMultisample
GLuint renderbuffer
GLsizei samples
GLenum internalformat
GLsizei width
GLsizei height
void glNamedRenderbufferStorageMultisampleAdvancedAMD
GLuint renderbuffer
GLsizei samples
GLsizei storageSamples
GLenum internalformat
GLsizei width
GLsizei height
void glNamedRenderbufferStorageMultisampleCoverageEXT
GLuint renderbuffer
GLsizei coverageSamples
GLsizei colorSamples
GLenum internalformat
GLsizei width
GLsizei height
void glNamedRenderbufferStorageMultisampleEXT
GLuint renderbuffer
GLsizei samples
GLenum internalformat
GLsizei width
GLsizei height
void glNamedStringARB
GLenum type
GLint namelen
const GLchar *name
GLint stringlen
const GLchar *string
void glNewList
GLuint list
GLenum mode
GLuint glNewObjectBufferATI
GLsizei size
const void *pointer
GLenum usage
void glNormal3b
GLbyte nx
GLbyte ny
GLbyte nz
void glNormal3bv
const GLbyte *v
void glNormal3d
GLdouble nx
GLdouble ny
GLdouble nz
void glNormal3dv
const GLdouble *v
void glNormal3f
GLfloat nx
GLfloat ny
GLfloat nz
void glNormal3fVertex3fSUN
GLfloat nx
GLfloat ny
GLfloat nz
GLfloat x
GLfloat y
GLfloat z
void glNormal3fVertex3fvSUN
const GLfloat *n
const GLfloat *v
void glNormal3fv
const GLfloat *v
void glNormal3hNV
GLhalfNV nx
GLhalfNV ny
GLhalfNV nz
void glNormal3hvNV
const GLhalfNV *v
void glNormal3i
GLint nx
GLint ny
GLint nz
void glNormal3iv
const GLint *v
void glNormal3s
GLshort nx
GLshort ny
GLshort nz
void glNormal3sv
const GLshort *v
void glNormal3x
GLfixed nx
GLfixed ny
GLfixed nz
void glNormal3xOES
GLfixed nx
GLfixed ny
GLfixed nz
void glNormal3xvOES
const GLfixed *coords
void glNormalFormatNV
GLenum type
GLsizei stride
void glNormalP3ui
GLenum type
GLuint coords
void glNormalP3uiv
GLenum type
const GLuint *coords
void glNormalPointer
GLenum type
GLsizei stride
const void *pointer
void glNormalPointerEXT
GLenum type
GLsizei stride
GLsizei count
const void *pointer
void glNormalPointerListIBM
GLenum type
GLint stride
const void **pointer
GLint ptrstride
void glNormalPointervINTEL
GLenum type
const void **pointer
void glNormalStream3bATI
GLenum stream
GLbyte nx
GLbyte ny
GLbyte nz
void glNormalStream3bvATI
GLenum stream
const GLbyte *coords
void glNormalStream3dATI
GLenum stream
GLdouble nx
GLdouble ny
GLdouble nz
void glNormalStream3dvATI
GLenum stream
const GLdouble *coords
void glNormalStream3fATI
GLenum stream
GLfloat nx
GLfloat ny
GLfloat nz
void glNormalStream3fvATI
GLenum stream
const GLfloat *coords
void glNormalStream3iATI
GLenum stream
GLint nx
GLint ny
GLint nz
void glNormalStream3ivATI
GLenum stream
const GLint *coords
void glNormalStream3sATI
GLenum stream
GLshort nx
GLshort ny
GLshort nz
void glNormalStream3svATI
GLenum stream
const GLshort *coords
void glObjectLabel
GLenum identifier
GLuint name
GLsizei length
const GLchar *label
void glObjectLabelKHR
GLenum identifier
GLuint name
GLsizei length
const GLchar *label
void glObjectPtrLabel
const void *ptr
GLsizei length
const GLchar *label
void glObjectPtrLabelKHR
const void *ptr
GLsizei length
const GLchar *label
GLenum glObjectPurgeableAPPLE
GLenum objectType
GLuint name
GLenum option
GLenum glObjectUnpurgeableAPPLE
GLenum objectType
GLuint name
GLenum option
void glOrtho
GLdouble left
GLdouble right
GLdouble bottom
GLdouble top
GLdouble zNear
GLdouble zFar
void glOrthof
GLfloat l
GLfloat r
GLfloat b
GLfloat t
GLfloat n
GLfloat f
void glOrthofOES
GLfloat l
GLfloat r
GLfloat b
GLfloat t
GLfloat n
GLfloat f
void glOrthox
GLfixed l
GLfixed r
GLfixed b
GLfixed t
GLfixed n
GLfixed f
void glOrthoxOES
GLfixed l
GLfixed r
GLfixed b
GLfixed t
GLfixed n
GLfixed f
void glPNTrianglesfATI
GLenum pname
GLfloat param
void glPNTrianglesiATI
GLenum pname
GLint param
void glPassTexCoordATI
GLuint dst
GLuint coord
GLenum swizzle
void glPassThrough
GLfloat token
void glPassThroughxOES
GLfixed token
void glPatchParameterfv
GLenum pname
const GLfloat *values
void glPatchParameteri
GLenum pname
GLint value
void glPatchParameteriEXT
GLenum pname
GLint value
void glPatchParameteriOES
GLenum pname
GLint value
void glPathColorGenNV
GLenum color
GLenum genMode
GLenum colorFormat
const GLfloat *coeffs
void glPathCommandsNV
GLuint path
GLsizei numCommands
const GLubyte *commands
GLsizei numCoords
GLenum coordType
const void *coords
void glPathCoordsNV
GLuint path
GLsizei numCoords
GLenum coordType
const void *coords
void glPathCoverDepthFuncNV
GLenum func
void glPathDashArrayNV
GLuint path
GLsizei dashCount
const GLfloat *dashArray
void glPathFogGenNV
GLenum genMode
GLenum glPathGlyphIndexArrayNV
GLuint firstPathName
GLenum fontTarget
const void *fontName
GLbitfield fontStyle
GLuint firstGlyphIndex
GLsizei numGlyphs
GLuint pathParameterTemplate
GLfloat emScale
GLenum glPathGlyphIndexRangeNV
GLenum fontTarget
const void *fontName
GLbitfield fontStyle
GLuint pathParameterTemplate
GLfloat emScale
GLuint baseAndCount[2]
void glPathGlyphRangeNV
GLuint firstPathName
GLenum fontTarget
const void *fontName
GLbitfield fontStyle
GLuint firstGlyph
GLsizei numGlyphs
GLenum handleMissingGlyphs
GLuint pathParameterTemplate
GLfloat emScale
void glPathGlyphsNV
GLuint firstPathName
GLenum fontTarget
const void *fontName
GLbitfield fontStyle
GLsizei numGlyphs
GLenum type
const void *charcodes
GLenum handleMissingGlyphs
GLuint pathParameterTemplate
GLfloat emScale
GLenum glPathMemoryGlyphIndexArrayNV
GLuint firstPathName
GLenum fontTarget
GLsizeiptr fontSize
const void *fontData
GLsizei faceIndex
GLuint firstGlyphIndex
GLsizei numGlyphs
GLuint pathParameterTemplate
GLfloat emScale
void glPathParameterfNV
GLuint path
GLenum pname
GLfloat value
void glPathParameterfvNV
GLuint path
GLenum pname
const GLfloat *value
void glPathParameteriNV
GLuint path
GLenum pname
GLint value
void glPathParameterivNV
GLuint path
GLenum pname
const GLint *value
void glPathStencilDepthOffsetNV
GLfloat factor
GLfloat units
void glPathStencilFuncNV
GLenum func
GLint ref
GLuint mask
void glPathStringNV
GLuint path
GLenum format
GLsizei length
const void *pathString
void glPathSubCommandsNV
GLuint path
GLsizei commandStart
GLsizei commandsToDelete
GLsizei numCommands
const GLubyte *commands
GLsizei numCoords
GLenum coordType
const void *coords
void glPathSubCoordsNV
GLuint path
GLsizei coordStart
GLsizei numCoords
GLenum coordType
const void *coords
void glPathTexGenNV
GLenum texCoordSet
GLenum genMode
GLint components
const GLfloat *coeffs
void glPauseTransformFeedback
void glPauseTransformFeedbackNV
void glPixelDataRangeNV
GLenum target
GLsizei length
const void *pointer
void glPixelMapfv
GLenum map
GLsizei mapsize
const GLfloat *values
void glPixelMapuiv
GLenum map
GLsizei mapsize
const GLuint *values
void glPixelMapusv
GLenum map
GLsizei mapsize
const GLushort *values
void glPixelMapx
GLenum map
GLint size
const GLfixed *values
void glPixelStoref
GLenum pname
GLfloat param
void glPixelStorei
GLenum pname
GLint param
void glPixelStorex
GLenum pname
GLfixed param
void glPixelTexGenParameterfSGIS
GLenum pname
GLfloat param
void glPixelTexGenParameterfvSGIS
GLenum pname
const GLfloat *params
void glPixelTexGenParameteriSGIS
GLenum pname
GLint param
void glPixelTexGenParameterivSGIS
GLenum pname
const GLint *params
void glPixelTexGenSGIX
GLenum mode
void glPixelTransferf
GLenum pname
GLfloat param
void glPixelTransferi
GLenum pname
GLint param
void glPixelTransferxOES
GLenum pname
GLfixed param
void glPixelTransformParameterfEXT
GLenum target
GLenum pname
GLfloat param
void glPixelTransformParameterfvEXT
GLenum target
GLenum pname
const GLfloat *params
void glPixelTransformParameteriEXT
GLenum target
GLenum pname
GLint param
void glPixelTransformParameterivEXT
GLenum target
GLenum pname
const GLint *params
void glPixelZoom
GLfloat xfactor
GLfloat yfactor
void glPixelZoomxOES
GLfixed xfactor
GLfixed yfactor
GLboolean glPointAlongPathNV
GLuint path
GLsizei startSegment
GLsizei numSegments
GLfloat distance
GLfloat *x
GLfloat *y
GLfloat *tangentX
GLfloat *tangentY
void glPointParameterf
GLenum pname
GLfloat param
void glPointParameterfARB
GLenum pname
GLfloat param
void glPointParameterfEXT
GLenum pname
GLfloat param
void glPointParameterfSGIS
GLenum pname
GLfloat param
void glPointParameterfv
GLenum pname
const GLfloat *params
void glPointParameterfvARB
GLenum pname
const GLfloat *params
void glPointParameterfvEXT
GLenum pname
const GLfloat *params
void glPointParameterfvSGIS
GLenum pname
const GLfloat *params
void glPointParameteri
GLenum pname
GLint param
void glPointParameteriNV
GLenum pname
GLint param
void glPointParameteriv
GLenum pname
const GLint *params
void glPointParameterivNV
GLenum pname
const GLint *params
void glPointParameterx
GLenum pname
GLfixed param
void glPointParameterxOES
GLenum pname
GLfixed param
void glPointParameterxv
GLenum pname
const GLfixed *params
void glPointParameterxvOES
GLenum pname
const GLfixed *params
void glPointSize
GLfloat size
void glPointSizePointerOES
GLenum type
GLsizei stride
const void *pointer
void glPointSizex
GLfixed size
void glPointSizexOES
GLfixed size
GLint glPollAsyncSGIX
GLuint *markerp
GLint glPollInstrumentsSGIX
GLint *marker_p
void glPolygonMode
GLenum face
GLenum mode
void glPolygonModeNV
GLenum face
GLenum mode
void glPolygonOffset
GLfloat factor
GLfloat units
void glPolygonOffsetClamp
GLfloat factor
GLfloat units
GLfloat clamp
void glPolygonOffsetClampEXT
GLfloat factor
GLfloat units
GLfloat clamp
void glPolygonOffsetEXT
GLfloat factor
GLfloat bias
void glPolygonOffsetx
GLfixed factor
GLfixed units
void glPolygonOffsetxOES
GLfixed factor
GLfixed units
void glPolygonStipple
const GLubyte *mask
void glPopAttrib
void glPopClientAttrib
void glPopDebugGroup
void glPopDebugGroupKHR
void glPopGroupMarkerEXT
void glPopMatrix
void glPopName
void glPresentFrameDualFillNV
GLuint video_slot
GLuint64EXT minPresentTime
GLuint beginPresentTimeId
GLuint presentDurationId
GLenum type
GLenum target0
GLuint fill0
GLenum target1
GLuint fill1
GLenum target2
GLuint fill2
GLenum target3
GLuint fill3
void glPresentFrameKeyedNV
GLuint video_slot
GLuint64EXT minPresentTime
GLuint beginPresentTimeId
GLuint presentDurationId
GLenum type
GLenum target0
GLuint fill0
GLuint key0
GLenum target1
GLuint fill1
GLuint key1
void glPrimitiveBoundingBox
GLfloat minX
GLfloat minY
GLfloat minZ
GLfloat minW
GLfloat maxX
GLfloat maxY
GLfloat maxZ
GLfloat maxW
void glPrimitiveBoundingBoxARB
GLfloat minX
GLfloat minY
GLfloat minZ
GLfloat minW
GLfloat maxX
GLfloat maxY
GLfloat maxZ
GLfloat maxW
void glPrimitiveBoundingBoxEXT
GLfloat minX
GLfloat minY
GLfloat minZ
GLfloat minW
GLfloat maxX
GLfloat maxY
GLfloat maxZ
GLfloat maxW
void glPrimitiveBoundingBoxOES
GLfloat minX
GLfloat minY
GLfloat minZ
GLfloat minW
GLfloat maxX
GLfloat maxY
GLfloat maxZ
GLfloat maxW
void glPrimitiveRestartIndex
GLuint index
void glPrimitiveRestartIndexNV
GLuint index
void glPrimitiveRestartNV
void glPrioritizeTextures
GLsizei n
const GLuint *textures
const GLfloat *priorities
void glPrioritizeTexturesEXT
GLsizei n
const GLuint *textures
const GLclampf *priorities
void glPrioritizeTexturesxOES
GLsizei n
const GLuint *textures
const GLfixed *priorities
void glProgramBinary
GLuint program
GLenum binaryFormat
const void *binary
GLsizei length
void glProgramBinaryOES
GLuint program
GLenum binaryFormat
const void *binary
GLint length
void glProgramBufferParametersIivNV
GLenum target
GLuint bindingIndex
GLuint wordIndex
GLsizei count
const GLint *params
void glProgramBufferParametersIuivNV
GLenum target
GLuint bindingIndex
GLuint wordIndex
GLsizei count
const GLuint *params
void glProgramBufferParametersfvNV
GLenum target
GLuint bindingIndex
GLuint wordIndex
GLsizei count
const GLfloat *params
void glProgramEnvParameter4dARB
GLenum target
GLuint index
GLdouble x
GLdouble y
GLdouble z
GLdouble w
void glProgramEnvParameter4dvARB
GLenum target
GLuint index
const GLdouble *params
void glProgramEnvParameter4fARB
GLenum target
GLuint index
GLfloat x
GLfloat y
GLfloat z
GLfloat w
void glProgramEnvParameter4fvARB
GLenum target
GLuint index
const GLfloat *params
void glProgramEnvParameterI4iNV
GLenum target
GLuint index
GLint x
GLint y
GLint z
GLint w
void glProgramEnvParameterI4ivNV
GLenum target
GLuint index
const GLint *params
void glProgramEnvParameterI4uiNV
GLenum target
GLuint index
GLuint x
GLuint y
GLuint z
GLuint w
void glProgramEnvParameterI4uivNV
GLenum target
GLuint index
const GLuint *params
void glProgramEnvParameters4fvEXT
GLenum target
GLuint index
GLsizei count
const GLfloat *params
void glProgramEnvParametersI4ivNV
GLenum target
GLuint index
GLsizei count
const GLint *params
void glProgramEnvParametersI4uivNV
GLenum target
GLuint index
GLsizei count
const GLuint *params
void glProgramLocalParameter4dARB
GLenum target
GLuint index
GLdouble x
GLdouble y
GLdouble z
GLdouble w
void glProgramLocalParameter4dvARB
GLenum target
GLuint index
const GLdouble *params
void glProgramLocalParameter4fARB
GLenum target
GLuint index
GLfloat x
GLfloat y
GLfloat z
GLfloat w
void glProgramLocalParameter4fvARB
GLenum target
GLuint index
const GLfloat *params
void glProgramLocalParameterI4iNV
GLenum target
GLuint index
GLint x
GLint y
GLint z
GLint w
void glProgramLocalParameterI4ivNV
GLenum target
GLuint index
const GLint *params
void glProgramLocalParameterI4uiNV
GLenum target
GLuint index
GLuint x
GLuint y
GLuint z
GLuint w
void glProgramLocalParameterI4uivNV
GLenum target
GLuint index
const GLuint *params
void glProgramLocalParameters4fvEXT
GLenum target
GLuint index
GLsizei count
const GLfloat *params
void glProgramLocalParametersI4ivNV
GLenum target
GLuint index
GLsizei count
const GLint *params
void glProgramLocalParametersI4uivNV
GLenum target
GLuint index
GLsizei count
const GLuint *params
void glProgramNamedParameter4dNV
GLuint id
GLsizei len
const GLubyte *name
GLdouble x
GLdouble y
GLdouble z
GLdouble w
void glProgramNamedParameter4dvNV
GLuint id
GLsizei len
const GLubyte *name
const GLdouble *v
void glProgramNamedParameter4fNV
GLuint id
GLsizei len
const GLubyte *name
GLfloat x
GLfloat y
GLfloat z
GLfloat w
void glProgramNamedParameter4fvNV
GLuint id
GLsizei len
const GLubyte *name
const GLfloat *v
void glProgramParameter4dNV
GLenum target
GLuint index
GLdouble x
GLdouble y
GLdouble z
GLdouble w
void glProgramParameter4dvNV
GLenum target
GLuint index
const GLdouble *v
void glProgramParameter4fNV
GLenum target
GLuint index
GLfloat x
GLfloat y
GLfloat z
GLfloat w
void glProgramParameter4fvNV
GLenum target
GLuint index
const GLfloat *v
void glProgramParameteri
GLuint program
GLenum pname
GLint value
void glProgramParameteriARB
GLuint program
GLenum pname
GLint value
void glProgramParameteriEXT
GLuint program
GLenum pname
GLint value
void glProgramParameters4dvNV
GLenum target
GLuint index
GLsizei count
const GLdouble *v
void glProgramParameters4fvNV
GLenum target
GLuint index
GLsizei count
const GLfloat *v
void glProgramPathFragmentInputGenNV
GLuint program
GLint location
GLenum genMode
GLint components
const GLfloat *coeffs
void glProgramStringARB
GLenum target
GLenum format
GLsizei len
const void *string
void glProgramSubroutineParametersuivNV
GLenum target
GLsizei count
const GLuint *params
void glProgramUniform1d
GLuint program
GLint location
GLdouble v0
void glProgramUniform1dEXT
GLuint program
GLint location
GLdouble x
void glProgramUniform1dv
GLuint program
GLint location
GLsizei count
const GLdouble *value
void glProgramUniform1dvEXT
GLuint program
GLint location
GLsizei count
const GLdouble *value
void glProgramUniform1f
GLuint program
GLint location
GLfloat v0
void glProgramUniform1fEXT
GLuint program
GLint location
GLfloat v0
void glProgramUniform1fv
GLuint program
GLint location
GLsizei count
const GLfloat *value
void glProgramUniform1fvEXT
GLuint program
GLint location
GLsizei count
const GLfloat *value
void glProgramUniform1i
GLuint program
GLint location
GLint v0
void glProgramUniform1i64ARB
GLuint program
GLint location
GLint64 x
void glProgramUniform1i64NV
GLuint program
GLint location
GLint64EXT x
void glProgramUniform1i64vARB
GLuint program
GLint location
GLsizei count
const GLint64 *value
void glProgramUniform1i64vNV
GLuint program
GLint location
GLsizei count
const GLint64EXT *value
void glProgramUniform1iEXT
GLuint program
GLint location
GLint v0
void glProgramUniform1iv
GLuint program
GLint location
GLsizei count
const GLint *value
void glProgramUniform1ivEXT
GLuint program
GLint location
GLsizei count
const GLint *value
void glProgramUniform1ui
GLuint program
GLint location
GLuint v0
void glProgramUniform1ui64ARB
GLuint program
GLint location
GLuint64 x
void glProgramUniform1ui64NV
GLuint program
GLint location
GLuint64EXT x
void glProgramUniform1ui64vARB
GLuint program
GLint location
GLsizei count
const GLuint64 *value
void glProgramUniform1ui64vNV
GLuint program
GLint location
GLsizei count
const GLuint64EXT *value
void glProgramUniform1uiEXT
GLuint program
GLint location
GLuint v0
void glProgramUniform1uiv
GLuint program
GLint location
GLsizei count
const GLuint *value
void glProgramUniform1uivEXT
GLuint program
GLint location
GLsizei count
const GLuint *value
void glProgramUniform2d
GLuint program
GLint location
GLdouble v0
GLdouble v1
void glProgramUniform2dEXT
GLuint program
GLint location
GLdouble x
GLdouble y
void glProgramUniform2dv
GLuint program
GLint location
GLsizei count
const GLdouble *value
void glProgramUniform2dvEXT
GLuint program
GLint location
GLsizei count
const GLdouble *value
void glProgramUniform2f
GLuint program
GLint location
GLfloat v0
GLfloat v1
void glProgramUniform2fEXT
GLuint program
GLint location
GLfloat v0
GLfloat v1
void glProgramUniform2fv
GLuint program
GLint location
GLsizei count
const GLfloat *value
void glProgramUniform2fvEXT
GLuint program
GLint location
GLsizei count
const GLfloat *value
void glProgramUniform2i
GLuint program
GLint location
GLint v0
GLint v1
void glProgramUniform2i64ARB
GLuint program
GLint location
GLint64 x
GLint64 y
void glProgramUniform2i64NV
GLuint program
GLint location
GLint64EXT x
GLint64EXT y
void glProgramUniform2i64vARB
GLuint program
GLint location
GLsizei count
const GLint64 *value
void glProgramUniform2i64vNV
GLuint program
GLint location
GLsizei count
const GLint64EXT *value
void glProgramUniform2iEXT
GLuint program
GLint location
GLint v0
GLint v1
void glProgramUniform2iv
GLuint program
GLint location
GLsizei count
const GLint *value
void glProgramUniform2ivEXT
GLuint program
GLint location
GLsizei count
const GLint *value
void glProgramUniform2ui
GLuint program
GLint location
GLuint v0
GLuint v1
void glProgramUniform2ui64ARB
GLuint program
GLint location
GLuint64 x
GLuint64 y
void glProgramUniform2ui64NV
GLuint program
GLint location
GLuint64EXT x
GLuint64EXT y
void glProgramUniform2ui64vARB
GLuint program
GLint location
GLsizei count
const GLuint64 *value
void glProgramUniform2ui64vNV
GLuint program
GLint location
GLsizei count
const GLuint64EXT *value
void glProgramUniform2uiEXT
GLuint program
GLint location
GLuint v0
GLuint v1
void glProgramUniform2uiv
GLuint program
GLint location
GLsizei count
const GLuint *value
void glProgramUniform2uivEXT
GLuint program
GLint location
GLsizei count
const GLuint *value
void glProgramUniform3d
GLuint program
GLint location
GLdouble v0
GLdouble v1
GLdouble v2
void glProgramUniform3dEXT
GLuint program
GLint location
GLdouble x
GLdouble y
GLdouble z
void glProgramUniform3dv
GLuint program
GLint location
GLsizei count
const GLdouble *value
void glProgramUniform3dvEXT
GLuint program
GLint location
GLsizei count
const GLdouble *value
void glProgramUniform3f
GLuint program
GLint location
GLfloat v0
GLfloat v1
GLfloat v2
void glProgramUniform3fEXT
GLuint program
GLint location
GLfloat v0
GLfloat v1
GLfloat v2
void glProgramUniform3fv
GLuint program
GLint location
GLsizei count
const GLfloat *value
void glProgramUniform3fvEXT
GLuint program
GLint location
GLsizei count
const GLfloat *value
void glProgramUniform3i
GLuint program
GLint location
GLint v0
GLint v1
GLint v2
void glProgramUniform3i64ARB
GLuint program
GLint location
GLint64 x
GLint64 y
GLint64 z
void glProgramUniform3i64NV
GLuint program
GLint location
GLint64EXT x
GLint64EXT y
GLint64EXT z
void glProgramUniform3i64vARB
GLuint program
GLint location
GLsizei count
const GLint64 *value
void glProgramUniform3i64vNV
GLuint program
GLint location
GLsizei count
const GLint64EXT *value
void glProgramUniform3iEXT
GLuint program
GLint location
GLint v0
GLint v1
GLint v2
void glProgramUniform3iv
GLuint program
GLint location
GLsizei count
const GLint *value
void glProgramUniform3ivEXT
GLuint program
GLint location
GLsizei count
const GLint *value
void glProgramUniform3ui
GLuint program
GLint location
GLuint v0
GLuint v1
GLuint v2
void glProgramUniform3ui64ARB
GLuint program
GLint location
GLuint64 x
GLuint64 y
GLuint64 z
void glProgramUniform3ui64NV
GLuint program
GLint location
GLuint64EXT x
GLuint64EXT y
GLuint64EXT z
void glProgramUniform3ui64vARB
GLuint program
GLint location
GLsizei count
const GLuint64 *value
void glProgramUniform3ui64vNV
GLuint program
GLint location
GLsizei count
const GLuint64EXT *value
void glProgramUniform3uiEXT
GLuint program
GLint location
GLuint v0
GLuint v1
GLuint v2
void glProgramUniform3uiv
GLuint program
GLint location
GLsizei count
const GLuint *value
void glProgramUniform3uivEXT
GLuint program
GLint location
GLsizei count
const GLuint *value
void glProgramUniform4d
GLuint program
GLint location
GLdouble v0
GLdouble v1
GLdouble v2
GLdouble v3
void glProgramUniform4dEXT
GLuint program
GLint location
GLdouble x
GLdouble y
GLdouble z
GLdouble w
void glProgramUniform4dv
GLuint program
GLint location
GLsizei count
const GLdouble *value
void glProgramUniform4dvEXT
GLuint program
GLint location
GLsizei count
const GLdouble *value
void glProgramUniform4f
GLuint program
GLint location
GLfloat v0
GLfloat v1
GLfloat v2
GLfloat v3
void glProgramUniform4fEXT
GLuint program
GLint location
GLfloat v0
GLfloat v1
GLfloat v2
GLfloat v3
void glProgramUniform4fv
GLuint program
GLint location
GLsizei count
const GLfloat *value
void glProgramUniform4fvEXT
GLuint program
GLint location
GLsizei count
const GLfloat *value
void glProgramUniform4i
GLuint program
GLint location
GLint v0
GLint v1
GLint v2
GLint v3
void glProgramUniform4i64ARB
GLuint program
GLint location
GLint64 x
GLint64 y
GLint64 z
GLint64 w
void glProgramUniform4i64NV
GLuint program
GLint location
GLint64EXT x
GLint64EXT y
GLint64EXT z
GLint64EXT w
void glProgramUniform4i64vARB
GLuint program
GLint location
GLsizei count
const GLint64 *value
void glProgramUniform4i64vNV
GLuint program
GLint location
GLsizei count
const GLint64EXT *value
void glProgramUniform4iEXT
GLuint program
GLint location
GLint v0
GLint v1
GLint v2
GLint v3
void glProgramUniform4iv
GLuint program
GLint location
GLsizei count
const GLint *value
void glProgramUniform4ivEXT
GLuint program
GLint location
GLsizei count
const GLint *value
void glProgramUniform4ui
GLuint program
GLint location
GLuint v0
GLuint v1
GLuint v2
GLuint v3
void glProgramUniform4ui64ARB
GLuint program
GLint location
GLuint64 x
GLuint64 y
GLuint64 z
GLuint64 w
void glProgramUniform4ui64NV
GLuint program
GLint location
GLuint64EXT x
GLuint64EXT y
GLuint64EXT z
GLuint64EXT w
void glProgramUniform4ui64vARB
GLuint program
GLint location
GLsizei count
const GLuint64 *value
void glProgramUniform4ui64vNV
GLuint program
GLint location
GLsizei count
const GLuint64EXT *value
void glProgramUniform4uiEXT
GLuint program
GLint location
GLuint v0
GLuint v1
GLuint v2
GLuint v3
void glProgramUniform4uiv
GLuint program
GLint location
GLsizei count
const GLuint *value
void glProgramUniform4uivEXT
GLuint program
GLint location
GLsizei count
const GLuint *value
void glProgramUniformHandleui64ARB
GLuint program
GLint location
GLuint64 value
void glProgramUniformHandleui64IMG
GLuint program
GLint location
GLuint64 value
void glProgramUniformHandleui64NV
GLuint program
GLint location
GLuint64 value
void glProgramUniformHandleui64vARB
GLuint program
GLint location
GLsizei count
const GLuint64 *values
void glProgramUniformHandleui64vIMG
GLuint program
GLint location
GLsizei count
const GLuint64 *values
void glProgramUniformHandleui64vNV
GLuint program
GLint location
GLsizei count
const GLuint64 *values
void glProgramUniformMatrix2dv
GLuint program
GLint location
GLsizei count
GLboolean transpose
const GLdouble *value
void glProgramUniformMatrix2dvEXT
GLuint program
GLint location
GLsizei count
GLboolean transpose
const GLdouble *value
void glProgramUniformMatrix2fv
GLuint program
GLint location
GLsizei count
GLboolean transpose
const GLfloat *value
void glProgramUniformMatrix2fvEXT
GLuint program
GLint location
GLsizei count
GLboolean transpose
const GLfloat *value
void glProgramUniformMatrix2x3dv
GLuint program
GLint location
GLsizei count
GLboolean transpose
const GLdouble *value
void glProgramUniformMatrix2x3dvEXT
GLuint program
GLint location
GLsizei count
GLboolean transpose
const GLdouble *value
void glProgramUniformMatrix2x3fv
GLuint program
GLint location
GLsizei count
GLboolean transpose
const GLfloat *value
void glProgramUniformMatrix2x3fvEXT
GLuint program
GLint location
GLsizei count
GLboolean transpose
const GLfloat *value
void glProgramUniformMatrix2x4dv
GLuint program
GLint location
GLsizei count
GLboolean transpose
const GLdouble *value
void glProgramUniformMatrix2x4dvEXT
GLuint program
GLint location
GLsizei count
GLboolean transpose
const GLdouble *value
void glProgramUniformMatrix2x4fv
GLuint program
GLint location
GLsizei count
GLboolean transpose
const GLfloat *value
void glProgramUniformMatrix2x4fvEXT
GLuint program
GLint location
GLsizei count
GLboolean transpose
const GLfloat *value
void glProgramUniformMatrix3dv
GLuint program
GLint location
GLsizei count
GLboolean transpose
const GLdouble *value
void glProgramUniformMatrix3dvEXT
GLuint program
GLint location
GLsizei count
GLboolean transpose
const GLdouble *value
void glProgramUniformMatrix3fv
GLuint program
GLint location
GLsizei count
GLboolean transpose
const GLfloat *value
void glProgramUniformMatrix3fvEXT
GLuint program
GLint location
GLsizei count
GLboolean transpose
const GLfloat *value
void glProgramUniformMatrix3x2dv
GLuint program
GLint location
GLsizei count
GLboolean transpose
const GLdouble *value
void glProgramUniformMatrix3x2dvEXT
GLuint program
GLint location
GLsizei count
GLboolean transpose
const GLdouble *value
void glProgramUniformMatrix3x2fv
GLuint program
GLint location
GLsizei count
GLboolean transpose
const GLfloat *value
void glProgramUniformMatrix3x2fvEXT
GLuint program
GLint location
GLsizei count
GLboolean transpose
const GLfloat *value
void glProgramUniformMatrix3x4dv
GLuint program
GLint location
GLsizei count
GLboolean transpose
const GLdouble *value
void glProgramUniformMatrix3x4dvEXT
GLuint program
GLint location
GLsizei count
GLboolean transpose
const GLdouble *value
void glProgramUniformMatrix3x4fv
GLuint program
GLint location
GLsizei count
GLboolean transpose
const GLfloat *value
void glProgramUniformMatrix3x4fvEXT
GLuint program
GLint location
GLsizei count
GLboolean transpose
const GLfloat *value
void glProgramUniformMatrix4dv
GLuint program
GLint location
GLsizei count
GLboolean transpose
const GLdouble *value
void glProgramUniformMatrix4dvEXT
GLuint program
GLint location
GLsizei count
GLboolean transpose
const GLdouble *value
void glProgramUniformMatrix4fv
GLuint program
GLint location
GLsizei count
GLboolean transpose
const GLfloat *value
void glProgramUniformMatrix4fvEXT
GLuint program
GLint location
GLsizei count
GLboolean transpose
const GLfloat *value
void glProgramUniformMatrix4x2dv
GLuint program
GLint location
GLsizei count
GLboolean transpose
const GLdouble *value
void glProgramUniformMatrix4x2dvEXT
GLuint program
GLint location
GLsizei count
GLboolean transpose
const GLdouble *value
void glProgramUniformMatrix4x2fv
GLuint program
GLint location
GLsizei count
GLboolean transpose
const GLfloat *value
void glProgramUniformMatrix4x2fvEXT
GLuint program
GLint location
GLsizei count
GLboolean transpose
const GLfloat *value
void glProgramUniformMatrix4x3dv
GLuint program
GLint location
GLsizei count
GLboolean transpose
const GLdouble *value
void glProgramUniformMatrix4x3dvEXT
GLuint program
GLint location
GLsizei count
GLboolean transpose
const GLdouble *value
void glProgramUniformMatrix4x3fv
GLuint program
GLint location
GLsizei count
GLboolean transpose
const GLfloat *value
void glProgramUniformMatrix4x3fvEXT
GLuint program
GLint location
GLsizei count
GLboolean transpose
const GLfloat *value
void glProgramUniformui64NV
GLuint program
GLint location
GLuint64EXT value
void glProgramUniformui64vNV
GLuint program
GLint location
GLsizei count
const GLuint64EXT *value
void glProgramVertexLimitNV
GLenum target
GLint limit
void glProvokingVertex
GLenum mode
void glProvokingVertexEXT
GLenum mode
void glPushAttrib
GLbitfield mask
void glPushClientAttrib
GLbitfield mask
void glPushClientAttribDefaultEXT
GLbitfield mask
void glPushDebugGroup
GLenum source
GLuint id
GLsizei length
const GLchar *message
void glPushDebugGroupKHR
GLenum source
GLuint id
GLsizei length
const GLchar *message
void glPushGroupMarkerEXT
GLsizei length
const GLchar *marker
void glPushMatrix
void glPushName
GLuint name
void glQueryCounter
GLuint id
GLenum target
void glQueryCounterEXT
GLuint id
GLenum target
GLbitfield glQueryMatrixxOES
GLfixed *mantissa
GLint *exponent
void glQueryObjectParameteruiAMD
GLenum target
GLuint id
GLenum pname
GLuint param
GLint glQueryResourceNV
GLenum queryType
GLint tagId
GLuint bufSize
GLint *buffer
void glQueryResourceTagNV
GLint tagId
const GLchar *tagString
void glRasterPos2d
GLdouble x
GLdouble y
void glRasterPos2dv
const GLdouble *v
void glRasterPos2f
GLfloat x
GLfloat y
void glRasterPos2fv
const GLfloat *v
void glRasterPos2i
GLint x
GLint y
void glRasterPos2iv
const GLint *v
void glRasterPos2s
GLshort x
GLshort y
void glRasterPos2sv
const GLshort *v
void glRasterPos2xOES
GLfixed x
GLfixed y
void glRasterPos2xvOES
const GLfixed *coords
void glRasterPos3d
GLdouble x
GLdouble y
GLdouble z
void glRasterPos3dv
const GLdouble *v
void glRasterPos3f
GLfloat x
GLfloat y
GLfloat z
void glRasterPos3fv
const GLfloat *v
void glRasterPos3i
GLint x
GLint y
GLint z
void glRasterPos3iv
const GLint *v
void glRasterPos3s
GLshort x
GLshort y
GLshort z
void glRasterPos3sv
const GLshort *v
void glRasterPos3xOES
GLfixed x
GLfixed y
GLfixed z
void glRasterPos3xvOES
const GLfixed *coords
void glRasterPos4d
GLdouble x
GLdouble y
GLdouble z
GLdouble w
void glRasterPos4dv
const GLdouble *v
void glRasterPos4f
GLfloat x
GLfloat y
GLfloat z
GLfloat w
void glRasterPos4fv
const GLfloat *v
void glRasterPos4i
GLint x
GLint y
GLint z
GLint w
void glRasterPos4iv
const GLint *v
void glRasterPos4s
GLshort x
GLshort y
GLshort z
GLshort w
void glRasterPos4sv
const GLshort *v
void glRasterPos4xOES
GLfixed x
GLfixed y
GLfixed z
GLfixed w
void glRasterPos4xvOES
const GLfixed *coords
void glRasterSamplesEXT
GLuint samples
GLboolean fixedsamplelocations
void glReadBuffer
GLenum src
void glReadBufferIndexedEXT
GLenum src
GLint index
void glReadBufferNV
GLenum mode
void glReadInstrumentsSGIX
GLint marker
void glReadPixels
GLint x
GLint y
GLsizei width
GLsizei height
GLenum format
GLenum type
void *pixels
void glReadnPixels
GLint x
GLint y
GLsizei width
GLsizei height
GLenum format
GLenum type
GLsizei bufSize
void *data
void glReadnPixelsARB
GLint x
GLint y
GLsizei width
GLsizei height
GLenum format
GLenum type
GLsizei bufSize
void *data
void glReadnPixelsEXT
GLint x
GLint y
GLsizei width
GLsizei height
GLenum format
GLenum type
GLsizei bufSize
void *data
void glReadnPixelsKHR
GLint x
GLint y
GLsizei width
GLsizei height
GLenum format
GLenum type
GLsizei bufSize
void *data
GLboolean glReleaseKeyedMutexWin32EXT
GLuint memory
GLuint64 key
void glRectd
GLdouble x1
GLdouble y1
GLdouble x2
GLdouble y2
void glRectdv
const GLdouble *v1
const GLdouble *v2
void glRectf
GLfloat x1
GLfloat y1
GLfloat x2
GLfloat y2
void glRectfv
const GLfloat *v1
const GLfloat *v2
void glRecti
GLint x1
GLint y1
GLint x2
GLint y2
void glRectiv
const GLint *v1
const GLint *v2
void glRects
GLshort x1
GLshort y1
GLshort x2
GLshort y2
void glRectsv
const GLshort *v1
const GLshort *v2
void glRectxOES
GLfixed x1
GLfixed y1
GLfixed x2
GLfixed y2
void glRectxvOES
const GLfixed *v1
const GLfixed *v2
void glReferencePlaneSGIX
const GLdouble *equation
void glReleaseShaderCompiler
void glRenderGpuMaskNV
GLbitfield mask
GLint glRenderMode
GLenum mode
void glRenderbufferStorage
GLenum target
GLenum internalformat
GLsizei width
GLsizei height
void glRenderbufferStorageEXT
GLenum target
GLenum internalformat
GLsizei width
GLsizei height
void glRenderbufferStorageMultisample
GLenum target
GLsizei samples
GLenum internalformat
GLsizei width
GLsizei height
void glRenderbufferStorageMultisampleANGLE
GLenum target
GLsizei samples
GLenum internalformat
GLsizei width
GLsizei height
void glRenderbufferStorageMultisampleAPPLE
GLenum target
GLsizei samples
GLenum internalformat
GLsizei width
GLsizei height
void glRenderbufferStorageMultisampleAdvancedAMD
GLenum target
GLsizei samples
GLsizei storageSamples
GLenum internalformat
GLsizei width
GLsizei height
void glRenderbufferStorageMultisampleCoverageNV
GLenum target
GLsizei coverageSamples
GLsizei colorSamples
GLenum internalformat
GLsizei width
GLsizei height
void glRenderbufferStorageMultisampleEXT
GLenum target
GLsizei samples
GLenum internalformat
GLsizei width
GLsizei height
void glRenderbufferStorageMultisampleIMG
GLenum target
GLsizei samples
GLenum internalformat
GLsizei width
GLsizei height
void glRenderbufferStorageMultisampleNV
GLenum target
GLsizei samples
GLenum internalformat
GLsizei width
GLsizei height
void glRenderbufferStorageOES
GLenum target
GLenum internalformat
GLsizei width
GLsizei height
void glReplacementCodePointerSUN
GLenum type
GLsizei stride
const void **pointer
void glReplacementCodeubSUN
GLubyte code
void glReplacementCodeubvSUN
const GLubyte *code
void glReplacementCodeuiColor3fVertex3fSUN
GLuint rc
GLfloat r
GLfloat g
GLfloat b
GLfloat x
GLfloat y
GLfloat z
void glReplacementCodeuiColor3fVertex3fvSUN
const GLuint *rc
const GLfloat *c
const GLfloat *v
void glReplacementCodeuiColor4fNormal3fVertex3fSUN
GLuint rc
GLfloat r
GLfloat g
GLfloat b
GLfloat a
GLfloat nx
GLfloat ny
GLfloat nz
GLfloat x
GLfloat y
GLfloat z
void glReplacementCodeuiColor4fNormal3fVertex3fvSUN
const GLuint *rc
const GLfloat *c
const GLfloat *n
const GLfloat *v
void glReplacementCodeuiColor4ubVertex3fSUN
GLuint rc
GLubyte r
GLubyte g
GLubyte b
GLubyte a
GLfloat x
GLfloat y
GLfloat z
void glReplacementCodeuiColor4ubVertex3fvSUN
const GLuint *rc
const GLubyte *c
const GLfloat *v
void glReplacementCodeuiNormal3fVertex3fSUN
GLuint rc
GLfloat nx
GLfloat ny
GLfloat nz
GLfloat x
GLfloat y
GLfloat z
void glReplacementCodeuiNormal3fVertex3fvSUN
const GLuint *rc
const GLfloat *n
const GLfloat *v
void glReplacementCodeuiSUN
GLuint code
void glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN
GLuint rc
GLfloat s
GLfloat t
GLfloat r
GLfloat g
GLfloat b
GLfloat a
GLfloat nx
GLfloat ny
GLfloat nz
GLfloat x
GLfloat y
GLfloat z
void glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN
const GLuint *rc
const GLfloat *tc
const GLfloat *c
const GLfloat *n
const GLfloat *v
void glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN
GLuint rc
GLfloat s
GLfloat t
GLfloat nx
GLfloat ny
GLfloat nz
GLfloat x
GLfloat y
GLfloat z
void glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN
const GLuint *rc
const GLfloat *tc
const GLfloat *n
const GLfloat *v
void glReplacementCodeuiTexCoord2fVertex3fSUN
GLuint rc
GLfloat s
GLfloat t
GLfloat x
GLfloat y
GLfloat z
void glReplacementCodeuiTexCoord2fVertex3fvSUN
const GLuint *rc
const GLfloat *tc
const GLfloat *v
void glReplacementCodeuiVertex3fSUN
GLuint rc
GLfloat x
GLfloat y
GLfloat z
void glReplacementCodeuiVertex3fvSUN
const GLuint *rc
const GLfloat *v
void glReplacementCodeuivSUN
const GLuint *code
void glReplacementCodeusSUN
GLushort code
void glReplacementCodeusvSUN
const GLushort *code
void glRequestResidentProgramsNV
GLsizei n
const GLuint *programs
void glResetHistogram
GLenum target
void glResetHistogramEXT
GLenum target
void glResetMemoryObjectParameterNV
GLuint memory
GLenum pname
void glResetMinmax
GLenum target
void glResetMinmaxEXT
GLenum target
void glResizeBuffersMESA
void glResolveDepthValuesNV
void glResolveMultisampleFramebufferAPPLE
void glResumeTransformFeedback
void glResumeTransformFeedbackNV
void glRotated
GLdouble angle
GLdouble x
GLdouble y
GLdouble z
void glRotatef
GLfloat angle
GLfloat x
GLfloat y
GLfloat z
void glRotatex
GLfixed angle
GLfixed x
GLfixed y
GLfixed z
void glRotatexOES
GLfixed angle
GLfixed x
GLfixed y
GLfixed z
void glSampleCoverage
GLfloat value
GLboolean invert
void glSampleCoverageARB
GLfloat value
GLboolean invert
void glSampleCoveragex
GLclampx value
GLboolean invert
void glSampleCoveragexOES
GLclampx value
GLboolean invert
void glSampleMapATI
GLuint dst
GLuint interp
GLenum swizzle
void glSampleMaskEXT
GLclampf value
GLboolean invert
void glSampleMaskIndexedNV
GLuint index
GLbitfield mask
void glSampleMaskSGIS
GLclampf value
GLboolean invert
void glSampleMaski
GLuint maskNumber
GLbitfield mask
void glSamplePatternEXT
GLenum pattern
void glSamplePatternSGIS
GLenum pattern
void glSamplerParameterIiv
GLuint sampler
GLenum pname
const GLint *param
void glSamplerParameterIivEXT
GLuint sampler
GLenum pname
const GLint *param
void glSamplerParameterIivOES
GLuint sampler
GLenum pname
const GLint *param
void glSamplerParameterIuiv
GLuint sampler
GLenum pname
const GLuint *param
void glSamplerParameterIuivEXT
GLuint sampler
GLenum pname
const GLuint *param
void glSamplerParameterIuivOES
GLuint sampler
GLenum pname
const GLuint *param
void glSamplerParameterf
GLuint sampler
GLenum pname
GLfloat param
void glSamplerParameterfv
GLuint sampler
GLenum pname
const GLfloat *param
void glSamplerParameteri
GLuint sampler
GLenum pname
GLint param
void glSamplerParameteriv
GLuint sampler
GLenum pname
const GLint *param
void glScaled
GLdouble x
GLdouble y
GLdouble z
void glScalef
GLfloat x
GLfloat y
GLfloat z
void glScalex
GLfixed x
GLfixed y
GLfixed z
void glScalexOES
GLfixed x
GLfixed y
GLfixed z
void glScissor
GLint x
GLint y
GLsizei width
GLsizei height
void glScissorArrayv
GLuint first
GLsizei count
const GLint *v
void glScissorArrayvNV
GLuint first
GLsizei count
const GLint *v
void glScissorArrayvOES
GLuint first
GLsizei count
const GLint *v
void glScissorExclusiveArrayvNV
GLuint first
GLsizei count
const GLint *v
void glScissorExclusiveNV
GLint x
GLint y
GLsizei width
GLsizei height
void glScissorIndexed
GLuint index
GLint left
GLint bottom
GLsizei width
GLsizei height
void glScissorIndexedNV
GLuint index
GLint left
GLint bottom
GLsizei width
GLsizei height
void glScissorIndexedOES
GLuint index
GLint left
GLint bottom
GLsizei width
GLsizei height
void glScissorIndexedv
GLuint index
const GLint *v
void glScissorIndexedvNV
GLuint index
const GLint *v
void glScissorIndexedvOES
GLuint index
const GLint *v
void glSecondaryColor3b
GLbyte red
GLbyte green
GLbyte blue
void glSecondaryColor3bEXT
GLbyte red
GLbyte green
GLbyte blue
void glSecondaryColor3bv
const GLbyte *v
void glSecondaryColor3bvEXT
const GLbyte *v
void glSecondaryColor3d
GLdouble red
GLdouble green
GLdouble blue
void glSecondaryColor3dEXT
GLdouble red
GLdouble green
GLdouble blue
void glSecondaryColor3dv
const GLdouble *v
void glSecondaryColor3dvEXT
const GLdouble *v
void glSecondaryColor3f
GLfloat red
GLfloat green
GLfloat blue
void glSecondaryColor3fEXT
GLfloat red
GLfloat green
GLfloat blue
void glSecondaryColor3fv
const GLfloat *v
void glSecondaryColor3fvEXT
const GLfloat *v
void glSecondaryColor3hNV
GLhalfNV red
GLhalfNV green
GLhalfNV blue
void glSecondaryColor3hvNV
const GLhalfNV *v
void glSecondaryColor3i
GLint red
GLint green
GLint blue
void glSecondaryColor3iEXT
GLint red
GLint green
GLint blue
void glSecondaryColor3iv
const GLint *v
void glSecondaryColor3ivEXT
const GLint *v
void glSecondaryColor3s
GLshort red
GLshort green
GLshort blue
void glSecondaryColor3sEXT
GLshort red
GLshort green
GLshort blue
void glSecondaryColor3sv
const GLshort *v
void glSecondaryColor3svEXT
const GLshort *v
void glSecondaryColor3ub
GLubyte red
GLubyte green
GLubyte blue
void glSecondaryColor3ubEXT
GLubyte red
GLubyte green
GLubyte blue
void glSecondaryColor3ubv
const GLubyte *v
void glSecondaryColor3ubvEXT
const GLubyte *v
void glSecondaryColor3ui
GLuint red
GLuint green
GLuint blue
void glSecondaryColor3uiEXT
GLuint red
GLuint green
GLuint blue
void glSecondaryColor3uiv
const GLuint *v
void glSecondaryColor3uivEXT
const GLuint *v
void glSecondaryColor3us
GLushort red
GLushort green
GLushort blue
void glSecondaryColor3usEXT
GLushort red
GLushort green
GLushort blue
void glSecondaryColor3usv
const GLushort *v
void glSecondaryColor3usvEXT
const GLushort *v
void glSecondaryColorFormatNV
GLint size
GLenum type
GLsizei stride
void glSecondaryColorP3ui
GLenum type
GLuint color
void glSecondaryColorP3uiv
GLenum type
const GLuint *color
void glSecondaryColorPointer
GLint size
GLenum type
GLsizei stride
const void *pointer
void glSecondaryColorPointerEXT
GLint size
GLenum type
GLsizei stride
const void *pointer
void glSecondaryColorPointerListIBM
GLint size
GLenum type
GLint stride
const void **pointer
GLint ptrstride
void glSelectBuffer
GLsizei size
GLuint *buffer
void glSelectPerfMonitorCountersAMD
GLuint monitor
GLboolean enable
GLuint group
GLint numCounters
GLuint *counterList
void glSemaphoreParameterui64vEXT
GLuint semaphore
GLenum pname
const GLuint64 *params
void glSeparableFilter2D
GLenum target
GLenum internalformat
GLsizei width
GLsizei height
GLenum format
GLenum type
const void *row
const void *column
void glSeparableFilter2DEXT
GLenum target
GLenum internalformat
GLsizei width
GLsizei height
GLenum format
GLenum type
const void *row
const void *column
void glSetFenceAPPLE
GLuint fence
void glSetFenceNV
GLuint fence
GLenum condition
void glSetFragmentShaderConstantATI
GLuint dst
const GLfloat *value
void glSetInvariantEXT
GLuint id
GLenum type
const void *addr
void glSetLocalConstantEXT
GLuint id
GLenum type
const void *addr
void glSetMultisamplefvAMD
GLenum pname
GLuint index
const GLfloat *val
void glShadeModel
GLenum mode
void glShaderBinary
GLsizei count
const GLuint *shaders
GLenum binaryformat
const void *binary
GLsizei length
void glShaderOp1EXT
GLenum op
GLuint res
GLuint arg1
void glShaderOp2EXT
GLenum op
GLuint res
GLuint arg1
GLuint arg2
void glShaderOp3EXT
GLenum op
GLuint res
GLuint arg1
GLuint arg2
GLuint arg3
void glShaderSource
GLuint shader
GLsizei count
const GLchar *const*string
const GLint *length
void glShaderSourceARB
GLhandleARB shaderObj
GLsizei count
const GLcharARB **string
const GLint *length
void glShaderStorageBlockBinding
GLuint program
GLuint storageBlockIndex
GLuint storageBlockBinding
void glShadingRateImageBarrierNV
GLboolean synchronize
void glShadingRateImagePaletteNV
GLuint viewport
GLuint first
GLsizei count
const GLenum *rates
void glShadingRateSampleOrderNV
GLenum order
void glShadingRateSampleOrderCustomNV
GLenum rate
GLuint samples
const GLint *locations
void glSharpenTexFuncSGIS
GLenum target
GLsizei n
const GLfloat *points
void glSignalSemaphoreEXT
GLuint semaphore
GLuint numBufferBarriers
const GLuint *buffers
GLuint numTextureBarriers
const GLuint *textures
const GLenum *dstLayouts
void glSignalSemaphoreui64NVX
GLuint signalGpu
GLsizei fenceObjectCount
const GLuint *semaphoreArray
const GLuint64 *fenceValueArray
void glSpecializeShader
GLuint shader
const GLchar *pEntryPoint
GLuint numSpecializationConstants
const GLuint *pConstantIndex
const GLuint *pConstantValue
void glSpecializeShaderARB
GLuint shader
const GLchar *pEntryPoint
GLuint numSpecializationConstants
const GLuint *pConstantIndex
const GLuint *pConstantValue
void glSpriteParameterfSGIX
GLenum pname
GLfloat param
void glSpriteParameterfvSGIX
GLenum pname
const GLfloat *params
void glSpriteParameteriSGIX
GLenum pname
GLint param
void glSpriteParameterivSGIX
GLenum pname
const GLint *params
void glStartInstrumentsSGIX
void glStartTilingQCOM
GLuint x
GLuint y
GLuint width
GLuint height
GLbitfield preserveMask
void glStateCaptureNV
GLuint state
GLenum mode
void glStencilClearTagEXT
GLsizei stencilTagBits
GLuint stencilClearTag
void glStencilFillPathInstancedNV
GLsizei numPaths
GLenum pathNameType
const void *paths
GLuint pathBase
GLenum fillMode
GLuint mask
GLenum transformType
const GLfloat *transformValues
void glStencilFillPathNV
GLuint path
GLenum fillMode
GLuint mask
void glStencilFunc
GLenum func
GLint ref
GLuint mask
void glStencilFuncSeparate
GLenum face
GLenum func
GLint ref
GLuint mask
void glStencilFuncSeparateATI
GLenum frontfunc
GLenum backfunc
GLint ref
GLuint mask
void glStencilMask
GLuint mask
void glStencilMaskSeparate
GLenum face
GLuint mask
void glStencilOp
GLenum fail
GLenum zfail
GLenum zpass
void glStencilOpSeparate
GLenum face
GLenum sfail
GLenum dpfail
GLenum dppass
void glStencilOpSeparateATI
GLenum face
GLenum sfail
GLenum dpfail
GLenum dppass
void glStencilOpValueAMD
GLenum face
GLuint value
void glStencilStrokePathInstancedNV
GLsizei numPaths
GLenum pathNameType
const void *paths
GLuint pathBase
GLint reference
GLuint mask
GLenum transformType
const GLfloat *transformValues
void glStencilStrokePathNV
GLuint path
GLint reference
GLuint mask
void glStencilThenCoverFillPathInstancedNV
GLsizei numPaths
GLenum pathNameType
const void *paths
GLuint pathBase
GLenum fillMode
GLuint mask
GLenum coverMode
GLenum transformType
const GLfloat *transformValues
void glStencilThenCoverFillPathNV
GLuint path
GLenum fillMode
GLuint mask
GLenum coverMode
void glStencilThenCoverStrokePathInstancedNV
GLsizei numPaths
GLenum pathNameType
const void *paths
GLuint pathBase
GLint reference
GLuint mask
GLenum coverMode
GLenum transformType
const GLfloat *transformValues
void glStencilThenCoverStrokePathNV
GLuint path
GLint reference
GLuint mask
GLenum coverMode
void glStopInstrumentsSGIX
GLint marker
void glStringMarkerGREMEDY
GLsizei len
const void *string
void glSubpixelPrecisionBiasNV
GLuint xbits
GLuint ybits
void glSwizzleEXT
GLuint res
GLuint in
GLenum outX
GLenum outY
GLenum outZ
GLenum outW
void glSyncTextureINTEL
GLuint texture
void glTagSampleBufferSGIX
void glTangent3bEXT
GLbyte tx
GLbyte ty
GLbyte tz
void glTangent3bvEXT
const GLbyte *v
void glTangent3dEXT
GLdouble tx
GLdouble ty
GLdouble tz
void glTangent3dvEXT
const GLdouble *v
void glTangent3fEXT
GLfloat tx
GLfloat ty
GLfloat tz
void glTangent3fvEXT
const GLfloat *v
void glTangent3iEXT
GLint tx
GLint ty
GLint tz
void glTangent3ivEXT
const GLint *v
void glTangent3sEXT
GLshort tx
GLshort ty
GLshort tz
void glTangent3svEXT
const GLshort *v
void glTangentPointerEXT
GLenum type
GLsizei stride
const void *pointer
void glTbufferMask3DFX
GLuint mask
void glTessellationFactorAMD
GLfloat factor
void glTessellationModeAMD
GLenum mode
GLboolean glTestFenceAPPLE
GLuint fence
GLboolean glTestFenceNV
GLuint fence
GLboolean glTestObjectAPPLE
GLenum object
GLuint name
void glTexAttachMemoryNV
GLenum target
GLuint memory
GLuint64 offset
void glTexBuffer
GLenum target
GLenum internalformat
GLuint buffer
void glTexBufferARB
GLenum target
GLenum internalformat
GLuint buffer
void glTexBufferEXT
GLenum target
GLenum internalformat
GLuint buffer
void glTexBufferOES
GLenum target
GLenum internalformat
GLuint buffer
void glTexBufferRange
GLenum target
GLenum internalformat
GLuint buffer
GLintptr offset
GLsizeiptr size
void glTexBufferRangeEXT
GLenum target
GLenum internalformat
GLuint buffer
GLintptr offset
GLsizeiptr size
void glTexBufferRangeOES
GLenum target
GLenum internalformat
GLuint buffer
GLintptr offset
GLsizeiptr size
void glTexBumpParameterfvATI
GLenum pname
const GLfloat *param
void glTexBumpParameterivATI
GLenum pname
const GLint *param
void glTexCoord1bOES
GLbyte s
void glTexCoord1bvOES
const GLbyte *coords
void glTexCoord1d
GLdouble s
void glTexCoord1dv
const GLdouble *v
void glTexCoord1f
GLfloat s
void glTexCoord1fv
const GLfloat *v
void glTexCoord1hNV
GLhalfNV s
void glTexCoord1hvNV
const GLhalfNV *v
void glTexCoord1i
GLint s
void glTexCoord1iv
const GLint *v
void glTexCoord1s
GLshort s
void glTexCoord1sv
const GLshort *v
void glTexCoord1xOES
GLfixed s
void glTexCoord1xvOES
const GLfixed *coords
void glTexCoord2bOES
GLbyte s
GLbyte t
void glTexCoord2bvOES
const GLbyte *coords
void glTexCoord2d
GLdouble s
GLdouble t
void glTexCoord2dv
const GLdouble *v
void glTexCoord2f
GLfloat s
GLfloat t
void glTexCoord2fColor3fVertex3fSUN
GLfloat s
GLfloat t
GLfloat r
GLfloat g
GLfloat b
GLfloat x
GLfloat y
GLfloat z
void glTexCoord2fColor3fVertex3fvSUN
const GLfloat *tc
const GLfloat *c
const GLfloat *v
void glTexCoord2fColor4fNormal3fVertex3fSUN
GLfloat s
GLfloat t
GLfloat r
GLfloat g
GLfloat b
GLfloat a
GLfloat nx
GLfloat ny
GLfloat nz
GLfloat x
GLfloat y
GLfloat z
void glTexCoord2fColor4fNormal3fVertex3fvSUN
const GLfloat *tc
const GLfloat *c
const GLfloat *n
const GLfloat *v
void glTexCoord2fColor4ubVertex3fSUN
GLfloat s
GLfloat t
GLubyte r
GLubyte g
GLubyte b
GLubyte a
GLfloat x
GLfloat y
GLfloat z
void glTexCoord2fColor4ubVertex3fvSUN
const GLfloat *tc
const GLubyte *c
const GLfloat *v
void glTexCoord2fNormal3fVertex3fSUN
GLfloat s
GLfloat t
GLfloat nx
GLfloat ny
GLfloat nz
GLfloat x
GLfloat y
GLfloat z
void glTexCoord2fNormal3fVertex3fvSUN
const GLfloat *tc
const GLfloat *n
const GLfloat *v
void glTexCoord2fVertex3fSUN
GLfloat s
GLfloat t
GLfloat x
GLfloat y
GLfloat z
void glTexCoord2fVertex3fvSUN
const GLfloat *tc
const GLfloat *v
void glTexCoord2fv
const GLfloat *v
void glTexCoord2hNV
GLhalfNV s
GLhalfNV t
void glTexCoord2hvNV
const GLhalfNV *v
void glTexCoord2i
GLint s
GLint t
void glTexCoord2iv
const GLint *v
void glTexCoord2s
GLshort s
GLshort t
void glTexCoord2sv
const GLshort *v
void glTexCoord2xOES
GLfixed s
GLfixed t
void glTexCoord2xvOES
const GLfixed *coords
void glTexCoord3bOES
GLbyte s
GLbyte t
GLbyte r
void glTexCoord3bvOES
const GLbyte *coords
void glTexCoord3d
GLdouble s
GLdouble t
GLdouble r
void glTexCoord3dv
const GLdouble *v
void glTexCoord3f
GLfloat s
GLfloat t
GLfloat r
void glTexCoord3fv
const GLfloat *v
void glTexCoord3hNV
GLhalfNV s
GLhalfNV t
GLhalfNV r
void glTexCoord3hvNV
const GLhalfNV *v
void glTexCoord3i
GLint s
GLint t
GLint r
void glTexCoord3iv
const GLint *v
void glTexCoord3s
GLshort s
GLshort t
GLshort r
void glTexCoord3sv
const GLshort *v
void glTexCoord3xOES
GLfixed s
GLfixed t
GLfixed r
void glTexCoord3xvOES
const GLfixed *coords
void glTexCoord4bOES
GLbyte s
GLbyte t
GLbyte r
GLbyte q
void glTexCoord4bvOES
const GLbyte *coords
void glTexCoord4d
GLdouble s
GLdouble t
GLdouble r
GLdouble q
void glTexCoord4dv
const GLdouble *v
void glTexCoord4f
GLfloat s
GLfloat t
GLfloat r
GLfloat q
void glTexCoord4fColor4fNormal3fVertex4fSUN
GLfloat 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
void glTexCoord4fColor4fNormal3fVertex4fvSUN
const GLfloat *tc
const GLfloat *c
const GLfloat *n
const GLfloat *v
void glTexCoord4fVertex4fSUN
GLfloat s
GLfloat t
GLfloat p
GLfloat q
GLfloat x
GLfloat y
GLfloat z
GLfloat w
void glTexCoord4fVertex4fvSUN
const GLfloat *tc
const GLfloat *v
void glTexCoord4fv
const GLfloat *v
void glTexCoord4hNV
GLhalfNV s
GLhalfNV t
GLhalfNV r
GLhalfNV q
void glTexCoord4hvNV
const GLhalfNV *v
void glTexCoord4i
GLint s
GLint t
GLint r
GLint q
void glTexCoord4iv
const GLint *v
void glTexCoord4s
GLshort s
GLshort t
GLshort r
GLshort q
void glTexCoord4sv
const GLshort *v
void glTexCoord4xOES
GLfixed s
GLfixed t
GLfixed r
GLfixed q
void glTexCoord4xvOES
const GLfixed *coords
void glTexCoordFormatNV
GLint size
GLenum type
GLsizei stride
void glTexCoordP1ui
GLenum type
GLuint coords
void glTexCoordP1uiv
GLenum type
const GLuint *coords
void glTexCoordP2ui
GLenum type
GLuint coords
void glTexCoordP2uiv
GLenum type
const GLuint *coords
void glTexCoordP3ui
GLenum type
GLuint coords
void glTexCoordP3uiv
GLenum type
const GLuint *coords
void glTexCoordP4ui
GLenum type
GLuint coords
void glTexCoordP4uiv
GLenum type
const GLuint *coords
void glTexCoordPointer
GLint size
GLenum type
GLsizei stride
const void *pointer
void glTexCoordPointerEXT
GLint size
GLenum type
GLsizei stride
GLsizei count
const void *pointer
void glTexCoordPointerListIBM
GLint size
GLenum type
GLint stride
const void **pointer
GLint ptrstride
void glTexCoordPointervINTEL
GLint size
GLenum type
const void **pointer
void glTexEnvf
GLenum target
GLenum pname
GLfloat param
void glTexEnvfv
GLenum target
GLenum pname
const GLfloat *params
void glTexEnvi
GLenum target
GLenum pname
GLint param
void glTexEnviv
GLenum target
GLenum pname
const GLint *params
void glTexEnvx
GLenum target
GLenum pname
GLfixed param
void glTexEnvxOES
GLenum target
GLenum pname
GLfixed param
void glTexEnvxv
GLenum target
GLenum pname
const GLfixed *params
void glTexEnvxvOES
GLenum target
GLenum pname
const GLfixed *params
void glTexFilterFuncSGIS
GLenum target
GLenum filter
GLsizei n
const GLfloat *weights
void glTexGend
GLenum coord
GLenum pname
GLdouble param
void glTexGendv
GLenum coord
GLenum pname
const GLdouble *params
void glTexGenf
GLenum coord
GLenum pname
GLfloat param
void glTexGenfOES
GLenum coord
GLenum pname
GLfloat param
void glTexGenfv
GLenum coord
GLenum pname
const GLfloat *params
void glTexGenfvOES
GLenum coord
GLenum pname
const GLfloat *params
void glTexGeni
GLenum coord
GLenum pname
GLint param
void glTexGeniOES
GLenum coord
GLenum pname
GLint param
void glTexGeniv
GLenum coord
GLenum pname
const GLint *params
void glTexGenivOES
GLenum coord
GLenum pname
const GLint *params
void glTexGenxOES
GLenum coord
GLenum pname
GLfixed param
void glTexGenxvOES
GLenum coord
GLenum pname
const GLfixed *params
void glTexImage1D
GLenum target
GLint level
GLint internalformat
GLsizei width
GLint border
GLenum format
GLenum type
const void *pixels
void glTexImage2D
GLenum target
GLint level
GLint internalformat
GLsizei width
GLsizei height
GLint border
GLenum format
GLenum type
const void *pixels
void glTexImage2DMultisample
GLenum target
GLsizei samples
GLenum internalformat
GLsizei width
GLsizei height
GLboolean fixedsamplelocations
void glTexImage2DMultisampleCoverageNV
GLenum target
GLsizei coverageSamples
GLsizei colorSamples
GLint internalFormat
GLsizei width
GLsizei height
GLboolean fixedSampleLocations
void glTexImage3D
GLenum target
GLint level
GLint internalformat
GLsizei width
GLsizei height
GLsizei depth
GLint border
GLenum format
GLenum type
const void *pixels
void glTexImage3DEXT
GLenum target
GLint level
GLenum internalformat
GLsizei width
GLsizei height
GLsizei depth
GLint border
GLenum format
GLenum type
const void *pixels
void glTexImage3DMultisample
GLenum target
GLsizei samples
GLenum internalformat
GLsizei width
GLsizei height
GLsizei depth
GLboolean fixedsamplelocations
void glTexImage3DMultisampleCoverageNV
GLenum target
GLsizei coverageSamples
GLsizei colorSamples
GLint internalFormat
GLsizei width
GLsizei height
GLsizei depth
GLboolean fixedSampleLocations
void glTexImage3DOES
GLenum target
GLint level
GLenum internalformat
GLsizei width
GLsizei height
GLsizei depth
GLint border
GLenum format
GLenum type
const void *pixels
void glTexImage4DSGIS
GLenum target
GLint level
GLenum internalformat
GLsizei width
GLsizei height
GLsizei depth
GLsizei size4d
GLint border
GLenum format
GLenum type
const void *pixels
void glTexPageCommitmentARB
GLenum target
GLint level
GLint xoffset
GLint yoffset
GLint zoffset
GLsizei width
GLsizei height
GLsizei depth
GLboolean commit
void glTexPageCommitmentEXT
GLenum target
GLint level
GLint xoffset
GLint yoffset
GLint zoffset
GLsizei width
GLsizei height
GLsizei depth
GLboolean commit
void glTexParameterIiv
GLenum target
GLenum pname
const GLint *params
void glTexParameterIivEXT
GLenum target
GLenum pname
const GLint *params
void glTexParameterIivOES
GLenum target
GLenum pname
const GLint *params
void glTexParameterIuiv
GLenum target
GLenum pname
const GLuint *params
void glTexParameterIuivEXT
GLenum target
GLenum pname
const GLuint *params
void glTexParameterIuivOES
GLenum target
GLenum pname
const GLuint *params
void glTexParameterf
GLenum target
GLenum pname
GLfloat param
void glTexParameterfv
GLenum target
GLenum pname
const GLfloat *params
void glTexParameteri
GLenum target
GLenum pname
GLint param
void glTexParameteriv
GLenum target
GLenum pname
const GLint *params
void glTexParameterx
GLenum target
GLenum pname
GLfixed param
void glTexParameterxOES
GLenum target
GLenum pname
GLfixed param
void glTexParameterxv
GLenum target
GLenum pname
const GLfixed *params
void glTexParameterxvOES
GLenum target
GLenum pname
const GLfixed *params
void glTexRenderbufferNV
GLenum target
GLuint renderbuffer
void glTexStorage1D
GLenum target
GLsizei levels
GLenum internalformat
GLsizei width
void glTexStorage1DEXT
GLenum target
GLsizei levels
GLenum internalformat
GLsizei width
void glTexStorage2D
GLenum target
GLsizei levels
GLenum internalformat
GLsizei width
GLsizei height
void glTexStorage2DEXT
GLenum target
GLsizei levels
GLenum internalformat
GLsizei width
GLsizei height
void glTexStorage2DMultisample
GLenum target
GLsizei samples
GLenum internalformat
GLsizei width
GLsizei height
GLboolean fixedsamplelocations
void glTexStorage3D
GLenum target
GLsizei levels
GLenum internalformat
GLsizei width
GLsizei height
GLsizei depth
void glTexStorage3DEXT
GLenum target
GLsizei levels
GLenum internalformat
GLsizei width
GLsizei height
GLsizei depth
void glTexStorage3DMultisample
GLenum target
GLsizei samples
GLenum internalformat
GLsizei width
GLsizei height
GLsizei depth
GLboolean fixedsamplelocations
void glTexStorage3DMultisampleOES
GLenum target
GLsizei samples
GLenum internalformat
GLsizei width
GLsizei height
GLsizei depth
GLboolean fixedsamplelocations
void glTexStorageMem1DEXT
GLenum target
GLsizei levels
GLenum internalFormat
GLsizei width
GLuint memory
GLuint64 offset
void glTexStorageMem2DEXT
GLenum target
GLsizei levels
GLenum internalFormat
GLsizei width
GLsizei height
GLuint memory
GLuint64 offset
void glTexStorageMem2DMultisampleEXT
GLenum target
GLsizei samples
GLenum internalFormat
GLsizei width
GLsizei height
GLboolean fixedSampleLocations
GLuint memory
GLuint64 offset
void glTexStorageMem3DEXT
GLenum target
GLsizei levels
GLenum internalFormat
GLsizei width
GLsizei height
GLsizei depth
GLuint memory
GLuint64 offset
void glTexStorageMem3DMultisampleEXT
GLenum target
GLsizei samples
GLenum internalFormat
GLsizei width
GLsizei height
GLsizei depth
GLboolean fixedSampleLocations
GLuint memory
GLuint64 offset
void glTexStorageSparseAMD
GLenum target
GLenum internalFormat
GLsizei width
GLsizei height
GLsizei depth
GLboolean fixedSampleLocations
GLuint memory
GLuint64 offset
void glTexStorageSparseAMD
GLenum target
GLenum internalFormat
GLsizei width
GLsizei height
GLsizei depth
GLsizei layers
GLbitfield flags
void glTexSubImage1D
GLenum target
GLint level
GLint xoffset
GLsizei width
GLenum format
GLenum type
const void *pixels
void glTexSubImage1DEXT
GLenum target
GLint level
GLint xoffset
GLsizei width
GLenum format
GLenum type
const void *pixels
void glTexSubImage2D
GLenum target
GLint level
GLint xoffset
GLint yoffset
GLsizei width
GLsizei height
GLenum format
GLenum type
const void *pixels
void glTexSubImage2DEXT
GLenum target
GLint level
GLint xoffset
GLint yoffset
GLsizei width
GLsizei height
GLenum format
GLenum type
const void *pixels
void glTexSubImage3D
GLenum target
GLint level
GLint xoffset
GLint yoffset
GLint zoffset
GLsizei width
GLsizei height
GLsizei depth
GLenum format
GLenum type
const void *pixels
void glTexSubImage3DEXT
GLenum target
GLint level
GLint xoffset
GLint yoffset
GLint zoffset
GLsizei width
GLsizei height
GLsizei depth
GLenum format
GLenum type
const void *pixels
void glTexSubImage3DOES
GLenum target
GLint level
GLint xoffset
GLint yoffset
GLint zoffset
GLsizei width
GLsizei height
GLsizei depth
GLenum format
GLenum type
const void *pixels
void glTexSubImage4DSGIS
GLenum target
GLint level
GLint xoffset
GLint yoffset
GLint zoffset
GLint woffset
GLsizei width
GLsizei height
GLsizei depth
GLsizei size4d
GLenum format
GLenum type
const void *pixels
void glTextureAttachMemoryNV
GLuint texture
GLuint memory
GLuint64 offset
void glTextureBarrier
void glTextureBarrierNV
void glTextureBuffer
GLuint texture
GLenum internalformat
GLuint buffer
void glTextureBufferEXT
GLuint texture
GLenum target
GLenum internalformat
GLuint buffer
void glTextureBufferRange
GLuint texture
GLenum internalformat
GLuint buffer
GLintptr offset
GLsizeiptr size
void glTextureBufferRangeEXT
GLuint texture
GLenum target
GLenum internalformat
GLuint buffer
GLintptr offset
GLsizeiptr size
void glTextureColorMaskSGIS
GLboolean red
GLboolean green
GLboolean blue
GLboolean alpha
void glTextureFoveationParametersQCOM
GLuint texture
GLuint layer
GLuint focalPoint
GLfloat focalX
GLfloat focalY
GLfloat gainX
GLfloat gainY
GLfloat foveaArea
void glTextureImage1DEXT
GLuint texture
GLenum target
GLint level
GLint internalformat
GLsizei width
GLint border
GLenum format
GLenum type
const void *pixels
void glTextureImage2DEXT
GLuint texture
GLenum target
GLint level
GLint internalformat
GLsizei width
GLsizei height
GLint border
GLenum format
GLenum type
const void *pixels
void glTextureImage2DMultisampleCoverageNV
GLuint texture
GLenum target
GLsizei coverageSamples
GLsizei colorSamples
GLint internalFormat
GLsizei width
GLsizei height
GLboolean fixedSampleLocations
void glTextureImage2DMultisampleNV
GLuint texture
GLenum target
GLsizei samples
GLint internalFormat
GLsizei width
GLsizei height
GLboolean fixedSampleLocations
void glTextureImage3DEXT
GLuint texture
GLenum target
GLint level
GLint internalformat
GLsizei width
GLsizei height
GLsizei depth
GLint border
GLenum format
GLenum type
const void *pixels
void glTextureImage3DMultisampleCoverageNV
GLuint texture
GLenum target
GLsizei coverageSamples
GLsizei colorSamples
GLint internalFormat
GLsizei width
GLsizei height
GLsizei depth
GLboolean fixedSampleLocations
void glTextureImage3DMultisampleNV
GLuint texture
GLenum target
GLsizei samples
GLint internalFormat
GLsizei width
GLsizei height
GLsizei depth
GLboolean fixedSampleLocations
void glTextureLightEXT
GLenum pname
void glTextureMaterialEXT
GLenum face
GLenum mode
void glTextureNormalEXT
GLenum mode
void glTexturePageCommitmentEXT
GLuint texture
GLint level
GLint xoffset
GLint yoffset
GLint zoffset
GLsizei width
GLsizei height
GLsizei depth
GLboolean commit
void glTextureParameterIiv
GLuint texture
GLenum pname
const GLint *params
void glTextureParameterIivEXT
GLuint texture
GLenum target
GLenum pname
const GLint *params
void glTextureParameterIuiv
GLuint texture
GLenum pname
const GLuint *params
void glTextureParameterIuivEXT
GLuint texture
GLenum target
GLenum pname
const GLuint *params
void glTextureParameterf
GLuint texture
GLenum pname
GLfloat param
void glTextureParameterfEXT
GLuint texture
GLenum target
GLenum pname
GLfloat param
void glTextureParameterfv
GLuint texture
GLenum pname
const GLfloat *param
void glTextureParameterfvEXT
GLuint texture
GLenum target
GLenum pname
const GLfloat *params
void glTextureParameteri
GLuint texture
GLenum pname
GLint param
void glTextureParameteriEXT
GLuint texture
GLenum target
GLenum pname
GLint param
void glTextureParameteriv
GLuint texture
GLenum pname
const GLint *param
void glTextureParameterivEXT
GLuint texture
GLenum target
GLenum pname
const GLint *params
void glTextureRangeAPPLE
GLenum target
GLsizei length
const void *pointer
void glTextureRenderbufferEXT
GLuint texture
GLenum target
GLuint renderbuffer
void glTextureStorage1D
GLuint texture
GLsizei levels
GLenum internalformat
GLsizei width
void glTextureStorage1DEXT
GLuint texture
GLenum target
GLsizei levels
GLenum internalformat
GLsizei width
void glTextureStorage2D
GLuint texture
GLsizei levels
GLenum internalformat
GLsizei width
GLsizei height
void glTextureStorage2DEXT
GLuint texture
GLenum target
GLsizei levels
GLenum internalformat
GLsizei width
GLsizei height
void glTextureStorage2DMultisample
GLuint texture
GLsizei samples
GLenum internalformat
GLsizei width
GLsizei height
GLboolean fixedsamplelocations
void glTextureStorage2DMultisampleEXT
GLuint texture
GLenum target
GLsizei samples
GLenum internalformat
GLsizei width
GLsizei height
GLboolean fixedsamplelocations
void glTextureStorage3D
GLuint texture
GLsizei levels
GLenum internalformat
GLsizei width
GLsizei height
GLsizei depth
void glTextureStorage3DEXT
GLuint texture
GLenum target
GLsizei levels
GLenum internalformat
GLsizei width
GLsizei height
GLsizei depth
void glTextureStorage3DMultisample
GLuint texture
GLsizei samples
GLenum internalformat
GLsizei width
GLsizei height
GLsizei depth
GLboolean fixedsamplelocations
void glTextureStorage3DMultisampleEXT
GLuint texture
GLenum target
GLsizei samples
GLenum internalformat
GLsizei width
GLsizei height
GLsizei depth
GLboolean fixedsamplelocations
void glTextureStorageMem1DEXT
GLuint texture
GLsizei levels
GLenum internalFormat
GLsizei width
GLuint memory
GLuint64 offset
void glTextureStorageMem2DEXT
GLuint texture
GLsizei levels
GLenum internalFormat
GLsizei width
GLsizei height
GLuint memory
GLuint64 offset
void glTextureStorageMem2DMultisampleEXT
GLuint texture
GLsizei samples
GLenum internalFormat
GLsizei width
GLsizei height
GLboolean fixedSampleLocations
GLuint memory
GLuint64 offset
void glTextureStorageMem3DEXT
GLuint texture
GLsizei levels
GLenum internalFormat
GLsizei width
GLsizei height
GLsizei depth
GLuint memory
GLuint64 offset
void glTextureStorageMem3DMultisampleEXT
GLuint texture
GLsizei samples
GLenum internalFormat
GLsizei width
GLsizei height
GLsizei depth
GLboolean fixedSampleLocations
GLuint memory
GLuint64 offset
void glTextureStorageSparseAMD
GLuint texture
GLenum target
GLenum internalFormat
GLsizei width
GLsizei height
GLsizei depth
GLsizei layers
GLbitfield flags
void glTextureSubImage1D
GLuint texture
GLint level
GLint xoffset
GLsizei width
GLenum format
GLenum type
const void *pixels
void glTextureSubImage1DEXT
GLuint texture
GLenum target
GLint level
GLint xoffset
GLsizei width
GLenum format
GLenum type
const void *pixels
void glTextureSubImage2D
GLuint texture
GLint level
GLint xoffset
GLint yoffset
GLsizei width
GLsizei height
GLenum format
GLenum type
const void *pixels
void glTextureSubImage2DEXT
GLuint texture
GLenum target
GLint level
GLint xoffset
GLint yoffset
GLsizei width
GLsizei height
GLenum format
GLenum type
const void *pixels
void glTextureSubImage3D
GLuint texture
GLint level
GLint xoffset
GLint yoffset
GLint zoffset
GLsizei width
GLsizei height
GLsizei depth
GLenum format
GLenum type
const void *pixels
void glTextureSubImage3DEXT
GLuint texture
GLenum target
GLint level
GLint xoffset
GLint yoffset
GLint zoffset
GLsizei width
GLsizei height
GLsizei depth
GLenum format
GLenum type
const void *pixels
void glTextureView
GLuint texture
GLenum target
GLuint origtexture
GLenum internalformat
GLuint minlevel
GLuint numlevels
GLuint minlayer
GLuint numlayers
void glTextureViewEXT
GLuint texture
GLenum target
GLuint origtexture
GLenum internalformat
GLuint minlevel
GLuint numlevels
GLuint minlayer
GLuint numlayers
void glTextureViewOES
GLuint texture
GLenum target
GLuint origtexture
GLenum internalformat
GLuint minlevel
GLuint numlevels
GLuint minlayer
GLuint numlayers
void glTrackMatrixNV
GLenum target
GLuint address
GLenum matrix
GLenum transform
void glTransformFeedbackAttribsNV
GLsizei count
const GLint *attribs
GLenum bufferMode
void glTransformFeedbackBufferBase
GLuint xfb
GLuint index
GLuint buffer
void glTransformFeedbackBufferRange
GLuint xfb
GLuint index
GLuint buffer
GLintptr offset
GLsizeiptr size
void glTransformFeedbackStreamAttribsNV
GLsizei count
const GLint *attribs
GLsizei nbuffers
const GLint *bufstreams
GLenum bufferMode
void glTransformFeedbackVaryings
GLuint program
GLsizei count
const GLchar *const*varyings
GLenum bufferMode
void glTransformFeedbackVaryingsEXT
GLuint program
GLsizei count
const GLchar *const*varyings
GLenum bufferMode
void glTransformFeedbackVaryingsNV
GLuint program
GLsizei count
const GLint *locations
GLenum bufferMode
void glTransformPathNV
GLuint resultPath
GLuint srcPath
GLenum transformType
const GLfloat *transformValues
void glTranslated
GLdouble x
GLdouble y
GLdouble z
void glTranslatef
GLfloat x
GLfloat y
GLfloat z
void glTranslatex
GLfixed x
GLfixed y
GLfixed z
void glTranslatexOES
GLfixed x
GLfixed y
GLfixed z
void glUniform1d
GLint location
GLdouble x
void glUniform1dv
GLint location
GLsizei count
const GLdouble *value
void glUniform1f
GLint location
GLfloat v0
void glUniform1fARB
GLint location
GLfloat v0
void glUniform1fv
GLint location
GLsizei count
const GLfloat *value
void glUniform1fvARB
GLint location
GLsizei count
const GLfloat *value
void glUniform1i
GLint location
GLint v0
void glUniform1i64ARB
GLint location
GLint64 x
void glUniform1i64NV
GLint location
GLint64EXT x
void glUniform1i64vARB
GLint location
GLsizei count
const GLint64 *value
void glUniform1i64vNV
GLint location
GLsizei count
const GLint64EXT *value
void glUniform1iARB
GLint location
GLint v0
void glUniform1iv
GLint location
GLsizei count
const GLint *value
void glUniform1ivARB
GLint location
GLsizei count
const GLint *value
void glUniform1ui
GLint location
GLuint v0
void glUniform1ui64ARB
GLint location
GLuint64 x
void glUniform1ui64NV
GLint location
GLuint64EXT x
void glUniform1ui64vARB
GLint location
GLsizei count
const GLuint64 *value
void glUniform1ui64vNV
GLint location
GLsizei count
const GLuint64EXT *value
void glUniform1uiEXT
GLint location
GLuint v0
void glUniform1uiv
GLint location
GLsizei count
const GLuint *value
void glUniform1uivEXT
GLint location
GLsizei count
const GLuint *value
void glUniform2d
GLint location
GLdouble x
GLdouble y
void glUniform2dv
GLint location
GLsizei count
const GLdouble *value
void glUniform2f
GLint location
GLfloat v0
GLfloat v1
void glUniform2fARB
GLint location
GLfloat v0
GLfloat v1
void glUniform2fv
GLint location
GLsizei count
const GLfloat *value
void glUniform2fvARB
GLint location
GLsizei count
const GLfloat *value
void glUniform2i
GLint location
GLint v0
GLint v1
void glUniform2i64ARB
GLint location
GLint64 x
GLint64 y
void glUniform2i64NV
GLint location
GLint64EXT x
GLint64EXT y
void glUniform2i64vARB
GLint location
GLsizei count
const GLint64 *value
void glUniform2i64vNV
GLint location
GLsizei count
const GLint64EXT *value
void glUniform2iARB
GLint location
GLint v0
GLint v1
void glUniform2iv
GLint location
GLsizei count
const GLint *value
void glUniform2ivARB
GLint location
GLsizei count
const GLint *value
void glUniform2ui
GLint location
GLuint v0
GLuint v1
void glUniform2ui64ARB
GLint location
GLuint64 x
GLuint64 y
void glUniform2ui64NV
GLint location
GLuint64EXT x
GLuint64EXT y
void glUniform2ui64vARB
GLint location
GLsizei count
const GLuint64 *value
void glUniform2ui64vNV
GLint location
GLsizei count
const GLuint64EXT *value
void glUniform2uiEXT
GLint location
GLuint v0
GLuint v1
void glUniform2uiv
GLint location
GLsizei count
const GLuint *value
void glUniform2uivEXT
GLint location
GLsizei count
const GLuint *value
void glUniform3d
GLint location
GLdouble x
GLdouble y
GLdouble z
void glUniform3dv
GLint location
GLsizei count
const GLdouble *value
void glUniform3f
GLint location
GLfloat v0
GLfloat v1
GLfloat v2
void glUniform3fARB
GLint location
GLfloat v0
GLfloat v1
GLfloat v2
void glUniform3fv
GLint location
GLsizei count
const GLfloat *value
void glUniform3fvARB
GLint location
GLsizei count
const GLfloat *value
void glUniform3i
GLint location
GLint v0
GLint v1
GLint v2
void glUniform3i64ARB
GLint location
GLint64 x
GLint64 y
GLint64 z
void glUniform3i64NV
GLint location
GLint64EXT x
GLint64EXT y
GLint64EXT z
void glUniform3i64vARB
GLint location
GLsizei count
const GLint64 *value
void glUniform3i64vNV
GLint location
GLsizei count
const GLint64EXT *value
void glUniform3iARB
GLint location
GLint v0
GLint v1
GLint v2
void glUniform3iv
GLint location
GLsizei count
const GLint *value
void glUniform3ivARB
GLint location
GLsizei count
const GLint *value
void glUniform3ui
GLint location
GLuint v0
GLuint v1
GLuint v2
void glUniform3ui64ARB
GLint location
GLuint64 x
GLuint64 y
GLuint64 z
void glUniform3ui64NV
GLint location
GLuint64EXT x
GLuint64EXT y
GLuint64EXT z
void glUniform3ui64vARB
GLint location
GLsizei count
const GLuint64 *value
void glUniform3ui64vNV
GLint location
GLsizei count
const GLuint64EXT *value
void glUniform3uiEXT
GLint location
GLuint v0
GLuint v1
GLuint v2
void glUniform3uiv
GLint location
GLsizei count
const GLuint *value
void glUniform3uivEXT
GLint location
GLsizei count
const GLuint *value
void glUniform4d
GLint location
GLdouble x
GLdouble y
GLdouble z
GLdouble w
void glUniform4dv
GLint location
GLsizei count
const GLdouble *value
void glUniform4f
GLint location
GLfloat v0
GLfloat v1
GLfloat v2
GLfloat v3
void glUniform4fARB
GLint location
GLfloat v0
GLfloat v1
GLfloat v2
GLfloat v3
void glUniform4fv
GLint location
GLsizei count
const GLfloat *value
void glUniform4fvARB
GLint location
GLsizei count
const GLfloat *value
void glUniform4i
GLint location
GLint v0
GLint v1
GLint v2
GLint v3
void glUniform4i64ARB
GLint location
GLint64 x
GLint64 y
GLint64 z
GLint64 w
void glUniform4i64NV
GLint location
GLint64EXT x
GLint64EXT y
GLint64EXT z
GLint64EXT w
void glUniform4i64vARB
GLint location
GLsizei count
const GLint64 *value
void glUniform4i64vNV
GLint location
GLsizei count
const GLint64EXT *value
void glUniform4iARB
GLint location
GLint v0
GLint v1
GLint v2
GLint v3
void glUniform4iv
GLint location
GLsizei count
const GLint *value
void glUniform4ivARB
GLint location
GLsizei count
const GLint *value
void glUniform4ui
GLint location
GLuint v0
GLuint v1
GLuint v2
GLuint v3
void glUniform4ui64ARB
GLint location
GLuint64 x
GLuint64 y
GLuint64 z
GLuint64 w
void glUniform4ui64NV
GLint location
GLuint64EXT x
GLuint64EXT y
GLuint64EXT z
GLuint64EXT w
void glUniform4ui64vARB
GLint location
GLsizei count
const GLuint64 *value
void glUniform4ui64vNV
GLint location
GLsizei count
const GLuint64EXT *value
void glUniform4uiEXT
GLint location
GLuint v0
GLuint v1
GLuint v2
GLuint v3
void glUniform4uiv
GLint location
GLsizei count
const GLuint *value
void glUniform4uivEXT
GLint location
GLsizei count
const GLuint *value
void glUniformBlockBinding
GLuint program
GLuint uniformBlockIndex
GLuint uniformBlockBinding
void glUniformBufferEXT
GLuint program
GLint location
GLuint buffer
void glUniformHandleui64ARB
GLint location
GLuint64 value
void glUniformHandleui64IMG
GLint location
GLuint64 value
void glUniformHandleui64NV
GLint location
GLuint64 value
void glUniformHandleui64vARB
GLint location
GLsizei count
const GLuint64 *value
void glUniformHandleui64vIMG
GLint location
GLsizei count
const GLuint64 *value
void glUniformHandleui64vNV
GLint location
GLsizei count
const GLuint64 *value
void glUniformMatrix2dv
GLint location
GLsizei count
GLboolean transpose
const GLdouble *value
void glUniformMatrix2fv
GLint location
GLsizei count
GLboolean transpose
const GLfloat *value
void glUniformMatrix2fvARB
GLint location
GLsizei count
GLboolean transpose
const GLfloat *value
void glUniformMatrix2x3dv
GLint location
GLsizei count
GLboolean transpose
const GLdouble *value
void glUniformMatrix2x3fv
GLint location
GLsizei count
GLboolean transpose
const GLfloat *value
void glUniformMatrix2x3fvNV
GLint location
GLsizei count
GLboolean transpose
const GLfloat *value
void glUniformMatrix2x4dv
GLint location
GLsizei count
GLboolean transpose
const GLdouble *value
void glUniformMatrix2x4fv
GLint location
GLsizei count
GLboolean transpose
const GLfloat *value
void glUniformMatrix2x4fvNV
GLint location
GLsizei count
GLboolean transpose
const GLfloat *value
void glUniformMatrix3dv
GLint location
GLsizei count
GLboolean transpose
const GLdouble *value
void glUniformMatrix3fv
GLint location
GLsizei count
GLboolean transpose
const GLfloat *value
void glUniformMatrix3fvARB
GLint location
GLsizei count
GLboolean transpose
const GLfloat *value
void glUniformMatrix3x2dv
GLint location
GLsizei count
GLboolean transpose
const GLdouble *value
void glUniformMatrix3x2fv
GLint location
GLsizei count
GLboolean transpose
const GLfloat *value
void glUniformMatrix3x2fvNV
GLint location
GLsizei count
GLboolean transpose
const GLfloat *value
void glUniformMatrix3x4dv
GLint location
GLsizei count
GLboolean transpose
const GLdouble *value
void glUniformMatrix3x4fv
GLint location
GLsizei count
GLboolean transpose
const GLfloat *value
void glUniformMatrix3x4fvNV
GLint location
GLsizei count
GLboolean transpose
const GLfloat *value
void glUniformMatrix4dv
GLint location
GLsizei count
GLboolean transpose
const GLdouble *value
void glUniformMatrix4fv
GLint location
GLsizei count
GLboolean transpose
const GLfloat *value
void glUniformMatrix4fvARB
GLint location
GLsizei count
GLboolean transpose
const GLfloat *value
void glUniformMatrix4x2dv
GLint location
GLsizei count
GLboolean transpose
const GLdouble *value
void glUniformMatrix4x2fv
GLint location
GLsizei count
GLboolean transpose
const GLfloat *value
void glUniformMatrix4x2fvNV
GLint location
GLsizei count
GLboolean transpose
const GLfloat *value
void glUniformMatrix4x3dv
GLint location
GLsizei count
GLboolean transpose
const GLdouble *value
void glUniformMatrix4x3fv
GLint location
GLsizei count
GLboolean transpose
const GLfloat *value
void glUniformMatrix4x3fvNV
GLint location
GLsizei count
GLboolean transpose
const GLfloat *value
void glUniformSubroutinesuiv
GLenum shadertype
GLsizei count
const GLuint *indices
void glUniformui64NV
GLint location
GLuint64EXT value
void glUniformui64vNV
GLint location
GLsizei count
const GLuint64EXT *value
void glUnlockArraysEXT
GLboolean glUnmapBuffer
GLenum target
GLboolean glUnmapBufferARB
GLenum target
GLboolean glUnmapBufferOES
GLenum target
GLboolean glUnmapNamedBuffer
GLuint buffer
GLboolean glUnmapNamedBufferEXT
GLuint buffer
void glUnmapObjectBufferATI
GLuint buffer
void glUnmapTexture2DINTEL
GLuint texture
GLint level
void glUpdateObjectBufferATI
GLuint buffer
GLuint offset
GLsizei size
const void *pointer
GLenum preserve
void glUploadGpuMaskNVX
GLbitfield mask
void glUseProgram
GLuint program
void glUseProgramObjectARB
GLhandleARB programObj
void glUseProgramStages
GLuint pipeline
GLbitfield stages
GLuint program
void glUseProgramStagesEXT
GLuint pipeline
GLbitfield stages
GLuint program
void glUseShaderProgramEXT
GLenum type
GLuint program
void glVDPAUFiniNV
void glVDPAUGetSurfaceivNV
GLvdpauSurfaceNV surface
GLenum pname
GLsizei bufSize
GLsizei *length
GLint *values
void glVDPAUInitNV
const void *vdpDevice
const void *getProcAddress
GLboolean glVDPAUIsSurfaceNV
GLvdpauSurfaceNV surface
void glVDPAUMapSurfacesNV
GLsizei numSurfaces
const GLvdpauSurfaceNV *surfaces
GLvdpauSurfaceNV glVDPAURegisterOutputSurfaceNV
const void *vdpSurface
GLenum target
GLsizei numTextureNames
const GLuint *textureNames
GLvdpauSurfaceNV glVDPAURegisterVideoSurfaceNV
const void *vdpSurface
GLenum target
GLsizei numTextureNames
const GLuint *textureNames
GLvdpauSurfaceNV glVDPAURegisterVideoSurfaceWithPictureStructureNV
const void *vdpSurface
GLenum target
GLsizei numTextureNames
const GLuint *textureNames
GLboolean isFrameStructure
void glVDPAUSurfaceAccessNV
GLvdpauSurfaceNV surface
GLenum access
void glVDPAUUnmapSurfacesNV
GLsizei numSurface
const GLvdpauSurfaceNV *surfaces
void glVDPAUUnregisterSurfaceNV
GLvdpauSurfaceNV surface
void glValidateProgram
GLuint program
void glValidateProgramARB
GLhandleARB programObj
void glValidateProgramPipeline
GLuint pipeline
void glValidateProgramPipelineEXT
GLuint pipeline
void glVariantArrayObjectATI
GLuint id
GLenum type
GLsizei stride
GLuint buffer
GLuint offset
void glVariantPointerEXT
GLuint id
GLenum type
GLuint stride
const void *addr
void glVariantbvEXT
GLuint id
const GLbyte *addr
void glVariantdvEXT
GLuint id
const GLdouble *addr
void glVariantfvEXT
GLuint id
const GLfloat *addr
void glVariantivEXT
GLuint id
const GLint *addr
void glVariantsvEXT
GLuint id
const GLshort *addr
void glVariantubvEXT
GLuint id
const GLubyte *addr
void glVariantuivEXT
GLuint id
const GLuint *addr
void glVariantusvEXT
GLuint id
const GLushort *addr
void glVertex2bOES
GLbyte x
GLbyte y
void glVertex2bvOES
const GLbyte *coords
void glVertex2d
GLdouble x
GLdouble y
void glVertex2dv
const GLdouble *v
void glVertex2f
GLfloat x
GLfloat y
void glVertex2fv
const GLfloat *v
void glVertex2hNV
GLhalfNV x
GLhalfNV y
void glVertex2hvNV
const GLhalfNV *v
void glVertex2i
GLint x
GLint y
void glVertex2iv
const GLint *v
void glVertex2s
GLshort x
GLshort y
void glVertex2sv
const GLshort *v
void glVertex2xOES
GLfixed x
void glVertex2xvOES
const GLfixed *coords
void glVertex3bOES
GLbyte x
GLbyte y
GLbyte z
void glVertex3bvOES
const GLbyte *coords
void glVertex3d
GLdouble x
GLdouble y
GLdouble z
void glVertex3dv
const GLdouble *v
void glVertex3f
GLfloat x
GLfloat y
GLfloat z
void glVertex3fv
const GLfloat *v
void glVertex3hNV
GLhalfNV x
GLhalfNV y
GLhalfNV z
void glVertex3hvNV
const GLhalfNV *v
void glVertex3i
GLint x
GLint y
GLint z
void glVertex3iv
const GLint *v
void glVertex3s
GLshort x
GLshort y
GLshort z
void glVertex3sv
const GLshort *v
void glVertex3xOES
GLfixed x
GLfixed y
void glVertex3xvOES
const GLfixed *coords
void glVertex4bOES
GLbyte x
GLbyte y
GLbyte z
GLbyte w
void glVertex4bvOES
const GLbyte *coords
void glVertex4d
GLdouble x
GLdouble y
GLdouble z
GLdouble w
void glVertex4dv
const GLdouble *v
void glVertex4f
GLfloat x
GLfloat y
GLfloat z
GLfloat w
void glVertex4fv
const GLfloat *v
void glVertex4hNV
GLhalfNV x
GLhalfNV y
GLhalfNV z
GLhalfNV w
void glVertex4hvNV
const GLhalfNV *v
void glVertex4i
GLint x
GLint y
GLint z
GLint w
void glVertex4iv
const GLint *v
void glVertex4s
GLshort x
GLshort y
GLshort z
GLshort w
void glVertex4sv
const GLshort *v
void glVertex4xOES
GLfixed x
GLfixed y
GLfixed z
void glVertex4xvOES
const GLfixed *coords
void glVertexArrayAttribBinding
GLuint vaobj
GLuint attribindex
GLuint bindingindex
void glVertexArrayAttribFormat
GLuint vaobj
GLuint attribindex
GLint size
GLenum type
GLboolean normalized
GLuint relativeoffset
void glVertexArrayAttribIFormat
GLuint vaobj
GLuint attribindex
GLint size
GLenum type
GLuint relativeoffset
void glVertexArrayAttribLFormat
GLuint vaobj
GLuint attribindex
GLint size
GLenum type
GLuint relativeoffset
void glVertexArrayBindVertexBufferEXT
GLuint vaobj
GLuint bindingindex
GLuint buffer
GLintptr offset
GLsizei stride
void glVertexArrayBindingDivisor
GLuint vaobj
GLuint bindingindex
GLuint divisor
void glVertexArrayColorOffsetEXT
GLuint vaobj
GLuint buffer
GLint size
GLenum type
GLsizei stride
GLintptr offset
void glVertexArrayEdgeFlagOffsetEXT
GLuint vaobj
GLuint buffer
GLsizei stride
GLintptr offset
void glVertexArrayElementBuffer
GLuint vaobj
GLuint buffer
void glVertexArrayFogCoordOffsetEXT
GLuint vaobj
GLuint buffer
GLenum type
GLsizei stride
GLintptr offset
void glVertexArrayIndexOffsetEXT
GLuint vaobj
GLuint buffer
GLenum type
GLsizei stride
GLintptr offset
void glVertexArrayMultiTexCoordOffsetEXT
GLuint vaobj
GLuint buffer
GLenum texunit
GLint size
GLenum type
GLsizei stride
GLintptr offset
void glVertexArrayNormalOffsetEXT
GLuint vaobj
GLuint buffer
GLenum type
GLsizei stride
GLintptr offset
void glVertexArrayParameteriAPPLE
GLenum pname
GLint param
void glVertexArrayRangeAPPLE
GLsizei length
void *pointer
void glVertexArrayRangeNV
GLsizei length
const void *pointer
void glVertexArraySecondaryColorOffsetEXT
GLuint vaobj
GLuint buffer
GLint size
GLenum type
GLsizei stride
GLintptr offset
void glVertexArrayTexCoordOffsetEXT
GLuint vaobj
GLuint buffer
GLint size
GLenum type
GLsizei stride
GLintptr offset
void glVertexArrayVertexAttribBindingEXT
GLuint vaobj
GLuint attribindex
GLuint bindingindex
void glVertexArrayVertexAttribDivisorEXT
GLuint vaobj
GLuint index
GLuint divisor
void glVertexArrayVertexAttribFormatEXT
GLuint vaobj
GLuint attribindex
GLint size
GLenum type
GLboolean normalized
GLuint relativeoffset
void glVertexArrayVertexAttribIFormatEXT
GLuint vaobj
GLuint attribindex
GLint size
GLenum type
GLuint relativeoffset
void glVertexArrayVertexAttribIOffsetEXT
GLuint vaobj
GLuint buffer
GLuint index
GLint size
GLenum type
GLsizei stride
GLintptr offset
void glVertexArrayVertexAttribLFormatEXT
GLuint vaobj
GLuint attribindex
GLint size
GLenum type
GLuint relativeoffset
void glVertexArrayVertexAttribLOffsetEXT
GLuint vaobj
GLuint buffer
GLuint index
GLint size
GLenum type
GLsizei stride
GLintptr offset
void glVertexArrayVertexAttribOffsetEXT
GLuint vaobj
GLuint buffer
GLuint index
GLint size
GLenum type
GLboolean normalized
GLsizei stride
GLintptr offset
void glVertexArrayVertexBindingDivisorEXT
GLuint vaobj
GLuint bindingindex
GLuint divisor
void glVertexArrayVertexBuffer
GLuint vaobj
GLuint bindingindex
GLuint buffer
GLintptr offset
GLsizei stride
void glVertexArrayVertexBuffers
GLuint vaobj
GLuint first
GLsizei count
const GLuint *buffers
const GLintptr *offsets
const GLsizei *strides
void glVertexArrayVertexOffsetEXT
GLuint vaobj
GLuint buffer
GLint size
GLenum type
GLsizei stride
GLintptr offset
void glVertexAttrib1d
GLuint index
GLdouble x
void glVertexAttrib1dARB
GLuint index
GLdouble x
void glVertexAttrib1dNV
GLuint index
GLdouble x
void glVertexAttrib1dv
GLuint index
const GLdouble *v
void glVertexAttrib1dvARB
GLuint index
const GLdouble *v
void glVertexAttrib1dvNV
GLuint index
const GLdouble *v
void glVertexAttrib1f
GLuint index
GLfloat x
void glVertexAttrib1fARB
GLuint index
GLfloat x
void glVertexAttrib1fNV
GLuint index
GLfloat x
void glVertexAttrib1fv
GLuint index
const GLfloat *v
void glVertexAttrib1fvARB
GLuint index
const GLfloat *v
void glVertexAttrib1fvNV
GLuint index
const GLfloat *v
void glVertexAttrib1hNV
GLuint index
GLhalfNV x
void glVertexAttrib1hvNV
GLuint index
const GLhalfNV *v
void glVertexAttrib1s
GLuint index
GLshort x
void glVertexAttrib1sARB
GLuint index
GLshort x
void glVertexAttrib1sNV
GLuint index
GLshort x
void glVertexAttrib1sv
GLuint index
const GLshort *v
void glVertexAttrib1svARB
GLuint index
const GLshort *v
void glVertexAttrib1svNV
GLuint index
const GLshort *v
void glVertexAttrib2d
GLuint index
GLdouble x
GLdouble y
void glVertexAttrib2dARB
GLuint index
GLdouble x
GLdouble y
void glVertexAttrib2dNV
GLuint index
GLdouble x
GLdouble y
void glVertexAttrib2dv
GLuint index
const GLdouble *v
void glVertexAttrib2dvARB
GLuint index
const GLdouble *v
void glVertexAttrib2dvNV
GLuint index
const GLdouble *v
void glVertexAttrib2f
GLuint index
GLfloat x
GLfloat y
void glVertexAttrib2fARB
GLuint index
GLfloat x
GLfloat y
void glVertexAttrib2fNV
GLuint index
GLfloat x
GLfloat y
void glVertexAttrib2fv
GLuint index
const GLfloat *v
void glVertexAttrib2fvARB
GLuint index
const GLfloat *v
void glVertexAttrib2fvNV
GLuint index
const GLfloat *v
void glVertexAttrib2hNV
GLuint index
GLhalfNV x
GLhalfNV y
void glVertexAttrib2hvNV
GLuint index
const GLhalfNV *v
void glVertexAttrib2s
GLuint index
GLshort x
GLshort y
void glVertexAttrib2sARB
GLuint index
GLshort x
GLshort y
void glVertexAttrib2sNV
GLuint index
GLshort x
GLshort y
void glVertexAttrib2sv
GLuint index
const GLshort *v
void glVertexAttrib2svARB
GLuint index
const GLshort *v
void glVertexAttrib2svNV
GLuint index
const GLshort *v
void glVertexAttrib3d
GLuint index
GLdouble x
GLdouble y
GLdouble z
void glVertexAttrib3dARB
GLuint index
GLdouble x
GLdouble y
GLdouble z
void glVertexAttrib3dNV
GLuint index
GLdouble x
GLdouble y
GLdouble z
void glVertexAttrib3dv
GLuint index
const GLdouble *v
void glVertexAttrib3dvARB
GLuint index
const GLdouble *v
void glVertexAttrib3dvNV
GLuint index
const GLdouble *v
void glVertexAttrib3f
GLuint index
GLfloat x
GLfloat y
GLfloat z
void glVertexAttrib3fARB
GLuint index
GLfloat x
GLfloat y
GLfloat z
void glVertexAttrib3fNV
GLuint index
GLfloat x
GLfloat y
GLfloat z
void glVertexAttrib3fv
GLuint index
const GLfloat *v
void glVertexAttrib3fvARB
GLuint index
const GLfloat *v
void glVertexAttrib3fvNV
GLuint index
const GLfloat *v
void glVertexAttrib3hNV
GLuint index
GLhalfNV x
GLhalfNV y
GLhalfNV z
void glVertexAttrib3hvNV
GLuint index
const GLhalfNV *v
void glVertexAttrib3s
GLuint index
GLshort x
GLshort y
GLshort z
void glVertexAttrib3sARB
GLuint index
GLshort x
GLshort y
GLshort z
void glVertexAttrib3sNV
GLuint index
GLshort x
GLshort y
GLshort z
void glVertexAttrib3sv
GLuint index
const GLshort *v
void glVertexAttrib3svARB
GLuint index
const GLshort *v
void glVertexAttrib3svNV
GLuint index
const GLshort *v
void glVertexAttrib4Nbv
GLuint index
const GLbyte *v
void glVertexAttrib4NbvARB
GLuint index
const GLbyte *v
void glVertexAttrib4Niv
GLuint index
const GLint *v
void glVertexAttrib4NivARB
GLuint index
const GLint *v
void glVertexAttrib4Nsv
GLuint index
const GLshort *v
void glVertexAttrib4NsvARB
GLuint index
const GLshort *v
void glVertexAttrib4Nub
GLuint index
GLubyte x
GLubyte y
GLubyte z
GLubyte w
void glVertexAttrib4NubARB
GLuint index
GLubyte x
GLubyte y
GLubyte z
GLubyte w
void glVertexAttrib4Nubv
GLuint index
const GLubyte *v
void glVertexAttrib4NubvARB
GLuint index
const GLubyte *v
void glVertexAttrib4Nuiv
GLuint index
const GLuint *v
void glVertexAttrib4NuivARB
GLuint index
const GLuint *v
void glVertexAttrib4Nusv
GLuint index
const GLushort *v
void glVertexAttrib4NusvARB
GLuint index
const GLushort *v
void glVertexAttrib4bv
GLuint index
const GLbyte *v
void glVertexAttrib4bvARB
GLuint index
const GLbyte *v
void glVertexAttrib4d
GLuint index
GLdouble x
GLdouble y
GLdouble z
GLdouble w
void glVertexAttrib4dARB
GLuint index
GLdouble x
GLdouble y
GLdouble z
GLdouble w
void glVertexAttrib4dNV
GLuint index
GLdouble x
GLdouble y
GLdouble z
GLdouble w
void glVertexAttrib4dv
GLuint index
const GLdouble *v
void glVertexAttrib4dvARB
GLuint index
const GLdouble *v
void glVertexAttrib4dvNV
GLuint index
const GLdouble *v
void glVertexAttrib4f
GLuint index
GLfloat x
GLfloat y
GLfloat z
GLfloat w
void glVertexAttrib4fARB
GLuint index
GLfloat x
GLfloat y
GLfloat z
GLfloat w
void glVertexAttrib4fNV
GLuint index
GLfloat x
GLfloat y
GLfloat z
GLfloat w
void glVertexAttrib4fv
GLuint index
const GLfloat *v
void glVertexAttrib4fvARB
GLuint index
const GLfloat *v
void glVertexAttrib4fvNV
GLuint index
const GLfloat *v
void glVertexAttrib4hNV
GLuint index
GLhalfNV x
GLhalfNV y
GLhalfNV z
GLhalfNV w
void glVertexAttrib4hvNV
GLuint index
const GLhalfNV *v
void glVertexAttrib4iv
GLuint index
const GLint *v
void glVertexAttrib4ivARB
GLuint index
const GLint *v
void glVertexAttrib4s
GLuint index
GLshort x
GLshort y
GLshort z
GLshort w
void glVertexAttrib4sARB
GLuint index
GLshort x
GLshort y
GLshort z
GLshort w
void glVertexAttrib4sNV
GLuint index
GLshort x
GLshort y
GLshort z
GLshort w
void glVertexAttrib4sv
GLuint index
const GLshort *v
void glVertexAttrib4svARB
GLuint index
const GLshort *v
void glVertexAttrib4svNV
GLuint index
const GLshort *v
void glVertexAttrib4ubNV
GLuint index
GLubyte x
GLubyte y
GLubyte z
GLubyte w
void glVertexAttrib4ubv
GLuint index
const GLubyte *v
void glVertexAttrib4ubvARB
GLuint index
const GLubyte *v
void glVertexAttrib4ubvNV
GLuint index
const GLubyte *v
void glVertexAttrib4uiv
GLuint index
const GLuint *v
void glVertexAttrib4uivARB
GLuint index
const GLuint *v
void glVertexAttrib4usv
GLuint index
const GLushort *v
void glVertexAttrib4usvARB
GLuint index
const GLushort *v
void glVertexAttribArrayObjectATI
GLuint index
GLint size
GLenum type
GLboolean normalized
GLsizei stride
GLuint buffer
GLuint offset
void glVertexAttribBinding
GLuint attribindex
GLuint bindingindex
void glVertexAttribDivisor
GLuint index
GLuint divisor
void glVertexAttribDivisorANGLE
GLuint index
GLuint divisor
void glVertexAttribDivisorARB
GLuint index
GLuint divisor
void glVertexAttribDivisorEXT
GLuint index
GLuint divisor
void glVertexAttribDivisorNV
GLuint index
GLuint divisor
void glVertexAttribFormat
GLuint attribindex
GLint size
GLenum type
GLboolean normalized
GLuint relativeoffset
void glVertexAttribFormatNV
GLuint index
GLint size
GLenum type
GLboolean normalized
GLsizei stride
void glVertexAttribI1i
GLuint index
GLint x
void glVertexAttribI1iEXT
GLuint index
GLint x
void glVertexAttribI1iv
GLuint index
const GLint *v
void glVertexAttribI1ivEXT
GLuint index
const GLint *v
void glVertexAttribI1ui
GLuint index
GLuint x
void glVertexAttribI1uiEXT
GLuint index
GLuint x
void glVertexAttribI1uiv
GLuint index
const GLuint *v
void glVertexAttribI1uivEXT
GLuint index
const GLuint *v
void glVertexAttribI2i
GLuint index
GLint x
GLint y
void glVertexAttribI2iEXT
GLuint index
GLint x
GLint y
void glVertexAttribI2iv
GLuint index
const GLint *v
void glVertexAttribI2ivEXT
GLuint index
const GLint *v
void glVertexAttribI2ui
GLuint index
GLuint x
GLuint y
void glVertexAttribI2uiEXT
GLuint index
GLuint x
GLuint y
void glVertexAttribI2uiv
GLuint index
const GLuint *v
void glVertexAttribI2uivEXT
GLuint index
const GLuint *v
void glVertexAttribI3i
GLuint index
GLint x
GLint y
GLint z
void glVertexAttribI3iEXT
GLuint index
GLint x
GLint y
GLint z
void glVertexAttribI3iv
GLuint index
const GLint *v
void glVertexAttribI3ivEXT
GLuint index
const GLint *v
void glVertexAttribI3ui
GLuint index
GLuint x
GLuint y
GLuint z
void glVertexAttribI3uiEXT
GLuint index
GLuint x
GLuint y
GLuint z
void glVertexAttribI3uiv
GLuint index
const GLuint *v
void glVertexAttribI3uivEXT
GLuint index
const GLuint *v
void glVertexAttribI4bv
GLuint index
const GLbyte *v
void glVertexAttribI4bvEXT
GLuint index
const GLbyte *v
void glVertexAttribI4i
GLuint index
GLint x
GLint y
GLint z
GLint w
void glVertexAttribI4iEXT
GLuint index
GLint x
GLint y
GLint z
GLint w
void glVertexAttribI4iv
GLuint index
const GLint *v
void glVertexAttribI4ivEXT
GLuint index
const GLint *v
void glVertexAttribI4sv
GLuint index
const GLshort *v
void glVertexAttribI4svEXT
GLuint index
const GLshort *v
void glVertexAttribI4ubv
GLuint index
const GLubyte *v
void glVertexAttribI4ubvEXT
GLuint index
const GLubyte *v
void glVertexAttribI4ui
GLuint index
GLuint x
GLuint y
GLuint z
GLuint w
void glVertexAttribI4uiEXT
GLuint index
GLuint x
GLuint y
GLuint z
GLuint w
void glVertexAttribI4uiv
GLuint index
const GLuint *v
void glVertexAttribI4uivEXT
GLuint index
const GLuint *v
void glVertexAttribI4usv
GLuint index
const GLushort *v
void glVertexAttribI4usvEXT
GLuint index
const GLushort *v
void glVertexAttribIFormat
GLuint attribindex
GLint size
GLenum type
GLuint relativeoffset
void glVertexAttribIFormatNV
GLuint index
GLint size
GLenum type
GLsizei stride
void glVertexAttribIPointer
GLuint index
GLint size
GLenum type
GLsizei stride
const void *pointer
void glVertexAttribIPointerEXT
GLuint index
GLint size
GLenum type
GLsizei stride
const void *pointer
void glVertexAttribL1d
GLuint index
GLdouble x
void glVertexAttribL1dEXT
GLuint index
GLdouble x
void glVertexAttribL1dv
GLuint index
const GLdouble *v
void glVertexAttribL1dvEXT
GLuint index
const GLdouble *v
void glVertexAttribL1i64NV
GLuint index
GLint64EXT x
void glVertexAttribL1i64vNV
GLuint index
const GLint64EXT *v
void glVertexAttribL1ui64ARB
GLuint index
GLuint64EXT x
void glVertexAttribL1ui64NV
GLuint index
GLuint64EXT x
void glVertexAttribL1ui64vARB
GLuint index
const GLuint64EXT *v
void glVertexAttribL1ui64vNV
GLuint index
const GLuint64EXT *v
void glVertexAttribL2d
GLuint index
GLdouble x
GLdouble y
void glVertexAttribL2dEXT
GLuint index
GLdouble x
GLdouble y
void glVertexAttribL2dv
GLuint index
const GLdouble *v
void glVertexAttribL2dvEXT
GLuint index
const GLdouble *v
void glVertexAttribL2i64NV
GLuint index
GLint64EXT x
GLint64EXT y
void glVertexAttribL2i64vNV
GLuint index
const GLint64EXT *v
void glVertexAttribL2ui64NV
GLuint index
GLuint64EXT x
GLuint64EXT y
void glVertexAttribL2ui64vNV
GLuint index
const GLuint64EXT *v
void glVertexAttribL3d
GLuint index
GLdouble x
GLdouble y
GLdouble z
void glVertexAttribL3dEXT
GLuint index
GLdouble x
GLdouble y
GLdouble z
void glVertexAttribL3dv
GLuint index
const GLdouble *v
void glVertexAttribL3dvEXT
GLuint index
const GLdouble *v
void glVertexAttribL3i64NV
GLuint index
GLint64EXT x
GLint64EXT y
GLint64EXT z
void glVertexAttribL3i64vNV
GLuint index
const GLint64EXT *v
void glVertexAttribL3ui64NV
GLuint index
GLuint64EXT x
GLuint64EXT y
GLuint64EXT z
void glVertexAttribL3ui64vNV
GLuint index
const GLuint64EXT *v
void glVertexAttribL4d
GLuint index
GLdouble x
GLdouble y
GLdouble z
GLdouble w
void glVertexAttribL4dEXT
GLuint index
GLdouble x
GLdouble y
GLdouble z
GLdouble w
void glVertexAttribL4dv
GLuint index
const GLdouble *v
void glVertexAttribL4dvEXT
GLuint index
const GLdouble *v
void glVertexAttribL4i64NV
GLuint index
GLint64EXT x
GLint64EXT y
GLint64EXT z
GLint64EXT w
void glVertexAttribL4i64vNV
GLuint index
const GLint64EXT *v
void glVertexAttribL4ui64NV
GLuint index
GLuint64EXT x
GLuint64EXT y
GLuint64EXT z
GLuint64EXT w
void glVertexAttribL4ui64vNV
GLuint index
const GLuint64EXT *v
void glVertexAttribLFormat
GLuint attribindex
GLint size
GLenum type
GLuint relativeoffset
void glVertexAttribLFormatNV
GLuint index
GLint size
GLenum type
GLsizei stride
void glVertexAttribLPointer
GLuint index
GLint size
GLenum type
GLsizei stride
const void *pointer
void glVertexAttribLPointerEXT
GLuint index
GLint size
GLenum type
GLsizei stride
const void *pointer
void glVertexAttribP1ui
GLuint index
GLenum type
GLboolean normalized
GLuint value
void glVertexAttribP1uiv
GLuint index
GLenum type
GLboolean normalized
const GLuint *value
void glVertexAttribP2ui
GLuint index
GLenum type
GLboolean normalized
GLuint value
void glVertexAttribP2uiv
GLuint index
GLenum type
GLboolean normalized
const GLuint *value
void glVertexAttribP3ui
GLuint index
GLenum type
GLboolean normalized
GLuint value
void glVertexAttribP3uiv
GLuint index
GLenum type
GLboolean normalized
const GLuint *value
void glVertexAttribP4ui
GLuint index
GLenum type
GLboolean normalized
GLuint value
void glVertexAttribP4uiv
GLuint index
GLenum type
GLboolean normalized
const GLuint *value
void glVertexAttribParameteriAMD
GLuint index
GLenum pname
GLint param
void glVertexAttribPointer
GLuint index
GLint size
GLenum type
GLboolean normalized
GLsizei stride
const void *pointer
void glVertexAttribPointerARB
GLuint index
GLint size
GLenum type
GLboolean normalized
GLsizei stride
const void *pointer
void glVertexAttribPointerNV
GLuint index
GLint fsize
GLenum type
GLsizei stride
const void *pointer
void glVertexAttribs1dvNV
GLuint index
GLsizei count
const GLdouble *v
void glVertexAttribs1fvNV
GLuint index
GLsizei count
const GLfloat *v
void glVertexAttribs1hvNV
GLuint index
GLsizei n
const GLhalfNV *v
void glVertexAttribs1svNV
GLuint index
GLsizei count
const GLshort *v
void glVertexAttribs2dvNV
GLuint index
GLsizei count
const GLdouble *v
void glVertexAttribs2fvNV
GLuint index
GLsizei count
const GLfloat *v
void glVertexAttribs2hvNV
GLuint index
GLsizei n
const GLhalfNV *v
void glVertexAttribs2svNV
GLuint index
GLsizei count
const GLshort *v
void glVertexAttribs3dvNV
GLuint index
GLsizei count
const GLdouble *v
void glVertexAttribs3fvNV
GLuint index
GLsizei count
const GLfloat *v
void glVertexAttribs3hvNV
GLuint index
GLsizei n
const GLhalfNV *v
void glVertexAttribs3svNV
GLuint index
GLsizei count
const GLshort *v
void glVertexAttribs4dvNV
GLuint index
GLsizei count
const GLdouble *v
void glVertexAttribs4fvNV
GLuint index
GLsizei count
const GLfloat *v
void glVertexAttribs4hvNV
GLuint index
GLsizei n
const GLhalfNV *v
void glVertexAttribs4svNV
GLuint index
GLsizei count
const GLshort *v
void glVertexAttribs4ubvNV
GLuint index
GLsizei count
const GLubyte *v
void glVertexBindingDivisor
GLuint bindingindex
GLuint divisor
void glVertexBlendARB
GLint count
void glVertexBlendEnvfATI
GLenum pname
GLfloat param
void glVertexBlendEnviATI
GLenum pname
GLint param
void glVertexFormatNV
GLint size
GLenum type
GLsizei stride
void glVertexP2ui
GLenum type
GLuint value
void glVertexP2uiv
GLenum type
const GLuint *value
void glVertexP3ui
GLenum type
GLuint value
void glVertexP3uiv
GLenum type
const GLuint *value
void glVertexP4ui
GLenum type
GLuint value
void glVertexP4uiv
GLenum type
const GLuint *value
void glVertexPointer
GLint size
GLenum type
GLsizei stride
const void *pointer
void glVertexPointerEXT
GLint size
GLenum type
GLsizei stride
GLsizei count
const void *pointer
void glVertexPointerListIBM
GLint size
GLenum type
GLint stride
const void **pointer
GLint ptrstride
void glVertexPointervINTEL
GLint size
GLenum type
const void **pointer
void glVertexStream1dATI
GLenum stream
GLdouble x
void glVertexStream1dvATI
GLenum stream
const GLdouble *coords
void glVertexStream1fATI
GLenum stream
GLfloat x
void glVertexStream1fvATI
GLenum stream
const GLfloat *coords
void glVertexStream1iATI
GLenum stream
GLint x
void glVertexStream1ivATI
GLenum stream
const GLint *coords
void glVertexStream1sATI
GLenum stream
GLshort x
void glVertexStream1svATI
GLenum stream
const GLshort *coords
void glVertexStream2dATI
GLenum stream
GLdouble x
GLdouble y
void glVertexStream2dvATI
GLenum stream
const GLdouble *coords
void glVertexStream2fATI
GLenum stream
GLfloat x
GLfloat y
void glVertexStream2fvATI
GLenum stream
const GLfloat *coords
void glVertexStream2iATI
GLenum stream
GLint x
GLint y
void glVertexStream2ivATI
GLenum stream
const GLint *coords
void glVertexStream2sATI
GLenum stream
GLshort x
GLshort y
void glVertexStream2svATI
GLenum stream
const GLshort *coords
void glVertexStream3dATI
GLenum stream
GLdouble x
GLdouble y
GLdouble z
void glVertexStream3dvATI
GLenum stream
const GLdouble *coords
void glVertexStream3fATI
GLenum stream
GLfloat x
GLfloat y
GLfloat z
void glVertexStream3fvATI
GLenum stream
const GLfloat *coords
void glVertexStream3iATI
GLenum stream
GLint x
GLint y
GLint z
void glVertexStream3ivATI
GLenum stream
const GLint *coords
void glVertexStream3sATI
GLenum stream
GLshort x
GLshort y
GLshort z
void glVertexStream3svATI
GLenum stream
const GLshort *coords
void glVertexStream4dATI
GLenum stream
GLdouble x
GLdouble y
GLdouble z
GLdouble w
void glVertexStream4dvATI
GLenum stream
const GLdouble *coords
void glVertexStream4fATI
GLenum stream
GLfloat x
GLfloat y
GLfloat z
GLfloat w
void glVertexStream4fvATI
GLenum stream
const GLfloat *coords
void glVertexStream4iATI
GLenum stream
GLint x
GLint y
GLint z
GLint w
void glVertexStream4ivATI
GLenum stream
const GLint *coords
void glVertexStream4sATI
GLenum stream
GLshort x
GLshort y
GLshort z
GLshort w
void glVertexStream4svATI
GLenum stream
const GLshort *coords
void glVertexWeightPointerEXT
GLint size
GLenum type
GLsizei stride
const void *pointer
void glVertexWeightfEXT
GLfloat weight
void glVertexWeightfvEXT
const GLfloat *weight
void glVertexWeighthNV
GLhalfNV weight
void glVertexWeighthvNV
const GLhalfNV *weight
GLenum glVideoCaptureNV
GLuint video_capture_slot
GLuint *sequence_num
GLuint64EXT *capture_time
void glVideoCaptureStreamParameterdvNV
GLuint video_capture_slot
GLuint stream
GLenum pname
const GLdouble *params
void glVideoCaptureStreamParameterfvNV
GLuint video_capture_slot
GLuint stream
GLenum pname
const GLfloat *params
void glVideoCaptureStreamParameterivNV
GLuint video_capture_slot
GLuint stream
GLenum pname
const GLint *params
void glViewport
GLint x
GLint y
GLsizei width
GLsizei height
void glViewportArrayv
GLuint first
GLsizei count
const GLfloat *v
void glViewportArrayvNV
GLuint first
GLsizei count
const GLfloat *v
void glViewportArrayvOES
GLuint first
GLsizei count
const GLfloat *v
void glViewportIndexedf
GLuint index
GLfloat x
GLfloat y
GLfloat w
GLfloat h
void glViewportIndexedfOES
GLuint index
GLfloat x
GLfloat y
GLfloat w
GLfloat h
void glViewportIndexedfNV
GLuint index
GLfloat x
GLfloat y
GLfloat w
GLfloat h
void glViewportIndexedfv
GLuint index
const GLfloat *v
void glViewportIndexedfvOES
GLuint index
const GLfloat *v
void glViewportIndexedfvNV
GLuint index
const GLfloat *v
void glViewportPositionWScaleNV
GLuint index
GLfloat xcoeff
GLfloat ycoeff
void glViewportSwizzleNV
GLuint index
GLenum swizzlex
GLenum swizzley
GLenum swizzlez
GLenum swizzlew
void glWaitSemaphoreEXT
GLuint semaphore
GLuint numBufferBarriers
const GLuint *buffers
GLuint numTextureBarriers
const GLuint *textures
const GLenum *srcLayouts
void glWaitSemaphoreui64NVX
GLuint waitGpu
GLsizei fenceObjectCount
const GLuint *semaphoreArray
const GLuint64 *fenceValueArray
void glWaitSync
GLsync sync
GLbitfield flags
GLuint64 timeout
void glWaitSyncAPPLE
GLsync sync
GLbitfield flags
GLuint64 timeout
void glWeightPathsNV
GLuint resultPath
GLsizei numPaths
const GLuint *paths
const GLfloat *weights
void glWeightPointerARB
GLint size
GLenum type
GLsizei stride
const void *pointer
void glWeightPointerOES
GLint size
GLenum type
GLsizei stride
const void *pointer
void glWeightbvARB
GLint size
const GLbyte *weights
void glWeightdvARB
GLint size
const GLdouble *weights
void glWeightfvARB
GLint size
const GLfloat *weights
void glWeightivARB
GLint size
const GLint *weights
void glWeightsvARB
GLint size
const GLshort *weights
void glWeightubvARB
GLint size
const GLubyte *weights
void glWeightuivARB
GLint size
const GLuint *weights
void glWeightusvARB
GLint size
const GLushort *weights
void glWindowPos2d
GLdouble x
GLdouble y
void glWindowPos2dARB
GLdouble x
GLdouble y
void glWindowPos2dMESA
GLdouble x
GLdouble y
void glWindowPos2dv
const GLdouble *v
void glWindowPos2dvARB
const GLdouble *v
void glWindowPos2dvMESA
const GLdouble *v
void glWindowPos2f
GLfloat x
GLfloat y
void glWindowPos2fARB
GLfloat x
GLfloat y
void glWindowPos2fMESA
GLfloat x
GLfloat y
void glWindowPos2fv
const GLfloat *v
void glWindowPos2fvARB
const GLfloat *v
void glWindowPos2fvMESA
const GLfloat *v
void glWindowPos2i
GLint x
GLint y
void glWindowPos2iARB
GLint x
GLint y
void glWindowPos2iMESA
GLint x
GLint y
void glWindowPos2iv
const GLint *v
void glWindowPos2ivARB
const GLint *v
void glWindowPos2ivMESA
const GLint *v
void glWindowPos2s
GLshort x
GLshort y
void glWindowPos2sARB
GLshort x
GLshort y
void glWindowPos2sMESA
GLshort x
GLshort y
void glWindowPos2sv
const GLshort *v
void glWindowPos2svARB
const GLshort *v
void glWindowPos2svMESA
const GLshort *v
void glWindowPos3d
GLdouble x
GLdouble y
GLdouble z
void glWindowPos3dARB
GLdouble x
GLdouble y
GLdouble z
void glWindowPos3dMESA
GLdouble x
GLdouble y
GLdouble z
void glWindowPos3dv
const GLdouble *v
void glWindowPos3dvARB
const GLdouble *v
void glWindowPos3dvMESA
const GLdouble *v
void glWindowPos3f
GLfloat x
GLfloat y
GLfloat z
void glWindowPos3fARB
GLfloat x
GLfloat y
GLfloat z
void glWindowPos3fMESA
GLfloat x
GLfloat y
GLfloat z
void glWindowPos3fv
const GLfloat *v
void glWindowPos3fvARB
const GLfloat *v
void glWindowPos3fvMESA
const GLfloat *v
void glWindowPos3i
GLint x
GLint y
GLint z
void glWindowPos3iARB
GLint x
GLint y
GLint z
void glWindowPos3iMESA
GLint x
GLint y
GLint z
void glWindowPos3iv
const GLint *v
void glWindowPos3ivARB
const GLint *v
void glWindowPos3ivMESA
const GLint *v
void glWindowPos3s
GLshort x
GLshort y
GLshort z
void glWindowPos3sARB
GLshort x
GLshort y
GLshort z
void glWindowPos3sMESA
GLshort x
GLshort y
GLshort z
void glWindowPos3sv
const GLshort *v
void glWindowPos3svARB
const GLshort *v
void glWindowPos3svMESA
const GLshort *v
void glWindowPos4dMESA
GLdouble x
GLdouble y
GLdouble z
GLdouble w
void glWindowPos4dvMESA
const GLdouble *v
void glWindowPos4fMESA
GLfloat x
GLfloat y
GLfloat z
GLfloat w
void glWindowPos4fvMESA
const GLfloat *v
void glWindowPos4iMESA
GLint x
GLint y
GLint z
GLint w
void glWindowPos4ivMESA
const GLint *v
void glWindowPos4sMESA
GLshort x
GLshort y
GLshort z
GLshort w
void glWindowPos4svMESA
const GLshort *v
void glWindowRectanglesEXT
GLenum mode
GLsizei count
const GLint *box
void glWriteMaskEXT
GLuint res
GLuint in
GLenum outX
GLenum outY
GLenum outZ
GLenum outW
void glDrawVkImageNV
GLuint64 vkImage
GLuint sampler
GLfloat x0
GLfloat y0
GLfloat x1
GLfloat y1
GLfloat z
GLfloat s0
GLfloat t0
GLfloat s1
GLfloat t1
GLVULKANPROCNV glGetVkProcAddrNV
const GLchar *name
void glWaitVkSemaphoreNV
GLuint64 vkSemaphore
void glSignalVkSemaphoreNV
GLuint64 vkSemaphore
void glSignalVkFenceNV
GLuint64 vkFence
void glFramebufferParameteriMESA
GLenum target
GLenum pname
GLint param
void glGetFramebufferParameterivMESA
GLenum target
GLenum pname
GLint *params
3p-libepoxy-master/libepoxy/registry/glx.xml 0000664 0000000 0000000 00000337673 14156730761 0021576 0 ustar 00root root 0000000 0000000
Copyright (c) 2013-2018 The Khronos Group Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
------------------------------------------------------------------------
This file, glx.xml, is the GLX API Registry. The canonical version of the
registry, together with documentation, schema, and Python generator scripts
used to generate C header files for GLX, can always be found in the Khronos
Registry at
https://github.com/KhronosGroup/OpenGL-Registry
= 199901L
#include
#elif defined(__sun__) || defined(__digital__)
#include
#if defined(__STDC__)
#if defined(__arch64__) || defined(_LP64)
typedef long int int64_t;
typedef unsigned long int uint64_t;
#else
typedef long long int int64_t;
typedef unsigned long long int uint64_t;
#endif /* __arch64__ */
#endif /* __STDC__ */
#elif defined( __VMS ) || defined(__sgi)
#include
#elif defined(__SCO__) || defined(__USLC__)
#include
#elif defined(__UNIXOS2__) || defined(__SOL64__)
typedef long int int32_t;
typedef long long int int64_t;
typedef unsigned long long int uint64_t;
#elif defined(_WIN32) && defined(__GNUC__)
#include
#elif defined(_WIN32)
typedef __int32 int32_t;
typedef __int64 int64_t;
typedef unsigned __int64 uint64_t;
#else
/* Fallback if nothing above works */
#include
#endif
#endif]]>
typedef XID GLXFBConfigID;
typedef struct __GLXFBConfigRec *GLXFBConfig;
typedef XID GLXContextID;
typedef struct __GLXcontextRec *GLXContext;
typedef XID GLXPixmap;
typedef XID GLXDrawable;
typedef XID GLXWindow;
typedef XID GLXPbuffer;
typedef void ( *__GLXextFuncPtr)(void);
typedef XID GLXVideoCaptureDeviceNV;
typedef unsigned int GLXVideoDeviceNV;
typedef XID GLXVideoSourceSGIX;
typedef XID GLXFBConfigIDSGIX;
typedef struct __GLXFBConfigRec *GLXFBConfigSGIX;
typedef XID GLXPbufferSGIX;
typedef struct {
int event_type; /* GLX_DAMAGED or GLX_SAVED */
int draw_type; /* GLX_WINDOW or GLX_PBUFFER */
unsigned long serial; /* # of last request processed by server */
Bool send_event; /* true if this came for SendEvent request */
Display *display; /* display the event was read from */
GLXDrawable drawable; /* XID of Drawable */
unsigned int buffer_mask; /* mask indicating which buffers are affected */
unsigned int aux_buffer; /* which aux buffer was affected */
int x, y;
int width, height;
int count; /* if nonzero, at least this many more */
} GLXPbufferClobberEvent;
typedef struct {
int type;
unsigned long serial; /* # of last request processed by server */
Bool send_event; /* true if this came from a SendEvent request */
Display *display; /* Display the event was read from */
GLXDrawable drawable; /* drawable on which event was requested in event mask */
int event_type;
int64_t ust;
int64_t msc;
int64_t sbc;
} GLXBufferSwapComplete;
typedef union __GLXEvent {
GLXPbufferClobberEvent glxpbufferclobber;
GLXBufferSwapComplete glxbufferswapcomplete;
long pad[24];
} GLXEvent;
typedef struct {
int type;
unsigned long serial;
Bool send_event;
Display *display;
int extension;
int evtype;
GLXDrawable window;
Bool stereo_tree;
} GLXStereoNotifyEventEXT;
typedef struct {
int type;
unsigned long serial; /* # of last request processed by server */
Bool send_event; /* true if this came for SendEvent request */
Display *display; /* display the event was read from */
GLXDrawable drawable; /* i.d. of Drawable */
int event_type; /* GLX_DAMAGED_SGIX or GLX_SAVED_SGIX */
int draw_type; /* GLX_WINDOW_SGIX or GLX_PBUFFER_SGIX */
unsigned int mask; /* mask indicating which buffers are affected*/
int x, y;
int width, height;
int count; /* if nonzero, at least this many more */
} GLXBufferClobberEventSGIX;
typedef struct {
char pipeName[80]; /* Should be [GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] */
int networkId;
} GLXHyperpipeNetworkSGIX;
typedef struct {
char pipeName[80]; /* Should be [GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] */
int channel;
unsigned int participationType;
int timeSlice;
} GLXHyperpipeConfigSGIX;
typedef struct {
char pipeName[80]; /* Should be [GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] */
int srcXOrigin, srcYOrigin, srcWidth, srcHeight;
int destXOrigin, destYOrigin, destWidth, destHeight;
} GLXPipeRect;
typedef struct {
char pipeName[80]; /* Should be [GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] */
int XOrigin, YOrigin, maxHeight, maxWidth;
} GLXPipeRectLimits;
Bool glXAssociateDMPbufferSGIX
Display *dpy
GLXPbufferSGIX pbuffer
DMparams *params
DMbuffer dmbuffer
int glXBindChannelToWindowSGIX
Display *display
int screen
int channel
Window window
int glXBindHyperpipeSGIX
Display *dpy
int hpId
Bool glXBindSwapBarrierNV
Display *dpy
GLuint group
GLuint barrier
void glXBindSwapBarrierSGIX
Display *dpy
GLXDrawable drawable
int barrier
void glXBindTexImageEXT
Display *dpy
GLXDrawable drawable
int buffer
const int *attrib_list
int glXBindVideoCaptureDeviceNV
Display *dpy
unsigned int video_capture_slot
GLXVideoCaptureDeviceNV device
int glXBindVideoDeviceNV
Display *dpy
unsigned int video_slot
unsigned int video_device
const int *attrib_list
int glXBindVideoImageNV
Display *dpy
GLXVideoDeviceNV VideoDevice
GLXPbuffer pbuf
int iVideoBuffer
void glXBlitContextFramebufferAMD
GLXContext dstCtx
GLint srcX0
GLint srcY0
GLint srcX1
GLint srcY1
GLint dstX0
GLint dstY0
GLint dstX1
GLint dstY1
GLbitfield mask
GLenum filter
int glXChannelRectSGIX
Display *display
int screen
int channel
int x
int y
int w
int h
int glXChannelRectSyncSGIX
Display *display
int screen
int channel
GLenum synctype
GLXFBConfig *glXChooseFBConfig
Display *dpy
int screen
const int *attrib_list
int *nelements
GLXFBConfigSGIX *glXChooseFBConfigSGIX
Display *dpy
int screen
int *attrib_list
int *nelements
XVisualInfo *glXChooseVisual
Display *dpy
int screen
int *attribList
void glXCopyBufferSubDataNV
Display *dpy
GLXContext readCtx
GLXContext writeCtx
GLenum readTarget
GLenum writeTarget
GLintptr readOffset
GLintptr writeOffset
GLsizeiptr size
void glXNamedCopyBufferSubDataNV
Display *dpy
GLXContext readCtx
GLXContext writeCtx
GLuint readBuffer
GLuint writeBuffer
GLintptr readOffset
GLintptr writeOffset
GLsizeiptr size
void glXCopyContext
Display *dpy
GLXContext src
GLXContext dst
unsigned long mask
void glXCopyImageSubDataNV
Display *dpy
GLXContext srcCtx
GLuint srcName
GLenum srcTarget
GLint srcLevel
GLint srcX
GLint srcY
GLint srcZ
GLXContext dstCtx
GLuint dstName
GLenum dstTarget
GLint dstLevel
GLint dstX
GLint dstY
GLint dstZ
GLsizei width
GLsizei height
GLsizei depth
void glXCopySubBufferMESA
Display *dpy
GLXDrawable drawable
int x
int y
int width
int height
GLXContext glXCreateAssociatedContextAMD
unsigned int id
GLXContext share_list
GLXContext glXCreateAssociatedContextAttribsAMD
unsigned int id
GLXContext share_context
const int *attribList
GLXContext glXCreateContextAttribsARB
Display *dpy
GLXFBConfig config
GLXContext share_context
Bool direct
const int *attrib_list
GLXContext glXCreateContext
Display *dpy
XVisualInfo *vis
GLXContext shareList
Bool direct
GLXContext glXCreateContextWithConfigSGIX
Display *dpy
GLXFBConfigSGIX config
int render_type
GLXContext share_list
Bool direct
GLXPbufferSGIX glXCreateGLXPbufferSGIX
Display *dpy
GLXFBConfigSGIX config
unsigned int width
unsigned int height
int *attrib_list
GLXPixmap glXCreateGLXPixmap
Display *dpy
XVisualInfo *visual
Pixmap pixmap
GLXPixmap glXCreateGLXPixmapMESA
Display *dpy
XVisualInfo *visual
Pixmap pixmap
Colormap cmap
GLXPixmap glXCreateGLXPixmapWithConfigSGIX
Display *dpy
GLXFBConfigSGIX config
Pixmap pixmap
GLXVideoSourceSGIX glXCreateGLXVideoSourceSGIX
Display *display
int screen
VLServer server
VLPath path
int nodeClass
VLNode drainNode
GLXContext glXCreateNewContext
Display *dpy
GLXFBConfig config
int render_type
GLXContext share_list
Bool direct
GLXPbuffer glXCreatePbuffer
Display *dpy
GLXFBConfig config
const int *attrib_list
GLXPixmap glXCreatePixmap
Display *dpy
GLXFBConfig config
Pixmap pixmap
const int *attrib_list
GLXWindow glXCreateWindow
Display *dpy
GLXFBConfig config
Window win
const int *attrib_list
void glXCushionSGI
Display *dpy
Window window
float cushion
Bool glXDelayBeforeSwapNV
Display *dpy
GLXDrawable drawable
GLfloat seconds
Bool glXDeleteAssociatedContextAMD
GLXContext ctx
void glXDestroyContext
Display *dpy
GLXContext ctx
void glXDestroyGLXPbufferSGIX
Display *dpy
GLXPbufferSGIX pbuf
void glXDestroyGLXPixmap
Display *dpy
GLXPixmap pixmap
void glXDestroyGLXVideoSourceSGIX
Display *dpy
GLXVideoSourceSGIX glxvideosource
int glXDestroyHyperpipeConfigSGIX
Display *dpy
int hpId
void glXDestroyPbuffer
Display *dpy
GLXPbuffer pbuf
void glXDestroyPixmap
Display *dpy
GLXPixmap pixmap
void glXDestroyWindow
Display *dpy
GLXWindow win
GLXVideoCaptureDeviceNV *glXEnumerateVideoCaptureDevicesNV
Display *dpy
int screen
int *nelements
unsigned int *glXEnumerateVideoDevicesNV
Display *dpy
int screen
int *nelements
void glXFreeContextEXT
Display *dpy
GLXContext context
unsigned int glXGetAGPOffsetMESA
const void *pointer
const char *glXGetClientString
Display *dpy
int name
int glXGetConfig
Display *dpy
XVisualInfo *visual
int attrib
int *value
unsigned int glXGetContextGPUIDAMD
GLXContext ctx
GLXContextID glXGetContextIDEXT
const GLXContext context
GLXContext glXGetCurrentAssociatedContextAMD
GLXContext glXGetCurrentContext
Display *glXGetCurrentDisplayEXT
Display *glXGetCurrentDisplay
GLXDrawable glXGetCurrentDrawable
GLXDrawable glXGetCurrentReadDrawableSGI
GLXDrawable glXGetCurrentReadDrawable
int glXGetFBConfigAttrib
Display *dpy
GLXFBConfig config
int attribute
int *value
int glXGetFBConfigAttribSGIX
Display *dpy
GLXFBConfigSGIX config
int attribute
int *value
GLXFBConfigSGIX glXGetFBConfigFromVisualSGIX
Display *dpy
XVisualInfo *vis
GLXFBConfig *glXGetFBConfigs
Display *dpy
int screen
int *nelements
unsigned int glXGetGPUIDsAMD
unsigned int maxCount
unsigned int *ids
int glXGetGPUInfoAMD
unsigned int id
int property
GLenum dataType
unsigned int size
void *data
Bool glXGetMscRateOML
Display *dpy
GLXDrawable drawable
int32_t *numerator
int32_t *denominator
__GLXextFuncPtr glXGetProcAddressARB
const GLubyte *procName
__GLXextFuncPtr glXGetProcAddress
const GLubyte *procName
void glXGetSelectedEvent
Display *dpy
GLXDrawable draw
unsigned long *event_mask
void glXGetSelectedEventSGIX
Display *dpy
GLXDrawable drawable
unsigned long *mask
int glXGetSwapIntervalMESA
Bool glXGetSyncValuesOML
Display *dpy
GLXDrawable drawable
int64_t *ust
int64_t *msc
int64_t *sbc
Status glXGetTransparentIndexSUN
Display *dpy
Window overlay
Window underlay
unsigned long *pTransparentIndex
int glXGetVideoDeviceNV
Display *dpy
int screen
int numVideoDevices
GLXVideoDeviceNV *pVideoDevice
int glXGetVideoInfoNV
Display *dpy
int screen
GLXVideoDeviceNV VideoDevice
unsigned long *pulCounterOutputPbuffer
unsigned long *pulCounterOutputVideo
int glXGetVideoSyncSGI
unsigned int *count
XVisualInfo *glXGetVisualFromFBConfig
Display *dpy
GLXFBConfig config
XVisualInfo *glXGetVisualFromFBConfigSGIX
Display *dpy
GLXFBConfigSGIX config
int glXHyperpipeAttribSGIX
Display *dpy
int timeSlice
int attrib
int size
void *attribList
int glXHyperpipeConfigSGIX
Display *dpy
int networkId
int npipes
GLXHyperpipeConfigSGIX *cfg
int *hpId
GLXContext glXImportContextEXT
Display *dpy
GLXContextID contextID
Bool glXIsDirect
Display *dpy
GLXContext ctx
Bool glXJoinSwapGroupNV
Display *dpy
GLXDrawable drawable
GLuint group
void glXJoinSwapGroupSGIX
Display *dpy
GLXDrawable drawable
GLXDrawable member
void glXLockVideoCaptureDeviceNV
Display *dpy
GLXVideoCaptureDeviceNV device
Bool glXMakeAssociatedContextCurrentAMD
GLXContext ctx
Bool glXMakeContextCurrent
Display *dpy
GLXDrawable draw
GLXDrawable read
GLXContext ctx
Bool glXMakeCurrent
Display *dpy
GLXDrawable drawable
GLXContext ctx
Bool glXMakeCurrentReadSGI
Display *dpy
GLXDrawable draw
GLXDrawable read
GLXContext ctx
int glXQueryChannelDeltasSGIX
Display *display
int screen
int channel
int *x
int *y
int *w
int *h
int glXQueryChannelRectSGIX
Display *display
int screen
int channel
int *dx
int *dy
int *dw
int *dh
int glXQueryContext
Display *dpy
GLXContext ctx
int attribute
int *value
int glXQueryContextInfoEXT
Display *dpy
GLXContext context
int attribute
int *value
Bool glXQueryCurrentRendererIntegerMESA
int attribute
unsigned int *value
const char *glXQueryCurrentRendererStringMESA
int attribute
void glXQueryDrawable
Display *dpy
GLXDrawable draw
int attribute
unsigned int *value
Bool glXQueryExtension
Display *dpy
int *errorb
int *event
const char *glXQueryExtensionsString
Display *dpy
int screen
Bool glXQueryFrameCountNV
Display *dpy
int screen
GLuint *count
void glXQueryGLXPbufferSGIX
Display *dpy
GLXPbufferSGIX pbuf
int attribute
unsigned int *value
int glXQueryHyperpipeAttribSGIX
Display *dpy
int timeSlice
int attrib
int size
void *returnAttribList
int glXQueryHyperpipeBestAttribSGIX
Display *dpy
int timeSlice
int attrib
int size
void *attribList
void *returnAttribList
GLXHyperpipeConfigSGIX *glXQueryHyperpipeConfigSGIX
Display *dpy
int hpId
int *npipes
GLXHyperpipeNetworkSGIX *glXQueryHyperpipeNetworkSGIX
Display *dpy
int *npipes
Bool glXQueryMaxSwapBarriersSGIX
Display *dpy
int screen
int *max
Bool glXQueryMaxSwapGroupsNV
Display *dpy
int screen
GLuint *maxGroups
GLuint *maxBarriers
Bool glXQueryRendererIntegerMESA
Display *dpy
int screen
int renderer
int attribute
unsigned int *value
const char *glXQueryRendererStringMESA
Display *dpy
int screen
int renderer
int attribute
const char *glXQueryServerString
Display *dpy
int screen
int name
Bool glXQuerySwapGroupNV
Display *dpy
GLXDrawable drawable
GLuint *group
GLuint *barrier
Bool glXQueryVersion
Display *dpy
int *maj
int *min
int glXQueryVideoCaptureDeviceNV
Display *dpy
GLXVideoCaptureDeviceNV device
int attribute
int *value
Bool glXReleaseBuffersMESA
Display *dpy
GLXDrawable drawable
void glXReleaseTexImageEXT
Display *dpy
GLXDrawable drawable
int buffer
void glXReleaseVideoCaptureDeviceNV
Display *dpy
GLXVideoCaptureDeviceNV device
int glXReleaseVideoDeviceNV
Display *dpy
int screen
GLXVideoDeviceNV VideoDevice
int glXReleaseVideoImageNV
Display *dpy
GLXPbuffer pbuf
Bool glXResetFrameCountNV
Display *dpy
int screen
void glXSelectEvent
Display *dpy
GLXDrawable draw
unsigned long event_mask
void glXSelectEventSGIX
Display *dpy
GLXDrawable drawable
unsigned long mask
int glXSendPbufferToVideoNV
Display *dpy
GLXPbuffer pbuf
int iBufferType
unsigned long *pulCounterPbuffer
GLboolean bBlock
GLboolean glXSet3DfxModeMESA
GLint mode
void glXSwapBuffers
Display *dpy
GLXDrawable drawable
int64_t glXSwapBuffersMscOML
Display *dpy
GLXDrawable drawable
int64_t target_msc
int64_t divisor
int64_t remainder
int glXSwapIntervalMESA
unsigned int interval
void glXSwapIntervalEXT
Display *dpy
GLXDrawable drawable
int interval
int glXSwapIntervalSGI
int interval
void glXUseXFont
Font font
int first
int count
int list
Bool glXWaitForMscOML
Display *dpy
GLXDrawable drawable
int64_t target_msc
int64_t divisor
int64_t remainder
int64_t *ust
int64_t *msc
int64_t *sbc
Bool glXWaitForSbcOML
Display *dpy
GLXDrawable drawable
int64_t target_sbc
int64_t *ust
int64_t *msc
int64_t *sbc
void glXWaitGL
int glXWaitVideoSyncSGI
int divisor
int remainder
unsigned int *count
void glXWaitX
3p-libepoxy-master/libepoxy/registry/wgl.xml 0000664 0000000 0000000 00000315051 14156730761 0021557 0 ustar 00root root 0000000 0000000
Copyright (c) 2013-2018 The Khronos Group Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
------------------------------------------------------------------------
This file, wgl.xml, is the WGL API Registry. The older ".spec" file
format has been retired and will no longer be updated with new
extensions and API versions. The canonical version of the registry,
together with documentation, schema, and Python generator scripts used
to generate C header files for WGL, can always be found in the Khronos
Registry at
https://github.com/KhronosGroup/OpenGL-Registry
struct _GPU_DEVICE {
DWORD cb;
CHAR DeviceName[32];
CHAR DeviceString[128];
DWORD Flags;
RECT rcVirtualScreen;
};
DECLARE_HANDLE(HPBUFFERARB);
DECLARE_HANDLE(HPBUFFEREXT);
DECLARE_HANDLE(HVIDEOOUTPUTDEVICENV);
DECLARE_HANDLE(HPVIDEODEV);
DECLARE_HANDLE(HPGPUNV);
DECLARE_HANDLE(HGPUNV);
DECLARE_HANDLE(HVIDEOINPUTDEVICENV);
typedef struct _GPU_DEVICE GPU_DEVICE;
typedef struct _GPU_DEVICE *PGPU_DEVICE;
int ChoosePixelFormat
HDC hDc
const PIXELFORMATDESCRIPTOR *pPfd
int DescribePixelFormat
HDC hdc
int ipfd
UINT cjpfd
const PIXELFORMATDESCRIPTOR *ppfd
int GetPixelFormat
HDC hdc
BOOL SetPixelFormat
HDC hdc
int ipfd
const PIXELFORMATDESCRIPTOR *ppfd
BOOL SwapBuffers
HDC hdc
void *wglAllocateMemoryNV
GLsizei size
GLfloat readfreq
GLfloat writefreq
GLfloat priority
BOOL wglAssociateImageBufferEventsI3D
HDC hDC
const HANDLE *pEvent
const LPVOID *pAddress
const DWORD *pSize
UINT count
BOOL wglBeginFrameTrackingI3D
GLboolean wglBindDisplayColorTableEXT
GLushort id
BOOL wglBindSwapBarrierNV
GLuint group
GLuint barrier
BOOL wglBindTexImageARB
HPBUFFERARB hPbuffer
int iBuffer
BOOL wglBindVideoCaptureDeviceNV
UINT uVideoSlot
HVIDEOINPUTDEVICENV hDevice
BOOL wglBindVideoDeviceNV
HDC hDc
unsigned int uVideoSlot
HVIDEOOUTPUTDEVICENV hVideoDevice
const int *piAttribList
BOOL wglBindVideoImageNV
HPVIDEODEV hVideoDevice
HPBUFFERARB hPbuffer
int iVideoBuffer
VOID wglBlitContextFramebufferAMD
HGLRC dstCtx
GLint srcX0
GLint srcY0
GLint srcX1
GLint srcY1
GLint dstX0
GLint dstY0
GLint dstX1
GLint dstY1
GLbitfield mask
GLenum filter
BOOL wglChoosePixelFormatARB
HDC hdc
const int *piAttribIList
const FLOAT *pfAttribFList
UINT nMaxFormats
int *piFormats
UINT *nNumFormats
BOOL wglChoosePixelFormatEXT
HDC hdc
const int *piAttribIList
const FLOAT *pfAttribFList
UINT nMaxFormats
int *piFormats
UINT *nNumFormats
BOOL wglCopyContext
HGLRC hglrcSrc
HGLRC hglrcDst
UINT mask
BOOL wglCopyImageSubDataNV
HGLRC hSrcRC
GLuint srcName
GLenum srcTarget
GLint srcLevel
GLint srcX
GLint srcY
GLint srcZ
HGLRC hDstRC
GLuint dstName
GLenum dstTarget
GLint dstLevel
GLint dstX
GLint dstY
GLint dstZ
GLsizei width
GLsizei height
GLsizei depth
HDC wglCreateAffinityDCNV
const HGPUNV *phGpuList
HGLRC wglCreateAssociatedContextAMD
UINT id
HGLRC wglCreateAssociatedContextAttribsAMD
UINT id
HGLRC hShareContext
const int *attribList
HANDLE wglCreateBufferRegionARB
HDC hDC
int iLayerPlane
UINT uType
HGLRC wglCreateContext
HDC hDc
HGLRC wglCreateContextAttribsARB
HDC hDC
HGLRC hShareContext
const int *attribList
GLboolean wglCreateDisplayColorTableEXT
GLushort id
LPVOID wglCreateImageBufferI3D
HDC hDC
DWORD dwSize
UINT uFlags
HGLRC wglCreateLayerContext
HDC hDc
int level
HPBUFFERARB wglCreatePbufferARB
HDC hDC
int iPixelFormat
int iWidth
int iHeight
const int *piAttribList
HPBUFFEREXT wglCreatePbufferEXT
HDC hDC
int iPixelFormat
int iWidth
int iHeight
const int *piAttribList
BOOL wglDelayBeforeSwapNV
HDC hDC
GLfloat seconds
BOOL wglDeleteAssociatedContextAMD
HGLRC hglrc
VOID wglDeleteBufferRegionARB
HANDLE hRegion
BOOL wglDeleteContext
HGLRC oldContext
BOOL wglDeleteDCNV
HDC hdc
BOOL wglDescribeLayerPlane
HDC hDc
int pixelFormat
int layerPlane
UINT nBytes
const LAYERPLANEDESCRIPTOR *plpd
VOID wglDestroyDisplayColorTableEXT
GLushort id
BOOL wglDestroyImageBufferI3D
HDC hDC
LPVOID pAddress
BOOL wglDestroyPbufferARB
HPBUFFERARB hPbuffer
BOOL wglDestroyPbufferEXT
HPBUFFEREXT hPbuffer
BOOL wglDisableFrameLockI3D
BOOL wglDisableGenlockI3D
HDC hDC
BOOL wglDXCloseDeviceNV
HANDLE hDevice
BOOL wglDXLockObjectsNV
HANDLE hDevice
GLint count
HANDLE *hObjects
BOOL wglDXObjectAccessNV
HANDLE hObject
GLenum access
HANDLE wglDXOpenDeviceNV
void *dxDevice
HANDLE wglDXRegisterObjectNV
HANDLE hDevice
void *dxObject
GLuint name
GLenum type
GLenum access
BOOL wglDXSetResourceShareHandleNV
void *dxObject
HANDLE shareHandle
BOOL wglDXUnlockObjectsNV
HANDLE hDevice
GLint count
HANDLE *hObjects
BOOL wglDXUnregisterObjectNV
HANDLE hDevice
HANDLE hObject
BOOL wglEnableFrameLockI3D
BOOL wglEnableGenlockI3D
HDC hDC
BOOL wglEndFrameTrackingI3D
UINT wglEnumerateVideoCaptureDevicesNV
HDC hDc
HVIDEOINPUTDEVICENV *phDeviceList
int wglEnumerateVideoDevicesNV
HDC hDc
HVIDEOOUTPUTDEVICENV *phDeviceList
BOOL wglEnumGpuDevicesNV
HGPUNV hGpu
UINT iDeviceIndex
PGPU_DEVICE lpGpuDevice
BOOL wglEnumGpusFromAffinityDCNV
HDC hAffinityDC
UINT iGpuIndex
HGPUNV *hGpu
BOOL wglEnumGpusNV
UINT iGpuIndex
HGPUNV *phGpu
void wglFreeMemoryNV
void *pointer
BOOL wglGenlockSampleRateI3D
HDC hDC
UINT uRate
BOOL wglGenlockSourceDelayI3D
HDC hDC
UINT uDelay
BOOL wglGenlockSourceEdgeI3D
HDC hDC
UINT uEdge
BOOL wglGenlockSourceI3D
HDC hDC
UINT uSource
UINT wglGetContextGPUIDAMD
HGLRC hglrc
HGLRC wglGetCurrentAssociatedContextAMD
HGLRC wglGetCurrentContext
HDC wglGetCurrentDC
HDC wglGetCurrentReadDCARB
HDC wglGetCurrentReadDCEXT
PROC wglGetDefaultProcAddress
LPCSTR lpszProc
BOOL wglGetDigitalVideoParametersI3D
HDC hDC
int iAttribute
int *piValue
UINT GetEnhMetaFilePixelFormat
HENHMETAFILE hemf
const PIXELFORMATDESCRIPTOR *ppfd
const char *wglGetExtensionsStringARB
HDC hdc
const char *wglGetExtensionsStringEXT
BOOL wglGetFrameUsageI3D
float *pUsage
BOOL wglGetGammaTableI3D
HDC hDC
int iEntries
USHORT *puRed
USHORT *puGreen
USHORT *puBlue
BOOL wglGetGammaTableParametersI3D
HDC hDC
int iAttribute
int *piValue
BOOL wglGetGenlockSampleRateI3D
HDC hDC
UINT *uRate
BOOL wglGetGenlockSourceDelayI3D
HDC hDC
UINT *uDelay
BOOL wglGetGenlockSourceEdgeI3D
HDC hDC
UINT *uEdge
BOOL wglGetGenlockSourceI3D
HDC hDC
UINT *uSource
UINT wglGetGPUIDsAMD
UINT maxCount
UINT *ids
INT wglGetGPUInfoAMD
UINT id
INT property
GLenum dataType
UINT size
void *data
int wglGetLayerPaletteEntries
HDC hdc
int iLayerPlane
int iStart
int cEntries
const COLORREF *pcr
BOOL wglGetMscRateOML
HDC hdc
INT32 *numerator
INT32 *denominator
HDC wglGetPbufferDCARB
HPBUFFERARB hPbuffer
HDC wglGetPbufferDCEXT
HPBUFFEREXT hPbuffer
BOOL wglGetPixelFormatAttribfvARB
HDC hdc
int iPixelFormat
int iLayerPlane
UINT nAttributes
const int *piAttributes
FLOAT *pfValues
BOOL wglGetPixelFormatAttribfvEXT
HDC hdc
int iPixelFormat
int iLayerPlane
UINT nAttributes
int *piAttributes
FLOAT *pfValues
BOOL wglGetPixelFormatAttribivARB
HDC hdc
int iPixelFormat
int iLayerPlane
UINT nAttributes
const int *piAttributes
int *piValues
BOOL wglGetPixelFormatAttribivEXT
HDC hdc
int iPixelFormat
int iLayerPlane
UINT nAttributes
int *piAttributes
int *piValues
PROC wglGetProcAddress
LPCSTR lpszProc
int wglGetSwapIntervalEXT
BOOL wglGetSyncValuesOML
HDC hdc
INT64 *ust
INT64 *msc
INT64 *sbc
BOOL wglGetVideoDeviceNV
HDC hDC
int numDevices
HPVIDEODEV *hVideoDevice
BOOL wglGetVideoInfoNV
HPVIDEODEV hpVideoDevice
unsigned long *pulCounterOutputPbuffer
unsigned long *pulCounterOutputVideo
BOOL wglIsEnabledFrameLockI3D
BOOL *pFlag
BOOL wglIsEnabledGenlockI3D
HDC hDC
BOOL *pFlag
BOOL wglJoinSwapGroupNV
HDC hDC
GLuint group
GLboolean wglLoadDisplayColorTableEXT
const GLushort *table
GLuint length
BOOL wglLockVideoCaptureDeviceNV
HDC hDc
HVIDEOINPUTDEVICENV hDevice
BOOL wglMakeAssociatedContextCurrentAMD
HGLRC hglrc
BOOL wglMakeContextCurrentARB
HDC hDrawDC
HDC hReadDC
HGLRC hglrc
BOOL wglMakeContextCurrentEXT
HDC hDrawDC
HDC hReadDC
HGLRC hglrc
BOOL wglMakeCurrent
HDC hDc
HGLRC newContext
BOOL wglQueryCurrentContextNV
int iAttribute
int *piValue
BOOL wglQueryFrameCountNV
HDC hDC
GLuint *count
BOOL wglQueryFrameLockMasterI3D
BOOL *pFlag
BOOL wglQueryFrameTrackingI3D
DWORD *pFrameCount
DWORD *pMissedFrames
float *pLastMissedUsage
BOOL wglQueryGenlockMaxSourceDelayI3D
HDC hDC
UINT *uMaxLineDelay
UINT *uMaxPixelDelay
BOOL wglQueryMaxSwapGroupsNV
HDC hDC
GLuint *maxGroups
GLuint *maxBarriers
BOOL wglQueryPbufferARB
HPBUFFERARB hPbuffer
int iAttribute
int *piValue
BOOL wglQueryPbufferEXT
HPBUFFEREXT hPbuffer
int iAttribute
int *piValue
BOOL wglQuerySwapGroupNV
HDC hDC
GLuint *group
GLuint *barrier
BOOL wglQueryVideoCaptureDeviceNV
HDC hDc
HVIDEOINPUTDEVICENV hDevice
int iAttribute
int *piValue
BOOL wglRealizeLayerPalette
HDC hdc
int iLayerPlane
BOOL bRealize
BOOL wglReleaseImageBufferEventsI3D
HDC hDC
const LPVOID *pAddress
UINT count
int wglReleasePbufferDCARB
HPBUFFERARB hPbuffer
HDC hDC
int wglReleasePbufferDCEXT
HPBUFFEREXT hPbuffer
HDC hDC
BOOL wglReleaseTexImageARB
HPBUFFERARB hPbuffer
int iBuffer
BOOL wglReleaseVideoCaptureDeviceNV
HDC hDc
HVIDEOINPUTDEVICENV hDevice
BOOL wglReleaseVideoDeviceNV
HPVIDEODEV hVideoDevice
BOOL wglReleaseVideoImageNV
HPBUFFERARB hPbuffer
int iVideoBuffer
BOOL wglResetFrameCountNV
HDC hDC
BOOL wglRestoreBufferRegionARB
HANDLE hRegion
int x
int y
int width
int height
int xSrc
int ySrc
BOOL wglSaveBufferRegionARB
HANDLE hRegion
int x
int y
int width
int height
BOOL wglSendPbufferToVideoNV
HPBUFFERARB hPbuffer
int iBufferType
unsigned long *pulCounterPbuffer
BOOL bBlock
BOOL wglSetDigitalVideoParametersI3D
HDC hDC
int iAttribute
const int *piValue
BOOL wglSetGammaTableI3D
HDC hDC
int iEntries
const USHORT *puRed
const USHORT *puGreen
const USHORT *puBlue
BOOL wglSetGammaTableParametersI3D
HDC hDC
int iAttribute
const int *piValue
int wglSetLayerPaletteEntries
HDC hdc
int iLayerPlane
int iStart
int cEntries
const COLORREF *pcr
BOOL wglSetPbufferAttribARB
HPBUFFERARB hPbuffer
const int *piAttribList
BOOL wglSetStereoEmitterState3DL
HDC hDC
UINT uState
BOOL wglShareLists
HGLRC hrcSrvShare
HGLRC hrcSrvSource
INT64 wglSwapBuffersMscOML
HDC hdc
INT64 target_msc
INT64 divisor
INT64 remainder
BOOL wglSwapLayerBuffers
HDC hdc
UINT fuFlags
BOOL wglSwapIntervalEXT
int interval
INT64 wglSwapLayerBuffersMscOML
HDC hdc
INT fuPlanes
INT64 target_msc
INT64 divisor
INT64 remainder
BOOL wglUseFontBitmaps
HDC hDC
DWORD first
DWORD count
DWORD listBase
BOOL wglUseFontBitmapsA
HDC hDC
DWORD first
DWORD count
DWORD listBase
BOOL wglUseFontBitmapsW
HDC hDC
DWORD first
DWORD count
DWORD listBase
BOOL wglUseFontOutlines
HDC hDC
DWORD first
DWORD count
DWORD listBase
FLOAT deviation
FLOAT extrusion
int format
LPGLYPHMETRICSFLOAT lpgmf
BOOL wglUseFontOutlinesA
HDC hDC
DWORD first
DWORD count
DWORD listBase
FLOAT deviation
FLOAT extrusion
int format
LPGLYPHMETRICSFLOAT lpgmf
BOOL wglUseFontOutlinesW
HDC hDC
DWORD first
DWORD count
DWORD listBase
FLOAT deviation
FLOAT extrusion
int format
LPGLYPHMETRICSFLOAT lpgmf
BOOL wglWaitForMscOML
HDC hdc
INT64 target_msc
INT64 divisor
INT64 remainder
INT64 *ust
INT64 *msc
INT64 *sbc
BOOL wglWaitForSbcOML
HDC hdc
INT64 target_sbc
INT64 *ust
INT64 *msc
INT64 *sbc
3p-libepoxy-master/libepoxy/src/ 0000775 0000000 0000000 00000000000 14156730761 0017156 5 ustar 00root root 0000000 0000000 3p-libepoxy-master/libepoxy/src/dispatch_common.c 0000664 0000000 0000000 00000062606 14156730761 0022503 0 ustar 00root root 0000000 0000000 /*
* Copyright © 2013-2014 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
/**
* \mainpage Epoxy
*
* \section intro_sec Introduction
*
* Epoxy is a library for handling OpenGL function pointer management for
* you.
*
* It hides the complexity of `dlopen()`, `dlsym()`, `glXGetProcAddress()`,
* `eglGetProcAddress()`, etc. from the app developer, with very little
* knowledge needed on their part. They get to read GL specs and write
* code using undecorated function names like `glCompileShader()`.
*
* Don't forget to check for your extensions or versions being present
* before you use them, just like before! We'll tell you what you forgot
* to check for instead of just segfaulting, though.
*
* \section features_sec Features
*
* - Automatically initializes as new GL functions are used.
* - GL 4.6 core and compatibility context support.
* - GLES 1/2/3 context support.
* - Knows about function aliases so (e.g.) `glBufferData()` can be
* used with `GL_ARB_vertex_buffer_object` implementations, along
* with GL 1.5+ implementations.
* - EGL, GLX, and WGL support.
* - Can be mixed with non-epoxy GL usage.
*
* \section using_sec Using Epoxy
*
* Using Epoxy should be as easy as replacing:
*
* ```cpp
* #include
* #include
* #include
* ```
*
* with:
*
* ```cpp
* #include
* #include
* ```
*
* \subsection using_include_sec Headers
*
* Epoxy comes with the following public headers:
*
* - `epoxy/gl.h` - For GL API
* - `epoxy/egl.h` - For EGL API
* - `epoxy/glx.h` - For GLX API
* - `epoxy/wgl.h` - For WGL API
*
* \section links_sec Additional links
*
* The latest version of the Epoxy code is available on [GitHub](https://github.com/anholt/libepoxy).
*
* For bug reports and enhancements, please use the [Issues](https://github.com/anholt/libepoxy/issues)
* link.
*
* The scope of this API reference does not include the documentation for
* OpenGL and OpenGL ES. For more information on those programming interfaces
* please visit:
*
* - [Khronos](https://www.khronos.org/)
* - [OpenGL page on Khronos.org](https://www.khronos.org/opengl/)
* - [OpenGL ES page on Khronos.org](https://www.khronos.org/opengles/)
* - [docs.GL](http://docs.gl/)
*/
/**
* @file dispatch_common.c
*
* @brief Implements common code shared by the generated GL/EGL/GLX dispatch code.
*
* A collection of some important specs on getting GL function pointers.
*
* From the linux GL ABI (http://www.opengl.org/registry/ABI/):
*
* "3.4. The libraries must export all OpenGL 1.2, GLU 1.3, GLX 1.3, and
* ARB_multitexture entry points statically.
*
* 3.5. Because non-ARB extensions vary so widely and are constantly
* increasing in number, it's infeasible to require that they all be
* supported, and extensions can always be added to hardware drivers
* after the base link libraries are released. These drivers are
* dynamically loaded by libGL, so extensions not in the base
* library must also be obtained dynamically.
*
* 3.6. To perform the dynamic query, libGL also must export an entry
* point called
*
* void (*glXGetProcAddressARB(const GLubyte *))();
*
* The full specification of this function is available separately. It
* takes the string name of a GL or GLX entry point and returns a pointer
* to a function implementing that entry point. It is functionally
* identical to the wglGetProcAddress query defined by the Windows OpenGL
* library, except that the function pointers returned are context
* independent, unlike the WGL query."
*
* From the EGL 1.4 spec:
*
* "Client API function pointers returned by eglGetProcAddress are
* independent of the display and the currently bound client API context,
* and may be used by any client API context which supports the extension.
*
* eglGetProcAddress may be queried for all of the following functions:
*
* • All EGL and client API extension functions supported by the
* implementation (whether those extensions are supported by the current
* client API context or not). This includes any mandatory OpenGL ES
* extensions.
*
* eglGetProcAddress may not be queried for core (non-extension) functions
* in EGL or client APIs 20 .
*
* For functions that are queryable with eglGetProcAddress,
* implementations may choose to also export those functions statically
* from the object libraries im- plementing those functions. However,
* portable clients cannot rely on this behavior.
*
* From the GLX 1.4 spec:
*
* "glXGetProcAddress may be queried for all of the following functions:
*
* • All GL and GLX extension functions supported by the implementation
* (whether those extensions are supported by the current context or
* not).
*
* • All core (non-extension) functions in GL and GLX from version 1.0 up
* to and including the versions of those specifications supported by
* the implementation, as determined by glGetString(GL VERSION) and
* glXQueryVersion queries."
*/
#include
#include
#ifdef _WIN32
#include
#else
#include
#include
#include
#endif
#include
#include
#include
#include "dispatch_common.h"
#if defined(__APPLE__)
#define GLX_LIB "/opt/X11/lib/libGL.1.dylib"
#define OPENGL_LIB "/System/Library/Frameworks/OpenGL.framework/Versions/Current/OpenGL"
#define GLES1_LIB "libGLESv1_CM.so"
#define GLES2_LIB "libGLESv2.so"
#elif defined(__ANDROID__)
#define GLX_LIB "libGLESv2.so"
#define EGL_LIB "libEGL.so"
#define GLES1_LIB "libGLESv1_CM.so"
#define GLES2_LIB "libGLESv2.so"
#elif defined(_WIN32)
#define EGL_LIB "libEGL.dll"
#define GLES1_LIB "libGLES_CM.dll"
#define GLES2_LIB "libGLESv2.dll"
#define OPENGL_LIB "OPENGL32"
#else
#define GLVND_GLX_LIB "libGLX.so.1"
#define GLX_LIB "libGL.so.1"
#define EGL_LIB "libEGL.so.1"
#define GLES1_LIB "libGLESv1_CM.so.1"
#define GLES2_LIB "libGLESv2.so.2"
#define OPENGL_LIB "libOpenGL.so.0"
#endif
#ifdef __GNUC__
#define CONSTRUCT(_func) static void _func (void) __attribute__((constructor));
#define DESTRUCT(_func) static void _func (void) __attribute__((destructor));
#elif defined (_MSC_VER) && (_MSC_VER >= 1500)
#define CONSTRUCT(_func) \
static void _func(void); \
static int _func ## _wrapper(void) { _func(); return 0; } \
__pragma(section(".CRT$XCU",read)) \
__declspec(allocate(".CRT$XCU")) static int (* _array ## _func)(void) = _func ## _wrapper;
#define DESTRUCT(_func) \
static void _func(void); \
static int _func ## _constructor(void) { atexit (_func); return 0; } \
__pragma(section(".CRT$XCU",read)) \
__declspec(allocate(".CRT$XCU")) static int (* _array ## _func)(void) = _func ## _constructor;
#else
#error "You will need constructor support for your compiler"
#endif
struct api {
#ifndef _WIN32
/*
* Locking for making sure we don't double-dlopen().
*/
pthread_mutex_t mutex;
#endif
/*
* dlopen() return value for the GLX API. This is libGLX.so.1 if the
* runtime is glvnd-enabled, else libGL.so.1
*/
void *glx_handle;
/*
* dlopen() return value for the desktop GL library.
*
* On Windows this is OPENGL32. On OSX this is classic libGL. On Linux
* this is either libOpenGL (if the runtime is glvnd-enabled) or
* classic libGL.so.1
*/
void *gl_handle;
/* dlopen() return value for libEGL.so.1 */
void *egl_handle;
/* dlopen() return value for libGLESv1_CM.so.1 */
void *gles1_handle;
/* dlopen() return value for libGLESv2.so.2 */
void *gles2_handle;
/*
* This value gets incremented when any thread is in
* glBegin()/glEnd() called through epoxy.
*
* We're not guaranteed to be called through our wrapper, so the
* conservative paths also try to handle the failure cases they'll
* see if begin_count didn't reflect reality. It's also a bit of
* a bug that the conservative paths might return success because
* some other thread was in epoxy glBegin/glEnd while our thread
* is trying to resolve, but given that it's basically just for
* informative error messages, we shouldn't need to care.
*/
long begin_count;
};
static struct api api = {
#ifndef _WIN32
.mutex = PTHREAD_MUTEX_INITIALIZER,
#else
0,
#endif
};
static bool library_initialized;
static bool epoxy_current_context_is_glx(void);
#if PLATFORM_HAS_EGL
static EGLenum
epoxy_egl_get_current_gl_context_api(void);
#endif
CONSTRUCT (library_init)
static void
library_init(void)
{
library_initialized = true;
}
static bool
get_dlopen_handle(void **handle, const char *lib_name, bool exit_on_fail, bool load)
{
if (*handle)
return true;
if (!library_initialized) {
fputs("Attempting to dlopen() while in the dynamic linker.\n", stderr);
abort();
}
#ifdef _WIN32
*handle = LoadLibraryA(lib_name);
#else
pthread_mutex_lock(&api.mutex);
if (!*handle) {
int flags = RTLD_LAZY | RTLD_LOCAL;
if (!load)
flags |= RTLD_NOLOAD;
*handle = dlopen(lib_name, flags);
if (!*handle) {
if (exit_on_fail) {
fprintf(stderr, "Couldn't open %s: %s\n", lib_name, dlerror());
abort();
} else {
(void)dlerror();
}
}
}
pthread_mutex_unlock(&api.mutex);
#endif
return *handle != NULL;
}
static void *
do_dlsym(void **handle, const char *name, bool exit_on_fail)
{
void *result;
const char *error = "";
#ifdef _WIN32
result = GetProcAddress(*handle, name);
#else
result = dlsym(*handle, name);
if (!result)
error = dlerror();
#endif
if (!result && exit_on_fail) {
fprintf(stderr, "%s() not found: %s\n", name, error);
abort();
}
return result;
}
/**
* @brief Checks whether we're using OpenGL or OpenGL ES
*
* @return `true` if we're using OpenGL
*/
bool
epoxy_is_desktop_gl(void)
{
const char *es_prefix = "OpenGL ES";
const char *version;
#if PLATFORM_HAS_EGL
/* PowerVR's OpenGL ES implementation (and perhaps other) don't
* comply with the standard, which states that
* "glGetString(GL_VERSION)" should return a string starting with
* "OpenGL ES". Therefore, to distinguish desktop OpenGL from
* OpenGL ES, we must also check the context type through EGL (we
* can do that as PowerVR is only usable through EGL).
*/
if (!epoxy_current_context_is_glx()) {
switch (epoxy_egl_get_current_gl_context_api()) {
case EGL_OPENGL_API: return true;
case EGL_OPENGL_ES_API: return false;
case EGL_NONE:
default: break;
}
}
#endif
if (api.begin_count)
return true;
version = (const char *)glGetString(GL_VERSION);
/* If we didn't get a version back, there are only two things that
* could have happened: either malloc failure (which basically
* doesn't exist), or we were called within a glBegin()/glEnd().
* Assume the second, which only exists for desktop GL.
*/
if (!version)
return true;
return strncmp(es_prefix, version, strlen(es_prefix));
}
static int
epoxy_internal_gl_version(GLenum version_string, int error_version, int factor)
{
const char *version = (const char *)glGetString(version_string);
GLint major, minor;
int scanf_count;
if (!version)
return error_version;
/* skip to version number */
while (!isdigit(*version) && *version != '\0')
version++;
/* Interpret version number */
scanf_count = sscanf(version, "%i.%i", &major, &minor);
if (scanf_count != 2) {
fprintf(stderr, "Unable to interpret GL_VERSION string: %s\n",
version);
abort();
}
return factor * major + minor;
}
/**
* @brief Returns the version of OpenGL we are using
*
* The version is encoded as:
*
* ```
*
* version = major * 10 + minor
*
* ```
*
* So it can be easily used for version comparisons.
*
* @return The encoded version of OpenGL we are using
*/
int
epoxy_gl_version(void)
{
return epoxy_internal_gl_version(GL_VERSION, 0, 10);
}
int
epoxy_conservative_gl_version(void)
{
if (api.begin_count)
return 100;
return epoxy_internal_gl_version(GL_VERSION, 100, 10);
}
/**
* @brief Returns the version of the GL Shading Language we are using
*
* The version is encoded as:
*
* ```
*
* version = major * 100 + minor
*
* ```
*
* So it can be easily used for version comparisons.
*
* @return The encoded version of the GL Shading Language we are using
*/
int
epoxy_glsl_version(void)
{
if (epoxy_gl_version() >= 20 ||
epoxy_has_gl_extension ("GL_ARB_shading_language_100"))
return epoxy_internal_gl_version(GL_SHADING_LANGUAGE_VERSION, 0, 100);
return 0;
}
/**
* @brief Checks for the presence of an extension in an OpenGL extension string
*
* @param extension_list The string containing the list of extensions to check
* @param ext The name of the GL extension
* @return `true` if the extension is available'
*
* @note If you are looking to check whether a normal GL, EGL or GLX extension
* is supported by the client, this probably isn't the function you want.
*
* Some parts of the spec for OpenGL and friends will return an OpenGL formatted
* extension string that is separate from the usual extension strings for the
* spec. This function provides easy parsing of those strings.
*
* @see epoxy_has_gl_extension()
* @see epoxy_has_egl_extension()
* @see epoxy_has_glx_extension()
*/
bool
epoxy_extension_in_string(const char *extension_list, const char *ext)
{
const char *ptr = extension_list;
int len;
if (!ext)
return false;
len = strlen(ext);
if (extension_list == NULL || *extension_list == '\0')
return false;
/* Make sure that don't just find an extension with our name as a prefix. */
while (true) {
ptr = strstr(ptr, ext);
if (!ptr)
return false;
if (ptr[len] == ' ' || ptr[len] == 0)
return true;
ptr += len;
}
}
static bool
epoxy_internal_has_gl_extension(const char *ext, bool invalid_op_mode)
{
if (epoxy_gl_version() < 30) {
const char *exts = (const char *)glGetString(GL_EXTENSIONS);
if (!exts)
return invalid_op_mode;
return epoxy_extension_in_string(exts, ext);
} else {
int num_extensions;
int i;
glGetIntegerv(GL_NUM_EXTENSIONS, &num_extensions);
if (num_extensions == 0)
return invalid_op_mode;
for (i = 0; i < num_extensions; i++) {
const char *gl_ext = (const char *)glGetStringi(GL_EXTENSIONS, i);
if (!gl_ext)
return false;
if (strcmp(ext, gl_ext) == 0)
return true;
}
return false;
}
}
bool
epoxy_load_glx(bool exit_if_fails, bool load)
{
#if PLATFORM_HAS_GLX
# ifdef GLVND_GLX_LIB
/* prefer the glvnd library if it exists */
if (!api.glx_handle)
get_dlopen_handle(&api.glx_handle, GLVND_GLX_LIB, false, load);
# endif
if (!api.glx_handle)
get_dlopen_handle(&api.glx_handle, GLX_LIB, exit_if_fails, load);
#endif
return api.glx_handle != NULL;
}
void *
epoxy_conservative_glx_dlsym(const char *name, bool exit_if_fails)
{
#if PLATFORM_HAS_GLX
if (epoxy_load_glx(exit_if_fails, exit_if_fails))
return do_dlsym(&api.glx_handle, name, exit_if_fails);
#endif
return NULL;
}
/**
* Tests whether the currently bound context is EGL or GLX, trying to
* avoid loading libraries unless necessary.
*/
static bool
epoxy_current_context_is_glx(void)
{
#if !PLATFORM_HAS_GLX
return false;
#else
void *sym;
sym = epoxy_conservative_glx_dlsym("glXGetCurrentContext", false);
if (sym) {
if (glXGetCurrentContext())
return true;
} else {
(void)dlerror();
}
#if PLATFORM_HAS_EGL
sym = epoxy_conservative_egl_dlsym("eglGetCurrentContext", false);
if (sym) {
if (epoxy_egl_get_current_gl_context_api() != EGL_NONE)
return false;
} else {
(void)dlerror();
}
#endif /* PLATFORM_HAS_EGL */
return false;
#endif /* PLATFORM_HAS_GLX */
}
/**
* @brief Returns true if the given GL extension is supported in the current context.
*
* @param ext The name of the GL extension
* @return `true` if the extension is available
*
* @note that this function can't be called from within `glBegin()` and `glEnd()`.
*
* @see epoxy_has_egl_extension()
* @see epoxy_has_glx_extension()
*/
bool
epoxy_has_gl_extension(const char *ext)
{
return epoxy_internal_has_gl_extension(ext, false);
}
bool
epoxy_conservative_has_gl_extension(const char *ext)
{
if (api.begin_count)
return true;
return epoxy_internal_has_gl_extension(ext, true);
}
bool
epoxy_load_egl(bool exit_if_fails, bool load)
{
#if PLATFORM_HAS_EGL
return get_dlopen_handle(&api.egl_handle, EGL_LIB, exit_if_fails, load);
#else
return false;
#endif
}
void *
epoxy_conservative_egl_dlsym(const char *name, bool exit_if_fails)
{
#if PLATFORM_HAS_EGL
if (epoxy_load_egl(exit_if_fails, exit_if_fails))
return do_dlsym(&api.egl_handle, name, exit_if_fails);
#endif
return NULL;
}
void *
epoxy_egl_dlsym(const char *name)
{
return epoxy_conservative_egl_dlsym(name, true);
}
void *
epoxy_glx_dlsym(const char *name)
{
return epoxy_conservative_glx_dlsym(name, true);
}
static void
epoxy_load_gl(void)
{
if (api.gl_handle)
return;
#if defined(_WIN32) || defined(__APPLE__)
get_dlopen_handle(&api.gl_handle, OPENGL_LIB, true, true);
#else
// Prefer GLX_LIB over OPENGL_LIB to maintain existing behavior.
// Using the inverse ordering OPENGL_LIB -> GLX_LIB, causes issues such as:
// https://github.com/anholt/libepoxy/issues/240 (apitrace missing calls)
// https://github.com/anholt/libepoxy/issues/252 (Xorg boot crash)
get_dlopen_handle(&api.glx_handle, GLX_LIB, false, true);
api.gl_handle = api.glx_handle;
#if defined(OPENGL_LIB)
if (!api.gl_handle)
get_dlopen_handle(&api.gl_handle, OPENGL_LIB, false, true);
#endif
if (!api.gl_handle) {
fprintf(stderr, "Couldn't open %s or %s\n", GLX_LIB, OPENGL_LIB);
abort();
}
#endif
}
void *
epoxy_gl_dlsym(const char *name)
{
epoxy_load_gl();
return do_dlsym(&api.gl_handle, name, true);
}
void *
epoxy_gles1_dlsym(const char *name)
{
if (epoxy_current_context_is_glx()) {
return epoxy_get_proc_address(name);
} else {
get_dlopen_handle(&api.gles1_handle, GLES1_LIB, true, true);
return do_dlsym(&api.gles1_handle, name, true);
}
}
void *
epoxy_gles2_dlsym(const char *name)
{
if (epoxy_current_context_is_glx()) {
return epoxy_get_proc_address(name);
} else {
get_dlopen_handle(&api.gles2_handle, GLES2_LIB, true, true);
return do_dlsym(&api.gles2_handle, name, true);
}
}
/**
* Does the appropriate dlsym() or eglGetProcAddress() for GLES3
* functions.
*
* Mesa interpreted GLES as intending that the GLES3 functions were
* available only through eglGetProcAddress() and not dlsym(), while
* ARM's Mali drivers interpreted GLES as intending that GLES3
* functions were available only through dlsym() and not
* eglGetProcAddress(). Thanks, Khronos.
*/
void *
epoxy_gles3_dlsym(const char *name)
{
if (epoxy_current_context_is_glx()) {
return epoxy_get_proc_address(name);
} else {
if (get_dlopen_handle(&api.gles2_handle, GLES2_LIB, false, true)) {
void *func = do_dlsym(&api.gles2_handle, name, false);
if (func)
return func;
}
return epoxy_get_proc_address(name);
}
}
/**
* Performs either the dlsym or glXGetProcAddress()-equivalent for
* core functions in desktop GL.
*/
void *
epoxy_get_core_proc_address(const char *name, int core_version)
{
#ifdef _WIN32
int core_symbol_support = 11;
#elif defined(__ANDROID__)
/**
* All symbols must be resolved through eglGetProcAddress
* on Android
*/
int core_symbol_support = 0;
#else
int core_symbol_support = 12;
#endif
if (core_version <= core_symbol_support) {
return epoxy_gl_dlsym(name);
} else {
return epoxy_get_proc_address(name);
}
}
#if PLATFORM_HAS_EGL
static EGLenum
epoxy_egl_get_current_gl_context_api(void)
{
EGLint curapi;
if (eglQueryContext(eglGetCurrentDisplay(), eglGetCurrentContext(),
EGL_CONTEXT_CLIENT_TYPE, &curapi) == EGL_FALSE) {
(void)eglGetError();
return EGL_NONE;
}
return (EGLenum) curapi;
}
#endif /* PLATFORM_HAS_EGL */
/**
* Performs the dlsym() for the core GL 1.0 functions that we use for
* determining version and extension support for deciding on dlsym
* versus glXGetProcAddress() for all other functions.
*
* This needs to succeed on implementations without GLX (since
* glGetString() and glGetIntegerv() are both in GLES1/2 as well, and
* at call time we don't know for sure what API they're trying to use
* without inspecting contexts ourselves).
*/
void *
epoxy_get_bootstrap_proc_address(const char *name)
{
/* If we already have a library that links to libglapi loaded,
* use that.
*/
#if PLATFORM_HAS_GLX
if (api.glx_handle && glXGetCurrentContext())
return epoxy_gl_dlsym(name);
#endif
/* If epoxy hasn't loaded any API-specific library yet, try to
* figure out what API the context is using and use that library,
* since future calls will also use that API (this prevents a
* non-X11 ES2 context from loading a bunch of X11 junk).
*/
#if PLATFORM_HAS_EGL
get_dlopen_handle(&api.egl_handle, EGL_LIB, false, true);
if (api.egl_handle) {
int version = 0;
switch (epoxy_egl_get_current_gl_context_api()) {
case EGL_OPENGL_API:
return epoxy_gl_dlsym(name);
case EGL_OPENGL_ES_API:
if (eglQueryContext(eglGetCurrentDisplay(),
eglGetCurrentContext(),
EGL_CONTEXT_CLIENT_VERSION,
&version)) {
if (version >= 2)
return epoxy_gles2_dlsym(name);
else
return epoxy_gles1_dlsym(name);
}
}
}
#endif /* PLATFORM_HAS_EGL */
/* Fall back to GLX */
return epoxy_gl_dlsym(name);
}
void *
epoxy_get_proc_address(const char *name)
{
#if PLATFORM_HAS_EGL
GLenum egl_api = EGL_NONE;
if (!epoxy_current_context_is_glx())
egl_api = epoxy_egl_get_current_gl_context_api();
switch (egl_api) {
case EGL_OPENGL_API:
case EGL_OPENGL_ES_API:
return eglGetProcAddress(name);
case EGL_NONE:
break;
}
#endif
#if defined(_WIN32)
return wglGetProcAddress(name);
#elif defined(__APPLE__)
return epoxy_gl_dlsym(name);
#elif PLATFORM_HAS_GLX
if (epoxy_current_context_is_glx())
return glXGetProcAddressARB((const GLubyte *)name);
assert(0 && "Couldn't find current GLX or EGL context.\n");
#endif
return NULL;
}
WRAPPER_VISIBILITY (void)
WRAPPER(epoxy_glBegin)(GLenum primtype)
{
#ifdef _WIN32
InterlockedIncrement(&api.begin_count);
#else
pthread_mutex_lock(&api.mutex);
api.begin_count++;
pthread_mutex_unlock(&api.mutex);
#endif
epoxy_glBegin_unwrapped(primtype);
}
WRAPPER_VISIBILITY (void)
WRAPPER(epoxy_glEnd)(void)
{
epoxy_glEnd_unwrapped();
#ifdef _WIN32
InterlockedDecrement(&api.begin_count);
#else
pthread_mutex_lock(&api.mutex);
api.begin_count--;
pthread_mutex_unlock(&api.mutex);
#endif
}
PFNGLBEGINPROC epoxy_glBegin = epoxy_glBegin_wrapped;
PFNGLENDPROC epoxy_glEnd = epoxy_glEnd_wrapped;
epoxy_resolver_failure_handler_t epoxy_resolver_failure_handler;
/**
* Sets the function that will be called every time Epoxy fails to
* resolve a symbol.
*
* @param handler The new handler function
* @return The previous handler function
*/
epoxy_resolver_failure_handler_t
epoxy_set_resolver_failure_handler(epoxy_resolver_failure_handler_t handler)
{
#ifdef _WIN32
return InterlockedExchangePointer((void**)&epoxy_resolver_failure_handler,
handler);
#else
epoxy_resolver_failure_handler_t old;
pthread_mutex_lock(&api.mutex);
old = epoxy_resolver_failure_handler;
epoxy_resolver_failure_handler = handler;
pthread_mutex_unlock(&api.mutex);
return old;
#endif
}
3p-libepoxy-master/libepoxy/src/dispatch_common.h 0000664 0000000 0000000 00000021245 14156730761 0022502 0 ustar 00root root 0000000 0000000 /*
* Copyright © 2013 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
#include "config.h"
#ifdef _WIN32
#define PLATFORM_HAS_EGL ENABLE_EGL
#define PLATFORM_HAS_GLX ENABLE_GLX
#define PLATFORM_HAS_WGL 1
#elif defined(__APPLE__)
#define PLATFORM_HAS_EGL 0
#define PLATFORM_HAS_GLX ENABLE_GLX
#define PLATFORM_HAS_WGL 0
#elif defined(ANDROID)
#define PLATFORM_HAS_EGL ENABLE_EGL
#define PLATFORM_HAS_GLX 0
#define PLATFORM_HAS_WGL 0
#else
#define PLATFORM_HAS_EGL ENABLE_EGL
#define PLATFORM_HAS_GLX ENABLE_GLX
#define PLATFORM_HAS_WGL 0
#endif
#include "epoxy/gl.h"
#if PLATFORM_HAS_GLX
#include "epoxy/glx.h"
#endif
#if PLATFORM_HAS_EGL
# if !ENABLE_X11
/* Disable including X11 headers if the X11 support was disabled at
* configuration time
*/
# define EGL_NO_X11 1
/* Older versions of Mesa use this symbol to achieve the same result
* as EGL_NO_X11
*/
# define MESA_EGL_NO_X11_HEADERS 1
# endif
#include "epoxy/egl.h"
#endif
#if PLATFORM_HAS_WGL
#include "epoxy/wgl.h"
#endif
#if defined(__GNUC__)
#define PACKED __attribute__((__packed__))
#define ENDPACKED
#elif defined (_MSC_VER)
#define PACKED __pragma(pack(push,1))
#define ENDPACKED __pragma(pack(pop))
#else
#define PACKED
#define ENDPACKED
#endif
/* On win32, we're going to need to keep a per-thread dispatch table,
* since the function pointers depend on the device and pixel format
* of the current context.
*/
#if defined(_WIN32)
#define USING_DISPATCH_TABLE 1
#else
#define USING_DISPATCH_TABLE 0
#endif
#define UNWRAPPED_PROTO(x) (GLAPIENTRY *x)
#define WRAPPER_VISIBILITY(type) static type GLAPIENTRY
#define WRAPPER(x) x ## _wrapped
#define GEN_GLOBAL_REWRITE_PTR(name, args, passthrough) \
static void EPOXY_CALLSPEC \
name##_global_rewrite_ptr args \
{ \
if (name == (void *)name##_global_rewrite_ptr) \
name = (void *)name##_resolver(); \
name passthrough; \
}
#define GEN_GLOBAL_REWRITE_PTR_RET(ret, name, args, passthrough) \
static ret EPOXY_CALLSPEC \
name##_global_rewrite_ptr args \
{ \
if (name == (void *)name##_global_rewrite_ptr) \
name = (void *)name##_resolver(); \
return name passthrough; \
}
#if USING_DISPATCH_TABLE
#define GEN_DISPATCH_TABLE_REWRITE_PTR(name, args, passthrough) \
static void EPOXY_CALLSPEC \
name##_dispatch_table_rewrite_ptr args \
{ \
struct dispatch_table *dispatch_table = get_dispatch_table(); \
\
dispatch_table->name = (void *)name##_resolver(); \
dispatch_table->name passthrough; \
}
#define GEN_DISPATCH_TABLE_REWRITE_PTR_RET(ret, name, args, passthrough) \
static ret EPOXY_CALLSPEC \
name##_dispatch_table_rewrite_ptr args \
{ \
struct dispatch_table *dispatch_table = get_dispatch_table(); \
\
dispatch_table->name = (void *)name##_resolver(); \
return dispatch_table->name passthrough; \
}
#define GEN_DISPATCH_TABLE_THUNK(name, args, passthrough) \
static void EPOXY_CALLSPEC \
name##_dispatch_table_thunk args \
{ \
get_dispatch_table()->name passthrough; \
}
#define GEN_DISPATCH_TABLE_THUNK_RET(ret, name, args, passthrough) \
static ret EPOXY_CALLSPEC \
name##_dispatch_table_thunk args \
{ \
return get_dispatch_table()->name passthrough; \
}
#else
#define GEN_DISPATCH_TABLE_REWRITE_PTR(name, args, passthrough)
#define GEN_DISPATCH_TABLE_REWRITE_PTR_RET(ret, name, args, passthrough)
#define GEN_DISPATCH_TABLE_THUNK(name, args, passthrough)
#define GEN_DISPATCH_TABLE_THUNK_RET(ret, name, args, passthrough)
#endif
#define GEN_THUNKS(name, args, passthrough) \
GEN_GLOBAL_REWRITE_PTR(name, args, passthrough) \
GEN_DISPATCH_TABLE_REWRITE_PTR(name, args, passthrough) \
GEN_DISPATCH_TABLE_THUNK(name, args, passthrough)
#define GEN_THUNKS_RET(ret, name, args, passthrough) \
GEN_GLOBAL_REWRITE_PTR_RET(ret, name, args, passthrough) \
GEN_DISPATCH_TABLE_REWRITE_PTR_RET(ret, name, args, passthrough) \
GEN_DISPATCH_TABLE_THUNK_RET(ret, name, args, passthrough)
void *epoxy_egl_dlsym(const char *name);
void *epoxy_glx_dlsym(const char *name);
void *epoxy_gl_dlsym(const char *name);
void *epoxy_gles1_dlsym(const char *name);
void *epoxy_gles2_dlsym(const char *name);
void *epoxy_gles3_dlsym(const char *name);
void *epoxy_get_proc_address(const char *name);
void *epoxy_get_core_proc_address(const char *name, int core_version);
void *epoxy_get_bootstrap_proc_address(const char *name);
int epoxy_conservative_gl_version(void);
bool epoxy_conservative_has_gl_extension(const char *name);
int epoxy_conservative_glx_version(void);
bool epoxy_conservative_has_glx_extension(const char *name);
int epoxy_conservative_egl_version(void);
bool epoxy_conservative_has_egl_extension(const char *name);
bool epoxy_conservative_has_wgl_extension(const char *name);
void *epoxy_conservative_egl_dlsym(const char *name, bool exit_if_fails);
void *epoxy_conservative_glx_dlsym(const char *name, bool exit_if_fails);
bool epoxy_load_glx(bool exit_if_fails, bool load);
bool epoxy_load_egl(bool exit_if_fails, bool load);
#define glBegin_unwrapped epoxy_glBegin_unwrapped
#define glEnd_unwrapped epoxy_glEnd_unwrapped
extern void UNWRAPPED_PROTO(glBegin_unwrapped)(GLenum primtype);
extern void UNWRAPPED_PROTO(glEnd_unwrapped)(void);
extern epoxy_resolver_failure_handler_t epoxy_resolver_failure_handler;
#if USING_DISPATCH_TABLE
void gl_init_dispatch_table(void);
void gl_switch_to_dispatch_table(void);
void wgl_init_dispatch_table(void);
void wgl_switch_to_dispatch_table(void);
extern uint32_t gl_tls_index, gl_tls_size;
extern uint32_t wgl_tls_index, wgl_tls_size;
#define wglMakeCurrent_unwrapped epoxy_wglMakeCurrent_unwrapped
#define wglMakeContextCurrentARB_unwrapped epoxy_wglMakeContextCurrentARB_unwrapped
#define wglMakeContextCurrentEXT_unwrapped epoxy_wglMakeContextCurrentEXT_unwrapped
#define wglMakeAssociatedContextCurrentAMD_unwrapped epoxy_wglMakeAssociatedContextCurrentAMD_unwrapped
extern BOOL UNWRAPPED_PROTO(wglMakeCurrent_unwrapped)(HDC hdc, HGLRC hglrc);
extern BOOL UNWRAPPED_PROTO(wglMakeContextCurrentARB_unwrapped)(HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
extern BOOL UNWRAPPED_PROTO(wglMakeContextCurrentEXT_unwrapped)(HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
extern BOOL UNWRAPPED_PROTO(wglMakeAssociatedContextCurrentAMD_unwrapped)(HGLRC hglrc);
#endif /* _WIN32_ */
3p-libepoxy-master/libepoxy/src/dispatch_egl.c 0000664 0000000 0000000 00000006166 14156730761 0021761 0 ustar 00root root 0000000 0000000 /*
* Copyright © 2013 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
#include
#include
#include
#include "dispatch_common.h"
int
epoxy_conservative_egl_version(void)
{
EGLDisplay dpy = eglGetCurrentDisplay();
if (!dpy)
return 14;
return epoxy_egl_version(dpy);
}
/**
* @brief Returns the version of OpenGL we are using
*
* The version is encoded as:
*
* ```
*
* version = major * 10 + minor
*
* ```
*
* So it can be easily used for version comparisons.
*
* @param The EGL display
*
* @return The encoded version of EGL we are using
*
* @see epoxy_gl_version()
*/
int
epoxy_egl_version(EGLDisplay dpy)
{
int major, minor;
const char *version_string;
int ret;
version_string = eglQueryString(dpy, EGL_VERSION);
if (!version_string)
return 0;
ret = sscanf(version_string, "%d.%d", &major, &minor);
assert(ret == 2);
return major * 10 + minor;
}
bool
epoxy_conservative_has_egl_extension(const char *ext)
{
return epoxy_has_egl_extension(eglGetCurrentDisplay(), ext);
}
/**
* @brief Returns true if the given EGL extension is supported in the current context.
*
* @param dpy The EGL display
* @param extension The name of the EGL extension
*
* @return `true` if the extension is available
*
* @see epoxy_has_gl_extension()
* @see epoxy_has_glx_extension()
*/
bool
epoxy_has_egl_extension(EGLDisplay dpy, const char *ext)
{
return epoxy_extension_in_string(eglQueryString(dpy, EGL_EXTENSIONS), ext) || epoxy_extension_in_string(eglQueryString(NULL, EGL_EXTENSIONS), ext);
}
/**
* @brief Checks whether EGL is available.
*
* @return `true` if EGL is available
*
* @newin{1,4}
*/
bool
epoxy_has_egl(void)
{
#if !PLATFORM_HAS_EGL
return false;
#else
if (epoxy_load_egl(false, true)) {
EGLDisplay* (* pf_eglGetCurrentDisplay) (void);
pf_eglGetCurrentDisplay = epoxy_conservative_egl_dlsym("eglGetCurrentDisplay", false);
if (pf_eglGetCurrentDisplay)
return true;
}
return false;
#endif /* PLATFORM_HAS_EGL */
}
3p-libepoxy-master/libepoxy/src/dispatch_glx.c 0000664 0000000 0000000 00000011215 14156730761 0021773 0 ustar 00root root 0000000 0000000 /*
* Copyright © 2013 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
#include
#include
#include
#include "dispatch_common.h"
/**
* If we can determine the GLX version from the current context, then
* return that, otherwise return a version that will just send us on
* to dlsym() or get_proc_address().
*/
int
epoxy_conservative_glx_version(void)
{
Display *dpy = glXGetCurrentDisplay();
GLXContext ctx = glXGetCurrentContext();
int screen;
if (!dpy || !ctx)
return 14;
glXQueryContext(dpy, ctx, GLX_SCREEN, &screen);
return epoxy_glx_version(dpy, screen);
}
/**
* @brief Returns the version of GLX we are using
*
* The version is encoded as:
*
* ```
*
* version = major * 10 + minor
*
* ```
*
* So it can be easily used for version comparisons.
*
* @param dpy The X11 display
* @param screen The X11 screen
*
* @return The encoded version of GLX we are using
*
* @see epoxy_gl_version()
*/
int
epoxy_glx_version(Display *dpy, int screen)
{
int server_major, server_minor;
int client_major, client_minor;
int server, client;
const char *version_string;
int ret;
version_string = glXQueryServerString(dpy, screen, GLX_VERSION);
if (!version_string)
return 0;
ret = sscanf(version_string, "%d.%d", &server_major, &server_minor);
assert(ret == 2);
server = server_major * 10 + server_minor;
version_string = glXGetClientString(dpy, GLX_VERSION);
if (!version_string)
return 0;
ret = sscanf(version_string, "%d.%d", &client_major, &client_minor);
assert(ret == 2);
client = client_major * 10 + client_minor;
if (client < server)
return client;
else
return server;
}
/**
* If we can determine the GLX extension support from the current
* context, then return that, otherwise give the answer that will just
* send us on to get_proc_address().
*/
bool
epoxy_conservative_has_glx_extension(const char *ext)
{
Display *dpy = glXGetCurrentDisplay();
GLXContext ctx = glXGetCurrentContext();
int screen;
if (!dpy || !ctx)
return true;
glXQueryContext(dpy, ctx, GLX_SCREEN, &screen);
return epoxy_has_glx_extension(dpy, screen, ext);
}
/**
* @brief Returns true if the given GLX extension is supported in the current context.
*
* @param dpy The X11 display
* @param screen The X11 screen
* @param extension The name of the GLX extension
*
* @return `true` if the extension is available
*
* @see epoxy_has_gl_extension()
* @see epoxy_has_egl_extension()
*/
bool
epoxy_has_glx_extension(Display *dpy, int screen, const char *ext)
{
/* No, you can't just use glXGetClientString or
* glXGetServerString() here. Those each tell you about one half
* of what's needed for an extension to be supported, and
* glXQueryExtensionsString() is what gives you the intersection
* of the two.
*/
return epoxy_extension_in_string(glXQueryExtensionsString(dpy, screen), ext);
}
/**
* @brief Checks whether GLX is available.
*
* @param dpy The X11 display
*
* @return `true` if GLX is available
*
* @newin{1,4}
*/
bool
epoxy_has_glx(Display *dpy)
{
#if !PLATFORM_HAS_GLX
return false;
#else
if (epoxy_load_glx(false, true)) {
Bool (* pf_glXQueryExtension) (Display *, int *, int *);
int error_base, event_base;
pf_glXQueryExtension = epoxy_conservative_glx_dlsym("glXQueryExtension", false);
if (pf_glXQueryExtension && pf_glXQueryExtension(dpy, &error_base, &event_base))
return true;
}
return false;
#endif /* !PLATFORM_HAS_GLX */
}
3p-libepoxy-master/libepoxy/src/dispatch_wgl.c 0000664 0000000 0000000 00000013246 14156730761 0022000 0 ustar 00root root 0000000 0000000 /*
* Copyright © 2013 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
#include
#include
#include
#include "dispatch_common.h"
static bool first_context_current = false;
static bool already_switched_to_dispatch_table = false;
/**
* If we can determine the WGL extension support from the current
* context, then return that, otherwise give the answer that will just
* send us on to get_proc_address().
*/
bool
epoxy_conservative_has_wgl_extension(const char *ext)
{
HDC hdc = wglGetCurrentDC();
if (!hdc)
return true;
return epoxy_has_wgl_extension(hdc, ext);
}
bool
epoxy_has_wgl_extension(HDC hdc, const char *ext)
{
PFNWGLGETEXTENSIONSSTRINGARBPROC getext;
getext = (void *)wglGetProcAddress("wglGetExtensionsStringARB");
if (!getext) {
fputs("Implementation unexpectedly missing "
"WGL_ARB_extensions_string. Probably a libepoxy bug.\n",
stderr);
return false;
}
return epoxy_extension_in_string(getext(hdc), ext);
}
/**
* Does the work necessary to update the win32 per-thread dispatch
* tables when wglMakeCurrent() is called.
*
* Right now, we use global function pointers until the second
* MakeCurrent occurs, at which point we switch to dispatch tables.
* This could be improved in the future to track a resolved dispatch
* table per context and reuse it when the context is made current
* again.
*/
void
epoxy_handle_external_wglMakeCurrent(void)
{
if (!first_context_current) {
first_context_current = true;
} else {
if (!already_switched_to_dispatch_table) {
already_switched_to_dispatch_table = true;
gl_switch_to_dispatch_table();
wgl_switch_to_dispatch_table();
}
gl_init_dispatch_table();
wgl_init_dispatch_table();
}
}
/**
* This global symbol is apparently looked up by Windows when loading
* a DLL, but it doesn't declare the prototype.
*/
BOOL WINAPI
DllMain(HINSTANCE dll, DWORD reason, LPVOID reserved);
BOOL WINAPI
DllMain(HINSTANCE dll, DWORD reason, LPVOID reserved)
{
void *data;
switch (reason) {
case DLL_PROCESS_ATTACH:
gl_tls_index = TlsAlloc();
if (gl_tls_index == TLS_OUT_OF_INDEXES)
return FALSE;
wgl_tls_index = TlsAlloc();
if (wgl_tls_index == TLS_OUT_OF_INDEXES)
return FALSE;
first_context_current = false;
/* FALLTHROUGH */
case DLL_THREAD_ATTACH:
data = LocalAlloc(LPTR, gl_tls_size);
TlsSetValue(gl_tls_index, data);
data = LocalAlloc(LPTR, wgl_tls_size);
TlsSetValue(wgl_tls_index, data);
break;
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
data = TlsGetValue(gl_tls_index);
LocalFree(data);
data = TlsGetValue(wgl_tls_index);
LocalFree(data);
if (reason == DLL_PROCESS_DETACH) {
TlsFree(gl_tls_index);
TlsFree(wgl_tls_index);
}
break;
}
return TRUE;
}
WRAPPER_VISIBILITY (BOOL)
WRAPPER(epoxy_wglMakeCurrent)(HDC hdc, HGLRC hglrc)
{
BOOL ret = epoxy_wglMakeCurrent_unwrapped(hdc, hglrc);
epoxy_handle_external_wglMakeCurrent();
return ret;
}
WRAPPER_VISIBILITY (BOOL)
WRAPPER(epoxy_wglMakeContextCurrentARB)(HDC hDrawDC,
HDC hReadDC,
HGLRC hglrc)
{
BOOL ret = epoxy_wglMakeContextCurrentARB_unwrapped(hDrawDC, hReadDC,
hglrc);
epoxy_handle_external_wglMakeCurrent();
return ret;
}
WRAPPER_VISIBILITY (BOOL)
WRAPPER(epoxy_wglMakeContextCurrentEXT)(HDC hDrawDC,
HDC hReadDC,
HGLRC hglrc)
{
BOOL ret = epoxy_wglMakeContextCurrentEXT_unwrapped(hDrawDC, hReadDC,
hglrc);
epoxy_handle_external_wglMakeCurrent();
return ret;
}
WRAPPER_VISIBILITY (BOOL)
WRAPPER(epoxy_wglMakeAssociatedContextCurrentAMD)(HGLRC hglrc)
{
BOOL ret = epoxy_wglMakeAssociatedContextCurrentAMD_unwrapped(hglrc);
epoxy_handle_external_wglMakeCurrent();
return ret;
}
PFNWGLMAKECURRENTPROC epoxy_wglMakeCurrent = epoxy_wglMakeCurrent_wrapped;
PFNWGLMAKECONTEXTCURRENTEXTPROC epoxy_wglMakeContextCurrentEXT = epoxy_wglMakeContextCurrentEXT_wrapped;
PFNWGLMAKECONTEXTCURRENTARBPROC epoxy_wglMakeContextCurrentARB = epoxy_wglMakeContextCurrentARB_wrapped;
PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC epoxy_wglMakeAssociatedContextCurrentEXT = epoxy_wglMakeAssociatedContextCurrentAMD_wrapped;
3p-libepoxy-master/libepoxy/src/gen_dispatch.py 0000775 0000000 0000000 00000116467 14156730761 0022202 0 ustar 00root root 0000000 0000000 #!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Copyright © 2013 Intel Corporation
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice (including the next
# paragraph) shall be included in all copies or substantial portions of the
# Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
# IN THE SOFTWARE.
import sys
import argparse
import xml.etree.ElementTree as ET
import re
import os
class GLProvider(object):
def __init__(self, condition, condition_name, loader, name):
# C code for determining if this function is available.
# (e.g. epoxy_is_desktop_gl() && epoxy_gl_version() >= 20
self.condition = condition
# A string (possibly with spaces) describing the condition.
self.condition_name = condition_name
# The loader for getting the symbol -- either dlsym or
# getprocaddress. This is a python format string to generate
# C code, given self.name.
self.loader = loader
# The name of the function to be loaded (possibly an
# ARB/EXT/whatever-decorated variant).
self.name = name
# This is the C enum name we'll use for referring to this provider.
self.enum = condition_name
self.enum = self.enum.replace(' ', '_')
self.enum = self.enum.replace('\\"', '')
self.enum = self.enum.replace('.', '_')
self.enum = "PROVIDER_" + self.enum
class GLFunction(object):
def __init__(self, ret_type, name):
self.name = name
self.ptr_type = 'PFN' + name.upper() + 'PROC'
self.ret_type = ret_type
self.providers = {}
self.args = []
# These are functions with hand-written wrapper code in
# dispatch_common.c. Their dispatch entries are replaced with
# non-public symbols with a "_unwrapped" suffix.
wrapped_functions = {
'glBegin',
'glEnd',
'wglMakeCurrent',
'wglMakeContextCurrentEXT',
'wglMakeContextCurrentARB',
'wglMakeAssociatedContextCurrentAMD',
}
if name in wrapped_functions:
self.wrapped_name = name + '_unwrapped'
self.public = ''
else:
self.wrapped_name = name
self.public = 'EPOXY_PUBLIC '
# This is the string of C code for passing through the
# arguments to the function.
self.args_list = ''
# This is the string of C code for declaring the arguments
# list.
self.args_decl = 'void'
# This is the string name of the function that this is an
# alias of, or self.name. This initially comes from the
# registry, and may get updated if it turns out our alias is
# itself an alias (for example glFramebufferTextureEXT ->
# glFramebufferTextureARB -> glFramebufferTexture)
self.alias_name = name
# After alias resolution, this is the function that this is an
# alias of.
self.alias_func = None
# For the root of an alias tree, this lists the functions that
# are marked as aliases of it, so that it can write a resolver
# for all of them.
self.alias_exts = []
def add_arg(self, arg_type, arg_name):
# Reword glDepthRange() arguments to avoid clashing with the
# "near" and "far" keywords on win32.
if arg_name == "near":
arg_name = "hither"
elif arg_name == "far":
arg_name = "yon"
# Mac screwed up GLhandleARB and made it a void * instead of
# uint32_t, despite it being specced as only necessarily 32
# bits wide, causing portability problems all over. There are
# prototype conflicts between things like
# glAttachShader(GLuint program, GLuint shader) and
# glAttachObjectARB(GLhandleARB container, GLhandleARB obj),
# even though they are marked as aliases in the XML (and being
# aliases in Mesa).
#
# We retain those aliases. In the x86_64 ABI, the first 6
# args are stored in 64-bit registers, so the calls end up
# being the same despite the different types. We just need to
# add a cast to uintptr_t to shut up the compiler.
if arg_type == 'GLhandleARB':
assert len(self.args) < 6
arg_list_name = '(uintptr_t)' + arg_name
else:
arg_list_name = arg_name
self.args.append((arg_type, arg_name))
if self.args_decl == 'void':
self.args_list = arg_list_name
self.args_decl = arg_type + ' ' + arg_name
else:
self.args_list += ', ' + arg_list_name
self.args_decl += ', ' + arg_type + ' ' + arg_name
def add_provider(self, condition, loader, condition_name):
self.providers[condition_name] = GLProvider(condition, condition_name,
loader, self.name)
def add_alias(self, ext):
assert self.alias_func is None
self.alias_exts.append(ext)
ext.alias_func = self
class Generator(object):
def __init__(self, target):
self.target = target
self.enums = {}
self.functions = {}
self.sorted_functions = []
self.enum_string_offset = {}
self.max_enum_name_len = 1
self.entrypoint_string_offset = {}
self.copyright_comment = None
self.typedefs = ''
self.out_file = None
# GL versions named in the registry, which we should generate
# #defines for.
self.supported_versions = set()
# Extensions named in the registry, which we should generate
# #defines for.
self.supported_extensions = set()
# Dictionary mapping human-readable names of providers to a C
# enum token that will be used to reference those names, to
# reduce generated binary size.
self.provider_enum = {}
# Dictionary mapping human-readable names of providers to C
# code to detect if it's present.
self.provider_condition = {}
# Dictionary mapping human-readable names of providers to
# format strings for fetching the function pointer when
# provided the name of the symbol to be requested.
self.provider_loader = {}
def all_text_until_element_name(self, element, element_name):
text = ''
if element.text is not None:
text += element.text
for child in element:
if child.tag == element_name:
break
if child.text:
text += child.text
if child.tail:
text += child.tail
return text
def out(self, text):
self.out_file.write(text)
def outln(self, text):
self.out_file.write(text + '\n')
def parse_typedefs(self, reg):
for t in reg.findall('types/type'):
if 'name' in t.attrib and t.attrib['name'] not in {'GLhandleARB'}:
continue
# The gles1/gles2-specific types are redundant
# declarations, and the different types used for them (int
# vs int32_t) caused problems on win32 builds.
api = t.get('api')
if api:
continue
if t.text is not None:
self.typedefs += t.text
for child in t:
if child.tag == 'apientry':
self.typedefs += 'APIENTRY'
if child.text:
self.typedefs += child.text
if child.tail:
self.typedefs += child.tail
self.typedefs += '\n'
def parse_enums(self, reg):
for enum in reg.findall('enums/enum'):
name = enum.get('name')
# wgl.xml's 0xwhatever definitions end up colliding with
# wingdi.h's decimal definitions of these.
if name in ['WGL_SWAP_OVERLAY', 'WGL_SWAP_UNDERLAY', 'WGL_SWAP_MAIN_PLANE']:
continue
self.max_enum_name_len = max(self.max_enum_name_len, len(name))
self.enums[name] = enum.get('value')
def get_function_return_type(self, proto):
# Everything up to the start of the name element is the return type.
return self.all_text_until_element_name(proto, 'name').strip()
def parse_function_definitions(self, reg):
for command in reg.findall('commands/command'):
proto = command.find('proto')
name = proto.find('name').text
ret_type = self.get_function_return_type(proto)
func = GLFunction(ret_type, name)
for arg in command.findall('param'):
func.add_arg(self.all_text_until_element_name(arg, 'name').strip(),
arg.find('name').text)
alias = command.find('alias')
if alias is not None:
# Note that some alias references appear before the
# target command is defined (glAttachObjectARB() ->
# glAttachShader(), for example).
func.alias_name = alias.get('name')
self.functions[name] = func
def drop_weird_glx_functions(self):
# Drop a few ancient SGIX GLX extensions that use types not defined
# anywhere in Xlib. In glxext.h, they're protected by #ifdefs for the
# headers that defined them.
weird_functions = [name for name, func in self.functions.items()
if 'VLServer' in func.args_decl
or 'DMparams' in func.args_decl]
for name in weird_functions:
del self.functions[name]
def resolve_aliases(self):
for func in self.functions.values():
# Find the root of the alias tree, and add ourselves to it.
if func.alias_name != func.name:
alias_func = func
while alias_func.alias_name != alias_func.name:
alias_func = self.functions[alias_func.alias_name]
func.alias_name = alias_func.name
func.alias_func = alias_func
alias_func.alias_exts.append(func)
def prepare_provider_enum(self):
self.provider_enum = {}
# We assume that for any given provider, all functions using
# it will have the same loader. This lets us generate a
# general C function for detecting conditions and calling the
# dlsym/getprocaddress, and have our many resolver stubs just
# call it with a table of values.
for func in self.functions.values():
for provider in func.providers.values():
if provider.condition_name in self.provider_enum:
assert self.provider_condition[provider.condition_name] == provider.condition
assert self.provider_loader[provider.condition_name] == provider.loader
continue
self.provider_enum[provider.condition_name] = provider.enum
self.provider_condition[provider.condition_name] = provider.condition
self.provider_loader[provider.condition_name] = provider.loader
def sort_functions(self):
self.sorted_functions = sorted(self.functions.values(), key=lambda func: func.name)
def process_require_statements(self, feature, condition, loader, human_name):
for command in feature.findall('require/command'):
name = command.get('name')
# wgl.xml describes 6 functions in WGL 1.0 that are in
# gdi32.dll instead of opengl32.dll, and we would need to
# change up our symbol loading to support that. Just
# don't wrap those functions.
if self.target == 'wgl' and 'wgl' not in name:
del self.functions[name]
continue
func = self.functions[name]
func.add_provider(condition, loader, human_name)
def parse_function_providers(self, reg):
for feature in reg.findall('feature'):
api = feature.get('api') # string gl, gles1, gles2, glx
m = re.match(r'([0-9])\.([0-9])', feature.get('number'))
version = int(m.group(1)) * 10 + int(m.group(2))
self.supported_versions.add(feature.get('name'))
if api == 'gl':
human_name = 'Desktop OpenGL {0}'.format(feature.get('number'))
condition = 'epoxy_is_desktop_gl()'
loader = 'epoxy_get_core_proc_address({0}, {1})'.format('{0}', version)
if version >= 11:
condition += ' && epoxy_conservative_gl_version() >= {0}'.format(version)
elif api == 'gles2':
human_name = 'OpenGL ES {0}'.format(feature.get('number'))
condition = '!epoxy_is_desktop_gl() && epoxy_gl_version() >= {0}'.format(version)
if version <= 20:
loader = 'epoxy_gles2_dlsym({0})'
else:
loader = 'epoxy_gles3_dlsym({0})'
elif api == 'gles1':
human_name = 'OpenGL ES 1.0'
condition = '!epoxy_is_desktop_gl() && epoxy_gl_version() >= 10 && epoxy_gl_version() < 20'
loader = 'epoxy_gles1_dlsym({0})'
elif api == 'glx':
human_name = 'GLX {0}'.format(version)
# We could just always use GPA for loading everything
# but glXGetProcAddress(), but dlsym() is a more
# efficient lookup.
if version > 13:
condition = 'epoxy_conservative_glx_version() >= {0}'.format(version)
loader = 'glXGetProcAddress((const GLubyte *){0})'
else:
condition = 'true'
loader = 'epoxy_glx_dlsym({0})'
elif api == 'egl':
human_name = 'EGL {0}'.format(version)
if version > 10:
condition = 'epoxy_conservative_egl_version() >= {0}'.format(version)
else:
condition = 'true'
# All EGL core entrypoints must be dlsym()ed out --
# eglGetProcAdddress() will return NULL.
loader = 'epoxy_egl_dlsym({0})'
elif api == 'wgl':
human_name = 'WGL {0}'.format(version)
condition = 'true'
loader = 'epoxy_gl_dlsym({0})'
elif api == 'glsc2':
continue
else:
sys.exit('unknown API: "{0}"'.format(api))
self.process_require_statements(feature, condition, loader, human_name)
for extension in reg.findall('extensions/extension'):
extname = extension.get('name')
cond_extname = "enum_string[enum_string_offsets[i]]"
self.supported_extensions.add(extname)
# 'supported' is a set of strings like gl, gles1, gles2,
# or glx, which are separated by '|'
apis = extension.get('supported').split('|')
if 'glx' in apis:
condition = 'epoxy_conservative_has_glx_extension(provider_name)'
loader = 'glXGetProcAddress((const GLubyte *){0})'
self.process_require_statements(extension, condition, loader, extname)
if 'egl' in apis:
condition = 'epoxy_conservative_has_egl_extension(provider_name)'
loader = 'eglGetProcAddress({0})'
self.process_require_statements(extension, condition, loader, extname)
if 'wgl' in apis:
condition = 'epoxy_conservative_has_wgl_extension(provider_name)'
loader = 'wglGetProcAddress({0})'
self.process_require_statements(extension, condition, loader, extname)
if {'gl', 'gles1', 'gles2'}.intersection(apis):
condition = 'epoxy_conservative_has_gl_extension(provider_name)'
loader = 'epoxy_get_proc_address({0})'
self.process_require_statements(extension, condition, loader, extname)
def fixup_bootstrap_function(self, name, loader):
# We handle glGetString(), glGetIntegerv(), and
# glXGetProcAddressARB() specially, because we need to use
# them in the process of deciding on loaders for resolving,
# and the naive code generation would result in their
# resolvers calling their own resolvers.
if name not in self.functions:
return
func = self.functions[name]
func.providers = {}
func.add_provider('true', loader, 'always present')
def parse(self, xml_file):
reg = ET.parse(xml_file)
comment = reg.find('comment')
if comment is not None:
self.copyright_comment = comment.text
else:
self.copyright_comment = ''
self.parse_typedefs(reg)
self.parse_enums(reg)
self.parse_function_definitions(reg)
self.parse_function_providers(reg)
def write_copyright_comment_body(self):
for line in self.copyright_comment.splitlines():
if '-----' in line:
break
self.outln(' * ' + line)
def write_enums(self):
for name in sorted(self.supported_versions):
self.outln('#define {0} 1'.format(name))
self.outln('')
for name in sorted(self.supported_extensions):
self.outln('#define {0} 1'.format(name))
self.outln('')
# We want to sort by enum number (which puts a bunch of things
# in a logical order), then by name after that, so we do those
# sorts in reverse. This is still way uglier than doing some
# sort based on what version/extensions things are introduced
# in, but we haven't paid any attention to those attributes
# for enums yet.
sorted_by_name = sorted(self.enums.keys())
sorted_by_number = sorted(sorted_by_name, key=lambda name: self.enums[name])
for name in sorted_by_number:
self.outln('#define ' + name.ljust(self.max_enum_name_len + 3) + self.enums[name] + '')
def write_function_ptr_typedefs(self):
for func in self.sorted_functions:
self.outln('typedef {0} (GLAPIENTRY *{1})({2});'.format(func.ret_type,
func.ptr_type,
func.args_decl))
def write_header_header(self, out_file):
self.close()
self.out_file = open(out_file, 'w')
self.outln('/* GL dispatch header.')
self.outln(' * This is code-generated from the GL API XML files from Khronos.')
self.write_copyright_comment_body()
self.outln(' */')
self.outln('')
self.outln('#pragma once')
self.outln('#include ')
self.outln('#include ')
self.outln('')
def write_header(self, out_file):
self.write_header_header(out_file)
self.outln('#include "epoxy/common.h"')
if self.target != "gl":
self.outln('#include "epoxy/gl.h"')
if self.target == "egl":
self.outln('#include "EGL/eglplatform.h"')
# Account for older eglplatform.h, which doesn't define
# the EGL_CAST macro.
self.outln('#ifndef EGL_CAST')
self.outln('#if defined(__cplusplus)')
self.outln('#define EGL_CAST(type, value) (static_cast(value))')
self.outln('#else')
self.outln('#define EGL_CAST(type, value) ((type) (value))')
self.outln('#endif')
self.outln('#endif')
else:
# Add some ridiculous inttypes.h redefinitions that are
# from khrplatform.h and not included in the XML. We
# don't directly include khrplatform.h because it's not
# present on many systems, and coming up with #ifdefs to
# decide when it's not present would be hard.
self.outln('#define __khrplatform_h_ 1')
self.outln('typedef int8_t khronos_int8_t;')
self.outln('typedef int16_t khronos_int16_t;')
self.outln('typedef int32_t khronos_int32_t;')
self.outln('typedef int64_t khronos_int64_t;')
self.outln('typedef uint8_t khronos_uint8_t;')
self.outln('typedef uint16_t khronos_uint16_t;')
self.outln('typedef uint32_t khronos_uint32_t;')
self.outln('typedef uint64_t khronos_uint64_t;')
self.outln('typedef float khronos_float_t;')
self.outln('#ifdef _WIN64')
self.outln('typedef signed long long int khronos_intptr_t;')
self.outln('typedef unsigned long long int khronos_uintptr_t;')
self.outln('typedef signed long long int khronos_ssize_t;')
self.outln('typedef unsigned long long int khronos_usize_t;')
self.outln('#else')
self.outln('typedef signed long int khronos_intptr_t;')
self.outln('typedef unsigned long int khronos_uintptr_t;')
self.outln('typedef signed long int khronos_ssize_t;')
self.outln('typedef unsigned long int khronos_usize_t;')
self.outln('#endif')
self.outln('typedef uint64_t khronos_utime_nanoseconds_t;')
self.outln('typedef int64_t khronos_stime_nanoseconds_t;')
self.outln('#define KHRONOS_MAX_ENUM 0x7FFFFFFF')
self.outln('typedef enum {')
self.outln(' KHRONOS_FALSE = 0,')
self.outln(' KHRONOS_TRUE = 1,')
self.outln(' KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM')
self.outln('} khronos_boolean_enum_t;')
if self.target == "glx":
self.outln('#include ')
self.outln('#include ')
self.out(self.typedefs)
self.outln('')
self.write_enums()
self.outln('')
self.write_function_ptr_typedefs()
for func in self.sorted_functions:
self.outln('EPOXY_PUBLIC {0} (EPOXY_CALLSPEC *epoxy_{1})({2});'.format(func.ret_type,
func.name,
func.args_decl))
self.outln('')
for func in self.sorted_functions:
self.outln('#define {0} epoxy_{0}'.format(func.name))
def write_function_ptr_resolver(self, func):
self.outln('static {0}'.format(func.ptr_type))
self.outln('epoxy_{0}_resolver(void)'.format(func.wrapped_name))
self.outln('{')
providers = []
# Make a local list of all the providers for this alias group
alias_root = func
if func.alias_func:
alias_root = func.alias_func
for provider in alias_root.providers.values():
providers.append(provider)
for alias_func in alias_root.alias_exts:
for provider in alias_func.providers.values():
providers.append(provider)
# Add some partial aliases of a few functions. These are ones
# that aren't quite aliases, because of some trivial behavior
# difference (like whether to produce an error for a
# non-Genned name), but where we'd like to fall back to the
# similar function if the proper one isn't present.
half_aliases = {
'glBindVertexArray' : 'glBindVertexArrayAPPLE',
'glBindVertexArrayAPPLE' : 'glBindVertexArray',
'glBindFramebuffer' : 'glBindFramebufferEXT',
'glBindFramebufferEXT' : 'glBindFramebuffer',
'glBindRenderbuffer' : 'glBindRenderbufferEXT',
'glBindRenderbufferEXT' : 'glBindRenderbuffer',
}
if func.name in half_aliases:
alias_func = self.functions[half_aliases[func.name]]
for provider in alias_func.providers.values():
providers.append(provider)
def provider_sort(provider):
return (provider.name != func.name, provider.name, provider.enum)
providers.sort(key=provider_sort)
if len(providers) != 1:
self.outln(' static const enum {0}_provider providers[] = {{'.format(self.target))
for provider in providers:
self.outln(' {0},'.format(provider.enum))
self.outln(' {0}_provider_terminator'.format(self.target))
self.outln(' };')
self.outln(' static const uint32_t entrypoints[] = {')
if len(providers) > 1:
for provider in providers:
self.outln(' {0} /* "{1}" */,'.format(self.entrypoint_string_offset[provider.name], provider.name))
else:
self.outln(' 0 /* None */,')
self.outln(' };')
self.outln(' return {0}_provider_resolver(entrypoint_strings + {1} /* "{2}" */,'.format(self.target,
self.entrypoint_string_offset[func.name],
func.name))
self.outln(' providers, entrypoints);')
else:
assert providers[0].name == func.name
self.outln(' return {0}_single_resolver({1}, {2} /* {3} */);'.format(self.target,
providers[0].enum,
self.entrypoint_string_offset[func.name],
func.name))
self.outln('}')
self.outln('')
def write_thunks(self, func):
# Writes out the function that's initially plugged into the
# global function pointer, which resolves, updates the global
# function pointer, and calls down to it.
#
# It also writes out the actual initialized global function
# pointer.
if func.ret_type == 'void':
self.outln('GEN_THUNKS({0}, ({1}), ({2}))'.format(func.wrapped_name,
func.args_decl,
func.args_list))
else:
self.outln('GEN_THUNKS_RET({0}, {1}, ({2}), ({3}))'.format(func.ret_type,
func.wrapped_name,
func.args_decl,
func.args_list))
def write_function_pointer(self, func):
self.outln('{0} epoxy_{1} = epoxy_{1}_global_rewrite_ptr;'.format(func.ptr_type, func.wrapped_name))
self.outln('')
def write_provider_enums(self):
# Writes the enum declaration for the list of providers
# supported by gl_provider_resolver()
self.outln('')
self.outln('enum {0}_provider {{'.format(self.target))
sorted_providers = sorted(self.provider_enum.keys())
# We always put a 0 enum first so that we can have a
# terminator in our arrays
self.outln(' {0}_provider_terminator = 0,'.format(self.target))
for human_name in sorted_providers:
enum = self.provider_enum[human_name]
self.outln(' {0},'.format(enum))
self.outln('} PACKED;')
self.outln('ENDPACKED')
self.outln('')
def write_provider_enum_strings(self):
# Writes the mapping from enums to the strings describing them
# for epoxy_print_failure_reasons().
sorted_providers = sorted(self.provider_enum.keys())
offset = 0
self.outln('static const char *enum_string =')
for human_name in sorted_providers:
self.outln(' "{0}\\0"'.format(human_name))
self.enum_string_offset[human_name] = offset
offset += len(human_name.replace('\\', '')) + 1
self.outln(' ;')
self.outln('')
# We're using uint16_t for the offsets.
assert offset < 65536
self.outln('static const uint16_t enum_string_offsets[] = {')
self.outln(' -1, /* {0}_provider_terminator, unused */'.format(self.target))
for human_name in sorted_providers:
enum = self.provider_enum[human_name]
self.outln(' {1}, /* {0} */'.format(human_name, self.enum_string_offset[human_name]))
self.outln('};')
self.outln('')
def write_entrypoint_strings(self):
self.outln('static const char entrypoint_strings[] = {')
offset = 0
for func in self.sorted_functions:
if func.name not in self.entrypoint_string_offset:
self.entrypoint_string_offset[func.name] = offset
offset += len(func.name) + 1
for c in func.name:
self.outln(" '{0}',".format(c))
self.outln(' 0, // {0}'.format(func.name))
self.outln(' 0 };')
# We're using uint16_t for the offsets.
#assert(offset < 65536)
self.outln('')
def write_provider_resolver(self):
self.outln('static void *{0}_provider_resolver(const char *name,'.format(self.target))
self.outln(' const enum {0}_provider *providers,'.format(self.target))
self.outln(' const uint32_t *entrypoints)')
self.outln('{')
self.outln(' int i;')
self.outln(' for (i = 0; providers[i] != {0}_provider_terminator; i++) {{'.format(self.target))
self.outln(' const char *provider_name = enum_string + enum_string_offsets[providers[i]];')
self.outln(' switch (providers[i]) {')
self.outln('')
for human_name in sorted(self.provider_enum.keys()):
enum = self.provider_enum[human_name]
self.outln(' case {0}:'.format(enum))
self.outln(' if ({0})'.format(self.provider_condition[human_name]))
self.outln(' return {0};'.format(self.provider_loader[human_name]).format("entrypoint_strings + entrypoints[i]"))
self.outln(' break;')
self.outln(' case {0}_provider_terminator:'.format(self.target))
self.outln(' abort(); /* Not reached */')
self.outln(' }')
self.outln(' }')
self.outln('')
self.outln(' if (epoxy_resolver_failure_handler)')
self.outln(' return epoxy_resolver_failure_handler(name);')
self.outln('')
# If the function isn't provided by any known extension, print
# something useful for the poor application developer before
# aborting. (In non-epoxy GL usage, the app developer would
# call into some blank stub function and segfault).
self.outln(' fprintf(stderr, "No provider of %s found. Requires one of:\\n", name);')
self.outln(' for (i = 0; providers[i] != {0}_provider_terminator; i++) {{'.format(self.target))
self.outln(' fprintf(stderr, " %s\\n", enum_string + enum_string_offsets[providers[i]]);')
self.outln(' }')
self.outln(' if (providers[0] == {0}_provider_terminator) {{'.format(self.target))
self.outln(' fprintf(stderr, " No known providers. This is likely a bug "')
self.outln(' "in libepoxy code generation\\n");')
self.outln(' }')
self.outln(' abort();')
self.outln('}')
self.outln('')
single_resolver_proto = '{0}_single_resolver(enum {0}_provider provider, uint32_t entrypoint_offset)'.format(self.target)
self.outln('EPOXY_NOINLINE static void *')
self.outln('{0};'.format(single_resolver_proto))
self.outln('')
self.outln('static void *')
self.outln('{0}'.format(single_resolver_proto))
self.outln('{')
self.outln(' enum {0}_provider providers[] = {{'.format(self.target))
self.outln(' provider,')
self.outln(' {0}_provider_terminator'.format(self.target))
self.outln(' };')
self.outln(' return {0}_provider_resolver(entrypoint_strings + entrypoint_offset,'.format(self.target))
self.outln(' providers, &entrypoint_offset);')
self.outln('}')
self.outln('')
def write_source(self, f):
self.close()
self.out_file = open(f, 'w')
self.outln('/* GL dispatch code.')
self.outln(' * This is code-generated from the GL API XML files from Khronos.')
self.write_copyright_comment_body()
self.outln(' */')
self.outln('')
self.outln('#include "config.h"')
self.outln('')
self.outln('#include ')
self.outln('#include ')
self.outln('#include ')
self.outln('')
self.outln('#include "dispatch_common.h"')
self.outln('#include "epoxy/{0}.h"'.format(self.target))
self.outln('')
self.outln('#ifdef __GNUC__')
self.outln('#define EPOXY_NOINLINE __attribute__((noinline))')
self.outln('#elif defined (_MSC_VER)')
self.outln('#define EPOXY_NOINLINE __declspec(noinline)')
self.outln('#endif')
self.outln('struct dispatch_table {')
for func in self.sorted_functions:
self.outln(' {0} epoxy_{1};'.format(func.ptr_type, func.wrapped_name))
self.outln('};')
self.outln('')
# Early declaration, so we can declare the real thing at the
# bottom. (I want the function_ptr_resolver as the first
# per-GL-call code, since it's the most interesting to see
# when you search for the implementation of a call)
self.outln('#if USING_DISPATCH_TABLE')
self.outln('static inline struct dispatch_table *')
self.outln('get_dispatch_table(void);')
self.outln('')
self.outln('#endif')
self.write_provider_enums()
self.write_provider_enum_strings()
self.write_entrypoint_strings()
self.write_provider_resolver()
for func in self.sorted_functions:
self.write_function_ptr_resolver(func)
for func in self.sorted_functions:
self.write_thunks(func)
self.outln('')
self.outln('#if USING_DISPATCH_TABLE')
self.outln('static struct dispatch_table resolver_table = {')
for func in self.sorted_functions:
self.outln(' epoxy_{0}_dispatch_table_rewrite_ptr, /* {0} */'.format(func.wrapped_name))
self.outln('};')
self.outln('')
self.outln('uint32_t {0}_tls_index;'.format(self.target))
self.outln('uint32_t {0}_tls_size = sizeof(struct dispatch_table);'.format(self.target))
self.outln('')
self.outln('static inline struct dispatch_table *')
self.outln('get_dispatch_table(void)')
self.outln('{')
self.outln(' return TlsGetValue({0}_tls_index);'.format(self.target))
self.outln('}')
self.outln('')
self.outln('void')
self.outln('{0}_init_dispatch_table(void)'.format(self.target))
self.outln('{')
self.outln(' struct dispatch_table *dispatch_table = get_dispatch_table();')
self.outln(' memcpy(dispatch_table, &resolver_table, sizeof(resolver_table));')
self.outln('}')
self.outln('')
self.outln('void')
self.outln('{0}_switch_to_dispatch_table(void)'.format(self.target))
self.outln('{')
for func in self.sorted_functions:
self.outln(' epoxy_{0} = epoxy_{0}_dispatch_table_thunk;'.format(func.wrapped_name))
self.outln('}')
self.outln('')
self.outln('#endif /* !USING_DISPATCH_TABLE */')
for func in self.sorted_functions:
self.write_function_pointer(func)
def close(self):
if self.out_file:
self.out_file.close()
self.out_file = None
argparser = argparse.ArgumentParser(description='Generate GL dispatch wrappers.')
argparser.add_argument('files', metavar='file.xml', nargs='+', help='GL API XML files to be parsed')
argparser.add_argument('--outputdir', metavar='dir', required=False, help='Destination directory for files (default to current dir)')
argparser.add_argument('--includedir', metavar='dir', required=False, help='Destination directory for headers')
argparser.add_argument('--srcdir', metavar='dir', required=False, help='Destination directory for source')
argparser.add_argument('--source', dest='source', action='store_true', required=False, help='Generate the source file')
argparser.add_argument('--no-source', dest='source', action='store_false', required=False, help='Do not generate the source file')
argparser.add_argument('--header', dest='header', action='store_true', required=False, help='Generate the header file')
argparser.add_argument('--no-header', dest='header', action='store_false', required=False, help='Do not generate the header file')
args = argparser.parse_args()
if args.outputdir:
outputdir = args.outputdir
else:
outputdir = os.getcwd()
if args.includedir:
includedir = args.includedir
else:
includedir = outputdir
if args.srcdir:
srcdir = args.srcdir
else:
srcdir = outputdir
build_source = args.source
build_header = args.header
if not build_source and not build_header:
build_source = True
build_header = True
for f in args.files:
name = os.path.basename(f).split('.xml')[0]
generator = Generator(name)
generator.parse(f)
generator.drop_weird_glx_functions()
# This is an ANSI vs Unicode function, handled specially by
# include/epoxy/wgl.h
if 'wglUseFontBitmaps' in generator.functions:
del generator.functions['wglUseFontBitmaps']
generator.sort_functions()
generator.resolve_aliases()
generator.fixup_bootstrap_function('glGetString',
'epoxy_get_bootstrap_proc_address({0})')
generator.fixup_bootstrap_function('glGetIntegerv',
'epoxy_get_bootstrap_proc_address({0})')
# While this is technically exposed as a GLX extension, it's
# required to be present as a public symbol by the Linux OpenGL
# ABI.
generator.fixup_bootstrap_function('glXGetProcAddress',
'epoxy_glx_dlsym({0})')
generator.prepare_provider_enum()
if build_header:
generator.write_header(os.path.join(includedir, name + '_generated.h'))
if build_source:
generator.write_source(os.path.join(srcdir, name + '_generated_dispatch.c'))
generator.close()
3p-libepoxy-master/libepoxy/src/meson.build 0000664 0000000 0000000 00000006104 14156730761 0021321 0 ustar 00root root 0000000 0000000 # Configuration file
configure_file(output: 'config.h', configuration: conf)
# List of generated sources:
# - name of the generated file
# - registry source file
# - additional sources
generated_sources = [
[ 'gl_generated_dispatch.c', gl_registry, [ 'dispatch_common.c', 'dispatch_common.h' ] ]
]
if build_egl
generated_sources += [ [ 'egl_generated_dispatch.c', egl_registry, 'dispatch_egl.c' ] ]
endif
if build_glx
generated_sources += [ [ 'glx_generated_dispatch.c', glx_registry, 'dispatch_glx.c' ] ]
endif
if build_wgl
generated_sources += [ [ 'wgl_generated_dispatch.c', wgl_registry, 'dispatch_wgl.c' ] ]
endif
gen_sources = [ ]
sources = [ ]
foreach g: generated_sources
gen_source = g[0]
registry = g[1]
source = g[2]
generated = custom_target(gen_source,
input: registry,
output: [ gen_source ],
command: [
gen_dispatch_py,
'--source',
'--no-header',
'--outputdir=@OUTDIR@',
'@INPUT@',
])
gen_sources += [ generated ]
sources += [ source ]
endforeach
epoxy_sources = sources + gen_sources
common_ldflags = []
if host_system == 'linux' and cc.get_id() == 'gcc'
common_ldflags += cc.get_supported_link_arguments([ '-Wl,-Bsymbolic-functions', '-Wl,-z,relro' ])
endif
# Maintain compatibility with autotools; see: https://github.com/anholt/libepoxy/issues/108
darwin_versions = [1, '1.0']
epoxy_deps = [ dl_dep, ]
if host_system == 'windows'
epoxy_deps += [ opengl32_dep, gdi32_dep ]
endif
libepoxy = library(
'epoxy',
sources: epoxy_sources + epoxy_headers,
version: '0.0.0',
darwin_versions: darwin_versions,
install: true,
dependencies: epoxy_deps,
include_directories: libepoxy_inc,
c_args: common_cflags + visibility_cflags,
link_args: common_ldflags,
)
epoxy_has_glx = build_glx ? '1' : '0'
epoxy_has_egl = build_egl ? '1' : '0'
epoxy_has_wgl = build_wgl ? '1' : '0'
libepoxy_dep = declare_dependency(
link_with: libepoxy,
include_directories: libepoxy_inc,
dependencies: epoxy_deps,
sources: epoxy_headers,
variables: {
'epoxy_has_glx': epoxy_has_glx,
'epoxy_has_egl': epoxy_has_egl,
'epoxy_has_wgl': epoxy_has_wgl,
},
)
# We don't want to add these dependencies to the library, as they are
# not needed when building Epoxy; we do want to add them to the generated
# pkg-config file, for consumers of Epoxy
gl_reqs = []
if gl_dep.found() and gl_dep.type_name() == 'pkgconfig'
gl_reqs += 'gl'
endif
if build_egl and egl_dep.found() and egl_dep.type_name() == 'pkgconfig'
gl_reqs += 'egl'
endif
pkg = import('pkgconfig')
pkg.generate(
libraries: libepoxy,
name: 'epoxy',
description: 'GL dispatch library',
version: meson.project_version(),
variables: [
'epoxy_has_glx=@0@'.format(epoxy_has_glx),
'epoxy_has_egl=@0@'.format(epoxy_has_egl),
'epoxy_has_wgl=@0@'.format(epoxy_has_wgl),
],
filebase: 'epoxy',
requires_private: ' '.join(gl_reqs),
)
3p-libepoxy-master/libepoxy/test/ 0000775 0000000 0000000 00000000000 14156730761 0017346 5 ustar 00root root 0000000 0000000 3p-libepoxy-master/libepoxy/test/cgl_core.c 0000664 0000000 0000000 00000004022 14156730761 0021265 0 ustar 00root root 0000000 0000000 /* This is a copy of the test used by HomeBrew's libepoxy recipe,
* originally written by Mikko Lehtonen.
*
* The Homebrew recipe is released under the BSD 2-Clause license.
*
* Copyright (c) 2009-present, Homebrew contributors
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice, this
* list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include
#include
#include
#include
#include
#include
int
main (void)
{
CGLPixelFormatAttribute attribs[] = {0};
CGLPixelFormatObj pix;
CGLContextObj ctx;
int npix;
CGLChoosePixelFormat(attribs, &pix, &npix);
CGLCreateContext(pix, (void *) 0, &ctx);
glClear(GL_COLOR_BUFFER_BIT);
CGLReleaseContext(ctx);
CGLReleasePixelFormat(pix);
return 0;
}
3p-libepoxy-master/libepoxy/test/cgl_epoxy_api.c 0000664 0000000 0000000 00000005135 14156730761 0022340 0 ustar 00root root 0000000 0000000 /*
* Copyright 2018 Emmanuele Bassi
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
/**
* @file cgl_epoxy_api.c
*
* Tests the Epoxy API using the CoreGraphics OpenGL framework.
*/
#include
#include
#include
#include
#include
#include
int
main (void)
{
CGLPixelFormatAttribute attribs[] = {0};
CGLPixelFormatObj pix;
CGLContextObj ctx;
const char *string;
bool pass = true;
int npix;
GLint shader;
CGLChoosePixelFormat(attribs, &pix, &npix);
CGLCreateContext(pix, (void *) 0, &ctx);
CGLSetCurrentContext(ctx);
if (!epoxy_is_desktop_gl()) {
fputs("Claimed not to be desktop\n", stderr);
pass = false;
}
if (epoxy_gl_version() < 20) {
fprintf(stderr, "Claimed to be GL version %d\n",
epoxy_gl_version());
pass = false;
}
if (epoxy_glsl_version() < 100) {
fprintf(stderr, "Claimed to have GLSL version %d\n",
epoxy_glsl_version());
pass = false;
}
string = (const char *)glGetString(GL_VERSION);
printf("GL version: %s - Epoxy: %d\n", string, epoxy_gl_version());
string = (const char *)glGetString(GL_SHADING_LANGUAGE_VERSION);
printf("GLSL version: %s - Epoxy: %d\n", string, epoxy_glsl_version());
shader = glCreateShader(GL_FRAGMENT_SHADER);
pass = glIsShader(shader);
CGLSetCurrentContext(NULL);
CGLReleaseContext(ctx);
CGLReleasePixelFormat(pix);
return pass != true;
}
3p-libepoxy-master/libepoxy/test/dlwrap.c 0000664 0000000 0000000 00000023712 14156730761 0021010 0 ustar 00root root 0000000 0000000 /* Copyright © 2013, Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
/** @file dlwrap.c
*
* Implements a wrapper for dlopen() and dlsym() so that epoxy will
* end up finding symbols from the testcases named
* "override_EGL_eglWhatever()" or "override_GLES2_glWhatever()" or
* "override_GL_glWhatever()" when it tries to dlopen() and dlsym()
* the real GL or EGL functions in question.
*
* This lets us simulate some target systems in the test suite, or
* just stub out GL functions so we can be sure of what's being
* called.
*/
/* dladdr is a glibc extension */
#define _GNU_SOURCE
#include
#include
#include
#include
#include
#include
#include "dlwrap.h"
#define STRNCMP_LITERAL(var, literal) \
strncmp ((var), (literal), sizeof (literal) - 1)
#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof(arr[0]))
void *libfips_handle;
typedef void *(*fips_dlopen_t)(const char *filename, int flag);
typedef void *(*fips_dlsym_t)(void *handle, const char *symbol);
void *override_EGL_eglGetProcAddress(const char *name);
void *override_GL_glXGetProcAddress(const char *name);
void *override_GL_glXGetProcAddressARB(const char *name);
void __dlclose(void *handle);
static struct libwrap {
const char *filename;
const char *symbol_prefix;
void *handle;
} wrapped_libs[] = {
{ "libGL.so", "GL", NULL },
{ "libEGL.so", "EGL", NULL },
{ "libGLESv2.so", "GLES2", NULL },
{ "libOpenGL.so", "GL", NULL},
};
/* Match 'filename' against an internal list of libraries for which
* libfips has wrappers.
*
* Returns true and sets *index_ret if a match is found.
* Returns false if no match is found. */
static struct libwrap *
find_wrapped_library(const char *filename)
{
unsigned i;
if (!filename)
return NULL;
for (i = 0; i < ARRAY_SIZE(wrapped_libs); i++) {
if (strncmp(wrapped_libs[i].filename, filename,
strlen(wrapped_libs[i].filename)) == 0) {
return &wrapped_libs[i];
}
}
return NULL;
}
/* Many (most?) OpenGL programs dlopen libGL.so.1 rather than linking
* against it directly, which means they would not be seeing our
* wrapped GL symbols via LD_PRELOAD. So we catch the dlopen in a
* wrapper here and redirect it to our library.
*/
void *
dlopen(const char *filename, int flag)
{
void *ret;
struct libwrap *wrap;
/* Before deciding whether to redirect this dlopen to our own
* library, we call the real dlopen. This assures that any
* expected side-effects from loading the intended library are
* resolved. Below, we may still return a handle pointing to
* our own library, and not what is opened here. */
ret = dlwrap_real_dlopen(filename, flag);
/* If filename is not a wrapped library, just return real dlopen */
wrap = find_wrapped_library(filename);
if (!wrap)
return ret;
wrap->handle = ret;
/* We use wrapped_libs as our handles to libraries. */
return wrap;
}
/**
* Wraps dlclose to hide our faked handles from it.
*/
void
__dlclose(void *handle)
{
struct libwrap *wrap = handle;
if (wrap < wrapped_libs ||
wrap >= wrapped_libs + ARRAY_SIZE(wrapped_libs)) {
void (*real_dlclose)(void *handle) = dlwrap_real_dlsym(RTLD_NEXT, "__dlclose");
real_dlclose(handle);
}
}
void *
dlwrap_real_dlopen(const char *filename, int flag)
{
static fips_dlopen_t real_dlopen = NULL;
if (!real_dlopen) {
real_dlopen = (fips_dlopen_t) dlwrap_real_dlsym(RTLD_NEXT, "dlopen");
if (!real_dlopen) {
fputs("Error: Failed to find symbol for dlopen.\n", stderr);
exit(1);
}
}
return real_dlopen(filename, flag);
}
/**
* Return the dlsym() on the application's namespace for
* "override__"
*/
static void *
wrapped_dlsym(const char *prefix, const char *name)
{
char *wrap_name;
void *symbol;
if (asprintf(&wrap_name, "override_%s_%s", prefix, name) < 0) {
fputs("Error: Failed to allocate memory.\n", stderr);
abort();
}
symbol = dlwrap_real_dlsym(RTLD_DEFAULT, wrap_name);
free(wrap_name);
return symbol;
}
/* Since we redirect dlopens of libGL.so and libEGL.so to libfips we
* need to ensure that dlysm succeeds for all functions that might be
* defined in the real, underlying libGL library. But we're far too
* lazy to implement wrappers for function that would simply
* pass-through, so instead we also wrap dlysm and arrange for it to
* pass things through with RTLD_next if libfips does not have the
* function desired. */
void *
dlsym(void *handle, const char *name)
{
struct libwrap *wrap = handle;
/* Make sure that handle is actually one of our wrapped libs. */
if (wrap < wrapped_libs ||
wrap >= wrapped_libs + ARRAY_SIZE(wrapped_libs)) {
wrap = NULL;
}
/* Failing that, anything specifically requested from the
* libfips library should be redirected to a real GL
* library. */
if (wrap) {
void *symbol = wrapped_dlsym(wrap->symbol_prefix, name);
if (symbol)
return symbol;
else
return dlwrap_real_dlsym(wrap->handle, name);
}
/* And anything else is some unrelated dlsym. Just pass it
* through. (This also covers the cases of lookups with
* special handles such as RTLD_DEFAULT or RTLD_NEXT.)
*/
return dlwrap_real_dlsym(handle, name);
}
void *
dlwrap_real_dlsym(void *handle, const char *name)
{
static fips_dlsym_t real_dlsym = NULL;
if (!real_dlsym) {
/* FIXME: This brute-force, hard-coded searching for a versioned
* symbol is really ugly. The only reason I'm doing this is because
* I need some way to lookup the "dlsym" function in libdl, but
* I can't use 'dlsym' to do it. So dlvsym works, but forces me
* to guess what the right version is.
*
* Potential fixes here:
*
* 1. Use libelf to actually inspect libdl.so and
* find the right version, (finding the right
* libdl.so can be made easier with
* dl_iterate_phdr).
*
* 2. Use libelf to find the offset of the 'dlsym'
* symbol within libdl.so, (and then add this to
* the base address at which libdl.so is loaded
* as reported by dl_iterate_phdr).
*
* In the meantime, I'll just keep augmenting this
* hard-coded version list as people report bugs. */
const char *version[] = {
"GLIBC_2.17",
"GLIBC_2.4",
"GLIBC_2.3",
"GLIBC_2.2.5",
"GLIBC_2.2",
"GLIBC_2.0",
"FBSD_1.0"
};
int num_versions = sizeof(version) / sizeof(version[0]);
int i;
for (i = 0; i < num_versions; i++) {
real_dlsym = (fips_dlsym_t) dlvsym(RTLD_NEXT, "dlsym", version[i]);
if (real_dlsym)
break;
}
if (i == num_versions) {
fputs("Internal error: Failed to find real dlsym\n", stderr);
fputs("This may be a simple matter of fips not knowing about the version of GLIBC that\n"
"your program is using. Current known versions are:\n\n\t",
stderr);
for (i = 0; i < num_versions; i++)
fprintf(stderr, "%s ", version[i]);
fputs("\n\nYou can inspect your version by first finding libdl.so.2:\n"
"\n"
"\tldd | grep libdl.so\n"
"\n"
"And then inspecting the version attached to the dlsym symbol:\n"
"\n"
"\treadelf -s /path/to/libdl.so.2 | grep dlsym\n"
"\n"
"And finally, adding the version to dlwrap.c:dlwrap_real_dlsym.\n",
stderr);
exit(1);
}
}
return real_dlsym(handle, name);
}
void *
override_GL_glXGetProcAddress(const char *name)
{
void *symbol;
symbol = wrapped_dlsym("GL", name);
if (symbol)
return symbol;
return DEFER_TO_GL("libGL.so.1", override_GL_glXGetProcAddress,
"glXGetProcAddress", (name));
}
void *
override_GL_glXGetProcAddressARB(const char *name)
{
void *symbol;
symbol = wrapped_dlsym("GL", name);
if (symbol)
return symbol;
return DEFER_TO_GL("libGL.so.1", override_GL_glXGetProcAddressARB,
"glXGetProcAddressARB", (name));
}
void *
override_EGL_eglGetProcAddress(const char *name)
{
void *symbol;
if (!STRNCMP_LITERAL(name, "gl")) {
symbol = wrapped_dlsym("GLES2", name);
if (symbol)
return symbol;
}
if (!STRNCMP_LITERAL(name, "egl")) {
symbol = wrapped_dlsym("EGL", name);
if (symbol)
return symbol;
}
return DEFER_TO_GL("libEGL.so.1", override_EGL_eglGetProcAddress,
"eglGetProcAddress", (name));
}
3p-libepoxy-master/libepoxy/test/dlwrap.h 0000664 0000000 0000000 00000005361 14156730761 0021015 0 ustar 00root root 0000000 0000000 /* Copyright © 2013, Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifndef DLWRAP_H
#define DLWRAP_H
#define _GNU_SOURCE
#include
/* Call the *real* dlopen. We have our own wrapper for dlopen that, of
* necessity must use claim the symbol 'dlopen'. So whenever anything
* internal needs to call the real, underlying dlopen function, the
* thing to call is dlwrap_real_dlopen.
*/
void *
dlwrap_real_dlopen(const char *filename, int flag);
/* Perform a dlopen on the libfips library itself.
*
* Many places in fips need to lookup symbols within the libfips
* library itself, (and not in any other library). This function
* provides a reliable way to get a handle for performing such
* lookups.
*
* The returned handle can be passed to dlwrap_real_dlsym for the
* lookups. */
void *
dlwrap_dlopen_libfips(void);
/* Call the *real* dlsym. We have our own wrapper for dlsym that, of
* necessity must use claim the symbol 'dlsym'. So whenever anything
* internal needs to call the real, underlying dlysm function, the
* thing to call is dlwrap_real_dlsym.
*/
void *
dlwrap_real_dlsym(void *handle, const char *symbol);
#define DEFER_TO_GL(library, func, name, args) \
({ \
void *lib = dlwrap_real_dlopen(library, RTLD_LAZY | RTLD_LOCAL); \
typeof(&func) real_func = dlwrap_real_dlsym(lib, name); \
/* gcc extension -- func's return value is the return value of \
* the statement. \
*/ \
real_func args; \
})
#endif
3p-libepoxy-master/libepoxy/test/egl_common.c 0000664 0000000 0000000 00000003424 14156730761 0021634 0 ustar 00root root 0000000 0000000 /*
* Copyright © 2013 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
#include
#include
#include
#include "egl_common.h"
/**
* Do whatever it takes to get us an EGL display for the system.
*
* This needs to be ported to other window systems.
*/
EGLDisplay *
get_egl_display_or_skip(void)
{
Display *dpy = XOpenDisplay(NULL);
EGLint major, minor;
EGLDisplay *edpy;
bool ok;
if (!dpy)
errx(77, "couldn't open display\n");
edpy = eglGetDisplay(dpy);
if (!edpy)
errx(1, "Couldn't get EGL display for X11 Display.\n");
ok = eglInitialize(edpy, &major, &minor);
if (!ok)
errx(1, "eglInitialize() failed\n");
return edpy;
}
3p-libepoxy-master/libepoxy/test/egl_common.h 0000664 0000000 0000000 00000002261 14156730761 0021637 0 ustar 00root root 0000000 0000000 /*
* Copyright © 2013 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
EGLDisplay *
get_egl_display_or_skip(void);
3p-libepoxy-master/libepoxy/test/egl_epoxy_api.c 0000664 0000000 0000000 00000010210 14156730761 0022330 0 ustar 00root root 0000000 0000000 /*
* Copyright 2018 Emmanuele Bassi
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
/**
* @file epoxy_api.c
*
* Tests the Epoxy API using EGL.
*/
#ifdef __sun
#define __EXTENSIONS__
#else
#define _GNU_SOURCE
#endif
#include
#include
#include
#include
#include
#include "epoxy/gl.h"
#include "epoxy/egl.h"
#include "egl_common.h"
static bool
make_egl_current_and_test(EGLDisplay *dpy, EGLContext ctx)
{
const char *string;
GLuint shader;
bool pass = true;
eglMakeCurrent(dpy, NULL, NULL, ctx);
if (!epoxy_is_desktop_gl()) {
fputs("Claimed to be desktop\n", stderr);
pass = false;
}
if (epoxy_gl_version() < 20) {
fprintf(stderr, "Claimed to be GL version %d\n",
epoxy_gl_version());
pass = false;
}
if (epoxy_glsl_version() < 100) {
fprintf(stderr, "Claimed to have GLSL version %d\n",
epoxy_glsl_version());
pass = false;
}
string = (const char *)glGetString(GL_VERSION);
printf("GL version: %s - Epoxy: %d\n", string, epoxy_gl_version());
string = (const char *)glGetString(GL_SHADING_LANGUAGE_VERSION);
printf("GLSL version: %s - Epoxy: %d\n", string, epoxy_glsl_version());
shader = glCreateShader(GL_FRAGMENT_SHADER);
pass = glIsShader(shader);
return pass;
}
static void
init_egl(EGLDisplay *dpy, EGLContext *out_ctx)
{
static const EGLint config_attribs[] = {
EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
EGL_RED_SIZE, 1,
EGL_GREEN_SIZE, 1,
EGL_BLUE_SIZE, 1,
EGL_RENDERABLE_TYPE, EGL_OPENGL_BIT,
EGL_NONE
};
static const EGLint context_attribs[] = {
EGL_CONTEXT_CLIENT_VERSION, 2,
EGL_NONE
};
EGLContext ctx;
EGLConfig cfg;
EGLint count;
if (!epoxy_has_egl_extension(dpy, "EGL_KHR_surfaceless_context"))
errx(77, "Test requires EGL_KHR_surfaceless_context");
if (!eglBindAPI(EGL_OPENGL_API))
errx(77, "Couldn't initialize EGL with desktop GL\n");
if (!eglChooseConfig(dpy, config_attribs, &cfg, 1, &count))
errx(77, "Couldn't get an EGLConfig\n");
ctx = eglCreateContext(dpy, cfg, NULL, context_attribs);
if (!ctx)
errx(77, "Couldn't create a GL context\n");
*out_ctx = ctx;
}
int
main(int argc, char **argv)
{
bool pass = true;
EGLContext egl_ctx;
EGLDisplay *dpy = get_egl_display_or_skip();
const char *extensions = eglQueryString(dpy, EGL_EXTENSIONS);
char *first_space;
char *an_extension;
/* We don't have any extensions guaranteed by the ABI, so for the
* touch test we just check if the first one is reported to be there.
*/
first_space = strstr(extensions, " ");
if (first_space) {
an_extension = strndup(extensions, first_space - extensions);
} else {
an_extension = strdup(extensions);
}
if (!epoxy_extension_in_string(extensions, an_extension))
errx(1, "Implementation reported absence of %s", an_extension);
free(an_extension);
init_egl(dpy, &egl_ctx);
pass = make_egl_current_and_test(dpy, egl_ctx);
return pass != true;
}
3p-libepoxy-master/libepoxy/test/egl_gl.c 0000664 0000000 0000000 00000007061 14156730761 0020747 0 ustar 00root root 0000000 0000000 /*
* Copyright © 2014 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
/**
* @file egl_gl.c
*
* Tests that epoxy works with EGL using desktop OpenGL.
*/
#define _GNU_SOURCE
#include
#include
#include
#include
#include
#include
#include "epoxy/gl.h"
#include "epoxy/egl.h"
#include "epoxy/glx.h"
#include "egl_common.h"
#include "glx_common.h"
#include "dlwrap.h"
static bool
make_egl_current_and_test(EGLDisplay *dpy, EGLContext ctx)
{
const char *string;
GLuint shader;
bool pass = true;
eglMakeCurrent(dpy, NULL, NULL, ctx);
if (!epoxy_is_desktop_gl()) {
fputs("Claimed to be desktop\n", stderr);
pass = false;
}
if (epoxy_gl_version() < 20) {
fprintf(stderr, "Claimed to be GL version %d\n",
epoxy_gl_version());
pass = false;
}
string = (const char *)glGetString(GL_VERSION);
printf("GL version: %s\n", string);
shader = glCreateShader(GL_FRAGMENT_SHADER);
pass = glIsShader(shader);
return pass;
}
static void
init_egl(EGLDisplay **out_dpy, EGLContext *out_ctx)
{
EGLDisplay *dpy = get_egl_display_or_skip();
static const EGLint config_attribs[] = {
EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
EGL_RED_SIZE, 1,
EGL_GREEN_SIZE, 1,
EGL_BLUE_SIZE, 1,
EGL_RENDERABLE_TYPE, EGL_OPENGL_BIT,
EGL_NONE
};
static const EGLint context_attribs[] = {
EGL_CONTEXT_CLIENT_VERSION, 2,
EGL_NONE
};
EGLContext ctx;
EGLConfig cfg;
EGLint count;
if (!epoxy_has_egl_extension(dpy, "EGL_KHR_surfaceless_context"))
errx(77, "Test requires EGL_KHR_surfaceless_context");
if (!eglBindAPI(EGL_OPENGL_API))
errx(77, "Couldn't initialize EGL with desktop GL\n");
if (!eglChooseConfig(dpy, config_attribs, &cfg, 1, &count))
errx(77, "Couldn't get an EGLConfig\n");
ctx = eglCreateContext(dpy, cfg, NULL, context_attribs);
if (!ctx)
errx(77, "Couldn't create a GL context\n");
*out_dpy = dpy;
*out_ctx = ctx;
}
int
main(int argc, char **argv)
{
bool pass = true;
EGLDisplay *egl_dpy;
EGLContext egl_ctx;
/* Force epoxy to have loaded both EGL and GLX libs already -- we
* can't assume anything about symbol resolution based on having
* EGL or GLX loaded.
*/
(void)glXGetCurrentContext();
(void)eglGetCurrentContext();
init_egl(&egl_dpy, &egl_ctx);
pass = make_egl_current_and_test(egl_dpy, egl_ctx) && pass;
return pass != true;
}
3p-libepoxy-master/libepoxy/test/egl_has_extension_nocontext.c 0000664 0000000 0000000 00000004622 14156730761 0025315 0 ustar 00root root 0000000 0000000 /*
* Copyright © 2013 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
/**
* @file egl_has_extension_nocontext.c
*
* Catches a bug in early development where eglGetProcAddress() with
* no context bound would fail out in dispatch.
*/
#ifdef __sun
#define __EXTENSIONS__
#else
#define _GNU_SOURCE
#endif
#include
#include
#include
#include
#include
#include "epoxy/gl.h"
#include "epoxy/egl.h"
#include "egl_common.h"
int
main(int argc, char **argv)
{
bool pass = true;
EGLDisplay *dpy = get_egl_display_or_skip();
const char *extensions = eglQueryString(dpy, EGL_EXTENSIONS);
char *first_space;
char *an_extension;
/* We don't have any extensions guaranteed by the ABI, so for the
* touch test we just check if the first one is reported to be there.
*/
first_space = strstr(extensions, " ");
if (first_space) {
an_extension = strndup(extensions, first_space - extensions);
} else {
an_extension = strdup(extensions);
}
if (!epoxy_has_egl_extension(dpy, an_extension))
errx(1, "Implementation reported absence of %s", an_extension);
free(an_extension);
if (epoxy_has_egl_extension(dpy, "GLX_ARB_ham_sandwich"))
errx(1, "Implementation reported presence of GLX_ARB_ham_sandwich");
return pass != true;
}
3p-libepoxy-master/libepoxy/test/egl_without_glx.c 0000664 0000000 0000000 00000011073 14156730761 0022720 0 ustar 00root root 0000000 0000000 /*
* Copyright © 2014 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
/**
* @file egl_without_glx.c
*
* Tries to test operation of the library on a GL stack with EGL and
* GLES but no GLX or desktop GL (such as Arm's Mali GLES3 drivers).
* This test is varied by the GLES_VERSION defined at compile time to
* test either a GLES1-only or a GLES2-only system.
*/
#define _GNU_SOURCE
#include
#include
#include
#include
#include
#include
#include "epoxy/gl.h"
#include "epoxy/egl.h"
#include "egl_common.h"
/**
* Wraps the system dlopen(), which libepoxy will end up calling when
* it tries to dlopen() the API libraries, and errors out the
* libraries we're trying to simulate not being installed on the
* system.
*/
void *
dlopen(const char *filename, int flag)
{
void * (*dlopen_unwrapped)(const char *filename, int flag);
if (filename) {
if (!strcmp(filename, "libGL.so.1"))
return NULL;
#if GLES_VERSION == 2
if (!strcmp(filename, "libGLESv1_CM.so.1"))
return NULL;
#else
if (!strcmp(filename, "libGLESv2.so.2"))
return NULL;
#endif
}
dlopen_unwrapped = dlsym(RTLD_NEXT, "dlopen");
assert(dlopen_unwrapped);
return dlopen_unwrapped(filename, flag);
}
static EGLenum last_api;
static EGLenum extra_error = EGL_SUCCESS;
/**
* Override of the real libEGL's eglBindAPI to simulate the target
* system's eglBindAPI.
*/
static EGLBoolean
override_eglBindAPI(EGLenum api)
{
void *egl = dlopen("libEGL.so.1", RTLD_LAZY | RTLD_LOCAL);
EGLBoolean (*real_eglBindAPI)(EGLenum api) = dlsym(egl, "eglBindAPI");
last_api = api;
if (api == EGL_OPENGL_API) {
extra_error = EGL_BAD_PARAMETER;
return EGL_FALSE;
}
assert(real_eglBindAPI);
return real_eglBindAPI(api);
}
/**
* Override of the real libEGL's eglGetError() to feed back the error
* that might have been generated by override_eglBindAPI().
*/
static EGLint
override_eglGetError(void)
{
void *egl = dlopen("libEGL.so.1", RTLD_LAZY | RTLD_LOCAL);
EGLint (*real_eglGetError)(void) = dlsym(egl, "eglGetError");
if (extra_error != EGL_SUCCESS) {
EGLenum error = extra_error;
extra_error = EGL_SUCCESS;
return error;
}
assert(real_eglGetError);
return real_eglGetError();
}
int
main(int argc, char **argv)
{
bool pass = true;
EGLDisplay *dpy = get_egl_display_or_skip();
EGLint context_attribs[] = {
EGL_CONTEXT_CLIENT_VERSION, GLES_VERSION,
EGL_NONE
};
EGLConfig cfg;
EGLint config_attribs[] = {
EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
EGL_RED_SIZE, 1,
EGL_GREEN_SIZE, 1,
EGL_BLUE_SIZE, 1,
EGL_RENDERABLE_TYPE, EGL_OPENGL_BIT,
EGL_NONE
};
EGLint count;
EGLContext ctx;
const unsigned char *string;
epoxy_eglBindAPI = override_eglBindAPI;
epoxy_eglGetError = override_eglGetError;
if (!epoxy_has_egl_extension(dpy, "EGL_KHR_surfaceless_context"))
errx(77, "Test requires EGL_KHR_surfaceless_context");
eglBindAPI(EGL_OPENGL_ES_API);
if (!eglChooseConfig(dpy, config_attribs, &cfg, 1, &count))
errx(77, "Couldn't get an EGLConfig\n");
ctx = eglCreateContext(dpy, cfg, NULL, context_attribs);
if (!ctx)
errx(77, "Couldn't create a GLES%d context\n", GLES_VERSION);
eglMakeCurrent(dpy, NULL, NULL, ctx);
string = glGetString(GL_VERSION);
printf("GL_VERSION: %s\n", string);
assert(eglGetError() == EGL_SUCCESS);
return pass != true;
}
3p-libepoxy-master/libepoxy/test/gl_version.c 0000664 0000000 0000000 00000005770 14156730761 0021672 0 ustar 00root root 0000000 0000000 /*
* Copyright © 2018 Broadcom
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
#include
#include
#include "epoxy/gl.h"
GLenum mock_enum;
const char *mock_gl_version;
const char *mock_glsl_version;
static const GLubyte * EPOXY_CALLSPEC override_glGetString(GLenum name)
{
switch (name) {
case GL_VERSION:
return (GLubyte *)mock_gl_version;
case GL_SHADING_LANGUAGE_VERSION:
return (GLubyte *)mock_glsl_version;
default:
assert(!"unexpected glGetString() enum");
return 0;
}
}
static bool
test_version(const char *gl_string, int gl_version,
const char *glsl_string, int glsl_version)
{
int epoxy_version;
mock_gl_version = gl_string;
mock_glsl_version = glsl_string;
epoxy_version = epoxy_gl_version();
if (epoxy_version != gl_version) {
fprintf(stderr,
"glGetString(GL_VERSION) = \"%s\" returned epoxy_gl_version() "
"%d instead of %d\n", gl_string, epoxy_version, gl_version);
return false;
}
epoxy_version = epoxy_glsl_version();
if (epoxy_version != glsl_version) {
fprintf(stderr,
"glGetString() = \"%s\" returned epoxy_glsl_version() "
"%d instead of %d\n", glsl_string, epoxy_version, glsl_version);
return false;
}
return true;
}
int
main(int argc, char **argv)
{
bool pass = true;
epoxy_glGetString = override_glGetString;
pass = pass && test_version("3.0 Mesa 13.0.6", 30,
"1.30", 130);
pass = pass && test_version("OpenGL ES 2.0 Mesa 20.1.0-devel (git-4bb19a330e)", 20,
"OpenGL ES GLSL ES 1.0.16", 100);
pass = pass && test_version("OpenGL ES 3.2 Mesa 18.3.0-devel", 32,
"OpenGL ES GLSL ES 3.20", 320);
pass = pass && test_version("4.5.0 NVIDIA 384.130", 45,
"4.50", 450);
return pass != true;
}
3p-libepoxy-master/libepoxy/test/glx_alias_prefer_same_name.c 0000664 0000000 0000000 00000004401 14156730761 0025024 0 ustar 00root root 0000000 0000000 /*
* Copyright © 2013 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
/**
* @file glx_gles2.c
*
* Catches a bug where a GLES2 context using
* GLX_EXT_create_context_es2_profile would try to find the symbols in
* libGLESv2.so.2 instead of libGL.so.1.
*/
#include
#include
#include
#include "epoxy/gl.h"
#include "epoxy/glx.h"
#include
#include "glx_common.h"
static Display *dpy;
static int last_call;
#define CORE_FUNC_VAL 100
#define EXT_FUNC_VAL 101
void
override_GL_glBindTexture(GLenum target);
void
override_GL_glBindTextureEXT(GLenum target);
void
override_GL_glBindTexture(GLenum target)
{
last_call = CORE_FUNC_VAL;
}
void
override_GL_glBindTextureEXT(GLenum target)
{
last_call = EXT_FUNC_VAL;
}
int
main(int argc, char **argv)
{
bool pass = true;
dpy = get_display_or_skip();
make_glx_context_current_or_skip(dpy);
if (!epoxy_has_gl_extension("GL_EXT_texture_object"))
errx(77, "Test requires GL_EXT_texture_object");
glBindTexture(GL_TEXTURE_2D, 1);
pass = pass && last_call == CORE_FUNC_VAL;
glBindTextureEXT(GL_TEXTURE_2D, 1);
pass = pass && last_call == EXT_FUNC_VAL;
return pass != true;
}
3p-libepoxy-master/libepoxy/test/glx_beginend.c 0000664 0000000 0000000 00000006015 14156730761 0022141 0 ustar 00root root 0000000 0000000 /*
* Copyright © 2013 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
#include
#include
#include "epoxy/gl.h"
#include "epoxy/glx.h"
#include
#include "glx_common.h"
static Display *dpy;
static bool has_argb2101010;
static bool
test_with_epoxy(void)
{
glBegin(GL_TRIANGLES);
{
/* Hit a base entrypoint that won't call gl_version() */
glVertex2f(0, 0);
/* Hit an entrypoint that will call probably call gl_version() */
glMultiTexCoord4f(GL_TEXTURE0, 0.0, 0.0, 0.0, 0.0);
/* Hit an entrypoint that will probably call
* epoxy_conservative_has_extension();
*/
if (has_argb2101010) {
glTexCoordP4ui(GL_UNSIGNED_INT_2_10_10_10_REV, 0);
}
}
glEnd();
/* No error should have been generated in the process. */
return glGetError() == 0;
}
#undef glBegin
#undef glEnd
extern void glBegin(GLenum primtype);
extern void glEnd(void);
static bool
test_without_epoxy(void)
{
glBegin(GL_TRIANGLES);
{
/* Hit a base entrypoint that won't call gl_version() */
glVertex4f(0, 0, 0, 0);
/* Hit an entrypoint that will call probably call gl_version() */
glMultiTexCoord3f(GL_TEXTURE0, 0.0, 0.0, 0.0);
/* Hit an entrypoint that will probably call
* epoxy_conservative_has_extension();
*/
if (has_argb2101010) {
glTexCoordP3ui(GL_UNSIGNED_INT_2_10_10_10_REV, 0);
}
}
glEnd();
/* We can't make any assertions about error presence this time
* around. This test is just trying to catch segfaults.
*/
return true;
}
int
main(int argc, char **argv)
{
bool pass = true;
dpy = get_display_or_skip();
make_glx_context_current_or_skip(dpy);
has_argb2101010 =
epoxy_has_gl_extension("GL_ARB_vertex_type_2_10_10_10_rev");
pass = pass && test_with_epoxy();
pass = pass && test_without_epoxy();
return pass != true;
}
3p-libepoxy-master/libepoxy/test/glx_common.c 0000664 0000000 0000000 00000006337 14156730761 0021665 0 ustar 00root root 0000000 0000000 /*
* Copyright © 2009, 2013 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
#include
#include
#include
#include "glx_common.h"
Display *
get_display_or_skip(void)
{
Display *dpy = XOpenDisplay(NULL);
if (!dpy) {
fputs("couldn't open display\n", stderr);
exit(77);
}
return dpy;
}
XVisualInfo *
get_glx_visual(Display *dpy)
{
XVisualInfo *visinfo;
int attrib[] = {
GLX_RGBA,
GLX_RED_SIZE, 1,
GLX_GREEN_SIZE, 1,
GLX_BLUE_SIZE, 1,
GLX_DOUBLEBUFFER,
None
};
int screen = DefaultScreen(dpy);
visinfo = glXChooseVisual(dpy, screen, attrib);
if (visinfo == NULL) {
fputs("Couldn't get an RGBA, double-buffered visual\n", stderr);
exit(1);
}
return visinfo;
}
Window
get_glx_window(Display *dpy, XVisualInfo *visinfo, bool map)
{
XSetWindowAttributes window_attr;
unsigned long mask;
int screen = DefaultScreen(dpy);
Window root_win = RootWindow(dpy, screen);
Window win;
window_attr.background_pixel = 0;
window_attr.border_pixel = 0;
window_attr.colormap = XCreateColormap(dpy, root_win,
visinfo->visual, AllocNone);
window_attr.event_mask = StructureNotifyMask | ExposureMask |
KeyPressMask;
mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask;
win = XCreateWindow(dpy, root_win, 0, 0,
10, 10, /* width, height */
0, visinfo->depth, InputOutput,
visinfo->visual, mask, &window_attr);
return win;
}
void
make_glx_context_current_or_skip(Display *dpy)
{
GLXContext ctx;
XVisualInfo *visinfo = get_glx_visual(dpy);
Window win = get_glx_window(dpy, visinfo, false);
ctx = glXCreateContext(dpy, visinfo, False, True);
if (ctx == None) {
fputs("glXCreateContext failed\n", stderr);
exit(1);
}
glXMakeCurrent(dpy, win, ctx);
}
GLXFBConfig
get_fbconfig_for_visinfo(Display *dpy, XVisualInfo *visinfo)
{
int i, nconfigs;
GLXFBConfig ret = None, *configs;
configs = glXGetFBConfigs(dpy, visinfo->screen, &nconfigs);
if (!configs)
return None;
for (i = 0; i < nconfigs; i++) {
int v;
if (glXGetFBConfigAttrib(dpy, configs[i], GLX_VISUAL_ID, &v))
continue;
if (v == visinfo->visualid) {
ret = configs[i];
break;
}
}
XFree(configs);
return ret;
}
3p-libepoxy-master/libepoxy/test/glx_common.h 0000664 0000000 0000000 00000002666 14156730761 0021673 0 ustar 00root root 0000000 0000000 /*
* Copyright © 2013 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
#include "epoxy/glx.h"
Display *
get_display_or_skip(void);
void
make_glx_context_current_or_skip(Display *dpy);
GLXFBConfig
get_fbconfig_for_visinfo(Display *dpy, XVisualInfo *visinfo);
XVisualInfo *
get_glx_visual(Display *dpy);
Window
get_glx_window(Display *dpy, XVisualInfo *visinfo, bool map);
3p-libepoxy-master/libepoxy/test/glx_gles2.c 0000664 0000000 0000000 00000006427 14156730761 0021411 0 ustar 00root root 0000000 0000000 /*
* Copyright © 2013 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
/**
* @file glx_gles2.c
*
* Catches a bug where a GLES2 context using
* GLX_EXT_create_context_es2_profile would try to find the symbols in
* libGLESv2.so.2 instead of libGL.so.1.
*/
#include
#include
#include
#include "epoxy/gl.h"
#include "epoxy/glx.h"
#include
#include "glx_common.h"
static Display *dpy;
GLuint
override_GLES2_glCreateShader(GLenum target);
GLuint
override_GLES2_glCreateShader(GLenum target)
{
return 0;
}
void
override_GLES2_glGenQueries(GLsizei n, GLuint *ids);
void
override_GLES2_glGenQueries(GLsizei n, GLuint *ids)
{
int i;
for (i = 0; i < n; i++)
ids[i] = 0;
}
int
main(int argc, char **argv)
{
bool pass = true;
XVisualInfo *vis;
Window win;
GLXContext ctx;
GLXFBConfig config;
int context_attribs[] = {
GLX_CONTEXT_PROFILE_MASK_ARB, GLX_CONTEXT_ES2_PROFILE_BIT_EXT,
GLX_CONTEXT_MAJOR_VERSION_ARB, 2,
GLX_CONTEXT_MINOR_VERSION_ARB, 0,
0
};
GLuint shader;
dpy = get_display_or_skip();
if (!epoxy_has_glx_extension(dpy, 0, "GLX_EXT_create_context_es2_profile"))
errx(77, "Test requires GLX_EXT_create_context_es2_profile");
vis = get_glx_visual(dpy);
config = get_fbconfig_for_visinfo(dpy, vis);
win = get_glx_window(dpy, vis, false);
ctx = glXCreateContextAttribsARB(dpy, config, NULL, true,
context_attribs);
glXMakeCurrent(dpy, win, ctx);
if (epoxy_is_desktop_gl()) {
errx(1, "GLES2 context creation made a desktop context\n");
}
if (epoxy_gl_version() < 20) {
errx(1, "GLES2 context creation made a version %f context\n",
epoxy_gl_version() / 10.0f);
}
/* Test using an entrypoint that's in GLES2, but not the desktop GL ABI. */
shader = glCreateShader(GL_FRAGMENT_SHADER);
if (shader == 0)
errx(1, "glCreateShader() failed\n");
glDeleteShader(shader);
if (epoxy_gl_version() >= 30) {
GLuint q = 0;
glGenQueries(1, &q);
if (!q)
errx(1, "glGenQueries() failed\n");
glDeleteQueries(1, &q);
}
return pass != true;
}
3p-libepoxy-master/libepoxy/test/glx_glxgetprocaddress_nocontext.c 0000664 0000000 0000000 00000003531 14156730761 0026213 0 ustar 00root root 0000000 0000000 /*
* Copyright © 2013 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
/**
* @file glx_glxgetprocaddress_nocontext.c
*
* Catches a bug in early development where glXGetProcAddress() with
* no context bound would fail out in dispatch.
*/
#include
#include
#include
#include "epoxy/gl.h"
#include "epoxy/glx.h"
#include
#include "glx_common.h"
static Display *dpy;
int
main(int argc, char **argv)
{
bool pass = true;
void *func;
dpy = get_display_or_skip();
if (epoxy_glx_version(dpy, 0) < 14)
errx(77, "GLX version 1.4 required for glXGetProcAddress().\n");
func = glXGetProcAddress((const GLubyte *)"glGetString");
if (!func)
errx(1, "glXGetProcAddress() returned NULL\n");
return pass != true;
}
3p-libepoxy-master/libepoxy/test/glx_has_extension_nocontext.c 0000664 0000000 0000000 00000003564 14156730761 0025344 0 ustar 00root root 0000000 0000000 /*
* Copyright © 2013 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
/**
* @file glx_has_extension_nocontext.c
*
* Catches a bug in early development where glXGetProcAddress() with
* no context bound would fail out in dispatch.
*/
#include
#include
#include
#include "epoxy/gl.h"
#include "epoxy/glx.h"
#include
#include "glx_common.h"
static Display *dpy;
int
main(int argc, char **argv)
{
bool pass = true;
dpy = get_display_or_skip();
if (!epoxy_has_glx_extension(dpy, 0, "GLX_ARB_get_proc_address"))
errx(1, "Implementation reported absence of GLX_ARB_get_proc_address");
if (epoxy_has_glx_extension(dpy, 0, "GLX_ARB_ham_sandwich"))
errx(1, "Implementation reported presence of GLX_ARB_ham_sandwich");
return pass != true;
}
3p-libepoxy-master/libepoxy/test/glx_public_api.c 0000664 0000000 0000000 00000006743 14156730761 0022505 0 ustar 00root root 0000000 0000000 /*
* Copyright © 2013 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
#include
#include
#include "epoxy/gl.h"
#include "epoxy/glx.h"
#include
#include "glx_common.h"
static Display *dpy;
static bool
test_gl_version(void)
{
int version = epoxy_gl_version();
if (version < 12) {
fprintf(stderr,
"Reported GL version %d, should be at least 12\n",
version);
return false;
}
return true;
}
static bool
test_glx_version(void)
{
int version = epoxy_glx_version(dpy, 0);
const char *version_string;
int ret;
int server_major, server_minor;
int client_major, client_minor;
int server, client, expected;
if (version < 13) {
fprintf(stderr,
"Reported GLX version %d, should be at least 13 "
"according to Linux GL ABI\n",
version);
return false;
}
version_string = glXQueryServerString(dpy, 0, GLX_VERSION);
ret = sscanf(version_string, "%d.%d", &server_major, &server_minor);
assert(ret == 2);
server = server_major * 10 + server_minor;
version_string = glXGetClientString(dpy, GLX_VERSION);
ret = sscanf(version_string, "%d.%d", &client_major, &client_minor);
assert(ret == 2);
client = client_major * 10 + client_minor;
if (client < server)
expected = client;
else
expected = server;
if (version != expected) {
fprintf(stderr,
"Reported GLX version %d, should be %d (%s)\n",
version, expected, version_string);
return false;
}
return true;
}
static bool
test_glx_extension_supported(void)
{
if (!epoxy_has_glx_extension(dpy, 0, "GLX_ARB_get_proc_address")) {
fputs("Incorrectly reported no support for GLX_ARB_get_proc_address "
"(should always be present in Linux ABI)\n",
stderr);
return false;
}
if (epoxy_has_glx_extension(dpy, 0, "GLX_EXT_ham_sandwich")) {
fputs("Incorrectly reported support for GLX_EXT_ham_sandwich\n",
stderr);
return false;
}
return true;
}
int
main(int argc, char **argv)
{
bool pass = true;
dpy = get_display_or_skip();
make_glx_context_current_or_skip(dpy);
pass = test_gl_version() && pass;
pass = test_glx_version() && pass;
pass = test_glx_extension_supported() && pass;
return pass != true;
}
3p-libepoxy-master/libepoxy/test/glx_public_api_core.c 0000664 0000000 0000000 00000011746 14156730761 0023514 0 ustar 00root root 0000000 0000000 /*
* Copyright © 2013 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
#include
#include
#include
#include
#include "epoxy/gl.h"
#include "epoxy/glx.h"
#include
#include "glx_common.h"
static Display *dpy;
static bool
test_has_extensions(void)
{
int num_extensions;
glGetIntegerv(GL_NUM_EXTENSIONS, &num_extensions);
for (int i = 0; i < num_extensions; i++) {
char *ext = (char *)glGetStringi(GL_EXTENSIONS, i);
if (!epoxy_has_gl_extension(ext)) {
fprintf(stderr, "GL implementation reported support for %s, "
"but epoxy didn't\n", ext);
return false;
}
}
if (epoxy_has_gl_extension("GL_ARB_ham_sandwich")) {
fputs("epoxy implementation reported support for "
"GL_ARB_ham_sandwich, but it shouldn't\n",
stderr);
return false;
}
return true;
}
static bool
test_gl_version(void)
{
int gl_version, epoxy_version;
int major, minor;
glGetIntegerv(GL_MAJOR_VERSION, &major);
glGetIntegerv(GL_MINOR_VERSION, &minor);
gl_version = major * 10 + minor;
if (gl_version < 32) {
fprintf(stderr,
"Implementation reported GL version %d, should be at least 32\n",
gl_version);
return false;
}
epoxy_version = epoxy_gl_version();
if (epoxy_version != gl_version) {
fprintf(stderr,
"Epoxy reported GL version %d, should be %d\n",
epoxy_version, gl_version);
return false;
}
return true;
}
static bool
test_glx_version(void)
{
int version = epoxy_glx_version(dpy, 0);
const char *version_string;
int ret;
int server_major, server_minor;
int client_major, client_minor;
int server, client, expected;
if (version < 13) {
fprintf(stderr,
"Reported GLX version %d, should be at least 13 "
"according to Linux GL ABI\n",
version);
return false;
}
version_string = glXQueryServerString(dpy, 0, GLX_VERSION);
ret = sscanf(version_string, "%d.%d", &server_major, &server_minor);
assert(ret == 2);
server = server_major * 10 + server_minor;
version_string = glXGetClientString(dpy, GLX_VERSION);
ret = sscanf(version_string, "%d.%d", &client_major, &client_minor);
assert(ret == 2);
client = client_major * 10 + client_minor;
if (client < server)
expected = client;
else
expected = server;
if (version != expected) {
fprintf(stderr,
"Reported GLX version %d, should be %d (%s)\n",
version, expected, version_string);
return false;
}
return true;
}
static int
error_handler(Display *d, XErrorEvent *ev)
{
return 0;
}
int
main(int argc, char **argv)
{
bool pass = true;
XVisualInfo *visinfo;
Window win;
GLXFBConfig config;
static const int attribs[] = {
GLX_CONTEXT_PROFILE_MASK_ARB,
GLX_CONTEXT_CORE_PROFILE_BIT_ARB,
GLX_CONTEXT_MAJOR_VERSION_ARB,
3,
GLX_CONTEXT_MINOR_VERSION_ARB,
2,
None
};
GLXContext ctx;
int (*old_handler)(Display *, XErrorEvent *);
dpy = get_display_or_skip();
if (!epoxy_has_glx_extension(dpy, 0, "GLX_ARB_create_context_profile"))
errx(77, "Test requires GLX_ARB_create_context_profile");
visinfo = get_glx_visual(dpy);
win = get_glx_window(dpy, visinfo, false);
config = get_fbconfig_for_visinfo(dpy, visinfo);
old_handler = XSetErrorHandler(error_handler);
ctx = glXCreateContextAttribsARB(dpy, config, NULL, True, attribs);
if (ctx == None)
errx(77, "glXCreateContext failed");
XSetErrorHandler(old_handler);
glXMakeCurrent(dpy, win, ctx);
pass = test_gl_version() && pass;
pass = test_glx_version() && pass;
pass = test_has_extensions() && pass;
return pass != true;
}
3p-libepoxy-master/libepoxy/test/glx_static.c 0000664 0000000 0000000 00000004302 14156730761 0021652 0 ustar 00root root 0000000 0000000 /*
* Copyright © 2013 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
/**
* @file glx_static.c
*
* Simple touch-test of using epoxy when linked statically. On Linux,
* the ifunc support we'd like to use has some significant behavior
* changes depending on whether it's a static build or shared library
* build.
*
* Note that if configured without --enable-static, this test will end
* up dynamically linked anyway, defeating the test.
*/
#include
#include
#include "epoxy/gl.h"
#include "epoxy/glx.h"
#include
#include
#include "glx_common.h"
int
main(int argc, char **argv)
{
bool pass = true;
int val;
#if NEEDS_TO_BE_STATIC
if (dlsym(NULL, "epoxy_glCompileShader")) {
fputs("glx_static requires epoxy built with --enable-static\n", stderr);
return 77;
}
#endif
Display *dpy = get_display_or_skip();
make_glx_context_current_or_skip(dpy);
glEnable(GL_LIGHTING);
val = 0;
glGetIntegerv(GL_LIGHTING, &val);
if (!val) {
fputs("Enabling GL_LIGHTING didn't stick.\n", stderr);
pass = false;
}
return pass != true;
}
3p-libepoxy-master/libepoxy/test/headerguards.c 0000664 0000000 0000000 00000003240 14156730761 0022147 0 ustar 00root root 0000000 0000000 /*
* Copyright © 2013 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
#include "config.h"
#include
#ifdef BUILD_EGL
#include
#include
#endif
#ifdef BUILD_GLX
#include
#include
#endif
#ifdef BUILD_EGL
#include
#include
#include
#include
#endif
#ifdef BUILD_GLX
#ifdef __APPLE__
#include
#include
#else
#include
#include
#endif
#include
#include
#endif
int main(int argc, char **argv)
{
return 0;
}
3p-libepoxy-master/libepoxy/test/khronos_typedefs.c 0000664 0000000 0000000 00000005167 14156730761 0023111 0 ustar 00root root 0000000 0000000 /*
* Copyright © 2014 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
#include
#include "khronos_typedefs.h"
#include "epoxy/gl.h"
#define COMPARE_SIZE(type) \
do { \
if (sizeof(type) != system_sizes[type ## _slot]) { \
fprintf(stderr, "system %s is size %d, epoxy is %d\n", \
#type, \
(int)system_sizes[type ## _slot], \
(int)sizeof(type)); \
error = true; \
} \
} while (0)
int
main(int argc, char **argv)
{
uint32_t system_sizes[khronos_typedef_count];
bool error = false;
get_system_typedef_sizes(system_sizes);
COMPARE_SIZE(khronos_int8_t);
COMPARE_SIZE(khronos_uint8_t);
COMPARE_SIZE(khronos_int16_t);
COMPARE_SIZE(khronos_uint16_t);
COMPARE_SIZE(khronos_int32_t);
COMPARE_SIZE(khronos_uint32_t);
COMPARE_SIZE(khronos_int64_t);
COMPARE_SIZE(khronos_uint64_t);
COMPARE_SIZE(khronos_intptr_t);
COMPARE_SIZE(khronos_uintptr_t);
COMPARE_SIZE(khronos_ssize_t);
COMPARE_SIZE(khronos_usize_t);
COMPARE_SIZE(khronos_float_t);
COMPARE_SIZE(khronos_utime_nanoseconds_t);
COMPARE_SIZE(khronos_stime_nanoseconds_t);
COMPARE_SIZE(khronos_boolean_enum_t);
return error;
}
3p-libepoxy-master/libepoxy/test/khronos_typedefs.h 0000664 0000000 0000000 00000003415 14156730761 0023110 0 ustar 00root root 0000000 0000000 /*
* Copyright © 2014 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
#include
enum typedef_slot {
khronos_int8_t_slot,
khronos_uint8_t_slot,
khronos_int16_t_slot,
khronos_uint16_t_slot,
khronos_int32_t_slot,
khronos_uint32_t_slot,
khronos_int64_t_slot,
khronos_uint64_t_slot,
khronos_intptr_t_slot,
khronos_uintptr_t_slot,
khronos_ssize_t_slot,
khronos_usize_t_slot,
khronos_float_t_slot,
/* khrplatform.h claims it defines khronos_time_ns_t, but it doesn't. */
khronos_utime_nanoseconds_t_slot,
khronos_stime_nanoseconds_t_slot,
khronos_boolean_enum_t_slot,
khronos_typedef_count
};
void get_system_typedef_sizes(uint32_t *sizes);
3p-libepoxy-master/libepoxy/test/khronos_typedefs_nonepoxy.c 0000664 0000000 0000000 00000004304 14156730761 0025040 0 ustar 00root root 0000000 0000000 /*
* Copyright © 2014 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
#include
#include
#include "config.h"
#include "khronos_typedefs.h"
#ifdef HAVE_KHRPLATFORM_H
#include
#define GET_SIZE(type) sizes[type ## _slot] = sizeof(type)
void
get_system_typedef_sizes(uint32_t *sizes)
{
GET_SIZE(khronos_int8_t);
GET_SIZE(khronos_uint8_t);
GET_SIZE(khronos_int16_t);
GET_SIZE(khronos_uint16_t);
GET_SIZE(khronos_int32_t);
GET_SIZE(khronos_uint32_t);
GET_SIZE(khronos_int64_t);
GET_SIZE(khronos_uint64_t);
GET_SIZE(khronos_intptr_t);
GET_SIZE(khronos_uintptr_t);
GET_SIZE(khronos_ssize_t);
GET_SIZE(khronos_usize_t);
GET_SIZE(khronos_float_t);
GET_SIZE(khronos_utime_nanoseconds_t);
GET_SIZE(khronos_stime_nanoseconds_t);
GET_SIZE(khronos_boolean_enum_t);
}
#else /* !HAVE_KHRPLATFORM_H */
/* Don't care -- this is a conditional case in test code. */
#pragma GCC diagnostic ignored "-Wsuggest-attribute=noreturn"
void
get_system_typedef_sizes(uint32_t *sizes)
{
fputs("./configure failed to find khrplatform.h\n", stderr);
exit(77);
}
#endif
3p-libepoxy-master/libepoxy/test/meson.build 0000664 0000000 0000000 00000015162 14156730761 0021515 0 ustar 00root root 0000000 0000000 dl_dep = cc.find_library('dl', required: false)
has_dlvsym = cc.has_function('dlvsym', dependencies: dl_dep)
has_gles1 = gles1_dep.found()
has_gles2 = gles2_dep.found()
build_x11_tests = enable_x11 and x11_dep.found()
test_cflags = common_cflags
if not has_dlvsym
test_cflags += [
'-D_XOPEN_SOURCE',
'-D_POSIX_C_SOURCE=200809L',
]
endif
# Unconditionally built tests
test('header_guards',
executable('header guards', 'headerguards.c',
c_args: common_cflags,
dependencies: libepoxy_dep,
include_directories: libepoxy_inc))
test('misc_defines',
executable('misc defines', 'miscdefines.c',
c_args: common_cflags,
dependencies: libepoxy_dep,
include_directories: libepoxy_inc))
test('khronos_typedefs',
executable('khronos typedefs', [
'khronos_typedefs.c',
'khronos_typedefs.h',
'khronos_typedefs_nonepoxy.c',
],
c_args: common_cflags,
dependencies: libepoxy_dep,
include_directories: libepoxy_inc))
test('gl_version',
executable('gl_version',
'gl_version.c',
c_args: common_cflags,
dependencies: libepoxy_dep,
include_directories: libepoxy_inc))
if build_egl and build_x11_tests
egl_common_sources = [ 'egl_common.h', 'egl_common.c', ]
egl_common_lib = static_library('egl_common',
sources: egl_common_sources,
dependencies: libepoxy_dep,
include_directories: libepoxy_inc,
c_args: common_cflags,
install: false)
egl_tests = [
[ 'egl_has_extension_nocontext', [], [ 'egl_has_extension_nocontext.c' ], true, ],
[ 'egl_epoxy_api', [], [ 'egl_epoxy_api.c' ], true ],
[ 'egl_gles1_without_glx', [ '-DGLES_VERSION=1', ], [ 'egl_without_glx.c' ], has_gles1, ],
[ 'egl_gles2_without_glx', [ '-DGLES_VERSION=2', ], [ 'egl_without_glx.c' ], has_gles2, ],
]
if build_glx
egl_tests += [
[ 'egl_gl', [], [ 'egl_gl.c' ], true, ],
]
endif
foreach test: egl_tests
test_name = test[0]
test_source = test[2]
test_args = test[1]
test_run = test[3]
if test_run
test_bin = executable(test_name, test_source,
c_args: test_cflags + test_args,
include_directories: libepoxy_inc,
dependencies: [ libepoxy_dep, x11_dep, egl_dep, dl_dep ],
link_with: egl_common_lib,
link_args: '-rdynamic')
test(test_name, test_bin)
endif
endforeach
endif
if build_glx and build_x11_tests
glx_common_sources = [ 'glx_common.h', 'glx_common.c', ]
glx_common_lib = static_library('glx_common',
sources: glx_common_sources,
dependencies: libepoxy_dep,
include_directories: libepoxy_inc,
c_args: common_cflags,
install: false)
# glx_beginend links directly with the GL library, so we need to check it
# separately
test('glx_beginend', executable('glx_beginend', 'glx_beginend.c',
c_args: test_cflags,
include_directories: libepoxy_inc,
dependencies: [ libepoxy_dep, x11_dep, gl_dep, dl_dep ],
link_with: glx_common_lib))
glx_tests = [
[ 'glx_public_api', [ 'glx_public_api.c' ], [], [], true ],
[ 'glx_public_api_core', [ 'glx_public_api_core.c' ], [], [], true ],
[ 'glx_glxgetprocaddress_nocontext', [ 'glx_glxgetprocaddress_nocontext.c' ], [], [], true ],
[ 'glx_has_extension_nocontext', [ 'glx_has_extension_nocontext.c' ], [], [], true ],
[ 'glx_static', [ 'glx_static.c' ], [ '-DNEEDS_TO_BE_STATIC'], [ '-static' ], libtype == 'static' ],
[ 'glx_shared_znow', [ 'glx_static.c', ], [], [ '-Wl,-z,now' ], has_znow ],
[ 'glx_alias_prefer_same_name', [ 'glx_alias_prefer_same_name.c', 'dlwrap.c', 'dlwrap.h' ], [], [ '-rdynamic' ], has_dlvsym ],
[ 'glx_gles2', [ 'glx_gles2.c', 'dlwrap.c', 'dlwrap.h' ], [], [ '-rdynamic' ], has_dlvsym ],
]
foreach test: glx_tests
test_name = test[0]
test_source = test[1]
test_c_args = test[2]
test_link_args = test[3]
test_run = test[4]
if test_run
test_bin = executable(test_name, test_source,
c_args: test_cflags + test_c_args,
include_directories: libepoxy_inc,
dependencies: [ libepoxy_dep, x11_dep, dl_dep ],
link_with: glx_common_lib,
link_args: test_link_args)
test(test_name, test_bin)
endif
endforeach
endif
# WGL
if build_wgl
wgl_common_sources = [ 'wgl_common.h', 'wgl_common.c', ]
wgl_common_lib = static_library('wgl_common',
sources: wgl_common_sources,
dependencies: libepoxy_dep,
include_directories: libepoxy_inc,
c_args: common_cflags,
install: false)
wgl_tests = [
[ 'wgl_core_and_exts', [ 'wgl_core_and_exts.c' ], [], ],
[ 'wgl_per_context_funcptrs', [ 'wgl_per_context_funcptrs.c' ], [], ],
[ 'wgl_usefontbitmaps', [ 'wgl_usefontbitmaps.c'], [], ],
[ 'wgl_usefontbitmaps_unicode', [ 'wgl_usefontbitmaps.c' ], [ '-DUNICODE' ], ],
]
foreach test: wgl_tests
test_name = test[0]
test_source = test[1]
test_c_args = test[2]
test_bin = executable(test_name, test_source,
c_args: test_cflags + test_c_args,
include_directories: libepoxy_inc,
dependencies: [ libepoxy_dep ],
link_with: wgl_common_lib)
test(test_name, test_bin)
endforeach
endif
# Apple
if host_machine.system().contains('darwin')
opengl_dep = dependency('appleframeworks', modules: ['OpenGL', 'Carbon'], required: true)
cgl_tests = [
[ 'cgl_core', [ 'cgl_core.c' ] ],
[ 'cgl_epoxy_api', [ 'cgl_epoxy_api.c' ] ],
]
foreach t: cgl_tests
test_name = t[0]
test_sources = t[1]
test(test_name,
executable(
test_name, test_sources,
c_args: test_cflags,
include_directories: libepoxy_inc,
dependencies: [ libepoxy_dep, opengl_dep ],
),
)
endforeach
endif
3p-libepoxy-master/libepoxy/test/miscdefines.c 0000664 0000000 0000000 00000003337 14156730761 0022011 0 ustar 00root root 0000000 0000000 /*
* Copyright © 2013 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
#include
#ifdef BUILD_EGL
#include
#endif
#ifdef BUILD_GLX
#include
#endif
#if GL_VERSION_3_2 != 1
#error bad GL_VERSION_3_2
#endif
#if GL_ARB_ES2_compatibility != 1
#error bad GL_ARB_ES2_compatibility
#endif
#ifndef GLAPI
#error missing GLAPI
#endif
#ifndef GLAPIENTRY
#error missing GLAPIENTRY
#endif
#ifndef GLAPIENTRYP
#error missing GLAPIENTRYP
#endif
#ifndef APIENTRY
#error missing APIENTRY
#endif
#ifndef APIENTRYP
#error missing APIENTRYP
#endif
/* Do we want to export GL_GLEXT_VERSION? */
int main(int argc, char **argv)
{
return 0;
}
3p-libepoxy-master/libepoxy/test/wgl_common.c 0000664 0000000 0000000 00000007266 14156730761 0021666 0 ustar 00root root 0000000 0000000 /*
* Copyright © 2013 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
#include
#include
#include "wgl_common.h"
static int (*test_callback)(HDC hdc);
static void
setup_pixel_format(HDC hdc)
{
PIXELFORMATDESCRIPTOR pfd = {
sizeof(PIXELFORMATDESCRIPTOR),
1,
PFD_SUPPORT_OPENGL |
PFD_DRAW_TO_WINDOW |
PFD_DOUBLEBUFFER,
PFD_TYPE_RGBA,
32,
0, 0, 0, 0, 0, 0,
0,
0,
0,
0, 0, 0, 0,
16,
0,
0,
PFD_MAIN_PLANE,
0,
0, 0, 0,
};
int pixel_format;
pixel_format = ChoosePixelFormat(hdc, &pfd);
if (!pixel_format) {
fputs("ChoosePixelFormat failed.\n", stderr);
exit(1);
}
if (SetPixelFormat(hdc, pixel_format, &pfd) != TRUE) {
fputs("SetPixelFormat() failed.\n", stderr);
exit(1);
}
}
static LRESULT CALLBACK
window_proc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam)
{
HDC hdc = GetDC(hwnd);
int ret;
switch (message) {
case WM_CREATE:
setup_pixel_format(hdc);
ret = test_callback(hdc);
ReleaseDC(hwnd, hdc);
exit(ret);
return 0;
default:
return DefWindowProc(hwnd, message, wparam, lparam);
}
}
void
make_window_and_test(int (*callback)(HDC hdc))
{
const char *class_name = "epoxy";
const char *window_name = "epoxy";
int width = 150;
int height = 150;
HWND hwnd;
HINSTANCE hcurrentinst = NULL;
WNDCLASS window_class;
MSG msg;
test_callback = callback;
memset(&window_class, 0, sizeof(window_class));
window_class.style = CS_OWNDC | CS_HREDRAW | CS_VREDRAW;
window_class.lpfnWndProc = window_proc;
window_class.cbClsExtra = 0;
window_class.cbWndExtra = 0;
window_class.hInstance = hcurrentinst;
window_class.hIcon = LoadIcon(NULL, IDI_APPLICATION);
window_class.hCursor = LoadCursor(NULL, IDC_ARROW);
window_class.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
window_class.lpszMenuName = NULL;
window_class.lpszClassName = class_name;
if (!RegisterClass(&window_class)) {
fputs("Failed to register window class\n", stderr);
exit(1);
}
/* create window */
hwnd = CreateWindow(class_name, window_name,
WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN | WS_CLIPSIBLINGS,
0, 0, width, height,
NULL, NULL, hcurrentinst, NULL);
ShowWindow(hwnd, SW_SHOWDEFAULT);
UpdateWindow(hwnd);
while (GetMessage(&msg, NULL, 0, 0)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
3p-libepoxy-master/libepoxy/test/wgl_common.h 0000664 0000000 0000000 00000002322 14156730761 0021657 0 ustar 00root root 0000000 0000000 /*
* Copyright © 2013 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
#include
void
make_window_and_test(int (*callback)(HDC hdc));
3p-libepoxy-master/libepoxy/test/wgl_core_and_exts.c 0000664 0000000 0000000 00000004524 14156730761 0023205 0 ustar 00root root 0000000 0000000 /*
* Copyright © 2013 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
#include
#include "wgl_common.h"
#include
static int
test_function(HDC hdc)
{
bool pass = true;
int val;
HGLRC ctx;
ctx = wglCreateContext(hdc);
if (!ctx) {
fputs("Failed to create wgl context\n", stderr);
return 1;
}
if (!wglMakeCurrent(hdc, ctx)) {
fputs("Failed to make context current\n", stderr);
return 1;
}
/* GL 1.0 APIs are available as symbols in opengl32.dll. */
glEnable(GL_LIGHTING);
val = 0;
glGetIntegerv(GL_LIGHTING, &val);
if (!val) {
fputs("Enabling GL_LIGHTING didn't stick.\n", stderr);
pass = false;
}
if (epoxy_gl_version() >= 15 ||
epoxy_has_gl_extension("GL_ARB_vertex_buffer_object")) {
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 1234);
val = 0;
glGetIntegerv(GL_ELEMENT_ARRAY_BUFFER_BINDING, &val);
if (val != 1234) {
printf("GL_ELEMENT_ARRAY_BUFFER_BINDING didn't stick: %d\n", val);
pass = false;
}
}
wglMakeCurrent(NULL, NULL);
wglDeleteContext(ctx);
return !pass;
}
int
main(int argc, char **argv)
{
make_window_and_test(test_function);
/* UNREACHED */
return 1;
}
3p-libepoxy-master/libepoxy/test/wgl_per_context_funcptrs.c 0000664 0000000 0000000 00000011205 14156730761 0024640 0 ustar 00root root 0000000 0000000 /*
* Copyright © 2013 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
/**
* @file wgl_per_context_funcptrs.c
*
* Tests that epoxy works correctly when wglGetProcAddress() returns
* different function pointers for different contexts.
*
* wgl allows that to be the case when the device or pixel format are
* different. We don't know if the underlying implementation actually
* *will* return different function pointers, so force the issue by
* overriding wglGetProcAddress() to return our function pointers with
* magic behavior. This way we can test epoxy's implementation
* regardless.
*/
#include
#include
#include "wgl_common.h"
#include
#define CREATESHADER_CTX1_VAL 1001
#define CREATESHADER_CTX2_VAL 1002
static HGLRC ctx1, ctx2, current_context;
static bool pass = true;
#define OVERRIDE_API(type) __declspec(dllexport) type __stdcall
OVERRIDE_API (GLuint) override_glCreateShader_ctx1(GLenum target);
OVERRIDE_API (GLuint) override_glCreateShader_ctx2(GLenum target);
OVERRIDE_API (PROC) override_wglGetProcAddress(LPCSTR name);
OVERRIDE_API (GLuint)
override_glCreateShader_ctx1(GLenum target)
{
if (current_context != ctx1) {
fputs("ctx1 called while other context current\n", stderr);
pass = false;
}
return CREATESHADER_CTX1_VAL;
}
OVERRIDE_API (GLuint)
override_glCreateShader_ctx2(GLenum target)
{
if (current_context != ctx2) {
fputs("ctx2 called while other context current\n", stderr);
pass = false;
}
return CREATESHADER_CTX2_VAL;
}
OVERRIDE_API (PROC)
override_wglGetProcAddress(LPCSTR name)
{
assert(strcmp(name, "glCreateShader") == 0);
if (current_context == ctx1) {
return (PROC)override_glCreateShader_ctx1;
} else {
assert(current_context == ctx2);
return (PROC)override_glCreateShader_ctx2;
}
}
static void
test_createshader(HDC hdc, HGLRC ctx)
{
GLuint shader, expected;
int ctxnum;
wglMakeCurrent(hdc, ctx);
current_context = ctx;
/* Install our GPA override so we can force per-context function
* pointers.
*/
wglGetProcAddress = override_wglGetProcAddress;
if (ctx == ctx1) {
expected = CREATESHADER_CTX1_VAL;
ctxnum = 1;
} else {
assert(ctx == ctx2);
expected = CREATESHADER_CTX2_VAL;
ctxnum = 2;
}
shader = glCreateShader(GL_FRAGMENT_SHADER);
printf("ctx%d: Returned %d\n", ctxnum, shader);
if (shader != expected) {
fprintf(stderr, " expected %d\n", expected);
pass = false;
}
}
static int
test_function(HDC hdc)
{
ctx1 = wglCreateContext(hdc);
ctx2 = wglCreateContext(hdc);
if (!ctx1 || !ctx2) {
fputs("Failed to create wgl contexts\n", stderr);
return 1;
}
if (!wglMakeCurrent(hdc, ctx1)) {
fputs("Failed to make context current\n", stderr);
return 1;
}
if (epoxy_gl_version() < 20) {
/* We could possibly do a 1.3 entrypoint or something instead. */
fputs("Test relies on overriding a GL 2.0 entrypoint\n", stderr);
return 77;
}
/* Force resolving epoxy_wglGetProcAddress. */
wglGetProcAddress("glCreateShader");
test_createshader(hdc, ctx1);
test_createshader(hdc, ctx1);
test_createshader(hdc, ctx2);
test_createshader(hdc, ctx2);
test_createshader(hdc, ctx1);
test_createshader(hdc, ctx2);
wglMakeCurrent(NULL, NULL);
wglDeleteContext(ctx1);
wglDeleteContext(ctx2);
return !pass;
}
int
main(int argc, char **argv)
{
make_window_and_test(test_function);
/* UNREACHED */
return 1;
}
3p-libepoxy-master/libepoxy/test/wgl_usefontbitmaps.c 0000664 0000000 0000000 00000004332 14156730761 0023430 0 ustar 00root root 0000000 0000000 /*
* Copyright © 2013 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
* IN THE SOFTWARE.
*/
#include
#include "wgl_common.h"
#include
static int
test_function(HDC hdc)
{
bool pass = true;
HGLRC ctx;
GLuint dlist[2] = {100, 101};
const char *string = "some string";
ctx = wglCreateContext(hdc);
if (!ctx) {
fputs("Failed to create wgl context\n", stderr);
return 1;
}
if (!wglMakeCurrent(hdc, ctx)) {
fputs("Failed to make context current\n", stderr);
return 1;
}
/* First, use the #ifdeffed variant of the function */
wglUseFontBitmaps(hdc, 0, 255, dlist[0]);
glListBase(dlist[1]);
glCallLists(strlen(string), GL_UNSIGNED_BYTE, string);
/* Now, use the specific version, manually. */
#ifdef UNICODE
wglUseFontBitmapsW(hdc, 0, 255, dlist[0]);
#else
wglUseFontBitmapsA(hdc, 0, 255, dlist[0]);
#endif
glListBase(dlist[1]);
glCallLists(strlen(string), GL_UNSIGNED_BYTE, string);
wglMakeCurrent(NULL, NULL);
wglDeleteContext(ctx);
return !pass;
}
int
main(int argc, char **argv)
{
make_window_and_test(test_function);
/* UNREACHED */
return 1;
}