diff --git a/.github/workflows/ci-flatpak.yml b/.github/workflows/ci-flatpak.yml index df3c0535d73..8c19b668e2d 100644 --- a/.github/workflows/ci-flatpak.yml +++ b/.github/workflows/ci-flatpak.yml @@ -64,7 +64,7 @@ jobs: - name: Setup Dependencies Linux Flatpak run: | - python -m pip install ./packaging/linux/flatpak/deps/flatpak-builder-tools/node + python -m pip install ".[flatpak]" sudo apt-get update -y sudo apt-get install -y \ @@ -91,6 +91,19 @@ jobs: - name: Debug generated-sources.json run: cat generated-sources.json + - name: flatpak pip generator + # generates glad-dependencies.json for PyPI build-time dependencies (e.g. jinja2 for glad) + run: | + python \ + ./packaging/linux/flatpak/deps/flatpak-builder-tools/pip/flatpak-pip-generator.py \ + --runtime="org.freedesktop.Sdk//${PLATFORM_VERSION}" \ + --output glad-dependencies \ + --build-only \ + --requirements-file=./third-party/glad/requirements.txt + + # Copy generated pip sources into build dir alongside the manifest + cp glad-dependencies.json build/ + - name: Cache Flatpak build uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3 with: @@ -195,6 +208,7 @@ jobs: run: | mkdir -p flathub/modules cp "./build/generated-sources.json" "./flathub/" + cp "./build/glad-dependencies.json" "./flathub/" cp "./build/package-lock.json" "./flathub/" cp "./build/${APP_ID}.yml" "./flathub/" cp "./build/${APP_ID}.metainfo.xml" "./flathub/" diff --git a/.github/workflows/ci-freebsd.yml b/.github/workflows/ci-freebsd.yml index 7179db69c34..981adb624e0 100644 --- a/.github/workflows/ci-freebsd.yml +++ b/.github/workflows/ci-freebsd.yml @@ -138,8 +138,8 @@ jobs: release: ${{ matrix.bsd_release }} run: | set -e - # install gcvor - python -m pip install "./scripts[test]" + # install glad deps and gcvor + python -m pip install ".[glad,test]" # fix git safe.directory issues git config --global --add safe.directory "*" diff --git a/.github/workflows/ci-linux.yml b/.github/workflows/ci-linux.yml index 3f7efd732d6..362a160c0bd 100644 --- a/.github/workflows/ci-linux.yml +++ b/.github/workflows/ci-linux.yml @@ -58,12 +58,6 @@ jobs: libxcb-dri3-dev \ libxfixes-dev - - name: Setup python - id: python - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 - with: - python-version: '3.14' - - name: Build latest libva env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -163,6 +157,12 @@ jobs: sudo apt-get clean sudo rm -rf /var/lib/apt/lists/* + - name: Setup python + id: python + uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 + with: + python-version: '3.14' + - name: Run tests id: test working-directory: build/tests @@ -181,7 +181,7 @@ jobs: (steps.test.outcome == 'success' || steps.test.outcome == 'failure') working-directory: build run: | - ${{ steps.python.outputs.python-path }} -m pip install "../scripts[test]" + ${{ steps.python.outputs.python-path }} -m pip install "..[test]" ${{ steps.python.outputs.python-path }} -m gcovr --gcov-executable "gcov-${GCC_VERSION}" . -r ../src \ --exclude-noncode-lines \ --exclude-throw-branches \ diff --git a/.github/workflows/ci-macos.yml b/.github/workflows/ci-macos.yml index f9cb0ede89f..866a6392924 100644 --- a/.github/workflows/ci-macos.yml +++ b/.github/workflows/ci-macos.yml @@ -165,7 +165,7 @@ jobs: (steps.test.outcome == 'success' || steps.test.outcome == 'failure') working-directory: build run: | - python -m pip install "../scripts[test]" + python -m pip install "..[test]" python -m gcovr . -r ../src \ --exclude-noncode-lines \ --exclude-throw-branches \ diff --git a/.github/workflows/ci-windows.yml b/.github/workflows/ci-windows.yml index 2a22a84bd09..c1b3369993b 100644 --- a/.github/workflows/ci-windows.yml +++ b/.github/workflows/ci-windows.yml @@ -322,7 +322,7 @@ jobs: shell: msys2 {0} working-directory: build run: | - ${{ steps.python-path.outputs.python-path }} -m pip install "../scripts[test]" + ${{ steps.python-path.outputs.python-path }} -m pip install "..[test]" ${{ steps.python-path.outputs.python-path }} -m gcovr . -r ../src \ --exclude-noncode-lines \ --exclude-throw-branches \ diff --git a/.github/workflows/localize.yml b/.github/workflows/localize.yml index f7eae8553b3..0ded34cadc9 100644 --- a/.github/workflows/localize.yml +++ b/.github/workflows/localize.yml @@ -31,7 +31,6 @@ jobs: python-version: '3.14' - name: Set up Python Dependencies - working-directory: scripts run: | python -m pip install --upgrade pip setuptools python -m pip install ".[locale]" diff --git a/.gitmodules b/.gitmodules index 8834ac0137d..a69e4ee4cbf 100644 --- a/.gitmodules +++ b/.gitmodules @@ -14,6 +14,9 @@ path = third-party/doxyconfig url = https://github.com/LizardByte/doxyconfig.git branch = master +[submodule "third-party/glad"] + path = third-party/glad + url = https://github.com/Dav1dde/glad.git [submodule "third-party/googletest"] path = third-party/googletest url = https://github.com/google/googletest.git diff --git a/cmake/compile_definitions/linux.cmake b/cmake/compile_definitions/linux.cmake index a8e856ac848..e47d2342d96 100644 --- a/cmake/compile_definitions/linux.cmake +++ b/cmake/compile_definitions/linux.cmake @@ -257,19 +257,11 @@ list(APPEND PLATFORM_TARGET_FILES "${CMAKE_SOURCE_DIR}/src/platform/linux/graphics.cpp" "${CMAKE_SOURCE_DIR}/src/platform/linux/misc.h" "${CMAKE_SOURCE_DIR}/src/platform/linux/misc.cpp" - "${CMAKE_SOURCE_DIR}/src/platform/linux/audio.cpp" - "${CMAKE_SOURCE_DIR}/third-party/glad/src/egl.c" - "${CMAKE_SOURCE_DIR}/third-party/glad/src/gl.c" - "${CMAKE_SOURCE_DIR}/third-party/glad/include/EGL/eglplatform.h" - "${CMAKE_SOURCE_DIR}/third-party/glad/include/KHR/khrplatform.h" - "${CMAKE_SOURCE_DIR}/third-party/glad/include/glad/gl.h" - "${CMAKE_SOURCE_DIR}/third-party/glad/include/glad/egl.h") + "${CMAKE_SOURCE_DIR}/src/platform/linux/audio.cpp") list(APPEND PLATFORM_LIBRARIES dl pulse pulse-simple) -include_directories( - SYSTEM - "${CMAKE_SOURCE_DIR}/third-party/glad/include") +list(APPEND SUNSHINE_EXTERNAL_LIBRARIES glad) diff --git a/cmake/dependencies/glad.cmake b/cmake/dependencies/glad.cmake new file mode 100644 index 00000000000..bf8f4b1ec39 --- /dev/null +++ b/cmake/dependencies/glad.cmake @@ -0,0 +1,201 @@ +# +# Generates the glad OpenGL/EGL loader library using the glad2 generator. +# Sources are generated at build time via the glad submodule's CMake integration. +# +include_guard(GLOBAL) + +# glad's generator requires jinja2 at build time. The Python interpreter must be +# discovered HERE — before add_subdirectory() — for two reasons: +# +# 1. glad's cmake/CMakeLists.txt calls find_package(PythonInterp) (the legacy +# CMP0148 API, which reads the PYTHON_EXECUTABLE cache variable). Whatever +# interpreter is found there gets baked into every glad_add_library() build +# rule. If we discover Python only after add_subdirectory(), glad has already +# committed to a different interpreter (e.g. Homebrew python@3.14 on PATH), +# and our jinja2-equipped venv/system Python is never used. +# +# 2. Setting PYTHON_EXECUTABLE (legacy) = Python_EXECUTABLE (new-style) in the +# cache before add_subdirectory() causes glad's find_package(PythonInterp) to +# skip its own search and reuse our interpreter directly. +# +# GLAD_SKIP_PIP_INSTALL is a hard override for environments where pip cannot run +# at all (e.g. Flatpak, Homebrew). When OFF (the default) the code below checks +# whether jinja2+setuptools are importable and pip-installs them if they are not. +# When ON the caller is responsible for supplying a Python that already has jinja2, +# typically via -DPython_EXECUTABLE=/path/to/venv/python. +option(GLAD_SKIP_PIP_INSTALL + "Hard-skip pip install of jinja2 even if it is not importable. \ +Only needed in sandboxed build environments (e.g. Flatpak, Homebrew) where pip cannot run." OFF) + +if(NOT GLAD_SKIP_PIP_INSTALL) + # glad's generator requires Python >= 3.8 (importlib.metadata) and jinja2. + # Prefer the real system Python over any venv/toolchain Python injected into PATH + # (e.g. GitHub Actions setup-python). STANDARD means FindPython does not give + # special priority to virtual environments. + set(Python_FIND_VIRTUALENV STANDARD) # cmake-lint: disable=C0103 + + # On Linux/FreeBSD, search for a sufficiently new system Python (>= 3.8) explicitly. + # This is important on distros like OpenSUSE Leap where /usr/bin/python3 is 3.6, + # but python3.11 or python3.8 may also be installed. Search newest-first so that + # the best available interpreter is used. The NO_DEFAULT_PATH on the first pass + # restricts the search to /usr/bin and /usr/local/bin to prefer distro packages + # over venv/toolchain Pythons (e.g. GitHub Actions setup-python injects its own + # python3 first on PATH; Homebrew puts python@3.x in /home/linuxbrew/... on PATH). + if(UNIX AND NOT APPLE) + foreach(py_candidate python3.14 python3.13 python3.12 python3.11 python3.10 python3.9 python3.8 python3) + find_program(_system_python3 "${py_candidate}" PATHS /usr/bin /usr/local/bin NO_DEFAULT_PATH) + if(_system_python3) + # Verify this interpreter is >= 3.8 + execute_process( + COMMAND "${_system_python3}" -c + "import sys; sys.exit(0 if sys.version_info >= (3,8) else 1)" + RESULT_VARIABLE _py_version_ok + OUTPUT_QUIET ERROR_QUIET + ) + if(_py_version_ok EQUAL 0) + message(STATUS "glad: using Python interpreter: ${_system_python3}") + set(Python_EXECUTABLE "${_system_python3}" # cmake-lint: disable=C0103 + CACHE FILEPATH "Python interpreter" FORCE) + break() + else() + message(STATUS "glad: skipping ${_system_python3} (< 3.8)") + unset(_system_python3 CACHE) + endif() + endif() + unset(_system_python3 CACHE) + endforeach() + endif() +endif() + +# Run find_package(Python) before add_subdirectory() so Python_EXECUTABLE is +# committed to the cache. When GLAD_SKIP_PIP_INSTALL=OFF the system-Python search +# above has already set it; when GLAD_SKIP_PIP_INSTALL=ON the caller's +# -DPython_EXECUTABLE cache entry is honoured directly. +# +# Exception: when GLAD_SKIP_PIP_INSTALL=ON and Python_EXECUTABLE already points to +# an existing file (e.g. a Homebrew venv), skip find_package() entirely. +# find_package(Python) ignores the cache hint on some CMake/platform combinations +# and searches PATH instead, finding a different interpreter (e.g. Homebrew's own +# python@3.x). Using the cache value directly is safe here because the caller has +# explicitly told us which interpreter to use. +if(GLAD_SKIP_PIP_INSTALL AND EXISTS "${Python_EXECUTABLE}") + message(STATUS "glad: using provided Python interpreter: ${Python_EXECUTABLE}") +else() + find_package(Python COMPONENTS Interpreter REQUIRED) +endif() + +# Propagate to the legacy PYTHON_EXECUTABLE variable consumed by FindPythonInterp, +# which is what glad's cmake/CMakeLists.txt calls. Doing this before +# add_subdirectory() ensures glad's internal find_package(PythonInterp) reuses our +# interpreter instead of doing its own PATH search. +set(PYTHON_EXECUTABLE "${Python_EXECUTABLE}" CACHE FILEPATH "Python interpreter for glad" FORCE) + +# The glad2 repo does not have a root-level CMakeLists.txt; its CMake integration +# lives in cmake/CMakeLists.txt which provides the glad_add_library() function. +# +# glad 2.0.0's cmake/CMakeLists.txt calls cmake_minimum_required with a version < 3.5. +# CMake >= 3.27 turned this into a hard error. Setting CMAKE_POLICY_VERSION_MINIMUM +# to 3.5 allows the subdirectory to configure without error. +# We unset it immediately afterwards so it does not affect anything else. +if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.27") + set(CMAKE_POLICY_VERSION_MINIMUM 3.5) +endif() +add_subdirectory("${CMAKE_SOURCE_DIR}/third-party/glad/cmake" glad2-cmake) +unset(CMAKE_POLICY_VERSION_MINIMUM) + +if(NOT GLAD_SKIP_PIP_INSTALL) + # Check whether jinja2 and pkg_resources (setuptools) are already importable. + # pkg_resources is provided by setuptools, which is no longer bundled with Python 3.12+ + # on several distros (Debian Trixie, Arch Linux, COPR, FreeBSD, etc.). + execute_process( + COMMAND "${Python_EXECUTABLE}" -c "import jinja2; import pkg_resources" + RESULT_VARIABLE _glad_deps_import_result + OUTPUT_QUIET + ERROR_QUIET + ) + + if(NOT _glad_deps_import_result EQUAL 0) + message(STATUS "glad: jinja2 or setuptools not found in ${Python_EXECUTABLE}, installing via pip...") + + # Some system Python installations (e.g. FreeBSD ports) ship without pip. + # Try to bootstrap it via ensurepip before falling back to the pip install. + execute_process( + COMMAND "${Python_EXECUTABLE}" -m pip --version + RESULT_VARIABLE _pip_available + OUTPUT_QUIET ERROR_QUIET + ) + if(NOT _pip_available EQUAL 0) + message(STATUS "glad: pip not found in ${Python_EXECUTABLE}, bootstrapping via ensurepip...") + execute_process( + COMMAND "${Python_EXECUTABLE}" -m ensurepip --upgrade + RESULT_VARIABLE _ensurepip_result + OUTPUT_QUIET ERROR_QUIET + ) + if(NOT _ensurepip_result EQUAL 0) + message(FATAL_ERROR + "glad: pip is not available in ${Python_EXECUTABLE} and ensurepip failed to " + "bootstrap it.\nPlease install pip for your Python interpreter " + "(e.g. 'pkg install py311-pip' on FreeBSD, or the python3-pip package for " + "your distro) and re-run cmake.") + endif() + endif() + + execute_process( + COMMAND "${Python_EXECUTABLE}" -m pip install + --upgrade + --requirement "${CMAKE_SOURCE_DIR}/third-party/glad/requirements.txt" + "setuptools<81" + --quiet + COMMAND_ERROR_IS_FATAL ANY + ) + else() + message(STATUS "glad: jinja2 and setuptools already available in ${Python_EXECUTABLE}, skipping pip install") + endif() +endif() + +# Generate the glad libraries. +# REPRODUCIBLE avoids fetching the latest spec XML from Khronos at generation time. +# +# NOTE: glad v2.0.0's glad_add_library() does not deduplicate OUTPUT files when multiple APIs +# share a common header (e.g. KHR/khrplatform.h is emitted by both the "egl" and "gl" specs). +# Passing both APIs in a single call causes ninja to error with "multiple rules generate +# gladsources/glad/include/KHR/khrplatform.h". Work around this by using one library per API +# and combining them into a single INTERFACE target named "glad" for the rest of the project. + +# EGL 1.5 --loader --mx +# EGL_EXT_image_dma_buf_import_modifiers is included to expose eglQueryDmaBufFormatsEXT and +# eglQueryDmaBufModifiersEXT +glad_add_library(glad_egl + STATIC + REPRODUCIBLE + LOCATION "${CMAKE_BINARY_DIR}/gladsources/glad_egl" + LOADER + MX + API + "egl=1.5" + EXTENSIONS + EGL_EXT_image_dma_buf_import + EGL_EXT_image_dma_buf_import_modifiers + EGL_EXT_platform_base + EGL_EXT_platform_wayland + EGL_EXT_platform_x11 + EGL_KHR_create_context + EGL_KHR_image_base + EGL_KHR_surfaceless_context + EGL_MESA_platform_gbm +) + +# GL compatibility=4.6 --loader --mx +glad_add_library(glad_gl + STATIC + REPRODUCIBLE + LOCATION "${CMAKE_BINARY_DIR}/gladsources/glad_gl" + LOADER + MX + API + "gl:compatibility=4.6" +) + +# Combine both into a single INTERFACE target so the rest of the project can simply link "glad". +add_library(glad INTERFACE) +target_link_libraries(glad INTERFACE glad_egl glad_gl) diff --git a/cmake/dependencies/linux.cmake b/cmake/dependencies/linux.cmake index 8022b9dfea0..96eab01d76c 100644 --- a/cmake/dependencies/linux.cmake +++ b/cmake/dependencies/linux.cmake @@ -1 +1,3 @@ # linux specific dependencies + +include("${CMAKE_MODULE_PATH}/dependencies/glad.cmake") diff --git a/docs/building.md b/docs/building.md index 4a3ee6c20d9..742d14fdf70 100644 --- a/docs/building.md +++ b/docs/building.md @@ -8,7 +8,7 @@ It is recommended to use one of the following compilers: | Compiler | Version | |:------------|:--------| -| GCC | 13+ | +| GCC | 14+ | | Clang | 17+ | | Apple Clang | 15+ | diff --git a/docs/contributing.md b/docs/contributing.md index a69cd25fead..dbf5bf109c2 100644 --- a/docs/contributing.md +++ b/docs/contributing.md @@ -128,11 +128,11 @@ any of the following paths are modified. ``` When testing locally, it may be desirable to manually extract, initialize, update, and compile strings. Python is -required for this, along with the python dependencies in the `./scripts/pyproject.toml` file. You can install this with +required for this, along with the python dependencies in the `./pyproject.toml` file. You can install this with the following command. ```bash -python -m pip install "./scripts[locale]" +python -m pip install ".[locale]" ``` Additionally, [xgettext](https://www.gnu.org/software/gettext) must be installed. diff --git a/packaging/linux/Arch/PKGBUILD b/packaging/linux/Arch/PKGBUILD index 298f8964137..4ed601620e1 100644 --- a/packaging/linux/Arch/PKGBUILD +++ b/packaging/linux/Arch/PKGBUILD @@ -63,6 +63,8 @@ makedepends=( 'make' 'nodejs' 'npm' + 'python-jinja' # required by the glad OpenGL/EGL loader generator + 'python-setuptools' # required for glad OpenGL/EGL loader generated, v2.0.0 ) checkdepends=( diff --git a/packaging/linux/copr/Sunshine.spec b/packaging/linux/copr/Sunshine.spec index e0ddc66a553..11f3c890bc9 100644 --- a/packaging/linux/copr/Sunshine.spec +++ b/packaging/linux/copr/Sunshine.spec @@ -67,6 +67,8 @@ BuildRequires: nodejs-npm BuildRequires: numactl-devel BuildRequires: opus-devel BuildRequires: pulseaudio-libs-devel +BuildRequires: python3-jinja2 +BuildRequires: python3-setuptools BuildRequires: systemd-udev %{?sysusers_requires_compat} # for unit tests @@ -86,6 +88,9 @@ BuildRequires: libnuma-devel BuildRequires: libopus-devel BuildRequires: libpulse-devel BuildRequires: npm +BuildRequires: python311 +BuildRequires: python311-Jinja2 +BuildRequires: python311-setuptools BuildRequires: udev # for unit tests BuildRequires: xvfb-run @@ -117,9 +122,9 @@ BuildRequires: gcc15-c++ %if 0%{?suse_version} %if 0%{?suse_version} <= 1699 # OpenSUSE Leap 15.x -BuildRequires: gcc13 -BuildRequires: gcc13-c++ -%global gcc_version 13 +BuildRequires: gcc14 +BuildRequires: gcc14-c++ +%global gcc_version 14 %global cuda_version 12.9.1 %global cuda_build 575.57.08 %else diff --git a/packaging/linux/flatpak/dev.lizardbyte.app.Sunshine.yml b/packaging/linux/flatpak/dev.lizardbyte.app.Sunshine.yml index 0e3766f86eb..08f030fa275 100644 --- a/packaging/linux/flatpak/dev.lizardbyte.app.Sunshine.yml +++ b/packaging/linux/flatpak/dev.lizardbyte.app.Sunshine.yml @@ -50,6 +50,11 @@ modules: # FFmpeg prebuilt binaries - "modules/ffmpeg.json" + # Python PyPI build-time dependencies (e.g. jinja2 for glad generator). + # glad-dependencies.json is generated at CI time by flatpak-pip-generator and + # placed alongside the manifest in the build directory. + - "glad-dependencies.json" + - name: sunshine builddir: true build-options: @@ -71,6 +76,7 @@ modules: - -DCMAKE_BUILD_TYPE=Release - -DCMAKE_CUDA_COMPILER=/app/cuda/bin/nvcc - -DFFMPEG_PREPARED_BINARIES=/app/ffmpeg + - -DGLAD_SKIP_PIP_INSTALL=ON - -DSUNSHINE_ASSETS_DIR=share/sunshine - -DSUNSHINE_BUILD_FLATPAK=ON - -DSUNSHINE_EXECUTABLE_PATH=/app/bin/sunshine diff --git a/packaging/sunshine.rb b/packaging/sunshine.rb index 860c890fe05..8e8aac844af 100644 --- a/packaging/sunshine.rb +++ b/packaging/sunshine.rb @@ -1,6 +1,8 @@ require "language/node" class Sunshine < Formula + include Language::Python::Virtualenv + CUDA_VERSION = "13.1".freeze CUDA_FORMULA = "cuda@#{CUDA_VERSION}".freeze GCC_VERSION = "14".freeze @@ -61,6 +63,7 @@ class Sunshine < Formula on_linux do depends_on GCC_FORMULA => [:build, :test] depends_on "lizardbyte/homebrew/#{CUDA_FORMULA}" => :build if build.with? "cuda" + depends_on "python3" => :build depends_on "at-spi2-core" depends_on "avahi" depends_on "ayatana-ido" @@ -95,9 +98,29 @@ class Sunshine < Formula depends_on "pulseaudio" depends_on "systemd" depends_on "wayland" + + # Jinja2 is required at build time by the glad OpenGL/EGL loader generator (Linux only). + # Declared as resources per https://docs.brew.sh/Formula-Cookbook#python-dependencies + resource "markupsafe" do + url "https://files.pythonhosted.org/packages/7e/99/7690b6d4034fffd95959cbe0c02de8deb3098cc577c67bb6a24fe5d7caa7/markupsafe-3.0.3.tar.gz" + sha256 "722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698" + end + + resource "jinja2" do + url "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz" + sha256 "0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d" + end + + # setuptools provides pkg_resources which glad's plugin.py imports at build time. + # setuptools >= 81 removed pkg_resources; this is the last release that still ships it. + resource "setuptools" do + url "https://files.pythonhosted.org/packages/76/95/faf61eb8363f26aa7e1d762267a8d602a1b26d4f3a1e758e92cb3cb8b054/setuptools-80.10.2.tar.gz" + sha256 "8b0e9d10c784bf7d262c4e5ec5d4ec94127ce206e8738f29a437945fbc219b70" + end end conflicts_with "sunshine-beta", because: "sunshine and sunshine-beta cannot be installed at the same time" + fails_with :clang do build 1400 cause "Requires C++23 support" @@ -108,12 +131,28 @@ class Sunshine < Formula cause "Requires C++23 support" end + fails_with :gcc do + version "13" + cause "Array out of bounds error when compiling glad sources" + end + def setup_build_environment ENV["BRANCH"] = "@GITHUB_BRANCH@" ENV["BUILD_VERSION"] = "@BUILD_VERSION@" ENV["COMMIT"] = "@GITHUB_COMMIT@" setup_linux_gcc_environment if OS.linux? + + return unless OS.linux? + + # Install jinja2 (required by the glad OpenGL/EGL loader generator) into a + # temporary virtualenv. We pass its Python path to cmake via Python_EXECUTABLE + # so glad uses the venv Python that has jinja2, and set GLAD_SKIP_PIP_INSTALL=ON + # to prevent cmake from trying to pip-install again. + # Follows https://docs.brew.sh/Formula-Cookbook#python-dependencies + venv = virtualenv_create(buildpath/"venv", "python3") + venv.pip_install resources + @glad_python = (buildpath/"venv/bin/python3").to_s end def setup_linux_gcc_environment @@ -124,10 +163,11 @@ def setup_linux_gcc_environment end def base_cmake_args - %W[ + args = %W[ -DBUILD_WERROR=ON -DCMAKE_CXX_STANDARD=23 -DCMAKE_INSTALL_PREFIX=#{prefix} + -DGLAD_SKIP_PIP_INSTALL=ON -DHOMEBREW_ALLOW_FETCHCONTENT=ON -DOPENSSL_ROOT_DIR=#{Formula["openssl"].opt_prefix} -DSUNSHINE_ASSETS_DIR=sunshine/assets @@ -136,6 +176,9 @@ def base_cmake_args -DSUNSHINE_PUBLISHER_WEBSITE='https://app.lizardbyte.dev' -DSUNSHINE_PUBLISHER_ISSUE_URL='https://app.lizardbyte.dev/support' ] + # Point cmake at the venv Python that has jinja2 installed (set up in setup_build_environment) + args << "-DPython_EXECUTABLE=#{@glad_python}" if @glad_python + args end def add_test_args(args) diff --git a/scripts/pyproject.toml b/pyproject.toml similarity index 52% rename from scripts/pyproject.toml rename to pyproject.toml index 5b8c574a82b..9cf85cfdfea 100644 --- a/scripts/pyproject.toml +++ b/pyproject.toml @@ -15,6 +15,20 @@ authors = [ dependencies = [] [project.optional-dependencies] +# glad2 declares Jinja2>=2.7,<4.0 as a dependency, so installing it pulls in jinja2 transitively. +# The platform marker limits this to Linux where the glad generator is actually used. +glad = [ + "glad2 @ file:./third-party/glad", + # setuptools provides pkg_resources which glad's plugin.py imports. + # setuptools >= 81 removed pkg_resources; pin to the last series that includes it. + "setuptools<81", +] + +flatpak = [ + "flatpak_node_generator @ file:./packaging/linux/flatpak/deps/flatpak-builder-tools/node", + "flatpak_pip_generator @ file:./packaging/linux/flatpak/deps/flatpak-builder-tools/pip", +] + lint = [ "clang-format==20.*", "flake8==7.3.0", diff --git a/scripts/linux_build.sh b/scripts/linux_build.sh index 1c6434fa2f4..e950bd4d011 100755 --- a/scripts/linux_build.sh +++ b/scripts/linux_build.sh @@ -192,6 +192,8 @@ function add_arch_deps() { 'numactl' 'openssl' 'opus' + 'python-jinja' # glad OpenGL/EGL loader generator + 'python-setuptools' # glad OpenGL/EGL loader generated, v2.0.0 'udev' 'wayland' ) @@ -249,6 +251,8 @@ function add_debian_based_deps() { "libxtst-dev" # X11 "ninja-build" "npm" # web-ui + "python3-jinja2" # glad OpenGL/EGL loader generator + "python3-setuptools" # glad OpenGL/EGL loader generated, v2.0.0 "systemd" "udev" "wget" # necessary for cuda install with `run` file @@ -325,6 +329,8 @@ function add_fedora_deps() { "opus-devel" "pipewire-devel" "pulseaudio-libs-devel" + "python3-jinja2" # glad OpenGL/EGL loader generator + "python3-setuptools" # glad OpenGL/EGL loader generated, v2.0.0 "rpm-build" # if you want to build an RPM binary package "wget" # necessary for cuda install with `run` file "which" # necessary for cuda install with `run` file @@ -766,7 +772,7 @@ elif grep -q "Ubuntu 22.04" /etc/os-release; then package_install_command="${sudo_cmd} apt-get install -y" cuda_version="12.9.1" cuda_build="575.57.08" - gcc_version="13" + gcc_version="14" nvm_node=1 elif grep -q "Ubuntu 24.04" /etc/os-release; then distro="ubuntu" diff --git a/src/platform/linux/graphics.cpp b/src/platform/linux/graphics.cpp index bcd1d33bd12..38eb00717f6 100644 --- a/src/platform/linux/graphics.cpp +++ b/src/platform/linux/graphics.cpp @@ -32,6 +32,12 @@ using namespace std::literals; namespace gl { GladGLContext ctx; + static PFNGLEGLIMAGETARGETTEXTURE2DOESPROC egl_image_target_texture_2d_fn = nullptr; + + PFNGLEGLIMAGETARGETTEXTURE2DOESPROC egl_image_target_texture_2d() { + return egl_image_target_texture_2d_fn; + } + void drain_errors(const std::string_view &prefix) { GLenum err; while ((err = ctx.GetError()) != GL_NO_ERROR) { @@ -297,28 +303,6 @@ namespace gbm { } // namespace gbm namespace egl { - constexpr auto EGL_LINUX_DMA_BUF_EXT = 0x3270; - constexpr auto EGL_LINUX_DRM_FOURCC_EXT = 0x3271; - constexpr auto EGL_DMA_BUF_PLANE0_FD_EXT = 0x3272; - constexpr auto EGL_DMA_BUF_PLANE0_OFFSET_EXT = 0x3273; - constexpr auto EGL_DMA_BUF_PLANE0_PITCH_EXT = 0x3274; - constexpr auto EGL_DMA_BUF_PLANE1_FD_EXT = 0x3275; - constexpr auto EGL_DMA_BUF_PLANE1_OFFSET_EXT = 0x3276; - constexpr auto EGL_DMA_BUF_PLANE1_PITCH_EXT = 0x3277; - constexpr auto EGL_DMA_BUF_PLANE2_FD_EXT = 0x3278; - constexpr auto EGL_DMA_BUF_PLANE2_OFFSET_EXT = 0x3279; - constexpr auto EGL_DMA_BUF_PLANE2_PITCH_EXT = 0x327A; - constexpr auto EGL_DMA_BUF_PLANE3_FD_EXT = 0x3440; - constexpr auto EGL_DMA_BUF_PLANE3_OFFSET_EXT = 0x3441; - constexpr auto EGL_DMA_BUF_PLANE3_PITCH_EXT = 0x3442; - constexpr auto EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT = 0x3443; - constexpr auto EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT = 0x3444; - constexpr auto EGL_DMA_BUF_PLANE1_MODIFIER_LO_EXT = 0x3445; - constexpr auto EGL_DMA_BUF_PLANE1_MODIFIER_HI_EXT = 0x3446; - constexpr auto EGL_DMA_BUF_PLANE2_MODIFIER_LO_EXT = 0x3447; - constexpr auto EGL_DMA_BUF_PLANE2_MODIFIER_HI_EXT = 0x3448; - constexpr auto EGL_DMA_BUF_PLANE3_MODIFIER_LO_EXT = 0x3449; - constexpr auto EGL_DMA_BUF_PLANE3_MODIFIER_HI_EXT = 0x344A; bool fail() { return eglGetError() != EGL_SUCCESS; @@ -328,10 +312,6 @@ namespace egl { * @memberof egl::display_t */ display_t make_display(std::variant native_display) { - constexpr auto EGL_PLATFORM_GBM_MESA = 0x31D7; - constexpr auto EGL_PLATFORM_WAYLAND_KHR = 0x31D8; - constexpr auto EGL_PLATFORM_X11_KHR = 0x31D5; - int egl_platform; void *native_display_p; @@ -354,12 +334,20 @@ namespace egl { } // native_display.left() equals native_display.right() - display_t display = eglGetPlatformDisplay(egl_platform, native_display_p, nullptr); + EGLDisplay raw_display = EGL_NO_DISPLAY; - if (fail()) { - BOOST_LOG(error) << "Couldn't open EGL display: ["sv << util::hex(eglGetError()).to_string_view() << ']'; + if (eglGetPlatformDisplayEXT) { + raw_display = eglGetPlatformDisplayEXT(egl_platform, native_display_p, nullptr); + } else if (eglGetPlatformDisplay) { + raw_display = eglGetPlatformDisplay(egl_platform, native_display_p, nullptr); + } + + if (raw_display == EGL_NO_DISPLAY) { + BOOST_LOG(error) << "Couldn't open EGL display: ["sv + << util::hex(eglGetError()).to_string_view() << ']'; return nullptr; } + display_t display {raw_display}; int major; int minor; @@ -368,6 +356,11 @@ namespace egl { return nullptr; } + if (!gladLoaderLoadEGL(display.get())) { + BOOST_LOG(error) << "Failed to reload EGL for initialized display"sv; + return nullptr; + } + const char *extension_st = eglQueryString(display.get(), EGL_EXTENSIONS); const char *version = eglQueryString(display.get(), EGL_VERSION); const char *vendor = eglQueryString(display.get(), EGL_VENDOR); @@ -435,10 +428,28 @@ namespace egl { return std::nullopt; } - BOOST_LOG(debug) << "GL: vendor: "sv << gl::ctx.GetString(GL_VENDOR); - BOOST_LOG(debug) << "GL: renderer: "sv << gl::ctx.GetString(GL_RENDERER); - BOOST_LOG(debug) << "GL: version: "sv << gl::ctx.GetString(GL_VERSION); - BOOST_LOG(debug) << "GL: shader: "sv << gl::ctx.GetString(GL_SHADING_LANGUAGE_VERSION); + gl::egl_image_target_texture_2d_fn = + (gl::PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) (GLADapiproc) eglGetProcAddress("glEGLImageTargetTexture2DOES"); + if (!gl::egl_image_target_texture_2d_fn) { + BOOST_LOG(warning) << "GL: glEGLImageTargetTexture2DOES not available; DMA-BUF import will fail"sv; + } + + // GetString returns const GLubyte* (unsigned char*); convert to std::string safely (avoids sonar cpp:S6996). + auto gl_string = [](const GLubyte *s) { + std::string result; + while (s && *s) { + result += static_cast(*s++); + } + return result; + }; + const auto gl_vendor = gl_string(gl::ctx.GetString(GL_VENDOR)); + const auto gl_renderer = gl_string(gl::ctx.GetString(GL_RENDERER)); + const auto gl_version = gl_string(gl::ctx.GetString(GL_VERSION)); + const auto gl_shader = gl_string(gl::ctx.GetString(GL_SHADING_LANGUAGE_VERSION)); + BOOST_LOG(debug) << "GL: vendor: "sv << gl_vendor; + BOOST_LOG(debug) << "GL: renderer: "sv << gl_renderer; + BOOST_LOG(debug) << "GL: version: "sv << gl_version; + BOOST_LOG(debug) << "GL: shader: "sv << gl_shader; gl::ctx.PixelStorei(GL_UNPACK_ALIGNMENT, 1); @@ -551,7 +562,11 @@ namespace egl { } gl::ctx.BindTexture(GL_TEXTURE_2D, rgb->tex[0]); - gl::ctx.EGLImageTargetTexture2DOES(GL_TEXTURE_2D, rgb->xrgb8); + if (!gl::egl_image_target_texture_2d()) { + BOOST_LOG(error) << "glEGLImageTargetTexture2DOES is not available; cannot import RGB DMA-BUF"sv; + return std::nullopt; + } + gl::egl_image_target_texture_2d()(GL_TEXTURE_2D, rgb->xrgb8); gl::ctx.BindTexture(GL_TEXTURE_2D, 0); @@ -609,10 +624,14 @@ namespace egl { } gl::ctx.BindTexture(GL_TEXTURE_2D, nv12->tex[0]); - gl::ctx.EGLImageTargetTexture2DOES(GL_TEXTURE_2D, nv12->r8); + if (!gl::egl_image_target_texture_2d()) { + BOOST_LOG(error) << "glEGLImageTargetTexture2DOES is not available; cannot import YUV DMA-BUF"sv; + return std::nullopt; + } + gl::egl_image_target_texture_2d()(GL_TEXTURE_2D, nv12->r8); gl::ctx.BindTexture(GL_TEXTURE_2D, nv12->tex[1]); - gl::ctx.EGLImageTargetTexture2DOES(GL_TEXTURE_2D, nv12->bg88); + gl::egl_image_target_texture_2d()(GL_TEXTURE_2D, nv12->bg88); nv12->buf.bind(std::begin(nv12->tex), std::end(nv12->tex)); diff --git a/src/platform/linux/graphics.h b/src/platform/linux/graphics.h index 89548a234ed..9a62dfce1f5 100644 --- a/src/platform/linux/graphics.h +++ b/src/platform/linux/graphics.h @@ -36,6 +36,13 @@ using frame_t = util::safe_ptr; namespace gl { extern GladGLContext ctx; + + // glEGLImageTargetTexture2DOES (GL_OES_EGL_image) is not part of desktop GL — + // it is a GLES extension that must be loaded manually via eglGetProcAddress. + // GLeglImageOES is typedef void* per the Khronos spec (gl.xml). + using PFNGLEGLIMAGETARGETTEXTURE2DOESPROC = void (*)(GLenum target, void *image); + PFNGLEGLIMAGETARGETTEXTURE2DOESPROC egl_image_target_texture_2d(); + void drain_errors(const std::string_view &prefix); class tex_t: public util::buffer_t { diff --git a/src/platform/linux/misc.cpp b/src/platform/linux/misc.cpp index 723b8806c4f..0eac84afdca 100644 --- a/src/platform/linux/misc.cpp +++ b/src/platform/linux/misc.cpp @@ -1074,8 +1074,9 @@ namespace platf { return nullptr; } - if (!gladLoaderLoadEGL(EGL_NO_DISPLAY) || !eglGetPlatformDisplay) { - BOOST_LOG(warning) << "Couldn't load EGL library"sv; + if (!gladLoaderLoadEGL(NULL)) { + BOOST_LOG(error) << "Failed to load EGL library symbols"sv; + return nullptr; } return std::make_unique(); diff --git a/third-party/glad b/third-party/glad new file mode 160000 index 00000000000..dcc4f69620c --- /dev/null +++ b/third-party/glad @@ -0,0 +1 @@ +Subproject commit dcc4f69620ce15e3d40b3e8d907d293bd297dbe1 diff --git a/third-party/glad/include/EGL/eglplatform.h b/third-party/glad/include/EGL/eglplatform.h deleted file mode 100644 index b596aa3a7ac..00000000000 --- a/third-party/glad/include/EGL/eglplatform.h +++ /dev/null @@ -1,167 +0,0 @@ -#ifndef __eglplatform_h_ -#define __eglplatform_h_ - -/* -** Copyright 2007-2020 The Khronos Group Inc. -** SPDX-License-Identifier: Apache-2.0 -*/ - -/* Platform-specific types and definitions for egl.h - * - * Adopters may modify khrplatform.h and this file to suit their platform. - * You are encouraged to submit all modifications to the Khronos group so that - * they can be included in future versions of this file. Please submit changes - * by filing an issue or pull request on the public Khronos EGL Registry, at - * https://www.github.com/KhronosGroup/EGL-Registry/ - */ - -#include - -/* Macros used in EGL function prototype declarations. - * - * EGL functions should be prototyped as: - * - * EGLAPI return-type EGLAPIENTRY eglFunction(arguments); - * typedef return-type (EXPAPIENTRYP PFNEGLFUNCTIONPROC) (arguments); - * - * KHRONOS_APICALL and KHRONOS_APIENTRY are defined in KHR/khrplatform.h - */ - -#ifndef EGLAPI - #define EGLAPI KHRONOS_APICALL -#endif - -#ifndef EGLAPIENTRY - #define EGLAPIENTRY KHRONOS_APIENTRY -#endif -#define EGLAPIENTRYP EGLAPIENTRY * - -/* The types NativeDisplayType, NativeWindowType, and NativePixmapType - * are aliases of window-system-dependent types, such as X Display * or - * Windows Device Context. They must be defined in platform-specific - * code below. The EGL-prefixed versions of Native*Type are the same - * types, renamed in EGL 1.3 so all types in the API start with "EGL". - * - * Khronos STRONGLY RECOMMENDS that you use the default definitions - * provided below, since these changes affect both binary and source - * portability of applications using EGL running on different EGL - * implementations. - */ - -#if defined(EGL_NO_PLATFORM_SPECIFIC_TYPES) - -typedef void *EGLNativeDisplayType; -typedef void *EGLNativePixmapType; -typedef void *EGLNativeWindowType; - -#elif defined(_WIN32) || defined(__VC32__) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) /* Win32 and WinCE */ - #ifndef WIN32_LEAN_AND_MEAN - #define WIN32_LEAN_AND_MEAN 1 - #endif - #include - -typedef HDC EGLNativeDisplayType; -typedef HBITMAP EGLNativePixmapType; -typedef HWND EGLNativeWindowType; - -#elif defined(__EMSCRIPTEN__) - -typedef int EGLNativeDisplayType; -typedef int EGLNativePixmapType; -typedef int EGLNativeWindowType; - -#elif defined(__WINSCW__) || defined(__SYMBIAN32__) /* Symbian */ - -typedef int EGLNativeDisplayType; -typedef void *EGLNativePixmapType; -typedef void *EGLNativeWindowType; - -#elif defined(WL_EGL_PLATFORM) - -typedef struct wl_display *EGLNativeDisplayType; -typedef struct wl_egl_pixmap *EGLNativePixmapType; -typedef struct wl_egl_window *EGLNativeWindowType; - -#elif defined(__GBM__) - -typedef struct gbm_device *EGLNativeDisplayType; -typedef struct gbm_bo *EGLNativePixmapType; -typedef void *EGLNativeWindowType; - -#elif defined(__ANDROID__) || defined(ANDROID) - -struct ANativeWindow; -struct egl_native_pixmap_t; - -typedef void *EGLNativeDisplayType; -typedef struct egl_native_pixmap_t *EGLNativePixmapType; -typedef struct ANativeWindow *EGLNativeWindowType; - -#elif defined(USE_OZONE) - -typedef intptr_t EGLNativeDisplayType; -typedef intptr_t EGLNativePixmapType; -typedef intptr_t EGLNativeWindowType; - -#elif defined(__unix__) && defined(EGL_NO_X11) - -typedef void *EGLNativeDisplayType; -typedef khronos_uintptr_t EGLNativePixmapType; -typedef khronos_uintptr_t EGLNativeWindowType; - -#elif defined(__unix__) || defined(USE_X11) - - /* X11 (tentative) */ - #include - #include - -typedef Display *EGLNativeDisplayType; -typedef Pixmap EGLNativePixmapType; -typedef Window EGLNativeWindowType; - -#elif defined(__APPLE__) - -typedef int EGLNativeDisplayType; -typedef void *EGLNativePixmapType; -typedef void *EGLNativeWindowType; - -#elif defined(__HAIKU__) - - #include - -typedef void *EGLNativeDisplayType; -typedef khronos_uintptr_t EGLNativePixmapType; -typedef khronos_uintptr_t EGLNativeWindowType; - -#elif defined(__Fuchsia__) - -typedef void *EGLNativeDisplayType; -typedef khronos_uintptr_t EGLNativePixmapType; -typedef khronos_uintptr_t EGLNativeWindowType; - -#else - #error "Platform not recognized" -#endif - -/* EGL 1.2 types, renamed for consistency in EGL 1.3 */ -typedef EGLNativeDisplayType NativeDisplayType; -typedef EGLNativePixmapType NativePixmapType; -typedef EGLNativeWindowType NativeWindowType; - -/* Define EGLint. This must be a signed integral type large enough to contain - * all legal attribute names and values passed into and out of EGL, whether - * their type is boolean, bitmask, enumerant (symbolic constant), integer, - * handle, or other. While in general a 32-bit integer will suffice, if - * handles are 64 bit types, then EGLint should be defined as a signed 64-bit - * integer type. - */ -typedef khronos_int32_t EGLint; - -/* C++ / C typecast macros for special EGL handle values */ -#if defined(__cplusplus) - #define EGL_CAST(type, value) (static_cast(value)) -#else - #define EGL_CAST(type, value) ((type) (value)) -#endif - -#endif /* __eglplatform_h */ \ No newline at end of file diff --git a/third-party/glad/include/KHR/khrplatform.h b/third-party/glad/include/KHR/khrplatform.h deleted file mode 100644 index decd5704edc..00000000000 --- a/third-party/glad/include/KHR/khrplatform.h +++ /dev/null @@ -1,288 +0,0 @@ -#ifndef __khrplatform_h_ -#define __khrplatform_h_ - -/* -** Copyright (c) 2008-2018 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. -*/ - -/* Khronos platform-specific types and definitions. - * - * The master copy of khrplatform.h is maintained in the Khronos EGL - * Registry repository at https://github.com/KhronosGroup/EGL-Registry - * The last semantic modification to khrplatform.h was at commit ID: - * 67a3e0864c2d75ea5287b9f3d2eb74a745936692 - * - * Adopters may modify this file to suit their platform. Adopters are - * encouraged to submit platform specific modifications to the Khronos - * group so that they can be included in future versions of this file. - * Please submit changes by filing pull requests or issues on - * the EGL Registry repository linked above. - * - * - * See the Implementer's Guidelines for information about where this file - * should be located on your system and for more details of its use: - * http://www.khronos.org/registry/implementers_guide.pdf - * - * This file should be included as - * #include - * by Khronos client API header files that use its types and defines. - * - * The types in khrplatform.h should only be used to define API-specific types. - * - * Types defined in khrplatform.h: - * khronos_int8_t signed 8 bit - * khronos_uint8_t unsigned 8 bit - * khronos_int16_t signed 16 bit - * khronos_uint16_t unsigned 16 bit - * khronos_int32_t signed 32 bit - * khronos_uint32_t unsigned 32 bit - * khronos_int64_t signed 64 bit - * khronos_uint64_t unsigned 64 bit - * khronos_intptr_t signed same number of bits as a pointer - * khronos_uintptr_t unsigned same number of bits as a pointer - * khronos_ssize_t signed size - * khronos_usize_t unsigned size - * khronos_float_t signed 32 bit floating point - * khronos_time_ns_t unsigned 64 bit time in nanoseconds - * khronos_utime_nanoseconds_t unsigned time interval or absolute time in - * nanoseconds - * khronos_stime_nanoseconds_t signed time interval in nanoseconds - * khronos_boolean_enum_t enumerated boolean type. This should - * only be used as a base type when a client API's boolean type is - * an enum. Client APIs which use an integer or other type for - * booleans cannot use this as the base type for their boolean. - * - * Tokens defined in khrplatform.h: - * - * KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values. - * - * KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0. - * KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0. - * - * Calling convention macros defined in this file: - * KHRONOS_APICALL - * KHRONOS_APIENTRY - * KHRONOS_APIATTRIBUTES - * - * These may be used in function prototypes as: - * - * KHRONOS_APICALL void KHRONOS_APIENTRY funcname( - * int arg1, - * int arg2) KHRONOS_APIATTRIBUTES; - */ - -#if defined(__SCITECH_SNAP__) && !defined(KHRONOS_STATIC) - #define KHRONOS_STATIC 1 -#endif - -/*------------------------------------------------------------------------- - * Definition of KHRONOS_APICALL - *------------------------------------------------------------------------- - * This precedes the return type of the function in the function prototype. - */ -#if defined(KHRONOS_STATIC) - /* If the preprocessor constant KHRONOS_STATIC is defined, make the - * header compatible with static linking. */ - #define KHRONOS_APICALL -#elif defined(_WIN32) - #define KHRONOS_APICALL __declspec(dllimport) -#elif defined(__SYMBIAN32__) - #define KHRONOS_APICALL IMPORT_C -#elif defined(__ANDROID__) - #define KHRONOS_APICALL __attribute__((visibility("default"))) -#else - #define KHRONOS_APICALL -#endif - -/*------------------------------------------------------------------------- - * Definition of KHRONOS_APIENTRY - *------------------------------------------------------------------------- - * This follows the return type of the function and precedes the function - * name in the function prototype. - */ -#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__) - /* Win32 but not WinCE */ - #define KHRONOS_APIENTRY __stdcall -#else - #define KHRONOS_APIENTRY -#endif - -/*------------------------------------------------------------------------- - * Definition of KHRONOS_APIATTRIBUTES - *------------------------------------------------------------------------- - * This follows the closing parenthesis of the function prototype arguments. - */ -#if defined(__ARMCC_2__) - #define KHRONOS_APIATTRIBUTES __softfp -#else - #define KHRONOS_APIATTRIBUTES -#endif - -/*------------------------------------------------------------------------- - * basic type definitions - *-----------------------------------------------------------------------*/ -#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__) - - /* - * Using - */ - #include -typedef int32_t khronos_int32_t; -typedef uint32_t khronos_uint32_t; -typedef int64_t khronos_int64_t; -typedef uint64_t khronos_uint64_t; - #define KHRONOS_SUPPORT_INT64 1 - #define KHRONOS_SUPPORT_FLOAT 1 - -#elif defined(__VMS) || defined(__sgi) - - /* - * Using - */ - #include -typedef int32_t khronos_int32_t; -typedef uint32_t khronos_uint32_t; -typedef int64_t khronos_int64_t; -typedef uint64_t khronos_uint64_t; - #define KHRONOS_SUPPORT_INT64 1 - #define KHRONOS_SUPPORT_FLOAT 1 - -#elif defined(_WIN32) && !defined(__SCITECH_SNAP__) - -/* - * Win32 - */ -typedef __int32 khronos_int32_t; -typedef unsigned __int32 khronos_uint32_t; -typedef __int64 khronos_int64_t; -typedef unsigned __int64 khronos_uint64_t; - #define KHRONOS_SUPPORT_INT64 1 - #define KHRONOS_SUPPORT_FLOAT 1 - -#elif defined(__sun__) || defined(__digital__) - -/* - * Sun or Digital - */ -typedef int khronos_int32_t; -typedef unsigned int khronos_uint32_t; - #if defined(__arch64__) || defined(_LP64) -typedef long int khronos_int64_t; -typedef unsigned long int khronos_uint64_t; - #else -typedef long long int khronos_int64_t; -typedef unsigned long long int khronos_uint64_t; - #endif /* __arch64__ */ - #define KHRONOS_SUPPORT_INT64 1 - #define KHRONOS_SUPPORT_FLOAT 1 - -#elif 0 - -/* - * Hypothetical platform with no float or int64 support - */ -typedef int khronos_int32_t; -typedef unsigned int khronos_uint32_t; - #define KHRONOS_SUPPORT_INT64 0 - #define KHRONOS_SUPPORT_FLOAT 0 - -#else - - /* - * Generic fallback - */ - #include -typedef int32_t khronos_int32_t; -typedef uint32_t khronos_uint32_t; -typedef int64_t khronos_int64_t; -typedef uint64_t khronos_uint64_t; - #define KHRONOS_SUPPORT_INT64 1 - #define KHRONOS_SUPPORT_FLOAT 1 - -#endif - -/* - * Types that are (so far) the same on all platforms - */ -typedef signed char khronos_int8_t; -typedef unsigned char khronos_uint8_t; -typedef signed short int khronos_int16_t; -typedef unsigned short int khronos_uint16_t; - -/* - * Types that differ between LLP64 and LP64 architectures - in LLP64, - * pointers are 64 bits, but 'long' is still 32 bits. Win64 appears - * to be the only LLP64 architecture in current use. - */ -#ifdef _WIN64 -typedef signed long long int khronos_intptr_t; -typedef unsigned long long int khronos_uintptr_t; -typedef signed long long int khronos_ssize_t; -typedef unsigned long long int khronos_usize_t; -#else -typedef signed long int khronos_intptr_t; -typedef unsigned long int khronos_uintptr_t; -typedef signed long int khronos_ssize_t; -typedef unsigned long int khronos_usize_t; -#endif - -#if KHRONOS_SUPPORT_FLOAT -/* - * Float type - */ -typedef float khronos_float_t; -#endif - -#if KHRONOS_SUPPORT_INT64 -/* Time types - * - * These types can be used to represent a time interval in nanoseconds or - * an absolute Unadjusted System Time. Unadjusted System Time is the number - * of nanoseconds since some arbitrary system event (e.g. since the last - * time the system booted). The Unadjusted System Time is an unsigned - * 64 bit value that wraps back to 0 every 584 years. Time intervals - * may be either signed or unsigned. - */ -typedef khronos_uint64_t khronos_utime_nanoseconds_t; -typedef khronos_int64_t khronos_stime_nanoseconds_t; -#endif - -/* - * Dummy value used to pad enum types to 32 bits. - */ -#ifndef KHRONOS_MAX_ENUM - #define KHRONOS_MAX_ENUM 0x7FFFFFFF -#endif - -/* - * Enumerated boolean type - * - * Values other than zero should be considered to be true. Therefore - * comparisons should not be made against KHRONOS_TRUE. - */ -typedef enum { - KHRONOS_FALSE = 0, - KHRONOS_TRUE = 1, - KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM -} khronos_boolean_enum_t; - -#endif /* __khrplatform_h_ */ \ No newline at end of file diff --git a/third-party/glad/include/glad/egl.h b/third-party/glad/include/glad/egl.h deleted file mode 100644 index 6d4e115948b..00000000000 --- a/third-party/glad/include/glad/egl.h +++ /dev/null @@ -1,589 +0,0 @@ -/** - * Loader generated by glad 2.0.0-beta on Tue Jun 1 10:22:05 2021 - * - * Generator: C/C++ - * Specification: egl - * Extensions: 0 - * - * APIs: - * - egl=1.5 - * - * Options: - * - ALIAS = False - * - DEBUG = False - * - HEADER_ONLY = False - * - LOADER = True - * - MX = True - * - MX_GLOBAL = False - * - ON_DEMAND = False - * - * Commandline: - * --api='egl=1.5' --extensions='' c --loader --mx - * - * Online: - * http://glad.sh/#api=egl%3D1.5&extensions=&generator=c&options=LOADER%2CMX - * - */ - -#ifndef GLAD_EGL_H_ -#define GLAD_EGL_H_ - -#define GLAD_EGL -#define GLAD_OPTION_EGL_LOADER - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef GLAD_PLATFORM_H_ - #define GLAD_PLATFORM_H_ - - #ifndef GLAD_PLATFORM_WIN32 - #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__MINGW32__) - #define GLAD_PLATFORM_WIN32 1 - #else - #define GLAD_PLATFORM_WIN32 0 - #endif - #endif - - #ifndef GLAD_PLATFORM_APPLE - #ifdef __APPLE__ - #define GLAD_PLATFORM_APPLE 1 - #else - #define GLAD_PLATFORM_APPLE 0 - #endif - #endif - - #ifndef GLAD_PLATFORM_EMSCRIPTEN - #ifdef __EMSCRIPTEN__ - #define GLAD_PLATFORM_EMSCRIPTEN 1 - #else - #define GLAD_PLATFORM_EMSCRIPTEN 0 - #endif - #endif - - #ifndef GLAD_PLATFORM_UWP - #if defined(_MSC_VER) && !defined(GLAD_INTERNAL_HAVE_WINAPIFAMILY) - #ifdef __has_include - #if __has_include() - #define GLAD_INTERNAL_HAVE_WINAPIFAMILY 1 - #endif - #elif _MSC_VER >= 1700 && !_USING_V110_SDK71_ - #define GLAD_INTERNAL_HAVE_WINAPIFAMILY 1 - #endif - #endif - - #ifdef GLAD_INTERNAL_HAVE_WINAPIFAMILY - #include - #if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) - #define GLAD_PLATFORM_UWP 1 - #endif - #endif - - #ifndef GLAD_PLATFORM_UWP - #define GLAD_PLATFORM_UWP 0 - #endif - #endif - - #ifdef __GNUC__ - #define GLAD_GNUC_EXTENSION __extension__ - #else - #define GLAD_GNUC_EXTENSION - #endif - - #ifndef GLAD_API_CALL - #if defined(GLAD_API_CALL_EXPORT) - #if GLAD_PLATFORM_WIN32 || defined(__CYGWIN__) - #if defined(GLAD_API_CALL_EXPORT_BUILD) - #if defined(__GNUC__) - #define GLAD_API_CALL __attribute__((dllexport)) extern - #else - #define GLAD_API_CALL __declspec(dllexport) extern - #endif - #else - #if defined(__GNUC__) - #define GLAD_API_CALL __attribute__((dllimport)) extern - #else - #define GLAD_API_CALL __declspec(dllimport) extern - #endif - #endif - #elif defined(__GNUC__) && defined(GLAD_API_CALL_EXPORT_BUILD) - #define GLAD_API_CALL __attribute__((visibility("default"))) extern - #else - #define GLAD_API_CALL extern - #endif - #else - #define GLAD_API_CALL extern - #endif - #endif - - #ifdef APIENTRY - #define GLAD_API_PTR APIENTRY - #elif GLAD_PLATFORM_WIN32 - #define GLAD_API_PTR __stdcall - #else - #define GLAD_API_PTR - #endif - - #ifndef GLAPI - #define GLAPI GLAD_API_CALL - #endif - - #ifndef GLAPIENTRY - #define GLAPIENTRY GLAD_API_PTR - #endif - - #define GLAD_MAKE_VERSION(major, minor) (major * 10000 + minor) - #define GLAD_VERSION_MAJOR(version) (version / 10000) - #define GLAD_VERSION_MINOR(version) (version % 10000) - - #define GLAD_GENERATOR_VERSION "2.0.0-beta" - -typedef void (*GLADapiproc)(void); - -typedef GLADapiproc (*GLADloadfunc)(const char *name); -typedef GLADapiproc (*GLADuserptrloadfunc)(void *userptr, const char *name); - -typedef void (*GLADprecallback)(const char *name, GLADapiproc apiproc, int len_args, ...); -typedef void (*GLADpostcallback)(void *ret, const char *name, GLADapiproc apiproc, int len_args, ...); - -#endif /* GLAD_PLATFORM_H_ */ - -#define EGL_ALPHA_FORMAT 0x3088 -#define EGL_ALPHA_FORMAT_NONPRE 0x308B -#define EGL_ALPHA_FORMAT_PRE 0x308C -#define EGL_ALPHA_MASK_SIZE 0x303E -#define EGL_ALPHA_SIZE 0x3021 -#define EGL_BACK_BUFFER 0x3084 -#define EGL_BAD_ACCESS 0x3002 -#define EGL_BAD_ALLOC 0x3003 -#define EGL_BAD_ATTRIBUTE 0x3004 -#define EGL_BAD_CONFIG 0x3005 -#define EGL_BAD_CONTEXT 0x3006 -#define EGL_BAD_CURRENT_SURFACE 0x3007 -#define EGL_BAD_DISPLAY 0x3008 -#define EGL_BAD_MATCH 0x3009 -#define EGL_BAD_NATIVE_PIXMAP 0x300A -#define EGL_BAD_NATIVE_WINDOW 0x300B -#define EGL_BAD_PARAMETER 0x300C -#define EGL_BAD_SURFACE 0x300D -#define EGL_BIND_TO_TEXTURE_RGB 0x3039 -#define EGL_BIND_TO_TEXTURE_RGBA 0x303A -#define EGL_BLUE_SIZE 0x3022 -#define EGL_BUFFER_DESTROYED 0x3095 -#define EGL_BUFFER_PRESERVED 0x3094 -#define EGL_BUFFER_SIZE 0x3020 -#define EGL_CLIENT_APIS 0x308D -#define EGL_CL_EVENT_HANDLE 0x309C -#define EGL_COLORSPACE 0x3087 -#define EGL_COLORSPACE_LINEAR 0x308A -#define EGL_COLORSPACE_sRGB 0x3089 -#define EGL_COLOR_BUFFER_TYPE 0x303F -#define EGL_CONDITION_SATISFIED 0x30F6 -#define EGL_CONFIG_CAVEAT 0x3027 -#define EGL_CONFIG_ID 0x3028 -#define EGL_CONFORMANT 0x3042 -#define EGL_CONTEXT_CLIENT_TYPE 0x3097 -#define EGL_CONTEXT_CLIENT_VERSION 0x3098 -#define EGL_CONTEXT_LOST 0x300E -#define EGL_CONTEXT_MAJOR_VERSION 0x3098 -#define EGL_CONTEXT_MINOR_VERSION 0x30FB -#define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT 0x00000002 -#define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT 0x00000001 -#define EGL_CONTEXT_OPENGL_DEBUG 0x31B0 -#define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE 0x31B1 -#define EGL_CONTEXT_OPENGL_PROFILE_MASK 0x30FD -#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY 0x31BD -#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS 0x31B2 -#define EGL_CORE_NATIVE_ENGINE 0x305B -#define EGL_DEFAULT_DISPLAY EGL_CAST(EGLNativeDisplayType, 0) -#define EGL_DEPTH_SIZE 0x3025 -#define EGL_DISPLAY_SCALING 10000 -#define EGL_DONT_CARE EGL_CAST(EGLint, -1) -#define EGL_DRAW 0x3059 -#define EGL_EXTENSIONS 0x3055 -#define EGL_FALSE 0 -#define EGL_FOREVER 0xFFFFFFFFFFFFFFFF -#define EGL_GL_COLORSPACE 0x309D -#define EGL_GL_COLORSPACE_LINEAR 0x308A -#define EGL_GL_COLORSPACE_SRGB 0x3089 -#define EGL_GL_RENDERBUFFER 0x30B9 -#define EGL_GL_TEXTURE_2D 0x30B1 -#define EGL_GL_TEXTURE_3D 0x30B2 -#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x30B4 -#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x30B6 -#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x30B8 -#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x30B3 -#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x30B5 -#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x30B7 -#define EGL_GL_TEXTURE_LEVEL 0x30BC -#define EGL_GL_TEXTURE_ZOFFSET 0x30BD -#define EGL_GREEN_SIZE 0x3023 -#define EGL_HEIGHT 0x3056 -#define EGL_HORIZONTAL_RESOLUTION 0x3090 -#define EGL_IMAGE_PRESERVED 0x30D2 -#define EGL_LARGEST_PBUFFER 0x3058 -#define EGL_LEVEL 0x3029 -#define EGL_LOSE_CONTEXT_ON_RESET 0x31BF -#define EGL_LUMINANCE_BUFFER 0x308F -#define EGL_LUMINANCE_SIZE 0x303D -#define EGL_MATCH_NATIVE_PIXMAP 0x3041 -#define EGL_MAX_PBUFFER_HEIGHT 0x302A -#define EGL_MAX_PBUFFER_PIXELS 0x302B -#define EGL_MAX_PBUFFER_WIDTH 0x302C -#define EGL_MAX_SWAP_INTERVAL 0x303C -#define EGL_MIN_SWAP_INTERVAL 0x303B -#define EGL_MIPMAP_LEVEL 0x3083 -#define EGL_MIPMAP_TEXTURE 0x3082 -#define EGL_MULTISAMPLE_RESOLVE 0x3099 -#define EGL_MULTISAMPLE_RESOLVE_BOX 0x309B -#define EGL_MULTISAMPLE_RESOLVE_BOX_BIT 0x0200 -#define EGL_MULTISAMPLE_RESOLVE_DEFAULT 0x309A -#define EGL_NATIVE_RENDERABLE 0x302D -#define EGL_NATIVE_VISUAL_ID 0x302E -#define EGL_NATIVE_VISUAL_TYPE 0x302F -#define EGL_NONE 0x3038 -#define EGL_NON_CONFORMANT_CONFIG 0x3051 -#define EGL_NOT_INITIALIZED 0x3001 -#define EGL_NO_CONTEXT EGL_CAST(EGLContext, 0) -#define EGL_NO_DISPLAY EGL_CAST(EGLDisplay, 0) -#define EGL_NO_IMAGE EGL_CAST(EGLImage, 0) -#define EGL_NO_RESET_NOTIFICATION 0x31BE -#define EGL_NO_SURFACE EGL_CAST(EGLSurface, 0) -#define EGL_NO_SYNC EGL_CAST(EGLSync, 0) -#define EGL_NO_TEXTURE 0x305C -#define EGL_OPENGL_API 0x30A2 -#define EGL_OPENGL_BIT 0x0008 -#define EGL_OPENGL_ES2_BIT 0x0004 -#define EGL_OPENGL_ES3_BIT 0x00000040 -#define EGL_OPENGL_ES_API 0x30A0 -#define EGL_OPENGL_ES_BIT 0x0001 -#define EGL_OPENVG_API 0x30A1 -#define EGL_OPENVG_BIT 0x0002 -#define EGL_OPENVG_IMAGE 0x3096 -#define EGL_PBUFFER_BIT 0x0001 -#define EGL_PIXEL_ASPECT_RATIO 0x3092 -#define EGL_PIXMAP_BIT 0x0002 -#define EGL_READ 0x305A -#define EGL_RED_SIZE 0x3024 -#define EGL_RENDERABLE_TYPE 0x3040 -#define EGL_RENDER_BUFFER 0x3086 -#define EGL_RGB_BUFFER 0x308E -#define EGL_SAMPLES 0x3031 -#define EGL_SAMPLE_BUFFERS 0x3032 -#define EGL_SIGNALED 0x30F2 -#define EGL_SINGLE_BUFFER 0x3085 -#define EGL_SLOW_CONFIG 0x3050 -#define EGL_STENCIL_SIZE 0x3026 -#define EGL_SUCCESS 0x3000 -#define EGL_SURFACE_TYPE 0x3033 -#define EGL_SWAP_BEHAVIOR 0x3093 -#define EGL_SWAP_BEHAVIOR_PRESERVED_BIT 0x0400 -#define EGL_SYNC_CL_EVENT 0x30FE -#define EGL_SYNC_CL_EVENT_COMPLETE 0x30FF -#define EGL_SYNC_CONDITION 0x30F8 -#define EGL_SYNC_FENCE 0x30F9 -#define EGL_SYNC_FLUSH_COMMANDS_BIT 0x0001 -#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE 0x30F0 -#define EGL_SYNC_STATUS 0x30F1 -#define EGL_SYNC_TYPE 0x30F7 -#define EGL_TEXTURE_2D 0x305F -#define EGL_TEXTURE_FORMAT 0x3080 -#define EGL_TEXTURE_RGB 0x305D -#define EGL_TEXTURE_RGBA 0x305E -#define EGL_TEXTURE_TARGET 0x3081 -#define EGL_TIMEOUT_EXPIRED 0x30F5 -#define EGL_TRANSPARENT_BLUE_VALUE 0x3035 -#define EGL_TRANSPARENT_GREEN_VALUE 0x3036 -#define EGL_TRANSPARENT_RED_VALUE 0x3037 -#define EGL_TRANSPARENT_RGB 0x3052 -#define EGL_TRANSPARENT_TYPE 0x3034 -#define EGL_TRUE 1 -#define EGL_UNKNOWN EGL_CAST(EGLint, -1) -#define EGL_UNSIGNALED 0x30F3 -#define EGL_VENDOR 0x3053 -#define EGL_VERSION 0x3054 -#define EGL_VERTICAL_RESOLUTION 0x3091 -#define EGL_VG_ALPHA_FORMAT 0x3088 -#define EGL_VG_ALPHA_FORMAT_NONPRE 0x308B -#define EGL_VG_ALPHA_FORMAT_PRE 0x308C -#define EGL_VG_ALPHA_FORMAT_PRE_BIT 0x0040 -#define EGL_VG_COLORSPACE 0x3087 -#define EGL_VG_COLORSPACE_LINEAR 0x308A -#define EGL_VG_COLORSPACE_LINEAR_BIT 0x0020 -#define EGL_VG_COLORSPACE_sRGB 0x3089 -#define EGL_WIDTH 0x3057 -#define EGL_WINDOW_BIT 0x0004 - -#include - -#include - -struct AHardwareBuffer; - -struct wl_buffer; - -struct wl_display; - -struct wl_resource; - -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(GLAD_API_PTR *EGLDEBUGPROCKHR)(EGLenum error, const char *command, EGLint messageType, EGLLabelKHR threadLabel, EGLLabelKHR objectLabel, const char *message); - -#define PFNEGLBINDWAYLANDDISPLAYWL PFNEGLBINDWAYLANDDISPLAYWLPROC - -#define PFNEGLUNBINDWAYLANDDISPLAYWL PFNEGLUNBINDWAYLANDDISPLAYWLPROC - -#define PFNEGLQUERYWAYLANDBUFFERWL PFNEGLQUERYWAYLANDBUFFERWLPROC - -#define PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWL PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWLPROC - -#define EGL_VERSION_1_0 1 -GLAD_API_CALL int GLAD_EGL_VERSION_1_0; -#define EGL_VERSION_1_1 1 -GLAD_API_CALL int GLAD_EGL_VERSION_1_1; -#define EGL_VERSION_1_2 1 -GLAD_API_CALL int GLAD_EGL_VERSION_1_2; -#define EGL_VERSION_1_3 1 -GLAD_API_CALL int GLAD_EGL_VERSION_1_3; -#define EGL_VERSION_1_4 1 -GLAD_API_CALL int GLAD_EGL_VERSION_1_4; -#define EGL_VERSION_1_5 1 -GLAD_API_CALL int GLAD_EGL_VERSION_1_5; - -typedef EGLBoolean(GLAD_API_PTR *PFNEGLBINDAPIPROC)(EGLenum api); -typedef EGLBoolean(GLAD_API_PTR *PFNEGLBINDTEXIMAGEPROC)(EGLDisplay dpy, EGLSurface surface, EGLint buffer); -typedef EGLBoolean(GLAD_API_PTR *PFNEGLCHOOSECONFIGPROC)(EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config); -typedef EGLint(GLAD_API_PTR *PFNEGLCLIENTWAITSYNCPROC)(EGLDisplay dpy, EGLSync sync, EGLint flags, EGLTime timeout); -typedef EGLBoolean(GLAD_API_PTR *PFNEGLCOPYBUFFERSPROC)(EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target); -typedef EGLContext(GLAD_API_PTR *PFNEGLCREATECONTEXTPROC)(EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list); -typedef EGLImage(GLAD_API_PTR *PFNEGLCREATEIMAGEPROC)(EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLAttrib *attrib_list); -typedef EGLSurface(GLAD_API_PTR *PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC)(EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list); -typedef EGLSurface(GLAD_API_PTR *PFNEGLCREATEPBUFFERSURFACEPROC)(EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list); -typedef EGLSurface(GLAD_API_PTR *PFNEGLCREATEPIXMAPSURFACEPROC)(EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint *attrib_list); -typedef EGLSurface(GLAD_API_PTR *PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC)(EGLDisplay dpy, EGLConfig config, void *native_pixmap, const EGLAttrib *attrib_list); -typedef EGLSurface(GLAD_API_PTR *PFNEGLCREATEPLATFORMWINDOWSURFACEPROC)(EGLDisplay dpy, EGLConfig config, void *native_window, const EGLAttrib *attrib_list); -typedef EGLSync(GLAD_API_PTR *PFNEGLCREATESYNCPROC)(EGLDisplay dpy, EGLenum type, const EGLAttrib *attrib_list); -typedef EGLSurface(GLAD_API_PTR *PFNEGLCREATEWINDOWSURFACEPROC)(EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint *attrib_list); -typedef EGLBoolean(GLAD_API_PTR *PFNEGLDESTROYCONTEXTPROC)(EGLDisplay dpy, EGLContext ctx); -typedef EGLBoolean(GLAD_API_PTR *PFNEGLDESTROYIMAGEPROC)(EGLDisplay dpy, EGLImage image); -typedef EGLBoolean(GLAD_API_PTR *PFNEGLDESTROYSURFACEPROC)(EGLDisplay dpy, EGLSurface surface); -typedef EGLBoolean(GLAD_API_PTR *PFNEGLDESTROYSYNCPROC)(EGLDisplay dpy, EGLSync sync); -typedef EGLBoolean(GLAD_API_PTR *PFNEGLGETCONFIGATTRIBPROC)(EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value); -typedef EGLBoolean(GLAD_API_PTR *PFNEGLGETCONFIGSPROC)(EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config); -typedef EGLContext(GLAD_API_PTR *PFNEGLGETCURRENTCONTEXTPROC)(void); -typedef EGLDisplay(GLAD_API_PTR *PFNEGLGETCURRENTDISPLAYPROC)(void); -typedef EGLSurface(GLAD_API_PTR *PFNEGLGETCURRENTSURFACEPROC)(EGLint readdraw); -typedef EGLDisplay(GLAD_API_PTR *PFNEGLGETDISPLAYPROC)(EGLNativeDisplayType display_id); -typedef EGLint(GLAD_API_PTR *PFNEGLGETERRORPROC)(void); -typedef EGLDisplay(GLAD_API_PTR *PFNEGLGETPLATFORMDISPLAYPROC)(EGLenum platform, void *native_display, const EGLAttrib *attrib_list); -typedef __eglMustCastToProperFunctionPointerType(GLAD_API_PTR *PFNEGLGETPROCADDRESSPROC)(const char *procname); -typedef EGLBoolean(GLAD_API_PTR *PFNEGLGETSYNCATTRIBPROC)(EGLDisplay dpy, EGLSync sync, EGLint attribute, EGLAttrib *value); -typedef EGLBoolean(GLAD_API_PTR *PFNEGLINITIALIZEPROC)(EGLDisplay dpy, EGLint *major, EGLint *minor); -typedef EGLBoolean(GLAD_API_PTR *PFNEGLMAKECURRENTPROC)(EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx); -typedef EGLenum(GLAD_API_PTR *PFNEGLQUERYAPIPROC)(void); -typedef EGLBoolean(GLAD_API_PTR *PFNEGLQUERYCONTEXTPROC)(EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value); -typedef const char *(GLAD_API_PTR *PFNEGLQUERYSTRINGPROC)(EGLDisplay dpy, EGLint name); -typedef EGLBoolean(GLAD_API_PTR *PFNEGLQUERYSURFACEPROC)(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value); -typedef EGLBoolean(GLAD_API_PTR *PFNEGLRELEASETEXIMAGEPROC)(EGLDisplay dpy, EGLSurface surface, EGLint buffer); -typedef EGLBoolean(GLAD_API_PTR *PFNEGLRELEASETHREADPROC)(void); -typedef EGLBoolean(GLAD_API_PTR *PFNEGLSURFACEATTRIBPROC)(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value); -typedef EGLBoolean(GLAD_API_PTR *PFNEGLSWAPBUFFERSPROC)(EGLDisplay dpy, EGLSurface surface); -typedef EGLBoolean(GLAD_API_PTR *PFNEGLSWAPINTERVALPROC)(EGLDisplay dpy, EGLint interval); -typedef EGLBoolean(GLAD_API_PTR *PFNEGLTERMINATEPROC)(EGLDisplay dpy); -typedef EGLBoolean(GLAD_API_PTR *PFNEGLWAITCLIENTPROC)(void); -typedef EGLBoolean(GLAD_API_PTR *PFNEGLWAITGLPROC)(void); -typedef EGLBoolean(GLAD_API_PTR *PFNEGLWAITNATIVEPROC)(EGLint engine); -typedef EGLBoolean(GLAD_API_PTR *PFNEGLWAITSYNCPROC)(EGLDisplay dpy, EGLSync sync, EGLint flags); - -typedef EGLImageKHR(EGLAPIENTRYP PFNEGLCREATEIMAGEKHRPROC)(EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list); -typedef EGLBoolean(EGLAPIENTRYP PFNEGLDESTROYIMAGEKHRPROC)(EGLDisplay dpy, EGLImageKHR image); - -typedef EGLenum(EGLAPIENTRYP PFNEGLQUERYDMABUFFORMATSEXTPROC)(EGLDisplay dpy, EGLint max_formats, EGLint *formats, EGLint *num_formats); -typedef EGLenum(EGLAPIENTRYP PFNEGLQUERYDMABUFMODIFIERSEXTPROC)(EGLDisplay dpy, EGLint format, EGLint max_modifiers, EGLuint64KHR *modifiers, EGLBoolean *external_only, EGLint *num_modifiers); - -GLAD_API_CALL PFNEGLQUERYDMABUFFORMATSEXTPROC glad_eglQueryDmaBufFormatsEXT; -#define eglQueryDmaBufFormatsEXT glad_eglQueryDmaBufFormatsEXT -GLAD_API_CALL PFNEGLQUERYDMABUFMODIFIERSEXTPROC glad_eglQueryDmaBufModifiersEXT; -#define eglQueryDmaBufModifiersEXT glad_eglQueryDmaBufModifiersEXT - -GLAD_API_CALL PFNEGLCREATEIMAGEKHRPROC glad_eglCreateImageKHR; -#define eglCreateImageKHR glad_eglCreateImageKHR -GLAD_API_CALL PFNEGLDESTROYIMAGEKHRPROC glad_eglDestroyImageKHR; -#define eglDestroyImageKHR glad_eglDestroyImageKHR - -GLAD_API_CALL PFNEGLBINDAPIPROC glad_eglBindAPI; -#define eglBindAPI glad_eglBindAPI -GLAD_API_CALL PFNEGLBINDTEXIMAGEPROC glad_eglBindTexImage; -#define eglBindTexImage glad_eglBindTexImage -GLAD_API_CALL PFNEGLCHOOSECONFIGPROC glad_eglChooseConfig; -#define eglChooseConfig glad_eglChooseConfig -GLAD_API_CALL PFNEGLCLIENTWAITSYNCPROC glad_eglClientWaitSync; -#define eglClientWaitSync glad_eglClientWaitSync -GLAD_API_CALL PFNEGLCOPYBUFFERSPROC glad_eglCopyBuffers; -#define eglCopyBuffers glad_eglCopyBuffers -GLAD_API_CALL PFNEGLCREATECONTEXTPROC glad_eglCreateContext; -#define eglCreateContext glad_eglCreateContext -GLAD_API_CALL PFNEGLCREATEIMAGEPROC glad_eglCreateImage; -#define eglCreateImage glad_eglCreateImage -GLAD_API_CALL PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC glad_eglCreatePbufferFromClientBuffer; -#define eglCreatePbufferFromClientBuffer glad_eglCreatePbufferFromClientBuffer -GLAD_API_CALL PFNEGLCREATEPBUFFERSURFACEPROC glad_eglCreatePbufferSurface; -#define eglCreatePbufferSurface glad_eglCreatePbufferSurface -GLAD_API_CALL PFNEGLCREATEPIXMAPSURFACEPROC glad_eglCreatePixmapSurface; -#define eglCreatePixmapSurface glad_eglCreatePixmapSurface -GLAD_API_CALL PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC glad_eglCreatePlatformPixmapSurface; -#define eglCreatePlatformPixmapSurface glad_eglCreatePlatformPixmapSurface -GLAD_API_CALL PFNEGLCREATEPLATFORMWINDOWSURFACEPROC glad_eglCreatePlatformWindowSurface; -#define eglCreatePlatformWindowSurface glad_eglCreatePlatformWindowSurface -GLAD_API_CALL PFNEGLCREATESYNCPROC glad_eglCreateSync; -#define eglCreateSync glad_eglCreateSync -GLAD_API_CALL PFNEGLCREATEWINDOWSURFACEPROC glad_eglCreateWindowSurface; -#define eglCreateWindowSurface glad_eglCreateWindowSurface -GLAD_API_CALL PFNEGLDESTROYCONTEXTPROC glad_eglDestroyContext; -#define eglDestroyContext glad_eglDestroyContext -GLAD_API_CALL PFNEGLDESTROYIMAGEPROC glad_eglDestroyImage; -#define eglDestroyImage glad_eglDestroyImage -GLAD_API_CALL PFNEGLDESTROYSURFACEPROC glad_eglDestroySurface; -#define eglDestroySurface glad_eglDestroySurface -GLAD_API_CALL PFNEGLDESTROYSYNCPROC glad_eglDestroySync; -#define eglDestroySync glad_eglDestroySync -GLAD_API_CALL PFNEGLGETCONFIGATTRIBPROC glad_eglGetConfigAttrib; -#define eglGetConfigAttrib glad_eglGetConfigAttrib -GLAD_API_CALL PFNEGLGETCONFIGSPROC glad_eglGetConfigs; -#define eglGetConfigs glad_eglGetConfigs -GLAD_API_CALL PFNEGLGETCURRENTCONTEXTPROC glad_eglGetCurrentContext; -#define eglGetCurrentContext glad_eglGetCurrentContext -GLAD_API_CALL PFNEGLGETCURRENTDISPLAYPROC glad_eglGetCurrentDisplay; -#define eglGetCurrentDisplay glad_eglGetCurrentDisplay -GLAD_API_CALL PFNEGLGETCURRENTSURFACEPROC glad_eglGetCurrentSurface; -#define eglGetCurrentSurface glad_eglGetCurrentSurface -GLAD_API_CALL PFNEGLGETDISPLAYPROC glad_eglGetDisplay; -#define eglGetDisplay glad_eglGetDisplay -GLAD_API_CALL PFNEGLGETERRORPROC glad_eglGetError; -#define eglGetError glad_eglGetError -GLAD_API_CALL PFNEGLGETPLATFORMDISPLAYPROC glad_eglGetPlatformDisplay; -#define eglGetPlatformDisplay glad_eglGetPlatformDisplay -GLAD_API_CALL PFNEGLGETPROCADDRESSPROC glad_eglGetProcAddress; -#define eglGetProcAddress glad_eglGetProcAddress -GLAD_API_CALL PFNEGLGETSYNCATTRIBPROC glad_eglGetSyncAttrib; -#define eglGetSyncAttrib glad_eglGetSyncAttrib -GLAD_API_CALL PFNEGLINITIALIZEPROC glad_eglInitialize; -#define eglInitialize glad_eglInitialize -GLAD_API_CALL PFNEGLMAKECURRENTPROC glad_eglMakeCurrent; -#define eglMakeCurrent glad_eglMakeCurrent -GLAD_API_CALL PFNEGLQUERYAPIPROC glad_eglQueryAPI; -#define eglQueryAPI glad_eglQueryAPI -GLAD_API_CALL PFNEGLQUERYCONTEXTPROC glad_eglQueryContext; -#define eglQueryContext glad_eglQueryContext -GLAD_API_CALL PFNEGLQUERYSTRINGPROC glad_eglQueryString; -#define eglQueryString glad_eglQueryString -GLAD_API_CALL PFNEGLQUERYSURFACEPROC glad_eglQuerySurface; -#define eglQuerySurface glad_eglQuerySurface -GLAD_API_CALL PFNEGLRELEASETEXIMAGEPROC glad_eglReleaseTexImage; -#define eglReleaseTexImage glad_eglReleaseTexImage -GLAD_API_CALL PFNEGLRELEASETHREADPROC glad_eglReleaseThread; -#define eglReleaseThread glad_eglReleaseThread -GLAD_API_CALL PFNEGLSURFACEATTRIBPROC glad_eglSurfaceAttrib; -#define eglSurfaceAttrib glad_eglSurfaceAttrib -GLAD_API_CALL PFNEGLSWAPBUFFERSPROC glad_eglSwapBuffers; -#define eglSwapBuffers glad_eglSwapBuffers -GLAD_API_CALL PFNEGLSWAPINTERVALPROC glad_eglSwapInterval; -#define eglSwapInterval glad_eglSwapInterval -GLAD_API_CALL PFNEGLTERMINATEPROC glad_eglTerminate; -#define eglTerminate glad_eglTerminate -GLAD_API_CALL PFNEGLWAITCLIENTPROC glad_eglWaitClient; -#define eglWaitClient glad_eglWaitClient -GLAD_API_CALL PFNEGLWAITGLPROC glad_eglWaitGL; -#define eglWaitGL glad_eglWaitGL -GLAD_API_CALL PFNEGLWAITNATIVEPROC glad_eglWaitNative; -#define eglWaitNative glad_eglWaitNative -GLAD_API_CALL PFNEGLWAITSYNCPROC glad_eglWaitSync; -#define eglWaitSync glad_eglWaitSync - -GLAD_API_CALL int -gladLoadEGLUserPtr(EGLDisplay display, GLADuserptrloadfunc load, void *userptr); -GLAD_API_CALL int -gladLoadEGL(EGLDisplay display, GLADloadfunc load); - -#ifdef GLAD_EGL - -GLAD_API_CALL int -gladLoaderLoadEGL(EGLDisplay display); - -GLAD_API_CALL void -gladLoaderUnloadEGL(void); - -#endif -#ifdef __cplusplus -} -#endif -#endif diff --git a/third-party/glad/include/glad/gl.h b/third-party/glad/include/glad/gl.h deleted file mode 100644 index 0e9eb829c55..00000000000 --- a/third-party/glad/include/glad/gl.h +++ /dev/null @@ -1,4253 +0,0 @@ -/** - * Loader generated by glad 2.0.0-beta on Tue Jun 1 10:22:06 2021 - * - * Generator: C/C++ - * Specification: gl - * Extensions: 0 - * - * APIs: - * - gl:compatibility=4.6 - * - * Options: - * - ALIAS = False - * - DEBUG = False - * - HEADER_ONLY = False - * - LOADER = True - * - MX = True - * - MX_GLOBAL = False - * - ON_DEMAND = False - * - * Commandline: - * --api='gl:compatibility=4.6' --extensions='' c --loader --mx - * - * Online: - * http://glad.sh/#api=gl%3Acompatibility%3D4.6&extensions=&generator=c&options=LOADER%2CMX - * - */ - -#ifndef GLAD_GL_H_ -#define GLAD_GL_H_ - -#ifdef __clang__ - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Wreserved-id-macro" -#endif -#ifdef __gl_h_ - #error OpenGL (gl.h) header already included (API: gl), remove previous include! -#endif -#define __gl_h_ 1 -#ifdef __gl3_h_ - #error OpenGL (gl3.h) header already included (API: gl), remove previous include! -#endif -#define __gl3_h_ 1 -#ifdef __glext_h_ - #error OpenGL (glext.h) header already included (API: gl), remove previous include! -#endif -#define __glext_h_ 1 -#ifdef __gl3ext_h_ - #error OpenGL (gl3ext.h) header already included (API: gl), remove previous include! -#endif -#define __gl3ext_h_ 1 -#ifdef __clang__ - #pragma clang diagnostic pop -#endif - -#define GLAD_GL -#define GLAD_OPTION_GL_LOADER -#define GLAD_OPTION_GL_MX - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef GLAD_PLATFORM_H_ - #define GLAD_PLATFORM_H_ - - #ifndef GLAD_PLATFORM_WIN32 - #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__MINGW32__) - #define GLAD_PLATFORM_WIN32 1 - #else - #define GLAD_PLATFORM_WIN32 0 - #endif - #endif - - #ifndef GLAD_PLATFORM_APPLE - #ifdef __APPLE__ - #define GLAD_PLATFORM_APPLE 1 - #else - #define GLAD_PLATFORM_APPLE 0 - #endif - #endif - - #ifndef GLAD_PLATFORM_EMSCRIPTEN - #ifdef __EMSCRIPTEN__ - #define GLAD_PLATFORM_EMSCRIPTEN 1 - #else - #define GLAD_PLATFORM_EMSCRIPTEN 0 - #endif - #endif - - #ifndef GLAD_PLATFORM_UWP - #if defined(_MSC_VER) && !defined(GLAD_INTERNAL_HAVE_WINAPIFAMILY) - #ifdef __has_include - #if __has_include() - #define GLAD_INTERNAL_HAVE_WINAPIFAMILY 1 - #endif - #elif _MSC_VER >= 1700 && !_USING_V110_SDK71_ - #define GLAD_INTERNAL_HAVE_WINAPIFAMILY 1 - #endif - #endif - - #ifdef GLAD_INTERNAL_HAVE_WINAPIFAMILY - #include - #if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) - #define GLAD_PLATFORM_UWP 1 - #endif - #endif - - #ifndef GLAD_PLATFORM_UWP - #define GLAD_PLATFORM_UWP 0 - #endif - #endif - - #ifdef __GNUC__ - #define GLAD_GNUC_EXTENSION __extension__ - #else - #define GLAD_GNUC_EXTENSION - #endif - - #ifndef GLAD_API_CALL - #if defined(GLAD_API_CALL_EXPORT) - #if GLAD_PLATFORM_WIN32 || defined(__CYGWIN__) - #if defined(GLAD_API_CALL_EXPORT_BUILD) - #if defined(__GNUC__) - #define GLAD_API_CALL __attribute__((dllexport)) extern - #else - #define GLAD_API_CALL __declspec(dllexport) extern - #endif - #else - #if defined(__GNUC__) - #define GLAD_API_CALL __attribute__((dllimport)) extern - #else - #define GLAD_API_CALL __declspec(dllimport) extern - #endif - #endif - #elif defined(__GNUC__) && defined(GLAD_API_CALL_EXPORT_BUILD) - #define GLAD_API_CALL __attribute__((visibility("default"))) extern - #else - #define GLAD_API_CALL extern - #endif - #else - #define GLAD_API_CALL extern - #endif - #endif - - #ifdef APIENTRY - #define GLAD_API_PTR APIENTRY - #elif GLAD_PLATFORM_WIN32 - #define GLAD_API_PTR __stdcall - #else - #define GLAD_API_PTR - #endif - - #ifndef GLAPI - #define GLAPI GLAD_API_CALL - #endif - - #ifndef GLAPIENTRY - #define GLAPIENTRY GLAD_API_PTR - #endif - - #define GLAD_MAKE_VERSION(major, minor) (major * 10000 + minor) - #define GLAD_VERSION_MAJOR(version) (version / 10000) - #define GLAD_VERSION_MINOR(version) (version % 10000) - - #define GLAD_GENERATOR_VERSION "2.0.0-beta" - -typedef void (*GLADapiproc)(void); - -typedef GLADapiproc (*GLADloadfunc)(const char *name); -typedef GLADapiproc (*GLADuserptrloadfunc)(void *userptr, const char *name); - -typedef void (*GLADprecallback)(const char *name, GLADapiproc apiproc, int len_args, ...); -typedef void (*GLADpostcallback)(void *ret, const char *name, GLADapiproc apiproc, int len_args, ...); - -#endif /* GLAD_PLATFORM_H_ */ - -#define GL_2D 0x0600 -#define GL_2_BYTES 0x1407 -#define GL_3D 0x0601 -#define GL_3D_COLOR 0x0602 -#define GL_3D_COLOR_TEXTURE 0x0603 -#define GL_3_BYTES 0x1408 -#define GL_4D_COLOR_TEXTURE 0x0604 -#define GL_4_BYTES 0x1409 -#define GL_ACCUM 0x0100 -#define GL_ACCUM_ALPHA_BITS 0x0D5B -#define GL_ACCUM_BLUE_BITS 0x0D5A -#define GL_ACCUM_BUFFER_BIT 0x00000200 -#define GL_ACCUM_CLEAR_VALUE 0x0B80 -#define GL_ACCUM_GREEN_BITS 0x0D59 -#define GL_ACCUM_RED_BITS 0x0D58 -#define GL_ACTIVE_ATOMIC_COUNTER_BUFFERS 0x92D9 -#define GL_ACTIVE_ATTRIBUTES 0x8B89 -#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A -#define GL_ACTIVE_PROGRAM 0x8259 -#define GL_ACTIVE_RESOURCES 0x92F5 -#define GL_ACTIVE_SUBROUTINES 0x8DE5 -#define GL_ACTIVE_SUBROUTINE_MAX_LENGTH 0x8E48 -#define GL_ACTIVE_SUBROUTINE_UNIFORMS 0x8DE6 -#define GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS 0x8E47 -#define GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH 0x8E49 -#define GL_ACTIVE_TEXTURE 0x84E0 -#define GL_ACTIVE_UNIFORMS 0x8B86 -#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36 -#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35 -#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 -#define GL_ACTIVE_VARIABLES 0x9305 -#define GL_ADD 0x0104 -#define GL_ADD_SIGNED 0x8574 -#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E -#define GL_ALIASED_POINT_SIZE_RANGE 0x846D -#define GL_ALL_ATTRIB_BITS 0xFFFFFFFF -#define GL_ALL_BARRIER_BITS 0xFFFFFFFF -#define GL_ALL_SHADER_BITS 0xFFFFFFFF -#define GL_ALPHA 0x1906 -#define GL_ALPHA12 0x803D -#define GL_ALPHA16 0x803E -#define GL_ALPHA4 0x803B -#define GL_ALPHA8 0x803C -#define GL_ALPHA_BIAS 0x0D1D -#define GL_ALPHA_BITS 0x0D55 -#define GL_ALPHA_INTEGER 0x8D97 -#define GL_ALPHA_SCALE 0x0D1C -#define GL_ALPHA_TEST 0x0BC0 -#define GL_ALPHA_TEST_FUNC 0x0BC1 -#define GL_ALPHA_TEST_REF 0x0BC2 -#define GL_ALREADY_SIGNALED 0x911A -#define GL_ALWAYS 0x0207 -#define GL_AMBIENT 0x1200 -#define GL_AMBIENT_AND_DIFFUSE 0x1602 -#define GL_AND 0x1501 -#define GL_AND_INVERTED 0x1504 -#define GL_AND_REVERSE 0x1502 -#define GL_ANY_SAMPLES_PASSED 0x8C2F -#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A -#define GL_ARRAY_BUFFER 0x8892 -#define GL_ARRAY_BUFFER_BINDING 0x8894 -#define GL_ARRAY_SIZE 0x92FB -#define GL_ARRAY_STRIDE 0x92FE -#define GL_ATOMIC_COUNTER_BARRIER_BIT 0x00001000 -#define GL_ATOMIC_COUNTER_BUFFER 0x92C0 -#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS 0x92C5 -#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES 0x92C6 -#define GL_ATOMIC_COUNTER_BUFFER_BINDING 0x92C1 -#define GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE 0x92C4 -#define GL_ATOMIC_COUNTER_BUFFER_INDEX 0x9301 -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER 0x90ED -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER 0x92CB -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER 0x92CA -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER 0x92C8 -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER 0x92C9 -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER 0x92C7 -#define GL_ATOMIC_COUNTER_BUFFER_SIZE 0x92C3 -#define GL_ATOMIC_COUNTER_BUFFER_START 0x92C2 -#define GL_ATTACHED_SHADERS 0x8B85 -#define GL_ATTRIB_STACK_DEPTH 0x0BB0 -#define GL_AUTO_GENERATE_MIPMAP 0x8295 -#define GL_AUTO_NORMAL 0x0D80 -#define GL_AUX0 0x0409 -#define GL_AUX1 0x040A -#define GL_AUX2 0x040B -#define GL_AUX3 0x040C -#define GL_AUX_BUFFERS 0x0C00 -#define GL_BACK 0x0405 -#define GL_BACK_LEFT 0x0402 -#define GL_BACK_RIGHT 0x0403 -#define GL_BGR 0x80E0 -#define GL_BGRA 0x80E1 -#define GL_BGRA_INTEGER 0x8D9B -#define GL_BGR_INTEGER 0x8D9A -#define GL_BITMAP 0x1A00 -#define GL_BITMAP_TOKEN 0x0704 -#define GL_BLEND 0x0BE2 -#define GL_BLEND_COLOR 0x8005 -#define GL_BLEND_DST 0x0BE0 -#define GL_BLEND_DST_ALPHA 0x80CA -#define GL_BLEND_DST_RGB 0x80C8 -#define GL_BLEND_EQUATION 0x8009 -#define GL_BLEND_EQUATION_ALPHA 0x883D -#define GL_BLEND_EQUATION_RGB 0x8009 -#define GL_BLEND_SRC 0x0BE1 -#define GL_BLEND_SRC_ALPHA 0x80CB -#define GL_BLEND_SRC_RGB 0x80C9 -#define GL_BLOCK_INDEX 0x92FD -#define GL_BLUE 0x1905 -#define GL_BLUE_BIAS 0x0D1B -#define GL_BLUE_BITS 0x0D54 -#define GL_BLUE_INTEGER 0x8D96 -#define GL_BLUE_SCALE 0x0D1A -#define GL_BOOL 0x8B56 -#define GL_BOOL_VEC2 0x8B57 -#define GL_BOOL_VEC3 0x8B58 -#define GL_BOOL_VEC4 0x8B59 -#define GL_BUFFER 0x82E0 -#define GL_BUFFER_ACCESS 0x88BB -#define GL_BUFFER_ACCESS_FLAGS 0x911F -#define GL_BUFFER_BINDING 0x9302 -#define GL_BUFFER_DATA_SIZE 0x9303 -#define GL_BUFFER_IMMUTABLE_STORAGE 0x821F -#define GL_BUFFER_MAPPED 0x88BC -#define GL_BUFFER_MAP_LENGTH 0x9120 -#define GL_BUFFER_MAP_OFFSET 0x9121 -#define GL_BUFFER_MAP_POINTER 0x88BD -#define GL_BUFFER_SIZE 0x8764 -#define GL_BUFFER_STORAGE_FLAGS 0x8220 -#define GL_BUFFER_UPDATE_BARRIER_BIT 0x00000200 -#define GL_BUFFER_USAGE 0x8765 -#define GL_BUFFER_VARIABLE 0x92E5 -#define GL_BYTE 0x1400 -#define GL_C3F_V3F 0x2A24 -#define GL_C4F_N3F_V3F 0x2A26 -#define GL_C4UB_V2F 0x2A22 -#define GL_C4UB_V3F 0x2A23 -#define GL_CAVEAT_SUPPORT 0x82B8 -#define GL_CCW 0x0901 -#define GL_CLAMP 0x2900 -#define GL_CLAMP_FRAGMENT_COLOR 0x891B -#define GL_CLAMP_READ_COLOR 0x891C -#define GL_CLAMP_TO_BORDER 0x812D -#define GL_CLAMP_TO_EDGE 0x812F -#define GL_CLAMP_VERTEX_COLOR 0x891A -#define GL_CLEAR 0x1500 -#define GL_CLEAR_BUFFER 0x82B4 -#define GL_CLEAR_TEXTURE 0x9365 -#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1 -#define GL_CLIENT_ALL_ATTRIB_BITS 0xFFFFFFFF -#define GL_CLIENT_ATTRIB_STACK_DEPTH 0x0BB1 -#define GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT 0x00004000 -#define GL_CLIENT_PIXEL_STORE_BIT 0x00000001 -#define GL_CLIENT_STORAGE_BIT 0x0200 -#define GL_CLIENT_VERTEX_ARRAY_BIT 0x00000002 -#define GL_CLIPPING_INPUT_PRIMITIVES 0x82F6 -#define GL_CLIPPING_OUTPUT_PRIMITIVES 0x82F7 -#define GL_CLIP_DEPTH_MODE 0x935D -#define GL_CLIP_DISTANCE0 0x3000 -#define GL_CLIP_DISTANCE1 0x3001 -#define GL_CLIP_DISTANCE2 0x3002 -#define GL_CLIP_DISTANCE3 0x3003 -#define GL_CLIP_DISTANCE4 0x3004 -#define GL_CLIP_DISTANCE5 0x3005 -#define GL_CLIP_DISTANCE6 0x3006 -#define GL_CLIP_DISTANCE7 0x3007 -#define GL_CLIP_ORIGIN 0x935C -#define GL_CLIP_PLANE0 0x3000 -#define GL_CLIP_PLANE1 0x3001 -#define GL_CLIP_PLANE2 0x3002 -#define GL_CLIP_PLANE3 0x3003 -#define GL_CLIP_PLANE4 0x3004 -#define GL_CLIP_PLANE5 0x3005 -#define GL_COEFF 0x0A00 -#define GL_COLOR 0x1800 -#define GL_COLOR_ARRAY 0x8076 -#define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898 -#define GL_COLOR_ARRAY_POINTER 0x8090 -#define GL_COLOR_ARRAY_SIZE 0x8081 -#define GL_COLOR_ARRAY_STRIDE 0x8083 -#define GL_COLOR_ARRAY_TYPE 0x8082 -#define GL_COLOR_ATTACHMENT0 0x8CE0 -#define GL_COLOR_ATTACHMENT1 0x8CE1 -#define GL_COLOR_ATTACHMENT10 0x8CEA -#define GL_COLOR_ATTACHMENT11 0x8CEB -#define GL_COLOR_ATTACHMENT12 0x8CEC -#define GL_COLOR_ATTACHMENT13 0x8CED -#define GL_COLOR_ATTACHMENT14 0x8CEE -#define GL_COLOR_ATTACHMENT15 0x8CEF -#define GL_COLOR_ATTACHMENT16 0x8CF0 -#define GL_COLOR_ATTACHMENT17 0x8CF1 -#define GL_COLOR_ATTACHMENT18 0x8CF2 -#define GL_COLOR_ATTACHMENT19 0x8CF3 -#define GL_COLOR_ATTACHMENT2 0x8CE2 -#define GL_COLOR_ATTACHMENT20 0x8CF4 -#define GL_COLOR_ATTACHMENT21 0x8CF5 -#define GL_COLOR_ATTACHMENT22 0x8CF6 -#define GL_COLOR_ATTACHMENT23 0x8CF7 -#define GL_COLOR_ATTACHMENT24 0x8CF8 -#define GL_COLOR_ATTACHMENT25 0x8CF9 -#define GL_COLOR_ATTACHMENT26 0x8CFA -#define GL_COLOR_ATTACHMENT27 0x8CFB -#define GL_COLOR_ATTACHMENT28 0x8CFC -#define GL_COLOR_ATTACHMENT29 0x8CFD -#define GL_COLOR_ATTACHMENT3 0x8CE3 -#define GL_COLOR_ATTACHMENT30 0x8CFE -#define GL_COLOR_ATTACHMENT31 0x8CFF -#define GL_COLOR_ATTACHMENT4 0x8CE4 -#define GL_COLOR_ATTACHMENT5 0x8CE5 -#define GL_COLOR_ATTACHMENT6 0x8CE6 -#define GL_COLOR_ATTACHMENT7 0x8CE7 -#define GL_COLOR_ATTACHMENT8 0x8CE8 -#define GL_COLOR_ATTACHMENT9 0x8CE9 -#define GL_COLOR_BUFFER_BIT 0x00004000 -#define GL_COLOR_CLEAR_VALUE 0x0C22 -#define GL_COLOR_COMPONENTS 0x8283 -#define GL_COLOR_ENCODING 0x8296 -#define GL_COLOR_INDEX 0x1900 -#define GL_COLOR_INDEXES 0x1603 -#define GL_COLOR_LOGIC_OP 0x0BF2 -#define GL_COLOR_MATERIAL 0x0B57 -#define GL_COLOR_MATERIAL_FACE 0x0B55 -#define GL_COLOR_MATERIAL_PARAMETER 0x0B56 -#define GL_COLOR_RENDERABLE 0x8286 -#define GL_COLOR_SUM 0x8458 -#define GL_COLOR_TABLE 0x80D0 -#define GL_COLOR_WRITEMASK 0x0C23 -#define GL_COMBINE 0x8570 -#define GL_COMBINE_ALPHA 0x8572 -#define GL_COMBINE_RGB 0x8571 -#define GL_COMMAND_BARRIER_BIT 0x00000040 -#define GL_COMPARE_REF_TO_TEXTURE 0x884E -#define GL_COMPARE_R_TO_TEXTURE 0x884E -#define GL_COMPATIBLE_SUBROUTINES 0x8E4B -#define GL_COMPILE 0x1300 -#define GL_COMPILE_AND_EXECUTE 0x1301 -#define GL_COMPILE_STATUS 0x8B81 -#define GL_COMPRESSED_ALPHA 0x84E9 -#define GL_COMPRESSED_INTENSITY 0x84EC -#define GL_COMPRESSED_LUMINANCE 0x84EA -#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB -#define GL_COMPRESSED_R11_EAC 0x9270 -#define GL_COMPRESSED_RED 0x8225 -#define GL_COMPRESSED_RED_RGTC1 0x8DBB -#define GL_COMPRESSED_RG 0x8226 -#define GL_COMPRESSED_RG11_EAC 0x9272 -#define GL_COMPRESSED_RGB 0x84ED -#define GL_COMPRESSED_RGB8_ETC2 0x9274 -#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276 -#define GL_COMPRESSED_RGBA 0x84EE -#define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278 -#define GL_COMPRESSED_RGBA_BPTC_UNORM 0x8E8C -#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT 0x8E8E -#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT 0x8E8F -#define GL_COMPRESSED_RG_RGTC2 0x8DBD -#define GL_COMPRESSED_SIGNED_R11_EAC 0x9271 -#define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC -#define GL_COMPRESSED_SIGNED_RG11_EAC 0x9273 -#define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE -#define GL_COMPRESSED_SLUMINANCE 0x8C4A -#define GL_COMPRESSED_SLUMINANCE_ALPHA 0x8C4B -#define GL_COMPRESSED_SRGB 0x8C48 -#define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279 -#define GL_COMPRESSED_SRGB8_ETC2 0x9275 -#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277 -#define GL_COMPRESSED_SRGB_ALPHA 0x8C49 -#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM 0x8E8D -#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 -#define GL_COMPUTE_SHADER 0x91B9 -#define GL_COMPUTE_SHADER_BIT 0x00000020 -#define GL_COMPUTE_SHADER_INVOCATIONS 0x82F5 -#define GL_COMPUTE_SUBROUTINE 0x92ED -#define GL_COMPUTE_SUBROUTINE_UNIFORM 0x92F3 -#define GL_COMPUTE_TEXTURE 0x82A0 -#define GL_COMPUTE_WORK_GROUP_SIZE 0x8267 -#define GL_CONDITION_SATISFIED 0x911C -#define GL_CONSTANT 0x8576 -#define GL_CONSTANT_ALPHA 0x8003 -#define GL_CONSTANT_ATTENUATION 0x1207 -#define GL_CONSTANT_COLOR 0x8001 -#define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002 -#define GL_CONTEXT_CORE_PROFILE_BIT 0x00000001 -#define GL_CONTEXT_FLAGS 0x821E -#define GL_CONTEXT_FLAG_DEBUG_BIT 0x00000002 -#define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x00000001 -#define GL_CONTEXT_FLAG_NO_ERROR_BIT 0x00000008 -#define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT 0x00000004 -#define GL_CONTEXT_LOST 0x0507 -#define GL_CONTEXT_PROFILE_MASK 0x9126 -#define GL_CONTEXT_RELEASE_BEHAVIOR 0x82FB -#define GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH 0x82FC -#define GL_CONVOLUTION_1D 0x8010 -#define GL_CONVOLUTION_2D 0x8011 -#define GL_COORD_REPLACE 0x8862 -#define GL_COPY 0x1503 -#define GL_COPY_INVERTED 0x150C -#define GL_COPY_PIXEL_TOKEN 0x0706 -#define GL_COPY_READ_BUFFER 0x8F36 -#define GL_COPY_READ_BUFFER_BINDING 0x8F36 -#define GL_COPY_WRITE_BUFFER 0x8F37 -#define GL_COPY_WRITE_BUFFER_BINDING 0x8F37 -#define GL_CULL_FACE 0x0B44 -#define GL_CULL_FACE_MODE 0x0B45 -#define GL_CURRENT_BIT 0x00000001 -#define GL_CURRENT_COLOR 0x0B00 -#define GL_CURRENT_FOG_COORD 0x8453 -#define GL_CURRENT_FOG_COORDINATE 0x8453 -#define GL_CURRENT_INDEX 0x0B01 -#define GL_CURRENT_NORMAL 0x0B02 -#define GL_CURRENT_PROGRAM 0x8B8D -#define GL_CURRENT_QUERY 0x8865 -#define GL_CURRENT_RASTER_COLOR 0x0B04 -#define GL_CURRENT_RASTER_DISTANCE 0x0B09 -#define GL_CURRENT_RASTER_INDEX 0x0B05 -#define GL_CURRENT_RASTER_POSITION 0x0B07 -#define GL_CURRENT_RASTER_POSITION_VALID 0x0B08 -#define GL_CURRENT_RASTER_SECONDARY_COLOR 0x845F -#define GL_CURRENT_RASTER_TEXTURE_COORDS 0x0B06 -#define GL_CURRENT_SECONDARY_COLOR 0x8459 -#define GL_CURRENT_TEXTURE_COORDS 0x0B03 -#define GL_CURRENT_VERTEX_ATTRIB 0x8626 -#define GL_CW 0x0900 -#define GL_DEBUG_CALLBACK_FUNCTION 0x8244 -#define GL_DEBUG_CALLBACK_USER_PARAM 0x8245 -#define GL_DEBUG_GROUP_STACK_DEPTH 0x826D -#define GL_DEBUG_LOGGED_MESSAGES 0x9145 -#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH 0x8243 -#define GL_DEBUG_OUTPUT 0x92E0 -#define GL_DEBUG_OUTPUT_SYNCHRONOUS 0x8242 -#define GL_DEBUG_SEVERITY_HIGH 0x9146 -#define GL_DEBUG_SEVERITY_LOW 0x9148 -#define GL_DEBUG_SEVERITY_MEDIUM 0x9147 -#define GL_DEBUG_SEVERITY_NOTIFICATION 0x826B -#define GL_DEBUG_SOURCE_API 0x8246 -#define GL_DEBUG_SOURCE_APPLICATION 0x824A -#define GL_DEBUG_SOURCE_OTHER 0x824B -#define GL_DEBUG_SOURCE_SHADER_COMPILER 0x8248 -#define GL_DEBUG_SOURCE_THIRD_PARTY 0x8249 -#define GL_DEBUG_SOURCE_WINDOW_SYSTEM 0x8247 -#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR 0x824D -#define GL_DEBUG_TYPE_ERROR 0x824C -#define GL_DEBUG_TYPE_MARKER 0x8268 -#define GL_DEBUG_TYPE_OTHER 0x8251 -#define GL_DEBUG_TYPE_PERFORMANCE 0x8250 -#define GL_DEBUG_TYPE_POP_GROUP 0x826A -#define GL_DEBUG_TYPE_PORTABILITY 0x824F -#define GL_DEBUG_TYPE_PUSH_GROUP 0x8269 -#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR 0x824E -#define GL_DECAL 0x2101 -#define GL_DECR 0x1E03 -#define GL_DECR_WRAP 0x8508 -#define GL_DELETE_STATUS 0x8B80 -#define GL_DEPTH 0x1801 -#define GL_DEPTH24_STENCIL8 0x88F0 -#define GL_DEPTH32F_STENCIL8 0x8CAD -#define GL_DEPTH_ATTACHMENT 0x8D00 -#define GL_DEPTH_BIAS 0x0D1F -#define GL_DEPTH_BITS 0x0D56 -#define GL_DEPTH_BUFFER_BIT 0x00000100 -#define GL_DEPTH_CLAMP 0x864F -#define GL_DEPTH_CLEAR_VALUE 0x0B73 -#define GL_DEPTH_COMPONENT 0x1902 -#define GL_DEPTH_COMPONENT16 0x81A5 -#define GL_DEPTH_COMPONENT24 0x81A6 -#define GL_DEPTH_COMPONENT32 0x81A7 -#define GL_DEPTH_COMPONENT32F 0x8CAC -#define GL_DEPTH_COMPONENTS 0x8284 -#define GL_DEPTH_FUNC 0x0B74 -#define GL_DEPTH_RANGE 0x0B70 -#define GL_DEPTH_RENDERABLE 0x8287 -#define GL_DEPTH_SCALE 0x0D1E -#define GL_DEPTH_STENCIL 0x84F9 -#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A -#define GL_DEPTH_STENCIL_TEXTURE_MODE 0x90EA -#define GL_DEPTH_TEST 0x0B71 -#define GL_DEPTH_TEXTURE_MODE 0x884B -#define GL_DEPTH_WRITEMASK 0x0B72 -#define GL_DIFFUSE 0x1201 -#define GL_DISPATCH_INDIRECT_BUFFER 0x90EE -#define GL_DISPATCH_INDIRECT_BUFFER_BINDING 0x90EF -#define GL_DISPLAY_LIST 0x82E7 -#define GL_DITHER 0x0BD0 -#define GL_DOMAIN 0x0A02 -#define GL_DONT_CARE 0x1100 -#define GL_DOT3_RGB 0x86AE -#define GL_DOT3_RGBA 0x86AF -#define GL_DOUBLE 0x140A -#define GL_DOUBLEBUFFER 0x0C32 -#define GL_DOUBLE_MAT2 0x8F46 -#define GL_DOUBLE_MAT2x3 0x8F49 -#define GL_DOUBLE_MAT2x4 0x8F4A -#define GL_DOUBLE_MAT3 0x8F47 -#define GL_DOUBLE_MAT3x2 0x8F4B -#define GL_DOUBLE_MAT3x4 0x8F4C -#define GL_DOUBLE_MAT4 0x8F48 -#define GL_DOUBLE_MAT4x2 0x8F4D -#define GL_DOUBLE_MAT4x3 0x8F4E -#define GL_DOUBLE_VEC2 0x8FFC -#define GL_DOUBLE_VEC3 0x8FFD -#define GL_DOUBLE_VEC4 0x8FFE -#define GL_DRAW_BUFFER 0x0C01 -#define GL_DRAW_BUFFER0 0x8825 -#define GL_DRAW_BUFFER1 0x8826 -#define GL_DRAW_BUFFER10 0x882F -#define GL_DRAW_BUFFER11 0x8830 -#define GL_DRAW_BUFFER12 0x8831 -#define GL_DRAW_BUFFER13 0x8832 -#define GL_DRAW_BUFFER14 0x8833 -#define GL_DRAW_BUFFER15 0x8834 -#define GL_DRAW_BUFFER2 0x8827 -#define GL_DRAW_BUFFER3 0x8828 -#define GL_DRAW_BUFFER4 0x8829 -#define GL_DRAW_BUFFER5 0x882A -#define GL_DRAW_BUFFER6 0x882B -#define GL_DRAW_BUFFER7 0x882C -#define GL_DRAW_BUFFER8 0x882D -#define GL_DRAW_BUFFER9 0x882E -#define GL_DRAW_FRAMEBUFFER 0x8CA9 -#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_DRAW_INDIRECT_BUFFER 0x8F3F -#define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43 -#define GL_DRAW_PIXEL_TOKEN 0x0705 -#define GL_DST_ALPHA 0x0304 -#define GL_DST_COLOR 0x0306 -#define GL_DYNAMIC_COPY 0x88EA -#define GL_DYNAMIC_DRAW 0x88E8 -#define GL_DYNAMIC_READ 0x88E9 -#define GL_DYNAMIC_STORAGE_BIT 0x0100 -#define GL_EDGE_FLAG 0x0B43 -#define GL_EDGE_FLAG_ARRAY 0x8079 -#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING 0x889B -#define GL_EDGE_FLAG_ARRAY_POINTER 0x8093 -#define GL_EDGE_FLAG_ARRAY_STRIDE 0x808C -#define GL_ELEMENT_ARRAY_BARRIER_BIT 0x00000002 -#define GL_ELEMENT_ARRAY_BUFFER 0x8893 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 -#define GL_EMISSION 0x1600 -#define GL_ENABLE_BIT 0x00002000 -#define GL_EQUAL 0x0202 -#define GL_EQUIV 0x1509 -#define GL_EVAL_BIT 0x00010000 -#define GL_EXP 0x0800 -#define GL_EXP2 0x0801 -#define GL_EXTENSIONS 0x1F03 -#define GL_EYE_LINEAR 0x2400 -#define GL_EYE_PLANE 0x2502 -#define GL_FALSE 0 -#define GL_FASTEST 0x1101 -#define GL_FEEDBACK 0x1C01 -#define GL_FEEDBACK_BUFFER_POINTER 0x0DF0 -#define GL_FEEDBACK_BUFFER_SIZE 0x0DF1 -#define GL_FEEDBACK_BUFFER_TYPE 0x0DF2 -#define GL_FILL 0x1B02 -#define GL_FILTER 0x829A -#define GL_FIRST_VERTEX_CONVENTION 0x8E4D -#define GL_FIXED 0x140C -#define GL_FIXED_ONLY 0x891D -#define GL_FLAT 0x1D00 -#define GL_FLOAT 0x1406 -#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD -#define GL_FLOAT_MAT2 0x8B5A -#define GL_FLOAT_MAT2x3 0x8B65 -#define GL_FLOAT_MAT2x4 0x8B66 -#define GL_FLOAT_MAT3 0x8B5B -#define GL_FLOAT_MAT3x2 0x8B67 -#define GL_FLOAT_MAT3x4 0x8B68 -#define GL_FLOAT_MAT4 0x8B5C -#define GL_FLOAT_MAT4x2 0x8B69 -#define GL_FLOAT_MAT4x3 0x8B6A -#define GL_FLOAT_VEC2 0x8B50 -#define GL_FLOAT_VEC3 0x8B51 -#define GL_FLOAT_VEC4 0x8B52 -#define GL_FOG 0x0B60 -#define GL_FOG_BIT 0x00000080 -#define GL_FOG_COLOR 0x0B66 -#define GL_FOG_COORD 0x8451 -#define GL_FOG_COORDINATE 0x8451 -#define GL_FOG_COORDINATE_ARRAY 0x8457 -#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING 0x889D -#define GL_FOG_COORDINATE_ARRAY_POINTER 0x8456 -#define GL_FOG_COORDINATE_ARRAY_STRIDE 0x8455 -#define GL_FOG_COORDINATE_ARRAY_TYPE 0x8454 -#define GL_FOG_COORDINATE_SOURCE 0x8450 -#define GL_FOG_COORD_ARRAY 0x8457 -#define GL_FOG_COORD_ARRAY_BUFFER_BINDING 0x889D -#define GL_FOG_COORD_ARRAY_POINTER 0x8456 -#define GL_FOG_COORD_ARRAY_STRIDE 0x8455 -#define GL_FOG_COORD_ARRAY_TYPE 0x8454 -#define GL_FOG_COORD_SRC 0x8450 -#define GL_FOG_DENSITY 0x0B62 -#define GL_FOG_END 0x0B64 -#define GL_FOG_HINT 0x0C54 -#define GL_FOG_INDEX 0x0B61 -#define GL_FOG_MODE 0x0B65 -#define GL_FOG_START 0x0B63 -#define GL_FRACTIONAL_EVEN 0x8E7C -#define GL_FRACTIONAL_ODD 0x8E7B -#define GL_FRAGMENT_DEPTH 0x8452 -#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8E5D -#define GL_FRAGMENT_SHADER 0x8B30 -#define GL_FRAGMENT_SHADER_BIT 0x00000002 -#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B -#define GL_FRAGMENT_SHADER_INVOCATIONS 0x82F4 -#define GL_FRAGMENT_SUBROUTINE 0x92EC -#define GL_FRAGMENT_SUBROUTINE_UNIFORM 0x92F2 -#define GL_FRAGMENT_TEXTURE 0x829F -#define GL_FRAMEBUFFER 0x8D40 -#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 -#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 -#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 -#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 -#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 -#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 -#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 -#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 -#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 -#define GL_FRAMEBUFFER_BARRIER_BIT 0x00000400 -#define GL_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_FRAMEBUFFER_BLEND 0x828B -#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 -#define GL_FRAMEBUFFER_DEFAULT 0x8218 -#define GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS 0x9314 -#define GL_FRAMEBUFFER_DEFAULT_HEIGHT 0x9311 -#define GL_FRAMEBUFFER_DEFAULT_LAYERS 0x9312 -#define GL_FRAMEBUFFER_DEFAULT_SAMPLES 0x9313 -#define GL_FRAMEBUFFER_DEFAULT_WIDTH 0x9310 -#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 -#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8 -#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 -#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC -#define GL_FRAMEBUFFER_RENDERABLE 0x8289 -#define GL_FRAMEBUFFER_RENDERABLE_LAYERED 0x828A -#define GL_FRAMEBUFFER_SRGB 0x8DB9 -#define GL_FRAMEBUFFER_UNDEFINED 0x8219 -#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD -#define GL_FRONT 0x0404 -#define GL_FRONT_AND_BACK 0x0408 -#define GL_FRONT_FACE 0x0B46 -#define GL_FRONT_LEFT 0x0400 -#define GL_FRONT_RIGHT 0x0401 -#define GL_FULL_SUPPORT 0x82B7 -#define GL_FUNC_ADD 0x8006 -#define GL_FUNC_REVERSE_SUBTRACT 0x800B -#define GL_FUNC_SUBTRACT 0x800A -#define GL_GENERATE_MIPMAP 0x8191 -#define GL_GENERATE_MIPMAP_HINT 0x8192 -#define GL_GEOMETRY_INPUT_TYPE 0x8917 -#define GL_GEOMETRY_OUTPUT_TYPE 0x8918 -#define GL_GEOMETRY_SHADER 0x8DD9 -#define GL_GEOMETRY_SHADER_BIT 0x00000004 -#define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F -#define GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED 0x82F3 -#define GL_GEOMETRY_SUBROUTINE 0x92EB -#define GL_GEOMETRY_SUBROUTINE_UNIFORM 0x92F1 -#define GL_GEOMETRY_TEXTURE 0x829E -#define GL_GEOMETRY_VERTICES_OUT 0x8916 -#define GL_GEQUAL 0x0206 -#define GL_GET_TEXTURE_IMAGE_FORMAT 0x8291 -#define GL_GET_TEXTURE_IMAGE_TYPE 0x8292 -#define GL_GREATER 0x0204 -#define GL_GREEN 0x1904 -#define GL_GREEN_BIAS 0x0D19 -#define GL_GREEN_BITS 0x0D53 -#define GL_GREEN_INTEGER 0x8D95 -#define GL_GREEN_SCALE 0x0D18 -#define GL_GUILTY_CONTEXT_RESET 0x8253 -#define GL_HALF_FLOAT 0x140B -#define GL_HIGH_FLOAT 0x8DF2 -#define GL_HIGH_INT 0x8DF5 -#define GL_HINT_BIT 0x00008000 -#define GL_HISTOGRAM 0x8024 -#define GL_IMAGE_1D 0x904C -#define GL_IMAGE_1D_ARRAY 0x9052 -#define GL_IMAGE_2D 0x904D -#define GL_IMAGE_2D_ARRAY 0x9053 -#define GL_IMAGE_2D_MULTISAMPLE 0x9055 -#define GL_IMAGE_2D_MULTISAMPLE_ARRAY 0x9056 -#define GL_IMAGE_2D_RECT 0x904F -#define GL_IMAGE_3D 0x904E -#define GL_IMAGE_BINDING_ACCESS 0x8F3E -#define GL_IMAGE_BINDING_FORMAT 0x906E -#define GL_IMAGE_BINDING_LAYER 0x8F3D -#define GL_IMAGE_BINDING_LAYERED 0x8F3C -#define GL_IMAGE_BINDING_LEVEL 0x8F3B -#define GL_IMAGE_BINDING_NAME 0x8F3A -#define GL_IMAGE_BUFFER 0x9051 -#define GL_IMAGE_CLASS_10_10_10_2 0x82C3 -#define GL_IMAGE_CLASS_11_11_10 0x82C2 -#define GL_IMAGE_CLASS_1_X_16 0x82BE -#define GL_IMAGE_CLASS_1_X_32 0x82BB -#define GL_IMAGE_CLASS_1_X_8 0x82C1 -#define GL_IMAGE_CLASS_2_X_16 0x82BD -#define GL_IMAGE_CLASS_2_X_32 0x82BA -#define GL_IMAGE_CLASS_2_X_8 0x82C0 -#define GL_IMAGE_CLASS_4_X_16 0x82BC -#define GL_IMAGE_CLASS_4_X_32 0x82B9 -#define GL_IMAGE_CLASS_4_X_8 0x82BF -#define GL_IMAGE_COMPATIBILITY_CLASS 0x82A8 -#define GL_IMAGE_CUBE 0x9050 -#define GL_IMAGE_CUBE_MAP_ARRAY 0x9054 -#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS 0x90C9 -#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE 0x90C8 -#define GL_IMAGE_FORMAT_COMPATIBILITY_TYPE 0x90C7 -#define GL_IMAGE_PIXEL_FORMAT 0x82A9 -#define GL_IMAGE_PIXEL_TYPE 0x82AA -#define GL_IMAGE_TEXEL_SIZE 0x82A7 -#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B -#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A -#define GL_INCR 0x1E02 -#define GL_INCR_WRAP 0x8507 -#define GL_INDEX 0x8222 -#define GL_INDEX_ARRAY 0x8077 -#define GL_INDEX_ARRAY_BUFFER_BINDING 0x8899 -#define GL_INDEX_ARRAY_POINTER 0x8091 -#define GL_INDEX_ARRAY_STRIDE 0x8086 -#define GL_INDEX_ARRAY_TYPE 0x8085 -#define GL_INDEX_BITS 0x0D51 -#define GL_INDEX_CLEAR_VALUE 0x0C20 -#define GL_INDEX_LOGIC_OP 0x0BF1 -#define GL_INDEX_MODE 0x0C30 -#define GL_INDEX_OFFSET 0x0D13 -#define GL_INDEX_SHIFT 0x0D12 -#define GL_INDEX_WRITEMASK 0x0C21 -#define GL_INFO_LOG_LENGTH 0x8B84 -#define GL_INNOCENT_CONTEXT_RESET 0x8254 -#define GL_INT 0x1404 -#define GL_INTENSITY 0x8049 -#define GL_INTENSITY12 0x804C -#define GL_INTENSITY16 0x804D -#define GL_INTENSITY4 0x804A -#define GL_INTENSITY8 0x804B -#define GL_INTERLEAVED_ATTRIBS 0x8C8C -#define GL_INTERNALFORMAT_ALPHA_SIZE 0x8274 -#define GL_INTERNALFORMAT_ALPHA_TYPE 0x827B -#define GL_INTERNALFORMAT_BLUE_SIZE 0x8273 -#define GL_INTERNALFORMAT_BLUE_TYPE 0x827A -#define GL_INTERNALFORMAT_DEPTH_SIZE 0x8275 -#define GL_INTERNALFORMAT_DEPTH_TYPE 0x827C -#define GL_INTERNALFORMAT_GREEN_SIZE 0x8272 -#define GL_INTERNALFORMAT_GREEN_TYPE 0x8279 -#define GL_INTERNALFORMAT_PREFERRED 0x8270 -#define GL_INTERNALFORMAT_RED_SIZE 0x8271 -#define GL_INTERNALFORMAT_RED_TYPE 0x8278 -#define GL_INTERNALFORMAT_SHARED_SIZE 0x8277 -#define GL_INTERNALFORMAT_STENCIL_SIZE 0x8276 -#define GL_INTERNALFORMAT_STENCIL_TYPE 0x827D -#define GL_INTERNALFORMAT_SUPPORTED 0x826F -#define GL_INTERPOLATE 0x8575 -#define GL_INT_2_10_10_10_REV 0x8D9F -#define GL_INT_IMAGE_1D 0x9057 -#define GL_INT_IMAGE_1D_ARRAY 0x905D -#define GL_INT_IMAGE_2D 0x9058 -#define GL_INT_IMAGE_2D_ARRAY 0x905E -#define GL_INT_IMAGE_2D_MULTISAMPLE 0x9060 -#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x9061 -#define GL_INT_IMAGE_2D_RECT 0x905A -#define GL_INT_IMAGE_3D 0x9059 -#define GL_INT_IMAGE_BUFFER 0x905C -#define GL_INT_IMAGE_CUBE 0x905B -#define GL_INT_IMAGE_CUBE_MAP_ARRAY 0x905F -#define GL_INT_SAMPLER_1D 0x8DC9 -#define GL_INT_SAMPLER_1D_ARRAY 0x8DCE -#define GL_INT_SAMPLER_2D 0x8DCA -#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF -#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109 -#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C -#define GL_INT_SAMPLER_2D_RECT 0x8DCD -#define GL_INT_SAMPLER_3D 0x8DCB -#define GL_INT_SAMPLER_BUFFER 0x8DD0 -#define GL_INT_SAMPLER_CUBE 0x8DCC -#define GL_INT_SAMPLER_CUBE_MAP_ARRAY 0x900E -#define GL_INT_VEC2 0x8B53 -#define GL_INT_VEC3 0x8B54 -#define GL_INT_VEC4 0x8B55 -#define GL_INVALID_ENUM 0x0500 -#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 -#define GL_INVALID_INDEX 0xFFFFFFFF -#define GL_INVALID_OPERATION 0x0502 -#define GL_INVALID_VALUE 0x0501 -#define GL_INVERT 0x150A -#define GL_ISOLINES 0x8E7A -#define GL_IS_PER_PATCH 0x92E7 -#define GL_IS_ROW_MAJOR 0x9300 -#define GL_KEEP 0x1E00 -#define GL_LAST_VERTEX_CONVENTION 0x8E4E -#define GL_LAYER_PROVOKING_VERTEX 0x825E -#define GL_LEFT 0x0406 -#define GL_LEQUAL 0x0203 -#define GL_LESS 0x0201 -#define GL_LIGHT0 0x4000 -#define GL_LIGHT1 0x4001 -#define GL_LIGHT2 0x4002 -#define GL_LIGHT3 0x4003 -#define GL_LIGHT4 0x4004 -#define GL_LIGHT5 0x4005 -#define GL_LIGHT6 0x4006 -#define GL_LIGHT7 0x4007 -#define GL_LIGHTING 0x0B50 -#define GL_LIGHTING_BIT 0x00000040 -#define GL_LIGHT_MODEL_AMBIENT 0x0B53 -#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8 -#define GL_LIGHT_MODEL_LOCAL_VIEWER 0x0B51 -#define GL_LIGHT_MODEL_TWO_SIDE 0x0B52 -#define GL_LINE 0x1B01 -#define GL_LINEAR 0x2601 -#define GL_LINEAR_ATTENUATION 0x1208 -#define GL_LINEAR_MIPMAP_LINEAR 0x2703 -#define GL_LINEAR_MIPMAP_NEAREST 0x2701 -#define GL_LINES 0x0001 -#define GL_LINES_ADJACENCY 0x000A -#define GL_LINE_BIT 0x00000004 -#define GL_LINE_LOOP 0x0002 -#define GL_LINE_RESET_TOKEN 0x0707 -#define GL_LINE_SMOOTH 0x0B20 -#define GL_LINE_SMOOTH_HINT 0x0C52 -#define GL_LINE_STIPPLE 0x0B24 -#define GL_LINE_STIPPLE_PATTERN 0x0B25 -#define GL_LINE_STIPPLE_REPEAT 0x0B26 -#define GL_LINE_STRIP 0x0003 -#define GL_LINE_STRIP_ADJACENCY 0x000B -#define GL_LINE_TOKEN 0x0702 -#define GL_LINE_WIDTH 0x0B21 -#define GL_LINE_WIDTH_GRANULARITY 0x0B23 -#define GL_LINE_WIDTH_RANGE 0x0B22 -#define GL_LINK_STATUS 0x8B82 -#define GL_LIST_BASE 0x0B32 -#define GL_LIST_BIT 0x00020000 -#define GL_LIST_INDEX 0x0B33 -#define GL_LIST_MODE 0x0B30 -#define GL_LOAD 0x0101 -#define GL_LOCATION 0x930E -#define GL_LOCATION_COMPONENT 0x934A -#define GL_LOCATION_INDEX 0x930F -#define GL_LOGIC_OP 0x0BF1 -#define GL_LOGIC_OP_MODE 0x0BF0 -#define GL_LOSE_CONTEXT_ON_RESET 0x8252 -#define GL_LOWER_LEFT 0x8CA1 -#define GL_LOW_FLOAT 0x8DF0 -#define GL_LOW_INT 0x8DF3 -#define GL_LUMINANCE 0x1909 -#define GL_LUMINANCE12 0x8041 -#define GL_LUMINANCE12_ALPHA12 0x8047 -#define GL_LUMINANCE12_ALPHA4 0x8046 -#define GL_LUMINANCE16 0x8042 -#define GL_LUMINANCE16_ALPHA16 0x8048 -#define GL_LUMINANCE4 0x803F -#define GL_LUMINANCE4_ALPHA4 0x8043 -#define GL_LUMINANCE6_ALPHA2 0x8044 -#define GL_LUMINANCE8 0x8040 -#define GL_LUMINANCE8_ALPHA8 0x8045 -#define GL_LUMINANCE_ALPHA 0x190A -#define GL_MAJOR_VERSION 0x821B -#define GL_MANUAL_GENERATE_MIPMAP 0x8294 -#define GL_MAP1_COLOR_4 0x0D90 -#define GL_MAP1_GRID_DOMAIN 0x0DD0 -#define GL_MAP1_GRID_SEGMENTS 0x0DD1 -#define GL_MAP1_INDEX 0x0D91 -#define GL_MAP1_NORMAL 0x0D92 -#define GL_MAP1_TEXTURE_COORD_1 0x0D93 -#define GL_MAP1_TEXTURE_COORD_2 0x0D94 -#define GL_MAP1_TEXTURE_COORD_3 0x0D95 -#define GL_MAP1_TEXTURE_COORD_4 0x0D96 -#define GL_MAP1_VERTEX_3 0x0D97 -#define GL_MAP1_VERTEX_4 0x0D98 -#define GL_MAP2_COLOR_4 0x0DB0 -#define GL_MAP2_GRID_DOMAIN 0x0DD2 -#define GL_MAP2_GRID_SEGMENTS 0x0DD3 -#define GL_MAP2_INDEX 0x0DB1 -#define GL_MAP2_NORMAL 0x0DB2 -#define GL_MAP2_TEXTURE_COORD_1 0x0DB3 -#define GL_MAP2_TEXTURE_COORD_2 0x0DB4 -#define GL_MAP2_TEXTURE_COORD_3 0x0DB5 -#define GL_MAP2_TEXTURE_COORD_4 0x0DB6 -#define GL_MAP2_VERTEX_3 0x0DB7 -#define GL_MAP2_VERTEX_4 0x0DB8 -#define GL_MAP_COHERENT_BIT 0x0080 -#define GL_MAP_COLOR 0x0D10 -#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 -#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 -#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 -#define GL_MAP_PERSISTENT_BIT 0x0040 -#define GL_MAP_READ_BIT 0x0001 -#define GL_MAP_STENCIL 0x0D11 -#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 -#define GL_MAP_WRITE_BIT 0x0002 -#define GL_MATRIX_MODE 0x0BA0 -#define GL_MATRIX_STRIDE 0x92FF -#define GL_MAX 0x8008 -#define GL_MAX_3D_TEXTURE_SIZE 0x8073 -#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF -#define GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS 0x92DC -#define GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE 0x92D8 -#define GL_MAX_ATTRIB_STACK_DEPTH 0x0D35 -#define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH 0x0D3B -#define GL_MAX_CLIP_DISTANCES 0x0D32 -#define GL_MAX_CLIP_PLANES 0x0D32 -#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF -#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E -#define GL_MAX_COMBINED_ATOMIC_COUNTERS 0x92D7 -#define GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS 0x92D1 -#define GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES 0x82FA -#define GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS 0x8266 -#define GL_MAX_COMBINED_DIMENSIONS 0x8282 -#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33 -#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32 -#define GL_MAX_COMBINED_IMAGE_UNIFORMS 0x90CF -#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS 0x8F39 -#define GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES 0x8F39 -#define GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS 0x90DC -#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E1E -#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E1F -#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D -#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E -#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31 -#define GL_MAX_COMPUTE_ATOMIC_COUNTERS 0x8265 -#define GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS 0x8264 -#define GL_MAX_COMPUTE_IMAGE_UNIFORMS 0x91BD -#define GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS 0x90DB -#define GL_MAX_COMPUTE_SHARED_MEMORY_SIZE 0x8262 -#define GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS 0x91BC -#define GL_MAX_COMPUTE_UNIFORM_BLOCKS 0x91BB -#define GL_MAX_COMPUTE_UNIFORM_COMPONENTS 0x8263 -#define GL_MAX_COMPUTE_WORK_GROUP_COUNT 0x91BE -#define GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS 0x90EB -#define GL_MAX_COMPUTE_WORK_GROUP_SIZE 0x91BF -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C -#define GL_MAX_CULL_DISTANCES 0x82F9 -#define GL_MAX_DEBUG_GROUP_STACK_DEPTH 0x826C -#define GL_MAX_DEBUG_LOGGED_MESSAGES 0x9144 -#define GL_MAX_DEBUG_MESSAGE_LENGTH 0x9143 -#define GL_MAX_DEPTH 0x8280 -#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F -#define GL_MAX_DRAW_BUFFERS 0x8824 -#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS 0x88FC -#define GL_MAX_ELEMENTS_INDICES 0x80E9 -#define GL_MAX_ELEMENTS_VERTICES 0x80E8 -#define GL_MAX_ELEMENT_INDEX 0x8D6B -#define GL_MAX_EVAL_ORDER 0x0D30 -#define GL_MAX_FRAGMENT_ATOMIC_COUNTERS 0x92D6 -#define GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS 0x92D0 -#define GL_MAX_FRAGMENT_IMAGE_UNIFORMS 0x90CE -#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125 -#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET 0x8E5C -#define GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS 0x90DA -#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D -#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 -#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD -#define GL_MAX_FRAMEBUFFER_HEIGHT 0x9316 -#define GL_MAX_FRAMEBUFFER_LAYERS 0x9317 -#define GL_MAX_FRAMEBUFFER_SAMPLES 0x9318 -#define GL_MAX_FRAMEBUFFER_WIDTH 0x9315 -#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS 0x92D5 -#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS 0x92CF -#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS 0x90CD -#define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123 -#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124 -#define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0 -#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS 0x8E5A -#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS 0x90D7 -#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29 -#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1 -#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C -#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF -#define GL_MAX_HEIGHT 0x827F -#define GL_MAX_IMAGE_SAMPLES 0x906D -#define GL_MAX_IMAGE_UNITS 0x8F38 -#define GL_MAX_INTEGER_SAMPLES 0x9110 -#define GL_MAX_LABEL_LENGTH 0x82E8 -#define GL_MAX_LAYERS 0x8281 -#define GL_MAX_LIGHTS 0x0D31 -#define GL_MAX_LIST_NESTING 0x0B31 -#define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36 -#define GL_MAX_NAME_LENGTH 0x92F6 -#define GL_MAX_NAME_STACK_DEPTH 0x0D37 -#define GL_MAX_NUM_ACTIVE_VARIABLES 0x92F7 -#define GL_MAX_NUM_COMPATIBLE_SUBROUTINES 0x92F8 -#define GL_MAX_PATCH_VERTICES 0x8E7D -#define GL_MAX_PIXEL_MAP_TABLE 0x0D34 -#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 -#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F -#define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38 -#define GL_MAX_RECTANGLE_TEXTURE_SIZE 0x84F8 -#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 -#define GL_MAX_SAMPLES 0x8D57 -#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59 -#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 -#define GL_MAX_SHADER_STORAGE_BLOCK_SIZE 0x90DE -#define GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS 0x90DD -#define GL_MAX_SUBROUTINES 0x8DE7 -#define GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS 0x8DE8 -#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS 0x92D3 -#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS 0x92CD -#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS 0x90CB -#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS 0x886C -#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS 0x8E83 -#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS 0x90D8 -#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS 0x8E81 -#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS 0x8E85 -#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS 0x8E89 -#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E7F -#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS 0x92D4 -#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS 0x92CE -#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS 0x90CC -#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS 0x886D -#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS 0x8E86 -#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS 0x90D9 -#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS 0x8E82 -#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS 0x8E8A -#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E80 -#define GL_MAX_TESS_GEN_LEVEL 0x8E7E -#define GL_MAX_TESS_PATCH_COMPONENTS 0x8E84 -#define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B -#define GL_MAX_TEXTURE_COORDS 0x8871 -#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 -#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD -#define GL_MAX_TEXTURE_MAX_ANISOTROPY 0x84FF -#define GL_MAX_TEXTURE_SIZE 0x0D33 -#define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39 -#define GL_MAX_TEXTURE_UNITS 0x84E2 -#define GL_MAX_TRANSFORM_FEEDBACK_BUFFERS 0x8E70 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 -#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 -#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F -#define GL_MAX_UNIFORM_LOCATIONS 0x826E -#define GL_MAX_VARYING_COMPONENTS 0x8B4B -#define GL_MAX_VARYING_FLOATS 0x8B4B -#define GL_MAX_VARYING_VECTORS 0x8DFC -#define GL_MAX_VERTEX_ATOMIC_COUNTERS 0x92D2 -#define GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS 0x92CC -#define GL_MAX_VERTEX_ATTRIBS 0x8869 -#define GL_MAX_VERTEX_ATTRIB_BINDINGS 0x82DA -#define GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D9 -#define GL_MAX_VERTEX_ATTRIB_STRIDE 0x82E5 -#define GL_MAX_VERTEX_IMAGE_UNIFORMS 0x90CA -#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122 -#define GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS 0x90D6 -#define GL_MAX_VERTEX_STREAMS 0x8E71 -#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C -#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B -#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A -#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB -#define GL_MAX_VIEWPORTS 0x825B -#define GL_MAX_VIEWPORT_DIMS 0x0D3A -#define GL_MAX_WIDTH 0x827E -#define GL_MEDIUM_FLOAT 0x8DF1 -#define GL_MEDIUM_INT 0x8DF4 -#define GL_MIN 0x8007 -#define GL_MINMAX 0x802E -#define GL_MINOR_VERSION 0x821C -#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET 0x8E5B -#define GL_MIN_MAP_BUFFER_ALIGNMENT 0x90BC -#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 -#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E -#define GL_MIN_SAMPLE_SHADING_VALUE 0x8C37 -#define GL_MIPMAP 0x8293 -#define GL_MIRRORED_REPEAT 0x8370 -#define GL_MIRROR_CLAMP_TO_EDGE 0x8743 -#define GL_MODELVIEW 0x1700 -#define GL_MODELVIEW_MATRIX 0x0BA6 -#define GL_MODELVIEW_STACK_DEPTH 0x0BA3 -#define GL_MODULATE 0x2100 -#define GL_MULT 0x0103 -#define GL_MULTISAMPLE 0x809D -#define GL_MULTISAMPLE_BIT 0x20000000 -#define GL_N3F_V3F 0x2A25 -#define GL_NAME_LENGTH 0x92F9 -#define GL_NAME_STACK_DEPTH 0x0D70 -#define GL_NAND 0x150E -#define GL_NEAREST 0x2600 -#define GL_NEAREST_MIPMAP_LINEAR 0x2702 -#define GL_NEAREST_MIPMAP_NEAREST 0x2700 -#define GL_NEGATIVE_ONE_TO_ONE 0x935E -#define GL_NEVER 0x0200 -#define GL_NICEST 0x1102 -#define GL_NONE 0 -#define GL_NOOP 0x1505 -#define GL_NOR 0x1508 -#define GL_NORMALIZE 0x0BA1 -#define GL_NORMAL_ARRAY 0x8075 -#define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897 -#define GL_NORMAL_ARRAY_POINTER 0x808F -#define GL_NORMAL_ARRAY_STRIDE 0x807F -#define GL_NORMAL_ARRAY_TYPE 0x807E -#define GL_NORMAL_MAP 0x8511 -#define GL_NOTEQUAL 0x0205 -#define GL_NO_ERROR 0 -#define GL_NO_RESET_NOTIFICATION 0x8261 -#define GL_NUM_ACTIVE_VARIABLES 0x9304 -#define GL_NUM_COMPATIBLE_SUBROUTINES 0x8E4A -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 -#define GL_NUM_EXTENSIONS 0x821D -#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE -#define GL_NUM_SAMPLE_COUNTS 0x9380 -#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 -#define GL_NUM_SHADING_LANGUAGE_VERSIONS 0x82E9 -#define GL_NUM_SPIR_V_EXTENSIONS 0x9554 -#define GL_OBJECT_LINEAR 0x2401 -#define GL_OBJECT_PLANE 0x2501 -#define GL_OBJECT_TYPE 0x9112 -#define GL_OFFSET 0x92FC -#define GL_ONE 1 -#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 -#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 -#define GL_ONE_MINUS_DST_ALPHA 0x0305 -#define GL_ONE_MINUS_DST_COLOR 0x0307 -#define GL_ONE_MINUS_SRC1_ALPHA 0x88FB -#define GL_ONE_MINUS_SRC1_COLOR 0x88FA -#define GL_ONE_MINUS_SRC_ALPHA 0x0303 -#define GL_ONE_MINUS_SRC_COLOR 0x0301 -#define GL_OPERAND0_ALPHA 0x8598 -#define GL_OPERAND0_RGB 0x8590 -#define GL_OPERAND1_ALPHA 0x8599 -#define GL_OPERAND1_RGB 0x8591 -#define GL_OPERAND2_ALPHA 0x859A -#define GL_OPERAND2_RGB 0x8592 -#define GL_OR 0x1507 -#define GL_ORDER 0x0A01 -#define GL_OR_INVERTED 0x150D -#define GL_OR_REVERSE 0x150B -#define GL_OUT_OF_MEMORY 0x0505 -#define GL_PACK_ALIGNMENT 0x0D05 -#define GL_PACK_COMPRESSED_BLOCK_DEPTH 0x912D -#define GL_PACK_COMPRESSED_BLOCK_HEIGHT 0x912C -#define GL_PACK_COMPRESSED_BLOCK_SIZE 0x912E -#define GL_PACK_COMPRESSED_BLOCK_WIDTH 0x912B -#define GL_PACK_IMAGE_HEIGHT 0x806C -#define GL_PACK_LSB_FIRST 0x0D01 -#define GL_PACK_ROW_LENGTH 0x0D02 -#define GL_PACK_SKIP_IMAGES 0x806B -#define GL_PACK_SKIP_PIXELS 0x0D04 -#define GL_PACK_SKIP_ROWS 0x0D03 -#define GL_PACK_SWAP_BYTES 0x0D00 -#define GL_PARAMETER_BUFFER 0x80EE -#define GL_PARAMETER_BUFFER_BINDING 0x80EF -#define GL_PASS_THROUGH_TOKEN 0x0700 -#define GL_PATCHES 0x000E -#define GL_PATCH_DEFAULT_INNER_LEVEL 0x8E73 -#define GL_PATCH_DEFAULT_OUTER_LEVEL 0x8E74 -#define GL_PATCH_VERTICES 0x8E72 -#define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50 -#define GL_PIXEL_BUFFER_BARRIER_BIT 0x00000080 -#define GL_PIXEL_MAP_A_TO_A 0x0C79 -#define GL_PIXEL_MAP_A_TO_A_SIZE 0x0CB9 -#define GL_PIXEL_MAP_B_TO_B 0x0C78 -#define GL_PIXEL_MAP_B_TO_B_SIZE 0x0CB8 -#define GL_PIXEL_MAP_G_TO_G 0x0C77 -#define GL_PIXEL_MAP_G_TO_G_SIZE 0x0CB7 -#define GL_PIXEL_MAP_I_TO_A 0x0C75 -#define GL_PIXEL_MAP_I_TO_A_SIZE 0x0CB5 -#define GL_PIXEL_MAP_I_TO_B 0x0C74 -#define GL_PIXEL_MAP_I_TO_B_SIZE 0x0CB4 -#define GL_PIXEL_MAP_I_TO_G 0x0C73 -#define GL_PIXEL_MAP_I_TO_G_SIZE 0x0CB3 -#define GL_PIXEL_MAP_I_TO_I 0x0C70 -#define GL_PIXEL_MAP_I_TO_I_SIZE 0x0CB0 -#define GL_PIXEL_MAP_I_TO_R 0x0C72 -#define GL_PIXEL_MAP_I_TO_R_SIZE 0x0CB2 -#define GL_PIXEL_MAP_R_TO_R 0x0C76 -#define GL_PIXEL_MAP_R_TO_R_SIZE 0x0CB6 -#define GL_PIXEL_MAP_S_TO_S 0x0C71 -#define GL_PIXEL_MAP_S_TO_S_SIZE 0x0CB1 -#define GL_PIXEL_MODE_BIT 0x00000020 -#define GL_PIXEL_PACK_BUFFER 0x88EB -#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED -#define GL_PIXEL_UNPACK_BUFFER 0x88EC -#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF -#define GL_POINT 0x1B00 -#define GL_POINTS 0x0000 -#define GL_POINT_BIT 0x00000002 -#define GL_POINT_DISTANCE_ATTENUATION 0x8129 -#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128 -#define GL_POINT_SIZE 0x0B11 -#define GL_POINT_SIZE_GRANULARITY 0x0B13 -#define GL_POINT_SIZE_MAX 0x8127 -#define GL_POINT_SIZE_MIN 0x8126 -#define GL_POINT_SIZE_RANGE 0x0B12 -#define GL_POINT_SMOOTH 0x0B10 -#define GL_POINT_SMOOTH_HINT 0x0C51 -#define GL_POINT_SPRITE 0x8861 -#define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0 -#define GL_POINT_TOKEN 0x0701 -#define GL_POLYGON 0x0009 -#define GL_POLYGON_BIT 0x00000008 -#define GL_POLYGON_MODE 0x0B40 -#define GL_POLYGON_OFFSET_CLAMP 0x8E1B -#define GL_POLYGON_OFFSET_FACTOR 0x8038 -#define GL_POLYGON_OFFSET_FILL 0x8037 -#define GL_POLYGON_OFFSET_LINE 0x2A02 -#define GL_POLYGON_OFFSET_POINT 0x2A01 -#define GL_POLYGON_OFFSET_UNITS 0x2A00 -#define GL_POLYGON_SMOOTH 0x0B41 -#define GL_POLYGON_SMOOTH_HINT 0x0C53 -#define GL_POLYGON_STIPPLE 0x0B42 -#define GL_POLYGON_STIPPLE_BIT 0x00000010 -#define GL_POLYGON_TOKEN 0x0703 -#define GL_POSITION 0x1203 -#define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2 -#define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1 -#define GL_PREVIOUS 0x8578 -#define GL_PRIMARY_COLOR 0x8577 -#define GL_PRIMITIVES_GENERATED 0x8C87 -#define GL_PRIMITIVES_SUBMITTED 0x82EF -#define GL_PRIMITIVE_RESTART 0x8F9D -#define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69 -#define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED 0x8221 -#define GL_PRIMITIVE_RESTART_INDEX 0x8F9E -#define GL_PROGRAM 0x82E2 -#define GL_PROGRAM_BINARY_FORMATS 0x87FF -#define GL_PROGRAM_BINARY_LENGTH 0x8741 -#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257 -#define GL_PROGRAM_INPUT 0x92E3 -#define GL_PROGRAM_OUTPUT 0x92E4 -#define GL_PROGRAM_PIPELINE 0x82E4 -#define GL_PROGRAM_PIPELINE_BINDING 0x825A -#define GL_PROGRAM_POINT_SIZE 0x8642 -#define GL_PROGRAM_SEPARABLE 0x8258 -#define GL_PROJECTION 0x1701 -#define GL_PROJECTION_MATRIX 0x0BA7 -#define GL_PROJECTION_STACK_DEPTH 0x0BA4 -#define GL_PROVOKING_VERTEX 0x8E4F -#define GL_PROXY_COLOR_TABLE 0x80D3 -#define GL_PROXY_HISTOGRAM 0x8025 -#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5 -#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4 -#define GL_PROXY_TEXTURE_1D 0x8063 -#define GL_PROXY_TEXTURE_1D_ARRAY 0x8C19 -#define GL_PROXY_TEXTURE_2D 0x8064 -#define GL_PROXY_TEXTURE_2D_ARRAY 0x8C1B -#define GL_PROXY_TEXTURE_2D_MULTISAMPLE 0x9101 -#define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9103 -#define GL_PROXY_TEXTURE_3D 0x8070 -#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B -#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY 0x900B -#define GL_PROXY_TEXTURE_RECTANGLE 0x84F7 -#define GL_Q 0x2003 -#define GL_QUADRATIC_ATTENUATION 0x1209 -#define GL_QUADS 0x0007 -#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION 0x8E4C -#define GL_QUAD_STRIP 0x0008 -#define GL_QUERY 0x82E3 -#define GL_QUERY_BUFFER 0x9192 -#define GL_QUERY_BUFFER_BARRIER_BIT 0x00008000 -#define GL_QUERY_BUFFER_BINDING 0x9193 -#define GL_QUERY_BY_REGION_NO_WAIT 0x8E16 -#define GL_QUERY_BY_REGION_NO_WAIT_INVERTED 0x8E1A -#define GL_QUERY_BY_REGION_WAIT 0x8E15 -#define GL_QUERY_BY_REGION_WAIT_INVERTED 0x8E19 -#define GL_QUERY_COUNTER_BITS 0x8864 -#define GL_QUERY_NO_WAIT 0x8E14 -#define GL_QUERY_NO_WAIT_INVERTED 0x8E18 -#define GL_QUERY_RESULT 0x8866 -#define GL_QUERY_RESULT_AVAILABLE 0x8867 -#define GL_QUERY_RESULT_NO_WAIT 0x9194 -#define GL_QUERY_TARGET 0x82EA -#define GL_QUERY_WAIT 0x8E13 -#define GL_QUERY_WAIT_INVERTED 0x8E17 -#define GL_R 0x2002 -#define GL_R11F_G11F_B10F 0x8C3A -#define GL_R16 0x822A -#define GL_R16F 0x822D -#define GL_R16I 0x8233 -#define GL_R16UI 0x8234 -#define GL_R16_SNORM 0x8F98 -#define GL_R32F 0x822E -#define GL_R32I 0x8235 -#define GL_R32UI 0x8236 -#define GL_R3_G3_B2 0x2A10 -#define GL_R8 0x8229 -#define GL_R8I 0x8231 -#define GL_R8UI 0x8232 -#define GL_R8_SNORM 0x8F94 -#define GL_RASTERIZER_DISCARD 0x8C89 -#define GL_READ_BUFFER 0x0C02 -#define GL_READ_FRAMEBUFFER 0x8CA8 -#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA -#define GL_READ_ONLY 0x88B8 -#define GL_READ_PIXELS 0x828C -#define GL_READ_PIXELS_FORMAT 0x828D -#define GL_READ_PIXELS_TYPE 0x828E -#define GL_READ_WRITE 0x88BA -#define GL_RED 0x1903 -#define GL_RED_BIAS 0x0D15 -#define GL_RED_BITS 0x0D52 -#define GL_RED_INTEGER 0x8D94 -#define GL_RED_SCALE 0x0D14 -#define GL_REFERENCED_BY_COMPUTE_SHADER 0x930B -#define GL_REFERENCED_BY_FRAGMENT_SHADER 0x930A -#define GL_REFERENCED_BY_GEOMETRY_SHADER 0x9309 -#define GL_REFERENCED_BY_TESS_CONTROL_SHADER 0x9307 -#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER 0x9308 -#define GL_REFERENCED_BY_VERTEX_SHADER 0x9306 -#define GL_REFLECTION_MAP 0x8512 -#define GL_RENDER 0x1C00 -#define GL_RENDERBUFFER 0x8D41 -#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 -#define GL_RENDERBUFFER_BINDING 0x8CA7 -#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 -#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 -#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 -#define GL_RENDERBUFFER_HEIGHT 0x8D43 -#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 -#define GL_RENDERBUFFER_RED_SIZE 0x8D50 -#define GL_RENDERBUFFER_SAMPLES 0x8CAB -#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 -#define GL_RENDERBUFFER_WIDTH 0x8D42 -#define GL_RENDERER 0x1F01 -#define GL_RENDER_MODE 0x0C40 -#define GL_REPEAT 0x2901 -#define GL_REPLACE 0x1E01 -#define GL_RESCALE_NORMAL 0x803A -#define GL_RESET_NOTIFICATION_STRATEGY 0x8256 -#define GL_RETURN 0x0102 -#define GL_RG 0x8227 -#define GL_RG16 0x822C -#define GL_RG16F 0x822F -#define GL_RG16I 0x8239 -#define GL_RG16UI 0x823A -#define GL_RG16_SNORM 0x8F99 -#define GL_RG32F 0x8230 -#define GL_RG32I 0x823B -#define GL_RG32UI 0x823C -#define GL_RG8 0x822B -#define GL_RG8I 0x8237 -#define GL_RG8UI 0x8238 -#define GL_RG8_SNORM 0x8F95 -#define GL_RGB 0x1907 -#define GL_RGB10 0x8052 -#define GL_RGB10_A2 0x8059 -#define GL_RGB10_A2UI 0x906F -#define GL_RGB12 0x8053 -#define GL_RGB16 0x8054 -#define GL_RGB16F 0x881B -#define GL_RGB16I 0x8D89 -#define GL_RGB16UI 0x8D77 -#define GL_RGB16_SNORM 0x8F9A -#define GL_RGB32F 0x8815 -#define GL_RGB32I 0x8D83 -#define GL_RGB32UI 0x8D71 -#define GL_RGB4 0x804F -#define GL_RGB5 0x8050 -#define GL_RGB565 0x8D62 -#define GL_RGB5_A1 0x8057 -#define GL_RGB8 0x8051 -#define GL_RGB8I 0x8D8F -#define GL_RGB8UI 0x8D7D -#define GL_RGB8_SNORM 0x8F96 -#define GL_RGB9_E5 0x8C3D -#define GL_RGBA 0x1908 -#define GL_RGBA12 0x805A -#define GL_RGBA16 0x805B -#define GL_RGBA16F 0x881A -#define GL_RGBA16I 0x8D88 -#define GL_RGBA16UI 0x8D76 -#define GL_RGBA16_SNORM 0x8F9B -#define GL_RGBA2 0x8055 -#define GL_RGBA32F 0x8814 -#define GL_RGBA32I 0x8D82 -#define GL_RGBA32UI 0x8D70 -#define GL_RGBA4 0x8056 -#define GL_RGBA8 0x8058 -#define GL_RGBA8I 0x8D8E -#define GL_RGBA8UI 0x8D7C -#define GL_RGBA8_SNORM 0x8F97 -#define GL_RGBA_INTEGER 0x8D99 -#define GL_RGBA_MODE 0x0C31 -#define GL_RGB_INTEGER 0x8D98 -#define GL_RGB_SCALE 0x8573 -#define GL_RG_INTEGER 0x8228 -#define GL_RIGHT 0x0407 -#define GL_S 0x2000 -#define GL_SAMPLER 0x82E6 -#define GL_SAMPLER_1D 0x8B5D -#define GL_SAMPLER_1D_ARRAY 0x8DC0 -#define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3 -#define GL_SAMPLER_1D_SHADOW 0x8B61 -#define GL_SAMPLER_2D 0x8B5E -#define GL_SAMPLER_2D_ARRAY 0x8DC1 -#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 -#define GL_SAMPLER_2D_MULTISAMPLE 0x9108 -#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B -#define GL_SAMPLER_2D_RECT 0x8B63 -#define GL_SAMPLER_2D_RECT_SHADOW 0x8B64 -#define GL_SAMPLER_2D_SHADOW 0x8B62 -#define GL_SAMPLER_3D 0x8B5F -#define GL_SAMPLER_BINDING 0x8919 -#define GL_SAMPLER_BUFFER 0x8DC2 -#define GL_SAMPLER_CUBE 0x8B60 -#define GL_SAMPLER_CUBE_MAP_ARRAY 0x900C -#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D -#define GL_SAMPLER_CUBE_SHADOW 0x8DC5 -#define GL_SAMPLES 0x80A9 -#define GL_SAMPLES_PASSED 0x8914 -#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE 0x809F -#define GL_SAMPLE_BUFFERS 0x80A8 -#define GL_SAMPLE_COVERAGE 0x80A0 -#define GL_SAMPLE_COVERAGE_INVERT 0x80AB -#define GL_SAMPLE_COVERAGE_VALUE 0x80AA -#define GL_SAMPLE_MASK 0x8E51 -#define GL_SAMPLE_MASK_VALUE 0x8E52 -#define GL_SAMPLE_POSITION 0x8E50 -#define GL_SAMPLE_SHADING 0x8C36 -#define GL_SCISSOR_BIT 0x00080000 -#define GL_SCISSOR_BOX 0x0C10 -#define GL_SCISSOR_TEST 0x0C11 -#define GL_SECONDARY_COLOR_ARRAY 0x845E -#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING 0x889C -#define GL_SECONDARY_COLOR_ARRAY_POINTER 0x845D -#define GL_SECONDARY_COLOR_ARRAY_SIZE 0x845A -#define GL_SECONDARY_COLOR_ARRAY_STRIDE 0x845C -#define GL_SECONDARY_COLOR_ARRAY_TYPE 0x845B -#define GL_SELECT 0x1C02 -#define GL_SELECTION_BUFFER_POINTER 0x0DF3 -#define GL_SELECTION_BUFFER_SIZE 0x0DF4 -#define GL_SEPARABLE_2D 0x8012 -#define GL_SEPARATE_ATTRIBS 0x8C8D -#define GL_SEPARATE_SPECULAR_COLOR 0x81FA -#define GL_SET 0x150F -#define GL_SHADER 0x82E1 -#define GL_SHADER_BINARY_FORMATS 0x8DF8 -#define GL_SHADER_BINARY_FORMAT_SPIR_V 0x9551 -#define GL_SHADER_COMPILER 0x8DFA -#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x00000020 -#define GL_SHADER_IMAGE_ATOMIC 0x82A6 -#define GL_SHADER_IMAGE_LOAD 0x82A4 -#define GL_SHADER_IMAGE_STORE 0x82A5 -#define GL_SHADER_SOURCE_LENGTH 0x8B88 -#define GL_SHADER_STORAGE_BARRIER_BIT 0x00002000 -#define GL_SHADER_STORAGE_BLOCK 0x92E6 -#define GL_SHADER_STORAGE_BUFFER 0x90D2 -#define GL_SHADER_STORAGE_BUFFER_BINDING 0x90D3 -#define GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT 0x90DF -#define GL_SHADER_STORAGE_BUFFER_SIZE 0x90D5 -#define GL_SHADER_STORAGE_BUFFER_START 0x90D4 -#define GL_SHADER_TYPE 0x8B4F -#define GL_SHADE_MODEL 0x0B54 -#define GL_SHADING_LANGUAGE_VERSION 0x8B8C -#define GL_SHININESS 0x1601 -#define GL_SHORT 0x1402 -#define GL_SIGNALED 0x9119 -#define GL_SIGNED_NORMALIZED 0x8F9C -#define GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST 0x82AC -#define GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE 0x82AE -#define GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST 0x82AD -#define GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE 0x82AF -#define GL_SINGLE_COLOR 0x81F9 -#define GL_SLUMINANCE 0x8C46 -#define GL_SLUMINANCE8 0x8C47 -#define GL_SLUMINANCE8_ALPHA8 0x8C45 -#define GL_SLUMINANCE_ALPHA 0x8C44 -#define GL_SMOOTH 0x1D01 -#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 -#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 -#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 -#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 -#define GL_SOURCE0_ALPHA 0x8588 -#define GL_SOURCE0_RGB 0x8580 -#define GL_SOURCE1_ALPHA 0x8589 -#define GL_SOURCE1_RGB 0x8581 -#define GL_SOURCE2_ALPHA 0x858A -#define GL_SOURCE2_RGB 0x8582 -#define GL_SPECULAR 0x1202 -#define GL_SPHERE_MAP 0x2402 -#define GL_SPIR_V_BINARY 0x9552 -#define GL_SPIR_V_EXTENSIONS 0x9553 -#define GL_SPOT_CUTOFF 0x1206 -#define GL_SPOT_DIRECTION 0x1204 -#define GL_SPOT_EXPONENT 0x1205 -#define GL_SRC0_ALPHA 0x8588 -#define GL_SRC0_RGB 0x8580 -#define GL_SRC1_ALPHA 0x8589 -#define GL_SRC1_COLOR 0x88F9 -#define GL_SRC1_RGB 0x8581 -#define GL_SRC2_ALPHA 0x858A -#define GL_SRC2_RGB 0x8582 -#define GL_SRC_ALPHA 0x0302 -#define GL_SRC_ALPHA_SATURATE 0x0308 -#define GL_SRC_COLOR 0x0300 -#define GL_SRGB 0x8C40 -#define GL_SRGB8 0x8C41 -#define GL_SRGB8_ALPHA8 0x8C43 -#define GL_SRGB_ALPHA 0x8C42 -#define GL_SRGB_READ 0x8297 -#define GL_SRGB_WRITE 0x8298 -#define GL_STACK_OVERFLOW 0x0503 -#define GL_STACK_UNDERFLOW 0x0504 -#define GL_STATIC_COPY 0x88E6 -#define GL_STATIC_DRAW 0x88E4 -#define GL_STATIC_READ 0x88E5 -#define GL_STENCIL 0x1802 -#define GL_STENCIL_ATTACHMENT 0x8D20 -#define GL_STENCIL_BACK_FAIL 0x8801 -#define GL_STENCIL_BACK_FUNC 0x8800 -#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 -#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 -#define GL_STENCIL_BACK_REF 0x8CA3 -#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 -#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 -#define GL_STENCIL_BITS 0x0D57 -#define GL_STENCIL_BUFFER_BIT 0x00000400 -#define GL_STENCIL_CLEAR_VALUE 0x0B91 -#define GL_STENCIL_COMPONENTS 0x8285 -#define GL_STENCIL_FAIL 0x0B94 -#define GL_STENCIL_FUNC 0x0B92 -#define GL_STENCIL_INDEX 0x1901 -#define GL_STENCIL_INDEX1 0x8D46 -#define GL_STENCIL_INDEX16 0x8D49 -#define GL_STENCIL_INDEX4 0x8D47 -#define GL_STENCIL_INDEX8 0x8D48 -#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 -#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 -#define GL_STENCIL_REF 0x0B97 -#define GL_STENCIL_RENDERABLE 0x8288 -#define GL_STENCIL_TEST 0x0B90 -#define GL_STENCIL_VALUE_MASK 0x0B93 -#define GL_STENCIL_WRITEMASK 0x0B98 -#define GL_STEREO 0x0C33 -#define GL_STREAM_COPY 0x88E2 -#define GL_STREAM_DRAW 0x88E0 -#define GL_STREAM_READ 0x88E1 -#define GL_SUBPIXEL_BITS 0x0D50 -#define GL_SUBTRACT 0x84E7 -#define GL_SYNC_CONDITION 0x9113 -#define GL_SYNC_FENCE 0x9116 -#define GL_SYNC_FLAGS 0x9115 -#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 -#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 -#define GL_SYNC_STATUS 0x9114 -#define GL_T 0x2001 -#define GL_T2F_C3F_V3F 0x2A2A -#define GL_T2F_C4F_N3F_V3F 0x2A2C -#define GL_T2F_C4UB_V3F 0x2A29 -#define GL_T2F_N3F_V3F 0x2A2B -#define GL_T2F_V3F 0x2A27 -#define GL_T4F_C4F_N3F_V4F 0x2A2D -#define GL_T4F_V4F 0x2A28 -#define GL_TESS_CONTROL_OUTPUT_VERTICES 0x8E75 -#define GL_TESS_CONTROL_SHADER 0x8E88 -#define GL_TESS_CONTROL_SHADER_BIT 0x00000008 -#define GL_TESS_CONTROL_SHADER_PATCHES 0x82F1 -#define GL_TESS_CONTROL_SUBROUTINE 0x92E9 -#define GL_TESS_CONTROL_SUBROUTINE_UNIFORM 0x92EF -#define GL_TESS_CONTROL_TEXTURE 0x829C -#define GL_TESS_EVALUATION_SHADER 0x8E87 -#define GL_TESS_EVALUATION_SHADER_BIT 0x00000010 -#define GL_TESS_EVALUATION_SHADER_INVOCATIONS 0x82F2 -#define GL_TESS_EVALUATION_SUBROUTINE 0x92EA -#define GL_TESS_EVALUATION_SUBROUTINE_UNIFORM 0x92F0 -#define GL_TESS_EVALUATION_TEXTURE 0x829D -#define GL_TESS_GEN_MODE 0x8E76 -#define GL_TESS_GEN_POINT_MODE 0x8E79 -#define GL_TESS_GEN_SPACING 0x8E77 -#define GL_TESS_GEN_VERTEX_ORDER 0x8E78 -#define GL_TEXTURE 0x1702 -#define GL_TEXTURE0 0x84C0 -#define GL_TEXTURE1 0x84C1 -#define GL_TEXTURE10 0x84CA -#define GL_TEXTURE11 0x84CB -#define GL_TEXTURE12 0x84CC -#define GL_TEXTURE13 0x84CD -#define GL_TEXTURE14 0x84CE -#define GL_TEXTURE15 0x84CF -#define GL_TEXTURE16 0x84D0 -#define GL_TEXTURE17 0x84D1 -#define GL_TEXTURE18 0x84D2 -#define GL_TEXTURE19 0x84D3 -#define GL_TEXTURE2 0x84C2 -#define GL_TEXTURE20 0x84D4 -#define GL_TEXTURE21 0x84D5 -#define GL_TEXTURE22 0x84D6 -#define GL_TEXTURE23 0x84D7 -#define GL_TEXTURE24 0x84D8 -#define GL_TEXTURE25 0x84D9 -#define GL_TEXTURE26 0x84DA -#define GL_TEXTURE27 0x84DB -#define GL_TEXTURE28 0x84DC -#define GL_TEXTURE29 0x84DD -#define GL_TEXTURE3 0x84C3 -#define GL_TEXTURE30 0x84DE -#define GL_TEXTURE31 0x84DF -#define GL_TEXTURE4 0x84C4 -#define GL_TEXTURE5 0x84C5 -#define GL_TEXTURE6 0x84C6 -#define GL_TEXTURE7 0x84C7 -#define GL_TEXTURE8 0x84C8 -#define GL_TEXTURE9 0x84C9 -#define GL_TEXTURE_1D 0x0DE0 -#define GL_TEXTURE_1D_ARRAY 0x8C18 -#define GL_TEXTURE_2D 0x0DE1 -#define GL_TEXTURE_2D_ARRAY 0x8C1A -#define GL_TEXTURE_2D_MULTISAMPLE 0x9100 -#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102 -#define GL_TEXTURE_3D 0x806F -#define GL_TEXTURE_ALPHA_SIZE 0x805F -#define GL_TEXTURE_ALPHA_TYPE 0x8C13 -#define GL_TEXTURE_BASE_LEVEL 0x813C -#define GL_TEXTURE_BINDING_1D 0x8068 -#define GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C -#define GL_TEXTURE_BINDING_2D 0x8069 -#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D -#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104 -#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105 -#define GL_TEXTURE_BINDING_3D 0x806A -#define GL_TEXTURE_BINDING_BUFFER 0x8C2C -#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 -#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A -#define GL_TEXTURE_BINDING_RECTANGLE 0x84F6 -#define GL_TEXTURE_BIT 0x00040000 -#define GL_TEXTURE_BLUE_SIZE 0x805E -#define GL_TEXTURE_BLUE_TYPE 0x8C12 -#define GL_TEXTURE_BORDER 0x1005 -#define GL_TEXTURE_BORDER_COLOR 0x1004 -#define GL_TEXTURE_BUFFER 0x8C2A -#define GL_TEXTURE_BUFFER_BINDING 0x8C2A -#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D -#define GL_TEXTURE_BUFFER_OFFSET 0x919D -#define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT 0x919F -#define GL_TEXTURE_BUFFER_SIZE 0x919E -#define GL_TEXTURE_COMPARE_FUNC 0x884D -#define GL_TEXTURE_COMPARE_MODE 0x884C -#define GL_TEXTURE_COMPONENTS 0x1003 -#define GL_TEXTURE_COMPRESSED 0x86A1 -#define GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT 0x82B2 -#define GL_TEXTURE_COMPRESSED_BLOCK_SIZE 0x82B3 -#define GL_TEXTURE_COMPRESSED_BLOCK_WIDTH 0x82B1 -#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 -#define GL_TEXTURE_COMPRESSION_HINT 0x84EF -#define GL_TEXTURE_COORD_ARRAY 0x8078 -#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A -#define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092 -#define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088 -#define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A -#define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089 -#define GL_TEXTURE_CUBE_MAP 0x8513 -#define GL_TEXTURE_CUBE_MAP_ARRAY 0x9009 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 -#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F -#define GL_TEXTURE_DEPTH 0x8071 -#define GL_TEXTURE_DEPTH_SIZE 0x884A -#define GL_TEXTURE_DEPTH_TYPE 0x8C16 -#define GL_TEXTURE_ENV 0x2300 -#define GL_TEXTURE_ENV_COLOR 0x2201 -#define GL_TEXTURE_ENV_MODE 0x2200 -#define GL_TEXTURE_FETCH_BARRIER_BIT 0x00000008 -#define GL_TEXTURE_FILTER_CONTROL 0x8500 -#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107 -#define GL_TEXTURE_GATHER 0x82A2 -#define GL_TEXTURE_GATHER_SHADOW 0x82A3 -#define GL_TEXTURE_GEN_MODE 0x2500 -#define GL_TEXTURE_GEN_Q 0x0C63 -#define GL_TEXTURE_GEN_R 0x0C62 -#define GL_TEXTURE_GEN_S 0x0C60 -#define GL_TEXTURE_GEN_T 0x0C61 -#define GL_TEXTURE_GREEN_SIZE 0x805D -#define GL_TEXTURE_GREEN_TYPE 0x8C11 -#define GL_TEXTURE_HEIGHT 0x1001 -#define GL_TEXTURE_IMAGE_FORMAT 0x828F -#define GL_TEXTURE_IMAGE_TYPE 0x8290 -#define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F -#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82DF -#define GL_TEXTURE_INTENSITY_SIZE 0x8061 -#define GL_TEXTURE_INTENSITY_TYPE 0x8C15 -#define GL_TEXTURE_INTERNAL_FORMAT 0x1003 -#define GL_TEXTURE_LOD_BIAS 0x8501 -#define GL_TEXTURE_LUMINANCE_SIZE 0x8060 -#define GL_TEXTURE_LUMINANCE_TYPE 0x8C14 -#define GL_TEXTURE_MAG_FILTER 0x2800 -#define GL_TEXTURE_MATRIX 0x0BA8 -#define GL_TEXTURE_MAX_ANISOTROPY 0x84FE -#define GL_TEXTURE_MAX_LEVEL 0x813D -#define GL_TEXTURE_MAX_LOD 0x813B -#define GL_TEXTURE_MIN_FILTER 0x2801 -#define GL_TEXTURE_MIN_LOD 0x813A -#define GL_TEXTURE_PRIORITY 0x8066 -#define GL_TEXTURE_RECTANGLE 0x84F5 -#define GL_TEXTURE_RED_SIZE 0x805C -#define GL_TEXTURE_RED_TYPE 0x8C10 -#define GL_TEXTURE_RESIDENT 0x8067 -#define GL_TEXTURE_SAMPLES 0x9106 -#define GL_TEXTURE_SHADOW 0x82A1 -#define GL_TEXTURE_SHARED_SIZE 0x8C3F -#define GL_TEXTURE_STACK_DEPTH 0x0BA5 -#define GL_TEXTURE_STENCIL_SIZE 0x88F1 -#define GL_TEXTURE_SWIZZLE_A 0x8E45 -#define GL_TEXTURE_SWIZZLE_B 0x8E44 -#define GL_TEXTURE_SWIZZLE_G 0x8E43 -#define GL_TEXTURE_SWIZZLE_R 0x8E42 -#define GL_TEXTURE_SWIZZLE_RGBA 0x8E46 -#define GL_TEXTURE_TARGET 0x1006 -#define GL_TEXTURE_UPDATE_BARRIER_BIT 0x00000100 -#define GL_TEXTURE_VIEW 0x82B5 -#define GL_TEXTURE_VIEW_MIN_LAYER 0x82DD -#define GL_TEXTURE_VIEW_MIN_LEVEL 0x82DB -#define GL_TEXTURE_VIEW_NUM_LAYERS 0x82DE -#define GL_TEXTURE_VIEW_NUM_LEVELS 0x82DC -#define GL_TEXTURE_WIDTH 0x1000 -#define GL_TEXTURE_WRAP_R 0x8072 -#define GL_TEXTURE_WRAP_S 0x2802 -#define GL_TEXTURE_WRAP_T 0x2803 -#define GL_TIMEOUT_EXPIRED 0x911B -#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFF -#define GL_TIMESTAMP 0x8E28 -#define GL_TIME_ELAPSED 0x88BF -#define GL_TOP_LEVEL_ARRAY_SIZE 0x930C -#define GL_TOP_LEVEL_ARRAY_STRIDE 0x930D -#define GL_TRANSFORM_BIT 0x00001000 -#define GL_TRANSFORM_FEEDBACK 0x8E22 -#define GL_TRANSFORM_FEEDBACK_ACTIVE 0x8E24 -#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT 0x00000800 -#define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25 -#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE 0x8E24 -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F -#define GL_TRANSFORM_FEEDBACK_BUFFER_INDEX 0x934B -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F -#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED 0x8E23 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 -#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE 0x934C -#define GL_TRANSFORM_FEEDBACK_OVERFLOW 0x82EC -#define GL_TRANSFORM_FEEDBACK_PAUSED 0x8E23 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 -#define GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW 0x82ED -#define GL_TRANSFORM_FEEDBACK_VARYING 0x92F4 -#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 -#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 -#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6 -#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3 -#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4 -#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5 -#define GL_TRIANGLES 0x0004 -#define GL_TRIANGLES_ADJACENCY 0x000C -#define GL_TRIANGLE_FAN 0x0006 -#define GL_TRIANGLE_STRIP 0x0005 -#define GL_TRIANGLE_STRIP_ADJACENCY 0x000D -#define GL_TRUE 1 -#define GL_TYPE 0x92FA -#define GL_UNDEFINED_VERTEX 0x8260 -#define GL_UNIFORM 0x92E1 -#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C -#define GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX 0x92DA -#define GL_UNIFORM_BARRIER_BIT 0x00000004 -#define GL_UNIFORM_BLOCK 0x92E2 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43 -#define GL_UNIFORM_BLOCK_BINDING 0x8A3F -#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40 -#define GL_UNIFORM_BLOCK_INDEX 0x8A3A -#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER 0x90EC -#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8A45 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER 0x84F0 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER 0x84F1 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 -#define GL_UNIFORM_BUFFER 0x8A11 -#define GL_UNIFORM_BUFFER_BINDING 0x8A28 -#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34 -#define GL_UNIFORM_BUFFER_SIZE 0x8A2A -#define GL_UNIFORM_BUFFER_START 0x8A29 -#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E -#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D -#define GL_UNIFORM_NAME_LENGTH 0x8A39 -#define GL_UNIFORM_OFFSET 0x8A3B -#define GL_UNIFORM_SIZE 0x8A38 -#define GL_UNIFORM_TYPE 0x8A37 -#define GL_UNKNOWN_CONTEXT_RESET 0x8255 -#define GL_UNPACK_ALIGNMENT 0x0CF5 -#define GL_UNPACK_COMPRESSED_BLOCK_DEPTH 0x9129 -#define GL_UNPACK_COMPRESSED_BLOCK_HEIGHT 0x9128 -#define GL_UNPACK_COMPRESSED_BLOCK_SIZE 0x912A -#define GL_UNPACK_COMPRESSED_BLOCK_WIDTH 0x9127 -#define GL_UNPACK_IMAGE_HEIGHT 0x806E -#define GL_UNPACK_LSB_FIRST 0x0CF1 -#define GL_UNPACK_ROW_LENGTH 0x0CF2 -#define GL_UNPACK_SKIP_IMAGES 0x806D -#define GL_UNPACK_SKIP_PIXELS 0x0CF4 -#define GL_UNPACK_SKIP_ROWS 0x0CF3 -#define GL_UNPACK_SWAP_BYTES 0x0CF0 -#define GL_UNSIGNALED 0x9118 -#define GL_UNSIGNED_BYTE 0x1401 -#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 -#define GL_UNSIGNED_BYTE_3_3_2 0x8032 -#define GL_UNSIGNED_INT 0x1405 -#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B -#define GL_UNSIGNED_INT_10_10_10_2 0x8036 -#define GL_UNSIGNED_INT_24_8 0x84FA -#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 -#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E -#define GL_UNSIGNED_INT_8_8_8_8 0x8035 -#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 -#define GL_UNSIGNED_INT_ATOMIC_COUNTER 0x92DB -#define GL_UNSIGNED_INT_IMAGE_1D 0x9062 -#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY 0x9068 -#define GL_UNSIGNED_INT_IMAGE_2D 0x9063 -#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY 0x9069 -#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE 0x906B -#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x906C -#define GL_UNSIGNED_INT_IMAGE_2D_RECT 0x9065 -#define GL_UNSIGNED_INT_IMAGE_3D 0x9064 -#define GL_UNSIGNED_INT_IMAGE_BUFFER 0x9067 -#define GL_UNSIGNED_INT_IMAGE_CUBE 0x9066 -#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY 0x906A -#define GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1 -#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6 -#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 -#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 -#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A -#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D -#define GL_UNSIGNED_INT_SAMPLER_2D_RECT 0x8DD5 -#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 -#define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8 -#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 -#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F -#define GL_UNSIGNED_INT_VEC2 0x8DC6 -#define GL_UNSIGNED_INT_VEC3 0x8DC7 -#define GL_UNSIGNED_INT_VEC4 0x8DC8 -#define GL_UNSIGNED_NORMALIZED 0x8C17 -#define GL_UNSIGNED_SHORT 0x1403 -#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 -#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 -#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 -#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 -#define GL_UNSIGNED_SHORT_5_6_5 0x8363 -#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 -#define GL_UPPER_LEFT 0x8CA2 -#define GL_V2F 0x2A20 -#define GL_V3F 0x2A21 -#define GL_VALIDATE_STATUS 0x8B83 -#define GL_VENDOR 0x1F00 -#define GL_VERSION 0x1F02 -#define GL_VERTEX_ARRAY 0x8074 -#define GL_VERTEX_ARRAY_BINDING 0x85B5 -#define GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896 -#define GL_VERTEX_ARRAY_POINTER 0x808E -#define GL_VERTEX_ARRAY_SIZE 0x807A -#define GL_VERTEX_ARRAY_STRIDE 0x807C -#define GL_VERTEX_ARRAY_TYPE 0x807B -#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT 0x00000001 -#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE -#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 -#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD -#define GL_VERTEX_ATTRIB_ARRAY_LONG 0x874E -#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A -#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 -#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 -#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 -#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 -#define GL_VERTEX_ATTRIB_BINDING 0x82D4 -#define GL_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D5 -#define GL_VERTEX_BINDING_BUFFER 0x8F4F -#define GL_VERTEX_BINDING_DIVISOR 0x82D6 -#define GL_VERTEX_BINDING_OFFSET 0x82D7 -#define GL_VERTEX_BINDING_STRIDE 0x82D8 -#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642 -#define GL_VERTEX_PROGRAM_TWO_SIDE 0x8643 -#define GL_VERTEX_SHADER 0x8B31 -#define GL_VERTEX_SHADER_BIT 0x00000001 -#define GL_VERTEX_SHADER_INVOCATIONS 0x82F0 -#define GL_VERTEX_SUBROUTINE 0x92E8 -#define GL_VERTEX_SUBROUTINE_UNIFORM 0x92EE -#define GL_VERTEX_TEXTURE 0x829B -#define GL_VERTICES_SUBMITTED 0x82EE -#define GL_VIEWPORT 0x0BA2 -#define GL_VIEWPORT_BIT 0x00000800 -#define GL_VIEWPORT_BOUNDS_RANGE 0x825D -#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX 0x825F -#define GL_VIEWPORT_SUBPIXEL_BITS 0x825C -#define GL_VIEW_CLASS_128_BITS 0x82C4 -#define GL_VIEW_CLASS_16_BITS 0x82CA -#define GL_VIEW_CLASS_24_BITS 0x82C9 -#define GL_VIEW_CLASS_32_BITS 0x82C8 -#define GL_VIEW_CLASS_48_BITS 0x82C7 -#define GL_VIEW_CLASS_64_BITS 0x82C6 -#define GL_VIEW_CLASS_8_BITS 0x82CB -#define GL_VIEW_CLASS_96_BITS 0x82C5 -#define GL_VIEW_CLASS_BPTC_FLOAT 0x82D3 -#define GL_VIEW_CLASS_BPTC_UNORM 0x82D2 -#define GL_VIEW_CLASS_RGTC1_RED 0x82D0 -#define GL_VIEW_CLASS_RGTC2_RG 0x82D1 -#define GL_VIEW_CLASS_S3TC_DXT1_RGB 0x82CC -#define GL_VIEW_CLASS_S3TC_DXT1_RGBA 0x82CD -#define GL_VIEW_CLASS_S3TC_DXT3_RGBA 0x82CE -#define GL_VIEW_CLASS_S3TC_DXT5_RGBA 0x82CF -#define GL_VIEW_COMPATIBILITY_CLASS 0x82B6 -#define GL_WAIT_FAILED 0x911D -#define GL_WEIGHT_ARRAY_BUFFER_BINDING 0x889E -#define GL_WRITE_ONLY 0x88B9 -#define GL_XOR 0x1506 -#define GL_ZERO 0 -#define GL_ZERO_TO_ONE 0x935F -#define GL_ZOOM_X 0x0D16 -#define GL_ZOOM_Y 0x0D17 - -#include - -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; - -#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060) -typedef khronos_intptr_t GLintptr; -#else -typedef khronos_intptr_t GLintptr; -#endif - -#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060) -typedef khronos_intptr_t GLintptrARB; -#else -typedef khronos_intptr_t GLintptrARB; -#endif - -#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060) -typedef khronos_ssize_t GLsizeiptr; -#else -typedef khronos_ssize_t GLsizeiptr; -#endif - -#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060) -typedef khronos_ssize_t GLsizeiptrARB; -#else -typedef khronos_ssize_t GLsizeiptrARB; -#endif - -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(GLAD_API_PTR *GLDEBUGPROC)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *message, const void *userParam); - -typedef void(GLAD_API_PTR *GLDEBUGPROCARB)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *message, const void *userParam); - -typedef void(GLAD_API_PTR *GLDEBUGPROCKHR)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *message, const void *userParam); - -typedef void(GLAD_API_PTR *GLDEBUGPROCAMD)(GLuint id, GLenum category, GLenum severity, GLsizei length, const GLchar *message, void *userParam); - -typedef unsigned short GLhalfNV; - -typedef GLintptr GLvdpauSurfaceNV; - -typedef void(GLAD_API_PTR *GLVULKANPROCNV)(void); - -#define GL_VERSION_1_0 1 -#define GL_VERSION_1_1 1 -#define GL_VERSION_1_2 1 -#define GL_VERSION_1_3 1 -#define GL_VERSION_1_4 1 -#define GL_VERSION_1_5 1 -#define GL_VERSION_2_0 1 -#define GL_VERSION_2_1 1 -#define GL_VERSION_3_0 1 -#define GL_VERSION_3_1 1 -#define GL_VERSION_3_2 1 -#define GL_VERSION_3_3 1 -#define GL_VERSION_4_0 1 -#define GL_VERSION_4_1 1 -#define GL_VERSION_4_2 1 -#define GL_VERSION_4_3 1 -#define GL_VERSION_4_4 1 -#define GL_VERSION_4_5 1 -#define GL_VERSION_4_6 1 - -typedef void(GLAD_API_PTR *PFNGLEGLIMAGETARGETTEXTURE2DOESPROC)(GLenum target, GLeglImageOES image); -typedef void(GLAD_API_PTR *PFNGLACCUMPROC)(GLenum op, GLfloat value); -typedef void(GLAD_API_PTR *PFNGLACTIVESHADERPROGRAMPROC)(GLuint pipeline, GLuint program); -typedef void(GLAD_API_PTR *PFNGLACTIVETEXTUREPROC)(GLenum texture); -typedef void(GLAD_API_PTR *PFNGLALPHAFUNCPROC)(GLenum func, GLfloat ref); -typedef GLboolean(GLAD_API_PTR *PFNGLARETEXTURESRESIDENTPROC)(GLsizei n, const GLuint *textures, GLboolean *residences); -typedef void(GLAD_API_PTR *PFNGLARRAYELEMENTPROC)(GLint i); -typedef void(GLAD_API_PTR *PFNGLATTACHSHADERPROC)(GLuint program, GLuint shader); -typedef void(GLAD_API_PTR *PFNGLBEGINPROC)(GLenum mode); -typedef void(GLAD_API_PTR *PFNGLBEGINCONDITIONALRENDERPROC)(GLuint id, GLenum mode); -typedef void(GLAD_API_PTR *PFNGLBEGINQUERYPROC)(GLenum target, GLuint id); -typedef void(GLAD_API_PTR *PFNGLBEGINQUERYINDEXEDPROC)(GLenum target, GLuint index, GLuint id); -typedef void(GLAD_API_PTR *PFNGLBEGINTRANSFORMFEEDBACKPROC)(GLenum primitiveMode); -typedef void(GLAD_API_PTR *PFNGLBINDATTRIBLOCATIONPROC)(GLuint program, GLuint index, const GLchar *name); -typedef void(GLAD_API_PTR *PFNGLBINDBUFFERPROC)(GLenum target, GLuint buffer); -typedef void(GLAD_API_PTR *PFNGLBINDBUFFERBASEPROC)(GLenum target, GLuint index, GLuint buffer); -typedef void(GLAD_API_PTR *PFNGLBINDBUFFERRANGEPROC)(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void(GLAD_API_PTR *PFNGLBINDBUFFERSBASEPROC)(GLenum target, GLuint first, GLsizei count, const GLuint *buffers); -typedef void(GLAD_API_PTR *PFNGLBINDBUFFERSRANGEPROC)(GLenum target, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizeiptr *sizes); -typedef void(GLAD_API_PTR *PFNGLBINDFRAGDATALOCATIONPROC)(GLuint program, GLuint color, const GLchar *name); -typedef void(GLAD_API_PTR *PFNGLBINDFRAGDATALOCATIONINDEXEDPROC)(GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); -typedef void(GLAD_API_PTR *PFNGLBINDFRAMEBUFFERPROC)(GLenum target, GLuint framebuffer); -typedef void(GLAD_API_PTR *PFNGLBINDIMAGETEXTUREPROC)(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); -typedef void(GLAD_API_PTR *PFNGLBINDIMAGETEXTURESPROC)(GLuint first, GLsizei count, const GLuint *textures); -typedef void(GLAD_API_PTR *PFNGLBINDPROGRAMPIPELINEPROC)(GLuint pipeline); -typedef void(GLAD_API_PTR *PFNGLBINDRENDERBUFFERPROC)(GLenum target, GLuint renderbuffer); -typedef void(GLAD_API_PTR *PFNGLBINDSAMPLERPROC)(GLuint unit, GLuint sampler); -typedef void(GLAD_API_PTR *PFNGLBINDSAMPLERSPROC)(GLuint first, GLsizei count, const GLuint *samplers); -typedef void(GLAD_API_PTR *PFNGLBINDTEXTUREPROC)(GLenum target, GLuint texture); -typedef void(GLAD_API_PTR *PFNGLBINDTEXTUREUNITPROC)(GLuint unit, GLuint texture); -typedef void(GLAD_API_PTR *PFNGLBINDTEXTURESPROC)(GLuint first, GLsizei count, const GLuint *textures); -typedef void(GLAD_API_PTR *PFNGLBINDTRANSFORMFEEDBACKPROC)(GLenum target, GLuint id); -typedef void(GLAD_API_PTR *PFNGLBINDVERTEXARRAYPROC)(GLuint array); -typedef void(GLAD_API_PTR *PFNGLBINDVERTEXBUFFERPROC)(GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); -typedef void(GLAD_API_PTR *PFNGLBINDVERTEXBUFFERSPROC)(GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides); -typedef void(GLAD_API_PTR *PFNGLBITMAPPROC)(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap); -typedef void(GLAD_API_PTR *PFNGLBLENDCOLORPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void(GLAD_API_PTR *PFNGLBLENDEQUATIONPROC)(GLenum mode); -typedef void(GLAD_API_PTR *PFNGLBLENDEQUATIONSEPARATEPROC)(GLenum modeRGB, GLenum modeAlpha); -typedef void(GLAD_API_PTR *PFNGLBLENDEQUATIONSEPARATEIPROC)(GLuint buf, GLenum modeRGB, GLenum modeAlpha); -typedef void(GLAD_API_PTR *PFNGLBLENDEQUATIONIPROC)(GLuint buf, GLenum mode); -typedef void(GLAD_API_PTR *PFNGLBLENDFUNCPROC)(GLenum sfactor, GLenum dfactor); -typedef void(GLAD_API_PTR *PFNGLBLENDFUNCSEPARATEPROC)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -typedef void(GLAD_API_PTR *PFNGLBLENDFUNCSEPARATEIPROC)(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -typedef void(GLAD_API_PTR *PFNGLBLENDFUNCIPROC)(GLuint buf, GLenum src, GLenum dst); -typedef void(GLAD_API_PTR *PFNGLBLITFRAMEBUFFERPROC)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -typedef void(GLAD_API_PTR *PFNGLBLITNAMEDFRAMEBUFFERPROC)(GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -typedef void(GLAD_API_PTR *PFNGLBUFFERDATAPROC)(GLenum target, GLsizeiptr size, const void *data, GLenum usage); -typedef void(GLAD_API_PTR *PFNGLBUFFERSTORAGEPROC)(GLenum target, GLsizeiptr size, const void *data, GLbitfield flags); -typedef void(GLAD_API_PTR *PFNGLBUFFERSUBDATAPROC)(GLenum target, GLintptr offset, GLsizeiptr size, const void *data); -typedef void(GLAD_API_PTR *PFNGLCALLLISTPROC)(GLuint list); -typedef void(GLAD_API_PTR *PFNGLCALLLISTSPROC)(GLsizei n, GLenum type, const void *lists); -typedef GLenum(GLAD_API_PTR *PFNGLCHECKFRAMEBUFFERSTATUSPROC)(GLenum target); -typedef GLenum(GLAD_API_PTR *PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC)(GLuint framebuffer, GLenum target); -typedef void(GLAD_API_PTR *PFNGLCLAMPCOLORPROC)(GLenum target, GLenum clamp); -typedef void(GLAD_API_PTR *PFNGLCLEARPROC)(GLbitfield mask); -typedef void(GLAD_API_PTR *PFNGLCLEARACCUMPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void(GLAD_API_PTR *PFNGLCLEARBUFFERDATAPROC)(GLenum target, GLenum internalformat, GLenum format, GLenum type, const void *data); -typedef void(GLAD_API_PTR *PFNGLCLEARBUFFERSUBDATAPROC)(GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); -typedef void(GLAD_API_PTR *PFNGLCLEARBUFFERFIPROC)(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); -typedef void(GLAD_API_PTR *PFNGLCLEARBUFFERFVPROC)(GLenum buffer, GLint drawbuffer, const GLfloat *value); -typedef void(GLAD_API_PTR *PFNGLCLEARBUFFERIVPROC)(GLenum buffer, GLint drawbuffer, const GLint *value); -typedef void(GLAD_API_PTR *PFNGLCLEARBUFFERUIVPROC)(GLenum buffer, GLint drawbuffer, const GLuint *value); -typedef void(GLAD_API_PTR *PFNGLCLEARCOLORPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void(GLAD_API_PTR *PFNGLCLEARDEPTHPROC)(GLdouble depth); -typedef void(GLAD_API_PTR *PFNGLCLEARDEPTHFPROC)(GLfloat d); -typedef void(GLAD_API_PTR *PFNGLCLEARINDEXPROC)(GLfloat c); -typedef void(GLAD_API_PTR *PFNGLCLEARNAMEDBUFFERDATAPROC)(GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data); -typedef void(GLAD_API_PTR *PFNGLCLEARNAMEDBUFFERSUBDATAPROC)(GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data); -typedef void(GLAD_API_PTR *PFNGLCLEARNAMEDFRAMEBUFFERFIPROC)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); -typedef void(GLAD_API_PTR *PFNGLCLEARNAMEDFRAMEBUFFERFVPROC)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat *value); -typedef void(GLAD_API_PTR *PFNGLCLEARNAMEDFRAMEBUFFERIVPROC)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint *value); -typedef void(GLAD_API_PTR *PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint *value); -typedef void(GLAD_API_PTR *PFNGLCLEARSTENCILPROC)(GLint s); -typedef void(GLAD_API_PTR *PFNGLCLEARTEXIMAGEPROC)(GLuint texture, GLint level, GLenum format, GLenum type, const void *data); -typedef void(GLAD_API_PTR *PFNGLCLEARTEXSUBIMAGEPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data); -typedef void(GLAD_API_PTR *PFNGLCLIENTACTIVETEXTUREPROC)(GLenum texture); -typedef GLenum(GLAD_API_PTR *PFNGLCLIENTWAITSYNCPROC)(GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void(GLAD_API_PTR *PFNGLCLIPCONTROLPROC)(GLenum origin, GLenum depth); -typedef void(GLAD_API_PTR *PFNGLCLIPPLANEPROC)(GLenum plane, const GLdouble *equation); -typedef void(GLAD_API_PTR *PFNGLCOLOR3BPROC)(GLbyte red, GLbyte green, GLbyte blue); -typedef void(GLAD_API_PTR *PFNGLCOLOR3BVPROC)(const GLbyte *v); -typedef void(GLAD_API_PTR *PFNGLCOLOR3DPROC)(GLdouble red, GLdouble green, GLdouble blue); -typedef void(GLAD_API_PTR *PFNGLCOLOR3DVPROC)(const GLdouble *v); -typedef void(GLAD_API_PTR *PFNGLCOLOR3FPROC)(GLfloat red, GLfloat green, GLfloat blue); -typedef void(GLAD_API_PTR *PFNGLCOLOR3FVPROC)(const GLfloat *v); -typedef void(GLAD_API_PTR *PFNGLCOLOR3IPROC)(GLint red, GLint green, GLint blue); -typedef void(GLAD_API_PTR *PFNGLCOLOR3IVPROC)(const GLint *v); -typedef void(GLAD_API_PTR *PFNGLCOLOR3SPROC)(GLshort red, GLshort green, GLshort blue); -typedef void(GLAD_API_PTR *PFNGLCOLOR3SVPROC)(const GLshort *v); -typedef void(GLAD_API_PTR *PFNGLCOLOR3UBPROC)(GLubyte red, GLubyte green, GLubyte blue); -typedef void(GLAD_API_PTR *PFNGLCOLOR3UBVPROC)(const GLubyte *v); -typedef void(GLAD_API_PTR *PFNGLCOLOR3UIPROC)(GLuint red, GLuint green, GLuint blue); -typedef void(GLAD_API_PTR *PFNGLCOLOR3UIVPROC)(const GLuint *v); -typedef void(GLAD_API_PTR *PFNGLCOLOR3USPROC)(GLushort red, GLushort green, GLushort blue); -typedef void(GLAD_API_PTR *PFNGLCOLOR3USVPROC)(const GLushort *v); -typedef void(GLAD_API_PTR *PFNGLCOLOR4BPROC)(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha); -typedef void(GLAD_API_PTR *PFNGLCOLOR4BVPROC)(const GLbyte *v); -typedef void(GLAD_API_PTR *PFNGLCOLOR4DPROC)(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha); -typedef void(GLAD_API_PTR *PFNGLCOLOR4DVPROC)(const GLdouble *v); -typedef void(GLAD_API_PTR *PFNGLCOLOR4FPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -typedef void(GLAD_API_PTR *PFNGLCOLOR4FVPROC)(const GLfloat *v); -typedef void(GLAD_API_PTR *PFNGLCOLOR4IPROC)(GLint red, GLint green, GLint blue, GLint alpha); -typedef void(GLAD_API_PTR *PFNGLCOLOR4IVPROC)(const GLint *v); -typedef void(GLAD_API_PTR *PFNGLCOLOR4SPROC)(GLshort red, GLshort green, GLshort blue, GLshort alpha); -typedef void(GLAD_API_PTR *PFNGLCOLOR4SVPROC)(const GLshort *v); -typedef void(GLAD_API_PTR *PFNGLCOLOR4UBPROC)(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); -typedef void(GLAD_API_PTR *PFNGLCOLOR4UBVPROC)(const GLubyte *v); -typedef void(GLAD_API_PTR *PFNGLCOLOR4UIPROC)(GLuint red, GLuint green, GLuint blue, GLuint alpha); -typedef void(GLAD_API_PTR *PFNGLCOLOR4UIVPROC)(const GLuint *v); -typedef void(GLAD_API_PTR *PFNGLCOLOR4USPROC)(GLushort red, GLushort green, GLushort blue, GLushort alpha); -typedef void(GLAD_API_PTR *PFNGLCOLOR4USVPROC)(const GLushort *v); -typedef void(GLAD_API_PTR *PFNGLCOLORMASKPROC)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -typedef void(GLAD_API_PTR *PFNGLCOLORMASKIPROC)(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -typedef void(GLAD_API_PTR *PFNGLCOLORMATERIALPROC)(GLenum face, GLenum mode); -typedef void(GLAD_API_PTR *PFNGLCOLORP3UIPROC)(GLenum type, GLuint color); -typedef void(GLAD_API_PTR *PFNGLCOLORP3UIVPROC)(GLenum type, const GLuint *color); -typedef void(GLAD_API_PTR *PFNGLCOLORP4UIPROC)(GLenum type, GLuint color); -typedef void(GLAD_API_PTR *PFNGLCOLORP4UIVPROC)(GLenum type, const GLuint *color); -typedef void(GLAD_API_PTR *PFNGLCOLORPOINTERPROC)(GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void(GLAD_API_PTR *PFNGLCOMPILESHADERPROC)(GLuint shader); -typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXIMAGE1DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data); -typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXIMAGE2DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data); -typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXIMAGE3DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data); -typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); -typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC)(GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data); -typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data); -typedef void(GLAD_API_PTR *PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data); -typedef void(GLAD_API_PTR *PFNGLCOPYBUFFERSUBDATAPROC)(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -typedef void(GLAD_API_PTR *PFNGLCOPYIMAGESUBDATAPROC)(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); -typedef void(GLAD_API_PTR *PFNGLCOPYNAMEDBUFFERSUBDATAPROC)(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -typedef void(GLAD_API_PTR *PFNGLCOPYPIXELSPROC)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type); -typedef void(GLAD_API_PTR *PFNGLCOPYTEXIMAGE1DPROC)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -typedef void(GLAD_API_PTR *PFNGLCOPYTEXIMAGE2DPROC)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void(GLAD_API_PTR *PFNGLCOPYTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -typedef void(GLAD_API_PTR *PFNGLCOPYTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void(GLAD_API_PTR *PFNGLCOPYTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void(GLAD_API_PTR *PFNGLCOPYTEXTURESUBIMAGE1DPROC)(GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -typedef void(GLAD_API_PTR *PFNGLCOPYTEXTURESUBIMAGE2DPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void(GLAD_API_PTR *PFNGLCOPYTEXTURESUBIMAGE3DPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void(GLAD_API_PTR *PFNGLCREATEBUFFERSPROC)(GLsizei n, GLuint *buffers); -typedef void(GLAD_API_PTR *PFNGLCREATEFRAMEBUFFERSPROC)(GLsizei n, GLuint *framebuffers); -typedef GLuint(GLAD_API_PTR *PFNGLCREATEPROGRAMPROC)(void); -typedef void(GLAD_API_PTR *PFNGLCREATEPROGRAMPIPELINESPROC)(GLsizei n, GLuint *pipelines); -typedef void(GLAD_API_PTR *PFNGLCREATEQUERIESPROC)(GLenum target, GLsizei n, GLuint *ids); -typedef void(GLAD_API_PTR *PFNGLCREATERENDERBUFFERSPROC)(GLsizei n, GLuint *renderbuffers); -typedef void(GLAD_API_PTR *PFNGLCREATESAMPLERSPROC)(GLsizei n, GLuint *samplers); -typedef GLuint(GLAD_API_PTR *PFNGLCREATESHADERPROC)(GLenum type); -typedef GLuint(GLAD_API_PTR *PFNGLCREATESHADERPROGRAMVPROC)(GLenum type, GLsizei count, const GLchar *const *strings); -typedef void(GLAD_API_PTR *PFNGLCREATETEXTURESPROC)(GLenum target, GLsizei n, GLuint *textures); -typedef void(GLAD_API_PTR *PFNGLCREATETRANSFORMFEEDBACKSPROC)(GLsizei n, GLuint *ids); -typedef void(GLAD_API_PTR *PFNGLCREATEVERTEXARRAYSPROC)(GLsizei n, GLuint *arrays); -typedef void(GLAD_API_PTR *PFNGLCULLFACEPROC)(GLenum mode); -typedef void(GLAD_API_PTR *PFNGLDEBUGMESSAGECALLBACKPROC)(GLDEBUGPROC callback, const void *userParam); -typedef void(GLAD_API_PTR *PFNGLDEBUGMESSAGECONTROLPROC)(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -typedef void(GLAD_API_PTR *PFNGLDEBUGMESSAGEINSERTPROC)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); -typedef void(GLAD_API_PTR *PFNGLDELETEBUFFERSPROC)(GLsizei n, const GLuint *buffers); -typedef void(GLAD_API_PTR *PFNGLDELETEFRAMEBUFFERSPROC)(GLsizei n, const GLuint *framebuffers); -typedef void(GLAD_API_PTR *PFNGLDELETELISTSPROC)(GLuint list, GLsizei range); -typedef void(GLAD_API_PTR *PFNGLDELETEPROGRAMPROC)(GLuint program); -typedef void(GLAD_API_PTR *PFNGLDELETEPROGRAMPIPELINESPROC)(GLsizei n, const GLuint *pipelines); -typedef void(GLAD_API_PTR *PFNGLDELETEQUERIESPROC)(GLsizei n, const GLuint *ids); -typedef void(GLAD_API_PTR *PFNGLDELETERENDERBUFFERSPROC)(GLsizei n, const GLuint *renderbuffers); -typedef void(GLAD_API_PTR *PFNGLDELETESAMPLERSPROC)(GLsizei count, const GLuint *samplers); -typedef void(GLAD_API_PTR *PFNGLDELETESHADERPROC)(GLuint shader); -typedef void(GLAD_API_PTR *PFNGLDELETESYNCPROC)(GLsync sync); -typedef void(GLAD_API_PTR *PFNGLDELETETEXTURESPROC)(GLsizei n, const GLuint *textures); -typedef void(GLAD_API_PTR *PFNGLDELETETRANSFORMFEEDBACKSPROC)(GLsizei n, const GLuint *ids); -typedef void(GLAD_API_PTR *PFNGLDELETEVERTEXARRAYSPROC)(GLsizei n, const GLuint *arrays); -typedef void(GLAD_API_PTR *PFNGLDEPTHFUNCPROC)(GLenum func); -typedef void(GLAD_API_PTR *PFNGLDEPTHMASKPROC)(GLboolean flag); -typedef void(GLAD_API_PTR *PFNGLDEPTHRANGEPROC)(GLdouble n, GLdouble f); -typedef void(GLAD_API_PTR *PFNGLDEPTHRANGEARRAYVPROC)(GLuint first, GLsizei count, const GLdouble *v); -typedef void(GLAD_API_PTR *PFNGLDEPTHRANGEINDEXEDPROC)(GLuint index, GLdouble n, GLdouble f); -typedef void(GLAD_API_PTR *PFNGLDEPTHRANGEFPROC)(GLfloat n, GLfloat f); -typedef void(GLAD_API_PTR *PFNGLDETACHSHADERPROC)(GLuint program, GLuint shader); -typedef void(GLAD_API_PTR *PFNGLDISABLEPROC)(GLenum cap); -typedef void(GLAD_API_PTR *PFNGLDISABLECLIENTSTATEPROC)(GLenum array); -typedef void(GLAD_API_PTR *PFNGLDISABLEVERTEXARRAYATTRIBPROC)(GLuint vaobj, GLuint index); -typedef void(GLAD_API_PTR *PFNGLDISABLEVERTEXATTRIBARRAYPROC)(GLuint index); -typedef void(GLAD_API_PTR *PFNGLDISABLEIPROC)(GLenum target, GLuint index); -typedef void(GLAD_API_PTR *PFNGLDISPATCHCOMPUTEPROC)(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z); -typedef void(GLAD_API_PTR *PFNGLDISPATCHCOMPUTEINDIRECTPROC)(GLintptr indirect); -typedef void(GLAD_API_PTR *PFNGLDRAWARRAYSPROC)(GLenum mode, GLint first, GLsizei count); -typedef void(GLAD_API_PTR *PFNGLDRAWARRAYSINDIRECTPROC)(GLenum mode, const void *indirect); -typedef void(GLAD_API_PTR *PFNGLDRAWARRAYSINSTANCEDPROC)(GLenum mode, GLint first, GLsizei count, GLsizei instancecount); -typedef void(GLAD_API_PTR *PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC)(GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance); -typedef void(GLAD_API_PTR *PFNGLDRAWBUFFERPROC)(GLenum buf); -typedef void(GLAD_API_PTR *PFNGLDRAWBUFFERSPROC)(GLsizei n, const GLenum *bufs); -typedef void(GLAD_API_PTR *PFNGLDRAWELEMENTSPROC)(GLenum mode, GLsizei count, GLenum type, const void *indices); -typedef void(GLAD_API_PTR *PFNGLDRAWELEMENTSBASEVERTEXPROC)(GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex); -typedef void(GLAD_API_PTR *PFNGLDRAWELEMENTSINDIRECTPROC)(GLenum mode, GLenum type, const void *indirect); -typedef void(GLAD_API_PTR *PFNGLDRAWELEMENTSINSTANCEDPROC)(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount); -typedef void(GLAD_API_PTR *PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC)(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance); -typedef void(GLAD_API_PTR *PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC)(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex); -typedef void(GLAD_API_PTR *PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC)(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance); -typedef void(GLAD_API_PTR *PFNGLDRAWPIXELSPROC)(GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -typedef void(GLAD_API_PTR *PFNGLDRAWRANGEELEMENTSPROC)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices); -typedef void(GLAD_API_PTR *PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex); -typedef void(GLAD_API_PTR *PFNGLDRAWTRANSFORMFEEDBACKPROC)(GLenum mode, GLuint id); -typedef void(GLAD_API_PTR *PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC)(GLenum mode, GLuint id, GLsizei instancecount); -typedef void(GLAD_API_PTR *PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC)(GLenum mode, GLuint id, GLuint stream); -typedef void(GLAD_API_PTR *PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC)(GLenum mode, GLuint id, GLuint stream, GLsizei instancecount); -typedef void(GLAD_API_PTR *PFNGLEDGEFLAGPROC)(GLboolean flag); -typedef void(GLAD_API_PTR *PFNGLEDGEFLAGPOINTERPROC)(GLsizei stride, const void *pointer); -typedef void(GLAD_API_PTR *PFNGLEDGEFLAGVPROC)(const GLboolean *flag); -typedef void(GLAD_API_PTR *PFNGLENABLEPROC)(GLenum cap); -typedef void(GLAD_API_PTR *PFNGLENABLECLIENTSTATEPROC)(GLenum array); -typedef void(GLAD_API_PTR *PFNGLENABLEVERTEXARRAYATTRIBPROC)(GLuint vaobj, GLuint index); -typedef void(GLAD_API_PTR *PFNGLENABLEVERTEXATTRIBARRAYPROC)(GLuint index); -typedef void(GLAD_API_PTR *PFNGLENABLEIPROC)(GLenum target, GLuint index); -typedef void(GLAD_API_PTR *PFNGLENDPROC)(void); -typedef void(GLAD_API_PTR *PFNGLENDCONDITIONALRENDERPROC)(void); -typedef void(GLAD_API_PTR *PFNGLENDLISTPROC)(void); -typedef void(GLAD_API_PTR *PFNGLENDQUERYPROC)(GLenum target); -typedef void(GLAD_API_PTR *PFNGLENDQUERYINDEXEDPROC)(GLenum target, GLuint index); -typedef void(GLAD_API_PTR *PFNGLENDTRANSFORMFEEDBACKPROC)(void); -typedef void(GLAD_API_PTR *PFNGLEVALCOORD1DPROC)(GLdouble u); -typedef void(GLAD_API_PTR *PFNGLEVALCOORD1DVPROC)(const GLdouble *u); -typedef void(GLAD_API_PTR *PFNGLEVALCOORD1FPROC)(GLfloat u); -typedef void(GLAD_API_PTR *PFNGLEVALCOORD1FVPROC)(const GLfloat *u); -typedef void(GLAD_API_PTR *PFNGLEVALCOORD2DPROC)(GLdouble u, GLdouble v); -typedef void(GLAD_API_PTR *PFNGLEVALCOORD2DVPROC)(const GLdouble *u); -typedef void(GLAD_API_PTR *PFNGLEVALCOORD2FPROC)(GLfloat u, GLfloat v); -typedef void(GLAD_API_PTR *PFNGLEVALCOORD2FVPROC)(const GLfloat *u); -typedef void(GLAD_API_PTR *PFNGLEVALMESH1PROC)(GLenum mode, GLint i1, GLint i2); -typedef void(GLAD_API_PTR *PFNGLEVALMESH2PROC)(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2); -typedef void(GLAD_API_PTR *PFNGLEVALPOINT1PROC)(GLint i); -typedef void(GLAD_API_PTR *PFNGLEVALPOINT2PROC)(GLint i, GLint j); -typedef void(GLAD_API_PTR *PFNGLFEEDBACKBUFFERPROC)(GLsizei size, GLenum type, GLfloat *buffer); -typedef GLsync(GLAD_API_PTR *PFNGLFENCESYNCPROC)(GLenum condition, GLbitfield flags); -typedef void(GLAD_API_PTR *PFNGLFINISHPROC)(void); -typedef void(GLAD_API_PTR *PFNGLFLUSHPROC)(void); -typedef void(GLAD_API_PTR *PFNGLFLUSHMAPPEDBUFFERRANGEPROC)(GLenum target, GLintptr offset, GLsizeiptr length); -typedef void(GLAD_API_PTR *PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC)(GLuint buffer, GLintptr offset, GLsizeiptr length); -typedef void(GLAD_API_PTR *PFNGLFOGCOORDPOINTERPROC)(GLenum type, GLsizei stride, const void *pointer); -typedef void(GLAD_API_PTR *PFNGLFOGCOORDDPROC)(GLdouble coord); -typedef void(GLAD_API_PTR *PFNGLFOGCOORDDVPROC)(const GLdouble *coord); -typedef void(GLAD_API_PTR *PFNGLFOGCOORDFPROC)(GLfloat coord); -typedef void(GLAD_API_PTR *PFNGLFOGCOORDFVPROC)(const GLfloat *coord); -typedef void(GLAD_API_PTR *PFNGLFOGFPROC)(GLenum pname, GLfloat param); -typedef void(GLAD_API_PTR *PFNGLFOGFVPROC)(GLenum pname, const GLfloat *params); -typedef void(GLAD_API_PTR *PFNGLFOGIPROC)(GLenum pname, GLint param); -typedef void(GLAD_API_PTR *PFNGLFOGIVPROC)(GLenum pname, const GLint *params); -typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERPARAMETERIPROC)(GLenum target, GLenum pname, GLint param); -typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERRENDERBUFFERPROC)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTUREPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level); -typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTURE1DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTURE2DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTURE3DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -typedef void(GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTURELAYERPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void(GLAD_API_PTR *PFNGLFRONTFACEPROC)(GLenum mode); -typedef void(GLAD_API_PTR *PFNGLFRUSTUMPROC)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -typedef void(GLAD_API_PTR *PFNGLGENBUFFERSPROC)(GLsizei n, GLuint *buffers); -typedef void(GLAD_API_PTR *PFNGLGENFRAMEBUFFERSPROC)(GLsizei n, GLuint *framebuffers); -typedef GLuint(GLAD_API_PTR *PFNGLGENLISTSPROC)(GLsizei range); -typedef void(GLAD_API_PTR *PFNGLGENPROGRAMPIPELINESPROC)(GLsizei n, GLuint *pipelines); -typedef void(GLAD_API_PTR *PFNGLGENQUERIESPROC)(GLsizei n, GLuint *ids); -typedef void(GLAD_API_PTR *PFNGLGENRENDERBUFFERSPROC)(GLsizei n, GLuint *renderbuffers); -typedef void(GLAD_API_PTR *PFNGLGENSAMPLERSPROC)(GLsizei count, GLuint *samplers); -typedef void(GLAD_API_PTR *PFNGLGENTEXTURESPROC)(GLsizei n, GLuint *textures); -typedef void(GLAD_API_PTR *PFNGLGENTRANSFORMFEEDBACKSPROC)(GLsizei n, GLuint *ids); -typedef void(GLAD_API_PTR *PFNGLGENVERTEXARRAYSPROC)(GLsizei n, GLuint *arrays); -typedef void(GLAD_API_PTR *PFNGLGENERATEMIPMAPPROC)(GLenum target); -typedef void(GLAD_API_PTR *PFNGLGENERATETEXTUREMIPMAPPROC)(GLuint texture); -typedef void(GLAD_API_PTR *PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC)(GLuint program, GLuint bufferIndex, GLenum pname, GLint *params); -typedef void(GLAD_API_PTR *PFNGLGETACTIVEATTRIBPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void(GLAD_API_PTR *PFNGLGETACTIVESUBROUTINENAMEPROC)(GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); -typedef void(GLAD_API_PTR *PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC)(GLuint program, GLenum shadertype, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); -typedef void(GLAD_API_PTR *PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC)(GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values); -typedef void(GLAD_API_PTR *PFNGLGETACTIVEUNIFORMPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void(GLAD_API_PTR *PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC)(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); -typedef void(GLAD_API_PTR *PFNGLGETACTIVEUNIFORMBLOCKIVPROC)(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); -typedef void(GLAD_API_PTR *PFNGLGETACTIVEUNIFORMNAMEPROC)(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName); -typedef void(GLAD_API_PTR *PFNGLGETACTIVEUNIFORMSIVPROC)(GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); -typedef void(GLAD_API_PTR *PFNGLGETATTACHEDSHADERSPROC)(GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); -typedef GLint(GLAD_API_PTR *PFNGLGETATTRIBLOCATIONPROC)(GLuint program, const GLchar *name); -typedef void(GLAD_API_PTR *PFNGLGETBOOLEANI_VPROC)(GLenum target, GLuint index, GLboolean *data); -typedef void(GLAD_API_PTR *PFNGLGETBOOLEANVPROC)(GLenum pname, GLboolean *data); -typedef void(GLAD_API_PTR *PFNGLGETBUFFERPARAMETERI64VPROC)(GLenum target, GLenum pname, GLint64 *params); -typedef void(GLAD_API_PTR *PFNGLGETBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint *params); -typedef void(GLAD_API_PTR *PFNGLGETBUFFERPOINTERVPROC)(GLenum target, GLenum pname, void **params); -typedef void(GLAD_API_PTR *PFNGLGETBUFFERSUBDATAPROC)(GLenum target, GLintptr offset, GLsizeiptr size, void *data); -typedef void(GLAD_API_PTR *PFNGLGETCLIPPLANEPROC)(GLenum plane, GLdouble *equation); -typedef void(GLAD_API_PTR *PFNGLGETCOMPRESSEDTEXIMAGEPROC)(GLenum target, GLint level, void *img); -typedef void(GLAD_API_PTR *PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC)(GLuint texture, GLint level, GLsizei bufSize, void *pixels); -typedef void(GLAD_API_PTR *PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei bufSize, void *pixels); -typedef GLuint(GLAD_API_PTR *PFNGLGETDEBUGMESSAGELOGPROC)(GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); -typedef void(GLAD_API_PTR *PFNGLGETDOUBLEI_VPROC)(GLenum target, GLuint index, GLdouble *data); -typedef void(GLAD_API_PTR *PFNGLGETDOUBLEVPROC)(GLenum pname, GLdouble *data); -typedef GLenum(GLAD_API_PTR *PFNGLGETERRORPROC)(void); -typedef void(GLAD_API_PTR *PFNGLGETFLOATI_VPROC)(GLenum target, GLuint index, GLfloat *data); -typedef void(GLAD_API_PTR *PFNGLGETFLOATVPROC)(GLenum pname, GLfloat *data); -typedef GLint(GLAD_API_PTR *PFNGLGETFRAGDATAINDEXPROC)(GLuint program, const GLchar *name); -typedef GLint(GLAD_API_PTR *PFNGLGETFRAGDATALOCATIONPROC)(GLuint program, const GLchar *name); -typedef void(GLAD_API_PTR *PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)(GLenum target, GLenum attachment, GLenum pname, GLint *params); -typedef void(GLAD_API_PTR *PFNGLGETFRAMEBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint *params); -typedef GLenum(GLAD_API_PTR *PFNGLGETGRAPHICSRESETSTATUSPROC)(void); -typedef void(GLAD_API_PTR *PFNGLGETINTEGER64I_VPROC)(GLenum target, GLuint index, GLint64 *data); -typedef void(GLAD_API_PTR *PFNGLGETINTEGER64VPROC)(GLenum pname, GLint64 *data); -typedef void(GLAD_API_PTR *PFNGLGETINTEGERI_VPROC)(GLenum target, GLuint index, GLint *data); -typedef void(GLAD_API_PTR *PFNGLGETINTEGERVPROC)(GLenum pname, GLint *data); -typedef void(GLAD_API_PTR *PFNGLGETINTERNALFORMATI64VPROC)(GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint64 *params); -typedef void(GLAD_API_PTR *PFNGLGETINTERNALFORMATIVPROC)(GLenum target, GLenum internalformat, GLenum pname, GLsizei count, GLint *params); -typedef void(GLAD_API_PTR *PFNGLGETLIGHTFVPROC)(GLenum light, GLenum pname, GLfloat *params); -typedef void(GLAD_API_PTR *PFNGLGETLIGHTIVPROC)(GLenum light, GLenum pname, GLint *params); -typedef void(GLAD_API_PTR *PFNGLGETMAPDVPROC)(GLenum target, GLenum query, GLdouble *v); -typedef void(GLAD_API_PTR *PFNGLGETMAPFVPROC)(GLenum target, GLenum query, GLfloat *v); -typedef void(GLAD_API_PTR *PFNGLGETMAPIVPROC)(GLenum target, GLenum query, GLint *v); -typedef void(GLAD_API_PTR *PFNGLGETMATERIALFVPROC)(GLenum face, GLenum pname, GLfloat *params); -typedef void(GLAD_API_PTR *PFNGLGETMATERIALIVPROC)(GLenum face, GLenum pname, GLint *params); -typedef void(GLAD_API_PTR *PFNGLGETMULTISAMPLEFVPROC)(GLenum pname, GLuint index, GLfloat *val); -typedef void(GLAD_API_PTR *PFNGLGETNAMEDBUFFERPARAMETERI64VPROC)(GLuint buffer, GLenum pname, GLint64 *params); -typedef void(GLAD_API_PTR *PFNGLGETNAMEDBUFFERPARAMETERIVPROC)(GLuint buffer, GLenum pname, GLint *params); -typedef void(GLAD_API_PTR *PFNGLGETNAMEDBUFFERPOINTERVPROC)(GLuint buffer, GLenum pname, void **params); -typedef void(GLAD_API_PTR *PFNGLGETNAMEDBUFFERSUBDATAPROC)(GLuint buffer, GLintptr offset, GLsizeiptr size, void *data); -typedef void(GLAD_API_PTR *PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC)(GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params); -typedef void(GLAD_API_PTR *PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC)(GLuint framebuffer, GLenum pname, GLint *param); -typedef void(GLAD_API_PTR *PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC)(GLuint renderbuffer, GLenum pname, GLint *params); -typedef void(GLAD_API_PTR *PFNGLGETOBJECTLABELPROC)(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); -typedef void(GLAD_API_PTR *PFNGLGETOBJECTPTRLABELPROC)(const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); -typedef void(GLAD_API_PTR *PFNGLGETPIXELMAPFVPROC)(GLenum map, GLfloat *values); -typedef void(GLAD_API_PTR *PFNGLGETPIXELMAPUIVPROC)(GLenum map, GLuint *values); -typedef void(GLAD_API_PTR *PFNGLGETPIXELMAPUSVPROC)(GLenum map, GLushort *values); -typedef void(GLAD_API_PTR *PFNGLGETPOINTERVPROC)(GLenum pname, void **params); -typedef void(GLAD_API_PTR *PFNGLGETPOLYGONSTIPPLEPROC)(GLubyte *mask); -typedef void(GLAD_API_PTR *PFNGLGETPROGRAMBINARYPROC)(GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary); -typedef void(GLAD_API_PTR *PFNGLGETPROGRAMINFOLOGPROC)(GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void(GLAD_API_PTR *PFNGLGETPROGRAMINTERFACEIVPROC)(GLuint program, GLenum programInterface, GLenum pname, GLint *params); -typedef void(GLAD_API_PTR *PFNGLGETPROGRAMPIPELINEINFOLOGPROC)(GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void(GLAD_API_PTR *PFNGLGETPROGRAMPIPELINEIVPROC)(GLuint pipeline, GLenum pname, GLint *params); -typedef GLuint(GLAD_API_PTR *PFNGLGETPROGRAMRESOURCEINDEXPROC)(GLuint program, GLenum programInterface, const GLchar *name); -typedef GLint(GLAD_API_PTR *PFNGLGETPROGRAMRESOURCELOCATIONPROC)(GLuint program, GLenum programInterface, const GLchar *name); -typedef GLint(GLAD_API_PTR *PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC)(GLuint program, GLenum programInterface, const GLchar *name); -typedef void(GLAD_API_PTR *PFNGLGETPROGRAMRESOURCENAMEPROC)(GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name); -typedef void(GLAD_API_PTR *PFNGLGETPROGRAMRESOURCEIVPROC)(GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei count, GLsizei *length, GLint *params); -typedef void(GLAD_API_PTR *PFNGLGETPROGRAMSTAGEIVPROC)(GLuint program, GLenum shadertype, GLenum pname, GLint *values); -typedef void(GLAD_API_PTR *PFNGLGETPROGRAMIVPROC)(GLuint program, GLenum pname, GLint *params); -typedef void(GLAD_API_PTR *PFNGLGETQUERYBUFFEROBJECTI64VPROC)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset); -typedef void(GLAD_API_PTR *PFNGLGETQUERYBUFFEROBJECTIVPROC)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset); -typedef void(GLAD_API_PTR *PFNGLGETQUERYBUFFEROBJECTUI64VPROC)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset); -typedef void(GLAD_API_PTR *PFNGLGETQUERYBUFFEROBJECTUIVPROC)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset); -typedef void(GLAD_API_PTR *PFNGLGETQUERYINDEXEDIVPROC)(GLenum target, GLuint index, GLenum pname, GLint *params); -typedef void(GLAD_API_PTR *PFNGLGETQUERYOBJECTI64VPROC)(GLuint id, GLenum pname, GLint64 *params); -typedef void(GLAD_API_PTR *PFNGLGETQUERYOBJECTIVPROC)(GLuint id, GLenum pname, GLint *params); -typedef void(GLAD_API_PTR *PFNGLGETQUERYOBJECTUI64VPROC)(GLuint id, GLenum pname, GLuint64 *params); -typedef void(GLAD_API_PTR *PFNGLGETQUERYOBJECTUIVPROC)(GLuint id, GLenum pname, GLuint *params); -typedef void(GLAD_API_PTR *PFNGLGETQUERYIVPROC)(GLenum target, GLenum pname, GLint *params); -typedef void(GLAD_API_PTR *PFNGLGETRENDERBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint *params); -typedef void(GLAD_API_PTR *PFNGLGETSAMPLERPARAMETERIIVPROC)(GLuint sampler, GLenum pname, GLint *params); -typedef void(GLAD_API_PTR *PFNGLGETSAMPLERPARAMETERIUIVPROC)(GLuint sampler, GLenum pname, GLuint *params); -typedef void(GLAD_API_PTR *PFNGLGETSAMPLERPARAMETERFVPROC)(GLuint sampler, GLenum pname, GLfloat *params); -typedef void(GLAD_API_PTR *PFNGLGETSAMPLERPARAMETERIVPROC)(GLuint sampler, GLenum pname, GLint *params); -typedef void(GLAD_API_PTR *PFNGLGETSHADERINFOLOGPROC)(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void(GLAD_API_PTR *PFNGLGETSHADERPRECISIONFORMATPROC)(GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); -typedef void(GLAD_API_PTR *PFNGLGETSHADERSOURCEPROC)(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -typedef void(GLAD_API_PTR *PFNGLGETSHADERIVPROC)(GLuint shader, GLenum pname, GLint *params); -typedef const GLubyte *(GLAD_API_PTR *PFNGLGETSTRINGPROC)(GLenum name); -typedef const GLubyte *(GLAD_API_PTR *PFNGLGETSTRINGIPROC)(GLenum name, GLuint index); -typedef GLuint(GLAD_API_PTR *PFNGLGETSUBROUTINEINDEXPROC)(GLuint program, GLenum shadertype, const GLchar *name); -typedef GLint(GLAD_API_PTR *PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC)(GLuint program, GLenum shadertype, const GLchar *name); -typedef void(GLAD_API_PTR *PFNGLGETSYNCIVPROC)(GLsync sync, GLenum pname, GLsizei count, GLsizei *length, GLint *values); -typedef void(GLAD_API_PTR *PFNGLGETTEXENVFVPROC)(GLenum target, GLenum pname, GLfloat *params); -typedef void(GLAD_API_PTR *PFNGLGETTEXENVIVPROC)(GLenum target, GLenum pname, GLint *params); -typedef void(GLAD_API_PTR *PFNGLGETTEXGENDVPROC)(GLenum coord, GLenum pname, GLdouble *params); -typedef void(GLAD_API_PTR *PFNGLGETTEXGENFVPROC)(GLenum coord, GLenum pname, GLfloat *params); -typedef void(GLAD_API_PTR *PFNGLGETTEXGENIVPROC)(GLenum coord, GLenum pname, GLint *params); -typedef void(GLAD_API_PTR *PFNGLGETTEXIMAGEPROC)(GLenum target, GLint level, GLenum format, GLenum type, void *pixels); -typedef void(GLAD_API_PTR *PFNGLGETTEXLEVELPARAMETERFVPROC)(GLenum target, GLint level, GLenum pname, GLfloat *params); -typedef void(GLAD_API_PTR *PFNGLGETTEXLEVELPARAMETERIVPROC)(GLenum target, GLint level, GLenum pname, GLint *params); -typedef void(GLAD_API_PTR *PFNGLGETTEXPARAMETERIIVPROC)(GLenum target, GLenum pname, GLint *params); -typedef void(GLAD_API_PTR *PFNGLGETTEXPARAMETERIUIVPROC)(GLenum target, GLenum pname, GLuint *params); -typedef void(GLAD_API_PTR *PFNGLGETTEXPARAMETERFVPROC)(GLenum target, GLenum pname, GLfloat *params); -typedef void(GLAD_API_PTR *PFNGLGETTEXPARAMETERIVPROC)(GLenum target, GLenum pname, GLint *params); -typedef void(GLAD_API_PTR *PFNGLGETTEXTUREIMAGEPROC)(GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels); -typedef void(GLAD_API_PTR *PFNGLGETTEXTURELEVELPARAMETERFVPROC)(GLuint texture, GLint level, GLenum pname, GLfloat *params); -typedef void(GLAD_API_PTR *PFNGLGETTEXTURELEVELPARAMETERIVPROC)(GLuint texture, GLint level, GLenum pname, GLint *params); -typedef void(GLAD_API_PTR *PFNGLGETTEXTUREPARAMETERIIVPROC)(GLuint texture, GLenum pname, GLint *params); -typedef void(GLAD_API_PTR *PFNGLGETTEXTUREPARAMETERIUIVPROC)(GLuint texture, GLenum pname, GLuint *params); -typedef void(GLAD_API_PTR *PFNGLGETTEXTUREPARAMETERFVPROC)(GLuint texture, GLenum pname, GLfloat *params); -typedef void(GLAD_API_PTR *PFNGLGETTEXTUREPARAMETERIVPROC)(GLuint texture, GLenum pname, GLint *params); -typedef void(GLAD_API_PTR *PFNGLGETTEXTURESUBIMAGEPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, void *pixels); -typedef void(GLAD_API_PTR *PFNGLGETTRANSFORMFEEDBACKVARYINGPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -typedef void(GLAD_API_PTR *PFNGLGETTRANSFORMFEEDBACKI64_VPROC)(GLuint xfb, GLenum pname, GLuint index, GLint64 *param); -typedef void(GLAD_API_PTR *PFNGLGETTRANSFORMFEEDBACKI_VPROC)(GLuint xfb, GLenum pname, GLuint index, GLint *param); -typedef void(GLAD_API_PTR *PFNGLGETTRANSFORMFEEDBACKIVPROC)(GLuint xfb, GLenum pname, GLint *param); -typedef GLuint(GLAD_API_PTR *PFNGLGETUNIFORMBLOCKINDEXPROC)(GLuint program, const GLchar *uniformBlockName); -typedef void(GLAD_API_PTR *PFNGLGETUNIFORMINDICESPROC)(GLuint program, GLsizei uniformCount, const GLchar *const *uniformNames, GLuint *uniformIndices); -typedef GLint(GLAD_API_PTR *PFNGLGETUNIFORMLOCATIONPROC)(GLuint program, const GLchar *name); -typedef void(GLAD_API_PTR *PFNGLGETUNIFORMSUBROUTINEUIVPROC)(GLenum shadertype, GLint location, GLuint *params); -typedef void(GLAD_API_PTR *PFNGLGETUNIFORMDVPROC)(GLuint program, GLint location, GLdouble *params); -typedef void(GLAD_API_PTR *PFNGLGETUNIFORMFVPROC)(GLuint program, GLint location, GLfloat *params); -typedef void(GLAD_API_PTR *PFNGLGETUNIFORMIVPROC)(GLuint program, GLint location, GLint *params); -typedef void(GLAD_API_PTR *PFNGLGETUNIFORMUIVPROC)(GLuint program, GLint location, GLuint *params); -typedef void(GLAD_API_PTR *PFNGLGETVERTEXARRAYINDEXED64IVPROC)(GLuint vaobj, GLuint index, GLenum pname, GLint64 *param); -typedef void(GLAD_API_PTR *PFNGLGETVERTEXARRAYINDEXEDIVPROC)(GLuint vaobj, GLuint index, GLenum pname, GLint *param); -typedef void(GLAD_API_PTR *PFNGLGETVERTEXARRAYIVPROC)(GLuint vaobj, GLenum pname, GLint *param); -typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBIIVPROC)(GLuint index, GLenum pname, GLint *params); -typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBIUIVPROC)(GLuint index, GLenum pname, GLuint *params); -typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBLDVPROC)(GLuint index, GLenum pname, GLdouble *params); -typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBPOINTERVPROC)(GLuint index, GLenum pname, void **pointer); -typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBDVPROC)(GLuint index, GLenum pname, GLdouble *params); -typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBFVPROC)(GLuint index, GLenum pname, GLfloat *params); -typedef void(GLAD_API_PTR *PFNGLGETVERTEXATTRIBIVPROC)(GLuint index, GLenum pname, GLint *params); -typedef void(GLAD_API_PTR *PFNGLGETNCOLORTABLEPROC)(GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *table); -typedef void(GLAD_API_PTR *PFNGLGETNCOMPRESSEDTEXIMAGEPROC)(GLenum target, GLint lod, GLsizei bufSize, void *pixels); -typedef void(GLAD_API_PTR *PFNGLGETNCONVOLUTIONFILTERPROC)(GLenum target, GLenum format, GLenum type, GLsizei bufSize, void *image); -typedef void(GLAD_API_PTR *PFNGLGETNHISTOGRAMPROC)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values); -typedef void(GLAD_API_PTR *PFNGLGETNMAPDVPROC)(GLenum target, GLenum query, GLsizei bufSize, GLdouble *v); -typedef void(GLAD_API_PTR *PFNGLGETNMAPFVPROC)(GLenum target, GLenum query, GLsizei bufSize, GLfloat *v); -typedef void(GLAD_API_PTR *PFNGLGETNMAPIVPROC)(GLenum target, GLenum query, GLsizei bufSize, GLint *v); -typedef void(GLAD_API_PTR *PFNGLGETNMINMAXPROC)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void *values); -typedef void(GLAD_API_PTR *PFNGLGETNPIXELMAPFVPROC)(GLenum map, GLsizei bufSize, GLfloat *values); -typedef void(GLAD_API_PTR *PFNGLGETNPIXELMAPUIVPROC)(GLenum map, GLsizei bufSize, GLuint *values); -typedef void(GLAD_API_PTR *PFNGLGETNPIXELMAPUSVPROC)(GLenum map, GLsizei bufSize, GLushort *values); -typedef void(GLAD_API_PTR *PFNGLGETNPOLYGONSTIPPLEPROC)(GLsizei bufSize, GLubyte *pattern); -typedef void(GLAD_API_PTR *PFNGLGETNSEPARABLEFILTERPROC)(GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void *row, GLsizei columnBufSize, void *column, void *span); -typedef void(GLAD_API_PTR *PFNGLGETNTEXIMAGEPROC)(GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels); -typedef void(GLAD_API_PTR *PFNGLGETNUNIFORMDVPROC)(GLuint program, GLint location, GLsizei bufSize, GLdouble *params); -typedef void(GLAD_API_PTR *PFNGLGETNUNIFORMFVPROC)(GLuint program, GLint location, GLsizei bufSize, GLfloat *params); -typedef void(GLAD_API_PTR *PFNGLGETNUNIFORMIVPROC)(GLuint program, GLint location, GLsizei bufSize, GLint *params); -typedef void(GLAD_API_PTR *PFNGLGETNUNIFORMUIVPROC)(GLuint program, GLint location, GLsizei bufSize, GLuint *params); -typedef void(GLAD_API_PTR *PFNGLHINTPROC)(GLenum target, GLenum mode); -typedef void(GLAD_API_PTR *PFNGLINDEXMASKPROC)(GLuint mask); -typedef void(GLAD_API_PTR *PFNGLINDEXPOINTERPROC)(GLenum type, GLsizei stride, const void *pointer); -typedef void(GLAD_API_PTR *PFNGLINDEXDPROC)(GLdouble c); -typedef void(GLAD_API_PTR *PFNGLINDEXDVPROC)(const GLdouble *c); -typedef void(GLAD_API_PTR *PFNGLINDEXFPROC)(GLfloat c); -typedef void(GLAD_API_PTR *PFNGLINDEXFVPROC)(const GLfloat *c); -typedef void(GLAD_API_PTR *PFNGLINDEXIPROC)(GLint c); -typedef void(GLAD_API_PTR *PFNGLINDEXIVPROC)(const GLint *c); -typedef void(GLAD_API_PTR *PFNGLINDEXSPROC)(GLshort c); -typedef void(GLAD_API_PTR *PFNGLINDEXSVPROC)(const GLshort *c); -typedef void(GLAD_API_PTR *PFNGLINDEXUBPROC)(GLubyte c); -typedef void(GLAD_API_PTR *PFNGLINDEXUBVPROC)(const GLubyte *c); -typedef void(GLAD_API_PTR *PFNGLINITNAMESPROC)(void); -typedef void(GLAD_API_PTR *PFNGLINTERLEAVEDARRAYSPROC)(GLenum format, GLsizei stride, const void *pointer); -typedef void(GLAD_API_PTR *PFNGLINVALIDATEBUFFERDATAPROC)(GLuint buffer); -typedef void(GLAD_API_PTR *PFNGLINVALIDATEBUFFERSUBDATAPROC)(GLuint buffer, GLintptr offset, GLsizeiptr length); -typedef void(GLAD_API_PTR *PFNGLINVALIDATEFRAMEBUFFERPROC)(GLenum target, GLsizei numAttachments, const GLenum *attachments); -typedef void(GLAD_API_PTR *PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC)(GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments); -typedef void(GLAD_API_PTR *PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC)(GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void(GLAD_API_PTR *PFNGLINVALIDATESUBFRAMEBUFFERPROC)(GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void(GLAD_API_PTR *PFNGLINVALIDATETEXIMAGEPROC)(GLuint texture, GLint level); -typedef void(GLAD_API_PTR *PFNGLINVALIDATETEXSUBIMAGEPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth); -typedef GLboolean(GLAD_API_PTR *PFNGLISBUFFERPROC)(GLuint buffer); -typedef GLboolean(GLAD_API_PTR *PFNGLISENABLEDPROC)(GLenum cap); -typedef GLboolean(GLAD_API_PTR *PFNGLISENABLEDIPROC)(GLenum target, GLuint index); -typedef GLboolean(GLAD_API_PTR *PFNGLISFRAMEBUFFERPROC)(GLuint framebuffer); -typedef GLboolean(GLAD_API_PTR *PFNGLISLISTPROC)(GLuint list); -typedef GLboolean(GLAD_API_PTR *PFNGLISPROGRAMPROC)(GLuint program); -typedef GLboolean(GLAD_API_PTR *PFNGLISPROGRAMPIPELINEPROC)(GLuint pipeline); -typedef GLboolean(GLAD_API_PTR *PFNGLISQUERYPROC)(GLuint id); -typedef GLboolean(GLAD_API_PTR *PFNGLISRENDERBUFFERPROC)(GLuint renderbuffer); -typedef GLboolean(GLAD_API_PTR *PFNGLISSAMPLERPROC)(GLuint sampler); -typedef GLboolean(GLAD_API_PTR *PFNGLISSHADERPROC)(GLuint shader); -typedef GLboolean(GLAD_API_PTR *PFNGLISSYNCPROC)(GLsync sync); -typedef GLboolean(GLAD_API_PTR *PFNGLISTEXTUREPROC)(GLuint texture); -typedef GLboolean(GLAD_API_PTR *PFNGLISTRANSFORMFEEDBACKPROC)(GLuint id); -typedef GLboolean(GLAD_API_PTR *PFNGLISVERTEXARRAYPROC)(GLuint array); -typedef void(GLAD_API_PTR *PFNGLLIGHTMODELFPROC)(GLenum pname, GLfloat param); -typedef void(GLAD_API_PTR *PFNGLLIGHTMODELFVPROC)(GLenum pname, const GLfloat *params); -typedef void(GLAD_API_PTR *PFNGLLIGHTMODELIPROC)(GLenum pname, GLint param); -typedef void(GLAD_API_PTR *PFNGLLIGHTMODELIVPROC)(GLenum pname, const GLint *params); -typedef void(GLAD_API_PTR *PFNGLLIGHTFPROC)(GLenum light, GLenum pname, GLfloat param); -typedef void(GLAD_API_PTR *PFNGLLIGHTFVPROC)(GLenum light, GLenum pname, const GLfloat *params); -typedef void(GLAD_API_PTR *PFNGLLIGHTIPROC)(GLenum light, GLenum pname, GLint param); -typedef void(GLAD_API_PTR *PFNGLLIGHTIVPROC)(GLenum light, GLenum pname, const GLint *params); -typedef void(GLAD_API_PTR *PFNGLLINESTIPPLEPROC)(GLint factor, GLushort pattern); -typedef void(GLAD_API_PTR *PFNGLLINEWIDTHPROC)(GLfloat width); -typedef void(GLAD_API_PTR *PFNGLLINKPROGRAMPROC)(GLuint program); -typedef void(GLAD_API_PTR *PFNGLLISTBASEPROC)(GLuint base); -typedef void(GLAD_API_PTR *PFNGLLOADIDENTITYPROC)(void); -typedef void(GLAD_API_PTR *PFNGLLOADMATRIXDPROC)(const GLdouble *m); -typedef void(GLAD_API_PTR *PFNGLLOADMATRIXFPROC)(const GLfloat *m); -typedef void(GLAD_API_PTR *PFNGLLOADNAMEPROC)(GLuint name); -typedef void(GLAD_API_PTR *PFNGLLOADTRANSPOSEMATRIXDPROC)(const GLdouble *m); -typedef void(GLAD_API_PTR *PFNGLLOADTRANSPOSEMATRIXFPROC)(const GLfloat *m); -typedef void(GLAD_API_PTR *PFNGLLOGICOPPROC)(GLenum opcode); -typedef void(GLAD_API_PTR *PFNGLMAP1DPROC)(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); -typedef void(GLAD_API_PTR *PFNGLMAP1FPROC)(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); -typedef void(GLAD_API_PTR *PFNGLMAP2DPROC)(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); -typedef void(GLAD_API_PTR *PFNGLMAP2FPROC)(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); -typedef void *(GLAD_API_PTR *PFNGLMAPBUFFERPROC)(GLenum target, GLenum access); -typedef void *(GLAD_API_PTR *PFNGLMAPBUFFERRANGEPROC)(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -typedef void(GLAD_API_PTR *PFNGLMAPGRID1DPROC)(GLint un, GLdouble u1, GLdouble u2); -typedef void(GLAD_API_PTR *PFNGLMAPGRID1FPROC)(GLint un, GLfloat u1, GLfloat u2); -typedef void(GLAD_API_PTR *PFNGLMAPGRID2DPROC)(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2); -typedef void(GLAD_API_PTR *PFNGLMAPGRID2FPROC)(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2); -typedef void *(GLAD_API_PTR *PFNGLMAPNAMEDBUFFERPROC)(GLuint buffer, GLenum access); -typedef void *(GLAD_API_PTR *PFNGLMAPNAMEDBUFFERRANGEPROC)(GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access); -typedef void(GLAD_API_PTR *PFNGLMATERIALFPROC)(GLenum face, GLenum pname, GLfloat param); -typedef void(GLAD_API_PTR *PFNGLMATERIALFVPROC)(GLenum face, GLenum pname, const GLfloat *params); -typedef void(GLAD_API_PTR *PFNGLMATERIALIPROC)(GLenum face, GLenum pname, GLint param); -typedef void(GLAD_API_PTR *PFNGLMATERIALIVPROC)(GLenum face, GLenum pname, const GLint *params); -typedef void(GLAD_API_PTR *PFNGLMATRIXMODEPROC)(GLenum mode); -typedef void(GLAD_API_PTR *PFNGLMEMORYBARRIERPROC)(GLbitfield barriers); -typedef void(GLAD_API_PTR *PFNGLMEMORYBARRIERBYREGIONPROC)(GLbitfield barriers); -typedef void(GLAD_API_PTR *PFNGLMINSAMPLESHADINGPROC)(GLfloat value); -typedef void(GLAD_API_PTR *PFNGLMULTMATRIXDPROC)(const GLdouble *m); -typedef void(GLAD_API_PTR *PFNGLMULTMATRIXFPROC)(const GLfloat *m); -typedef void(GLAD_API_PTR *PFNGLMULTTRANSPOSEMATRIXDPROC)(const GLdouble *m); -typedef void(GLAD_API_PTR *PFNGLMULTTRANSPOSEMATRIXFPROC)(const GLfloat *m); -typedef void(GLAD_API_PTR *PFNGLMULTIDRAWARRAYSPROC)(GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount); -typedef void(GLAD_API_PTR *PFNGLMULTIDRAWARRAYSINDIRECTPROC)(GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride); -typedef void(GLAD_API_PTR *PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC)(GLenum mode, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); -typedef void(GLAD_API_PTR *PFNGLMULTIDRAWELEMENTSPROC)(GLenum mode, const GLsizei *count, GLenum type, const void *const *indices, GLsizei drawcount); -typedef void(GLAD_API_PTR *PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC)(GLenum mode, const GLsizei *count, GLenum type, const void *const *indices, GLsizei drawcount, const GLint *basevertex); -typedef void(GLAD_API_PTR *PFNGLMULTIDRAWELEMENTSINDIRECTPROC)(GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride); -typedef void(GLAD_API_PTR *PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC)(GLenum mode, GLenum type, const void *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride); -typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD1DPROC)(GLenum target, GLdouble s); -typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD1DVPROC)(GLenum target, const GLdouble *v); -typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD1FPROC)(GLenum target, GLfloat s); -typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD1FVPROC)(GLenum target, const GLfloat *v); -typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD1IPROC)(GLenum target, GLint s); -typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD1IVPROC)(GLenum target, const GLint *v); -typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD1SPROC)(GLenum target, GLshort s); -typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD1SVPROC)(GLenum target, const GLshort *v); -typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD2DPROC)(GLenum target, GLdouble s, GLdouble t); -typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD2DVPROC)(GLenum target, const GLdouble *v); -typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD2FPROC)(GLenum target, GLfloat s, GLfloat t); -typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD2FVPROC)(GLenum target, const GLfloat *v); -typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD2IPROC)(GLenum target, GLint s, GLint t); -typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD2IVPROC)(GLenum target, const GLint *v); -typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD2SPROC)(GLenum target, GLshort s, GLshort t); -typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD2SVPROC)(GLenum target, const GLshort *v); -typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD3DPROC)(GLenum target, GLdouble s, GLdouble t, GLdouble r); -typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD3DVPROC)(GLenum target, const GLdouble *v); -typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD3FPROC)(GLenum target, GLfloat s, GLfloat t, GLfloat r); -typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD3FVPROC)(GLenum target, const GLfloat *v); -typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD3IPROC)(GLenum target, GLint s, GLint t, GLint r); -typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD3IVPROC)(GLenum target, const GLint *v); -typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD3SPROC)(GLenum target, GLshort s, GLshort t, GLshort r); -typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD3SVPROC)(GLenum target, const GLshort *v); -typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD4DPROC)(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD4DVPROC)(GLenum target, const GLdouble *v); -typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD4FPROC)(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD4FVPROC)(GLenum target, const GLfloat *v); -typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD4IPROC)(GLenum target, GLint s, GLint t, GLint r, GLint q); -typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD4IVPROC)(GLenum target, const GLint *v); -typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD4SPROC)(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORD4SVPROC)(GLenum target, const GLshort *v); -typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORDP1UIPROC)(GLenum texture, GLenum type, GLuint coords); -typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORDP1UIVPROC)(GLenum texture, GLenum type, const GLuint *coords); -typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORDP2UIPROC)(GLenum texture, GLenum type, GLuint coords); -typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORDP2UIVPROC)(GLenum texture, GLenum type, const GLuint *coords); -typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORDP3UIPROC)(GLenum texture, GLenum type, GLuint coords); -typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORDP3UIVPROC)(GLenum texture, GLenum type, const GLuint *coords); -typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORDP4UIPROC)(GLenum texture, GLenum type, GLuint coords); -typedef void(GLAD_API_PTR *PFNGLMULTITEXCOORDP4UIVPROC)(GLenum texture, GLenum type, const GLuint *coords); -typedef void(GLAD_API_PTR *PFNGLNAMEDBUFFERDATAPROC)(GLuint buffer, GLsizeiptr size, const void *data, GLenum usage); -typedef void(GLAD_API_PTR *PFNGLNAMEDBUFFERSTORAGEPROC)(GLuint buffer, GLsizeiptr size, const void *data, GLbitfield flags); -typedef void(GLAD_API_PTR *PFNGLNAMEDBUFFERSUBDATAPROC)(GLuint buffer, GLintptr offset, GLsizeiptr size, const void *data); -typedef void(GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC)(GLuint framebuffer, GLenum buf); -typedef void(GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC)(GLuint framebuffer, GLsizei n, const GLenum *bufs); -typedef void(GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC)(GLuint framebuffer, GLenum pname, GLint param); -typedef void(GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC)(GLuint framebuffer, GLenum src); -typedef void(GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC)(GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void(GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERTEXTUREPROC)(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); -typedef void(GLAD_API_PTR *PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC)(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void(GLAD_API_PTR *PFNGLNAMEDRENDERBUFFERSTORAGEPROC)(GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height); -typedef void(GLAD_API_PTR *PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC)(GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void(GLAD_API_PTR *PFNGLNEWLISTPROC)(GLuint list, GLenum mode); -typedef void(GLAD_API_PTR *PFNGLNORMAL3BPROC)(GLbyte nx, GLbyte ny, GLbyte nz); -typedef void(GLAD_API_PTR *PFNGLNORMAL3BVPROC)(const GLbyte *v); -typedef void(GLAD_API_PTR *PFNGLNORMAL3DPROC)(GLdouble nx, GLdouble ny, GLdouble nz); -typedef void(GLAD_API_PTR *PFNGLNORMAL3DVPROC)(const GLdouble *v); -typedef void(GLAD_API_PTR *PFNGLNORMAL3FPROC)(GLfloat nx, GLfloat ny, GLfloat nz); -typedef void(GLAD_API_PTR *PFNGLNORMAL3FVPROC)(const GLfloat *v); -typedef void(GLAD_API_PTR *PFNGLNORMAL3IPROC)(GLint nx, GLint ny, GLint nz); -typedef void(GLAD_API_PTR *PFNGLNORMAL3IVPROC)(const GLint *v); -typedef void(GLAD_API_PTR *PFNGLNORMAL3SPROC)(GLshort nx, GLshort ny, GLshort nz); -typedef void(GLAD_API_PTR *PFNGLNORMAL3SVPROC)(const GLshort *v); -typedef void(GLAD_API_PTR *PFNGLNORMALP3UIPROC)(GLenum type, GLuint coords); -typedef void(GLAD_API_PTR *PFNGLNORMALP3UIVPROC)(GLenum type, const GLuint *coords); -typedef void(GLAD_API_PTR *PFNGLNORMALPOINTERPROC)(GLenum type, GLsizei stride, const void *pointer); -typedef void(GLAD_API_PTR *PFNGLOBJECTLABELPROC)(GLenum identifier, GLuint name, GLsizei length, const GLchar *label); -typedef void(GLAD_API_PTR *PFNGLOBJECTPTRLABELPROC)(const void *ptr, GLsizei length, const GLchar *label); -typedef void(GLAD_API_PTR *PFNGLORTHOPROC)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -typedef void(GLAD_API_PTR *PFNGLPASSTHROUGHPROC)(GLfloat token); -typedef void(GLAD_API_PTR *PFNGLPATCHPARAMETERFVPROC)(GLenum pname, const GLfloat *values); -typedef void(GLAD_API_PTR *PFNGLPATCHPARAMETERIPROC)(GLenum pname, GLint value); -typedef void(GLAD_API_PTR *PFNGLPAUSETRANSFORMFEEDBACKPROC)(void); -typedef void(GLAD_API_PTR *PFNGLPIXELMAPFVPROC)(GLenum map, GLsizei mapsize, const GLfloat *values); -typedef void(GLAD_API_PTR *PFNGLPIXELMAPUIVPROC)(GLenum map, GLsizei mapsize, const GLuint *values); -typedef void(GLAD_API_PTR *PFNGLPIXELMAPUSVPROC)(GLenum map, GLsizei mapsize, const GLushort *values); -typedef void(GLAD_API_PTR *PFNGLPIXELSTOREFPROC)(GLenum pname, GLfloat param); -typedef void(GLAD_API_PTR *PFNGLPIXELSTOREIPROC)(GLenum pname, GLint param); -typedef void(GLAD_API_PTR *PFNGLPIXELTRANSFERFPROC)(GLenum pname, GLfloat param); -typedef void(GLAD_API_PTR *PFNGLPIXELTRANSFERIPROC)(GLenum pname, GLint param); -typedef void(GLAD_API_PTR *PFNGLPIXELZOOMPROC)(GLfloat xfactor, GLfloat yfactor); -typedef void(GLAD_API_PTR *PFNGLPOINTPARAMETERFPROC)(GLenum pname, GLfloat param); -typedef void(GLAD_API_PTR *PFNGLPOINTPARAMETERFVPROC)(GLenum pname, const GLfloat *params); -typedef void(GLAD_API_PTR *PFNGLPOINTPARAMETERIPROC)(GLenum pname, GLint param); -typedef void(GLAD_API_PTR *PFNGLPOINTPARAMETERIVPROC)(GLenum pname, const GLint *params); -typedef void(GLAD_API_PTR *PFNGLPOINTSIZEPROC)(GLfloat size); -typedef void(GLAD_API_PTR *PFNGLPOLYGONMODEPROC)(GLenum face, GLenum mode); -typedef void(GLAD_API_PTR *PFNGLPOLYGONOFFSETPROC)(GLfloat factor, GLfloat units); -typedef void(GLAD_API_PTR *PFNGLPOLYGONOFFSETCLAMPPROC)(GLfloat factor, GLfloat units, GLfloat clamp); -typedef void(GLAD_API_PTR *PFNGLPOLYGONSTIPPLEPROC)(const GLubyte *mask); -typedef void(GLAD_API_PTR *PFNGLPOPATTRIBPROC)(void); -typedef void(GLAD_API_PTR *PFNGLPOPCLIENTATTRIBPROC)(void); -typedef void(GLAD_API_PTR *PFNGLPOPDEBUGGROUPPROC)(void); -typedef void(GLAD_API_PTR *PFNGLPOPMATRIXPROC)(void); -typedef void(GLAD_API_PTR *PFNGLPOPNAMEPROC)(void); -typedef void(GLAD_API_PTR *PFNGLPRIMITIVERESTARTINDEXPROC)(GLuint index); -typedef void(GLAD_API_PTR *PFNGLPRIORITIZETEXTURESPROC)(GLsizei n, const GLuint *textures, const GLfloat *priorities); -typedef void(GLAD_API_PTR *PFNGLPROGRAMBINARYPROC)(GLuint program, GLenum binaryFormat, const void *binary, GLsizei length); -typedef void(GLAD_API_PTR *PFNGLPROGRAMPARAMETERIPROC)(GLuint program, GLenum pname, GLint value); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1DPROC)(GLuint program, GLint location, GLdouble v0); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1DVPROC)(GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1FPROC)(GLuint program, GLint location, GLfloat v0); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1FVPROC)(GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1IPROC)(GLuint program, GLint location, GLint v0); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1IVPROC)(GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1UIPROC)(GLuint program, GLint location, GLuint v0); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM1UIVPROC)(GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2DPROC)(GLuint program, GLint location, GLdouble v0, GLdouble v1); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2DVPROC)(GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2FPROC)(GLuint program, GLint location, GLfloat v0, GLfloat v1); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2FVPROC)(GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2IPROC)(GLuint program, GLint location, GLint v0, GLint v1); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2IVPROC)(GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2UIPROC)(GLuint program, GLint location, GLuint v0, GLuint v1); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM2UIVPROC)(GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3DPROC)(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3DVPROC)(GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3FPROC)(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3FVPROC)(GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3IPROC)(GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3IVPROC)(GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3UIPROC)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM3UIVPROC)(GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4DPROC)(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4DVPROC)(GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4FPROC)(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4FVPROC)(GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4IPROC)(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4IVPROC)(GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4UIPROC)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORM4UIVPROC)(GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX2DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX2FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX3DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX3FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX4DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX4FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(GLAD_API_PTR *PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(GLAD_API_PTR *PFNGLPROVOKINGVERTEXPROC)(GLenum mode); -typedef void(GLAD_API_PTR *PFNGLPUSHATTRIBPROC)(GLbitfield mask); -typedef void(GLAD_API_PTR *PFNGLPUSHCLIENTATTRIBPROC)(GLbitfield mask); -typedef void(GLAD_API_PTR *PFNGLPUSHDEBUGGROUPPROC)(GLenum source, GLuint id, GLsizei length, const GLchar *message); -typedef void(GLAD_API_PTR *PFNGLPUSHMATRIXPROC)(void); -typedef void(GLAD_API_PTR *PFNGLPUSHNAMEPROC)(GLuint name); -typedef void(GLAD_API_PTR *PFNGLQUERYCOUNTERPROC)(GLuint id, GLenum target); -typedef void(GLAD_API_PTR *PFNGLRASTERPOS2DPROC)(GLdouble x, GLdouble y); -typedef void(GLAD_API_PTR *PFNGLRASTERPOS2DVPROC)(const GLdouble *v); -typedef void(GLAD_API_PTR *PFNGLRASTERPOS2FPROC)(GLfloat x, GLfloat y); -typedef void(GLAD_API_PTR *PFNGLRASTERPOS2FVPROC)(const GLfloat *v); -typedef void(GLAD_API_PTR *PFNGLRASTERPOS2IPROC)(GLint x, GLint y); -typedef void(GLAD_API_PTR *PFNGLRASTERPOS2IVPROC)(const GLint *v); -typedef void(GLAD_API_PTR *PFNGLRASTERPOS2SPROC)(GLshort x, GLshort y); -typedef void(GLAD_API_PTR *PFNGLRASTERPOS2SVPROC)(const GLshort *v); -typedef void(GLAD_API_PTR *PFNGLRASTERPOS3DPROC)(GLdouble x, GLdouble y, GLdouble z); -typedef void(GLAD_API_PTR *PFNGLRASTERPOS3DVPROC)(const GLdouble *v); -typedef void(GLAD_API_PTR *PFNGLRASTERPOS3FPROC)(GLfloat x, GLfloat y, GLfloat z); -typedef void(GLAD_API_PTR *PFNGLRASTERPOS3FVPROC)(const GLfloat *v); -typedef void(GLAD_API_PTR *PFNGLRASTERPOS3IPROC)(GLint x, GLint y, GLint z); -typedef void(GLAD_API_PTR *PFNGLRASTERPOS3IVPROC)(const GLint *v); -typedef void(GLAD_API_PTR *PFNGLRASTERPOS3SPROC)(GLshort x, GLshort y, GLshort z); -typedef void(GLAD_API_PTR *PFNGLRASTERPOS3SVPROC)(const GLshort *v); -typedef void(GLAD_API_PTR *PFNGLRASTERPOS4DPROC)(GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void(GLAD_API_PTR *PFNGLRASTERPOS4DVPROC)(const GLdouble *v); -typedef void(GLAD_API_PTR *PFNGLRASTERPOS4FPROC)(GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void(GLAD_API_PTR *PFNGLRASTERPOS4FVPROC)(const GLfloat *v); -typedef void(GLAD_API_PTR *PFNGLRASTERPOS4IPROC)(GLint x, GLint y, GLint z, GLint w); -typedef void(GLAD_API_PTR *PFNGLRASTERPOS4IVPROC)(const GLint *v); -typedef void(GLAD_API_PTR *PFNGLRASTERPOS4SPROC)(GLshort x, GLshort y, GLshort z, GLshort w); -typedef void(GLAD_API_PTR *PFNGLRASTERPOS4SVPROC)(const GLshort *v); -typedef void(GLAD_API_PTR *PFNGLREADBUFFERPROC)(GLenum src); -typedef void(GLAD_API_PTR *PFNGLREADPIXELSPROC)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels); -typedef void(GLAD_API_PTR *PFNGLREADNPIXELSPROC)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); -typedef void(GLAD_API_PTR *PFNGLRECTDPROC)(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2); -typedef void(GLAD_API_PTR *PFNGLRECTDVPROC)(const GLdouble *v1, const GLdouble *v2); -typedef void(GLAD_API_PTR *PFNGLRECTFPROC)(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2); -typedef void(GLAD_API_PTR *PFNGLRECTFVPROC)(const GLfloat *v1, const GLfloat *v2); -typedef void(GLAD_API_PTR *PFNGLRECTIPROC)(GLint x1, GLint y1, GLint x2, GLint y2); -typedef void(GLAD_API_PTR *PFNGLRECTIVPROC)(const GLint *v1, const GLint *v2); -typedef void(GLAD_API_PTR *PFNGLRECTSPROC)(GLshort x1, GLshort y1, GLshort x2, GLshort y2); -typedef void(GLAD_API_PTR *PFNGLRECTSVPROC)(const GLshort *v1, const GLshort *v2); -typedef void(GLAD_API_PTR *PFNGLRELEASESHADERCOMPILERPROC)(void); -typedef GLint(GLAD_API_PTR *PFNGLRENDERMODEPROC)(GLenum mode); -typedef void(GLAD_API_PTR *PFNGLRENDERBUFFERSTORAGEPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -typedef void(GLAD_API_PTR *PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void(GLAD_API_PTR *PFNGLRESUMETRANSFORMFEEDBACKPROC)(void); -typedef void(GLAD_API_PTR *PFNGLROTATEDPROC)(GLdouble angle, GLdouble x, GLdouble y, GLdouble z); -typedef void(GLAD_API_PTR *PFNGLROTATEFPROC)(GLfloat angle, GLfloat x, GLfloat y, GLfloat z); -typedef void(GLAD_API_PTR *PFNGLSAMPLECOVERAGEPROC)(GLfloat value, GLboolean invert); -typedef void(GLAD_API_PTR *PFNGLSAMPLEMASKIPROC)(GLuint maskNumber, GLbitfield mask); -typedef void(GLAD_API_PTR *PFNGLSAMPLERPARAMETERIIVPROC)(GLuint sampler, GLenum pname, const GLint *param); -typedef void(GLAD_API_PTR *PFNGLSAMPLERPARAMETERIUIVPROC)(GLuint sampler, GLenum pname, const GLuint *param); -typedef void(GLAD_API_PTR *PFNGLSAMPLERPARAMETERFPROC)(GLuint sampler, GLenum pname, GLfloat param); -typedef void(GLAD_API_PTR *PFNGLSAMPLERPARAMETERFVPROC)(GLuint sampler, GLenum pname, const GLfloat *param); -typedef void(GLAD_API_PTR *PFNGLSAMPLERPARAMETERIPROC)(GLuint sampler, GLenum pname, GLint param); -typedef void(GLAD_API_PTR *PFNGLSAMPLERPARAMETERIVPROC)(GLuint sampler, GLenum pname, const GLint *param); -typedef void(GLAD_API_PTR *PFNGLSCALEDPROC)(GLdouble x, GLdouble y, GLdouble z); -typedef void(GLAD_API_PTR *PFNGLSCALEFPROC)(GLfloat x, GLfloat y, GLfloat z); -typedef void(GLAD_API_PTR *PFNGLSCISSORPROC)(GLint x, GLint y, GLsizei width, GLsizei height); -typedef void(GLAD_API_PTR *PFNGLSCISSORARRAYVPROC)(GLuint first, GLsizei count, const GLint *v); -typedef void(GLAD_API_PTR *PFNGLSCISSORINDEXEDPROC)(GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); -typedef void(GLAD_API_PTR *PFNGLSCISSORINDEXEDVPROC)(GLuint index, const GLint *v); -typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3BPROC)(GLbyte red, GLbyte green, GLbyte blue); -typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3BVPROC)(const GLbyte *v); -typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3DPROC)(GLdouble red, GLdouble green, GLdouble blue); -typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3DVPROC)(const GLdouble *v); -typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3FPROC)(GLfloat red, GLfloat green, GLfloat blue); -typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3FVPROC)(const GLfloat *v); -typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3IPROC)(GLint red, GLint green, GLint blue); -typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3IVPROC)(const GLint *v); -typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3SPROC)(GLshort red, GLshort green, GLshort blue); -typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3SVPROC)(const GLshort *v); -typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3UBPROC)(GLubyte red, GLubyte green, GLubyte blue); -typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3UBVPROC)(const GLubyte *v); -typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3UIPROC)(GLuint red, GLuint green, GLuint blue); -typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3UIVPROC)(const GLuint *v); -typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3USPROC)(GLushort red, GLushort green, GLushort blue); -typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLOR3USVPROC)(const GLushort *v); -typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLORP3UIPROC)(GLenum type, GLuint color); -typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLORP3UIVPROC)(GLenum type, const GLuint *color); -typedef void(GLAD_API_PTR *PFNGLSECONDARYCOLORPOINTERPROC)(GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void(GLAD_API_PTR *PFNGLSELECTBUFFERPROC)(GLsizei size, GLuint *buffer); -typedef void(GLAD_API_PTR *PFNGLSHADEMODELPROC)(GLenum mode); -typedef void(GLAD_API_PTR *PFNGLSHADERBINARYPROC)(GLsizei count, const GLuint *shaders, GLenum binaryFormat, const void *binary, GLsizei length); -typedef void(GLAD_API_PTR *PFNGLSHADERSOURCEPROC)(GLuint shader, GLsizei count, const GLchar *const *string, const GLint *length); -typedef void(GLAD_API_PTR *PFNGLSHADERSTORAGEBLOCKBINDINGPROC)(GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding); -typedef void(GLAD_API_PTR *PFNGLSPECIALIZESHADERPROC)(GLuint shader, const GLchar *pEntryPoint, GLuint numSpecializationConstants, const GLuint *pConstantIndex, const GLuint *pConstantValue); -typedef void(GLAD_API_PTR *PFNGLSTENCILFUNCPROC)(GLenum func, GLint ref, GLuint mask); -typedef void(GLAD_API_PTR *PFNGLSTENCILFUNCSEPARATEPROC)(GLenum face, GLenum func, GLint ref, GLuint mask); -typedef void(GLAD_API_PTR *PFNGLSTENCILMASKPROC)(GLuint mask); -typedef void(GLAD_API_PTR *PFNGLSTENCILMASKSEPARATEPROC)(GLenum face, GLuint mask); -typedef void(GLAD_API_PTR *PFNGLSTENCILOPPROC)(GLenum fail, GLenum zfail, GLenum zpass); -typedef void(GLAD_API_PTR *PFNGLSTENCILOPSEPARATEPROC)(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -typedef void(GLAD_API_PTR *PFNGLTEXBUFFERPROC)(GLenum target, GLenum internalformat, GLuint buffer); -typedef void(GLAD_API_PTR *PFNGLTEXBUFFERRANGEPROC)(GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void(GLAD_API_PTR *PFNGLTEXCOORD1DPROC)(GLdouble s); -typedef void(GLAD_API_PTR *PFNGLTEXCOORD1DVPROC)(const GLdouble *v); -typedef void(GLAD_API_PTR *PFNGLTEXCOORD1FPROC)(GLfloat s); -typedef void(GLAD_API_PTR *PFNGLTEXCOORD1FVPROC)(const GLfloat *v); -typedef void(GLAD_API_PTR *PFNGLTEXCOORD1IPROC)(GLint s); -typedef void(GLAD_API_PTR *PFNGLTEXCOORD1IVPROC)(const GLint *v); -typedef void(GLAD_API_PTR *PFNGLTEXCOORD1SPROC)(GLshort s); -typedef void(GLAD_API_PTR *PFNGLTEXCOORD1SVPROC)(const GLshort *v); -typedef void(GLAD_API_PTR *PFNGLTEXCOORD2DPROC)(GLdouble s, GLdouble t); -typedef void(GLAD_API_PTR *PFNGLTEXCOORD2DVPROC)(const GLdouble *v); -typedef void(GLAD_API_PTR *PFNGLTEXCOORD2FPROC)(GLfloat s, GLfloat t); -typedef void(GLAD_API_PTR *PFNGLTEXCOORD2FVPROC)(const GLfloat *v); -typedef void(GLAD_API_PTR *PFNGLTEXCOORD2IPROC)(GLint s, GLint t); -typedef void(GLAD_API_PTR *PFNGLTEXCOORD2IVPROC)(const GLint *v); -typedef void(GLAD_API_PTR *PFNGLTEXCOORD2SPROC)(GLshort s, GLshort t); -typedef void(GLAD_API_PTR *PFNGLTEXCOORD2SVPROC)(const GLshort *v); -typedef void(GLAD_API_PTR *PFNGLTEXCOORD3DPROC)(GLdouble s, GLdouble t, GLdouble r); -typedef void(GLAD_API_PTR *PFNGLTEXCOORD3DVPROC)(const GLdouble *v); -typedef void(GLAD_API_PTR *PFNGLTEXCOORD3FPROC)(GLfloat s, GLfloat t, GLfloat r); -typedef void(GLAD_API_PTR *PFNGLTEXCOORD3FVPROC)(const GLfloat *v); -typedef void(GLAD_API_PTR *PFNGLTEXCOORD3IPROC)(GLint s, GLint t, GLint r); -typedef void(GLAD_API_PTR *PFNGLTEXCOORD3IVPROC)(const GLint *v); -typedef void(GLAD_API_PTR *PFNGLTEXCOORD3SPROC)(GLshort s, GLshort t, GLshort r); -typedef void(GLAD_API_PTR *PFNGLTEXCOORD3SVPROC)(const GLshort *v); -typedef void(GLAD_API_PTR *PFNGLTEXCOORD4DPROC)(GLdouble s, GLdouble t, GLdouble r, GLdouble q); -typedef void(GLAD_API_PTR *PFNGLTEXCOORD4DVPROC)(const GLdouble *v); -typedef void(GLAD_API_PTR *PFNGLTEXCOORD4FPROC)(GLfloat s, GLfloat t, GLfloat r, GLfloat q); -typedef void(GLAD_API_PTR *PFNGLTEXCOORD4FVPROC)(const GLfloat *v); -typedef void(GLAD_API_PTR *PFNGLTEXCOORD4IPROC)(GLint s, GLint t, GLint r, GLint q); -typedef void(GLAD_API_PTR *PFNGLTEXCOORD4IVPROC)(const GLint *v); -typedef void(GLAD_API_PTR *PFNGLTEXCOORD4SPROC)(GLshort s, GLshort t, GLshort r, GLshort q); -typedef void(GLAD_API_PTR *PFNGLTEXCOORD4SVPROC)(const GLshort *v); -typedef void(GLAD_API_PTR *PFNGLTEXCOORDP1UIPROC)(GLenum type, GLuint coords); -typedef void(GLAD_API_PTR *PFNGLTEXCOORDP1UIVPROC)(GLenum type, const GLuint *coords); -typedef void(GLAD_API_PTR *PFNGLTEXCOORDP2UIPROC)(GLenum type, GLuint coords); -typedef void(GLAD_API_PTR *PFNGLTEXCOORDP2UIVPROC)(GLenum type, const GLuint *coords); -typedef void(GLAD_API_PTR *PFNGLTEXCOORDP3UIPROC)(GLenum type, GLuint coords); -typedef void(GLAD_API_PTR *PFNGLTEXCOORDP3UIVPROC)(GLenum type, const GLuint *coords); -typedef void(GLAD_API_PTR *PFNGLTEXCOORDP4UIPROC)(GLenum type, GLuint coords); -typedef void(GLAD_API_PTR *PFNGLTEXCOORDP4UIVPROC)(GLenum type, const GLuint *coords); -typedef void(GLAD_API_PTR *PFNGLTEXCOORDPOINTERPROC)(GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void(GLAD_API_PTR *PFNGLTEXENVFPROC)(GLenum target, GLenum pname, GLfloat param); -typedef void(GLAD_API_PTR *PFNGLTEXENVFVPROC)(GLenum target, GLenum pname, const GLfloat *params); -typedef void(GLAD_API_PTR *PFNGLTEXENVIPROC)(GLenum target, GLenum pname, GLint param); -typedef void(GLAD_API_PTR *PFNGLTEXENVIVPROC)(GLenum target, GLenum pname, const GLint *params); -typedef void(GLAD_API_PTR *PFNGLTEXGENDPROC)(GLenum coord, GLenum pname, GLdouble param); -typedef void(GLAD_API_PTR *PFNGLTEXGENDVPROC)(GLenum coord, GLenum pname, const GLdouble *params); -typedef void(GLAD_API_PTR *PFNGLTEXGENFPROC)(GLenum coord, GLenum pname, GLfloat param); -typedef void(GLAD_API_PTR *PFNGLTEXGENFVPROC)(GLenum coord, GLenum pname, const GLfloat *params); -typedef void(GLAD_API_PTR *PFNGLTEXGENIPROC)(GLenum coord, GLenum pname, GLint param); -typedef void(GLAD_API_PTR *PFNGLTEXGENIVPROC)(GLenum coord, GLenum pname, const GLint *params); -typedef void(GLAD_API_PTR *PFNGLTEXIMAGE1DPROC)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void(GLAD_API_PTR *PFNGLTEXIMAGE2DPROC)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void(GLAD_API_PTR *PFNGLTEXIMAGE2DMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -typedef void(GLAD_API_PTR *PFNGLTEXIMAGE3DPROC)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels); -typedef void(GLAD_API_PTR *PFNGLTEXIMAGE3DMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -typedef void(GLAD_API_PTR *PFNGLTEXPARAMETERIIVPROC)(GLenum target, GLenum pname, const GLint *params); -typedef void(GLAD_API_PTR *PFNGLTEXPARAMETERIUIVPROC)(GLenum target, GLenum pname, const GLuint *params); -typedef void(GLAD_API_PTR *PFNGLTEXPARAMETERFPROC)(GLenum target, GLenum pname, GLfloat param); -typedef void(GLAD_API_PTR *PFNGLTEXPARAMETERFVPROC)(GLenum target, GLenum pname, const GLfloat *params); -typedef void(GLAD_API_PTR *PFNGLTEXPARAMETERIPROC)(GLenum target, GLenum pname, GLint param); -typedef void(GLAD_API_PTR *PFNGLTEXPARAMETERIVPROC)(GLenum target, GLenum pname, const GLint *params); -typedef void(GLAD_API_PTR *PFNGLTEXSTORAGE1DPROC)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -typedef void(GLAD_API_PTR *PFNGLTEXSTORAGE2DPROC)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void(GLAD_API_PTR *PFNGLTEXSTORAGE2DMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -typedef void(GLAD_API_PTR *PFNGLTEXSTORAGE3DPROC)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -typedef void(GLAD_API_PTR *PFNGLTEXSTORAGE3DMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -typedef void(GLAD_API_PTR *PFNGLTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); -typedef void(GLAD_API_PTR *PFNGLTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -typedef void(GLAD_API_PTR *PFNGLTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -typedef void(GLAD_API_PTR *PFNGLTEXTUREBARRIERPROC)(void); -typedef void(GLAD_API_PTR *PFNGLTEXTUREBUFFERPROC)(GLuint texture, GLenum internalformat, GLuint buffer); -typedef void(GLAD_API_PTR *PFNGLTEXTUREBUFFERRANGEPROC)(GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void(GLAD_API_PTR *PFNGLTEXTUREPARAMETERIIVPROC)(GLuint texture, GLenum pname, const GLint *params); -typedef void(GLAD_API_PTR *PFNGLTEXTUREPARAMETERIUIVPROC)(GLuint texture, GLenum pname, const GLuint *params); -typedef void(GLAD_API_PTR *PFNGLTEXTUREPARAMETERFPROC)(GLuint texture, GLenum pname, GLfloat param); -typedef void(GLAD_API_PTR *PFNGLTEXTUREPARAMETERFVPROC)(GLuint texture, GLenum pname, const GLfloat *param); -typedef void(GLAD_API_PTR *PFNGLTEXTUREPARAMETERIPROC)(GLuint texture, GLenum pname, GLint param); -typedef void(GLAD_API_PTR *PFNGLTEXTUREPARAMETERIVPROC)(GLuint texture, GLenum pname, const GLint *param); -typedef void(GLAD_API_PTR *PFNGLTEXTURESTORAGE1DPROC)(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width); -typedef void(GLAD_API_PTR *PFNGLTEXTURESTORAGE2DPROC)(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void(GLAD_API_PTR *PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC)(GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -typedef void(GLAD_API_PTR *PFNGLTEXTURESTORAGE3DPROC)(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -typedef void(GLAD_API_PTR *PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC)(GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -typedef void(GLAD_API_PTR *PFNGLTEXTURESUBIMAGE1DPROC)(GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels); -typedef void(GLAD_API_PTR *PFNGLTEXTURESUBIMAGE2DPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels); -typedef void(GLAD_API_PTR *PFNGLTEXTURESUBIMAGE3DPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels); -typedef void(GLAD_API_PTR *PFNGLTEXTUREVIEWPROC)(GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers); -typedef void(GLAD_API_PTR *PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC)(GLuint xfb, GLuint index, GLuint buffer); -typedef void(GLAD_API_PTR *PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC)(GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void(GLAD_API_PTR *PFNGLTRANSFORMFEEDBACKVARYINGSPROC)(GLuint program, GLsizei count, const GLchar *const *varyings, GLenum bufferMode); -typedef void(GLAD_API_PTR *PFNGLTRANSLATEDPROC)(GLdouble x, GLdouble y, GLdouble z); -typedef void(GLAD_API_PTR *PFNGLTRANSLATEFPROC)(GLfloat x, GLfloat y, GLfloat z); -typedef void(GLAD_API_PTR *PFNGLUNIFORM1DPROC)(GLint location, GLdouble x); -typedef void(GLAD_API_PTR *PFNGLUNIFORM1DVPROC)(GLint location, GLsizei count, const GLdouble *value); -typedef void(GLAD_API_PTR *PFNGLUNIFORM1FPROC)(GLint location, GLfloat v0); -typedef void(GLAD_API_PTR *PFNGLUNIFORM1FVPROC)(GLint location, GLsizei count, const GLfloat *value); -typedef void(GLAD_API_PTR *PFNGLUNIFORM1IPROC)(GLint location, GLint v0); -typedef void(GLAD_API_PTR *PFNGLUNIFORM1IVPROC)(GLint location, GLsizei count, const GLint *value); -typedef void(GLAD_API_PTR *PFNGLUNIFORM1UIPROC)(GLint location, GLuint v0); -typedef void(GLAD_API_PTR *PFNGLUNIFORM1UIVPROC)(GLint location, GLsizei count, const GLuint *value); -typedef void(GLAD_API_PTR *PFNGLUNIFORM2DPROC)(GLint location, GLdouble x, GLdouble y); -typedef void(GLAD_API_PTR *PFNGLUNIFORM2DVPROC)(GLint location, GLsizei count, const GLdouble *value); -typedef void(GLAD_API_PTR *PFNGLUNIFORM2FPROC)(GLint location, GLfloat v0, GLfloat v1); -typedef void(GLAD_API_PTR *PFNGLUNIFORM2FVPROC)(GLint location, GLsizei count, const GLfloat *value); -typedef void(GLAD_API_PTR *PFNGLUNIFORM2IPROC)(GLint location, GLint v0, GLint v1); -typedef void(GLAD_API_PTR *PFNGLUNIFORM2IVPROC)(GLint location, GLsizei count, const GLint *value); -typedef void(GLAD_API_PTR *PFNGLUNIFORM2UIPROC)(GLint location, GLuint v0, GLuint v1); -typedef void(GLAD_API_PTR *PFNGLUNIFORM2UIVPROC)(GLint location, GLsizei count, const GLuint *value); -typedef void(GLAD_API_PTR *PFNGLUNIFORM3DPROC)(GLint location, GLdouble x, GLdouble y, GLdouble z); -typedef void(GLAD_API_PTR *PFNGLUNIFORM3DVPROC)(GLint location, GLsizei count, const GLdouble *value); -typedef void(GLAD_API_PTR *PFNGLUNIFORM3FPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void(GLAD_API_PTR *PFNGLUNIFORM3FVPROC)(GLint location, GLsizei count, const GLfloat *value); -typedef void(GLAD_API_PTR *PFNGLUNIFORM3IPROC)(GLint location, GLint v0, GLint v1, GLint v2); -typedef void(GLAD_API_PTR *PFNGLUNIFORM3IVPROC)(GLint location, GLsizei count, const GLint *value); -typedef void(GLAD_API_PTR *PFNGLUNIFORM3UIPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void(GLAD_API_PTR *PFNGLUNIFORM3UIVPROC)(GLint location, GLsizei count, const GLuint *value); -typedef void(GLAD_API_PTR *PFNGLUNIFORM4DPROC)(GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void(GLAD_API_PTR *PFNGLUNIFORM4DVPROC)(GLint location, GLsizei count, const GLdouble *value); -typedef void(GLAD_API_PTR *PFNGLUNIFORM4FPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void(GLAD_API_PTR *PFNGLUNIFORM4FVPROC)(GLint location, GLsizei count, const GLfloat *value); -typedef void(GLAD_API_PTR *PFNGLUNIFORM4IPROC)(GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void(GLAD_API_PTR *PFNGLUNIFORM4IVPROC)(GLint location, GLsizei count, const GLint *value); -typedef void(GLAD_API_PTR *PFNGLUNIFORM4UIPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void(GLAD_API_PTR *PFNGLUNIFORM4UIVPROC)(GLint location, GLsizei count, const GLuint *value); -typedef void(GLAD_API_PTR *PFNGLUNIFORMBLOCKBINDINGPROC)(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); -typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX2DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX2FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX2X3DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX2X3FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX2X4DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX2X4FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX3DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX3FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX3X2DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX3X2FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX3X4DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX3X4FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX4DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX4FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX4X2DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX4X2FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX4X3DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void(GLAD_API_PTR *PFNGLUNIFORMMATRIX4X3FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void(GLAD_API_PTR *PFNGLUNIFORMSUBROUTINESUIVPROC)(GLenum shadertype, GLsizei count, const GLuint *indices); -typedef GLboolean(GLAD_API_PTR *PFNGLUNMAPBUFFERPROC)(GLenum target); -typedef GLboolean(GLAD_API_PTR *PFNGLUNMAPNAMEDBUFFERPROC)(GLuint buffer); -typedef void(GLAD_API_PTR *PFNGLUSEPROGRAMPROC)(GLuint program); -typedef void(GLAD_API_PTR *PFNGLUSEPROGRAMSTAGESPROC)(GLuint pipeline, GLbitfield stages, GLuint program); -typedef void(GLAD_API_PTR *PFNGLVALIDATEPROGRAMPROC)(GLuint program); -typedef void(GLAD_API_PTR *PFNGLVALIDATEPROGRAMPIPELINEPROC)(GLuint pipeline); -typedef void(GLAD_API_PTR *PFNGLVERTEX2DPROC)(GLdouble x, GLdouble y); -typedef void(GLAD_API_PTR *PFNGLVERTEX2DVPROC)(const GLdouble *v); -typedef void(GLAD_API_PTR *PFNGLVERTEX2FPROC)(GLfloat x, GLfloat y); -typedef void(GLAD_API_PTR *PFNGLVERTEX2FVPROC)(const GLfloat *v); -typedef void(GLAD_API_PTR *PFNGLVERTEX2IPROC)(GLint x, GLint y); -typedef void(GLAD_API_PTR *PFNGLVERTEX2IVPROC)(const GLint *v); -typedef void(GLAD_API_PTR *PFNGLVERTEX2SPROC)(GLshort x, GLshort y); -typedef void(GLAD_API_PTR *PFNGLVERTEX2SVPROC)(const GLshort *v); -typedef void(GLAD_API_PTR *PFNGLVERTEX3DPROC)(GLdouble x, GLdouble y, GLdouble z); -typedef void(GLAD_API_PTR *PFNGLVERTEX3DVPROC)(const GLdouble *v); -typedef void(GLAD_API_PTR *PFNGLVERTEX3FPROC)(GLfloat x, GLfloat y, GLfloat z); -typedef void(GLAD_API_PTR *PFNGLVERTEX3FVPROC)(const GLfloat *v); -typedef void(GLAD_API_PTR *PFNGLVERTEX3IPROC)(GLint x, GLint y, GLint z); -typedef void(GLAD_API_PTR *PFNGLVERTEX3IVPROC)(const GLint *v); -typedef void(GLAD_API_PTR *PFNGLVERTEX3SPROC)(GLshort x, GLshort y, GLshort z); -typedef void(GLAD_API_PTR *PFNGLVERTEX3SVPROC)(const GLshort *v); -typedef void(GLAD_API_PTR *PFNGLVERTEX4DPROC)(GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void(GLAD_API_PTR *PFNGLVERTEX4DVPROC)(const GLdouble *v); -typedef void(GLAD_API_PTR *PFNGLVERTEX4FPROC)(GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void(GLAD_API_PTR *PFNGLVERTEX4FVPROC)(const GLfloat *v); -typedef void(GLAD_API_PTR *PFNGLVERTEX4IPROC)(GLint x, GLint y, GLint z, GLint w); -typedef void(GLAD_API_PTR *PFNGLVERTEX4IVPROC)(const GLint *v); -typedef void(GLAD_API_PTR *PFNGLVERTEX4SPROC)(GLshort x, GLshort y, GLshort z, GLshort w); -typedef void(GLAD_API_PTR *PFNGLVERTEX4SVPROC)(const GLshort *v); -typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYATTRIBBINDINGPROC)(GLuint vaobj, GLuint attribindex, GLuint bindingindex); -typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYATTRIBFORMATPROC)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); -typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYATTRIBIFORMATPROC)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYATTRIBLFORMATPROC)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYBINDINGDIVISORPROC)(GLuint vaobj, GLuint bindingindex, GLuint divisor); -typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYELEMENTBUFFERPROC)(GLuint vaobj, GLuint buffer); -typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYVERTEXBUFFERPROC)(GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); -typedef void(GLAD_API_PTR *PFNGLVERTEXARRAYVERTEXBUFFERSPROC)(GLuint vaobj, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1DPROC)(GLuint index, GLdouble x); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1DVPROC)(GLuint index, const GLdouble *v); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1FPROC)(GLuint index, GLfloat x); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1FVPROC)(GLuint index, const GLfloat *v); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1SPROC)(GLuint index, GLshort x); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB1SVPROC)(GLuint index, const GLshort *v); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2DPROC)(GLuint index, GLdouble x, GLdouble y); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2DVPROC)(GLuint index, const GLdouble *v); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2FPROC)(GLuint index, GLfloat x, GLfloat y); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2FVPROC)(GLuint index, const GLfloat *v); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2SPROC)(GLuint index, GLshort x, GLshort y); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB2SVPROC)(GLuint index, const GLshort *v); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3DVPROC)(GLuint index, const GLdouble *v); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3FPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3FVPROC)(GLuint index, const GLfloat *v); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3SPROC)(GLuint index, GLshort x, GLshort y, GLshort z); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB3SVPROC)(GLuint index, const GLshort *v); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4NBVPROC)(GLuint index, const GLbyte *v); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4NIVPROC)(GLuint index, const GLint *v); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4NSVPROC)(GLuint index, const GLshort *v); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4NUBPROC)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4NUBVPROC)(GLuint index, const GLubyte *v); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4NUIVPROC)(GLuint index, const GLuint *v); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4NUSVPROC)(GLuint index, const GLushort *v); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4BVPROC)(GLuint index, const GLbyte *v); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4DVPROC)(GLuint index, const GLdouble *v); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4FPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4FVPROC)(GLuint index, const GLfloat *v); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4IVPROC)(GLuint index, const GLint *v); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4SPROC)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4SVPROC)(GLuint index, const GLshort *v); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4UBVPROC)(GLuint index, const GLubyte *v); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4UIVPROC)(GLuint index, const GLuint *v); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIB4USVPROC)(GLuint index, const GLushort *v); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBBINDINGPROC)(GLuint attribindex, GLuint bindingindex); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBDIVISORPROC)(GLuint index, GLuint divisor); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBFORMATPROC)(GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI1IPROC)(GLuint index, GLint x); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI1IVPROC)(GLuint index, const GLint *v); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI1UIPROC)(GLuint index, GLuint x); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI1UIVPROC)(GLuint index, const GLuint *v); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI2IPROC)(GLuint index, GLint x, GLint y); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI2IVPROC)(GLuint index, const GLint *v); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI2UIPROC)(GLuint index, GLuint x, GLuint y); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI2UIVPROC)(GLuint index, const GLuint *v); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI3IPROC)(GLuint index, GLint x, GLint y, GLint z); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI3IVPROC)(GLuint index, const GLint *v); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI3UIPROC)(GLuint index, GLuint x, GLuint y, GLuint z); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI3UIVPROC)(GLuint index, const GLuint *v); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI4BVPROC)(GLuint index, const GLbyte *v); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI4IPROC)(GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI4IVPROC)(GLuint index, const GLint *v); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI4SVPROC)(GLuint index, const GLshort *v); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI4UBVPROC)(GLuint index, const GLubyte *v); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI4UIPROC)(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI4UIVPROC)(GLuint index, const GLuint *v); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBI4USVPROC)(GLuint index, const GLushort *v); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBIFORMATPROC)(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBIPOINTERPROC)(GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL1DPROC)(GLuint index, GLdouble x); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL1DVPROC)(GLuint index, const GLdouble *v); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL2DPROC)(GLuint index, GLdouble x, GLdouble y); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL2DVPROC)(GLuint index, const GLdouble *v); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL3DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL3DVPROC)(GLuint index, const GLdouble *v); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL4DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBL4DVPROC)(GLuint index, const GLdouble *v); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBLFORMATPROC)(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBLPOINTERPROC)(GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBP1UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBP1UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBP2UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBP2UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBP3UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBP3UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBP4UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBP4UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -typedef void(GLAD_API_PTR *PFNGLVERTEXATTRIBPOINTERPROC)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer); -typedef void(GLAD_API_PTR *PFNGLVERTEXBINDINGDIVISORPROC)(GLuint bindingindex, GLuint divisor); -typedef void(GLAD_API_PTR *PFNGLVERTEXP2UIPROC)(GLenum type, GLuint value); -typedef void(GLAD_API_PTR *PFNGLVERTEXP2UIVPROC)(GLenum type, const GLuint *value); -typedef void(GLAD_API_PTR *PFNGLVERTEXP3UIPROC)(GLenum type, GLuint value); -typedef void(GLAD_API_PTR *PFNGLVERTEXP3UIVPROC)(GLenum type, const GLuint *value); -typedef void(GLAD_API_PTR *PFNGLVERTEXP4UIPROC)(GLenum type, GLuint value); -typedef void(GLAD_API_PTR *PFNGLVERTEXP4UIVPROC)(GLenum type, const GLuint *value); -typedef void(GLAD_API_PTR *PFNGLVERTEXPOINTERPROC)(GLint size, GLenum type, GLsizei stride, const void *pointer); -typedef void(GLAD_API_PTR *PFNGLVIEWPORTPROC)(GLint x, GLint y, GLsizei width, GLsizei height); -typedef void(GLAD_API_PTR *PFNGLVIEWPORTARRAYVPROC)(GLuint first, GLsizei count, const GLfloat *v); -typedef void(GLAD_API_PTR *PFNGLVIEWPORTINDEXEDFPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); -typedef void(GLAD_API_PTR *PFNGLVIEWPORTINDEXEDFVPROC)(GLuint index, const GLfloat *v); -typedef void(GLAD_API_PTR *PFNGLWAITSYNCPROC)(GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void(GLAD_API_PTR *PFNGLWINDOWPOS2DPROC)(GLdouble x, GLdouble y); -typedef void(GLAD_API_PTR *PFNGLWINDOWPOS2DVPROC)(const GLdouble *v); -typedef void(GLAD_API_PTR *PFNGLWINDOWPOS2FPROC)(GLfloat x, GLfloat y); -typedef void(GLAD_API_PTR *PFNGLWINDOWPOS2FVPROC)(const GLfloat *v); -typedef void(GLAD_API_PTR *PFNGLWINDOWPOS2IPROC)(GLint x, GLint y); -typedef void(GLAD_API_PTR *PFNGLWINDOWPOS2IVPROC)(const GLint *v); -typedef void(GLAD_API_PTR *PFNGLWINDOWPOS2SPROC)(GLshort x, GLshort y); -typedef void(GLAD_API_PTR *PFNGLWINDOWPOS2SVPROC)(const GLshort *v); -typedef void(GLAD_API_PTR *PFNGLWINDOWPOS3DPROC)(GLdouble x, GLdouble y, GLdouble z); -typedef void(GLAD_API_PTR *PFNGLWINDOWPOS3DVPROC)(const GLdouble *v); -typedef void(GLAD_API_PTR *PFNGLWINDOWPOS3FPROC)(GLfloat x, GLfloat y, GLfloat z); -typedef void(GLAD_API_PTR *PFNGLWINDOWPOS3FVPROC)(const GLfloat *v); -typedef void(GLAD_API_PTR *PFNGLWINDOWPOS3IPROC)(GLint x, GLint y, GLint z); -typedef void(GLAD_API_PTR *PFNGLWINDOWPOS3IVPROC)(const GLint *v); -typedef void(GLAD_API_PTR *PFNGLWINDOWPOS3SPROC)(GLshort x, GLshort y, GLshort z); -typedef void(GLAD_API_PTR *PFNGLWINDOWPOS3SVPROC)(const GLshort *v); - -typedef struct GladGLContext { - void *userptr; - - int VERSION_1_0; - int VERSION_1_1; - int VERSION_1_2; - int VERSION_1_3; - int VERSION_1_4; - int VERSION_1_5; - int VERSION_2_0; - int VERSION_2_1; - int VERSION_3_0; - int VERSION_3_1; - int VERSION_3_2; - int VERSION_3_3; - int VERSION_4_0; - int VERSION_4_1; - int VERSION_4_2; - int VERSION_4_3; - int VERSION_4_4; - int VERSION_4_5; - int VERSION_4_6; - - PFNGLEGLIMAGETARGETTEXTURE2DOESPROC EGLImageTargetTexture2DOES; - PFNGLACCUMPROC Accum; - PFNGLACTIVESHADERPROGRAMPROC ActiveShaderProgram; - PFNGLACTIVETEXTUREPROC ActiveTexture; - PFNGLALPHAFUNCPROC AlphaFunc; - PFNGLARETEXTURESRESIDENTPROC AreTexturesResident; - PFNGLARRAYELEMENTPROC ArrayElement; - PFNGLATTACHSHADERPROC AttachShader; - PFNGLBEGINPROC Begin; - PFNGLBEGINCONDITIONALRENDERPROC BeginConditionalRender; - PFNGLBEGINQUERYPROC BeginQuery; - PFNGLBEGINQUERYINDEXEDPROC BeginQueryIndexed; - PFNGLBEGINTRANSFORMFEEDBACKPROC BeginTransformFeedback; - PFNGLBINDATTRIBLOCATIONPROC BindAttribLocation; - PFNGLBINDBUFFERPROC BindBuffer; - PFNGLBINDBUFFERBASEPROC BindBufferBase; - PFNGLBINDBUFFERRANGEPROC BindBufferRange; - PFNGLBINDBUFFERSBASEPROC BindBuffersBase; - PFNGLBINDBUFFERSRANGEPROC BindBuffersRange; - PFNGLBINDFRAGDATALOCATIONPROC BindFragDataLocation; - PFNGLBINDFRAGDATALOCATIONINDEXEDPROC BindFragDataLocationIndexed; - PFNGLBINDFRAMEBUFFERPROC BindFramebuffer; - PFNGLBINDIMAGETEXTUREPROC BindImageTexture; - PFNGLBINDIMAGETEXTURESPROC BindImageTextures; - PFNGLBINDPROGRAMPIPELINEPROC BindProgramPipeline; - PFNGLBINDRENDERBUFFERPROC BindRenderbuffer; - PFNGLBINDSAMPLERPROC BindSampler; - PFNGLBINDSAMPLERSPROC BindSamplers; - PFNGLBINDTEXTUREPROC BindTexture; - PFNGLBINDTEXTUREUNITPROC BindTextureUnit; - PFNGLBINDTEXTURESPROC BindTextures; - PFNGLBINDTRANSFORMFEEDBACKPROC BindTransformFeedback; - PFNGLBINDVERTEXARRAYPROC BindVertexArray; - PFNGLBINDVERTEXBUFFERPROC BindVertexBuffer; - PFNGLBINDVERTEXBUFFERSPROC BindVertexBuffers; - PFNGLBITMAPPROC Bitmap; - PFNGLBLENDCOLORPROC BlendColor; - PFNGLBLENDEQUATIONPROC BlendEquation; - PFNGLBLENDEQUATIONSEPARATEPROC BlendEquationSeparate; - PFNGLBLENDEQUATIONSEPARATEIPROC BlendEquationSeparatei; - PFNGLBLENDEQUATIONIPROC BlendEquationi; - PFNGLBLENDFUNCPROC BlendFunc; - PFNGLBLENDFUNCSEPARATEPROC BlendFuncSeparate; - PFNGLBLENDFUNCSEPARATEIPROC BlendFuncSeparatei; - PFNGLBLENDFUNCIPROC BlendFunci; - PFNGLBLITFRAMEBUFFERPROC BlitFramebuffer; - PFNGLBLITNAMEDFRAMEBUFFERPROC BlitNamedFramebuffer; - PFNGLBUFFERDATAPROC BufferData; - PFNGLBUFFERSTORAGEPROC BufferStorage; - PFNGLBUFFERSUBDATAPROC BufferSubData; - PFNGLCALLLISTPROC CallList; - PFNGLCALLLISTSPROC CallLists; - PFNGLCHECKFRAMEBUFFERSTATUSPROC CheckFramebufferStatus; - PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC CheckNamedFramebufferStatus; - PFNGLCLAMPCOLORPROC ClampColor; - PFNGLCLEARPROC Clear; - PFNGLCLEARACCUMPROC ClearAccum; - PFNGLCLEARBUFFERDATAPROC ClearBufferData; - PFNGLCLEARBUFFERSUBDATAPROC ClearBufferSubData; - PFNGLCLEARBUFFERFIPROC ClearBufferfi; - PFNGLCLEARBUFFERFVPROC ClearBufferfv; - PFNGLCLEARBUFFERIVPROC ClearBufferiv; - PFNGLCLEARBUFFERUIVPROC ClearBufferuiv; - PFNGLCLEARCOLORPROC ClearColor; - PFNGLCLEARDEPTHPROC ClearDepth; - PFNGLCLEARDEPTHFPROC ClearDepthf; - PFNGLCLEARINDEXPROC ClearIndex; - PFNGLCLEARNAMEDBUFFERDATAPROC ClearNamedBufferData; - PFNGLCLEARNAMEDBUFFERSUBDATAPROC ClearNamedBufferSubData; - PFNGLCLEARNAMEDFRAMEBUFFERFIPROC ClearNamedFramebufferfi; - PFNGLCLEARNAMEDFRAMEBUFFERFVPROC ClearNamedFramebufferfv; - PFNGLCLEARNAMEDFRAMEBUFFERIVPROC ClearNamedFramebufferiv; - PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC ClearNamedFramebufferuiv; - PFNGLCLEARSTENCILPROC ClearStencil; - PFNGLCLEARTEXIMAGEPROC ClearTexImage; - PFNGLCLEARTEXSUBIMAGEPROC ClearTexSubImage; - PFNGLCLIENTACTIVETEXTUREPROC ClientActiveTexture; - PFNGLCLIENTWAITSYNCPROC ClientWaitSync; - PFNGLCLIPCONTROLPROC ClipControl; - PFNGLCLIPPLANEPROC ClipPlane; - PFNGLCOLOR3BPROC Color3b; - PFNGLCOLOR3BVPROC Color3bv; - PFNGLCOLOR3DPROC Color3d; - PFNGLCOLOR3DVPROC Color3dv; - PFNGLCOLOR3FPROC Color3f; - PFNGLCOLOR3FVPROC Color3fv; - PFNGLCOLOR3IPROC Color3i; - PFNGLCOLOR3IVPROC Color3iv; - PFNGLCOLOR3SPROC Color3s; - PFNGLCOLOR3SVPROC Color3sv; - PFNGLCOLOR3UBPROC Color3ub; - PFNGLCOLOR3UBVPROC Color3ubv; - PFNGLCOLOR3UIPROC Color3ui; - PFNGLCOLOR3UIVPROC Color3uiv; - PFNGLCOLOR3USPROC Color3us; - PFNGLCOLOR3USVPROC Color3usv; - PFNGLCOLOR4BPROC Color4b; - PFNGLCOLOR4BVPROC Color4bv; - PFNGLCOLOR4DPROC Color4d; - PFNGLCOLOR4DVPROC Color4dv; - PFNGLCOLOR4FPROC Color4f; - PFNGLCOLOR4FVPROC Color4fv; - PFNGLCOLOR4IPROC Color4i; - PFNGLCOLOR4IVPROC Color4iv; - PFNGLCOLOR4SPROC Color4s; - PFNGLCOLOR4SVPROC Color4sv; - PFNGLCOLOR4UBPROC Color4ub; - PFNGLCOLOR4UBVPROC Color4ubv; - PFNGLCOLOR4UIPROC Color4ui; - PFNGLCOLOR4UIVPROC Color4uiv; - PFNGLCOLOR4USPROC Color4us; - PFNGLCOLOR4USVPROC Color4usv; - PFNGLCOLORMASKPROC ColorMask; - PFNGLCOLORMASKIPROC ColorMaski; - PFNGLCOLORMATERIALPROC ColorMaterial; - PFNGLCOLORP3UIPROC ColorP3ui; - PFNGLCOLORP3UIVPROC ColorP3uiv; - PFNGLCOLORP4UIPROC ColorP4ui; - PFNGLCOLORP4UIVPROC ColorP4uiv; - PFNGLCOLORPOINTERPROC ColorPointer; - PFNGLCOMPILESHADERPROC CompileShader; - PFNGLCOMPRESSEDTEXIMAGE1DPROC CompressedTexImage1D; - PFNGLCOMPRESSEDTEXIMAGE2DPROC CompressedTexImage2D; - PFNGLCOMPRESSEDTEXIMAGE3DPROC CompressedTexImage3D; - PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC CompressedTexSubImage1D; - PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC CompressedTexSubImage2D; - PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC CompressedTexSubImage3D; - PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC CompressedTextureSubImage1D; - PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC CompressedTextureSubImage2D; - PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC CompressedTextureSubImage3D; - PFNGLCOPYBUFFERSUBDATAPROC CopyBufferSubData; - PFNGLCOPYIMAGESUBDATAPROC CopyImageSubData; - PFNGLCOPYNAMEDBUFFERSUBDATAPROC CopyNamedBufferSubData; - PFNGLCOPYPIXELSPROC CopyPixels; - PFNGLCOPYTEXIMAGE1DPROC CopyTexImage1D; - PFNGLCOPYTEXIMAGE2DPROC CopyTexImage2D; - PFNGLCOPYTEXSUBIMAGE1DPROC CopyTexSubImage1D; - PFNGLCOPYTEXSUBIMAGE2DPROC CopyTexSubImage2D; - PFNGLCOPYTEXSUBIMAGE3DPROC CopyTexSubImage3D; - PFNGLCOPYTEXTURESUBIMAGE1DPROC CopyTextureSubImage1D; - PFNGLCOPYTEXTURESUBIMAGE2DPROC CopyTextureSubImage2D; - PFNGLCOPYTEXTURESUBIMAGE3DPROC CopyTextureSubImage3D; - PFNGLCREATEBUFFERSPROC CreateBuffers; - PFNGLCREATEFRAMEBUFFERSPROC CreateFramebuffers; - PFNGLCREATEPROGRAMPROC CreateProgram; - PFNGLCREATEPROGRAMPIPELINESPROC CreateProgramPipelines; - PFNGLCREATEQUERIESPROC CreateQueries; - PFNGLCREATERENDERBUFFERSPROC CreateRenderbuffers; - PFNGLCREATESAMPLERSPROC CreateSamplers; - PFNGLCREATESHADERPROC CreateShader; - PFNGLCREATESHADERPROGRAMVPROC CreateShaderProgramv; - PFNGLCREATETEXTURESPROC CreateTextures; - PFNGLCREATETRANSFORMFEEDBACKSPROC CreateTransformFeedbacks; - PFNGLCREATEVERTEXARRAYSPROC CreateVertexArrays; - PFNGLCULLFACEPROC CullFace; - PFNGLDEBUGMESSAGECALLBACKPROC DebugMessageCallback; - PFNGLDEBUGMESSAGECONTROLPROC DebugMessageControl; - PFNGLDEBUGMESSAGEINSERTPROC DebugMessageInsert; - PFNGLDELETEBUFFERSPROC DeleteBuffers; - PFNGLDELETEFRAMEBUFFERSPROC DeleteFramebuffers; - PFNGLDELETELISTSPROC DeleteLists; - PFNGLDELETEPROGRAMPROC DeleteProgram; - PFNGLDELETEPROGRAMPIPELINESPROC DeleteProgramPipelines; - PFNGLDELETEQUERIESPROC DeleteQueries; - PFNGLDELETERENDERBUFFERSPROC DeleteRenderbuffers; - PFNGLDELETESAMPLERSPROC DeleteSamplers; - PFNGLDELETESHADERPROC DeleteShader; - PFNGLDELETESYNCPROC DeleteSync; - PFNGLDELETETEXTURESPROC DeleteTextures; - PFNGLDELETETRANSFORMFEEDBACKSPROC DeleteTransformFeedbacks; - PFNGLDELETEVERTEXARRAYSPROC DeleteVertexArrays; - PFNGLDEPTHFUNCPROC DepthFunc; - PFNGLDEPTHMASKPROC DepthMask; - PFNGLDEPTHRANGEPROC DepthRange; - PFNGLDEPTHRANGEARRAYVPROC DepthRangeArrayv; - PFNGLDEPTHRANGEINDEXEDPROC DepthRangeIndexed; - PFNGLDEPTHRANGEFPROC DepthRangef; - PFNGLDETACHSHADERPROC DetachShader; - PFNGLDISABLEPROC Disable; - PFNGLDISABLECLIENTSTATEPROC DisableClientState; - PFNGLDISABLEVERTEXARRAYATTRIBPROC DisableVertexArrayAttrib; - PFNGLDISABLEVERTEXATTRIBARRAYPROC DisableVertexAttribArray; - PFNGLDISABLEIPROC Disablei; - PFNGLDISPATCHCOMPUTEPROC DispatchCompute; - PFNGLDISPATCHCOMPUTEINDIRECTPROC DispatchComputeIndirect; - PFNGLDRAWARRAYSPROC DrawArrays; - PFNGLDRAWARRAYSINDIRECTPROC DrawArraysIndirect; - PFNGLDRAWARRAYSINSTANCEDPROC DrawArraysInstanced; - PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC DrawArraysInstancedBaseInstance; - PFNGLDRAWBUFFERPROC DrawBuffer; - PFNGLDRAWBUFFERSPROC DrawBuffers; - PFNGLDRAWELEMENTSPROC DrawElements; - PFNGLDRAWELEMENTSBASEVERTEXPROC DrawElementsBaseVertex; - PFNGLDRAWELEMENTSINDIRECTPROC DrawElementsIndirect; - PFNGLDRAWELEMENTSINSTANCEDPROC DrawElementsInstanced; - PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC DrawElementsInstancedBaseInstance; - PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC DrawElementsInstancedBaseVertex; - PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC DrawElementsInstancedBaseVertexBaseInstance; - PFNGLDRAWPIXELSPROC DrawPixels; - PFNGLDRAWRANGEELEMENTSPROC DrawRangeElements; - PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC DrawRangeElementsBaseVertex; - PFNGLDRAWTRANSFORMFEEDBACKPROC DrawTransformFeedback; - PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC DrawTransformFeedbackInstanced; - PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC DrawTransformFeedbackStream; - PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC DrawTransformFeedbackStreamInstanced; - PFNGLEDGEFLAGPROC EdgeFlag; - PFNGLEDGEFLAGPOINTERPROC EdgeFlagPointer; - PFNGLEDGEFLAGVPROC EdgeFlagv; - PFNGLENABLEPROC Enable; - PFNGLENABLECLIENTSTATEPROC EnableClientState; - PFNGLENABLEVERTEXARRAYATTRIBPROC EnableVertexArrayAttrib; - PFNGLENABLEVERTEXATTRIBARRAYPROC EnableVertexAttribArray; - PFNGLENABLEIPROC Enablei; - PFNGLENDPROC End; - PFNGLENDCONDITIONALRENDERPROC EndConditionalRender; - PFNGLENDLISTPROC EndList; - PFNGLENDQUERYPROC EndQuery; - PFNGLENDQUERYINDEXEDPROC EndQueryIndexed; - PFNGLENDTRANSFORMFEEDBACKPROC EndTransformFeedback; - PFNGLEVALCOORD1DPROC EvalCoord1d; - PFNGLEVALCOORD1DVPROC EvalCoord1dv; - PFNGLEVALCOORD1FPROC EvalCoord1f; - PFNGLEVALCOORD1FVPROC EvalCoord1fv; - PFNGLEVALCOORD2DPROC EvalCoord2d; - PFNGLEVALCOORD2DVPROC EvalCoord2dv; - PFNGLEVALCOORD2FPROC EvalCoord2f; - PFNGLEVALCOORD2FVPROC EvalCoord2fv; - PFNGLEVALMESH1PROC EvalMesh1; - PFNGLEVALMESH2PROC EvalMesh2; - PFNGLEVALPOINT1PROC EvalPoint1; - PFNGLEVALPOINT2PROC EvalPoint2; - PFNGLFEEDBACKBUFFERPROC FeedbackBuffer; - PFNGLFENCESYNCPROC FenceSync; - PFNGLFINISHPROC Finish; - PFNGLFLUSHPROC Flush; - PFNGLFLUSHMAPPEDBUFFERRANGEPROC FlushMappedBufferRange; - PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC FlushMappedNamedBufferRange; - PFNGLFOGCOORDPOINTERPROC FogCoordPointer; - PFNGLFOGCOORDDPROC FogCoordd; - PFNGLFOGCOORDDVPROC FogCoorddv; - PFNGLFOGCOORDFPROC FogCoordf; - PFNGLFOGCOORDFVPROC FogCoordfv; - PFNGLFOGFPROC Fogf; - PFNGLFOGFVPROC Fogfv; - PFNGLFOGIPROC Fogi; - PFNGLFOGIVPROC Fogiv; - PFNGLFRAMEBUFFERPARAMETERIPROC FramebufferParameteri; - PFNGLFRAMEBUFFERRENDERBUFFERPROC FramebufferRenderbuffer; - PFNGLFRAMEBUFFERTEXTUREPROC FramebufferTexture; - PFNGLFRAMEBUFFERTEXTURE1DPROC FramebufferTexture1D; - PFNGLFRAMEBUFFERTEXTURE2DPROC FramebufferTexture2D; - PFNGLFRAMEBUFFERTEXTURE3DPROC FramebufferTexture3D; - PFNGLFRAMEBUFFERTEXTURELAYERPROC FramebufferTextureLayer; - PFNGLFRONTFACEPROC FrontFace; - PFNGLFRUSTUMPROC Frustum; - PFNGLGENBUFFERSPROC GenBuffers; - PFNGLGENFRAMEBUFFERSPROC GenFramebuffers; - PFNGLGENLISTSPROC GenLists; - PFNGLGENPROGRAMPIPELINESPROC GenProgramPipelines; - PFNGLGENQUERIESPROC GenQueries; - PFNGLGENRENDERBUFFERSPROC GenRenderbuffers; - PFNGLGENSAMPLERSPROC GenSamplers; - PFNGLGENTEXTURESPROC GenTextures; - PFNGLGENTRANSFORMFEEDBACKSPROC GenTransformFeedbacks; - PFNGLGENVERTEXARRAYSPROC GenVertexArrays; - PFNGLGENERATEMIPMAPPROC GenerateMipmap; - PFNGLGENERATETEXTUREMIPMAPPROC GenerateTextureMipmap; - PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC GetActiveAtomicCounterBufferiv; - PFNGLGETACTIVEATTRIBPROC GetActiveAttrib; - PFNGLGETACTIVESUBROUTINENAMEPROC GetActiveSubroutineName; - PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC GetActiveSubroutineUniformName; - PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC GetActiveSubroutineUniformiv; - PFNGLGETACTIVEUNIFORMPROC GetActiveUniform; - PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC GetActiveUniformBlockName; - PFNGLGETACTIVEUNIFORMBLOCKIVPROC GetActiveUniformBlockiv; - PFNGLGETACTIVEUNIFORMNAMEPROC GetActiveUniformName; - PFNGLGETACTIVEUNIFORMSIVPROC GetActiveUniformsiv; - PFNGLGETATTACHEDSHADERSPROC GetAttachedShaders; - PFNGLGETATTRIBLOCATIONPROC GetAttribLocation; - PFNGLGETBOOLEANI_VPROC GetBooleani_v; - PFNGLGETBOOLEANVPROC GetBooleanv; - PFNGLGETBUFFERPARAMETERI64VPROC GetBufferParameteri64v; - PFNGLGETBUFFERPARAMETERIVPROC GetBufferParameteriv; - PFNGLGETBUFFERPOINTERVPROC GetBufferPointerv; - PFNGLGETBUFFERSUBDATAPROC GetBufferSubData; - PFNGLGETCLIPPLANEPROC GetClipPlane; - PFNGLGETCOMPRESSEDTEXIMAGEPROC GetCompressedTexImage; - PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC GetCompressedTextureImage; - PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC GetCompressedTextureSubImage; - PFNGLGETDEBUGMESSAGELOGPROC GetDebugMessageLog; - PFNGLGETDOUBLEI_VPROC GetDoublei_v; - PFNGLGETDOUBLEVPROC GetDoublev; - PFNGLGETERRORPROC GetError; - PFNGLGETFLOATI_VPROC GetFloati_v; - PFNGLGETFLOATVPROC GetFloatv; - PFNGLGETFRAGDATAINDEXPROC GetFragDataIndex; - PFNGLGETFRAGDATALOCATIONPROC GetFragDataLocation; - PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC GetFramebufferAttachmentParameteriv; - PFNGLGETFRAMEBUFFERPARAMETERIVPROC GetFramebufferParameteriv; - PFNGLGETGRAPHICSRESETSTATUSPROC GetGraphicsResetStatus; - PFNGLGETINTEGER64I_VPROC GetInteger64i_v; - PFNGLGETINTEGER64VPROC GetInteger64v; - PFNGLGETINTEGERI_VPROC GetIntegeri_v; - PFNGLGETINTEGERVPROC GetIntegerv; - PFNGLGETINTERNALFORMATI64VPROC GetInternalformati64v; - PFNGLGETINTERNALFORMATIVPROC GetInternalformativ; - PFNGLGETLIGHTFVPROC GetLightfv; - PFNGLGETLIGHTIVPROC GetLightiv; - PFNGLGETMAPDVPROC GetMapdv; - PFNGLGETMAPFVPROC GetMapfv; - PFNGLGETMAPIVPROC GetMapiv; - PFNGLGETMATERIALFVPROC GetMaterialfv; - PFNGLGETMATERIALIVPROC GetMaterialiv; - PFNGLGETMULTISAMPLEFVPROC GetMultisamplefv; - PFNGLGETNAMEDBUFFERPARAMETERI64VPROC GetNamedBufferParameteri64v; - PFNGLGETNAMEDBUFFERPARAMETERIVPROC GetNamedBufferParameteriv; - PFNGLGETNAMEDBUFFERPOINTERVPROC GetNamedBufferPointerv; - PFNGLGETNAMEDBUFFERSUBDATAPROC GetNamedBufferSubData; - PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC GetNamedFramebufferAttachmentParameteriv; - PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC GetNamedFramebufferParameteriv; - PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC GetNamedRenderbufferParameteriv; - PFNGLGETOBJECTLABELPROC GetObjectLabel; - PFNGLGETOBJECTPTRLABELPROC GetObjectPtrLabel; - PFNGLGETPIXELMAPFVPROC GetPixelMapfv; - PFNGLGETPIXELMAPUIVPROC GetPixelMapuiv; - PFNGLGETPIXELMAPUSVPROC GetPixelMapusv; - PFNGLGETPOINTERVPROC GetPointerv; - PFNGLGETPOLYGONSTIPPLEPROC GetPolygonStipple; - PFNGLGETPROGRAMBINARYPROC GetProgramBinary; - PFNGLGETPROGRAMINFOLOGPROC GetProgramInfoLog; - PFNGLGETPROGRAMINTERFACEIVPROC GetProgramInterfaceiv; - PFNGLGETPROGRAMPIPELINEINFOLOGPROC GetProgramPipelineInfoLog; - PFNGLGETPROGRAMPIPELINEIVPROC GetProgramPipelineiv; - PFNGLGETPROGRAMRESOURCEINDEXPROC GetProgramResourceIndex; - PFNGLGETPROGRAMRESOURCELOCATIONPROC GetProgramResourceLocation; - PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC GetProgramResourceLocationIndex; - PFNGLGETPROGRAMRESOURCENAMEPROC GetProgramResourceName; - PFNGLGETPROGRAMRESOURCEIVPROC GetProgramResourceiv; - PFNGLGETPROGRAMSTAGEIVPROC GetProgramStageiv; - PFNGLGETPROGRAMIVPROC GetProgramiv; - PFNGLGETQUERYBUFFEROBJECTI64VPROC GetQueryBufferObjecti64v; - PFNGLGETQUERYBUFFEROBJECTIVPROC GetQueryBufferObjectiv; - PFNGLGETQUERYBUFFEROBJECTUI64VPROC GetQueryBufferObjectui64v; - PFNGLGETQUERYBUFFEROBJECTUIVPROC GetQueryBufferObjectuiv; - PFNGLGETQUERYINDEXEDIVPROC GetQueryIndexediv; - PFNGLGETQUERYOBJECTI64VPROC GetQueryObjecti64v; - PFNGLGETQUERYOBJECTIVPROC GetQueryObjectiv; - PFNGLGETQUERYOBJECTUI64VPROC GetQueryObjectui64v; - PFNGLGETQUERYOBJECTUIVPROC GetQueryObjectuiv; - PFNGLGETQUERYIVPROC GetQueryiv; - PFNGLGETRENDERBUFFERPARAMETERIVPROC GetRenderbufferParameteriv; - PFNGLGETSAMPLERPARAMETERIIVPROC GetSamplerParameterIiv; - PFNGLGETSAMPLERPARAMETERIUIVPROC GetSamplerParameterIuiv; - PFNGLGETSAMPLERPARAMETERFVPROC GetSamplerParameterfv; - PFNGLGETSAMPLERPARAMETERIVPROC GetSamplerParameteriv; - PFNGLGETSHADERINFOLOGPROC GetShaderInfoLog; - PFNGLGETSHADERPRECISIONFORMATPROC GetShaderPrecisionFormat; - PFNGLGETSHADERSOURCEPROC GetShaderSource; - PFNGLGETSHADERIVPROC GetShaderiv; - PFNGLGETSTRINGPROC GetString; - PFNGLGETSTRINGIPROC GetStringi; - PFNGLGETSUBROUTINEINDEXPROC GetSubroutineIndex; - PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC GetSubroutineUniformLocation; - PFNGLGETSYNCIVPROC GetSynciv; - PFNGLGETTEXENVFVPROC GetTexEnvfv; - PFNGLGETTEXENVIVPROC GetTexEnviv; - PFNGLGETTEXGENDVPROC GetTexGendv; - PFNGLGETTEXGENFVPROC GetTexGenfv; - PFNGLGETTEXGENIVPROC GetTexGeniv; - PFNGLGETTEXIMAGEPROC GetTexImage; - PFNGLGETTEXLEVELPARAMETERFVPROC GetTexLevelParameterfv; - PFNGLGETTEXLEVELPARAMETERIVPROC GetTexLevelParameteriv; - PFNGLGETTEXPARAMETERIIVPROC GetTexParameterIiv; - PFNGLGETTEXPARAMETERIUIVPROC GetTexParameterIuiv; - PFNGLGETTEXPARAMETERFVPROC GetTexParameterfv; - PFNGLGETTEXPARAMETERIVPROC GetTexParameteriv; - PFNGLGETTEXTUREIMAGEPROC GetTextureImage; - PFNGLGETTEXTURELEVELPARAMETERFVPROC GetTextureLevelParameterfv; - PFNGLGETTEXTURELEVELPARAMETERIVPROC GetTextureLevelParameteriv; - PFNGLGETTEXTUREPARAMETERIIVPROC GetTextureParameterIiv; - PFNGLGETTEXTUREPARAMETERIUIVPROC GetTextureParameterIuiv; - PFNGLGETTEXTUREPARAMETERFVPROC GetTextureParameterfv; - PFNGLGETTEXTUREPARAMETERIVPROC GetTextureParameteriv; - PFNGLGETTEXTURESUBIMAGEPROC GetTextureSubImage; - PFNGLGETTRANSFORMFEEDBACKVARYINGPROC GetTransformFeedbackVarying; - PFNGLGETTRANSFORMFEEDBACKI64_VPROC GetTransformFeedbacki64_v; - PFNGLGETTRANSFORMFEEDBACKI_VPROC GetTransformFeedbacki_v; - PFNGLGETTRANSFORMFEEDBACKIVPROC GetTransformFeedbackiv; - PFNGLGETUNIFORMBLOCKINDEXPROC GetUniformBlockIndex; - PFNGLGETUNIFORMINDICESPROC GetUniformIndices; - PFNGLGETUNIFORMLOCATIONPROC GetUniformLocation; - PFNGLGETUNIFORMSUBROUTINEUIVPROC GetUniformSubroutineuiv; - PFNGLGETUNIFORMDVPROC GetUniformdv; - PFNGLGETUNIFORMFVPROC GetUniformfv; - PFNGLGETUNIFORMIVPROC GetUniformiv; - PFNGLGETUNIFORMUIVPROC GetUniformuiv; - PFNGLGETVERTEXARRAYINDEXED64IVPROC GetVertexArrayIndexed64iv; - PFNGLGETVERTEXARRAYINDEXEDIVPROC GetVertexArrayIndexediv; - PFNGLGETVERTEXARRAYIVPROC GetVertexArrayiv; - PFNGLGETVERTEXATTRIBIIVPROC GetVertexAttribIiv; - PFNGLGETVERTEXATTRIBIUIVPROC GetVertexAttribIuiv; - PFNGLGETVERTEXATTRIBLDVPROC GetVertexAttribLdv; - PFNGLGETVERTEXATTRIBPOINTERVPROC GetVertexAttribPointerv; - PFNGLGETVERTEXATTRIBDVPROC GetVertexAttribdv; - PFNGLGETVERTEXATTRIBFVPROC GetVertexAttribfv; - PFNGLGETVERTEXATTRIBIVPROC GetVertexAttribiv; - PFNGLGETNCOLORTABLEPROC GetnColorTable; - PFNGLGETNCOMPRESSEDTEXIMAGEPROC GetnCompressedTexImage; - PFNGLGETNCONVOLUTIONFILTERPROC GetnConvolutionFilter; - PFNGLGETNHISTOGRAMPROC GetnHistogram; - PFNGLGETNMAPDVPROC GetnMapdv; - PFNGLGETNMAPFVPROC GetnMapfv; - PFNGLGETNMAPIVPROC GetnMapiv; - PFNGLGETNMINMAXPROC GetnMinmax; - PFNGLGETNPIXELMAPFVPROC GetnPixelMapfv; - PFNGLGETNPIXELMAPUIVPROC GetnPixelMapuiv; - PFNGLGETNPIXELMAPUSVPROC GetnPixelMapusv; - PFNGLGETNPOLYGONSTIPPLEPROC GetnPolygonStipple; - PFNGLGETNSEPARABLEFILTERPROC GetnSeparableFilter; - PFNGLGETNTEXIMAGEPROC GetnTexImage; - PFNGLGETNUNIFORMDVPROC GetnUniformdv; - PFNGLGETNUNIFORMFVPROC GetnUniformfv; - PFNGLGETNUNIFORMIVPROC GetnUniformiv; - PFNGLGETNUNIFORMUIVPROC GetnUniformuiv; - PFNGLHINTPROC Hint; - PFNGLINDEXMASKPROC IndexMask; - PFNGLINDEXPOINTERPROC IndexPointer; - PFNGLINDEXDPROC Indexd; - PFNGLINDEXDVPROC Indexdv; - PFNGLINDEXFPROC Indexf; - PFNGLINDEXFVPROC Indexfv; - PFNGLINDEXIPROC Indexi; - PFNGLINDEXIVPROC Indexiv; - PFNGLINDEXSPROC Indexs; - PFNGLINDEXSVPROC Indexsv; - PFNGLINDEXUBPROC Indexub; - PFNGLINDEXUBVPROC Indexubv; - PFNGLINITNAMESPROC InitNames; - PFNGLINTERLEAVEDARRAYSPROC InterleavedArrays; - PFNGLINVALIDATEBUFFERDATAPROC InvalidateBufferData; - PFNGLINVALIDATEBUFFERSUBDATAPROC InvalidateBufferSubData; - PFNGLINVALIDATEFRAMEBUFFERPROC InvalidateFramebuffer; - PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC InvalidateNamedFramebufferData; - PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC InvalidateNamedFramebufferSubData; - PFNGLINVALIDATESUBFRAMEBUFFERPROC InvalidateSubFramebuffer; - PFNGLINVALIDATETEXIMAGEPROC InvalidateTexImage; - PFNGLINVALIDATETEXSUBIMAGEPROC InvalidateTexSubImage; - PFNGLISBUFFERPROC IsBuffer; - PFNGLISENABLEDPROC IsEnabled; - PFNGLISENABLEDIPROC IsEnabledi; - PFNGLISFRAMEBUFFERPROC IsFramebuffer; - PFNGLISLISTPROC IsList; - PFNGLISPROGRAMPROC IsProgram; - PFNGLISPROGRAMPIPELINEPROC IsProgramPipeline; - PFNGLISQUERYPROC IsQuery; - PFNGLISRENDERBUFFERPROC IsRenderbuffer; - PFNGLISSAMPLERPROC IsSampler; - PFNGLISSHADERPROC IsShader; - PFNGLISSYNCPROC IsSync; - PFNGLISTEXTUREPROC IsTexture; - PFNGLISTRANSFORMFEEDBACKPROC IsTransformFeedback; - PFNGLISVERTEXARRAYPROC IsVertexArray; - PFNGLLIGHTMODELFPROC LightModelf; - PFNGLLIGHTMODELFVPROC LightModelfv; - PFNGLLIGHTMODELIPROC LightModeli; - PFNGLLIGHTMODELIVPROC LightModeliv; - PFNGLLIGHTFPROC Lightf; - PFNGLLIGHTFVPROC Lightfv; - PFNGLLIGHTIPROC Lighti; - PFNGLLIGHTIVPROC Lightiv; - PFNGLLINESTIPPLEPROC LineStipple; - PFNGLLINEWIDTHPROC LineWidth; - PFNGLLINKPROGRAMPROC LinkProgram; - PFNGLLISTBASEPROC ListBase; - PFNGLLOADIDENTITYPROC LoadIdentity; - PFNGLLOADMATRIXDPROC LoadMatrixd; - PFNGLLOADMATRIXFPROC LoadMatrixf; - PFNGLLOADNAMEPROC LoadName; - PFNGLLOADTRANSPOSEMATRIXDPROC LoadTransposeMatrixd; - PFNGLLOADTRANSPOSEMATRIXFPROC LoadTransposeMatrixf; - PFNGLLOGICOPPROC LogicOp; - PFNGLMAP1DPROC Map1d; - PFNGLMAP1FPROC Map1f; - PFNGLMAP2DPROC Map2d; - PFNGLMAP2FPROC Map2f; - PFNGLMAPBUFFERPROC MapBuffer; - PFNGLMAPBUFFERRANGEPROC MapBufferRange; - PFNGLMAPGRID1DPROC MapGrid1d; - PFNGLMAPGRID1FPROC MapGrid1f; - PFNGLMAPGRID2DPROC MapGrid2d; - PFNGLMAPGRID2FPROC MapGrid2f; - PFNGLMAPNAMEDBUFFERPROC MapNamedBuffer; - PFNGLMAPNAMEDBUFFERRANGEPROC MapNamedBufferRange; - PFNGLMATERIALFPROC Materialf; - PFNGLMATERIALFVPROC Materialfv; - PFNGLMATERIALIPROC Materiali; - PFNGLMATERIALIVPROC Materialiv; - PFNGLMATRIXMODEPROC MatrixMode; - PFNGLMEMORYBARRIERPROC MemoryBarrier; - PFNGLMEMORYBARRIERBYREGIONPROC MemoryBarrierByRegion; - PFNGLMINSAMPLESHADINGPROC MinSampleShading; - PFNGLMULTMATRIXDPROC MultMatrixd; - PFNGLMULTMATRIXFPROC MultMatrixf; - PFNGLMULTTRANSPOSEMATRIXDPROC MultTransposeMatrixd; - PFNGLMULTTRANSPOSEMATRIXFPROC MultTransposeMatrixf; - PFNGLMULTIDRAWARRAYSPROC MultiDrawArrays; - PFNGLMULTIDRAWARRAYSINDIRECTPROC MultiDrawArraysIndirect; - PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC MultiDrawArraysIndirectCount; - PFNGLMULTIDRAWELEMENTSPROC MultiDrawElements; - PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC MultiDrawElementsBaseVertex; - PFNGLMULTIDRAWELEMENTSINDIRECTPROC MultiDrawElementsIndirect; - PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC MultiDrawElementsIndirectCount; - PFNGLMULTITEXCOORD1DPROC MultiTexCoord1d; - PFNGLMULTITEXCOORD1DVPROC MultiTexCoord1dv; - PFNGLMULTITEXCOORD1FPROC MultiTexCoord1f; - PFNGLMULTITEXCOORD1FVPROC MultiTexCoord1fv; - PFNGLMULTITEXCOORD1IPROC MultiTexCoord1i; - PFNGLMULTITEXCOORD1IVPROC MultiTexCoord1iv; - PFNGLMULTITEXCOORD1SPROC MultiTexCoord1s; - PFNGLMULTITEXCOORD1SVPROC MultiTexCoord1sv; - PFNGLMULTITEXCOORD2DPROC MultiTexCoord2d; - PFNGLMULTITEXCOORD2DVPROC MultiTexCoord2dv; - PFNGLMULTITEXCOORD2FPROC MultiTexCoord2f; - PFNGLMULTITEXCOORD2FVPROC MultiTexCoord2fv; - PFNGLMULTITEXCOORD2IPROC MultiTexCoord2i; - PFNGLMULTITEXCOORD2IVPROC MultiTexCoord2iv; - PFNGLMULTITEXCOORD2SPROC MultiTexCoord2s; - PFNGLMULTITEXCOORD2SVPROC MultiTexCoord2sv; - PFNGLMULTITEXCOORD3DPROC MultiTexCoord3d; - PFNGLMULTITEXCOORD3DVPROC MultiTexCoord3dv; - PFNGLMULTITEXCOORD3FPROC MultiTexCoord3f; - PFNGLMULTITEXCOORD3FVPROC MultiTexCoord3fv; - PFNGLMULTITEXCOORD3IPROC MultiTexCoord3i; - PFNGLMULTITEXCOORD3IVPROC MultiTexCoord3iv; - PFNGLMULTITEXCOORD3SPROC MultiTexCoord3s; - PFNGLMULTITEXCOORD3SVPROC MultiTexCoord3sv; - PFNGLMULTITEXCOORD4DPROC MultiTexCoord4d; - PFNGLMULTITEXCOORD4DVPROC MultiTexCoord4dv; - PFNGLMULTITEXCOORD4FPROC MultiTexCoord4f; - PFNGLMULTITEXCOORD4FVPROC MultiTexCoord4fv; - PFNGLMULTITEXCOORD4IPROC MultiTexCoord4i; - PFNGLMULTITEXCOORD4IVPROC MultiTexCoord4iv; - PFNGLMULTITEXCOORD4SPROC MultiTexCoord4s; - PFNGLMULTITEXCOORD4SVPROC MultiTexCoord4sv; - PFNGLMULTITEXCOORDP1UIPROC MultiTexCoordP1ui; - PFNGLMULTITEXCOORDP1UIVPROC MultiTexCoordP1uiv; - PFNGLMULTITEXCOORDP2UIPROC MultiTexCoordP2ui; - PFNGLMULTITEXCOORDP2UIVPROC MultiTexCoordP2uiv; - PFNGLMULTITEXCOORDP3UIPROC MultiTexCoordP3ui; - PFNGLMULTITEXCOORDP3UIVPROC MultiTexCoordP3uiv; - PFNGLMULTITEXCOORDP4UIPROC MultiTexCoordP4ui; - PFNGLMULTITEXCOORDP4UIVPROC MultiTexCoordP4uiv; - PFNGLNAMEDBUFFERDATAPROC NamedBufferData; - PFNGLNAMEDBUFFERSTORAGEPROC NamedBufferStorage; - PFNGLNAMEDBUFFERSUBDATAPROC NamedBufferSubData; - PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC NamedFramebufferDrawBuffer; - PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC NamedFramebufferDrawBuffers; - PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC NamedFramebufferParameteri; - PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC NamedFramebufferReadBuffer; - PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC NamedFramebufferRenderbuffer; - PFNGLNAMEDFRAMEBUFFERTEXTUREPROC NamedFramebufferTexture; - PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC NamedFramebufferTextureLayer; - PFNGLNAMEDRENDERBUFFERSTORAGEPROC NamedRenderbufferStorage; - PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC NamedRenderbufferStorageMultisample; - PFNGLNEWLISTPROC NewList; - PFNGLNORMAL3BPROC Normal3b; - PFNGLNORMAL3BVPROC Normal3bv; - PFNGLNORMAL3DPROC Normal3d; - PFNGLNORMAL3DVPROC Normal3dv; - PFNGLNORMAL3FPROC Normal3f; - PFNGLNORMAL3FVPROC Normal3fv; - PFNGLNORMAL3IPROC Normal3i; - PFNGLNORMAL3IVPROC Normal3iv; - PFNGLNORMAL3SPROC Normal3s; - PFNGLNORMAL3SVPROC Normal3sv; - PFNGLNORMALP3UIPROC NormalP3ui; - PFNGLNORMALP3UIVPROC NormalP3uiv; - PFNGLNORMALPOINTERPROC NormalPointer; - PFNGLOBJECTLABELPROC ObjectLabel; - PFNGLOBJECTPTRLABELPROC ObjectPtrLabel; - PFNGLORTHOPROC Ortho; - PFNGLPASSTHROUGHPROC PassThrough; - PFNGLPATCHPARAMETERFVPROC PatchParameterfv; - PFNGLPATCHPARAMETERIPROC PatchParameteri; - PFNGLPAUSETRANSFORMFEEDBACKPROC PauseTransformFeedback; - PFNGLPIXELMAPFVPROC PixelMapfv; - PFNGLPIXELMAPUIVPROC PixelMapuiv; - PFNGLPIXELMAPUSVPROC PixelMapusv; - PFNGLPIXELSTOREFPROC PixelStoref; - PFNGLPIXELSTOREIPROC PixelStorei; - PFNGLPIXELTRANSFERFPROC PixelTransferf; - PFNGLPIXELTRANSFERIPROC PixelTransferi; - PFNGLPIXELZOOMPROC PixelZoom; - PFNGLPOINTPARAMETERFPROC PointParameterf; - PFNGLPOINTPARAMETERFVPROC PointParameterfv; - PFNGLPOINTPARAMETERIPROC PointParameteri; - PFNGLPOINTPARAMETERIVPROC PointParameteriv; - PFNGLPOINTSIZEPROC PointSize; - PFNGLPOLYGONMODEPROC PolygonMode; - PFNGLPOLYGONOFFSETPROC PolygonOffset; - PFNGLPOLYGONOFFSETCLAMPPROC PolygonOffsetClamp; - PFNGLPOLYGONSTIPPLEPROC PolygonStipple; - PFNGLPOPATTRIBPROC PopAttrib; - PFNGLPOPCLIENTATTRIBPROC PopClientAttrib; - PFNGLPOPDEBUGGROUPPROC PopDebugGroup; - PFNGLPOPMATRIXPROC PopMatrix; - PFNGLPOPNAMEPROC PopName; - PFNGLPRIMITIVERESTARTINDEXPROC PrimitiveRestartIndex; - PFNGLPRIORITIZETEXTURESPROC PrioritizeTextures; - PFNGLPROGRAMBINARYPROC ProgramBinary; - PFNGLPROGRAMPARAMETERIPROC ProgramParameteri; - PFNGLPROGRAMUNIFORM1DPROC ProgramUniform1d; - PFNGLPROGRAMUNIFORM1DVPROC ProgramUniform1dv; - PFNGLPROGRAMUNIFORM1FPROC ProgramUniform1f; - PFNGLPROGRAMUNIFORM1FVPROC ProgramUniform1fv; - PFNGLPROGRAMUNIFORM1IPROC ProgramUniform1i; - PFNGLPROGRAMUNIFORM1IVPROC ProgramUniform1iv; - PFNGLPROGRAMUNIFORM1UIPROC ProgramUniform1ui; - PFNGLPROGRAMUNIFORM1UIVPROC ProgramUniform1uiv; - PFNGLPROGRAMUNIFORM2DPROC ProgramUniform2d; - PFNGLPROGRAMUNIFORM2DVPROC ProgramUniform2dv; - PFNGLPROGRAMUNIFORM2FPROC ProgramUniform2f; - PFNGLPROGRAMUNIFORM2FVPROC ProgramUniform2fv; - PFNGLPROGRAMUNIFORM2IPROC ProgramUniform2i; - PFNGLPROGRAMUNIFORM2IVPROC ProgramUniform2iv; - PFNGLPROGRAMUNIFORM2UIPROC ProgramUniform2ui; - PFNGLPROGRAMUNIFORM2UIVPROC ProgramUniform2uiv; - PFNGLPROGRAMUNIFORM3DPROC ProgramUniform3d; - PFNGLPROGRAMUNIFORM3DVPROC ProgramUniform3dv; - PFNGLPROGRAMUNIFORM3FPROC ProgramUniform3f; - PFNGLPROGRAMUNIFORM3FVPROC ProgramUniform3fv; - PFNGLPROGRAMUNIFORM3IPROC ProgramUniform3i; - PFNGLPROGRAMUNIFORM3IVPROC ProgramUniform3iv; - PFNGLPROGRAMUNIFORM3UIPROC ProgramUniform3ui; - PFNGLPROGRAMUNIFORM3UIVPROC ProgramUniform3uiv; - PFNGLPROGRAMUNIFORM4DPROC ProgramUniform4d; - PFNGLPROGRAMUNIFORM4DVPROC ProgramUniform4dv; - PFNGLPROGRAMUNIFORM4FPROC ProgramUniform4f; - PFNGLPROGRAMUNIFORM4FVPROC ProgramUniform4fv; - PFNGLPROGRAMUNIFORM4IPROC ProgramUniform4i; - PFNGLPROGRAMUNIFORM4IVPROC ProgramUniform4iv; - PFNGLPROGRAMUNIFORM4UIPROC ProgramUniform4ui; - PFNGLPROGRAMUNIFORM4UIVPROC ProgramUniform4uiv; - PFNGLPROGRAMUNIFORMMATRIX2DVPROC ProgramUniformMatrix2dv; - PFNGLPROGRAMUNIFORMMATRIX2FVPROC ProgramUniformMatrix2fv; - PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC ProgramUniformMatrix2x3dv; - PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC ProgramUniformMatrix2x3fv; - PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC ProgramUniformMatrix2x4dv; - PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC ProgramUniformMatrix2x4fv; - PFNGLPROGRAMUNIFORMMATRIX3DVPROC ProgramUniformMatrix3dv; - PFNGLPROGRAMUNIFORMMATRIX3FVPROC ProgramUniformMatrix3fv; - PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC ProgramUniformMatrix3x2dv; - PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC ProgramUniformMatrix3x2fv; - PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC ProgramUniformMatrix3x4dv; - PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC ProgramUniformMatrix3x4fv; - PFNGLPROGRAMUNIFORMMATRIX4DVPROC ProgramUniformMatrix4dv; - PFNGLPROGRAMUNIFORMMATRIX4FVPROC ProgramUniformMatrix4fv; - PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC ProgramUniformMatrix4x2dv; - PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC ProgramUniformMatrix4x2fv; - PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC ProgramUniformMatrix4x3dv; - PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC ProgramUniformMatrix4x3fv; - PFNGLPROVOKINGVERTEXPROC ProvokingVertex; - PFNGLPUSHATTRIBPROC PushAttrib; - PFNGLPUSHCLIENTATTRIBPROC PushClientAttrib; - PFNGLPUSHDEBUGGROUPPROC PushDebugGroup; - PFNGLPUSHMATRIXPROC PushMatrix; - PFNGLPUSHNAMEPROC PushName; - PFNGLQUERYCOUNTERPROC QueryCounter; - PFNGLRASTERPOS2DPROC RasterPos2d; - PFNGLRASTERPOS2DVPROC RasterPos2dv; - PFNGLRASTERPOS2FPROC RasterPos2f; - PFNGLRASTERPOS2FVPROC RasterPos2fv; - PFNGLRASTERPOS2IPROC RasterPos2i; - PFNGLRASTERPOS2IVPROC RasterPos2iv; - PFNGLRASTERPOS2SPROC RasterPos2s; - PFNGLRASTERPOS2SVPROC RasterPos2sv; - PFNGLRASTERPOS3DPROC RasterPos3d; - PFNGLRASTERPOS3DVPROC RasterPos3dv; - PFNGLRASTERPOS3FPROC RasterPos3f; - PFNGLRASTERPOS3FVPROC RasterPos3fv; - PFNGLRASTERPOS3IPROC RasterPos3i; - PFNGLRASTERPOS3IVPROC RasterPos3iv; - PFNGLRASTERPOS3SPROC RasterPos3s; - PFNGLRASTERPOS3SVPROC RasterPos3sv; - PFNGLRASTERPOS4DPROC RasterPos4d; - PFNGLRASTERPOS4DVPROC RasterPos4dv; - PFNGLRASTERPOS4FPROC RasterPos4f; - PFNGLRASTERPOS4FVPROC RasterPos4fv; - PFNGLRASTERPOS4IPROC RasterPos4i; - PFNGLRASTERPOS4IVPROC RasterPos4iv; - PFNGLRASTERPOS4SPROC RasterPos4s; - PFNGLRASTERPOS4SVPROC RasterPos4sv; - PFNGLREADBUFFERPROC ReadBuffer; - PFNGLREADPIXELSPROC ReadPixels; - PFNGLREADNPIXELSPROC ReadnPixels; - PFNGLRECTDPROC Rectd; - PFNGLRECTDVPROC Rectdv; - PFNGLRECTFPROC Rectf; - PFNGLRECTFVPROC Rectfv; - PFNGLRECTIPROC Recti; - PFNGLRECTIVPROC Rectiv; - PFNGLRECTSPROC Rects; - PFNGLRECTSVPROC Rectsv; - PFNGLRELEASESHADERCOMPILERPROC ReleaseShaderCompiler; - PFNGLRENDERMODEPROC RenderMode; - PFNGLRENDERBUFFERSTORAGEPROC RenderbufferStorage; - PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC RenderbufferStorageMultisample; - PFNGLRESUMETRANSFORMFEEDBACKPROC ResumeTransformFeedback; - PFNGLROTATEDPROC Rotated; - PFNGLROTATEFPROC Rotatef; - PFNGLSAMPLECOVERAGEPROC SampleCoverage; - PFNGLSAMPLEMASKIPROC SampleMaski; - PFNGLSAMPLERPARAMETERIIVPROC SamplerParameterIiv; - PFNGLSAMPLERPARAMETERIUIVPROC SamplerParameterIuiv; - PFNGLSAMPLERPARAMETERFPROC SamplerParameterf; - PFNGLSAMPLERPARAMETERFVPROC SamplerParameterfv; - PFNGLSAMPLERPARAMETERIPROC SamplerParameteri; - PFNGLSAMPLERPARAMETERIVPROC SamplerParameteriv; - PFNGLSCALEDPROC Scaled; - PFNGLSCALEFPROC Scalef; - PFNGLSCISSORPROC Scissor; - PFNGLSCISSORARRAYVPROC ScissorArrayv; - PFNGLSCISSORINDEXEDPROC ScissorIndexed; - PFNGLSCISSORINDEXEDVPROC ScissorIndexedv; - PFNGLSECONDARYCOLOR3BPROC SecondaryColor3b; - PFNGLSECONDARYCOLOR3BVPROC SecondaryColor3bv; - PFNGLSECONDARYCOLOR3DPROC SecondaryColor3d; - PFNGLSECONDARYCOLOR3DVPROC SecondaryColor3dv; - PFNGLSECONDARYCOLOR3FPROC SecondaryColor3f; - PFNGLSECONDARYCOLOR3FVPROC SecondaryColor3fv; - PFNGLSECONDARYCOLOR3IPROC SecondaryColor3i; - PFNGLSECONDARYCOLOR3IVPROC SecondaryColor3iv; - PFNGLSECONDARYCOLOR3SPROC SecondaryColor3s; - PFNGLSECONDARYCOLOR3SVPROC SecondaryColor3sv; - PFNGLSECONDARYCOLOR3UBPROC SecondaryColor3ub; - PFNGLSECONDARYCOLOR3UBVPROC SecondaryColor3ubv; - PFNGLSECONDARYCOLOR3UIPROC SecondaryColor3ui; - PFNGLSECONDARYCOLOR3UIVPROC SecondaryColor3uiv; - PFNGLSECONDARYCOLOR3USPROC SecondaryColor3us; - PFNGLSECONDARYCOLOR3USVPROC SecondaryColor3usv; - PFNGLSECONDARYCOLORP3UIPROC SecondaryColorP3ui; - PFNGLSECONDARYCOLORP3UIVPROC SecondaryColorP3uiv; - PFNGLSECONDARYCOLORPOINTERPROC SecondaryColorPointer; - PFNGLSELECTBUFFERPROC SelectBuffer; - PFNGLSHADEMODELPROC ShadeModel; - PFNGLSHADERBINARYPROC ShaderBinary; - PFNGLSHADERSOURCEPROC ShaderSource; - PFNGLSHADERSTORAGEBLOCKBINDINGPROC ShaderStorageBlockBinding; - PFNGLSPECIALIZESHADERPROC SpecializeShader; - PFNGLSTENCILFUNCPROC StencilFunc; - PFNGLSTENCILFUNCSEPARATEPROC StencilFuncSeparate; - PFNGLSTENCILMASKPROC StencilMask; - PFNGLSTENCILMASKSEPARATEPROC StencilMaskSeparate; - PFNGLSTENCILOPPROC StencilOp; - PFNGLSTENCILOPSEPARATEPROC StencilOpSeparate; - PFNGLTEXBUFFERPROC TexBuffer; - PFNGLTEXBUFFERRANGEPROC TexBufferRange; - PFNGLTEXCOORD1DPROC TexCoord1d; - PFNGLTEXCOORD1DVPROC TexCoord1dv; - PFNGLTEXCOORD1FPROC TexCoord1f; - PFNGLTEXCOORD1FVPROC TexCoord1fv; - PFNGLTEXCOORD1IPROC TexCoord1i; - PFNGLTEXCOORD1IVPROC TexCoord1iv; - PFNGLTEXCOORD1SPROC TexCoord1s; - PFNGLTEXCOORD1SVPROC TexCoord1sv; - PFNGLTEXCOORD2DPROC TexCoord2d; - PFNGLTEXCOORD2DVPROC TexCoord2dv; - PFNGLTEXCOORD2FPROC TexCoord2f; - PFNGLTEXCOORD2FVPROC TexCoord2fv; - PFNGLTEXCOORD2IPROC TexCoord2i; - PFNGLTEXCOORD2IVPROC TexCoord2iv; - PFNGLTEXCOORD2SPROC TexCoord2s; - PFNGLTEXCOORD2SVPROC TexCoord2sv; - PFNGLTEXCOORD3DPROC TexCoord3d; - PFNGLTEXCOORD3DVPROC TexCoord3dv; - PFNGLTEXCOORD3FPROC TexCoord3f; - PFNGLTEXCOORD3FVPROC TexCoord3fv; - PFNGLTEXCOORD3IPROC TexCoord3i; - PFNGLTEXCOORD3IVPROC TexCoord3iv; - PFNGLTEXCOORD3SPROC TexCoord3s; - PFNGLTEXCOORD3SVPROC TexCoord3sv; - PFNGLTEXCOORD4DPROC TexCoord4d; - PFNGLTEXCOORD4DVPROC TexCoord4dv; - PFNGLTEXCOORD4FPROC TexCoord4f; - PFNGLTEXCOORD4FVPROC TexCoord4fv; - PFNGLTEXCOORD4IPROC TexCoord4i; - PFNGLTEXCOORD4IVPROC TexCoord4iv; - PFNGLTEXCOORD4SPROC TexCoord4s; - PFNGLTEXCOORD4SVPROC TexCoord4sv; - PFNGLTEXCOORDP1UIPROC TexCoordP1ui; - PFNGLTEXCOORDP1UIVPROC TexCoordP1uiv; - PFNGLTEXCOORDP2UIPROC TexCoordP2ui; - PFNGLTEXCOORDP2UIVPROC TexCoordP2uiv; - PFNGLTEXCOORDP3UIPROC TexCoordP3ui; - PFNGLTEXCOORDP3UIVPROC TexCoordP3uiv; - PFNGLTEXCOORDP4UIPROC TexCoordP4ui; - PFNGLTEXCOORDP4UIVPROC TexCoordP4uiv; - PFNGLTEXCOORDPOINTERPROC TexCoordPointer; - PFNGLTEXENVFPROC TexEnvf; - PFNGLTEXENVFVPROC TexEnvfv; - PFNGLTEXENVIPROC TexEnvi; - PFNGLTEXENVIVPROC TexEnviv; - PFNGLTEXGENDPROC TexGend; - PFNGLTEXGENDVPROC TexGendv; - PFNGLTEXGENFPROC TexGenf; - PFNGLTEXGENFVPROC TexGenfv; - PFNGLTEXGENIPROC TexGeni; - PFNGLTEXGENIVPROC TexGeniv; - PFNGLTEXIMAGE1DPROC TexImage1D; - PFNGLTEXIMAGE2DPROC TexImage2D; - PFNGLTEXIMAGE2DMULTISAMPLEPROC TexImage2DMultisample; - PFNGLTEXIMAGE3DPROC TexImage3D; - PFNGLTEXIMAGE3DMULTISAMPLEPROC TexImage3DMultisample; - PFNGLTEXPARAMETERIIVPROC TexParameterIiv; - PFNGLTEXPARAMETERIUIVPROC TexParameterIuiv; - PFNGLTEXPARAMETERFPROC TexParameterf; - PFNGLTEXPARAMETERFVPROC TexParameterfv; - PFNGLTEXPARAMETERIPROC TexParameteri; - PFNGLTEXPARAMETERIVPROC TexParameteriv; - PFNGLTEXSTORAGE1DPROC TexStorage1D; - PFNGLTEXSTORAGE2DPROC TexStorage2D; - PFNGLTEXSTORAGE2DMULTISAMPLEPROC TexStorage2DMultisample; - PFNGLTEXSTORAGE3DPROC TexStorage3D; - PFNGLTEXSTORAGE3DMULTISAMPLEPROC TexStorage3DMultisample; - PFNGLTEXSUBIMAGE1DPROC TexSubImage1D; - PFNGLTEXSUBIMAGE2DPROC TexSubImage2D; - PFNGLTEXSUBIMAGE3DPROC TexSubImage3D; - PFNGLTEXTUREBARRIERPROC TextureBarrier; - PFNGLTEXTUREBUFFERPROC TextureBuffer; - PFNGLTEXTUREBUFFERRANGEPROC TextureBufferRange; - PFNGLTEXTUREPARAMETERIIVPROC TextureParameterIiv; - PFNGLTEXTUREPARAMETERIUIVPROC TextureParameterIuiv; - PFNGLTEXTUREPARAMETERFPROC TextureParameterf; - PFNGLTEXTUREPARAMETERFVPROC TextureParameterfv; - PFNGLTEXTUREPARAMETERIPROC TextureParameteri; - PFNGLTEXTUREPARAMETERIVPROC TextureParameteriv; - PFNGLTEXTURESTORAGE1DPROC TextureStorage1D; - PFNGLTEXTURESTORAGE2DPROC TextureStorage2D; - PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC TextureStorage2DMultisample; - PFNGLTEXTURESTORAGE3DPROC TextureStorage3D; - PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC TextureStorage3DMultisample; - PFNGLTEXTURESUBIMAGE1DPROC TextureSubImage1D; - PFNGLTEXTURESUBIMAGE2DPROC TextureSubImage2D; - PFNGLTEXTURESUBIMAGE3DPROC TextureSubImage3D; - PFNGLTEXTUREVIEWPROC TextureView; - PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC TransformFeedbackBufferBase; - PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC TransformFeedbackBufferRange; - PFNGLTRANSFORMFEEDBACKVARYINGSPROC TransformFeedbackVaryings; - PFNGLTRANSLATEDPROC Translated; - PFNGLTRANSLATEFPROC Translatef; - PFNGLUNIFORM1DPROC Uniform1d; - PFNGLUNIFORM1DVPROC Uniform1dv; - PFNGLUNIFORM1FPROC Uniform1f; - PFNGLUNIFORM1FVPROC Uniform1fv; - PFNGLUNIFORM1IPROC Uniform1i; - PFNGLUNIFORM1IVPROC Uniform1iv; - PFNGLUNIFORM1UIPROC Uniform1ui; - PFNGLUNIFORM1UIVPROC Uniform1uiv; - PFNGLUNIFORM2DPROC Uniform2d; - PFNGLUNIFORM2DVPROC Uniform2dv; - PFNGLUNIFORM2FPROC Uniform2f; - PFNGLUNIFORM2FVPROC Uniform2fv; - PFNGLUNIFORM2IPROC Uniform2i; - PFNGLUNIFORM2IVPROC Uniform2iv; - PFNGLUNIFORM2UIPROC Uniform2ui; - PFNGLUNIFORM2UIVPROC Uniform2uiv; - PFNGLUNIFORM3DPROC Uniform3d; - PFNGLUNIFORM3DVPROC Uniform3dv; - PFNGLUNIFORM3FPROC Uniform3f; - PFNGLUNIFORM3FVPROC Uniform3fv; - PFNGLUNIFORM3IPROC Uniform3i; - PFNGLUNIFORM3IVPROC Uniform3iv; - PFNGLUNIFORM3UIPROC Uniform3ui; - PFNGLUNIFORM3UIVPROC Uniform3uiv; - PFNGLUNIFORM4DPROC Uniform4d; - PFNGLUNIFORM4DVPROC Uniform4dv; - PFNGLUNIFORM4FPROC Uniform4f; - PFNGLUNIFORM4FVPROC Uniform4fv; - PFNGLUNIFORM4IPROC Uniform4i; - PFNGLUNIFORM4IVPROC Uniform4iv; - PFNGLUNIFORM4UIPROC Uniform4ui; - PFNGLUNIFORM4UIVPROC Uniform4uiv; - PFNGLUNIFORMBLOCKBINDINGPROC UniformBlockBinding; - PFNGLUNIFORMMATRIX2DVPROC UniformMatrix2dv; - PFNGLUNIFORMMATRIX2FVPROC UniformMatrix2fv; - PFNGLUNIFORMMATRIX2X3DVPROC UniformMatrix2x3dv; - PFNGLUNIFORMMATRIX2X3FVPROC UniformMatrix2x3fv; - PFNGLUNIFORMMATRIX2X4DVPROC UniformMatrix2x4dv; - PFNGLUNIFORMMATRIX2X4FVPROC UniformMatrix2x4fv; - PFNGLUNIFORMMATRIX3DVPROC UniformMatrix3dv; - PFNGLUNIFORMMATRIX3FVPROC UniformMatrix3fv; - PFNGLUNIFORMMATRIX3X2DVPROC UniformMatrix3x2dv; - PFNGLUNIFORMMATRIX3X2FVPROC UniformMatrix3x2fv; - PFNGLUNIFORMMATRIX3X4DVPROC UniformMatrix3x4dv; - PFNGLUNIFORMMATRIX3X4FVPROC UniformMatrix3x4fv; - PFNGLUNIFORMMATRIX4DVPROC UniformMatrix4dv; - PFNGLUNIFORMMATRIX4FVPROC UniformMatrix4fv; - PFNGLUNIFORMMATRIX4X2DVPROC UniformMatrix4x2dv; - PFNGLUNIFORMMATRIX4X2FVPROC UniformMatrix4x2fv; - PFNGLUNIFORMMATRIX4X3DVPROC UniformMatrix4x3dv; - PFNGLUNIFORMMATRIX4X3FVPROC UniformMatrix4x3fv; - PFNGLUNIFORMSUBROUTINESUIVPROC UniformSubroutinesuiv; - PFNGLUNMAPBUFFERPROC UnmapBuffer; - PFNGLUNMAPNAMEDBUFFERPROC UnmapNamedBuffer; - PFNGLUSEPROGRAMPROC UseProgram; - PFNGLUSEPROGRAMSTAGESPROC UseProgramStages; - PFNGLVALIDATEPROGRAMPROC ValidateProgram; - PFNGLVALIDATEPROGRAMPIPELINEPROC ValidateProgramPipeline; - PFNGLVERTEX2DPROC Vertex2d; - PFNGLVERTEX2DVPROC Vertex2dv; - PFNGLVERTEX2FPROC Vertex2f; - PFNGLVERTEX2FVPROC Vertex2fv; - PFNGLVERTEX2IPROC Vertex2i; - PFNGLVERTEX2IVPROC Vertex2iv; - PFNGLVERTEX2SPROC Vertex2s; - PFNGLVERTEX2SVPROC Vertex2sv; - PFNGLVERTEX3DPROC Vertex3d; - PFNGLVERTEX3DVPROC Vertex3dv; - PFNGLVERTEX3FPROC Vertex3f; - PFNGLVERTEX3FVPROC Vertex3fv; - PFNGLVERTEX3IPROC Vertex3i; - PFNGLVERTEX3IVPROC Vertex3iv; - PFNGLVERTEX3SPROC Vertex3s; - PFNGLVERTEX3SVPROC Vertex3sv; - PFNGLVERTEX4DPROC Vertex4d; - PFNGLVERTEX4DVPROC Vertex4dv; - PFNGLVERTEX4FPROC Vertex4f; - PFNGLVERTEX4FVPROC Vertex4fv; - PFNGLVERTEX4IPROC Vertex4i; - PFNGLVERTEX4IVPROC Vertex4iv; - PFNGLVERTEX4SPROC Vertex4s; - PFNGLVERTEX4SVPROC Vertex4sv; - PFNGLVERTEXARRAYATTRIBBINDINGPROC VertexArrayAttribBinding; - PFNGLVERTEXARRAYATTRIBFORMATPROC VertexArrayAttribFormat; - PFNGLVERTEXARRAYATTRIBIFORMATPROC VertexArrayAttribIFormat; - PFNGLVERTEXARRAYATTRIBLFORMATPROC VertexArrayAttribLFormat; - PFNGLVERTEXARRAYBINDINGDIVISORPROC VertexArrayBindingDivisor; - PFNGLVERTEXARRAYELEMENTBUFFERPROC VertexArrayElementBuffer; - PFNGLVERTEXARRAYVERTEXBUFFERPROC VertexArrayVertexBuffer; - PFNGLVERTEXARRAYVERTEXBUFFERSPROC VertexArrayVertexBuffers; - PFNGLVERTEXATTRIB1DPROC VertexAttrib1d; - PFNGLVERTEXATTRIB1DVPROC VertexAttrib1dv; - PFNGLVERTEXATTRIB1FPROC VertexAttrib1f; - PFNGLVERTEXATTRIB1FVPROC VertexAttrib1fv; - PFNGLVERTEXATTRIB1SPROC VertexAttrib1s; - PFNGLVERTEXATTRIB1SVPROC VertexAttrib1sv; - PFNGLVERTEXATTRIB2DPROC VertexAttrib2d; - PFNGLVERTEXATTRIB2DVPROC VertexAttrib2dv; - PFNGLVERTEXATTRIB2FPROC VertexAttrib2f; - PFNGLVERTEXATTRIB2FVPROC VertexAttrib2fv; - PFNGLVERTEXATTRIB2SPROC VertexAttrib2s; - PFNGLVERTEXATTRIB2SVPROC VertexAttrib2sv; - PFNGLVERTEXATTRIB3DPROC VertexAttrib3d; - PFNGLVERTEXATTRIB3DVPROC VertexAttrib3dv; - PFNGLVERTEXATTRIB3FPROC VertexAttrib3f; - PFNGLVERTEXATTRIB3FVPROC VertexAttrib3fv; - PFNGLVERTEXATTRIB3SPROC VertexAttrib3s; - PFNGLVERTEXATTRIB3SVPROC VertexAttrib3sv; - PFNGLVERTEXATTRIB4NBVPROC VertexAttrib4Nbv; - PFNGLVERTEXATTRIB4NIVPROC VertexAttrib4Niv; - PFNGLVERTEXATTRIB4NSVPROC VertexAttrib4Nsv; - PFNGLVERTEXATTRIB4NUBPROC VertexAttrib4Nub; - PFNGLVERTEXATTRIB4NUBVPROC VertexAttrib4Nubv; - PFNGLVERTEXATTRIB4NUIVPROC VertexAttrib4Nuiv; - PFNGLVERTEXATTRIB4NUSVPROC VertexAttrib4Nusv; - PFNGLVERTEXATTRIB4BVPROC VertexAttrib4bv; - PFNGLVERTEXATTRIB4DPROC VertexAttrib4d; - PFNGLVERTEXATTRIB4DVPROC VertexAttrib4dv; - PFNGLVERTEXATTRIB4FPROC VertexAttrib4f; - PFNGLVERTEXATTRIB4FVPROC VertexAttrib4fv; - PFNGLVERTEXATTRIB4IVPROC VertexAttrib4iv; - PFNGLVERTEXATTRIB4SPROC VertexAttrib4s; - PFNGLVERTEXATTRIB4SVPROC VertexAttrib4sv; - PFNGLVERTEXATTRIB4UBVPROC VertexAttrib4ubv; - PFNGLVERTEXATTRIB4UIVPROC VertexAttrib4uiv; - PFNGLVERTEXATTRIB4USVPROC VertexAttrib4usv; - PFNGLVERTEXATTRIBBINDINGPROC VertexAttribBinding; - PFNGLVERTEXATTRIBDIVISORPROC VertexAttribDivisor; - PFNGLVERTEXATTRIBFORMATPROC VertexAttribFormat; - PFNGLVERTEXATTRIBI1IPROC VertexAttribI1i; - PFNGLVERTEXATTRIBI1IVPROC VertexAttribI1iv; - PFNGLVERTEXATTRIBI1UIPROC VertexAttribI1ui; - PFNGLVERTEXATTRIBI1UIVPROC VertexAttribI1uiv; - PFNGLVERTEXATTRIBI2IPROC VertexAttribI2i; - PFNGLVERTEXATTRIBI2IVPROC VertexAttribI2iv; - PFNGLVERTEXATTRIBI2UIPROC VertexAttribI2ui; - PFNGLVERTEXATTRIBI2UIVPROC VertexAttribI2uiv; - PFNGLVERTEXATTRIBI3IPROC VertexAttribI3i; - PFNGLVERTEXATTRIBI3IVPROC VertexAttribI3iv; - PFNGLVERTEXATTRIBI3UIPROC VertexAttribI3ui; - PFNGLVERTEXATTRIBI3UIVPROC VertexAttribI3uiv; - PFNGLVERTEXATTRIBI4BVPROC VertexAttribI4bv; - PFNGLVERTEXATTRIBI4IPROC VertexAttribI4i; - PFNGLVERTEXATTRIBI4IVPROC VertexAttribI4iv; - PFNGLVERTEXATTRIBI4SVPROC VertexAttribI4sv; - PFNGLVERTEXATTRIBI4UBVPROC VertexAttribI4ubv; - PFNGLVERTEXATTRIBI4UIPROC VertexAttribI4ui; - PFNGLVERTEXATTRIBI4UIVPROC VertexAttribI4uiv; - PFNGLVERTEXATTRIBI4USVPROC VertexAttribI4usv; - PFNGLVERTEXATTRIBIFORMATPROC VertexAttribIFormat; - PFNGLVERTEXATTRIBIPOINTERPROC VertexAttribIPointer; - PFNGLVERTEXATTRIBL1DPROC VertexAttribL1d; - PFNGLVERTEXATTRIBL1DVPROC VertexAttribL1dv; - PFNGLVERTEXATTRIBL2DPROC VertexAttribL2d; - PFNGLVERTEXATTRIBL2DVPROC VertexAttribL2dv; - PFNGLVERTEXATTRIBL3DPROC VertexAttribL3d; - PFNGLVERTEXATTRIBL3DVPROC VertexAttribL3dv; - PFNGLVERTEXATTRIBL4DPROC VertexAttribL4d; - PFNGLVERTEXATTRIBL4DVPROC VertexAttribL4dv; - PFNGLVERTEXATTRIBLFORMATPROC VertexAttribLFormat; - PFNGLVERTEXATTRIBLPOINTERPROC VertexAttribLPointer; - PFNGLVERTEXATTRIBP1UIPROC VertexAttribP1ui; - PFNGLVERTEXATTRIBP1UIVPROC VertexAttribP1uiv; - PFNGLVERTEXATTRIBP2UIPROC VertexAttribP2ui; - PFNGLVERTEXATTRIBP2UIVPROC VertexAttribP2uiv; - PFNGLVERTEXATTRIBP3UIPROC VertexAttribP3ui; - PFNGLVERTEXATTRIBP3UIVPROC VertexAttribP3uiv; - PFNGLVERTEXATTRIBP4UIPROC VertexAttribP4ui; - PFNGLVERTEXATTRIBP4UIVPROC VertexAttribP4uiv; - PFNGLVERTEXATTRIBPOINTERPROC VertexAttribPointer; - PFNGLVERTEXBINDINGDIVISORPROC VertexBindingDivisor; - PFNGLVERTEXP2UIPROC VertexP2ui; - PFNGLVERTEXP2UIVPROC VertexP2uiv; - PFNGLVERTEXP3UIPROC VertexP3ui; - PFNGLVERTEXP3UIVPROC VertexP3uiv; - PFNGLVERTEXP4UIPROC VertexP4ui; - PFNGLVERTEXP4UIVPROC VertexP4uiv; - PFNGLVERTEXPOINTERPROC VertexPointer; - PFNGLVIEWPORTPROC Viewport; - PFNGLVIEWPORTARRAYVPROC ViewportArrayv; - PFNGLVIEWPORTINDEXEDFPROC ViewportIndexedf; - PFNGLVIEWPORTINDEXEDFVPROC ViewportIndexedfv; - PFNGLWAITSYNCPROC WaitSync; - PFNGLWINDOWPOS2DPROC WindowPos2d; - PFNGLWINDOWPOS2DVPROC WindowPos2dv; - PFNGLWINDOWPOS2FPROC WindowPos2f; - PFNGLWINDOWPOS2FVPROC WindowPos2fv; - PFNGLWINDOWPOS2IPROC WindowPos2i; - PFNGLWINDOWPOS2IVPROC WindowPos2iv; - PFNGLWINDOWPOS2SPROC WindowPos2s; - PFNGLWINDOWPOS2SVPROC WindowPos2sv; - PFNGLWINDOWPOS3DPROC WindowPos3d; - PFNGLWINDOWPOS3DVPROC WindowPos3dv; - PFNGLWINDOWPOS3FPROC WindowPos3f; - PFNGLWINDOWPOS3FVPROC WindowPos3fv; - PFNGLWINDOWPOS3IPROC WindowPos3i; - PFNGLWINDOWPOS3IVPROC WindowPos3iv; - PFNGLWINDOWPOS3SPROC WindowPos3s; - PFNGLWINDOWPOS3SVPROC WindowPos3sv; -} GladGLContext; - -GLAD_API_CALL int -gladLoadGLContextUserPtr(GladGLContext *context, GLADuserptrloadfunc load, void *userptr); -GLAD_API_CALL int -gladLoadGLContext(GladGLContext *context, GLADloadfunc load); - -#ifdef GLAD_GL - -GLAD_API_CALL int -gladLoaderLoadGLContext(GladGLContext *context); -GLAD_API_CALL void -gladLoaderUnloadGL(void); - -#endif - -#ifdef __cplusplus -} -#endif -#endif \ No newline at end of file diff --git a/third-party/glad/src/egl.c b/third-party/glad/src/egl.c deleted file mode 100644 index 30433b5c4ed..00000000000 --- a/third-party/glad/src/egl.c +++ /dev/null @@ -1,403 +0,0 @@ -#include -#include -#include -#include - -#ifndef GLAD_IMPL_UTIL_C_ -#define GLAD_IMPL_UTIL_C_ - -#ifdef _MSC_VER -#define GLAD_IMPL_UTIL_SSCANF sscanf_s -#else -#define GLAD_IMPL_UTIL_SSCANF sscanf -#endif - -#endif /* GLAD_IMPL_UTIL_C_ */ - -#ifdef __cplusplus -extern "C" { -#endif - - - -int GLAD_EGL_VERSION_1_0 = 0; -int GLAD_EGL_VERSION_1_1 = 0; -int GLAD_EGL_VERSION_1_2 = 0; -int GLAD_EGL_VERSION_1_3 = 0; -int GLAD_EGL_VERSION_1_4 = 0; -int GLAD_EGL_VERSION_1_5 = 0; - - - -PFNEGLBINDAPIPROC glad_eglBindAPI = NULL; -PFNEGLBINDTEXIMAGEPROC glad_eglBindTexImage = NULL; -PFNEGLCHOOSECONFIGPROC glad_eglChooseConfig = NULL; -PFNEGLCLIENTWAITSYNCPROC glad_eglClientWaitSync = NULL; -PFNEGLCOPYBUFFERSPROC glad_eglCopyBuffers = NULL; -PFNEGLCREATECONTEXTPROC glad_eglCreateContext = NULL; -PFNEGLCREATEIMAGEPROC glad_eglCreateImage = NULL; -PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC glad_eglCreatePbufferFromClientBuffer = NULL; -PFNEGLCREATEPBUFFERSURFACEPROC glad_eglCreatePbufferSurface = NULL; -PFNEGLCREATEPIXMAPSURFACEPROC glad_eglCreatePixmapSurface = NULL; -PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC glad_eglCreatePlatformPixmapSurface = NULL; -PFNEGLCREATEPLATFORMWINDOWSURFACEPROC glad_eglCreatePlatformWindowSurface = NULL; -PFNEGLCREATESYNCPROC glad_eglCreateSync = NULL; -PFNEGLCREATEWINDOWSURFACEPROC glad_eglCreateWindowSurface = NULL; -PFNEGLDESTROYCONTEXTPROC glad_eglDestroyContext = NULL; -PFNEGLDESTROYIMAGEPROC glad_eglDestroyImage = NULL; -PFNEGLDESTROYSURFACEPROC glad_eglDestroySurface = NULL; -PFNEGLDESTROYSYNCPROC glad_eglDestroySync = NULL; -PFNEGLGETCONFIGATTRIBPROC glad_eglGetConfigAttrib = NULL; -PFNEGLGETCONFIGSPROC glad_eglGetConfigs = NULL; -PFNEGLGETCURRENTCONTEXTPROC glad_eglGetCurrentContext = NULL; -PFNEGLGETCURRENTDISPLAYPROC glad_eglGetCurrentDisplay = NULL; -PFNEGLGETCURRENTSURFACEPROC glad_eglGetCurrentSurface = NULL; -PFNEGLGETDISPLAYPROC glad_eglGetDisplay = NULL; -PFNEGLGETERRORPROC glad_eglGetError = NULL; -PFNEGLGETPLATFORMDISPLAYPROC glad_eglGetPlatformDisplay = NULL; -PFNEGLGETPROCADDRESSPROC glad_eglGetProcAddress = NULL; -PFNEGLGETSYNCATTRIBPROC glad_eglGetSyncAttrib = NULL; -PFNEGLINITIALIZEPROC glad_eglInitialize = NULL; -PFNEGLMAKECURRENTPROC glad_eglMakeCurrent = NULL; -PFNEGLQUERYAPIPROC glad_eglQueryAPI = NULL; -PFNEGLQUERYCONTEXTPROC glad_eglQueryContext = NULL; -PFNEGLQUERYSTRINGPROC glad_eglQueryString = NULL; -PFNEGLQUERYSURFACEPROC glad_eglQuerySurface = NULL; -PFNEGLRELEASETEXIMAGEPROC glad_eglReleaseTexImage = NULL; -PFNEGLRELEASETHREADPROC glad_eglReleaseThread = NULL; -PFNEGLSURFACEATTRIBPROC glad_eglSurfaceAttrib = NULL; -PFNEGLSWAPBUFFERSPROC glad_eglSwapBuffers = NULL; -PFNEGLSWAPINTERVALPROC glad_eglSwapInterval = NULL; -PFNEGLTERMINATEPROC glad_eglTerminate = NULL; -PFNEGLWAITCLIENTPROC glad_eglWaitClient = NULL; -PFNEGLWAITGLPROC glad_eglWaitGL = NULL; -PFNEGLWAITNATIVEPROC glad_eglWaitNative = NULL; -PFNEGLWAITSYNCPROC glad_eglWaitSync = NULL; -PFNEGLCREATEIMAGEKHRPROC glad_eglCreateImageKHR = NULL; -PFNEGLDESTROYIMAGEKHRPROC glad_eglDestroyImageKHR = NULL; -PFNEGLQUERYDMABUFFORMATSEXTPROC glad_eglQueryDmaBufFormatsEXT = NULL; -PFNEGLQUERYDMABUFMODIFIERSEXTPROC glad_eglQueryDmaBufModifiersEXT = NULL; - - -static void glad_egl_load_EGL_VERSION_1_0( GLADuserptrloadfunc load, void* userptr) { - if(!GLAD_EGL_VERSION_1_0) return; - glad_eglChooseConfig = (PFNEGLCHOOSECONFIGPROC) load(userptr, "eglChooseConfig"); - glad_eglCopyBuffers = (PFNEGLCOPYBUFFERSPROC) load(userptr, "eglCopyBuffers"); - glad_eglCreateContext = (PFNEGLCREATECONTEXTPROC) load(userptr, "eglCreateContext"); - glad_eglCreatePbufferSurface = (PFNEGLCREATEPBUFFERSURFACEPROC) load(userptr, "eglCreatePbufferSurface"); - glad_eglCreatePixmapSurface = (PFNEGLCREATEPIXMAPSURFACEPROC) load(userptr, "eglCreatePixmapSurface"); - glad_eglCreateWindowSurface = (PFNEGLCREATEWINDOWSURFACEPROC) load(userptr, "eglCreateWindowSurface"); - glad_eglDestroyContext = (PFNEGLDESTROYCONTEXTPROC) load(userptr, "eglDestroyContext"); - glad_eglDestroySurface = (PFNEGLDESTROYSURFACEPROC) load(userptr, "eglDestroySurface"); - glad_eglGetConfigAttrib = (PFNEGLGETCONFIGATTRIBPROC) load(userptr, "eglGetConfigAttrib"); - glad_eglGetConfigs = (PFNEGLGETCONFIGSPROC) load(userptr, "eglGetConfigs"); - glad_eglGetCurrentDisplay = (PFNEGLGETCURRENTDISPLAYPROC) load(userptr, "eglGetCurrentDisplay"); - glad_eglGetCurrentSurface = (PFNEGLGETCURRENTSURFACEPROC) load(userptr, "eglGetCurrentSurface"); - glad_eglGetDisplay = (PFNEGLGETDISPLAYPROC) load(userptr, "eglGetDisplay"); - glad_eglGetError = (PFNEGLGETERRORPROC) load(userptr, "eglGetError"); - glad_eglGetProcAddress = (PFNEGLGETPROCADDRESSPROC) load(userptr, "eglGetProcAddress"); - glad_eglInitialize = (PFNEGLINITIALIZEPROC) load(userptr, "eglInitialize"); - glad_eglMakeCurrent = (PFNEGLMAKECURRENTPROC) load(userptr, "eglMakeCurrent"); - glad_eglQueryContext = (PFNEGLQUERYCONTEXTPROC) load(userptr, "eglQueryContext"); - glad_eglQueryString = (PFNEGLQUERYSTRINGPROC) load(userptr, "eglQueryString"); - glad_eglQuerySurface = (PFNEGLQUERYSURFACEPROC) load(userptr, "eglQuerySurface"); - glad_eglSwapBuffers = (PFNEGLSWAPBUFFERSPROC) load(userptr, "eglSwapBuffers"); - glad_eglTerminate = (PFNEGLTERMINATEPROC) load(userptr, "eglTerminate"); - glad_eglWaitGL = (PFNEGLWAITGLPROC) load(userptr, "eglWaitGL"); - glad_eglWaitNative = (PFNEGLWAITNATIVEPROC) load(userptr, "eglWaitNative"); -} -static void glad_egl_load_EGL_VERSION_1_1( GLADuserptrloadfunc load, void* userptr) { - if(!GLAD_EGL_VERSION_1_1) return; - glad_eglBindTexImage = (PFNEGLBINDTEXIMAGEPROC) load(userptr, "eglBindTexImage"); - glad_eglReleaseTexImage = (PFNEGLRELEASETEXIMAGEPROC) load(userptr, "eglReleaseTexImage"); - glad_eglSurfaceAttrib = (PFNEGLSURFACEATTRIBPROC) load(userptr, "eglSurfaceAttrib"); - glad_eglSwapInterval = (PFNEGLSWAPINTERVALPROC) load(userptr, "eglSwapInterval"); -} -static void glad_egl_load_EGL_VERSION_1_2( GLADuserptrloadfunc load, void* userptr) { - if(!GLAD_EGL_VERSION_1_2) return; - glad_eglBindAPI = (PFNEGLBINDAPIPROC) load(userptr, "eglBindAPI"); - glad_eglCreatePbufferFromClientBuffer = (PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC) load(userptr, "eglCreatePbufferFromClientBuffer"); - glad_eglQueryAPI = (PFNEGLQUERYAPIPROC) load(userptr, "eglQueryAPI"); - glad_eglReleaseThread = (PFNEGLRELEASETHREADPROC) load(userptr, "eglReleaseThread"); - glad_eglWaitClient = (PFNEGLWAITCLIENTPROC) load(userptr, "eglWaitClient"); - glad_eglCreateImageKHR = (PFNEGLCREATEIMAGEKHRPROC) load(userptr, "eglCreateImageKHR"); - glad_eglDestroyImageKHR = (PFNEGLDESTROYIMAGEKHRPROC) load(userptr, "eglDestroyImageKHR"); -} -static void glad_egl_load_EGL_VERSION_1_4( GLADuserptrloadfunc load, void* userptr) { - if(!GLAD_EGL_VERSION_1_4) return; - glad_eglGetCurrentContext = (PFNEGLGETCURRENTCONTEXTPROC) load(userptr, "eglGetCurrentContext"); -} -static void glad_egl_load_EGL_VERSION_1_5( GLADuserptrloadfunc load, void* userptr) { - if(!GLAD_EGL_VERSION_1_5) return; - glad_eglClientWaitSync = (PFNEGLCLIENTWAITSYNCPROC) load(userptr, "eglClientWaitSync"); - glad_eglCreateImage = (PFNEGLCREATEIMAGEPROC) load(userptr, "eglCreateImage"); - glad_eglCreatePlatformPixmapSurface = (PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC) load(userptr, "eglCreatePlatformPixmapSurface"); - glad_eglCreatePlatformWindowSurface = (PFNEGLCREATEPLATFORMWINDOWSURFACEPROC) load(userptr, "eglCreatePlatformWindowSurface"); - glad_eglCreateSync = (PFNEGLCREATESYNCPROC) load(userptr, "eglCreateSync"); - glad_eglDestroyImage = (PFNEGLDESTROYIMAGEPROC) load(userptr, "eglDestroyImage"); - glad_eglDestroySync = (PFNEGLDESTROYSYNCPROC) load(userptr, "eglDestroySync"); - glad_eglGetPlatformDisplay = (PFNEGLGETPLATFORMDISPLAYPROC) load(userptr, "eglGetPlatformDisplay"); - glad_eglGetSyncAttrib = (PFNEGLGETSYNCATTRIBPROC) load(userptr, "eglGetSyncAttrib"); - glad_eglWaitSync = (PFNEGLWAITSYNCPROC) load(userptr, "eglWaitSync"); -} -static void glad_egl_load_EGL_EXT_image_dma_buf_import_modifiers( GLADuserptrloadfunc load, void* userptr) { - glad_eglQueryDmaBufFormatsEXT = (PFNEGLQUERYDMABUFFORMATSEXTPROC) load(userptr, "eglQueryDmaBufFormatsEXT"); - glad_eglQueryDmaBufModifiersEXT = (PFNEGLQUERYDMABUFMODIFIERSEXTPROC) load(userptr, "eglQueryDmaBufModifiersEXT"); -} - - -static int glad_egl_get_extensions(EGLDisplay display, const char **extensions) { - *extensions = eglQueryString(display, EGL_EXTENSIONS); - - return extensions != NULL; -} - -static int glad_egl_has_extension(const char *extensions, const char *ext) { - const char *loc; - const char *terminator; - if(extensions == NULL) { - return 0; - } - while(1) { - loc = strstr(extensions, ext); - if(loc == NULL) { - return 0; - } - terminator = loc + strlen(ext); - if((loc == extensions || *(loc - 1) == ' ') && - (*terminator == ' ' || *terminator == '\0')) { - return 1; - } - extensions = terminator; - } -} - -static GLADapiproc glad_egl_get_proc_from_userptr(void *userptr, const char *name) { - return (GLAD_GNUC_EXTENSION (GLADapiproc (*)(const char *name)) userptr)(name); -} - -static int glad_egl_find_extensions_egl(EGLDisplay display) { - const char *extensions; - if (!glad_egl_get_extensions(display, &extensions)) return 0; - - (void) glad_egl_has_extension; - - return 1; -} - -static int glad_egl_find_core_egl(EGLDisplay display) { - int major, minor; - const char *version; - - if (display == NULL) { - display = EGL_NO_DISPLAY; /* this is usually NULL, better safe than sorry */ - } - if (display == EGL_NO_DISPLAY) { - display = eglGetCurrentDisplay(); - } -#ifdef EGL_VERSION_1_4 - if (display == EGL_NO_DISPLAY) { - display = eglGetDisplay(EGL_DEFAULT_DISPLAY); - } -#endif -#ifndef EGL_VERSION_1_5 - if (display == EGL_NO_DISPLAY) { - return 0; - } -#endif - - version = eglQueryString(display, EGL_VERSION); - (void) eglGetError(); - - if (version == NULL) { - major = 1; - minor = 5; // We need version 1.5 anyway - } else { - GLAD_IMPL_UTIL_SSCANF(version, "%d.%d", &major, &minor); - } - - GLAD_EGL_VERSION_1_0 = (major == 1 && minor >= 0) || major > 1; - GLAD_EGL_VERSION_1_1 = (major == 1 && minor >= 1) || major > 1; - GLAD_EGL_VERSION_1_2 = (major == 1 && minor >= 2) || major > 1; - GLAD_EGL_VERSION_1_3 = (major == 1 && minor >= 3) || major > 1; - GLAD_EGL_VERSION_1_4 = (major == 1 && minor >= 4) || major > 1; - GLAD_EGL_VERSION_1_5 = (major == 1 && minor >= 5) || major > 1; - - return GLAD_MAKE_VERSION(major, minor); -} - -int gladLoadEGLUserPtr(EGLDisplay display, GLADuserptrloadfunc load, void* userptr) { - int version; - eglGetDisplay = (PFNEGLGETDISPLAYPROC) load(userptr, "eglGetDisplay"); - eglGetCurrentDisplay = (PFNEGLGETCURRENTDISPLAYPROC) load(userptr, "eglGetCurrentDisplay"); - eglQueryString = (PFNEGLQUERYSTRINGPROC) load(userptr, "eglQueryString"); - eglGetError = (PFNEGLGETERRORPROC) load(userptr, "eglGetError"); - if (eglGetDisplay == NULL || eglGetCurrentDisplay == NULL || eglQueryString == NULL || eglGetError == NULL) return 0; - - version = glad_egl_find_core_egl(display); - if (!version) return 0; - glad_egl_load_EGL_VERSION_1_0(load, userptr); - glad_egl_load_EGL_VERSION_1_1(load, userptr); - glad_egl_load_EGL_VERSION_1_2(load, userptr); - glad_egl_load_EGL_VERSION_1_4(load, userptr); - glad_egl_load_EGL_VERSION_1_5(load, userptr); - glad_egl_load_EGL_EXT_image_dma_buf_import_modifiers(load, userptr); - - if (!glad_egl_find_extensions_egl(display)) return 0; - - return version; -} - -int gladLoadEGL(EGLDisplay display, GLADloadfunc load) { - return gladLoadEGLUserPtr(display, glad_egl_get_proc_from_userptr, GLAD_GNUC_EXTENSION (void*) load); -} - - - -#ifdef GLAD_EGL - -#ifndef GLAD_LOADER_LIBRARY_C_ -#define GLAD_LOADER_LIBRARY_C_ - -#include -#include - -#if GLAD_PLATFORM_WIN32 -#include -#else -#include -#endif - - -static void* glad_get_dlopen_handle(const char *lib_names[], int length) { - void *handle = NULL; - int i; - - for (i = 0; i < length; ++i) { -#if GLAD_PLATFORM_WIN32 - #if GLAD_PLATFORM_UWP - size_t buffer_size = (strlen(lib_names[i]) + 1) * sizeof(WCHAR); - LPWSTR buffer = (LPWSTR) malloc(buffer_size); - if (buffer != NULL) { - int ret = MultiByteToWideChar(CP_ACP, 0, lib_names[i], -1, buffer, buffer_size); - if (ret != 0) { - handle = (void*) LoadPackagedLibrary(buffer, 0); - } - free((void*) buffer); - } - #else - handle = (void*) LoadLibraryA(lib_names[i]); - #endif -#else - handle = dlopen(lib_names[i], RTLD_LAZY | RTLD_LOCAL); -#endif - if (handle != NULL) { - return handle; - } - } - - return NULL; -} - -static void glad_close_dlopen_handle(void* handle) { - if (handle != NULL) { -#if GLAD_PLATFORM_WIN32 - FreeLibrary((HMODULE) handle); -#else - dlclose(handle); -#endif - } -} - -static GLADapiproc glad_dlsym_handle(void* handle, const char *name) { - if (handle == NULL) { - return NULL; - } - -#if GLAD_PLATFORM_WIN32 - return (GLADapiproc) GetProcAddress((HMODULE) handle, name); -#else - return GLAD_GNUC_EXTENSION (GLADapiproc) dlsym(handle, name); -#endif -} - -#endif /* GLAD_LOADER_LIBRARY_C_ */ - -struct _glad_egl_userptr { - void *handle; - PFNEGLGETPROCADDRESSPROC get_proc_address_ptr; -}; - -static GLADapiproc glad_egl_get_proc(void *vuserptr, const char* name) { - struct _glad_egl_userptr userptr = *(struct _glad_egl_userptr*) vuserptr; - GLADapiproc result = NULL; - - result = glad_dlsym_handle(userptr.handle, name); - if (result == NULL) { - result = GLAD_GNUC_EXTENSION (GLADapiproc) userptr.get_proc_address_ptr(name); - } - - return result; -} - -static void* _egl_handle = NULL; - -static void* glad_egl_dlopen_handle(void) { -#if GLAD_PLATFORM_APPLE - static const char *NAMES[] = {"libEGL.dylib"}; -#elif GLAD_PLATFORM_WIN32 - static const char *NAMES[] = {"libEGL.dll", "EGL.dll"}; -#else - static const char *NAMES[] = {"libEGL.so.1", "libEGL.so"}; -#endif - - if (_egl_handle == NULL) { - _egl_handle = glad_get_dlopen_handle(NAMES, sizeof(NAMES) / sizeof(NAMES[0])); - } - - return _egl_handle; -} - -static struct _glad_egl_userptr glad_egl_build_userptr(void *handle) { - struct _glad_egl_userptr userptr; - userptr.handle = handle; - userptr.get_proc_address_ptr = (PFNEGLGETPROCADDRESSPROC) glad_dlsym_handle(handle, "eglGetProcAddress"); - return userptr; -} - -int gladLoaderLoadEGL(EGLDisplay display) { - int version = 0; - void *handle = NULL; - int did_load = 0; - struct _glad_egl_userptr userptr; - - did_load = _egl_handle == NULL; - handle = glad_egl_dlopen_handle(); - if (handle != NULL) { - userptr = glad_egl_build_userptr(handle); - - if (userptr.get_proc_address_ptr != NULL) { - version = gladLoadEGLUserPtr(display, glad_egl_get_proc, &userptr); - } - - if (!version && did_load) { - gladLoaderUnloadEGL(); - } - } - - return version; -} - - -void gladLoaderUnloadEGL() { - if (_egl_handle != NULL) { - glad_close_dlopen_handle(_egl_handle); - _egl_handle = NULL; - } -} - -#endif /* GLAD_EGL */ - -#ifdef __cplusplus -} -#endif diff --git a/third-party/glad/src/gl.c b/third-party/glad/src/gl.c deleted file mode 100644 index a3989cf61d0..00000000000 --- a/third-party/glad/src/gl.c +++ /dev/null @@ -1,1514 +0,0 @@ -#include -#include -#include -#include - -#ifndef GLAD_IMPL_UTIL_C_ -#define GLAD_IMPL_UTIL_C_ - -#ifdef _MSC_VER -#define GLAD_IMPL_UTIL_SSCANF sscanf_s -#else -#define GLAD_IMPL_UTIL_SSCANF sscanf -#endif - -#endif /* GLAD_IMPL_UTIL_C_ */ - -#ifdef __cplusplus -extern "C" { -#endif - - - - - - - - -static void glad_gl_load_GL_VERSION_1_0(GladGLContext *context, GLADuserptrloadfunc load, void* userptr) { - if(!context->VERSION_1_0) return; - context->Accum = (PFNGLACCUMPROC) load(userptr, "glAccum"); - context->AlphaFunc = (PFNGLALPHAFUNCPROC) load(userptr, "glAlphaFunc"); - context->Begin = (PFNGLBEGINPROC) load(userptr, "glBegin"); - context->Bitmap = (PFNGLBITMAPPROC) load(userptr, "glBitmap"); - context->BlendFunc = (PFNGLBLENDFUNCPROC) load(userptr, "glBlendFunc"); - context->CallList = (PFNGLCALLLISTPROC) load(userptr, "glCallList"); - context->CallLists = (PFNGLCALLLISTSPROC) load(userptr, "glCallLists"); - context->Clear = (PFNGLCLEARPROC) load(userptr, "glClear"); - context->ClearAccum = (PFNGLCLEARACCUMPROC) load(userptr, "glClearAccum"); - context->ClearColor = (PFNGLCLEARCOLORPROC) load(userptr, "glClearColor"); - context->ClearDepth = (PFNGLCLEARDEPTHPROC) load(userptr, "glClearDepth"); - context->ClearIndex = (PFNGLCLEARINDEXPROC) load(userptr, "glClearIndex"); - context->ClearStencil = (PFNGLCLEARSTENCILPROC) load(userptr, "glClearStencil"); - context->ClipPlane = (PFNGLCLIPPLANEPROC) load(userptr, "glClipPlane"); - context->Color3b = (PFNGLCOLOR3BPROC) load(userptr, "glColor3b"); - context->Color3bv = (PFNGLCOLOR3BVPROC) load(userptr, "glColor3bv"); - context->Color3d = (PFNGLCOLOR3DPROC) load(userptr, "glColor3d"); - context->Color3dv = (PFNGLCOLOR3DVPROC) load(userptr, "glColor3dv"); - context->Color3f = (PFNGLCOLOR3FPROC) load(userptr, "glColor3f"); - context->Color3fv = (PFNGLCOLOR3FVPROC) load(userptr, "glColor3fv"); - context->Color3i = (PFNGLCOLOR3IPROC) load(userptr, "glColor3i"); - context->Color3iv = (PFNGLCOLOR3IVPROC) load(userptr, "glColor3iv"); - context->Color3s = (PFNGLCOLOR3SPROC) load(userptr, "glColor3s"); - context->Color3sv = (PFNGLCOLOR3SVPROC) load(userptr, "glColor3sv"); - context->Color3ub = (PFNGLCOLOR3UBPROC) load(userptr, "glColor3ub"); - context->Color3ubv = (PFNGLCOLOR3UBVPROC) load(userptr, "glColor3ubv"); - context->Color3ui = (PFNGLCOLOR3UIPROC) load(userptr, "glColor3ui"); - context->Color3uiv = (PFNGLCOLOR3UIVPROC) load(userptr, "glColor3uiv"); - context->Color3us = (PFNGLCOLOR3USPROC) load(userptr, "glColor3us"); - context->Color3usv = (PFNGLCOLOR3USVPROC) load(userptr, "glColor3usv"); - context->Color4b = (PFNGLCOLOR4BPROC) load(userptr, "glColor4b"); - context->Color4bv = (PFNGLCOLOR4BVPROC) load(userptr, "glColor4bv"); - context->Color4d = (PFNGLCOLOR4DPROC) load(userptr, "glColor4d"); - context->Color4dv = (PFNGLCOLOR4DVPROC) load(userptr, "glColor4dv"); - context->Color4f = (PFNGLCOLOR4FPROC) load(userptr, "glColor4f"); - context->Color4fv = (PFNGLCOLOR4FVPROC) load(userptr, "glColor4fv"); - context->Color4i = (PFNGLCOLOR4IPROC) load(userptr, "glColor4i"); - context->Color4iv = (PFNGLCOLOR4IVPROC) load(userptr, "glColor4iv"); - context->Color4s = (PFNGLCOLOR4SPROC) load(userptr, "glColor4s"); - context->Color4sv = (PFNGLCOLOR4SVPROC) load(userptr, "glColor4sv"); - context->Color4ub = (PFNGLCOLOR4UBPROC) load(userptr, "glColor4ub"); - context->Color4ubv = (PFNGLCOLOR4UBVPROC) load(userptr, "glColor4ubv"); - context->Color4ui = (PFNGLCOLOR4UIPROC) load(userptr, "glColor4ui"); - context->Color4uiv = (PFNGLCOLOR4UIVPROC) load(userptr, "glColor4uiv"); - context->Color4us = (PFNGLCOLOR4USPROC) load(userptr, "glColor4us"); - context->Color4usv = (PFNGLCOLOR4USVPROC) load(userptr, "glColor4usv"); - context->ColorMask = (PFNGLCOLORMASKPROC) load(userptr, "glColorMask"); - context->ColorMaterial = (PFNGLCOLORMATERIALPROC) load(userptr, "glColorMaterial"); - context->CopyPixels = (PFNGLCOPYPIXELSPROC) load(userptr, "glCopyPixels"); - context->CullFace = (PFNGLCULLFACEPROC) load(userptr, "glCullFace"); - context->DeleteLists = (PFNGLDELETELISTSPROC) load(userptr, "glDeleteLists"); - context->DepthFunc = (PFNGLDEPTHFUNCPROC) load(userptr, "glDepthFunc"); - context->DepthMask = (PFNGLDEPTHMASKPROC) load(userptr, "glDepthMask"); - context->DepthRange = (PFNGLDEPTHRANGEPROC) load(userptr, "glDepthRange"); - context->Disable = (PFNGLDISABLEPROC) load(userptr, "glDisable"); - context->DrawBuffer = (PFNGLDRAWBUFFERPROC) load(userptr, "glDrawBuffer"); - context->DrawPixels = (PFNGLDRAWPIXELSPROC) load(userptr, "glDrawPixels"); - context->EdgeFlag = (PFNGLEDGEFLAGPROC) load(userptr, "glEdgeFlag"); - context->EdgeFlagv = (PFNGLEDGEFLAGVPROC) load(userptr, "glEdgeFlagv"); - context->Enable = (PFNGLENABLEPROC) load(userptr, "glEnable"); - context->End = (PFNGLENDPROC) load(userptr, "glEnd"); - context->EndList = (PFNGLENDLISTPROC) load(userptr, "glEndList"); - context->EvalCoord1d = (PFNGLEVALCOORD1DPROC) load(userptr, "glEvalCoord1d"); - context->EvalCoord1dv = (PFNGLEVALCOORD1DVPROC) load(userptr, "glEvalCoord1dv"); - context->EvalCoord1f = (PFNGLEVALCOORD1FPROC) load(userptr, "glEvalCoord1f"); - context->EvalCoord1fv = (PFNGLEVALCOORD1FVPROC) load(userptr, "glEvalCoord1fv"); - context->EvalCoord2d = (PFNGLEVALCOORD2DPROC) load(userptr, "glEvalCoord2d"); - context->EvalCoord2dv = (PFNGLEVALCOORD2DVPROC) load(userptr, "glEvalCoord2dv"); - context->EvalCoord2f = (PFNGLEVALCOORD2FPROC) load(userptr, "glEvalCoord2f"); - context->EvalCoord2fv = (PFNGLEVALCOORD2FVPROC) load(userptr, "glEvalCoord2fv"); - context->EvalMesh1 = (PFNGLEVALMESH1PROC) load(userptr, "glEvalMesh1"); - context->EvalMesh2 = (PFNGLEVALMESH2PROC) load(userptr, "glEvalMesh2"); - context->EvalPoint1 = (PFNGLEVALPOINT1PROC) load(userptr, "glEvalPoint1"); - context->EvalPoint2 = (PFNGLEVALPOINT2PROC) load(userptr, "glEvalPoint2"); - context->FeedbackBuffer = (PFNGLFEEDBACKBUFFERPROC) load(userptr, "glFeedbackBuffer"); - context->Finish = (PFNGLFINISHPROC) load(userptr, "glFinish"); - context->Flush = (PFNGLFLUSHPROC) load(userptr, "glFlush"); - context->Fogf = (PFNGLFOGFPROC) load(userptr, "glFogf"); - context->Fogfv = (PFNGLFOGFVPROC) load(userptr, "glFogfv"); - context->Fogi = (PFNGLFOGIPROC) load(userptr, "glFogi"); - context->Fogiv = (PFNGLFOGIVPROC) load(userptr, "glFogiv"); - context->FrontFace = (PFNGLFRONTFACEPROC) load(userptr, "glFrontFace"); - context->Frustum = (PFNGLFRUSTUMPROC) load(userptr, "glFrustum"); - context->GenLists = (PFNGLGENLISTSPROC) load(userptr, "glGenLists"); - context->GetBooleanv = (PFNGLGETBOOLEANVPROC) load(userptr, "glGetBooleanv"); - context->GetClipPlane = (PFNGLGETCLIPPLANEPROC) load(userptr, "glGetClipPlane"); - context->GetDoublev = (PFNGLGETDOUBLEVPROC) load(userptr, "glGetDoublev"); - context->GetError = (PFNGLGETERRORPROC) load(userptr, "glGetError"); - context->GetFloatv = (PFNGLGETFLOATVPROC) load(userptr, "glGetFloatv"); - context->GetIntegerv = (PFNGLGETINTEGERVPROC) load(userptr, "glGetIntegerv"); - context->GetLightfv = (PFNGLGETLIGHTFVPROC) load(userptr, "glGetLightfv"); - context->GetLightiv = (PFNGLGETLIGHTIVPROC) load(userptr, "glGetLightiv"); - context->GetMapdv = (PFNGLGETMAPDVPROC) load(userptr, "glGetMapdv"); - context->GetMapfv = (PFNGLGETMAPFVPROC) load(userptr, "glGetMapfv"); - context->GetMapiv = (PFNGLGETMAPIVPROC) load(userptr, "glGetMapiv"); - context->GetMaterialfv = (PFNGLGETMATERIALFVPROC) load(userptr, "glGetMaterialfv"); - context->GetMaterialiv = (PFNGLGETMATERIALIVPROC) load(userptr, "glGetMaterialiv"); - context->GetPixelMapfv = (PFNGLGETPIXELMAPFVPROC) load(userptr, "glGetPixelMapfv"); - context->GetPixelMapuiv = (PFNGLGETPIXELMAPUIVPROC) load(userptr, "glGetPixelMapuiv"); - context->GetPixelMapusv = (PFNGLGETPIXELMAPUSVPROC) load(userptr, "glGetPixelMapusv"); - context->GetPolygonStipple = (PFNGLGETPOLYGONSTIPPLEPROC) load(userptr, "glGetPolygonStipple"); - context->GetString = (PFNGLGETSTRINGPROC) load(userptr, "glGetString"); - context->GetTexEnvfv = (PFNGLGETTEXENVFVPROC) load(userptr, "glGetTexEnvfv"); - context->GetTexEnviv = (PFNGLGETTEXENVIVPROC) load(userptr, "glGetTexEnviv"); - context->GetTexGendv = (PFNGLGETTEXGENDVPROC) load(userptr, "glGetTexGendv"); - context->GetTexGenfv = (PFNGLGETTEXGENFVPROC) load(userptr, "glGetTexGenfv"); - context->GetTexGeniv = (PFNGLGETTEXGENIVPROC) load(userptr, "glGetTexGeniv"); - context->GetTexImage = (PFNGLGETTEXIMAGEPROC) load(userptr, "glGetTexImage"); - context->GetTexLevelParameterfv = (PFNGLGETTEXLEVELPARAMETERFVPROC) load(userptr, "glGetTexLevelParameterfv"); - context->GetTexLevelParameteriv = (PFNGLGETTEXLEVELPARAMETERIVPROC) load(userptr, "glGetTexLevelParameteriv"); - context->GetTexParameterfv = (PFNGLGETTEXPARAMETERFVPROC) load(userptr, "glGetTexParameterfv"); - context->GetTexParameteriv = (PFNGLGETTEXPARAMETERIVPROC) load(userptr, "glGetTexParameteriv"); - context->Hint = (PFNGLHINTPROC) load(userptr, "glHint"); - context->IndexMask = (PFNGLINDEXMASKPROC) load(userptr, "glIndexMask"); - context->Indexd = (PFNGLINDEXDPROC) load(userptr, "glIndexd"); - context->Indexdv = (PFNGLINDEXDVPROC) load(userptr, "glIndexdv"); - context->Indexf = (PFNGLINDEXFPROC) load(userptr, "glIndexf"); - context->Indexfv = (PFNGLINDEXFVPROC) load(userptr, "glIndexfv"); - context->Indexi = (PFNGLINDEXIPROC) load(userptr, "glIndexi"); - context->Indexiv = (PFNGLINDEXIVPROC) load(userptr, "glIndexiv"); - context->Indexs = (PFNGLINDEXSPROC) load(userptr, "glIndexs"); - context->Indexsv = (PFNGLINDEXSVPROC) load(userptr, "glIndexsv"); - context->InitNames = (PFNGLINITNAMESPROC) load(userptr, "glInitNames"); - context->IsEnabled = (PFNGLISENABLEDPROC) load(userptr, "glIsEnabled"); - context->IsList = (PFNGLISLISTPROC) load(userptr, "glIsList"); - context->LightModelf = (PFNGLLIGHTMODELFPROC) load(userptr, "glLightModelf"); - context->LightModelfv = (PFNGLLIGHTMODELFVPROC) load(userptr, "glLightModelfv"); - context->LightModeli = (PFNGLLIGHTMODELIPROC) load(userptr, "glLightModeli"); - context->LightModeliv = (PFNGLLIGHTMODELIVPROC) load(userptr, "glLightModeliv"); - context->Lightf = (PFNGLLIGHTFPROC) load(userptr, "glLightf"); - context->Lightfv = (PFNGLLIGHTFVPROC) load(userptr, "glLightfv"); - context->Lighti = (PFNGLLIGHTIPROC) load(userptr, "glLighti"); - context->Lightiv = (PFNGLLIGHTIVPROC) load(userptr, "glLightiv"); - context->LineStipple = (PFNGLLINESTIPPLEPROC) load(userptr, "glLineStipple"); - context->LineWidth = (PFNGLLINEWIDTHPROC) load(userptr, "glLineWidth"); - context->ListBase = (PFNGLLISTBASEPROC) load(userptr, "glListBase"); - context->LoadIdentity = (PFNGLLOADIDENTITYPROC) load(userptr, "glLoadIdentity"); - context->LoadMatrixd = (PFNGLLOADMATRIXDPROC) load(userptr, "glLoadMatrixd"); - context->LoadMatrixf = (PFNGLLOADMATRIXFPROC) load(userptr, "glLoadMatrixf"); - context->LoadName = (PFNGLLOADNAMEPROC) load(userptr, "glLoadName"); - context->LogicOp = (PFNGLLOGICOPPROC) load(userptr, "glLogicOp"); - context->Map1d = (PFNGLMAP1DPROC) load(userptr, "glMap1d"); - context->Map1f = (PFNGLMAP1FPROC) load(userptr, "glMap1f"); - context->Map2d = (PFNGLMAP2DPROC) load(userptr, "glMap2d"); - context->Map2f = (PFNGLMAP2FPROC) load(userptr, "glMap2f"); - context->MapGrid1d = (PFNGLMAPGRID1DPROC) load(userptr, "glMapGrid1d"); - context->MapGrid1f = (PFNGLMAPGRID1FPROC) load(userptr, "glMapGrid1f"); - context->MapGrid2d = (PFNGLMAPGRID2DPROC) load(userptr, "glMapGrid2d"); - context->MapGrid2f = (PFNGLMAPGRID2FPROC) load(userptr, "glMapGrid2f"); - context->Materialf = (PFNGLMATERIALFPROC) load(userptr, "glMaterialf"); - context->Materialfv = (PFNGLMATERIALFVPROC) load(userptr, "glMaterialfv"); - context->Materiali = (PFNGLMATERIALIPROC) load(userptr, "glMateriali"); - context->Materialiv = (PFNGLMATERIALIVPROC) load(userptr, "glMaterialiv"); - context->MatrixMode = (PFNGLMATRIXMODEPROC) load(userptr, "glMatrixMode"); - context->MultMatrixd = (PFNGLMULTMATRIXDPROC) load(userptr, "glMultMatrixd"); - context->MultMatrixf = (PFNGLMULTMATRIXFPROC) load(userptr, "glMultMatrixf"); - context->NewList = (PFNGLNEWLISTPROC) load(userptr, "glNewList"); - context->Normal3b = (PFNGLNORMAL3BPROC) load(userptr, "glNormal3b"); - context->Normal3bv = (PFNGLNORMAL3BVPROC) load(userptr, "glNormal3bv"); - context->Normal3d = (PFNGLNORMAL3DPROC) load(userptr, "glNormal3d"); - context->Normal3dv = (PFNGLNORMAL3DVPROC) load(userptr, "glNormal3dv"); - context->Normal3f = (PFNGLNORMAL3FPROC) load(userptr, "glNormal3f"); - context->Normal3fv = (PFNGLNORMAL3FVPROC) load(userptr, "glNormal3fv"); - context->Normal3i = (PFNGLNORMAL3IPROC) load(userptr, "glNormal3i"); - context->Normal3iv = (PFNGLNORMAL3IVPROC) load(userptr, "glNormal3iv"); - context->Normal3s = (PFNGLNORMAL3SPROC) load(userptr, "glNormal3s"); - context->Normal3sv = (PFNGLNORMAL3SVPROC) load(userptr, "glNormal3sv"); - context->Ortho = (PFNGLORTHOPROC) load(userptr, "glOrtho"); - context->PassThrough = (PFNGLPASSTHROUGHPROC) load(userptr, "glPassThrough"); - context->PixelMapfv = (PFNGLPIXELMAPFVPROC) load(userptr, "glPixelMapfv"); - context->PixelMapuiv = (PFNGLPIXELMAPUIVPROC) load(userptr, "glPixelMapuiv"); - context->PixelMapusv = (PFNGLPIXELMAPUSVPROC) load(userptr, "glPixelMapusv"); - context->PixelStoref = (PFNGLPIXELSTOREFPROC) load(userptr, "glPixelStoref"); - context->PixelStorei = (PFNGLPIXELSTOREIPROC) load(userptr, "glPixelStorei"); - context->PixelTransferf = (PFNGLPIXELTRANSFERFPROC) load(userptr, "glPixelTransferf"); - context->PixelTransferi = (PFNGLPIXELTRANSFERIPROC) load(userptr, "glPixelTransferi"); - context->PixelZoom = (PFNGLPIXELZOOMPROC) load(userptr, "glPixelZoom"); - context->PointSize = (PFNGLPOINTSIZEPROC) load(userptr, "glPointSize"); - context->PolygonMode = (PFNGLPOLYGONMODEPROC) load(userptr, "glPolygonMode"); - context->PolygonStipple = (PFNGLPOLYGONSTIPPLEPROC) load(userptr, "glPolygonStipple"); - context->PopAttrib = (PFNGLPOPATTRIBPROC) load(userptr, "glPopAttrib"); - context->PopMatrix = (PFNGLPOPMATRIXPROC) load(userptr, "glPopMatrix"); - context->PopName = (PFNGLPOPNAMEPROC) load(userptr, "glPopName"); - context->PushAttrib = (PFNGLPUSHATTRIBPROC) load(userptr, "glPushAttrib"); - context->PushMatrix = (PFNGLPUSHMATRIXPROC) load(userptr, "glPushMatrix"); - context->PushName = (PFNGLPUSHNAMEPROC) load(userptr, "glPushName"); - context->RasterPos2d = (PFNGLRASTERPOS2DPROC) load(userptr, "glRasterPos2d"); - context->RasterPos2dv = (PFNGLRASTERPOS2DVPROC) load(userptr, "glRasterPos2dv"); - context->RasterPos2f = (PFNGLRASTERPOS2FPROC) load(userptr, "glRasterPos2f"); - context->RasterPos2fv = (PFNGLRASTERPOS2FVPROC) load(userptr, "glRasterPos2fv"); - context->RasterPos2i = (PFNGLRASTERPOS2IPROC) load(userptr, "glRasterPos2i"); - context->RasterPos2iv = (PFNGLRASTERPOS2IVPROC) load(userptr, "glRasterPos2iv"); - context->RasterPos2s = (PFNGLRASTERPOS2SPROC) load(userptr, "glRasterPos2s"); - context->RasterPos2sv = (PFNGLRASTERPOS2SVPROC) load(userptr, "glRasterPos2sv"); - context->RasterPos3d = (PFNGLRASTERPOS3DPROC) load(userptr, "glRasterPos3d"); - context->RasterPos3dv = (PFNGLRASTERPOS3DVPROC) load(userptr, "glRasterPos3dv"); - context->RasterPos3f = (PFNGLRASTERPOS3FPROC) load(userptr, "glRasterPos3f"); - context->RasterPos3fv = (PFNGLRASTERPOS3FVPROC) load(userptr, "glRasterPos3fv"); - context->RasterPos3i = (PFNGLRASTERPOS3IPROC) load(userptr, "glRasterPos3i"); - context->RasterPos3iv = (PFNGLRASTERPOS3IVPROC) load(userptr, "glRasterPos3iv"); - context->RasterPos3s = (PFNGLRASTERPOS3SPROC) load(userptr, "glRasterPos3s"); - context->RasterPos3sv = (PFNGLRASTERPOS3SVPROC) load(userptr, "glRasterPos3sv"); - context->RasterPos4d = (PFNGLRASTERPOS4DPROC) load(userptr, "glRasterPos4d"); - context->RasterPos4dv = (PFNGLRASTERPOS4DVPROC) load(userptr, "glRasterPos4dv"); - context->RasterPos4f = (PFNGLRASTERPOS4FPROC) load(userptr, "glRasterPos4f"); - context->RasterPos4fv = (PFNGLRASTERPOS4FVPROC) load(userptr, "glRasterPos4fv"); - context->RasterPos4i = (PFNGLRASTERPOS4IPROC) load(userptr, "glRasterPos4i"); - context->RasterPos4iv = (PFNGLRASTERPOS4IVPROC) load(userptr, "glRasterPos4iv"); - context->RasterPos4s = (PFNGLRASTERPOS4SPROC) load(userptr, "glRasterPos4s"); - context->RasterPos4sv = (PFNGLRASTERPOS4SVPROC) load(userptr, "glRasterPos4sv"); - context->ReadBuffer = (PFNGLREADBUFFERPROC) load(userptr, "glReadBuffer"); - context->ReadPixels = (PFNGLREADPIXELSPROC) load(userptr, "glReadPixels"); - context->Rectd = (PFNGLRECTDPROC) load(userptr, "glRectd"); - context->Rectdv = (PFNGLRECTDVPROC) load(userptr, "glRectdv"); - context->Rectf = (PFNGLRECTFPROC) load(userptr, "glRectf"); - context->Rectfv = (PFNGLRECTFVPROC) load(userptr, "glRectfv"); - context->Recti = (PFNGLRECTIPROC) load(userptr, "glRecti"); - context->Rectiv = (PFNGLRECTIVPROC) load(userptr, "glRectiv"); - context->Rects = (PFNGLRECTSPROC) load(userptr, "glRects"); - context->Rectsv = (PFNGLRECTSVPROC) load(userptr, "glRectsv"); - context->RenderMode = (PFNGLRENDERMODEPROC) load(userptr, "glRenderMode"); - context->Rotated = (PFNGLROTATEDPROC) load(userptr, "glRotated"); - context->Rotatef = (PFNGLROTATEFPROC) load(userptr, "glRotatef"); - context->Scaled = (PFNGLSCALEDPROC) load(userptr, "glScaled"); - context->Scalef = (PFNGLSCALEFPROC) load(userptr, "glScalef"); - context->Scissor = (PFNGLSCISSORPROC) load(userptr, "glScissor"); - context->SelectBuffer = (PFNGLSELECTBUFFERPROC) load(userptr, "glSelectBuffer"); - context->ShadeModel = (PFNGLSHADEMODELPROC) load(userptr, "glShadeModel"); - context->StencilFunc = (PFNGLSTENCILFUNCPROC) load(userptr, "glStencilFunc"); - context->StencilMask = (PFNGLSTENCILMASKPROC) load(userptr, "glStencilMask"); - context->StencilOp = (PFNGLSTENCILOPPROC) load(userptr, "glStencilOp"); - context->TexCoord1d = (PFNGLTEXCOORD1DPROC) load(userptr, "glTexCoord1d"); - context->TexCoord1dv = (PFNGLTEXCOORD1DVPROC) load(userptr, "glTexCoord1dv"); - context->TexCoord1f = (PFNGLTEXCOORD1FPROC) load(userptr, "glTexCoord1f"); - context->TexCoord1fv = (PFNGLTEXCOORD1FVPROC) load(userptr, "glTexCoord1fv"); - context->TexCoord1i = (PFNGLTEXCOORD1IPROC) load(userptr, "glTexCoord1i"); - context->TexCoord1iv = (PFNGLTEXCOORD1IVPROC) load(userptr, "glTexCoord1iv"); - context->TexCoord1s = (PFNGLTEXCOORD1SPROC) load(userptr, "glTexCoord1s"); - context->TexCoord1sv = (PFNGLTEXCOORD1SVPROC) load(userptr, "glTexCoord1sv"); - context->TexCoord2d = (PFNGLTEXCOORD2DPROC) load(userptr, "glTexCoord2d"); - context->TexCoord2dv = (PFNGLTEXCOORD2DVPROC) load(userptr, "glTexCoord2dv"); - context->TexCoord2f = (PFNGLTEXCOORD2FPROC) load(userptr, "glTexCoord2f"); - context->TexCoord2fv = (PFNGLTEXCOORD2FVPROC) load(userptr, "glTexCoord2fv"); - context->TexCoord2i = (PFNGLTEXCOORD2IPROC) load(userptr, "glTexCoord2i"); - context->TexCoord2iv = (PFNGLTEXCOORD2IVPROC) load(userptr, "glTexCoord2iv"); - context->TexCoord2s = (PFNGLTEXCOORD2SPROC) load(userptr, "glTexCoord2s"); - context->TexCoord2sv = (PFNGLTEXCOORD2SVPROC) load(userptr, "glTexCoord2sv"); - context->TexCoord3d = (PFNGLTEXCOORD3DPROC) load(userptr, "glTexCoord3d"); - context->TexCoord3dv = (PFNGLTEXCOORD3DVPROC) load(userptr, "glTexCoord3dv"); - context->TexCoord3f = (PFNGLTEXCOORD3FPROC) load(userptr, "glTexCoord3f"); - context->TexCoord3fv = (PFNGLTEXCOORD3FVPROC) load(userptr, "glTexCoord3fv"); - context->TexCoord3i = (PFNGLTEXCOORD3IPROC) load(userptr, "glTexCoord3i"); - context->TexCoord3iv = (PFNGLTEXCOORD3IVPROC) load(userptr, "glTexCoord3iv"); - context->TexCoord3s = (PFNGLTEXCOORD3SPROC) load(userptr, "glTexCoord3s"); - context->TexCoord3sv = (PFNGLTEXCOORD3SVPROC) load(userptr, "glTexCoord3sv"); - context->TexCoord4d = (PFNGLTEXCOORD4DPROC) load(userptr, "glTexCoord4d"); - context->TexCoord4dv = (PFNGLTEXCOORD4DVPROC) load(userptr, "glTexCoord4dv"); - context->TexCoord4f = (PFNGLTEXCOORD4FPROC) load(userptr, "glTexCoord4f"); - context->TexCoord4fv = (PFNGLTEXCOORD4FVPROC) load(userptr, "glTexCoord4fv"); - context->TexCoord4i = (PFNGLTEXCOORD4IPROC) load(userptr, "glTexCoord4i"); - context->TexCoord4iv = (PFNGLTEXCOORD4IVPROC) load(userptr, "glTexCoord4iv"); - context->TexCoord4s = (PFNGLTEXCOORD4SPROC) load(userptr, "glTexCoord4s"); - context->TexCoord4sv = (PFNGLTEXCOORD4SVPROC) load(userptr, "glTexCoord4sv"); - context->TexEnvf = (PFNGLTEXENVFPROC) load(userptr, "glTexEnvf"); - context->TexEnvfv = (PFNGLTEXENVFVPROC) load(userptr, "glTexEnvfv"); - context->TexEnvi = (PFNGLTEXENVIPROC) load(userptr, "glTexEnvi"); - context->TexEnviv = (PFNGLTEXENVIVPROC) load(userptr, "glTexEnviv"); - context->TexGend = (PFNGLTEXGENDPROC) load(userptr, "glTexGend"); - context->TexGendv = (PFNGLTEXGENDVPROC) load(userptr, "glTexGendv"); - context->TexGenf = (PFNGLTEXGENFPROC) load(userptr, "glTexGenf"); - context->TexGenfv = (PFNGLTEXGENFVPROC) load(userptr, "glTexGenfv"); - context->TexGeni = (PFNGLTEXGENIPROC) load(userptr, "glTexGeni"); - context->TexGeniv = (PFNGLTEXGENIVPROC) load(userptr, "glTexGeniv"); - context->TexImage1D = (PFNGLTEXIMAGE1DPROC) load(userptr, "glTexImage1D"); - context->TexImage2D = (PFNGLTEXIMAGE2DPROC) load(userptr, "glTexImage2D"); - context->TexParameterf = (PFNGLTEXPARAMETERFPROC) load(userptr, "glTexParameterf"); - context->TexParameterfv = (PFNGLTEXPARAMETERFVPROC) load(userptr, "glTexParameterfv"); - context->TexParameteri = (PFNGLTEXPARAMETERIPROC) load(userptr, "glTexParameteri"); - context->TexParameteriv = (PFNGLTEXPARAMETERIVPROC) load(userptr, "glTexParameteriv"); - context->Translated = (PFNGLTRANSLATEDPROC) load(userptr, "glTranslated"); - context->Translatef = (PFNGLTRANSLATEFPROC) load(userptr, "glTranslatef"); - context->Vertex2d = (PFNGLVERTEX2DPROC) load(userptr, "glVertex2d"); - context->Vertex2dv = (PFNGLVERTEX2DVPROC) load(userptr, "glVertex2dv"); - context->Vertex2f = (PFNGLVERTEX2FPROC) load(userptr, "glVertex2f"); - context->Vertex2fv = (PFNGLVERTEX2FVPROC) load(userptr, "glVertex2fv"); - context->Vertex2i = (PFNGLVERTEX2IPROC) load(userptr, "glVertex2i"); - context->Vertex2iv = (PFNGLVERTEX2IVPROC) load(userptr, "glVertex2iv"); - context->Vertex2s = (PFNGLVERTEX2SPROC) load(userptr, "glVertex2s"); - context->Vertex2sv = (PFNGLVERTEX2SVPROC) load(userptr, "glVertex2sv"); - context->Vertex3d = (PFNGLVERTEX3DPROC) load(userptr, "glVertex3d"); - context->Vertex3dv = (PFNGLVERTEX3DVPROC) load(userptr, "glVertex3dv"); - context->Vertex3f = (PFNGLVERTEX3FPROC) load(userptr, "glVertex3f"); - context->Vertex3fv = (PFNGLVERTEX3FVPROC) load(userptr, "glVertex3fv"); - context->Vertex3i = (PFNGLVERTEX3IPROC) load(userptr, "glVertex3i"); - context->Vertex3iv = (PFNGLVERTEX3IVPROC) load(userptr, "glVertex3iv"); - context->Vertex3s = (PFNGLVERTEX3SPROC) load(userptr, "glVertex3s"); - context->Vertex3sv = (PFNGLVERTEX3SVPROC) load(userptr, "glVertex3sv"); - context->Vertex4d = (PFNGLVERTEX4DPROC) load(userptr, "glVertex4d"); - context->Vertex4dv = (PFNGLVERTEX4DVPROC) load(userptr, "glVertex4dv"); - context->Vertex4f = (PFNGLVERTEX4FPROC) load(userptr, "glVertex4f"); - context->Vertex4fv = (PFNGLVERTEX4FVPROC) load(userptr, "glVertex4fv"); - context->Vertex4i = (PFNGLVERTEX4IPROC) load(userptr, "glVertex4i"); - context->Vertex4iv = (PFNGLVERTEX4IVPROC) load(userptr, "glVertex4iv"); - context->Vertex4s = (PFNGLVERTEX4SPROC) load(userptr, "glVertex4s"); - context->Vertex4sv = (PFNGLVERTEX4SVPROC) load(userptr, "glVertex4sv"); - context->Viewport = (PFNGLVIEWPORTPROC) load(userptr, "glViewport"); -} -static void glad_gl_load_GL_VERSION_1_1(GladGLContext *context, GLADuserptrloadfunc load, void* userptr) { - if(!context->VERSION_1_1) return; - context->AreTexturesResident = (PFNGLARETEXTURESRESIDENTPROC) load(userptr, "glAreTexturesResident"); - context->ArrayElement = (PFNGLARRAYELEMENTPROC) load(userptr, "glArrayElement"); - context->BindTexture = (PFNGLBINDTEXTUREPROC) load(userptr, "glBindTexture"); - context->ColorPointer = (PFNGLCOLORPOINTERPROC) load(userptr, "glColorPointer"); - context->CopyTexImage1D = (PFNGLCOPYTEXIMAGE1DPROC) load(userptr, "glCopyTexImage1D"); - context->CopyTexImage2D = (PFNGLCOPYTEXIMAGE2DPROC) load(userptr, "glCopyTexImage2D"); - context->CopyTexSubImage1D = (PFNGLCOPYTEXSUBIMAGE1DPROC) load(userptr, "glCopyTexSubImage1D"); - context->CopyTexSubImage2D = (PFNGLCOPYTEXSUBIMAGE2DPROC) load(userptr, "glCopyTexSubImage2D"); - context->DeleteTextures = (PFNGLDELETETEXTURESPROC) load(userptr, "glDeleteTextures"); - context->DisableClientState = (PFNGLDISABLECLIENTSTATEPROC) load(userptr, "glDisableClientState"); - context->DrawArrays = (PFNGLDRAWARRAYSPROC) load(userptr, "glDrawArrays"); - context->DrawElements = (PFNGLDRAWELEMENTSPROC) load(userptr, "glDrawElements"); - context->EdgeFlagPointer = (PFNGLEDGEFLAGPOINTERPROC) load(userptr, "glEdgeFlagPointer"); - context->EnableClientState = (PFNGLENABLECLIENTSTATEPROC) load(userptr, "glEnableClientState"); - context->GenTextures = (PFNGLGENTEXTURESPROC) load(userptr, "glGenTextures"); - context->GetPointerv = (PFNGLGETPOINTERVPROC) load(userptr, "glGetPointerv"); - context->IndexPointer = (PFNGLINDEXPOINTERPROC) load(userptr, "glIndexPointer"); - context->Indexub = (PFNGLINDEXUBPROC) load(userptr, "glIndexub"); - context->Indexubv = (PFNGLINDEXUBVPROC) load(userptr, "glIndexubv"); - context->InterleavedArrays = (PFNGLINTERLEAVEDARRAYSPROC) load(userptr, "glInterleavedArrays"); - context->IsTexture = (PFNGLISTEXTUREPROC) load(userptr, "glIsTexture"); - context->NormalPointer = (PFNGLNORMALPOINTERPROC) load(userptr, "glNormalPointer"); - context->PolygonOffset = (PFNGLPOLYGONOFFSETPROC) load(userptr, "glPolygonOffset"); - context->PopClientAttrib = (PFNGLPOPCLIENTATTRIBPROC) load(userptr, "glPopClientAttrib"); - context->PrioritizeTextures = (PFNGLPRIORITIZETEXTURESPROC) load(userptr, "glPrioritizeTextures"); - context->PushClientAttrib = (PFNGLPUSHCLIENTATTRIBPROC) load(userptr, "glPushClientAttrib"); - context->TexCoordPointer = (PFNGLTEXCOORDPOINTERPROC) load(userptr, "glTexCoordPointer"); - context->TexSubImage1D = (PFNGLTEXSUBIMAGE1DPROC) load(userptr, "glTexSubImage1D"); - context->TexSubImage2D = (PFNGLTEXSUBIMAGE2DPROC) load(userptr, "glTexSubImage2D"); - context->VertexPointer = (PFNGLVERTEXPOINTERPROC) load(userptr, "glVertexPointer"); -} -static void glad_gl_load_GL_VERSION_1_2(GladGLContext *context, GLADuserptrloadfunc load, void* userptr) { - if(!context->VERSION_1_2) return; - context->CopyTexSubImage3D = (PFNGLCOPYTEXSUBIMAGE3DPROC) load(userptr, "glCopyTexSubImage3D"); - context->DrawRangeElements = (PFNGLDRAWRANGEELEMENTSPROC) load(userptr, "glDrawRangeElements"); - context->TexImage3D = (PFNGLTEXIMAGE3DPROC) load(userptr, "glTexImage3D"); - context->TexSubImage3D = (PFNGLTEXSUBIMAGE3DPROC) load(userptr, "glTexSubImage3D"); -} -static void glad_gl_load_GL_VERSION_1_3(GladGLContext *context, GLADuserptrloadfunc load, void* userptr) { - if(!context->VERSION_1_3) return; - context->ActiveTexture = (PFNGLACTIVETEXTUREPROC) load(userptr, "glActiveTexture"); - context->ClientActiveTexture = (PFNGLCLIENTACTIVETEXTUREPROC) load(userptr, "glClientActiveTexture"); - context->CompressedTexImage1D = (PFNGLCOMPRESSEDTEXIMAGE1DPROC) load(userptr, "glCompressedTexImage1D"); - context->CompressedTexImage2D = (PFNGLCOMPRESSEDTEXIMAGE2DPROC) load(userptr, "glCompressedTexImage2D"); - context->CompressedTexImage3D = (PFNGLCOMPRESSEDTEXIMAGE3DPROC) load(userptr, "glCompressedTexImage3D"); - context->CompressedTexSubImage1D = (PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) load(userptr, "glCompressedTexSubImage1D"); - context->CompressedTexSubImage2D = (PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) load(userptr, "glCompressedTexSubImage2D"); - context->CompressedTexSubImage3D = (PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) load(userptr, "glCompressedTexSubImage3D"); - context->GetCompressedTexImage = (PFNGLGETCOMPRESSEDTEXIMAGEPROC) load(userptr, "glGetCompressedTexImage"); - context->LoadTransposeMatrixd = (PFNGLLOADTRANSPOSEMATRIXDPROC) load(userptr, "glLoadTransposeMatrixd"); - context->LoadTransposeMatrixf = (PFNGLLOADTRANSPOSEMATRIXFPROC) load(userptr, "glLoadTransposeMatrixf"); - context->MultTransposeMatrixd = (PFNGLMULTTRANSPOSEMATRIXDPROC) load(userptr, "glMultTransposeMatrixd"); - context->MultTransposeMatrixf = (PFNGLMULTTRANSPOSEMATRIXFPROC) load(userptr, "glMultTransposeMatrixf"); - context->MultiTexCoord1d = (PFNGLMULTITEXCOORD1DPROC) load(userptr, "glMultiTexCoord1d"); - context->MultiTexCoord1dv = (PFNGLMULTITEXCOORD1DVPROC) load(userptr, "glMultiTexCoord1dv"); - context->MultiTexCoord1f = (PFNGLMULTITEXCOORD1FPROC) load(userptr, "glMultiTexCoord1f"); - context->MultiTexCoord1fv = (PFNGLMULTITEXCOORD1FVPROC) load(userptr, "glMultiTexCoord1fv"); - context->MultiTexCoord1i = (PFNGLMULTITEXCOORD1IPROC) load(userptr, "glMultiTexCoord1i"); - context->MultiTexCoord1iv = (PFNGLMULTITEXCOORD1IVPROC) load(userptr, "glMultiTexCoord1iv"); - context->MultiTexCoord1s = (PFNGLMULTITEXCOORD1SPROC) load(userptr, "glMultiTexCoord1s"); - context->MultiTexCoord1sv = (PFNGLMULTITEXCOORD1SVPROC) load(userptr, "glMultiTexCoord1sv"); - context->MultiTexCoord2d = (PFNGLMULTITEXCOORD2DPROC) load(userptr, "glMultiTexCoord2d"); - context->MultiTexCoord2dv = (PFNGLMULTITEXCOORD2DVPROC) load(userptr, "glMultiTexCoord2dv"); - context->MultiTexCoord2f = (PFNGLMULTITEXCOORD2FPROC) load(userptr, "glMultiTexCoord2f"); - context->MultiTexCoord2fv = (PFNGLMULTITEXCOORD2FVPROC) load(userptr, "glMultiTexCoord2fv"); - context->MultiTexCoord2i = (PFNGLMULTITEXCOORD2IPROC) load(userptr, "glMultiTexCoord2i"); - context->MultiTexCoord2iv = (PFNGLMULTITEXCOORD2IVPROC) load(userptr, "glMultiTexCoord2iv"); - context->MultiTexCoord2s = (PFNGLMULTITEXCOORD2SPROC) load(userptr, "glMultiTexCoord2s"); - context->MultiTexCoord2sv = (PFNGLMULTITEXCOORD2SVPROC) load(userptr, "glMultiTexCoord2sv"); - context->MultiTexCoord3d = (PFNGLMULTITEXCOORD3DPROC) load(userptr, "glMultiTexCoord3d"); - context->MultiTexCoord3dv = (PFNGLMULTITEXCOORD3DVPROC) load(userptr, "glMultiTexCoord3dv"); - context->MultiTexCoord3f = (PFNGLMULTITEXCOORD3FPROC) load(userptr, "glMultiTexCoord3f"); - context->MultiTexCoord3fv = (PFNGLMULTITEXCOORD3FVPROC) load(userptr, "glMultiTexCoord3fv"); - context->MultiTexCoord3i = (PFNGLMULTITEXCOORD3IPROC) load(userptr, "glMultiTexCoord3i"); - context->MultiTexCoord3iv = (PFNGLMULTITEXCOORD3IVPROC) load(userptr, "glMultiTexCoord3iv"); - context->MultiTexCoord3s = (PFNGLMULTITEXCOORD3SPROC) load(userptr, "glMultiTexCoord3s"); - context->MultiTexCoord3sv = (PFNGLMULTITEXCOORD3SVPROC) load(userptr, "glMultiTexCoord3sv"); - context->MultiTexCoord4d = (PFNGLMULTITEXCOORD4DPROC) load(userptr, "glMultiTexCoord4d"); - context->MultiTexCoord4dv = (PFNGLMULTITEXCOORD4DVPROC) load(userptr, "glMultiTexCoord4dv"); - context->MultiTexCoord4f = (PFNGLMULTITEXCOORD4FPROC) load(userptr, "glMultiTexCoord4f"); - context->MultiTexCoord4fv = (PFNGLMULTITEXCOORD4FVPROC) load(userptr, "glMultiTexCoord4fv"); - context->MultiTexCoord4i = (PFNGLMULTITEXCOORD4IPROC) load(userptr, "glMultiTexCoord4i"); - context->MultiTexCoord4iv = (PFNGLMULTITEXCOORD4IVPROC) load(userptr, "glMultiTexCoord4iv"); - context->MultiTexCoord4s = (PFNGLMULTITEXCOORD4SPROC) load(userptr, "glMultiTexCoord4s"); - context->MultiTexCoord4sv = (PFNGLMULTITEXCOORD4SVPROC) load(userptr, "glMultiTexCoord4sv"); - context->SampleCoverage = (PFNGLSAMPLECOVERAGEPROC) load(userptr, "glSampleCoverage"); -} -static void glad_gl_load_GL_VERSION_1_4(GladGLContext *context, GLADuserptrloadfunc load, void* userptr) { - if(!context->VERSION_1_4) return; - context->BlendColor = (PFNGLBLENDCOLORPROC) load(userptr, "glBlendColor"); - context->BlendEquation = (PFNGLBLENDEQUATIONPROC) load(userptr, "glBlendEquation"); - context->BlendFuncSeparate = (PFNGLBLENDFUNCSEPARATEPROC) load(userptr, "glBlendFuncSeparate"); - context->FogCoordPointer = (PFNGLFOGCOORDPOINTERPROC) load(userptr, "glFogCoordPointer"); - context->FogCoordd = (PFNGLFOGCOORDDPROC) load(userptr, "glFogCoordd"); - context->FogCoorddv = (PFNGLFOGCOORDDVPROC) load(userptr, "glFogCoorddv"); - context->FogCoordf = (PFNGLFOGCOORDFPROC) load(userptr, "glFogCoordf"); - context->FogCoordfv = (PFNGLFOGCOORDFVPROC) load(userptr, "glFogCoordfv"); - context->MultiDrawArrays = (PFNGLMULTIDRAWARRAYSPROC) load(userptr, "glMultiDrawArrays"); - context->MultiDrawElements = (PFNGLMULTIDRAWELEMENTSPROC) load(userptr, "glMultiDrawElements"); - context->PointParameterf = (PFNGLPOINTPARAMETERFPROC) load(userptr, "glPointParameterf"); - context->PointParameterfv = (PFNGLPOINTPARAMETERFVPROC) load(userptr, "glPointParameterfv"); - context->PointParameteri = (PFNGLPOINTPARAMETERIPROC) load(userptr, "glPointParameteri"); - context->PointParameteriv = (PFNGLPOINTPARAMETERIVPROC) load(userptr, "glPointParameteriv"); - context->SecondaryColor3b = (PFNGLSECONDARYCOLOR3BPROC) load(userptr, "glSecondaryColor3b"); - context->SecondaryColor3bv = (PFNGLSECONDARYCOLOR3BVPROC) load(userptr, "glSecondaryColor3bv"); - context->SecondaryColor3d = (PFNGLSECONDARYCOLOR3DPROC) load(userptr, "glSecondaryColor3d"); - context->SecondaryColor3dv = (PFNGLSECONDARYCOLOR3DVPROC) load(userptr, "glSecondaryColor3dv"); - context->SecondaryColor3f = (PFNGLSECONDARYCOLOR3FPROC) load(userptr, "glSecondaryColor3f"); - context->SecondaryColor3fv = (PFNGLSECONDARYCOLOR3FVPROC) load(userptr, "glSecondaryColor3fv"); - context->SecondaryColor3i = (PFNGLSECONDARYCOLOR3IPROC) load(userptr, "glSecondaryColor3i"); - context->SecondaryColor3iv = (PFNGLSECONDARYCOLOR3IVPROC) load(userptr, "glSecondaryColor3iv"); - context->SecondaryColor3s = (PFNGLSECONDARYCOLOR3SPROC) load(userptr, "glSecondaryColor3s"); - context->SecondaryColor3sv = (PFNGLSECONDARYCOLOR3SVPROC) load(userptr, "glSecondaryColor3sv"); - context->SecondaryColor3ub = (PFNGLSECONDARYCOLOR3UBPROC) load(userptr, "glSecondaryColor3ub"); - context->SecondaryColor3ubv = (PFNGLSECONDARYCOLOR3UBVPROC) load(userptr, "glSecondaryColor3ubv"); - context->SecondaryColor3ui = (PFNGLSECONDARYCOLOR3UIPROC) load(userptr, "glSecondaryColor3ui"); - context->SecondaryColor3uiv = (PFNGLSECONDARYCOLOR3UIVPROC) load(userptr, "glSecondaryColor3uiv"); - context->SecondaryColor3us = (PFNGLSECONDARYCOLOR3USPROC) load(userptr, "glSecondaryColor3us"); - context->SecondaryColor3usv = (PFNGLSECONDARYCOLOR3USVPROC) load(userptr, "glSecondaryColor3usv"); - context->SecondaryColorPointer = (PFNGLSECONDARYCOLORPOINTERPROC) load(userptr, "glSecondaryColorPointer"); - context->WindowPos2d = (PFNGLWINDOWPOS2DPROC) load(userptr, "glWindowPos2d"); - context->WindowPos2dv = (PFNGLWINDOWPOS2DVPROC) load(userptr, "glWindowPos2dv"); - context->WindowPos2f = (PFNGLWINDOWPOS2FPROC) load(userptr, "glWindowPos2f"); - context->WindowPos2fv = (PFNGLWINDOWPOS2FVPROC) load(userptr, "glWindowPos2fv"); - context->WindowPos2i = (PFNGLWINDOWPOS2IPROC) load(userptr, "glWindowPos2i"); - context->WindowPos2iv = (PFNGLWINDOWPOS2IVPROC) load(userptr, "glWindowPos2iv"); - context->WindowPos2s = (PFNGLWINDOWPOS2SPROC) load(userptr, "glWindowPos2s"); - context->WindowPos2sv = (PFNGLWINDOWPOS2SVPROC) load(userptr, "glWindowPos2sv"); - context->WindowPos3d = (PFNGLWINDOWPOS3DPROC) load(userptr, "glWindowPos3d"); - context->WindowPos3dv = (PFNGLWINDOWPOS3DVPROC) load(userptr, "glWindowPos3dv"); - context->WindowPos3f = (PFNGLWINDOWPOS3FPROC) load(userptr, "glWindowPos3f"); - context->WindowPos3fv = (PFNGLWINDOWPOS3FVPROC) load(userptr, "glWindowPos3fv"); - context->WindowPos3i = (PFNGLWINDOWPOS3IPROC) load(userptr, "glWindowPos3i"); - context->WindowPos3iv = (PFNGLWINDOWPOS3IVPROC) load(userptr, "glWindowPos3iv"); - context->WindowPos3s = (PFNGLWINDOWPOS3SPROC) load(userptr, "glWindowPos3s"); - context->WindowPos3sv = (PFNGLWINDOWPOS3SVPROC) load(userptr, "glWindowPos3sv"); -} -static void glad_gl_load_GL_VERSION_1_5(GladGLContext *context, GLADuserptrloadfunc load, void* userptr) { - if(!context->VERSION_1_5) return; - context->BeginQuery = (PFNGLBEGINQUERYPROC) load(userptr, "glBeginQuery"); - context->BindBuffer = (PFNGLBINDBUFFERPROC) load(userptr, "glBindBuffer"); - context->BufferData = (PFNGLBUFFERDATAPROC) load(userptr, "glBufferData"); - context->BufferSubData = (PFNGLBUFFERSUBDATAPROC) load(userptr, "glBufferSubData"); - context->DeleteBuffers = (PFNGLDELETEBUFFERSPROC) load(userptr, "glDeleteBuffers"); - context->DeleteQueries = (PFNGLDELETEQUERIESPROC) load(userptr, "glDeleteQueries"); - context->EndQuery = (PFNGLENDQUERYPROC) load(userptr, "glEndQuery"); - context->GenBuffers = (PFNGLGENBUFFERSPROC) load(userptr, "glGenBuffers"); - context->GenQueries = (PFNGLGENQUERIESPROC) load(userptr, "glGenQueries"); - context->GetBufferParameteriv = (PFNGLGETBUFFERPARAMETERIVPROC) load(userptr, "glGetBufferParameteriv"); - context->GetBufferPointerv = (PFNGLGETBUFFERPOINTERVPROC) load(userptr, "glGetBufferPointerv"); - context->GetBufferSubData = (PFNGLGETBUFFERSUBDATAPROC) load(userptr, "glGetBufferSubData"); - context->GetQueryObjectiv = (PFNGLGETQUERYOBJECTIVPROC) load(userptr, "glGetQueryObjectiv"); - context->GetQueryObjectuiv = (PFNGLGETQUERYOBJECTUIVPROC) load(userptr, "glGetQueryObjectuiv"); - context->GetQueryiv = (PFNGLGETQUERYIVPROC) load(userptr, "glGetQueryiv"); - context->IsBuffer = (PFNGLISBUFFERPROC) load(userptr, "glIsBuffer"); - context->IsQuery = (PFNGLISQUERYPROC) load(userptr, "glIsQuery"); - context->MapBuffer = (PFNGLMAPBUFFERPROC) load(userptr, "glMapBuffer"); - context->UnmapBuffer = (PFNGLUNMAPBUFFERPROC) load(userptr, "glUnmapBuffer"); -} -static void glad_gl_load_GL_VERSION_2_0(GladGLContext *context, GLADuserptrloadfunc load, void* userptr) { - if(!context->VERSION_2_0) return; - context->EGLImageTargetTexture2DOES = (PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) load(userptr, "glEGLImageTargetTexture2DOES"); - context->AttachShader = (PFNGLATTACHSHADERPROC) load(userptr, "glAttachShader"); - context->BindAttribLocation = (PFNGLBINDATTRIBLOCATIONPROC) load(userptr, "glBindAttribLocation"); - context->BlendEquationSeparate = (PFNGLBLENDEQUATIONSEPARATEPROC) load(userptr, "glBlendEquationSeparate"); - context->CompileShader = (PFNGLCOMPILESHADERPROC) load(userptr, "glCompileShader"); - context->CreateProgram = (PFNGLCREATEPROGRAMPROC) load(userptr, "glCreateProgram"); - context->CreateShader = (PFNGLCREATESHADERPROC) load(userptr, "glCreateShader"); - context->DeleteProgram = (PFNGLDELETEPROGRAMPROC) load(userptr, "glDeleteProgram"); - context->DeleteShader = (PFNGLDELETESHADERPROC) load(userptr, "glDeleteShader"); - context->DetachShader = (PFNGLDETACHSHADERPROC) load(userptr, "glDetachShader"); - context->DisableVertexAttribArray = (PFNGLDISABLEVERTEXATTRIBARRAYPROC) load(userptr, "glDisableVertexAttribArray"); - context->DrawBuffers = (PFNGLDRAWBUFFERSPROC) load(userptr, "glDrawBuffers"); - context->EnableVertexAttribArray = (PFNGLENABLEVERTEXATTRIBARRAYPROC) load(userptr, "glEnableVertexAttribArray"); - context->GetActiveAttrib = (PFNGLGETACTIVEATTRIBPROC) load(userptr, "glGetActiveAttrib"); - context->GetActiveUniform = (PFNGLGETACTIVEUNIFORMPROC) load(userptr, "glGetActiveUniform"); - context->GetAttachedShaders = (PFNGLGETATTACHEDSHADERSPROC) load(userptr, "glGetAttachedShaders"); - context->GetAttribLocation = (PFNGLGETATTRIBLOCATIONPROC) load(userptr, "glGetAttribLocation"); - context->GetProgramInfoLog = (PFNGLGETPROGRAMINFOLOGPROC) load(userptr, "glGetProgramInfoLog"); - context->GetProgramiv = (PFNGLGETPROGRAMIVPROC) load(userptr, "glGetProgramiv"); - context->GetShaderInfoLog = (PFNGLGETSHADERINFOLOGPROC) load(userptr, "glGetShaderInfoLog"); - context->GetShaderSource = (PFNGLGETSHADERSOURCEPROC) load(userptr, "glGetShaderSource"); - context->GetShaderiv = (PFNGLGETSHADERIVPROC) load(userptr, "glGetShaderiv"); - context->GetUniformLocation = (PFNGLGETUNIFORMLOCATIONPROC) load(userptr, "glGetUniformLocation"); - context->GetUniformfv = (PFNGLGETUNIFORMFVPROC) load(userptr, "glGetUniformfv"); - context->GetUniformiv = (PFNGLGETUNIFORMIVPROC) load(userptr, "glGetUniformiv"); - context->GetVertexAttribPointerv = (PFNGLGETVERTEXATTRIBPOINTERVPROC) load(userptr, "glGetVertexAttribPointerv"); - context->GetVertexAttribdv = (PFNGLGETVERTEXATTRIBDVPROC) load(userptr, "glGetVertexAttribdv"); - context->GetVertexAttribfv = (PFNGLGETVERTEXATTRIBFVPROC) load(userptr, "glGetVertexAttribfv"); - context->GetVertexAttribiv = (PFNGLGETVERTEXATTRIBIVPROC) load(userptr, "glGetVertexAttribiv"); - context->IsProgram = (PFNGLISPROGRAMPROC) load(userptr, "glIsProgram"); - context->IsShader = (PFNGLISSHADERPROC) load(userptr, "glIsShader"); - context->LinkProgram = (PFNGLLINKPROGRAMPROC) load(userptr, "glLinkProgram"); - context->ShaderSource = (PFNGLSHADERSOURCEPROC) load(userptr, "glShaderSource"); - context->StencilFuncSeparate = (PFNGLSTENCILFUNCSEPARATEPROC) load(userptr, "glStencilFuncSeparate"); - context->StencilMaskSeparate = (PFNGLSTENCILMASKSEPARATEPROC) load(userptr, "glStencilMaskSeparate"); - context->StencilOpSeparate = (PFNGLSTENCILOPSEPARATEPROC) load(userptr, "glStencilOpSeparate"); - context->Uniform1f = (PFNGLUNIFORM1FPROC) load(userptr, "glUniform1f"); - context->Uniform1fv = (PFNGLUNIFORM1FVPROC) load(userptr, "glUniform1fv"); - context->Uniform1i = (PFNGLUNIFORM1IPROC) load(userptr, "glUniform1i"); - context->Uniform1iv = (PFNGLUNIFORM1IVPROC) load(userptr, "glUniform1iv"); - context->Uniform2f = (PFNGLUNIFORM2FPROC) load(userptr, "glUniform2f"); - context->Uniform2fv = (PFNGLUNIFORM2FVPROC) load(userptr, "glUniform2fv"); - context->Uniform2i = (PFNGLUNIFORM2IPROC) load(userptr, "glUniform2i"); - context->Uniform2iv = (PFNGLUNIFORM2IVPROC) load(userptr, "glUniform2iv"); - context->Uniform3f = (PFNGLUNIFORM3FPROC) load(userptr, "glUniform3f"); - context->Uniform3fv = (PFNGLUNIFORM3FVPROC) load(userptr, "glUniform3fv"); - context->Uniform3i = (PFNGLUNIFORM3IPROC) load(userptr, "glUniform3i"); - context->Uniform3iv = (PFNGLUNIFORM3IVPROC) load(userptr, "glUniform3iv"); - context->Uniform4f = (PFNGLUNIFORM4FPROC) load(userptr, "glUniform4f"); - context->Uniform4fv = (PFNGLUNIFORM4FVPROC) load(userptr, "glUniform4fv"); - context->Uniform4i = (PFNGLUNIFORM4IPROC) load(userptr, "glUniform4i"); - context->Uniform4iv = (PFNGLUNIFORM4IVPROC) load(userptr, "glUniform4iv"); - context->UniformMatrix2fv = (PFNGLUNIFORMMATRIX2FVPROC) load(userptr, "glUniformMatrix2fv"); - context->UniformMatrix3fv = (PFNGLUNIFORMMATRIX3FVPROC) load(userptr, "glUniformMatrix3fv"); - context->UniformMatrix4fv = (PFNGLUNIFORMMATRIX4FVPROC) load(userptr, "glUniformMatrix4fv"); - context->UseProgram = (PFNGLUSEPROGRAMPROC) load(userptr, "glUseProgram"); - context->ValidateProgram = (PFNGLVALIDATEPROGRAMPROC) load(userptr, "glValidateProgram"); - context->VertexAttrib1d = (PFNGLVERTEXATTRIB1DPROC) load(userptr, "glVertexAttrib1d"); - context->VertexAttrib1dv = (PFNGLVERTEXATTRIB1DVPROC) load(userptr, "glVertexAttrib1dv"); - context->VertexAttrib1f = (PFNGLVERTEXATTRIB1FPROC) load(userptr, "glVertexAttrib1f"); - context->VertexAttrib1fv = (PFNGLVERTEXATTRIB1FVPROC) load(userptr, "glVertexAttrib1fv"); - context->VertexAttrib1s = (PFNGLVERTEXATTRIB1SPROC) load(userptr, "glVertexAttrib1s"); - context->VertexAttrib1sv = (PFNGLVERTEXATTRIB1SVPROC) load(userptr, "glVertexAttrib1sv"); - context->VertexAttrib2d = (PFNGLVERTEXATTRIB2DPROC) load(userptr, "glVertexAttrib2d"); - context->VertexAttrib2dv = (PFNGLVERTEXATTRIB2DVPROC) load(userptr, "glVertexAttrib2dv"); - context->VertexAttrib2f = (PFNGLVERTEXATTRIB2FPROC) load(userptr, "glVertexAttrib2f"); - context->VertexAttrib2fv = (PFNGLVERTEXATTRIB2FVPROC) load(userptr, "glVertexAttrib2fv"); - context->VertexAttrib2s = (PFNGLVERTEXATTRIB2SPROC) load(userptr, "glVertexAttrib2s"); - context->VertexAttrib2sv = (PFNGLVERTEXATTRIB2SVPROC) load(userptr, "glVertexAttrib2sv"); - context->VertexAttrib3d = (PFNGLVERTEXATTRIB3DPROC) load(userptr, "glVertexAttrib3d"); - context->VertexAttrib3dv = (PFNGLVERTEXATTRIB3DVPROC) load(userptr, "glVertexAttrib3dv"); - context->VertexAttrib3f = (PFNGLVERTEXATTRIB3FPROC) load(userptr, "glVertexAttrib3f"); - context->VertexAttrib3fv = (PFNGLVERTEXATTRIB3FVPROC) load(userptr, "glVertexAttrib3fv"); - context->VertexAttrib3s = (PFNGLVERTEXATTRIB3SPROC) load(userptr, "glVertexAttrib3s"); - context->VertexAttrib3sv = (PFNGLVERTEXATTRIB3SVPROC) load(userptr, "glVertexAttrib3sv"); - context->VertexAttrib4Nbv = (PFNGLVERTEXATTRIB4NBVPROC) load(userptr, "glVertexAttrib4Nbv"); - context->VertexAttrib4Niv = (PFNGLVERTEXATTRIB4NIVPROC) load(userptr, "glVertexAttrib4Niv"); - context->VertexAttrib4Nsv = (PFNGLVERTEXATTRIB4NSVPROC) load(userptr, "glVertexAttrib4Nsv"); - context->VertexAttrib4Nub = (PFNGLVERTEXATTRIB4NUBPROC) load(userptr, "glVertexAttrib4Nub"); - context->VertexAttrib4Nubv = (PFNGLVERTEXATTRIB4NUBVPROC) load(userptr, "glVertexAttrib4Nubv"); - context->VertexAttrib4Nuiv = (PFNGLVERTEXATTRIB4NUIVPROC) load(userptr, "glVertexAttrib4Nuiv"); - context->VertexAttrib4Nusv = (PFNGLVERTEXATTRIB4NUSVPROC) load(userptr, "glVertexAttrib4Nusv"); - context->VertexAttrib4bv = (PFNGLVERTEXATTRIB4BVPROC) load(userptr, "glVertexAttrib4bv"); - context->VertexAttrib4d = (PFNGLVERTEXATTRIB4DPROC) load(userptr, "glVertexAttrib4d"); - context->VertexAttrib4dv = (PFNGLVERTEXATTRIB4DVPROC) load(userptr, "glVertexAttrib4dv"); - context->VertexAttrib4f = (PFNGLVERTEXATTRIB4FPROC) load(userptr, "glVertexAttrib4f"); - context->VertexAttrib4fv = (PFNGLVERTEXATTRIB4FVPROC) load(userptr, "glVertexAttrib4fv"); - context->VertexAttrib4iv = (PFNGLVERTEXATTRIB4IVPROC) load(userptr, "glVertexAttrib4iv"); - context->VertexAttrib4s = (PFNGLVERTEXATTRIB4SPROC) load(userptr, "glVertexAttrib4s"); - context->VertexAttrib4sv = (PFNGLVERTEXATTRIB4SVPROC) load(userptr, "glVertexAttrib4sv"); - context->VertexAttrib4ubv = (PFNGLVERTEXATTRIB4UBVPROC) load(userptr, "glVertexAttrib4ubv"); - context->VertexAttrib4uiv = (PFNGLVERTEXATTRIB4UIVPROC) load(userptr, "glVertexAttrib4uiv"); - context->VertexAttrib4usv = (PFNGLVERTEXATTRIB4USVPROC) load(userptr, "glVertexAttrib4usv"); - context->VertexAttribPointer = (PFNGLVERTEXATTRIBPOINTERPROC) load(userptr, "glVertexAttribPointer"); -} -static void glad_gl_load_GL_VERSION_2_1(GladGLContext *context, GLADuserptrloadfunc load, void* userptr) { - if(!context->VERSION_2_1) return; - context->UniformMatrix2x3fv = (PFNGLUNIFORMMATRIX2X3FVPROC) load(userptr, "glUniformMatrix2x3fv"); - context->UniformMatrix2x4fv = (PFNGLUNIFORMMATRIX2X4FVPROC) load(userptr, "glUniformMatrix2x4fv"); - context->UniformMatrix3x2fv = (PFNGLUNIFORMMATRIX3X2FVPROC) load(userptr, "glUniformMatrix3x2fv"); - context->UniformMatrix3x4fv = (PFNGLUNIFORMMATRIX3X4FVPROC) load(userptr, "glUniformMatrix3x4fv"); - context->UniformMatrix4x2fv = (PFNGLUNIFORMMATRIX4X2FVPROC) load(userptr, "glUniformMatrix4x2fv"); - context->UniformMatrix4x3fv = (PFNGLUNIFORMMATRIX4X3FVPROC) load(userptr, "glUniformMatrix4x3fv"); -} -static void glad_gl_load_GL_VERSION_3_0(GladGLContext *context, GLADuserptrloadfunc load, void* userptr) { - if(!context->VERSION_3_0) return; - context->BeginConditionalRender = (PFNGLBEGINCONDITIONALRENDERPROC) load(userptr, "glBeginConditionalRender"); - context->BeginTransformFeedback = (PFNGLBEGINTRANSFORMFEEDBACKPROC) load(userptr, "glBeginTransformFeedback"); - context->BindBufferBase = (PFNGLBINDBUFFERBASEPROC) load(userptr, "glBindBufferBase"); - context->BindBufferRange = (PFNGLBINDBUFFERRANGEPROC) load(userptr, "glBindBufferRange"); - context->BindFragDataLocation = (PFNGLBINDFRAGDATALOCATIONPROC) load(userptr, "glBindFragDataLocation"); - context->BindFramebuffer = (PFNGLBINDFRAMEBUFFERPROC) load(userptr, "glBindFramebuffer"); - context->BindRenderbuffer = (PFNGLBINDRENDERBUFFERPROC) load(userptr, "glBindRenderbuffer"); - context->BindVertexArray = (PFNGLBINDVERTEXARRAYPROC) load(userptr, "glBindVertexArray"); - context->BlitFramebuffer = (PFNGLBLITFRAMEBUFFERPROC) load(userptr, "glBlitFramebuffer"); - context->CheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSPROC) load(userptr, "glCheckFramebufferStatus"); - context->ClampColor = (PFNGLCLAMPCOLORPROC) load(userptr, "glClampColor"); - context->ClearBufferfi = (PFNGLCLEARBUFFERFIPROC) load(userptr, "glClearBufferfi"); - context->ClearBufferfv = (PFNGLCLEARBUFFERFVPROC) load(userptr, "glClearBufferfv"); - context->ClearBufferiv = (PFNGLCLEARBUFFERIVPROC) load(userptr, "glClearBufferiv"); - context->ClearBufferuiv = (PFNGLCLEARBUFFERUIVPROC) load(userptr, "glClearBufferuiv"); - context->ColorMaski = (PFNGLCOLORMASKIPROC) load(userptr, "glColorMaski"); - context->DeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSPROC) load(userptr, "glDeleteFramebuffers"); - context->DeleteRenderbuffers = (PFNGLDELETERENDERBUFFERSPROC) load(userptr, "glDeleteRenderbuffers"); - context->DeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSPROC) load(userptr, "glDeleteVertexArrays"); - context->Disablei = (PFNGLDISABLEIPROC) load(userptr, "glDisablei"); - context->Enablei = (PFNGLENABLEIPROC) load(userptr, "glEnablei"); - context->EndConditionalRender = (PFNGLENDCONDITIONALRENDERPROC) load(userptr, "glEndConditionalRender"); - context->EndTransformFeedback = (PFNGLENDTRANSFORMFEEDBACKPROC) load(userptr, "glEndTransformFeedback"); - context->FlushMappedBufferRange = (PFNGLFLUSHMAPPEDBUFFERRANGEPROC) load(userptr, "glFlushMappedBufferRange"); - context->FramebufferRenderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFERPROC) load(userptr, "glFramebufferRenderbuffer"); - context->FramebufferTexture1D = (PFNGLFRAMEBUFFERTEXTURE1DPROC) load(userptr, "glFramebufferTexture1D"); - context->FramebufferTexture2D = (PFNGLFRAMEBUFFERTEXTURE2DPROC) load(userptr, "glFramebufferTexture2D"); - context->FramebufferTexture3D = (PFNGLFRAMEBUFFERTEXTURE3DPROC) load(userptr, "glFramebufferTexture3D"); - context->FramebufferTextureLayer = (PFNGLFRAMEBUFFERTEXTURELAYERPROC) load(userptr, "glFramebufferTextureLayer"); - context->GenFramebuffers = (PFNGLGENFRAMEBUFFERSPROC) load(userptr, "glGenFramebuffers"); - context->GenRenderbuffers = (PFNGLGENRENDERBUFFERSPROC) load(userptr, "glGenRenderbuffers"); - context->GenVertexArrays = (PFNGLGENVERTEXARRAYSPROC) load(userptr, "glGenVertexArrays"); - context->GenerateMipmap = (PFNGLGENERATEMIPMAPPROC) load(userptr, "glGenerateMipmap"); - context->GetBooleani_v = (PFNGLGETBOOLEANI_VPROC) load(userptr, "glGetBooleani_v"); - context->GetFragDataLocation = (PFNGLGETFRAGDATALOCATIONPROC) load(userptr, "glGetFragDataLocation"); - context->GetFramebufferAttachmentParameteriv = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) load(userptr, "glGetFramebufferAttachmentParameteriv"); - context->GetIntegeri_v = (PFNGLGETINTEGERI_VPROC) load(userptr, "glGetIntegeri_v"); - context->GetRenderbufferParameteriv = (PFNGLGETRENDERBUFFERPARAMETERIVPROC) load(userptr, "glGetRenderbufferParameteriv"); - context->GetStringi = (PFNGLGETSTRINGIPROC) load(userptr, "glGetStringi"); - context->GetTexParameterIiv = (PFNGLGETTEXPARAMETERIIVPROC) load(userptr, "glGetTexParameterIiv"); - context->GetTexParameterIuiv = (PFNGLGETTEXPARAMETERIUIVPROC) load(userptr, "glGetTexParameterIuiv"); - context->GetTransformFeedbackVarying = (PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) load(userptr, "glGetTransformFeedbackVarying"); - context->GetUniformuiv = (PFNGLGETUNIFORMUIVPROC) load(userptr, "glGetUniformuiv"); - context->GetVertexAttribIiv = (PFNGLGETVERTEXATTRIBIIVPROC) load(userptr, "glGetVertexAttribIiv"); - context->GetVertexAttribIuiv = (PFNGLGETVERTEXATTRIBIUIVPROC) load(userptr, "glGetVertexAttribIuiv"); - context->IsEnabledi = (PFNGLISENABLEDIPROC) load(userptr, "glIsEnabledi"); - context->IsFramebuffer = (PFNGLISFRAMEBUFFERPROC) load(userptr, "glIsFramebuffer"); - context->IsRenderbuffer = (PFNGLISRENDERBUFFERPROC) load(userptr, "glIsRenderbuffer"); - context->IsVertexArray = (PFNGLISVERTEXARRAYPROC) load(userptr, "glIsVertexArray"); - context->MapBufferRange = (PFNGLMAPBUFFERRANGEPROC) load(userptr, "glMapBufferRange"); - context->RenderbufferStorage = (PFNGLRENDERBUFFERSTORAGEPROC) load(userptr, "glRenderbufferStorage"); - context->RenderbufferStorageMultisample = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) load(userptr, "glRenderbufferStorageMultisample"); - context->TexParameterIiv = (PFNGLTEXPARAMETERIIVPROC) load(userptr, "glTexParameterIiv"); - context->TexParameterIuiv = (PFNGLTEXPARAMETERIUIVPROC) load(userptr, "glTexParameterIuiv"); - context->TransformFeedbackVaryings = (PFNGLTRANSFORMFEEDBACKVARYINGSPROC) load(userptr, "glTransformFeedbackVaryings"); - context->Uniform1ui = (PFNGLUNIFORM1UIPROC) load(userptr, "glUniform1ui"); - context->Uniform1uiv = (PFNGLUNIFORM1UIVPROC) load(userptr, "glUniform1uiv"); - context->Uniform2ui = (PFNGLUNIFORM2UIPROC) load(userptr, "glUniform2ui"); - context->Uniform2uiv = (PFNGLUNIFORM2UIVPROC) load(userptr, "glUniform2uiv"); - context->Uniform3ui = (PFNGLUNIFORM3UIPROC) load(userptr, "glUniform3ui"); - context->Uniform3uiv = (PFNGLUNIFORM3UIVPROC) load(userptr, "glUniform3uiv"); - context->Uniform4ui = (PFNGLUNIFORM4UIPROC) load(userptr, "glUniform4ui"); - context->Uniform4uiv = (PFNGLUNIFORM4UIVPROC) load(userptr, "glUniform4uiv"); - context->VertexAttribI1i = (PFNGLVERTEXATTRIBI1IPROC) load(userptr, "glVertexAttribI1i"); - context->VertexAttribI1iv = (PFNGLVERTEXATTRIBI1IVPROC) load(userptr, "glVertexAttribI1iv"); - context->VertexAttribI1ui = (PFNGLVERTEXATTRIBI1UIPROC) load(userptr, "glVertexAttribI1ui"); - context->VertexAttribI1uiv = (PFNGLVERTEXATTRIBI1UIVPROC) load(userptr, "glVertexAttribI1uiv"); - context->VertexAttribI2i = (PFNGLVERTEXATTRIBI2IPROC) load(userptr, "glVertexAttribI2i"); - context->VertexAttribI2iv = (PFNGLVERTEXATTRIBI2IVPROC) load(userptr, "glVertexAttribI2iv"); - context->VertexAttribI2ui = (PFNGLVERTEXATTRIBI2UIPROC) load(userptr, "glVertexAttribI2ui"); - context->VertexAttribI2uiv = (PFNGLVERTEXATTRIBI2UIVPROC) load(userptr, "glVertexAttribI2uiv"); - context->VertexAttribI3i = (PFNGLVERTEXATTRIBI3IPROC) load(userptr, "glVertexAttribI3i"); - context->VertexAttribI3iv = (PFNGLVERTEXATTRIBI3IVPROC) load(userptr, "glVertexAttribI3iv"); - context->VertexAttribI3ui = (PFNGLVERTEXATTRIBI3UIPROC) load(userptr, "glVertexAttribI3ui"); - context->VertexAttribI3uiv = (PFNGLVERTEXATTRIBI3UIVPROC) load(userptr, "glVertexAttribI3uiv"); - context->VertexAttribI4bv = (PFNGLVERTEXATTRIBI4BVPROC) load(userptr, "glVertexAttribI4bv"); - context->VertexAttribI4i = (PFNGLVERTEXATTRIBI4IPROC) load(userptr, "glVertexAttribI4i"); - context->VertexAttribI4iv = (PFNGLVERTEXATTRIBI4IVPROC) load(userptr, "glVertexAttribI4iv"); - context->VertexAttribI4sv = (PFNGLVERTEXATTRIBI4SVPROC) load(userptr, "glVertexAttribI4sv"); - context->VertexAttribI4ubv = (PFNGLVERTEXATTRIBI4UBVPROC) load(userptr, "glVertexAttribI4ubv"); - context->VertexAttribI4ui = (PFNGLVERTEXATTRIBI4UIPROC) load(userptr, "glVertexAttribI4ui"); - context->VertexAttribI4uiv = (PFNGLVERTEXATTRIBI4UIVPROC) load(userptr, "glVertexAttribI4uiv"); - context->VertexAttribI4usv = (PFNGLVERTEXATTRIBI4USVPROC) load(userptr, "glVertexAttribI4usv"); - context->VertexAttribIPointer = (PFNGLVERTEXATTRIBIPOINTERPROC) load(userptr, "glVertexAttribIPointer"); -} -static void glad_gl_load_GL_VERSION_3_1(GladGLContext *context, GLADuserptrloadfunc load, void* userptr) { - if(!context->VERSION_3_1) return; - context->BindBufferBase = (PFNGLBINDBUFFERBASEPROC) load(userptr, "glBindBufferBase"); - context->BindBufferRange = (PFNGLBINDBUFFERRANGEPROC) load(userptr, "glBindBufferRange"); - context->CopyBufferSubData = (PFNGLCOPYBUFFERSUBDATAPROC) load(userptr, "glCopyBufferSubData"); - context->DrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDPROC) load(userptr, "glDrawArraysInstanced"); - context->DrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDPROC) load(userptr, "glDrawElementsInstanced"); - context->GetActiveUniformBlockName = (PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) load(userptr, "glGetActiveUniformBlockName"); - context->GetActiveUniformBlockiv = (PFNGLGETACTIVEUNIFORMBLOCKIVPROC) load(userptr, "glGetActiveUniformBlockiv"); - context->GetActiveUniformName = (PFNGLGETACTIVEUNIFORMNAMEPROC) load(userptr, "glGetActiveUniformName"); - context->GetActiveUniformsiv = (PFNGLGETACTIVEUNIFORMSIVPROC) load(userptr, "glGetActiveUniformsiv"); - context->GetIntegeri_v = (PFNGLGETINTEGERI_VPROC) load(userptr, "glGetIntegeri_v"); - context->GetUniformBlockIndex = (PFNGLGETUNIFORMBLOCKINDEXPROC) load(userptr, "glGetUniformBlockIndex"); - context->GetUniformIndices = (PFNGLGETUNIFORMINDICESPROC) load(userptr, "glGetUniformIndices"); - context->PrimitiveRestartIndex = (PFNGLPRIMITIVERESTARTINDEXPROC) load(userptr, "glPrimitiveRestartIndex"); - context->TexBuffer = (PFNGLTEXBUFFERPROC) load(userptr, "glTexBuffer"); - context->UniformBlockBinding = (PFNGLUNIFORMBLOCKBINDINGPROC) load(userptr, "glUniformBlockBinding"); -} -static void glad_gl_load_GL_VERSION_3_2(GladGLContext *context, GLADuserptrloadfunc load, void* userptr) { - if(!context->VERSION_3_2) return; - context->ClientWaitSync = (PFNGLCLIENTWAITSYNCPROC) load(userptr, "glClientWaitSync"); - context->DeleteSync = (PFNGLDELETESYNCPROC) load(userptr, "glDeleteSync"); - context->DrawElementsBaseVertex = (PFNGLDRAWELEMENTSBASEVERTEXPROC) load(userptr, "glDrawElementsBaseVertex"); - context->DrawElementsInstancedBaseVertex = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) load(userptr, "glDrawElementsInstancedBaseVertex"); - context->DrawRangeElementsBaseVertex = (PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) load(userptr, "glDrawRangeElementsBaseVertex"); - context->FenceSync = (PFNGLFENCESYNCPROC) load(userptr, "glFenceSync"); - context->FramebufferTexture = (PFNGLFRAMEBUFFERTEXTUREPROC) load(userptr, "glFramebufferTexture"); - context->GetBufferParameteri64v = (PFNGLGETBUFFERPARAMETERI64VPROC) load(userptr, "glGetBufferParameteri64v"); - context->GetInteger64i_v = (PFNGLGETINTEGER64I_VPROC) load(userptr, "glGetInteger64i_v"); - context->GetInteger64v = (PFNGLGETINTEGER64VPROC) load(userptr, "glGetInteger64v"); - context->GetMultisamplefv = (PFNGLGETMULTISAMPLEFVPROC) load(userptr, "glGetMultisamplefv"); - context->GetSynciv = (PFNGLGETSYNCIVPROC) load(userptr, "glGetSynciv"); - context->IsSync = (PFNGLISSYNCPROC) load(userptr, "glIsSync"); - context->MultiDrawElementsBaseVertex = (PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC) load(userptr, "glMultiDrawElementsBaseVertex"); - context->ProvokingVertex = (PFNGLPROVOKINGVERTEXPROC) load(userptr, "glProvokingVertex"); - context->SampleMaski = (PFNGLSAMPLEMASKIPROC) load(userptr, "glSampleMaski"); - context->TexImage2DMultisample = (PFNGLTEXIMAGE2DMULTISAMPLEPROC) load(userptr, "glTexImage2DMultisample"); - context->TexImage3DMultisample = (PFNGLTEXIMAGE3DMULTISAMPLEPROC) load(userptr, "glTexImage3DMultisample"); - context->WaitSync = (PFNGLWAITSYNCPROC) load(userptr, "glWaitSync"); -} -static void glad_gl_load_GL_VERSION_3_3(GladGLContext *context, GLADuserptrloadfunc load, void* userptr) { - if(!context->VERSION_3_3) return; - context->BindFragDataLocationIndexed = (PFNGLBINDFRAGDATALOCATIONINDEXEDPROC) load(userptr, "glBindFragDataLocationIndexed"); - context->BindSampler = (PFNGLBINDSAMPLERPROC) load(userptr, "glBindSampler"); - context->ColorP3ui = (PFNGLCOLORP3UIPROC) load(userptr, "glColorP3ui"); - context->ColorP3uiv = (PFNGLCOLORP3UIVPROC) load(userptr, "glColorP3uiv"); - context->ColorP4ui = (PFNGLCOLORP4UIPROC) load(userptr, "glColorP4ui"); - context->ColorP4uiv = (PFNGLCOLORP4UIVPROC) load(userptr, "glColorP4uiv"); - context->DeleteSamplers = (PFNGLDELETESAMPLERSPROC) load(userptr, "glDeleteSamplers"); - context->GenSamplers = (PFNGLGENSAMPLERSPROC) load(userptr, "glGenSamplers"); - context->GetFragDataIndex = (PFNGLGETFRAGDATAINDEXPROC) load(userptr, "glGetFragDataIndex"); - context->GetQueryObjecti64v = (PFNGLGETQUERYOBJECTI64VPROC) load(userptr, "glGetQueryObjecti64v"); - context->GetQueryObjectui64v = (PFNGLGETQUERYOBJECTUI64VPROC) load(userptr, "glGetQueryObjectui64v"); - context->GetSamplerParameterIiv = (PFNGLGETSAMPLERPARAMETERIIVPROC) load(userptr, "glGetSamplerParameterIiv"); - context->GetSamplerParameterIuiv = (PFNGLGETSAMPLERPARAMETERIUIVPROC) load(userptr, "glGetSamplerParameterIuiv"); - context->GetSamplerParameterfv = (PFNGLGETSAMPLERPARAMETERFVPROC) load(userptr, "glGetSamplerParameterfv"); - context->GetSamplerParameteriv = (PFNGLGETSAMPLERPARAMETERIVPROC) load(userptr, "glGetSamplerParameteriv"); - context->IsSampler = (PFNGLISSAMPLERPROC) load(userptr, "glIsSampler"); - context->MultiTexCoordP1ui = (PFNGLMULTITEXCOORDP1UIPROC) load(userptr, "glMultiTexCoordP1ui"); - context->MultiTexCoordP1uiv = (PFNGLMULTITEXCOORDP1UIVPROC) load(userptr, "glMultiTexCoordP1uiv"); - context->MultiTexCoordP2ui = (PFNGLMULTITEXCOORDP2UIPROC) load(userptr, "glMultiTexCoordP2ui"); - context->MultiTexCoordP2uiv = (PFNGLMULTITEXCOORDP2UIVPROC) load(userptr, "glMultiTexCoordP2uiv"); - context->MultiTexCoordP3ui = (PFNGLMULTITEXCOORDP3UIPROC) load(userptr, "glMultiTexCoordP3ui"); - context->MultiTexCoordP3uiv = (PFNGLMULTITEXCOORDP3UIVPROC) load(userptr, "glMultiTexCoordP3uiv"); - context->MultiTexCoordP4ui = (PFNGLMULTITEXCOORDP4UIPROC) load(userptr, "glMultiTexCoordP4ui"); - context->MultiTexCoordP4uiv = (PFNGLMULTITEXCOORDP4UIVPROC) load(userptr, "glMultiTexCoordP4uiv"); - context->NormalP3ui = (PFNGLNORMALP3UIPROC) load(userptr, "glNormalP3ui"); - context->NormalP3uiv = (PFNGLNORMALP3UIVPROC) load(userptr, "glNormalP3uiv"); - context->QueryCounter = (PFNGLQUERYCOUNTERPROC) load(userptr, "glQueryCounter"); - context->SamplerParameterIiv = (PFNGLSAMPLERPARAMETERIIVPROC) load(userptr, "glSamplerParameterIiv"); - context->SamplerParameterIuiv = (PFNGLSAMPLERPARAMETERIUIVPROC) load(userptr, "glSamplerParameterIuiv"); - context->SamplerParameterf = (PFNGLSAMPLERPARAMETERFPROC) load(userptr, "glSamplerParameterf"); - context->SamplerParameterfv = (PFNGLSAMPLERPARAMETERFVPROC) load(userptr, "glSamplerParameterfv"); - context->SamplerParameteri = (PFNGLSAMPLERPARAMETERIPROC) load(userptr, "glSamplerParameteri"); - context->SamplerParameteriv = (PFNGLSAMPLERPARAMETERIVPROC) load(userptr, "glSamplerParameteriv"); - context->SecondaryColorP3ui = (PFNGLSECONDARYCOLORP3UIPROC) load(userptr, "glSecondaryColorP3ui"); - context->SecondaryColorP3uiv = (PFNGLSECONDARYCOLORP3UIVPROC) load(userptr, "glSecondaryColorP3uiv"); - context->TexCoordP1ui = (PFNGLTEXCOORDP1UIPROC) load(userptr, "glTexCoordP1ui"); - context->TexCoordP1uiv = (PFNGLTEXCOORDP1UIVPROC) load(userptr, "glTexCoordP1uiv"); - context->TexCoordP2ui = (PFNGLTEXCOORDP2UIPROC) load(userptr, "glTexCoordP2ui"); - context->TexCoordP2uiv = (PFNGLTEXCOORDP2UIVPROC) load(userptr, "glTexCoordP2uiv"); - context->TexCoordP3ui = (PFNGLTEXCOORDP3UIPROC) load(userptr, "glTexCoordP3ui"); - context->TexCoordP3uiv = (PFNGLTEXCOORDP3UIVPROC) load(userptr, "glTexCoordP3uiv"); - context->TexCoordP4ui = (PFNGLTEXCOORDP4UIPROC) load(userptr, "glTexCoordP4ui"); - context->TexCoordP4uiv = (PFNGLTEXCOORDP4UIVPROC) load(userptr, "glTexCoordP4uiv"); - context->VertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISORPROC) load(userptr, "glVertexAttribDivisor"); - context->VertexAttribP1ui = (PFNGLVERTEXATTRIBP1UIPROC) load(userptr, "glVertexAttribP1ui"); - context->VertexAttribP1uiv = (PFNGLVERTEXATTRIBP1UIVPROC) load(userptr, "glVertexAttribP1uiv"); - context->VertexAttribP2ui = (PFNGLVERTEXATTRIBP2UIPROC) load(userptr, "glVertexAttribP2ui"); - context->VertexAttribP2uiv = (PFNGLVERTEXATTRIBP2UIVPROC) load(userptr, "glVertexAttribP2uiv"); - context->VertexAttribP3ui = (PFNGLVERTEXATTRIBP3UIPROC) load(userptr, "glVertexAttribP3ui"); - context->VertexAttribP3uiv = (PFNGLVERTEXATTRIBP3UIVPROC) load(userptr, "glVertexAttribP3uiv"); - context->VertexAttribP4ui = (PFNGLVERTEXATTRIBP4UIPROC) load(userptr, "glVertexAttribP4ui"); - context->VertexAttribP4uiv = (PFNGLVERTEXATTRIBP4UIVPROC) load(userptr, "glVertexAttribP4uiv"); - context->VertexP2ui = (PFNGLVERTEXP2UIPROC) load(userptr, "glVertexP2ui"); - context->VertexP2uiv = (PFNGLVERTEXP2UIVPROC) load(userptr, "glVertexP2uiv"); - context->VertexP3ui = (PFNGLVERTEXP3UIPROC) load(userptr, "glVertexP3ui"); - context->VertexP3uiv = (PFNGLVERTEXP3UIVPROC) load(userptr, "glVertexP3uiv"); - context->VertexP4ui = (PFNGLVERTEXP4UIPROC) load(userptr, "glVertexP4ui"); - context->VertexP4uiv = (PFNGLVERTEXP4UIVPROC) load(userptr, "glVertexP4uiv"); -} -static void glad_gl_load_GL_VERSION_4_0(GladGLContext *context, GLADuserptrloadfunc load, void* userptr) { - if(!context->VERSION_4_0) return; - context->BeginQueryIndexed = (PFNGLBEGINQUERYINDEXEDPROC) load(userptr, "glBeginQueryIndexed"); - context->BindTransformFeedback = (PFNGLBINDTRANSFORMFEEDBACKPROC) load(userptr, "glBindTransformFeedback"); - context->BlendEquationSeparatei = (PFNGLBLENDEQUATIONSEPARATEIPROC) load(userptr, "glBlendEquationSeparatei"); - context->BlendEquationi = (PFNGLBLENDEQUATIONIPROC) load(userptr, "glBlendEquationi"); - context->BlendFuncSeparatei = (PFNGLBLENDFUNCSEPARATEIPROC) load(userptr, "glBlendFuncSeparatei"); - context->BlendFunci = (PFNGLBLENDFUNCIPROC) load(userptr, "glBlendFunci"); - context->DeleteTransformFeedbacks = (PFNGLDELETETRANSFORMFEEDBACKSPROC) load(userptr, "glDeleteTransformFeedbacks"); - context->DrawArraysIndirect = (PFNGLDRAWARRAYSINDIRECTPROC) load(userptr, "glDrawArraysIndirect"); - context->DrawElementsIndirect = (PFNGLDRAWELEMENTSINDIRECTPROC) load(userptr, "glDrawElementsIndirect"); - context->DrawTransformFeedback = (PFNGLDRAWTRANSFORMFEEDBACKPROC) load(userptr, "glDrawTransformFeedback"); - context->DrawTransformFeedbackStream = (PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC) load(userptr, "glDrawTransformFeedbackStream"); - context->EndQueryIndexed = (PFNGLENDQUERYINDEXEDPROC) load(userptr, "glEndQueryIndexed"); - context->GenTransformFeedbacks = (PFNGLGENTRANSFORMFEEDBACKSPROC) load(userptr, "glGenTransformFeedbacks"); - context->GetActiveSubroutineName = (PFNGLGETACTIVESUBROUTINENAMEPROC) load(userptr, "glGetActiveSubroutineName"); - context->GetActiveSubroutineUniformName = (PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC) load(userptr, "glGetActiveSubroutineUniformName"); - context->GetActiveSubroutineUniformiv = (PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC) load(userptr, "glGetActiveSubroutineUniformiv"); - context->GetProgramStageiv = (PFNGLGETPROGRAMSTAGEIVPROC) load(userptr, "glGetProgramStageiv"); - context->GetQueryIndexediv = (PFNGLGETQUERYINDEXEDIVPROC) load(userptr, "glGetQueryIndexediv"); - context->GetSubroutineIndex = (PFNGLGETSUBROUTINEINDEXPROC) load(userptr, "glGetSubroutineIndex"); - context->GetSubroutineUniformLocation = (PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC) load(userptr, "glGetSubroutineUniformLocation"); - context->GetUniformSubroutineuiv = (PFNGLGETUNIFORMSUBROUTINEUIVPROC) load(userptr, "glGetUniformSubroutineuiv"); - context->GetUniformdv = (PFNGLGETUNIFORMDVPROC) load(userptr, "glGetUniformdv"); - context->IsTransformFeedback = (PFNGLISTRANSFORMFEEDBACKPROC) load(userptr, "glIsTransformFeedback"); - context->MinSampleShading = (PFNGLMINSAMPLESHADINGPROC) load(userptr, "glMinSampleShading"); - context->PatchParameterfv = (PFNGLPATCHPARAMETERFVPROC) load(userptr, "glPatchParameterfv"); - context->PatchParameteri = (PFNGLPATCHPARAMETERIPROC) load(userptr, "glPatchParameteri"); - context->PauseTransformFeedback = (PFNGLPAUSETRANSFORMFEEDBACKPROC) load(userptr, "glPauseTransformFeedback"); - context->ResumeTransformFeedback = (PFNGLRESUMETRANSFORMFEEDBACKPROC) load(userptr, "glResumeTransformFeedback"); - context->Uniform1d = (PFNGLUNIFORM1DPROC) load(userptr, "glUniform1d"); - context->Uniform1dv = (PFNGLUNIFORM1DVPROC) load(userptr, "glUniform1dv"); - context->Uniform2d = (PFNGLUNIFORM2DPROC) load(userptr, "glUniform2d"); - context->Uniform2dv = (PFNGLUNIFORM2DVPROC) load(userptr, "glUniform2dv"); - context->Uniform3d = (PFNGLUNIFORM3DPROC) load(userptr, "glUniform3d"); - context->Uniform3dv = (PFNGLUNIFORM3DVPROC) load(userptr, "glUniform3dv"); - context->Uniform4d = (PFNGLUNIFORM4DPROC) load(userptr, "glUniform4d"); - context->Uniform4dv = (PFNGLUNIFORM4DVPROC) load(userptr, "glUniform4dv"); - context->UniformMatrix2dv = (PFNGLUNIFORMMATRIX2DVPROC) load(userptr, "glUniformMatrix2dv"); - context->UniformMatrix2x3dv = (PFNGLUNIFORMMATRIX2X3DVPROC) load(userptr, "glUniformMatrix2x3dv"); - context->UniformMatrix2x4dv = (PFNGLUNIFORMMATRIX2X4DVPROC) load(userptr, "glUniformMatrix2x4dv"); - context->UniformMatrix3dv = (PFNGLUNIFORMMATRIX3DVPROC) load(userptr, "glUniformMatrix3dv"); - context->UniformMatrix3x2dv = (PFNGLUNIFORMMATRIX3X2DVPROC) load(userptr, "glUniformMatrix3x2dv"); - context->UniformMatrix3x4dv = (PFNGLUNIFORMMATRIX3X4DVPROC) load(userptr, "glUniformMatrix3x4dv"); - context->UniformMatrix4dv = (PFNGLUNIFORMMATRIX4DVPROC) load(userptr, "glUniformMatrix4dv"); - context->UniformMatrix4x2dv = (PFNGLUNIFORMMATRIX4X2DVPROC) load(userptr, "glUniformMatrix4x2dv"); - context->UniformMatrix4x3dv = (PFNGLUNIFORMMATRIX4X3DVPROC) load(userptr, "glUniformMatrix4x3dv"); - context->UniformSubroutinesuiv = (PFNGLUNIFORMSUBROUTINESUIVPROC) load(userptr, "glUniformSubroutinesuiv"); -} -static void glad_gl_load_GL_VERSION_4_1(GladGLContext *context, GLADuserptrloadfunc load, void* userptr) { - if(!context->VERSION_4_1) return; - context->ActiveShaderProgram = (PFNGLACTIVESHADERPROGRAMPROC) load(userptr, "glActiveShaderProgram"); - context->BindProgramPipeline = (PFNGLBINDPROGRAMPIPELINEPROC) load(userptr, "glBindProgramPipeline"); - context->ClearDepthf = (PFNGLCLEARDEPTHFPROC) load(userptr, "glClearDepthf"); - context->CreateShaderProgramv = (PFNGLCREATESHADERPROGRAMVPROC) load(userptr, "glCreateShaderProgramv"); - context->DeleteProgramPipelines = (PFNGLDELETEPROGRAMPIPELINESPROC) load(userptr, "glDeleteProgramPipelines"); - context->DepthRangeArrayv = (PFNGLDEPTHRANGEARRAYVPROC) load(userptr, "glDepthRangeArrayv"); - context->DepthRangeIndexed = (PFNGLDEPTHRANGEINDEXEDPROC) load(userptr, "glDepthRangeIndexed"); - context->DepthRangef = (PFNGLDEPTHRANGEFPROC) load(userptr, "glDepthRangef"); - context->GenProgramPipelines = (PFNGLGENPROGRAMPIPELINESPROC) load(userptr, "glGenProgramPipelines"); - context->GetDoublei_v = (PFNGLGETDOUBLEI_VPROC) load(userptr, "glGetDoublei_v"); - context->GetFloati_v = (PFNGLGETFLOATI_VPROC) load(userptr, "glGetFloati_v"); - context->GetProgramBinary = (PFNGLGETPROGRAMBINARYPROC) load(userptr, "glGetProgramBinary"); - context->GetProgramPipelineInfoLog = (PFNGLGETPROGRAMPIPELINEINFOLOGPROC) load(userptr, "glGetProgramPipelineInfoLog"); - context->GetProgramPipelineiv = (PFNGLGETPROGRAMPIPELINEIVPROC) load(userptr, "glGetProgramPipelineiv"); - context->GetShaderPrecisionFormat = (PFNGLGETSHADERPRECISIONFORMATPROC) load(userptr, "glGetShaderPrecisionFormat"); - context->GetVertexAttribLdv = (PFNGLGETVERTEXATTRIBLDVPROC) load(userptr, "glGetVertexAttribLdv"); - context->IsProgramPipeline = (PFNGLISPROGRAMPIPELINEPROC) load(userptr, "glIsProgramPipeline"); - context->ProgramBinary = (PFNGLPROGRAMBINARYPROC) load(userptr, "glProgramBinary"); - context->ProgramParameteri = (PFNGLPROGRAMPARAMETERIPROC) load(userptr, "glProgramParameteri"); - context->ProgramUniform1d = (PFNGLPROGRAMUNIFORM1DPROC) load(userptr, "glProgramUniform1d"); - context->ProgramUniform1dv = (PFNGLPROGRAMUNIFORM1DVPROC) load(userptr, "glProgramUniform1dv"); - context->ProgramUniform1f = (PFNGLPROGRAMUNIFORM1FPROC) load(userptr, "glProgramUniform1f"); - context->ProgramUniform1fv = (PFNGLPROGRAMUNIFORM1FVPROC) load(userptr, "glProgramUniform1fv"); - context->ProgramUniform1i = (PFNGLPROGRAMUNIFORM1IPROC) load(userptr, "glProgramUniform1i"); - context->ProgramUniform1iv = (PFNGLPROGRAMUNIFORM1IVPROC) load(userptr, "glProgramUniform1iv"); - context->ProgramUniform1ui = (PFNGLPROGRAMUNIFORM1UIPROC) load(userptr, "glProgramUniform1ui"); - context->ProgramUniform1uiv = (PFNGLPROGRAMUNIFORM1UIVPROC) load(userptr, "glProgramUniform1uiv"); - context->ProgramUniform2d = (PFNGLPROGRAMUNIFORM2DPROC) load(userptr, "glProgramUniform2d"); - context->ProgramUniform2dv = (PFNGLPROGRAMUNIFORM2DVPROC) load(userptr, "glProgramUniform2dv"); - context->ProgramUniform2f = (PFNGLPROGRAMUNIFORM2FPROC) load(userptr, "glProgramUniform2f"); - context->ProgramUniform2fv = (PFNGLPROGRAMUNIFORM2FVPROC) load(userptr, "glProgramUniform2fv"); - context->ProgramUniform2i = (PFNGLPROGRAMUNIFORM2IPROC) load(userptr, "glProgramUniform2i"); - context->ProgramUniform2iv = (PFNGLPROGRAMUNIFORM2IVPROC) load(userptr, "glProgramUniform2iv"); - context->ProgramUniform2ui = (PFNGLPROGRAMUNIFORM2UIPROC) load(userptr, "glProgramUniform2ui"); - context->ProgramUniform2uiv = (PFNGLPROGRAMUNIFORM2UIVPROC) load(userptr, "glProgramUniform2uiv"); - context->ProgramUniform3d = (PFNGLPROGRAMUNIFORM3DPROC) load(userptr, "glProgramUniform3d"); - context->ProgramUniform3dv = (PFNGLPROGRAMUNIFORM3DVPROC) load(userptr, "glProgramUniform3dv"); - context->ProgramUniform3f = (PFNGLPROGRAMUNIFORM3FPROC) load(userptr, "glProgramUniform3f"); - context->ProgramUniform3fv = (PFNGLPROGRAMUNIFORM3FVPROC) load(userptr, "glProgramUniform3fv"); - context->ProgramUniform3i = (PFNGLPROGRAMUNIFORM3IPROC) load(userptr, "glProgramUniform3i"); - context->ProgramUniform3iv = (PFNGLPROGRAMUNIFORM3IVPROC) load(userptr, "glProgramUniform3iv"); - context->ProgramUniform3ui = (PFNGLPROGRAMUNIFORM3UIPROC) load(userptr, "glProgramUniform3ui"); - context->ProgramUniform3uiv = (PFNGLPROGRAMUNIFORM3UIVPROC) load(userptr, "glProgramUniform3uiv"); - context->ProgramUniform4d = (PFNGLPROGRAMUNIFORM4DPROC) load(userptr, "glProgramUniform4d"); - context->ProgramUniform4dv = (PFNGLPROGRAMUNIFORM4DVPROC) load(userptr, "glProgramUniform4dv"); - context->ProgramUniform4f = (PFNGLPROGRAMUNIFORM4FPROC) load(userptr, "glProgramUniform4f"); - context->ProgramUniform4fv = (PFNGLPROGRAMUNIFORM4FVPROC) load(userptr, "glProgramUniform4fv"); - context->ProgramUniform4i = (PFNGLPROGRAMUNIFORM4IPROC) load(userptr, "glProgramUniform4i"); - context->ProgramUniform4iv = (PFNGLPROGRAMUNIFORM4IVPROC) load(userptr, "glProgramUniform4iv"); - context->ProgramUniform4ui = (PFNGLPROGRAMUNIFORM4UIPROC) load(userptr, "glProgramUniform4ui"); - context->ProgramUniform4uiv = (PFNGLPROGRAMUNIFORM4UIVPROC) load(userptr, "glProgramUniform4uiv"); - context->ProgramUniformMatrix2dv = (PFNGLPROGRAMUNIFORMMATRIX2DVPROC) load(userptr, "glProgramUniformMatrix2dv"); - context->ProgramUniformMatrix2fv = (PFNGLPROGRAMUNIFORMMATRIX2FVPROC) load(userptr, "glProgramUniformMatrix2fv"); - context->ProgramUniformMatrix2x3dv = (PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC) load(userptr, "glProgramUniformMatrix2x3dv"); - context->ProgramUniformMatrix2x3fv = (PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC) load(userptr, "glProgramUniformMatrix2x3fv"); - context->ProgramUniformMatrix2x4dv = (PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC) load(userptr, "glProgramUniformMatrix2x4dv"); - context->ProgramUniformMatrix2x4fv = (PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC) load(userptr, "glProgramUniformMatrix2x4fv"); - context->ProgramUniformMatrix3dv = (PFNGLPROGRAMUNIFORMMATRIX3DVPROC) load(userptr, "glProgramUniformMatrix3dv"); - context->ProgramUniformMatrix3fv = (PFNGLPROGRAMUNIFORMMATRIX3FVPROC) load(userptr, "glProgramUniformMatrix3fv"); - context->ProgramUniformMatrix3x2dv = (PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC) load(userptr, "glProgramUniformMatrix3x2dv"); - context->ProgramUniformMatrix3x2fv = (PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC) load(userptr, "glProgramUniformMatrix3x2fv"); - context->ProgramUniformMatrix3x4dv = (PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC) load(userptr, "glProgramUniformMatrix3x4dv"); - context->ProgramUniformMatrix3x4fv = (PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC) load(userptr, "glProgramUniformMatrix3x4fv"); - context->ProgramUniformMatrix4dv = (PFNGLPROGRAMUNIFORMMATRIX4DVPROC) load(userptr, "glProgramUniformMatrix4dv"); - context->ProgramUniformMatrix4fv = (PFNGLPROGRAMUNIFORMMATRIX4FVPROC) load(userptr, "glProgramUniformMatrix4fv"); - context->ProgramUniformMatrix4x2dv = (PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC) load(userptr, "glProgramUniformMatrix4x2dv"); - context->ProgramUniformMatrix4x2fv = (PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC) load(userptr, "glProgramUniformMatrix4x2fv"); - context->ProgramUniformMatrix4x3dv = (PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC) load(userptr, "glProgramUniformMatrix4x3dv"); - context->ProgramUniformMatrix4x3fv = (PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC) load(userptr, "glProgramUniformMatrix4x3fv"); - context->ReleaseShaderCompiler = (PFNGLRELEASESHADERCOMPILERPROC) load(userptr, "glReleaseShaderCompiler"); - context->ScissorArrayv = (PFNGLSCISSORARRAYVPROC) load(userptr, "glScissorArrayv"); - context->ScissorIndexed = (PFNGLSCISSORINDEXEDPROC) load(userptr, "glScissorIndexed"); - context->ScissorIndexedv = (PFNGLSCISSORINDEXEDVPROC) load(userptr, "glScissorIndexedv"); - context->ShaderBinary = (PFNGLSHADERBINARYPROC) load(userptr, "glShaderBinary"); - context->UseProgramStages = (PFNGLUSEPROGRAMSTAGESPROC) load(userptr, "glUseProgramStages"); - context->ValidateProgramPipeline = (PFNGLVALIDATEPROGRAMPIPELINEPROC) load(userptr, "glValidateProgramPipeline"); - context->VertexAttribL1d = (PFNGLVERTEXATTRIBL1DPROC) load(userptr, "glVertexAttribL1d"); - context->VertexAttribL1dv = (PFNGLVERTEXATTRIBL1DVPROC) load(userptr, "glVertexAttribL1dv"); - context->VertexAttribL2d = (PFNGLVERTEXATTRIBL2DPROC) load(userptr, "glVertexAttribL2d"); - context->VertexAttribL2dv = (PFNGLVERTEXATTRIBL2DVPROC) load(userptr, "glVertexAttribL2dv"); - context->VertexAttribL3d = (PFNGLVERTEXATTRIBL3DPROC) load(userptr, "glVertexAttribL3d"); - context->VertexAttribL3dv = (PFNGLVERTEXATTRIBL3DVPROC) load(userptr, "glVertexAttribL3dv"); - context->VertexAttribL4d = (PFNGLVERTEXATTRIBL4DPROC) load(userptr, "glVertexAttribL4d"); - context->VertexAttribL4dv = (PFNGLVERTEXATTRIBL4DVPROC) load(userptr, "glVertexAttribL4dv"); - context->VertexAttribLPointer = (PFNGLVERTEXATTRIBLPOINTERPROC) load(userptr, "glVertexAttribLPointer"); - context->ViewportArrayv = (PFNGLVIEWPORTARRAYVPROC) load(userptr, "glViewportArrayv"); - context->ViewportIndexedf = (PFNGLVIEWPORTINDEXEDFPROC) load(userptr, "glViewportIndexedf"); - context->ViewportIndexedfv = (PFNGLVIEWPORTINDEXEDFVPROC) load(userptr, "glViewportIndexedfv"); -} -static void glad_gl_load_GL_VERSION_4_2(GladGLContext *context, GLADuserptrloadfunc load, void* userptr) { - if(!context->VERSION_4_2) return; - context->BindImageTexture = (PFNGLBINDIMAGETEXTUREPROC) load(userptr, "glBindImageTexture"); - context->DrawArraysInstancedBaseInstance = (PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC) load(userptr, "glDrawArraysInstancedBaseInstance"); - context->DrawElementsInstancedBaseInstance = (PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC) load(userptr, "glDrawElementsInstancedBaseInstance"); - context->DrawElementsInstancedBaseVertexBaseInstance = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC) load(userptr, "glDrawElementsInstancedBaseVertexBaseInstance"); - context->DrawTransformFeedbackInstanced = (PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC) load(userptr, "glDrawTransformFeedbackInstanced"); - context->DrawTransformFeedbackStreamInstanced = (PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC) load(userptr, "glDrawTransformFeedbackStreamInstanced"); - context->GetActiveAtomicCounterBufferiv = (PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC) load(userptr, "glGetActiveAtomicCounterBufferiv"); - context->GetInternalformativ = (PFNGLGETINTERNALFORMATIVPROC) load(userptr, "glGetInternalformativ"); - context->MemoryBarrier = (PFNGLMEMORYBARRIERPROC) load(userptr, "glMemoryBarrier"); - context->TexStorage1D = (PFNGLTEXSTORAGE1DPROC) load(userptr, "glTexStorage1D"); - context->TexStorage2D = (PFNGLTEXSTORAGE2DPROC) load(userptr, "glTexStorage2D"); - context->TexStorage3D = (PFNGLTEXSTORAGE3DPROC) load(userptr, "glTexStorage3D"); -} -static void glad_gl_load_GL_VERSION_4_3(GladGLContext *context, GLADuserptrloadfunc load, void* userptr) { - if(!context->VERSION_4_3) return; - context->BindVertexBuffer = (PFNGLBINDVERTEXBUFFERPROC) load(userptr, "glBindVertexBuffer"); - context->ClearBufferData = (PFNGLCLEARBUFFERDATAPROC) load(userptr, "glClearBufferData"); - context->ClearBufferSubData = (PFNGLCLEARBUFFERSUBDATAPROC) load(userptr, "glClearBufferSubData"); - context->CopyImageSubData = (PFNGLCOPYIMAGESUBDATAPROC) load(userptr, "glCopyImageSubData"); - context->DebugMessageCallback = (PFNGLDEBUGMESSAGECALLBACKPROC) load(userptr, "glDebugMessageCallback"); - context->DebugMessageControl = (PFNGLDEBUGMESSAGECONTROLPROC) load(userptr, "glDebugMessageControl"); - context->DebugMessageInsert = (PFNGLDEBUGMESSAGEINSERTPROC) load(userptr, "glDebugMessageInsert"); - context->DispatchCompute = (PFNGLDISPATCHCOMPUTEPROC) load(userptr, "glDispatchCompute"); - context->DispatchComputeIndirect = (PFNGLDISPATCHCOMPUTEINDIRECTPROC) load(userptr, "glDispatchComputeIndirect"); - context->FramebufferParameteri = (PFNGLFRAMEBUFFERPARAMETERIPROC) load(userptr, "glFramebufferParameteri"); - context->GetDebugMessageLog = (PFNGLGETDEBUGMESSAGELOGPROC) load(userptr, "glGetDebugMessageLog"); - context->GetFramebufferParameteriv = (PFNGLGETFRAMEBUFFERPARAMETERIVPROC) load(userptr, "glGetFramebufferParameteriv"); - context->GetInternalformati64v = (PFNGLGETINTERNALFORMATI64VPROC) load(userptr, "glGetInternalformati64v"); - context->GetObjectLabel = (PFNGLGETOBJECTLABELPROC) load(userptr, "glGetObjectLabel"); - context->GetObjectPtrLabel = (PFNGLGETOBJECTPTRLABELPROC) load(userptr, "glGetObjectPtrLabel"); - context->GetPointerv = (PFNGLGETPOINTERVPROC) load(userptr, "glGetPointerv"); - context->GetProgramInterfaceiv = (PFNGLGETPROGRAMINTERFACEIVPROC) load(userptr, "glGetProgramInterfaceiv"); - context->GetProgramResourceIndex = (PFNGLGETPROGRAMRESOURCEINDEXPROC) load(userptr, "glGetProgramResourceIndex"); - context->GetProgramResourceLocation = (PFNGLGETPROGRAMRESOURCELOCATIONPROC) load(userptr, "glGetProgramResourceLocation"); - context->GetProgramResourceLocationIndex = (PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC) load(userptr, "glGetProgramResourceLocationIndex"); - context->GetProgramResourceName = (PFNGLGETPROGRAMRESOURCENAMEPROC) load(userptr, "glGetProgramResourceName"); - context->GetProgramResourceiv = (PFNGLGETPROGRAMRESOURCEIVPROC) load(userptr, "glGetProgramResourceiv"); - context->InvalidateBufferData = (PFNGLINVALIDATEBUFFERDATAPROC) load(userptr, "glInvalidateBufferData"); - context->InvalidateBufferSubData = (PFNGLINVALIDATEBUFFERSUBDATAPROC) load(userptr, "glInvalidateBufferSubData"); - context->InvalidateFramebuffer = (PFNGLINVALIDATEFRAMEBUFFERPROC) load(userptr, "glInvalidateFramebuffer"); - context->InvalidateSubFramebuffer = (PFNGLINVALIDATESUBFRAMEBUFFERPROC) load(userptr, "glInvalidateSubFramebuffer"); - context->InvalidateTexImage = (PFNGLINVALIDATETEXIMAGEPROC) load(userptr, "glInvalidateTexImage"); - context->InvalidateTexSubImage = (PFNGLINVALIDATETEXSUBIMAGEPROC) load(userptr, "glInvalidateTexSubImage"); - context->MultiDrawArraysIndirect = (PFNGLMULTIDRAWARRAYSINDIRECTPROC) load(userptr, "glMultiDrawArraysIndirect"); - context->MultiDrawElementsIndirect = (PFNGLMULTIDRAWELEMENTSINDIRECTPROC) load(userptr, "glMultiDrawElementsIndirect"); - context->ObjectLabel = (PFNGLOBJECTLABELPROC) load(userptr, "glObjectLabel"); - context->ObjectPtrLabel = (PFNGLOBJECTPTRLABELPROC) load(userptr, "glObjectPtrLabel"); - context->PopDebugGroup = (PFNGLPOPDEBUGGROUPPROC) load(userptr, "glPopDebugGroup"); - context->PushDebugGroup = (PFNGLPUSHDEBUGGROUPPROC) load(userptr, "glPushDebugGroup"); - context->ShaderStorageBlockBinding = (PFNGLSHADERSTORAGEBLOCKBINDINGPROC) load(userptr, "glShaderStorageBlockBinding"); - context->TexBufferRange = (PFNGLTEXBUFFERRANGEPROC) load(userptr, "glTexBufferRange"); - context->TexStorage2DMultisample = (PFNGLTEXSTORAGE2DMULTISAMPLEPROC) load(userptr, "glTexStorage2DMultisample"); - context->TexStorage3DMultisample = (PFNGLTEXSTORAGE3DMULTISAMPLEPROC) load(userptr, "glTexStorage3DMultisample"); - context->TextureView = (PFNGLTEXTUREVIEWPROC) load(userptr, "glTextureView"); - context->VertexAttribBinding = (PFNGLVERTEXATTRIBBINDINGPROC) load(userptr, "glVertexAttribBinding"); - context->VertexAttribFormat = (PFNGLVERTEXATTRIBFORMATPROC) load(userptr, "glVertexAttribFormat"); - context->VertexAttribIFormat = (PFNGLVERTEXATTRIBIFORMATPROC) load(userptr, "glVertexAttribIFormat"); - context->VertexAttribLFormat = (PFNGLVERTEXATTRIBLFORMATPROC) load(userptr, "glVertexAttribLFormat"); - context->VertexBindingDivisor = (PFNGLVERTEXBINDINGDIVISORPROC) load(userptr, "glVertexBindingDivisor"); -} -static void glad_gl_load_GL_VERSION_4_4(GladGLContext *context, GLADuserptrloadfunc load, void* userptr) { - if(!context->VERSION_4_4) return; - context->BindBuffersBase = (PFNGLBINDBUFFERSBASEPROC) load(userptr, "glBindBuffersBase"); - context->BindBuffersRange = (PFNGLBINDBUFFERSRANGEPROC) load(userptr, "glBindBuffersRange"); - context->BindImageTextures = (PFNGLBINDIMAGETEXTURESPROC) load(userptr, "glBindImageTextures"); - context->BindSamplers = (PFNGLBINDSAMPLERSPROC) load(userptr, "glBindSamplers"); - context->BindTextures = (PFNGLBINDTEXTURESPROC) load(userptr, "glBindTextures"); - context->BindVertexBuffers = (PFNGLBINDVERTEXBUFFERSPROC) load(userptr, "glBindVertexBuffers"); - context->BufferStorage = (PFNGLBUFFERSTORAGEPROC) load(userptr, "glBufferStorage"); - context->ClearTexImage = (PFNGLCLEARTEXIMAGEPROC) load(userptr, "glClearTexImage"); - context->ClearTexSubImage = (PFNGLCLEARTEXSUBIMAGEPROC) load(userptr, "glClearTexSubImage"); -} -static void glad_gl_load_GL_VERSION_4_5(GladGLContext *context, GLADuserptrloadfunc load, void* userptr) { - if(!context->VERSION_4_5) return; - context->BindTextureUnit = (PFNGLBINDTEXTUREUNITPROC) load(userptr, "glBindTextureUnit"); - context->BlitNamedFramebuffer = (PFNGLBLITNAMEDFRAMEBUFFERPROC) load(userptr, "glBlitNamedFramebuffer"); - context->CheckNamedFramebufferStatus = (PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC) load(userptr, "glCheckNamedFramebufferStatus"); - context->ClearNamedBufferData = (PFNGLCLEARNAMEDBUFFERDATAPROC) load(userptr, "glClearNamedBufferData"); - context->ClearNamedBufferSubData = (PFNGLCLEARNAMEDBUFFERSUBDATAPROC) load(userptr, "glClearNamedBufferSubData"); - context->ClearNamedFramebufferfi = (PFNGLCLEARNAMEDFRAMEBUFFERFIPROC) load(userptr, "glClearNamedFramebufferfi"); - context->ClearNamedFramebufferfv = (PFNGLCLEARNAMEDFRAMEBUFFERFVPROC) load(userptr, "glClearNamedFramebufferfv"); - context->ClearNamedFramebufferiv = (PFNGLCLEARNAMEDFRAMEBUFFERIVPROC) load(userptr, "glClearNamedFramebufferiv"); - context->ClearNamedFramebufferuiv = (PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC) load(userptr, "glClearNamedFramebufferuiv"); - context->ClipControl = (PFNGLCLIPCONTROLPROC) load(userptr, "glClipControl"); - context->CompressedTextureSubImage1D = (PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC) load(userptr, "glCompressedTextureSubImage1D"); - context->CompressedTextureSubImage2D = (PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC) load(userptr, "glCompressedTextureSubImage2D"); - context->CompressedTextureSubImage3D = (PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC) load(userptr, "glCompressedTextureSubImage3D"); - context->CopyNamedBufferSubData = (PFNGLCOPYNAMEDBUFFERSUBDATAPROC) load(userptr, "glCopyNamedBufferSubData"); - context->CopyTextureSubImage1D = (PFNGLCOPYTEXTURESUBIMAGE1DPROC) load(userptr, "glCopyTextureSubImage1D"); - context->CopyTextureSubImage2D = (PFNGLCOPYTEXTURESUBIMAGE2DPROC) load(userptr, "glCopyTextureSubImage2D"); - context->CopyTextureSubImage3D = (PFNGLCOPYTEXTURESUBIMAGE3DPROC) load(userptr, "glCopyTextureSubImage3D"); - context->CreateBuffers = (PFNGLCREATEBUFFERSPROC) load(userptr, "glCreateBuffers"); - context->CreateFramebuffers = (PFNGLCREATEFRAMEBUFFERSPROC) load(userptr, "glCreateFramebuffers"); - context->CreateProgramPipelines = (PFNGLCREATEPROGRAMPIPELINESPROC) load(userptr, "glCreateProgramPipelines"); - context->CreateQueries = (PFNGLCREATEQUERIESPROC) load(userptr, "glCreateQueries"); - context->CreateRenderbuffers = (PFNGLCREATERENDERBUFFERSPROC) load(userptr, "glCreateRenderbuffers"); - context->CreateSamplers = (PFNGLCREATESAMPLERSPROC) load(userptr, "glCreateSamplers"); - context->CreateTextures = (PFNGLCREATETEXTURESPROC) load(userptr, "glCreateTextures"); - context->CreateTransformFeedbacks = (PFNGLCREATETRANSFORMFEEDBACKSPROC) load(userptr, "glCreateTransformFeedbacks"); - context->CreateVertexArrays = (PFNGLCREATEVERTEXARRAYSPROC) load(userptr, "glCreateVertexArrays"); - context->DisableVertexArrayAttrib = (PFNGLDISABLEVERTEXARRAYATTRIBPROC) load(userptr, "glDisableVertexArrayAttrib"); - context->EnableVertexArrayAttrib = (PFNGLENABLEVERTEXARRAYATTRIBPROC) load(userptr, "glEnableVertexArrayAttrib"); - context->FlushMappedNamedBufferRange = (PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC) load(userptr, "glFlushMappedNamedBufferRange"); - context->GenerateTextureMipmap = (PFNGLGENERATETEXTUREMIPMAPPROC) load(userptr, "glGenerateTextureMipmap"); - context->GetCompressedTextureImage = (PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC) load(userptr, "glGetCompressedTextureImage"); - context->GetCompressedTextureSubImage = (PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC) load(userptr, "glGetCompressedTextureSubImage"); - context->GetGraphicsResetStatus = (PFNGLGETGRAPHICSRESETSTATUSPROC) load(userptr, "glGetGraphicsResetStatus"); - context->GetNamedBufferParameteri64v = (PFNGLGETNAMEDBUFFERPARAMETERI64VPROC) load(userptr, "glGetNamedBufferParameteri64v"); - context->GetNamedBufferParameteriv = (PFNGLGETNAMEDBUFFERPARAMETERIVPROC) load(userptr, "glGetNamedBufferParameteriv"); - context->GetNamedBufferPointerv = (PFNGLGETNAMEDBUFFERPOINTERVPROC) load(userptr, "glGetNamedBufferPointerv"); - context->GetNamedBufferSubData = (PFNGLGETNAMEDBUFFERSUBDATAPROC) load(userptr, "glGetNamedBufferSubData"); - context->GetNamedFramebufferAttachmentParameteriv = (PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC) load(userptr, "glGetNamedFramebufferAttachmentParameteriv"); - context->GetNamedFramebufferParameteriv = (PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC) load(userptr, "glGetNamedFramebufferParameteriv"); - context->GetNamedRenderbufferParameteriv = (PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC) load(userptr, "glGetNamedRenderbufferParameteriv"); - context->GetQueryBufferObjecti64v = (PFNGLGETQUERYBUFFEROBJECTI64VPROC) load(userptr, "glGetQueryBufferObjecti64v"); - context->GetQueryBufferObjectiv = (PFNGLGETQUERYBUFFEROBJECTIVPROC) load(userptr, "glGetQueryBufferObjectiv"); - context->GetQueryBufferObjectui64v = (PFNGLGETQUERYBUFFEROBJECTUI64VPROC) load(userptr, "glGetQueryBufferObjectui64v"); - context->GetQueryBufferObjectuiv = (PFNGLGETQUERYBUFFEROBJECTUIVPROC) load(userptr, "glGetQueryBufferObjectuiv"); - context->GetTextureImage = (PFNGLGETTEXTUREIMAGEPROC) load(userptr, "glGetTextureImage"); - context->GetTextureLevelParameterfv = (PFNGLGETTEXTURELEVELPARAMETERFVPROC) load(userptr, "glGetTextureLevelParameterfv"); - context->GetTextureLevelParameteriv = (PFNGLGETTEXTURELEVELPARAMETERIVPROC) load(userptr, "glGetTextureLevelParameteriv"); - context->GetTextureParameterIiv = (PFNGLGETTEXTUREPARAMETERIIVPROC) load(userptr, "glGetTextureParameterIiv"); - context->GetTextureParameterIuiv = (PFNGLGETTEXTUREPARAMETERIUIVPROC) load(userptr, "glGetTextureParameterIuiv"); - context->GetTextureParameterfv = (PFNGLGETTEXTUREPARAMETERFVPROC) load(userptr, "glGetTextureParameterfv"); - context->GetTextureParameteriv = (PFNGLGETTEXTUREPARAMETERIVPROC) load(userptr, "glGetTextureParameteriv"); - context->GetTextureSubImage = (PFNGLGETTEXTURESUBIMAGEPROC) load(userptr, "glGetTextureSubImage"); - context->GetTransformFeedbacki64_v = (PFNGLGETTRANSFORMFEEDBACKI64_VPROC) load(userptr, "glGetTransformFeedbacki64_v"); - context->GetTransformFeedbacki_v = (PFNGLGETTRANSFORMFEEDBACKI_VPROC) load(userptr, "glGetTransformFeedbacki_v"); - context->GetTransformFeedbackiv = (PFNGLGETTRANSFORMFEEDBACKIVPROC) load(userptr, "glGetTransformFeedbackiv"); - context->GetVertexArrayIndexed64iv = (PFNGLGETVERTEXARRAYINDEXED64IVPROC) load(userptr, "glGetVertexArrayIndexed64iv"); - context->GetVertexArrayIndexediv = (PFNGLGETVERTEXARRAYINDEXEDIVPROC) load(userptr, "glGetVertexArrayIndexediv"); - context->GetVertexArrayiv = (PFNGLGETVERTEXARRAYIVPROC) load(userptr, "glGetVertexArrayiv"); - context->GetnColorTable = (PFNGLGETNCOLORTABLEPROC) load(userptr, "glGetnColorTable"); - context->GetnCompressedTexImage = (PFNGLGETNCOMPRESSEDTEXIMAGEPROC) load(userptr, "glGetnCompressedTexImage"); - context->GetnConvolutionFilter = (PFNGLGETNCONVOLUTIONFILTERPROC) load(userptr, "glGetnConvolutionFilter"); - context->GetnHistogram = (PFNGLGETNHISTOGRAMPROC) load(userptr, "glGetnHistogram"); - context->GetnMapdv = (PFNGLGETNMAPDVPROC) load(userptr, "glGetnMapdv"); - context->GetnMapfv = (PFNGLGETNMAPFVPROC) load(userptr, "glGetnMapfv"); - context->GetnMapiv = (PFNGLGETNMAPIVPROC) load(userptr, "glGetnMapiv"); - context->GetnMinmax = (PFNGLGETNMINMAXPROC) load(userptr, "glGetnMinmax"); - context->GetnPixelMapfv = (PFNGLGETNPIXELMAPFVPROC) load(userptr, "glGetnPixelMapfv"); - context->GetnPixelMapuiv = (PFNGLGETNPIXELMAPUIVPROC) load(userptr, "glGetnPixelMapuiv"); - context->GetnPixelMapusv = (PFNGLGETNPIXELMAPUSVPROC) load(userptr, "glGetnPixelMapusv"); - context->GetnPolygonStipple = (PFNGLGETNPOLYGONSTIPPLEPROC) load(userptr, "glGetnPolygonStipple"); - context->GetnSeparableFilter = (PFNGLGETNSEPARABLEFILTERPROC) load(userptr, "glGetnSeparableFilter"); - context->GetnTexImage = (PFNGLGETNTEXIMAGEPROC) load(userptr, "glGetnTexImage"); - context->GetnUniformdv = (PFNGLGETNUNIFORMDVPROC) load(userptr, "glGetnUniformdv"); - context->GetnUniformfv = (PFNGLGETNUNIFORMFVPROC) load(userptr, "glGetnUniformfv"); - context->GetnUniformiv = (PFNGLGETNUNIFORMIVPROC) load(userptr, "glGetnUniformiv"); - context->GetnUniformuiv = (PFNGLGETNUNIFORMUIVPROC) load(userptr, "glGetnUniformuiv"); - context->InvalidateNamedFramebufferData = (PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC) load(userptr, "glInvalidateNamedFramebufferData"); - context->InvalidateNamedFramebufferSubData = (PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC) load(userptr, "glInvalidateNamedFramebufferSubData"); - context->MapNamedBuffer = (PFNGLMAPNAMEDBUFFERPROC) load(userptr, "glMapNamedBuffer"); - context->MapNamedBufferRange = (PFNGLMAPNAMEDBUFFERRANGEPROC) load(userptr, "glMapNamedBufferRange"); - context->MemoryBarrierByRegion = (PFNGLMEMORYBARRIERBYREGIONPROC) load(userptr, "glMemoryBarrierByRegion"); - context->NamedBufferData = (PFNGLNAMEDBUFFERDATAPROC) load(userptr, "glNamedBufferData"); - context->NamedBufferStorage = (PFNGLNAMEDBUFFERSTORAGEPROC) load(userptr, "glNamedBufferStorage"); - context->NamedBufferSubData = (PFNGLNAMEDBUFFERSUBDATAPROC) load(userptr, "glNamedBufferSubData"); - context->NamedFramebufferDrawBuffer = (PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC) load(userptr, "glNamedFramebufferDrawBuffer"); - context->NamedFramebufferDrawBuffers = (PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC) load(userptr, "glNamedFramebufferDrawBuffers"); - context->NamedFramebufferParameteri = (PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC) load(userptr, "glNamedFramebufferParameteri"); - context->NamedFramebufferReadBuffer = (PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC) load(userptr, "glNamedFramebufferReadBuffer"); - context->NamedFramebufferRenderbuffer = (PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC) load(userptr, "glNamedFramebufferRenderbuffer"); - context->NamedFramebufferTexture = (PFNGLNAMEDFRAMEBUFFERTEXTUREPROC) load(userptr, "glNamedFramebufferTexture"); - context->NamedFramebufferTextureLayer = (PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC) load(userptr, "glNamedFramebufferTextureLayer"); - context->NamedRenderbufferStorage = (PFNGLNAMEDRENDERBUFFERSTORAGEPROC) load(userptr, "glNamedRenderbufferStorage"); - context->NamedRenderbufferStorageMultisample = (PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC) load(userptr, "glNamedRenderbufferStorageMultisample"); - context->ReadnPixels = (PFNGLREADNPIXELSPROC) load(userptr, "glReadnPixels"); - context->TextureBarrier = (PFNGLTEXTUREBARRIERPROC) load(userptr, "glTextureBarrier"); - context->TextureBuffer = (PFNGLTEXTUREBUFFERPROC) load(userptr, "glTextureBuffer"); - context->TextureBufferRange = (PFNGLTEXTUREBUFFERRANGEPROC) load(userptr, "glTextureBufferRange"); - context->TextureParameterIiv = (PFNGLTEXTUREPARAMETERIIVPROC) load(userptr, "glTextureParameterIiv"); - context->TextureParameterIuiv = (PFNGLTEXTUREPARAMETERIUIVPROC) load(userptr, "glTextureParameterIuiv"); - context->TextureParameterf = (PFNGLTEXTUREPARAMETERFPROC) load(userptr, "glTextureParameterf"); - context->TextureParameterfv = (PFNGLTEXTUREPARAMETERFVPROC) load(userptr, "glTextureParameterfv"); - context->TextureParameteri = (PFNGLTEXTUREPARAMETERIPROC) load(userptr, "glTextureParameteri"); - context->TextureParameteriv = (PFNGLTEXTUREPARAMETERIVPROC) load(userptr, "glTextureParameteriv"); - context->TextureStorage1D = (PFNGLTEXTURESTORAGE1DPROC) load(userptr, "glTextureStorage1D"); - context->TextureStorage2D = (PFNGLTEXTURESTORAGE2DPROC) load(userptr, "glTextureStorage2D"); - context->TextureStorage2DMultisample = (PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC) load(userptr, "glTextureStorage2DMultisample"); - context->TextureStorage3D = (PFNGLTEXTURESTORAGE3DPROC) load(userptr, "glTextureStorage3D"); - context->TextureStorage3DMultisample = (PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC) load(userptr, "glTextureStorage3DMultisample"); - context->TextureSubImage1D = (PFNGLTEXTURESUBIMAGE1DPROC) load(userptr, "glTextureSubImage1D"); - context->TextureSubImage2D = (PFNGLTEXTURESUBIMAGE2DPROC) load(userptr, "glTextureSubImage2D"); - context->TextureSubImage3D = (PFNGLTEXTURESUBIMAGE3DPROC) load(userptr, "glTextureSubImage3D"); - context->TransformFeedbackBufferBase = (PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC) load(userptr, "glTransformFeedbackBufferBase"); - context->TransformFeedbackBufferRange = (PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC) load(userptr, "glTransformFeedbackBufferRange"); - context->UnmapNamedBuffer = (PFNGLUNMAPNAMEDBUFFERPROC) load(userptr, "glUnmapNamedBuffer"); - context->VertexArrayAttribBinding = (PFNGLVERTEXARRAYATTRIBBINDINGPROC) load(userptr, "glVertexArrayAttribBinding"); - context->VertexArrayAttribFormat = (PFNGLVERTEXARRAYATTRIBFORMATPROC) load(userptr, "glVertexArrayAttribFormat"); - context->VertexArrayAttribIFormat = (PFNGLVERTEXARRAYATTRIBIFORMATPROC) load(userptr, "glVertexArrayAttribIFormat"); - context->VertexArrayAttribLFormat = (PFNGLVERTEXARRAYATTRIBLFORMATPROC) load(userptr, "glVertexArrayAttribLFormat"); - context->VertexArrayBindingDivisor = (PFNGLVERTEXARRAYBINDINGDIVISORPROC) load(userptr, "glVertexArrayBindingDivisor"); - context->VertexArrayElementBuffer = (PFNGLVERTEXARRAYELEMENTBUFFERPROC) load(userptr, "glVertexArrayElementBuffer"); - context->VertexArrayVertexBuffer = (PFNGLVERTEXARRAYVERTEXBUFFERPROC) load(userptr, "glVertexArrayVertexBuffer"); - context->VertexArrayVertexBuffers = (PFNGLVERTEXARRAYVERTEXBUFFERSPROC) load(userptr, "glVertexArrayVertexBuffers"); -} -static void glad_gl_load_GL_VERSION_4_6(GladGLContext *context, GLADuserptrloadfunc load, void* userptr) { - if(!context->VERSION_4_6) return; - context->MultiDrawArraysIndirectCount = (PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC) load(userptr, "glMultiDrawArraysIndirectCount"); - context->MultiDrawElementsIndirectCount = (PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC) load(userptr, "glMultiDrawElementsIndirectCount"); - context->PolygonOffsetClamp = (PFNGLPOLYGONOFFSETCLAMPPROC) load(userptr, "glPolygonOffsetClamp"); - context->SpecializeShader = (PFNGLSPECIALIZESHADERPROC) load(userptr, "glSpecializeShader"); -} - - - -#if defined(GL_ES_VERSION_3_0) || defined(GL_VERSION_3_0) -#define GLAD_GL_IS_SOME_NEW_VERSION 1 -#else -#define GLAD_GL_IS_SOME_NEW_VERSION 0 -#endif - -static int glad_gl_get_extensions(GladGLContext *context, int version, const char **out_exts, unsigned int *out_num_exts_i, char ***out_exts_i) { -#if GLAD_GL_IS_SOME_NEW_VERSION - if(GLAD_VERSION_MAJOR(version) < 3) { -#else - (void) version; - (void) out_num_exts_i; - (void) out_exts_i; -#endif - if (context->GetString == NULL) { - return 0; - } - *out_exts = (const char *)context->GetString(GL_EXTENSIONS); -#if GLAD_GL_IS_SOME_NEW_VERSION - } else { - unsigned int index = 0; - unsigned int num_exts_i = 0; - char **exts_i = NULL; - if (context->GetStringi == NULL || context->GetIntegerv == NULL) { - return 0; - } - context->GetIntegerv(GL_NUM_EXTENSIONS, (int*) &num_exts_i); - if (num_exts_i > 0) { - exts_i = (char **) malloc(num_exts_i * (sizeof *exts_i)); - } - if (exts_i == NULL) { - return 0; - } - for(index = 0; index < num_exts_i; index++) { - const char *gl_str_tmp = (const char*) context->GetStringi(GL_EXTENSIONS, index); - size_t len = strlen(gl_str_tmp) + 1; - - char *local_str = (char*) malloc(len * sizeof(char)); - if(local_str != NULL) { - memcpy(local_str, gl_str_tmp, len * sizeof(char)); - } - - exts_i[index] = local_str; - } - - *out_num_exts_i = num_exts_i; - *out_exts_i = exts_i; - } -#endif - return 1; -} -static void glad_gl_free_extensions(char **exts_i, unsigned int num_exts_i) { - if (exts_i != NULL) { - unsigned int index; - for(index = 0; index < num_exts_i; index++) { - free((void *) (exts_i[index])); - } - free((void *)exts_i); - exts_i = NULL; - } -} -static int glad_gl_has_extension(int version, const char *exts, unsigned int num_exts_i, char **exts_i, const char *ext) { - if(GLAD_VERSION_MAJOR(version) < 3 || !GLAD_GL_IS_SOME_NEW_VERSION) { - const char *extensions; - const char *loc; - const char *terminator; - extensions = exts; - if(extensions == NULL || ext == NULL) { - return 0; - } - while(1) { - loc = strstr(extensions, ext); - if(loc == NULL) { - return 0; - } - terminator = loc + strlen(ext); - if((loc == extensions || *(loc - 1) == ' ') && - (*terminator == ' ' || *terminator == '\0')) { - return 1; - } - extensions = terminator; - } - } else { - unsigned int index; - for(index = 0; index < num_exts_i; index++) { - const char *e = exts_i[index]; - if(strcmp(e, ext) == 0) { - return 1; - } - } - } - return 0; -} - -static GLADapiproc glad_gl_get_proc_from_userptr(void *userptr, const char* name) { - return (GLAD_GNUC_EXTENSION (GLADapiproc (*)(const char *name)) userptr)(name); -} - -static int glad_gl_find_extensions_gl(GladGLContext *context, int version) { - const char *exts = NULL; - unsigned int num_exts_i = 0; - char **exts_i = NULL; - if (!glad_gl_get_extensions(context, version, &exts, &num_exts_i, &exts_i)) return 0; - - (void) glad_gl_has_extension; - - glad_gl_free_extensions(exts_i, num_exts_i); - - return 1; -} - -static int glad_gl_find_core_gl(GladGLContext *context) { - int i, major, minor; - const char* version; - const char* prefixes[] = { - "OpenGL ES-CM ", - "OpenGL ES-CL ", - "OpenGL ES ", - NULL - }; - version = (const char*) context->GetString(GL_VERSION); - if (!version) return 0; - for (i = 0; prefixes[i]; i++) { - const size_t length = strlen(prefixes[i]); - if (strncmp(version, prefixes[i], length) == 0) { - version += length; - break; - } - } - - GLAD_IMPL_UTIL_SSCANF(version, "%d.%d", &major, &minor); - - // attempt to grab whatever we can - int temp = major; - major = 5; - - context->VERSION_1_0 = (major == 1 && minor >= 0) || major > 1; - context->VERSION_1_1 = (major == 1 && minor >= 1) || major > 1; - context->VERSION_1_2 = (major == 1 && minor >= 2) || major > 1; - context->VERSION_1_3 = (major == 1 && minor >= 3) || major > 1; - context->VERSION_1_4 = (major == 1 && minor >= 4) || major > 1; - context->VERSION_1_5 = (major == 1 && minor >= 5) || major > 1; - context->VERSION_2_0 = (major == 2 && minor >= 0) || major > 2; - context->VERSION_2_1 = (major == 2 && minor >= 1) || major > 2; - context->VERSION_3_0 = (major == 3 && minor >= 0) || major > 3; - context->VERSION_3_1 = (major == 3 && minor >= 1) || major > 3; - context->VERSION_3_2 = (major == 3 && minor >= 2) || major > 3; - context->VERSION_3_3 = (major == 3 && minor >= 3) || major > 3; - context->VERSION_4_0 = (major == 4 && minor >= 0) || major > 4; - context->VERSION_4_1 = (major == 4 && minor >= 1) || major > 4; - context->VERSION_4_2 = (major == 4 && minor >= 2) || major > 4; - context->VERSION_4_3 = (major == 4 && minor >= 3) || major > 4; - context->VERSION_4_4 = (major == 4 && minor >= 4) || major > 4; - context->VERSION_4_5 = (major == 4 && minor >= 5) || major > 4; - context->VERSION_4_6 = (major == 4 && minor >= 6) || major > 4; - - major = temp; - return GLAD_MAKE_VERSION(major, minor); -} - -int gladLoadGLContextUserPtr(GladGLContext *context, GLADuserptrloadfunc load, void *userptr) { - int version; - - context->GetString = (PFNGLGETSTRINGPROC) load(userptr, "glGetString"); - if(context->GetString == NULL) return 0; - if(context->GetString(GL_VERSION) == NULL) return 0; - version = glad_gl_find_core_gl(context); - - glad_gl_load_GL_VERSION_1_0(context, load, userptr); - glad_gl_load_GL_VERSION_1_1(context, load, userptr); - glad_gl_load_GL_VERSION_1_2(context, load, userptr); - glad_gl_load_GL_VERSION_1_3(context, load, userptr); - glad_gl_load_GL_VERSION_1_4(context, load, userptr); - glad_gl_load_GL_VERSION_1_5(context, load, userptr); - glad_gl_load_GL_VERSION_2_0(context, load, userptr); - glad_gl_load_GL_VERSION_2_1(context, load, userptr); - glad_gl_load_GL_VERSION_3_0(context, load, userptr); - glad_gl_load_GL_VERSION_3_1(context, load, userptr); - glad_gl_load_GL_VERSION_3_2(context, load, userptr); - glad_gl_load_GL_VERSION_3_3(context, load, userptr); - glad_gl_load_GL_VERSION_4_0(context, load, userptr); - glad_gl_load_GL_VERSION_4_1(context, load, userptr); - glad_gl_load_GL_VERSION_4_2(context, load, userptr); - glad_gl_load_GL_VERSION_4_3(context, load, userptr); - glad_gl_load_GL_VERSION_4_4(context, load, userptr); - glad_gl_load_GL_VERSION_4_5(context, load, userptr); - glad_gl_load_GL_VERSION_4_6(context, load, userptr); - - if (!glad_gl_find_extensions_gl(context, version)) return 0; - - - - return version; -} - - -int gladLoadGLContext(GladGLContext *context, GLADloadfunc load) { - return gladLoadGLContextUserPtr(context, glad_gl_get_proc_from_userptr, GLAD_GNUC_EXTENSION (void*) load); -} - - - - - -#ifdef GLAD_GL - -#ifndef GLAD_LOADER_LIBRARY_C_ -#define GLAD_LOADER_LIBRARY_C_ - -#include -#include - -#if GLAD_PLATFORM_WIN32 -#include -#else -#include -#endif - - -static void* glad_get_dlopen_handle(const char *lib_names[], int length) { - void *handle = NULL; - int i; - - for (i = 0; i < length; ++i) { -#if GLAD_PLATFORM_WIN32 - #if GLAD_PLATFORM_UWP - size_t buffer_size = (strlen(lib_names[i]) + 1) * sizeof(WCHAR); - LPWSTR buffer = (LPWSTR) malloc(buffer_size); - if (buffer != NULL) { - int ret = MultiByteToWideChar(CP_ACP, 0, lib_names[i], -1, buffer, buffer_size); - if (ret != 0) { - handle = (void*) LoadPackagedLibrary(buffer, 0); - } - free((void*) buffer); - } - #else - handle = (void*) LoadLibraryA(lib_names[i]); - #endif -#else - handle = dlopen(lib_names[i], RTLD_LAZY | RTLD_LOCAL); -#endif - if (handle != NULL) { - return handle; - } - } - - return NULL; -} - -static void glad_close_dlopen_handle(void* handle) { - if (handle != NULL) { -#if GLAD_PLATFORM_WIN32 - FreeLibrary((HMODULE) handle); -#else - dlclose(handle); -#endif - } -} - -static GLADapiproc glad_dlsym_handle(void* handle, const char *name) { - if (handle == NULL) { - return NULL; - } - -#if GLAD_PLATFORM_WIN32 - return (GLADapiproc) GetProcAddress((HMODULE) handle, name); -#else - return GLAD_GNUC_EXTENSION (GLADapiproc) dlsym(handle, name); -#endif -} - -#endif /* GLAD_LOADER_LIBRARY_C_ */ - -typedef void* (GLAD_API_PTR *GLADglprocaddrfunc)(const char*); -struct _glad_gl_userptr { - void *handle; - GLADglprocaddrfunc gl_get_proc_address_ptr; -}; - -static GLADapiproc glad_gl_get_proc(void *vuserptr, const char *name) { - struct _glad_gl_userptr userptr = *(struct _glad_gl_userptr*) vuserptr; - GLADapiproc result = NULL; - - if(userptr.gl_get_proc_address_ptr != NULL) { - result = GLAD_GNUC_EXTENSION (GLADapiproc) userptr.gl_get_proc_address_ptr(name); - } - if(result == NULL) { - result = glad_dlsym_handle(userptr.handle, name); - } - - return result; -} - -static void* _gl_handle = NULL; - -static void* glad_gl_dlopen_handle(void) { -#if GLAD_PLATFORM_APPLE - static const char *NAMES[] = { - "../Frameworks/OpenGL.framework/OpenGL", - "/Library/Frameworks/OpenGL.framework/OpenGL", - "/System/Library/Frameworks/OpenGL.framework/OpenGL", - "/System/Library/Frameworks/OpenGL.framework/Versions/Current/OpenGL" - }; -#elif GLAD_PLATFORM_WIN32 - static const char *NAMES[] = {"opengl32.dll"}; -#else - static const char *NAMES[] = { - #if defined(__CYGWIN__) - "libGL-1.so", - #endif - "libGL.so.1", - "libGL.so" - }; -#endif - - if (_gl_handle == NULL) { - _gl_handle = glad_get_dlopen_handle(NAMES, sizeof(NAMES) / sizeof(NAMES[0])); - } - - return _gl_handle; -} - -static struct _glad_gl_userptr glad_gl_build_userptr(void *handle) { - struct _glad_gl_userptr userptr; - - userptr.handle = handle; -#if GLAD_PLATFORM_APPLE || defined(__HAIKU__) - userptr.gl_get_proc_address_ptr = NULL; -#elif GLAD_PLATFORM_WIN32 - userptr.gl_get_proc_address_ptr = - (GLADglprocaddrfunc) glad_dlsym_handle(handle, "wglGetProcAddress"); -#else - userptr.gl_get_proc_address_ptr = - (GLADglprocaddrfunc) glad_dlsym_handle(handle, "glXGetProcAddressARB"); -#endif - - return userptr; -} - -int gladLoaderLoadGLContext(GladGLContext *context) { - int version = 0; - void *handle; - int did_load = 0; - struct _glad_gl_userptr userptr; - - did_load = _gl_handle == NULL; - handle = glad_gl_dlopen_handle(); - if (handle) { - userptr = glad_gl_build_userptr(handle); - - version = gladLoadGLContextUserPtr(context,glad_gl_get_proc, &userptr); - - if (did_load) { - gladLoaderUnloadGL(); - } - } - - return version; -} - - - -void gladLoaderUnloadGL(void) { - if (_gl_handle != NULL) { - glad_close_dlopen_handle(_gl_handle); - _gl_handle = NULL; - } -} - -#endif /* GLAD_GL */ - -#ifdef __cplusplus -} -#endif \ No newline at end of file