diff --git a/.gitignore b/.gitignore index b2286e6fb..ff837a4d6 100644 --- a/.gitignore +++ b/.gitignore @@ -45,6 +45,7 @@ ipch/ *.db *.opendb packages/ +!examples/models/resources/models/obj/ # Ignore compiled binaries *.o diff --git a/CHANGELOG b/CHANGELOG index 828da0ece..0197c1a37 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -30,6 +30,7 @@ Detailed changes: [core] REVIEWED: Raspberry RPI/DRM keyboard blocking render loop (#1879) @luizpestana [core] REVIEWED: Android multi-touch (#1869) by @humbe [core] REVIEWED: Implemented GetGamepadName() for emscripten by @nbarkhina +[core] REVIEWED: HighDPI support (#1987) by @ArnaudValensi [rlgl] ADDED: rlUpdateVertexBufferElements() (#1915) [rlgl] ADDED: rlActiveDrawBuffers() (#1911) [rlgl] ADDED: rlEnableColorBlend()/rlDisableColorBlend() @@ -43,6 +44,7 @@ Detailed changes: [shapes] ADDED: RenderPolyLinesEx() (#1758) by @lambertwang [shapes] ADDED: DrawLineBezierCubic() (#2021) by @SAOMDVN [textures] ADDED: GetImageColor() #2024 +[textures] REMOVED: GenImagePerlinNoise() [textures] RENAMED: GetTextureData() to LoadImageFromTexture() [textures] RENAMED: GetScreenData() to LoadImageFromScreen() [textures] REVIEWED: ExportImage() to use SaveFileData() (#1779) @@ -63,6 +65,7 @@ Detailed changes: [models] ADDED: GetModelBoundingBox() [models] ADDED: DrawBillboardPro() (#1759) by @nobytesgiven [models] ADDED: DrawCubeTextureRec() (#2001) by @tdgroot +[models] ADDED: DrawCylinderEx() and DrawCylinderWiresEx() (#2049) by @Horrowind [models] REMOVED: DrawBillboardEx() [models] RENAMED: MeshBoundingBox() to GetMeshBoundingBox() [models] RENAMED: MeshTangents() to GenMeshTangents() @@ -86,9 +89,11 @@ Detailed changes: [examples] ADDED: core_custom_frame_control [examples] ADDED: core_basic_screen_manager [examples] ADDED: core_split_screen (#1806) by @JeffM2501 -[examples] ADDED: core_2d_camera_smooth_pixelperfect (#1771) by @NotManyIdeasDev -[examples] ADDED: shaders_shapes_outline (#1883) by @GoldenThumbs -[examples] ADDED: models_magicavoxel_loading (#1940) by @procfxgen +[examples] ADDED: core_smooth_pixelperfect (#1771) by @NotManyIdeasDev +[examples] ADDED: shaders_texture_outline (#1883) by @GoldenThumbs +[examples] ADDED: models_loading_vox (#1940) by @procfxgen +[examples] REMOVED: models_material_pbr +[examples] REMOVED: models_gltf_animation [examples] REVIEWED: core_3d_picking [examples] REVIEWED: core_input_mouse [examples] REVIEWED: core_vr_simulator, RenderTexture usage @@ -114,6 +119,7 @@ Detailed changes: [examples] REVIEWED: raylib_opengl_interop [examples] REVIEWED: rlgl_standalone.c [examples] REVIEWED: Resources licenses +[examples] REVIEWED: models resources reorganization [build] ADDED: Zig build file (#2014) by @TommiSinivuo [build] ADDED: Android VS2019 solution (#2013) by @Kronka [build] REMOVED: VS2017 project, outdated diff --git a/README.md b/README.md index e07b2b16c..07077c5b2 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ raylib is highly inspired by Borland BGI graphics lib and by XNA framework and it's specially well suited for prototyping, tooling, graphical applications, embedded systems and education. -*NOTE for ADVENTURERS: raylib is a programming library to enjoy videogames programming; no fancy interface, no visual helpers, no auto-debugging... just coding in the most pure spartan-programmers way.* +*NOTE for ADVENTURERS: raylib is a programming library to enjoy videogames programming; no fancy interface, no visual helpers, no debug button... just coding in the most pure spartan-programmers way.* Ready to learn? Jump to [code examples!](http://www.raylib.com/examples.html) diff --git a/SPONSORS.md b/SPONSORS.md index c308a513c..d128414ec 100644 --- a/SPONSORS.md +++ b/SPONSORS.md @@ -4,18 +4,11 @@ The following people is currently [**sponsoring raylib**](https://github.com/sponsors/raysan5) with a generous donation to allow improving and growing the project! -Note that Sponsors donations vary between sponsors, I just decided not to make any distinction while listing them. - - Eric J. ([@ProfJski](https://github.com/ProfJski)) - - devdad ([@devdad](https://github.com/devdad)) - Zach Geis ([@zacgeis](https://github.com/zacgeis)) - minirop ([@minirop](https://github.com/minirop)) - Daniel Gómez ([@Koocachookies](https://github.com/Koocachookies)) - - Sergio ([@anidealgift](https://github.com/anidealgift)) - Marc Agüera ([@maguera93](https://github.com/maguera93)) - - Pau Fernández ([@pauek](https://github.com/pauek)) - - Snowminx ([@Gamerfiend](https://github.com/Gamerfiend)) - - NimbusFox ([@NimbusFox](https://github.com/NimbusFox)) - Robin Mattheussen ([@romatthe](https://github.com/romatthe)) - Grant Haywood ([@cinterloper](https://github.com/cinterloper)) - Terry Nguyen ([@terrehbyte](https://github.com/terrehbyte)) @@ -25,10 +18,17 @@ Note that Sponsors donations vary between sponsors, I just decided not to make a - cob ([@majorcob](https://github.com/majorcob)) - Samuel Batista ([@gamedevsam](https://github.com/gamedevsam)) - Merlyn Morgan-Graham ([@kavika13](https://github.com/kavika13)) - - Toby4213 ([@Toby4213](https://github.com/Toby4213)) - linus ([@hochbaum](https://github.com/hochbaum)) - Nawarian ([@nawarian](https://github.com/nawarian) - [thephp.website](https://thephp.website/)) - + - kenzie ([@sme-ek](https://github.com/sme-ek)) + - Allan Regush ([@AllanRegush](https://github.com/AllanRegush)) + - Jeffery Myers ([@JeffM2501](https://github.com/ProfJski)) + - Ryan Roden-Corrent ([@rcorre](https://github.com/ProfJski)) + - michaelfiber ([@michaelfiber](https://github.com/ProfJski)) + - Nikhilesh S ([@nikki93](https://github.com/ProfJski)) + - kevinabraun ([@kevinabraun](https://github.com/ProfJski)) + - Matthew Owens ([@MatthewOwens](https://github.com/ProfJski)) + - Tim Eilers ([@eilerstim](https://github.com/ProfJski)) ### Past raylib GitHub Sponsors @@ -49,10 +49,20 @@ The following people has **sponsored raylib** in the past, allowing the project - James Ghawaly ([@jghawaly](https://github.com/jghawaly)) - jack ([@Jack-Ji](https://github.com/Jack-Ji)) - Guido Offermans ([@jghawaly](https://github.com/GuidoOffermans)) + - devdad ([@devdad](https://github.com/devdad)) + - Pau Fernández ([@pauek](https://github.com/pauek)) + - Sergio ([@anidealgift](https://github.com/anidealgift)) + - Snowminx ([@Gamerfiend](https://github.com/Gamerfiend)) + - NimbusFox ([@NimbusFox](https://github.com/NimbusFox)) + - Shylie ([@Shylie](https://github.com/Shylie)) + - Livio Dal Maso ([@Humeur](https://github.com/Humeur)) + - Diego Vaccher ([@denny0754](https://github.com/denny0754)) + - Ricardo Alcantara ([@ricardoalcantara](https://github.com/ricardoalcantara)) + - Toby4213 ([@Toby4213](https://github.com/Toby4213)) ### Notes for Current/Past raylib Sponsor - - **If you are not on the list, feel free to send a PR to add you if desired.** - - **If you want your personal webpage listed along your GitHub account, feel free to send a PR to add it.** - - **If you prefer not to listed in this list, feel free to send a PR to remove it.** + - If you are not on the list, feel free to send a PR to be added (if desired). + - If you want your personal webpage or project listed, feel free to send a PR to be added. + - If you prefer not to be in this list, feel free to send a PR to be remove. diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index d102eb4cb..6ade96861 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -73,7 +73,6 @@ if (${PLATFORM} MATCHES "Android") list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/core/core_world_screen.c) list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_mesh_picking.c) - list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_material_pbr.c) list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_cubicmap.c) list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_skybox.c) list(REMOVE_ITEM example_sources ${CMAKE_CURRENT_SOURCE_DIR}/models/models_mesh_picking.c) diff --git a/examples/Makefile b/examples/Makefile index d98256387..c16dbed53 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -378,6 +378,7 @@ endif # Define all object files required CORE = \ core/core_basic_window \ + core/core_basic_screen_manager \ core/core_input_keys \ core/core_input_mouse \ core/core_input_mouse_wheel \ @@ -401,7 +402,9 @@ CORE = \ core/core_loading_thread \ core/core_quat_conversion \ core/core_window_flags \ - core/core_split_screen + core/core_split_screen \ + core/core_smooth_pixelperfect \ + core/core_custom_frame_control SHAPES = \ shapes/shapes_basic_shapes \ @@ -440,7 +443,7 @@ TEXTURES = \ textures/textures_bunnymark \ textures/textures_blend_modes \ textures/textures_draw_tiled \ - textures/textures_poly + textures/textures_polygon TEXT = \ text/text_raylib_fonts \ @@ -462,17 +465,17 @@ MODELS = \ models/models_cubicmap \ models/models_first_person_maze \ models/models_geometric_shapes \ - models/models_material_pbr \ models/models_mesh_generation \ models/models_mesh_picking \ models/models_loading \ + models/models_loading_vox \ + models/models_loading_gltf \ models/models_orthographic_projection \ models/models_rlgl_solar_system \ models/models_skybox \ models/models_yaw_pitch_roll \ models/models_heightmap \ - models/models_waving_cubes \ - models/models_magicavoxel_loading + models/models_waving_cubes SHADERS = \ shaders/shaders_model_shader \ @@ -483,6 +486,7 @@ SHADERS = \ shaders/shaders_raymarching \ shaders/shaders_texture_drawing \ shaders/shaders_texture_waves \ + shaders/shaders_texture_outline \ shaders/shaders_julia_set \ shaders/shaders_eratosthenes \ shaders/shaders_basic_lighting \ diff --git a/examples/Makefile.Web b/examples/Makefile.Web new file mode 100644 index 000000000..7089c5fd9 --- /dev/null +++ b/examples/Makefile.Web @@ -0,0 +1,1052 @@ +#************************************************************************************************** +# +# raylib makefile for Desktop platforms, Raspberry Pi, Android and HTML5 +# +# Copyright (c) 2013-2021 Ramon Santamaria (@raysan5) +# +# This software is provided "as-is", without any express or implied warranty. In no event +# will the authors be held liable for any damages arising from the use of this software. +# +# Permission is granted to anyone to use this software for any purpose, including commercial +# applications, and to alter it and redistribute it freely, subject to the following restrictions: +# +# 1. The origin of this software must not be misrepresented; you must not claim that you +# wrote the original software. If you use this software in a product, an acknowledgment +# in the product documentation would be appreciated but is not required. +# +# 2. Altered source versions must be plainly marked as such, and must not be misrepresented +# as being the original software. +# +# 3. This notice may not be removed or altered from any source distribution. +# +#************************************************************************************************** + +.PHONY: all clean + +# Define required raylib variables +PROJECT_NAME ?= raylib_examples +RAYLIB_VERSION ?= 4.0.0 +RAYLIB_PATH ?= .. + +# Define default options + +# One of PLATFORM_DESKTOP, PLATFORM_RPI, PLATFORM_ANDROID, PLATFORM_WEB +PLATFORM ?= PLATFORM_DESKTOP + +# Locations of your newly installed library and associated headers. See ../src/Makefile +# On Linux, if you have installed raylib but cannot compile the examples, check that +# the *_INSTALL_PATH values here are the same as those in src/Makefile or point to known locations. +# To enable system-wide compile-time and runtime linking to libraylib.so, run ../src/$ sudo make install RAYLIB_LIBTYPE_SHARED. +# To enable compile-time linking to a special version of libraylib.so, change these variables here. +# To enable runtime linking to a special version of libraylib.so, see EXAMPLE_RUNTIME_PATH below. +# If there is a libraylib in both EXAMPLE_RUNTIME_PATH and RAYLIB_INSTALL_PATH, at runtime, +# the library at EXAMPLE_RUNTIME_PATH, if present, will take precedence over the one at RAYLIB_INSTALL_PATH. +# RAYLIB_INSTALL_PATH should be the desired full path to libraylib. No relative paths. +DESTDIR ?= /usr/local +RAYLIB_INSTALL_PATH ?= $(DESTDIR)/lib +# RAYLIB_H_INSTALL_PATH locates the installed raylib header and associated source files. +RAYLIB_H_INSTALL_PATH ?= $(DESTDIR)/include + +# Library type used for raylib: STATIC (.a) or SHARED (.so/.dll) +RAYLIB_LIBTYPE ?= STATIC + +# Build mode for project: DEBUG or RELEASE +BUILD_MODE ?= RELEASE + +# Use external GLFW library instead of rglfw module +# TODO: Review usage on Linux. Target version of choice. Switch on -lglfw or -lglfw3 +USE_EXTERNAL_GLFW ?= FALSE + +# Use Wayland display server protocol on Linux desktop +# by default it uses X11 windowing system +USE_WAYLAND_DISPLAY ?= FALSE + +# Determine PLATFORM_OS in case PLATFORM_DESKTOP selected +ifeq ($(PLATFORM),PLATFORM_DESKTOP) + # No uname.exe on MinGW!, but OS=Windows_NT on Windows! + # ifeq ($(UNAME),Msys) -> Windows + ifeq ($(OS),Windows_NT) + PLATFORM_OS=WINDOWS + else + UNAMEOS=$(shell uname) + ifeq ($(UNAMEOS),Linux) + PLATFORM_OS=LINUX + endif + ifeq ($(UNAMEOS),FreeBSD) + PLATFORM_OS=BSD + endif + ifeq ($(UNAMEOS),OpenBSD) + PLATFORM_OS=BSD + endif + ifeq ($(UNAMEOS),NetBSD) + PLATFORM_OS=BSD + endif + ifeq ($(UNAMEOS),DragonFly) + PLATFORM_OS=BSD + endif + ifeq ($(UNAMEOS),Darwin) + PLATFORM_OS=OSX + endif + endif +endif +ifeq ($(PLATFORM),PLATFORM_RPI) + UNAMEOS=$(shell uname) + ifeq ($(UNAMEOS),Linux) + PLATFORM_OS=LINUX + endif +endif +ifeq ($(PLATFORM),PLATFORM_DRM) + UNAMEOS=$(shell uname) + ifeq ($(UNAMEOS),Linux) + PLATFORM_OS=LINUX + endif +endif + +# RAYLIB_PATH adjustment for different platforms. +# If using GNU make, we can get the full path to the top of the tree. Windows? BSD? +# Required for ldconfig or other tools that do not perform path expansion. +ifeq ($(PLATFORM),PLATFORM_DESKTOP) + ifeq ($(PLATFORM_OS),LINUX) + RAYLIB_PREFIX ?= .. + RAYLIB_PATH = $(realpath $(RAYLIB_PREFIX)) + endif +endif +# Default path for raylib on Raspberry Pi, if installed in different path, update it! +# This is not currently used by src/Makefile. Not sure of its origin or usage. Refer to wiki. +# TODO: update install: target in src/Makefile for RPI, consider relation to LINUX. +ifeq ($(PLATFORM),PLATFORM_RPI) + RAYLIB_PATH ?= /home/pi/raylib +endif +ifeq ($(PLATFORM),PLATFORM_DRM) + RAYLIB_PATH ?= /home/pi/raylib +endif + +ifeq ($(PLATFORM),PLATFORM_WEB) + # Emscripten required variables + EMSDK_PATH ?= C:/emsdk + EMSCRIPTEN_PATH ?= $(EMSDK_PATH)/upstream/emscripten + CLANG_PATH = $(EMSDK_PATH)/upstream/bin + PYTHON_PATH = $(EMSDK_PATH)/python/3.9.2-1_64bit + NODE_PATH = $(EMSDK_PATH)/node/14.15.5_64bit/bin + export PATH = $(EMSDK_PATH);$(EMSCRIPTEN_PATH);$(CLANG_PATH);$(NODE_PATH);$(PYTHON_PATH);C:\raylib\MinGW\bin:$$(PATH) +endif + +# Define raylib release directory for compiled library. +# RAYLIB_RELEASE_PATH points to provided binaries or your freshly built version +RAYLIB_RELEASE_PATH ?= $(RAYLIB_PATH)/src + +# EXAMPLE_RUNTIME_PATH embeds a custom runtime location of libraylib.so or other desired libraries +# into each example binary compiled with RAYLIB_LIBTYPE=SHARED. It defaults to RAYLIB_RELEASE_PATH +# so that these examples link at runtime with your version of libraylib.so in ../release/libs/linux +# without formal installation from ../src/Makefile. It aids portability and is useful if you have +# multiple versions of raylib, have raylib installed to a non-standard location, or want to +# bundle libraylib.so with your game. Change it to your liking. +# NOTE: If, at runtime, there is a libraylib.so at both EXAMPLE_RUNTIME_PATH and RAYLIB_INSTALL_PATH, +# The library at EXAMPLE_RUNTIME_PATH, if present, will take precedence over RAYLIB_INSTALL_PATH, +# Implemented for LINUX below with CFLAGS += -Wl,-rpath,$(EXAMPLE_RUNTIME_PATH) +# To see the result, run readelf -d core/core_basic_window; looking at the RPATH or RUNPATH attribute. +# To see which libraries a built example is linking to, ldd core/core_basic_window; +# Look for libraylib.so.1 => $(RAYLIB_INSTALL_PATH)/libraylib.so.1 or similar listing. +EXAMPLE_RUNTIME_PATH ?= $(RAYLIB_RELEASE_PATH) + +# Define default C compiler: gcc +# NOTE: define g++ compiler if using C++ +CC = gcc + +ifeq ($(PLATFORM),PLATFORM_DESKTOP) + ifeq ($(PLATFORM_OS),OSX) + # OSX default compiler + CC = clang + endif + ifeq ($(PLATFORM_OS),BSD) + # FreeBSD, OpenBSD, NetBSD, DragonFly default compiler + CC = clang + endif +endif +ifeq ($(PLATFORM),PLATFORM_RPI) + ifeq ($(USE_RPI_CROSS_COMPILER),TRUE) + # Define RPI cross-compiler + #CC = armv6j-hardfloat-linux-gnueabi-gcc + CC = $(RPI_TOOLCHAIN)/bin/arm-linux-gnueabihf-gcc + endif +endif +ifeq ($(PLATFORM),PLATFORM_WEB) + # HTML5 emscripten compiler + # WARNING: To compile to HTML5, code must be redesigned + # to use emscripten.h and emscripten_set_main_loop() + CC = emcc +endif + +# Define default make program +MAKE = make + +ifeq ($(PLATFORM),PLATFORM_DESKTOP) + ifeq ($(PLATFORM_OS),WINDOWS) + MAKE = mingw32-make + endif +endif +ifeq ($(PLATFORM),PLATFORM_ANDROID) + MAKE = mingw32-make +endif +ifeq ($(PLATFORM),PLATFORM_WEB) + MAKE = mingw32-make +endif + +# Define compiler flags: +# -O1 defines optimization level +# -g include debug information on compilation +# -s strip unnecessary data from build +# -Wall turns on most, but not all, compiler warnings +# -std=c99 defines C language mode (standard C from 1999 revision) +# -std=gnu99 defines C language mode (GNU C from 1999 revision) +# -Wno-missing-braces ignore invalid warning (GCC bug 53119) +# -D_DEFAULT_SOURCE use with -std=c99 on Linux and PLATFORM_WEB, required for timespec +CFLAGS += -Wall -std=c99 -D_DEFAULT_SOURCE -Wno-missing-braces -Wunused-result + +ifeq ($(BUILD_MODE),DEBUG) + CFLAGS += -g + ifeq ($(PLATFORM),PLATFORM_WEB) + CFLAGS += -s ASSERTIONS=1 --profiling + endif +else + ifeq ($(PLATFORM),PLATFORM_WEB) + CFLAGS += -Os + else + CFLAGS += -s -O1 + endif +endif + +# Additional flags for compiler (if desired) +#CFLAGS += -Wextra -Wmissing-prototypes -Wstrict-prototypes +ifeq ($(PLATFORM),PLATFORM_DESKTOP) + ifeq ($(PLATFORM_OS),LINUX) + ifeq ($(RAYLIB_LIBTYPE),STATIC) + CFLAGS += -D_DEFAULT_SOURCE + endif + ifeq ($(RAYLIB_LIBTYPE),SHARED) + # Explicitly enable runtime link to libraylib.so + CFLAGS += -Wl,-rpath,$(EXAMPLE_RUNTIME_PATH) + endif + endif +endif +ifeq ($(PLATFORM),PLATFORM_RPI) + CFLAGS += -std=gnu99 +endif +ifeq ($(PLATFORM),PLATFORM_DRM) + CFLAGS += -std=gnu99 -DEGL_NO_X11 +endif + +# Define include paths for required headers +# NOTE: Some external/extras libraries could be required (stb, physac, easings...) +INCLUDE_PATHS = -I. -I$(RAYLIB_PATH)/src -I$(RAYLIB_PATH)/src/external -I$(RAYLIB_PATH)/src/extras + +# Define additional directories containing required header files +ifeq ($(PLATFORM),PLATFORM_RPI) + # RPI required libraries + INCLUDE_PATHS += -I/opt/vc/include + INCLUDE_PATHS += -I/opt/vc/include/interface/vmcs_host/linux + INCLUDE_PATHS += -I/opt/vc/include/interface/vcos/pthreads +endif +ifeq ($(PLATFORM),PLATFORM_DRM) + # DRM required libraries + INCLUDE_PATHS += -I/usr/include/libdrm +endif +ifeq ($(PLATFORM),PLATFORM_DESKTOP) + ifeq ($(PLATFORM_OS),BSD) + # Consider -L$(RAYLIB_H_INSTALL_PATH) + INCLUDE_PATHS += -I/usr/local/include + endif + ifeq ($(PLATFORM_OS),LINUX) + INCLUDE_PATHS += -I$(RAYLIB_H_INSTALL_PATH) + endif +endif + +# Define library paths containing required libs. +LDFLAGS = -L. -L$(RAYLIB_RELEASE_PATH) -L$(RAYLIB_PATH)/src + +ifeq ($(PLATFORM),PLATFORM_DESKTOP) + ifeq ($(PLATFORM_OS),WINDOWS) + # resource file contains windows executable icon and properties + LDFLAGS += $(RAYLIB_PATH)/src/raylib.rc.data + # -Wl,--subsystem,windows hides the console window + ifeq ($(BUILD_MODE), RELEASE) + LDFLAGS += -Wl,--subsystem,windows + endif + endif + ifeq ($(PLATFORM_OS),BSD) + # Consider -L$(RAYLIB_INSTALL_PATH) + LDFLAGS += -L. -Lsrc -L/usr/local/lib + endif + ifeq ($(PLATFORM_OS),LINUX) + # Reset everything. + # Precedence: immediately local, installed version, raysan5 provided libs + LDFLAGS = -L. -L$(RAYLIB_INSTALL_PATH) -L$(RAYLIB_RELEASE_PATH) -L$(RAYLIB_PATH) + endif +endif +ifeq ($(PLATFORM),PLATFORM_WEB) + # -Os # size optimization + # -O2 # optimization level 2, if used, also set --memory-init-file 0 + # -s USE_GLFW=3 # Use glfw3 library (context/input management) + # -s ALLOW_MEMORY_GROWTH=1 # to allow memory resizing -> WARNING: Audio buffers could FAIL! + # -s TOTAL_MEMORY=16777216 # to specify heap memory size (default = 16MB) (67108864 = 64MB) + # -s USE_PTHREADS=1 # multithreading support + # -s WASM=0 # disable Web Assembly, emitted by default + # -s ASYNCIFY # lets synchronous C/C++ code interact with asynchronous JS + # -s FORCE_FILESYSTEM=1 # force filesystem to load/save files data + # -s ASSERTIONS=1 # enable runtime checks for common memory allocation errors (-O1 and above turn it off) + # --profiling # include information for code profiling + # --memory-init-file 0 # to avoid an external memory initialization code file (.mem) + # --preload-file resources # specify a resources folder for data compilation + # --source-map-base # allow debugging in browser with source map + LDFLAGS += -s USE_GLFW=3 -s ASYNCIFY + + # NOTE: Simple raylib examples are compiled to be interpreter with asyncify, that way, + # we can compile same code for ALL platforms with no change required, but, working on bigger + # projects, code needs to be refactored to avoid a blocking while() loop, moving Update and Draw + # logic to a self contained function: UpdateDrawFrame(), check core_basic_window_web.c for reference. + + # NOTE: Additional compilate flags for TOTAL_MEMORY, FORCE_FILESYSTEM and resources loading + # are specified per-example for optimization + + # Define a custom shell .html and output extension + LDFLAGS += --shell-file $(RAYLIB_PATH)/src/shell.html + EXT = .html +endif +ifeq ($(PLATFORM),PLATFORM_RPI) + LDFLAGS += -L/opt/vc/lib +endif + +# Define any libraries required on linking +# if you want to link libraries (libname.so or libname.a), use the -lname +ifeq ($(PLATFORM),PLATFORM_DESKTOP) + ifeq ($(PLATFORM_OS),WINDOWS) + # Libraries for Windows desktop compilation + # NOTE: WinMM library required to set high-res timer resolution + LDLIBS = -lraylib -lopengl32 -lgdi32 -lwinmm + # Required for physac examples + LDLIBS += -static -lpthread + endif + ifeq ($(PLATFORM_OS),LINUX) + # Libraries for Debian GNU/Linux desktop compiling + # NOTE: Required packages: libegl1-mesa-dev + LDLIBS = -lraylib -lGL -lm -lpthread -ldl -lrt + + # On X11 requires also below libraries + LDLIBS += -lX11 + # NOTE: It seems additional libraries are not required any more, latest GLFW just dlopen them + #LDLIBS += -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor + + # On Wayland windowing system, additional libraries requires + ifeq ($(USE_WAYLAND_DISPLAY),TRUE) + LDLIBS += -lwayland-client -lwayland-cursor -lwayland-egl -lxkbcommon + endif + # Explicit link to libc + ifeq ($(RAYLIB_LIBTYPE),SHARED) + LDLIBS += -lc + endif + endif + ifeq ($(PLATFORM_OS),OSX) + # Libraries for OSX 10.9 desktop compiling + # NOTE: Required packages: libopenal-dev libegl1-mesa-dev + LDLIBS = -lraylib -framework OpenGL -framework Cocoa -framework IOKit -framework CoreAudio -framework CoreVideo + endif + ifeq ($(PLATFORM_OS),BSD) + # Libraries for FreeBSD, OpenBSD, NetBSD, DragonFly desktop compiling + # NOTE: Required packages: mesa-libs + LDLIBS = -lraylib -lGL -lpthread -lm + + # On XWindow requires also below libraries + LDLIBS += -lX11 -lXrandr -lXinerama -lXi -lXxf86vm -lXcursor + endif + ifeq ($(USE_EXTERNAL_GLFW),TRUE) + # NOTE: It could require additional packages installed: libglfw3-dev + LDLIBS += -lglfw + endif +endif +ifeq ($(PLATFORM),PLATFORM_RPI) + # Libraries for Raspberry Pi compiling + # NOTE: Required packages: libasound2-dev (ALSA) + LDLIBS = -lraylib -lbrcmGLESv2 -lbrcmEGL -lpthread -lrt -lm -lbcm_host -ldl +endif +ifeq ($(PLATFORM),PLATFORM_DRM) + # Libraries for DRM compiling + # NOTE: Required packages: libasound2-dev (ALSA) + LDLIBS = -lraylib -lGLESv2 -lEGL -lpthread -lrt -lm -lgbm -ldrm -ldl +endif +ifeq ($(PLATFORM),PLATFORM_WEB) + # Libraries for web (HTML5) compiling + LDLIBS = $(RAYLIB_RELEASE_PATH)/libraylib.a +endif + +# Define all object files required +CORE = \ + core/core_basic_window \ + core/core_basic_screen_manager \ + core/core_input_keys \ + core/core_input_mouse \ + core/core_input_mouse_wheel \ + core/core_input_gamepad \ + core/core_input_multitouch \ + core/core_input_gestures \ + core/core_2d_camera \ + core/core_2d_camera_platformer \ + core/core_3d_camera_mode \ + core/core_3d_camera_free \ + core/core_3d_camera_first_person \ + core/core_3d_picking \ + core/core_world_screen \ + core/core_custom_logging \ + core/core_window_letterbox \ + core/core_drop_files \ + core/core_random_values \ + core/core_scissor_test \ + core/core_storage_values \ + core/core_vr_simulator \ + core/core_loading_thread \ + core/core_quat_conversion \ + core/core_window_flags \ + core/core_split_screen \ + core/core_smooth_pixelperfect \ + core/core_custom_frame_control + +SHAPES = \ + shapes/shapes_basic_shapes \ + shapes/shapes_bouncing_ball \ + shapes/shapes_colors_palette \ + shapes/shapes_logo_raylib \ + shapes/shapes_logo_raylib_anim \ + shapes/shapes_rectangle_scaling \ + shapes/shapes_lines_bezier \ + shapes/shapes_collision_area \ + shapes/shapes_following_eyes \ + shapes/shapes_easings_ball_anim \ + shapes/shapes_easings_box_anim \ + shapes/shapes_easings_rectangle_array \ + shapes/shapes_draw_ring \ + shapes/shapes_draw_circle_sector \ + shapes/shapes_draw_rectangle_rounded + +TEXTURES = \ + textures/textures_logo_raylib \ + textures/textures_mouse_painting \ + textures/textures_rectangle \ + textures/textures_srcrec_dstrec \ + textures/textures_image_drawing \ + textures/textures_image_generation \ + textures/textures_image_loading \ + textures/textures_image_processing \ + textures/textures_image_text \ + textures/textures_to_image \ + textures/textures_raw_data \ + textures/textures_particles_blending \ + textures/textures_npatch_drawing \ + textures/textures_background_scrolling \ + textures/textures_sprite_button \ + textures/textures_sprite_explosion \ + textures/textures_bunnymark \ + textures/textures_blend_modes \ + textures/textures_draw_tiled \ + textures/textures_polygon + +TEXT = \ + text/text_raylib_fonts \ + text/text_font_spritefont \ + text/text_font_loading \ + text/text_font_filters \ + text/text_font_sdf \ + text/text_format_text \ + text/text_input_box \ + text/text_writing_anim \ + text/text_rectangle_bounds \ + text/text_unicode \ + text/text_draw_3d + +MODELS = \ + models/models_animation \ + models/models_billboard \ + models/models_box_collisions \ + models/models_cubicmap \ + models/models_first_person_maze \ + models/models_geometric_shapes \ + models/models_mesh_generation \ + models/models_mesh_picking \ + models/models_loading \ + models/models_loading_vox \ + models/models_loading_gltf \ + models/models_orthographic_projection \ + models/models_rlgl_solar_system \ + models/models_skybox \ + models/models_yaw_pitch_roll \ + models/models_heightmap \ + models/models_waving_cubes + +SHADERS = \ + shaders/shaders_model_shader \ + shaders/shaders_shapes_textures \ + shaders/shaders_custom_uniform \ + shaders/shaders_postprocessing \ + shaders/shaders_palette_switch \ + shaders/shaders_raymarching \ + shaders/shaders_texture_drawing \ + shaders/shaders_texture_waves \ + shaders/shaders_texture_outline \ + shaders/shaders_julia_set \ + shaders/shaders_eratosthenes \ + shaders/shaders_basic_lighting \ + shaders/shaders_fog \ + shaders/shaders_simple_mask \ + shaders/shaders_spotlight \ + shaders/shaders_hot_reloading \ + shaders/shaders_mesh_instancing \ + shaders/shaders_multi_sample2d + +AUDIO = \ + audio/audio_module_playing \ + audio/audio_music_stream \ + audio/audio_raw_stream \ + audio/audio_sound_loading \ + audio/audio_multichannel_sound + +PHYSICS = \ + physics/physics_demo \ + physics/physics_friction \ + physics/physics_movement \ + physics/physics_restitution \ + physics/physics_shatter + +CURRENT_MAKEFILE = $(lastword $(MAKEFILE_LIST)) + +# Default target entry +all: $(CORE) $(SHAPES) $(TEXT) $(TEXTURES) $(MODELS) $(SHADERS) $(AUDIO) $(PHYSICS) + +core: $(CORE) +shapes: $(SHAPES) +textures: $(TEXTURES) +text: $(TEXT) +models: $(MODELS) +shaders: $(SHADERS) +audio: $(AUDIO) +physics: $(PHYSICS) + +# Compile CORE examples +core/core_basic_window: core/core_basic_window.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_basic_screen_manager: core/core_basic_screen_manager.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_input_keys: core/core_input_keys.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_input_mouse: core/core_input_mouse.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_input_mouse_wheel: core/core_input_mouse_wheel.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_input_gamepad: core/core_input_gamepad.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file core/resources/ps3.png@resources/ps3.png \ + --preload-file core/resources/xbox.png@resources/xbox.png + +core/core_input_multitouch: core/core_input_multitouch.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_input_gestures: core/core_input_gestures.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_2d_camera: core/core_2d_camera.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_2d_camera_platformer: core/core_2d_camera_platformer.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_3d_camera_mode: core/core_3d_camera_mode.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_3d_camera_free: core/core_3d_camera_free.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_3d_camera_first_person: core/core_3d_camera_first_person.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_3d_picking: core/core_3d_picking.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_world_screen: core/core_world_screen.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_custom_logging: core/core_custom_logging.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_window_letterbox: core/core_window_letterbox.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_drop_files: core/core_drop_files.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 -s FORCE_FILESYSTEM=1 + +core/core_random_values: core/core_random_values.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_scissor_test: core/core_scissor_test.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_storage_values: core/core_storage_values.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s FORCE_FILESYSTEM=1 + +core/core_vr_simulator: core/core_vr_simulator.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file core/resources/distortion100.fs@resources/distortion100.fs + +# NOTE: To use multi-threading raylib must be compiled with multi-theading support (-s USE_PTHREADS=1) +core/core_loading_thread: core/core_loading_thread.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s USE_PTHREADS=1 + +core/core_quat_conversion: core/core_quat_conversion.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_window_flags: core/core_window_flags.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_split_screen: core/core_split_screen.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_smooth_pixelperfect: core/core_smooth_pixelperfect.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +core/core_custom_frame_control: core/core_custom_frame_control.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +# Compile SHAPES examples +shapes/shapes_basic_shapes: shapes/shapes_basic_shapes.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_bouncing_ball: shapes/shapes_bouncing_ball.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_colors_palette: shapes/shapes_colors_palette.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_logo_raylib: shapes/shapes_logo_raylib.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_logo_raylib_anim: shapes/shapes_logo_raylib_anim.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_rectangle_scaling: shapes/shapes_rectangle_scaling.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_lines_bezier: shapes/shapes_lines_bezier.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_collision_area: shapes/shapes_collision_area.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_following_eyes: shapes/shapes_following_eyes.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_easings_ball_anim: shapes/shapes_easings_ball_anim.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_easings_box_anim: shapes/shapes_easings_box_anim.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_easings_rectangle_array: shapes/shapes_easings_rectangle_array.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_draw_ring: shapes/shapes_draw_ring.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_draw_circle_sector: shapes/shapes_draw_circle_sector.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +shapes/shapes_draw_rectangle_rounded: shapes/shapes_draw_rectangle_rounded.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +# Compile TEXTURES examples +textures/textures_logo_raylib: textures/textures_logo_raylib.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file textures/resources/raylib_logo.png@resources/raylib_logo.png + +textures/textures_mouse_painting: textures/textures_mouse_painting.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +textures/textures_rectangle: textures/textures_rectangle.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file textures/resources/scarfy.png@resources/scarfy.png + +textures/textures_srcrec_dstrec: textures/textures_srcrec_dstrec.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file textures/resources/scarfy.png@resources/scarfy.png + +textures/textures_image_loading: textures/textures_image_loading.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file textures/resources/raylib_logo.png@resources/raylib_logo.png + +textures/textures_image_drawing: textures/textures_image_drawing.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file textures/resources/custom_jupiter_crash.png@resources/custom_jupiter_crash.png \ + --preload-file textures/resources/parrots.png@resources/parrots.png \ + --preload-file textures/resources/cat.png@resources/cat.png + +textures/textures_image_generation: textures/textures_image_generation.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 + +textures/textures_image_processing: textures/textures_image_processing.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file textures/resources/parrots.png@resources/parrots.png + +textures/textures_image_text: textures/textures_image_text.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \ + --preload-file textures/resources/parrots.png@resources/parrots.png \ + --preload-file textures/resources/KAISG.ttf@resources/KAISG.ttf + +textures/textures_to_image: textures/textures_to_image.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file textures/resources/raylib_logo.png@resources/raylib_logo.png + +textures/textures_raw_data: textures/textures_raw_data.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file textures/resources/fudesumi.raw@resources/fudesumi.raw + +textures/textures_particles_blending: textures/textures_particles_blending.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file textures/resources/spark_flame.png@resources/spark_flame.png + +textures/textures_npatch_drawing: textures/textures_npatch_drawing.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file textures/resources/ninepatch_button.png@resources/ninepatch_button.png + +textures/textures_background_scrolling: textures/textures_background_scrolling.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file textures/resources/cyberpunk_street_background.png@resources/cyberpunk_street_background.png \ + --preload-file textures/resources/cyberpunk_street_midground.png@resources/cyberpunk_street_midground.png \ + --preload-file textures/resources/cyberpunk_street_foreground.png@resources/cyberpunk_street_foreground.png + +textures/textures_sprite_button: textures/textures_sprite_button.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file textures/resources/button.png@resources/button.png \ + --preload-file textures/resources/buttonfx.wav@resources/buttonfx.wav + +textures/textures_sprite_explosion: textures/textures_sprite_explosion.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file textures/resources/explosion.png@resources/explosion.png \ + --preload-file textures/resources/boom.wav@resources/boom.wav + +textures/textures_bunnymark: textures/textures_bunnymark.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file textures/resources/wabbit_alpha.png@resources/wabbit_alpha.png + +textures/textures_blend_modes: textures/textures_blend_modes.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s ASYNCIFY \ + --preload-file textures/resources/cyberpunk_street_background.png@resources/cyberpunk_street_background.png \ + --preload-file textures/resources/cyberpunk_street_foreground.png@resources/cyberpunk_street_foreground.png + +textures/textures_draw_tiled: textures/textures_draw_tiled.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s ASYNCIFY \ + --preload-file textures/resources/patterns.png@resources/patterns.png + +textures/textures_polygon: textures/textures_polygon.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file textures/resources/cat.png@resources/cat.png + +# Compile TEXT examples +text/text_raylib_fonts: text/text_raylib_fonts.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file text/resources/fonts/alagard.png@resources/fonts/alagard.png \ + --preload-file text/resources/fonts/pixelplay.png@resources/fonts/pixelplay.png \ + --preload-file text/resources/fonts/mecha.png@resources/fonts/mecha.png \ + --preload-file text/resources/fonts/setback.png@resources/fonts/setback.png \ + --preload-file text/resources/fonts/romulus.png@resources/fonts/romulus.png \ + --preload-file text/resources/fonts/pixantiqua.png@resources/fonts/pixantiqua.png \ + --preload-file text/resources/fonts/alpha_beta.png@resources/fonts/alpha_beta.png \ + --preload-file text/resources/fonts/jupiter_crash.png@resources/fonts/jupiter_crash.png + +text/text_font_spritefont: text/text_font_spritefont.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file text/resources/custom_mecha.png@resources/custom_mecha.png \ + --preload-file text/resources/custom_alagard.png@resources/custom_alagard.png \ + --preload-file text/resources/custom_jupiter_crash.png@resources/custom_jupiter_crash.png + +text/text_font_loading: text/text_font_loading.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \ + --preload-file text/resources/pixantiqua.fnt@resources/pixantiqua.fnt \ + --preload-file text/resources/pixantiqua.png@resources/pixantiqua.png \ + --preload-file text/resources/pixantiqua.ttf@resources/pixantiqua.ttf + +text/text_font_filters: text/text_font_filters.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \ + --preload-file text/resources/KAISG.ttf@resources/KAISG.ttf + +text/text_font_sdf: text/text_font_sdf.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \ + --preload-file text/resources/anonymous_pro_bold.ttf@resources/anonymous_pro_bold.ttf \ + --preload-file text/resources/shaders/glsl100/sdf.fs@resources/shaders/glsl100/sdf.fs + +text/text_format_text: text/text_format_text.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +text/text_input_box: text/text_input_box.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +text/text_writing_anim: text/text_writing_anim.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +text/text_rectangle_bounds: text/text_rectangle_bounds.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +text/text_unicode: text/text_unicode.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \ + --preload-file text/resources/dejavu.fnt@resources/dejavu.fnt \ + --preload-file text/resources/dejavu.png@resources/dejavu.png \ + --preload-file text/resources/noto_cjk.fnt@resources/noto_cjk.fnt \ + --preload-file text/resources/noto_cjk.png@resources/noto_cjk.png \ + --preload-file text/resources/symbola.fnt@resources/symbola.fnt \ + --preload-file text/resources/symbola.png@resources/symbola.png + +text/text_draw_3d: text/text_draw_3d.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file text/resources/shaders/glsl100/alpha_discard.fs@resources/shaders/glsl100/alpha_discard.fs + +# Compile MODELS examples +models/models_animation: models/models_animation.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \ + --preload-file models/resources/models/iqm/guy.iqm@resources/models/iqm/guy.iqm \ + --preload-file models/resources/models/iqm/guytex.png@resources/models/iqm/guytex.png \ + --preload-file models/resources/models/iqm/guyanim.iqm@resources/models/iqm/guyanim.iqm + +models/models_billboard: models/models_billboard.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file models/resources/billboard.png@resources/billboard.png + +models/models_box_collisions: models/models_box_collisions.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +models/models_cubicmap: models/models_cubicmap.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file models/resources/cubicmap.png@resources/cubicmap.png \ + --preload-file models/resources/cubicmap_atlas.png@resources/cubicmap_atlas.png + +models/models_first_person_maze: models/models_first_person_maze.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file models/resources/cubicmap.png@resources/cubicmap.png \ + --preload-file models/resources/cubicmap_atlas.png@resources/cubicmap_atlas.png + +models/models_geometric_shapes: models/models_geometric_shapes.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +models/models_mesh_generation: models/models_mesh_generation.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +models/models_mesh_picking: models/models_mesh_picking.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file models/resources/models/obj/turret.obj@resources/models/obj/turret.obj \ + --preload-file models/resources/models/obj/turret_diffuse.png@resources/models/obj/turret_diffuse.png + +models/models_loading: models/models_loading.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \ + --preload-file models/resources/models/obj/castle.obj@resources/models/obj/castle.obj \ + --preload-file models/resources/models/obj/castle_diffuse.png@resources/models/obj/castle_diffuse.png + +models/models_loading_vox: models/models_loading_vox.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \ + --preload-file models/resources/models/vox/chr_knight.vox@resources/models/vox/chr_knight.vox \ + --preload-file models/resources/models/vox/chr_sword.vox@resources/models/vox/chr_sword.vox \ + --preload-file models/resources/models/vox/monu9.vox@resources/models/vox/monu9.vox + +models/models_loading_gltf: models/models_loading_gltf.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \ + --preload-file models/resources/models/gltf/raylib_32x32.glb@resources/models/gltf/raylib_32x32.glb \ + --preload-file models/resources/models/gltf/girl.glb@resources/models/gltf/girl.glb \ + --preload-file models/resources/models/gltf/rigged_figure.glb@resources/models/gltf/rigged_figure.glb \ + --preload-file models/resources/models/gltf/GearboxAssy.glb@resources/models/gltf/GearboxAssy.glb \ + --preload-file models/resources/models/gltf/BoxAnimated.glb@resources/models/gltf/BoxAnimated.glb \ + --preload-file models/resources/models/gltf/AnimatedTriangle.gltf@resources/models/gltf/AnimatedTriangle.gltf \ + --preload-file models/resources/models/gltf/AnimatedMorphCube.glb@resources/models/gltf/AnimatedMorphCube.glb \ + --preload-file models/resources/models/gltf/vertex_colored_object.glb@resources/models/gltf/vertex_colored_object.glb + +models/models_orthographic_projection: models/models_orthographic_projection.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +models/models_rlgl_solar_system: models/models_rlgl_solar_system.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +models/models_skybox: models/models_skybox.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 -s FORCE_FILESYSTEM=1 \ + --preload-file models/resources/dresden_square_2k.hdr@resources/dresden_square_2k.hdr \ + --preload-file models/resources/shaders/glsl100/skybox.vs@resources/shaders/glsl100/skybox.vs \ + --preload-file models/resources/shaders/glsl100/skybox.fs@resources/shaders/glsl100/skybox.fs \ + --preload-file models/resources/shaders/glsl100/cubemap.vs@resources/shaders/glsl100/cubemap.vs \ + --preload-file models/resources/shaders/glsl100/cubemap.fs@resources/shaders/glsl100/cubemap.fs + +models/models_yaw_pitch_roll: models/models_yaw_pitch_roll.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \ + --preload-file models/resources/models/gltf/plane/plane.gltf@resources/models/gltf/plane/plane.gltf \ + --preload-file models/resources/models/gltf/plane/plane_diffuse.png@resources/models/gltf/plane/plane_diffuse.png + +models/models_heightmap: models/models_heightmap.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file models/resources/heightmap.png@resources/heightmap.png + +models/models_waving_cubes: models/models_waving_cubes.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) + +# Compile SHADER examples +shaders/shaders_model_shader: shaders/shaders_model_shader.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \ + --preload-file shaders/resources/models/watermill.obj@resources/models/watermill.obj \ + --preload-file shaders/resources/models/watermill_diffuse.png@resources/models/watermill_diffuse.png \ + --preload-file shaders/resources/shaders/glsl100/grayscale.fs@resources/shaders/glsl100/grayscale.fs + +shaders/shaders_shapes_textures: shaders/shaders_shapes_textures.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/fudesumi.png@resources/fudesumi.png \ + --preload-file shaders/resources/shaders/glsl100/base.vs@resources/shaders/glsl100/base.vs \ + --preload-file shaders/resources/shaders/glsl100/grayscale.fs@resources/shaders/glsl100/grayscale.fs + +shaders/shaders_custom_uniform: shaders/shaders_custom_uniform.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \ + --preload-file shaders/resources/models/barracks.obj@resources/models/barracks.obj \ + --preload-file shaders/resources/models/barracks_diffuse.png@resources/models/barracks_diffuse.png \ + --preload-file shaders/resources/shaders/glsl100/swirl.fs@resources/shaders/glsl100/swirl.fs + +shaders/shaders_postprocessing: shaders/shaders_postprocessing.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \ + --preload-file shaders/resources/models/church.obj@resources/models/church.obj \ + --preload-file shaders/resources/models/church_diffuse.png@resources/models/church_diffuse.png \ + --preload-file shaders/resources/shaders/glsl100@resources/shaders/glsl100 + +shaders/shaders_palette_switch: shaders/shaders_palette_switch.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/shaders/glsl100/palette_switch.fs@resources/shaders/glsl100/palette_switch.fs + +shaders/shaders_raymarching: shaders/shaders_raymarching.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/shaders/glsl100/raymarching.fs@resources/shaders/glsl100/raymarching.fs + +shaders/shaders_texture_drawing: shaders/shaders_texture_drawing.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/shaders/glsl100/cubes_panning.fs@resources/shaders/glsl100/cubes_panning.fs + +shaders/shaders_texture_waves: shaders/shaders_texture_waves.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/space.png@resources/space.png \ + --preload-file shaders/resources/shaders/glsl100/wave.fs@resources/shaders/glsl100/wave.fs + +shaders/shaders_julia_set: shaders/shaders_julia_set.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/shaders/glsl100/julia_set.fs@resources/shaders/glsl100/julia_set.fs + +shaders/shaders_eratosthenes: shaders/shaders_eratosthenes.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/shaders/glsl100/eratosthenes.fs@resources/shaders/glsl100/eratosthenes.fs + +shaders/shaders_basic_lighting: shaders/shaders_basic_lighting.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/texel_checker.png@resources/texel_checker.png \ + --preload-file shaders/resources/shaders/glsl100/lighting.fs@resources/shaders/glsl100/lighting.fs \ + --preload-file shaders/resources/shaders/glsl100/base_lighting.vs@resources/shaders/glsl100/base_lighting.vs + +shaders/shaders_fog: shaders/shaders_fog.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/texel_checker.png@resources/texel_checker.png \ + --preload-file shaders/resources/shaders/glsl100/fog.fs@resources/shaders/glsl100/fog.fs \ + --preload-file shaders/resources/shaders/glsl100/base_lighting.vs@resources/shaders/glsl100/base_lighting.vs + +shaders/shaders_simple_mask: shaders/shaders_simple_mask.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/plasma.png@resources/plasma.png \ + --preload-file shaders/resources/mask.png@resources/mask.png \ + --preload-file shaders/resources/shaders/glsl100/mask.fs@resources/shaders/glsl100/mask.fs + +shaders/shaders_spotlight: shaders/shaders_spotlight.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/raysan.png@resources/raysan.png \ + --preload-file shaders/resources/shaders/glsl100/spotlight.fs@resources/shaders/glsl100/spotlight.fs + +shaders/shaders_hot_reloading: shaders/shaders_hot_reloading.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s FORCE_FILESYSTEM=1 \ + --preload-file shaders/resources/shaders/glsl100/reload.fs@resources/shaders/glsl100/reload.fs + +shaders/shaders_mesh_instancing: shaders/shaders_mesh_instancing.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/shaders/glsl100/lighting.fs@resources/shaders/glsl100/lighting.fs \ + --preload-file shaders/resources/shaders/glsl100/base_lighting_instanced.vs@resources/shaders/glsl100/base_lighting_instanced.vs + +shaders/shaders_multi_sample2d: shaders/shaders_multi_sample2d.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/shaders/glsl100/color_mix.fs@resources/shaders/glsl100/color_mix.fs + +shaders/shaders_texture_outline: shaders/shaders_texture_outline.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file shaders/resources/shaders/glsl100/outline.fs@resources/shaders/glsl100/outline.fs \ + --preload-file shaders/resources/fudesumi.png@resources/fudesumi.png + +# Compile AUDIO examples +audio/audio_module_playing: audio/audio_module_playing.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file audio/resources/mini1111.xm@resources/mini1111.xm + +audio/audio_music_stream: audio/audio_music_stream.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 \ + --preload-file audio/resources/country.mp3@resources/country.mp3 + +audio/audio_raw_stream: audio/audio_raw_stream.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) -s TOTAL_MEMORY=67108864 + +audio/audio_sound_loading: audio/audio_sound_loading.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file audio/resources/sound.wav@resources/sound.wav \ + --preload-file audio/resources/target.ogg@resources/target.ogg + +audio/audio_multichannel_sound: audio/audio_multichannel_sound.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -D$(PLATFORM) \ + --preload-file audio/resources/sound.wav@resources/sound.wav \ + --preload-file audio/resources/target.ogg@resources/target.ogg + +# Compile PHYSICS examples +# NOTE: To use multi-threading raylib must be compiled with multi-theading support (-s USE_PTHREADS=1) +physics/physics_demo: physics/physics_demo.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -static -lpthread -D$(PLATFORM) -s USE_PTHREADS=1 + +physics/physics_friction: physics/physics_friction.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -static -lpthread -D$(PLATFORM) -s USE_PTHREADS=1 + +physics/physics_movement: physics/physics_movement.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -static -lpthread -D$(PLATFORM) -s USE_PTHREADS=1 + +physics/physics_restitution: physics/physics_restitution.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -static -lpthread -D$(PLATFORM) -s USE_PTHREADS=1 + +physics/physics_shatter: physics/physics_shatter.c + $(CC) -o $@$(EXT) $< $(CFLAGS) $(INCLUDE_PATHS) $(LDFLAGS) $(LDLIBS) -static -lpthread -D$(PLATFORM) -s USE_PTHREADS=1 + + +# Clean everything +clean: +ifeq ($(PLATFORM),PLATFORM_DESKTOP) + ifeq ($(PLATFORM_OS),WINDOWS) + del *.o *.exe /s + endif + ifeq ($(PLATFORM_OS),LINUX) + find . -type f -executable -delete + rm -fv *.o + endif + ifeq ($(PLATFORM_OS),OSX) + find . -type f -perm +ugo+x -delete + rm -f *.o + endif +endif +ifeq ($(PLATFORM),PLATFORM_RPI) + find . -type f -executable -delete + rm -fv *.o +endif +ifeq ($(PLATFORM),PLATFORM_DRM) + find . -type f -executable -delete + rm -fv *.o +endif +ifeq ($(PLATFORM),PLATFORM_WEB) + del *.o *.html *.js +endif + @echo Cleaning done + diff --git a/examples/README.md b/examples/README.md index 6a366972f..14d566b23 100644 --- a/examples/README.md +++ b/examples/README.md @@ -1,3 +1,21 @@ +## Building the Examples + +The examples assume you have already built the `raylib` library in `../src`. + +### With GNU make + +- `make` builds all examples +- `make [module]` builds all examples for a particular module (e.g `make core`) + +### With Zig + +The [Zig](https://ziglang.org/) toolchain can compile `C` and `C++` in addition to `Zig`. +You may find it easier to use than other toolchains, especially when it comes to cross-compiling. + +- `zig build` to compile all examples +- `zig build [module]` to compile all examples for a module (e.g. `zig build core`) +- `zig build [example]` to compile _and run_ a particular example (e.g. `zig build core_basic_window`) + ## EXAMPLES LIST ### category: core @@ -110,7 +128,7 @@ Examples using raylib models functionality, including models loading/generation | 72 | [models_cubicmap](models/models_cubicmap.c) | models_cubicmap | ray | | | 73 | [models_first_person_maze](models/models_first_person_maze.c) | models_first_person_maze | ray | | | 74 | [models_geometric_shapes](models/models_geometric_shapes.c) | models_geometric_shapes | ray | | -| 75 | [models_material_pbr](models/models_material_pbr.c) | models_material_pbr | ray | | +| 75 | [...]() | | ray | | | 76 | [models_mesh_generation](models/models_mesh_generation.c) | models_mesh_generation | ray | | | 77 | [models_mesh_picking](models/models_mesh_picking.c) | models_mesh_picking | [Joel Davis](https://github.com/joeld42) | | | 78 | [models_loading](models/models_loading.c) | models_loading | ray | | diff --git a/examples/build.zig b/examples/build.zig new file mode 100644 index 000000000..c05808bf7 --- /dev/null +++ b/examples/build.zig @@ -0,0 +1,86 @@ +const std = @import("std"); +const builtin = @import("builtin"); + +fn add_module(comptime module: []const u8, b: *std.build.Builder, target: std.zig.CrossTarget) !*std.build.Step { + // Standard release options allow the person running `zig build` to select + // between Debug, ReleaseSafe, ReleaseFast, and ReleaseSmall. + const mode = b.standardReleaseOptions(); + + const all = b.step(module, "All " ++ module ++ " examples"); + const dir = try std.fs.cwd().openDir( + module, + .{ .iterate = true }, + ); + var iter = dir.iterate(); + while (try iter.next()) |entry| { + if (entry.kind != .File) continue; + const extension_idx = std.mem.lastIndexOf(u8, entry.name, ".c") orelse continue; + const name = entry.name[0..extension_idx]; + const path = try std.fs.path.join(b.allocator, &.{ module, entry.name }); + + // zig's mingw headers do not include pthread.h + if (std.mem.eql(u8, "core_loading_thread", name) and target.getOsTag() == .windows) continue; + + const exe = b.addExecutable(name, path); + exe.setTarget(target); + exe.setBuildMode(mode); + exe.linkLibC(); + exe.addObjectFile(switch (target.getOsTag()) { + .windows => "../src/raylib.lib", + .linux => "../src/libraylib.a", + else => @panic("Unsupported OS"), + }); + + exe.addIncludeDir("../src"); + exe.addIncludeDir("../src/external"); + exe.addIncludeDir("../src/external/glfw/include"); + + switch (exe.target.toTarget().os.tag) { + .windows => { + exe.linkSystemLibrary("winmm"); + exe.linkSystemLibrary("gdi32"); + exe.linkSystemLibrary("opengl32"); + exe.addIncludeDir("external/glfw/deps/mingw"); + }, + .linux => { + exe.linkSystemLibrary("GL"); + exe.linkSystemLibrary("rt"); + exe.linkSystemLibrary("dl"); + exe.linkSystemLibrary("m"); + exe.linkSystemLibrary("X11"); + }, + else => { + @panic("Unsupported OS"); + }, + } + + exe.setOutputDir(module); + + var run = exe.run(); + run.step.dependOn(&b.addInstallArtifact(exe).step); + run.cwd = module; + b.step(name, name).dependOn(&run.step); + all.dependOn(&exe.step); + } + return all; +} + +pub fn build(b: *std.build.Builder) !void { + // Standard target options allows the person running `zig build` to choose + // what target to build for. Here we do not override the defaults, which + // means any target is allowed, and the default is native. Other options + // for restricting supported target set are available. + const target = b.standardTargetOptions(.{}); + + const all = b.getInstallStep(); + + all.dependOn(try add_module("audio", b, target)); + all.dependOn(try add_module("core", b, target)); + all.dependOn(try add_module("models", b, target)); + all.dependOn(try add_module("others", b, target)); + all.dependOn(try add_module("physics", b, target)); + all.dependOn(try add_module("shaders", b, target)); + all.dependOn(try add_module("shapes", b, target)); + all.dependOn(try add_module("text", b, target)); + all.dependOn(try add_module("textures", b, target)); +} diff --git a/examples/core/core_basic_screen_manager.c b/examples/core/core_basic_screen_manager.c index 9c19d862b..6051f1752 100644 --- a/examples/core/core_basic_screen_manager.c +++ b/examples/core/core_basic_screen_manager.c @@ -38,15 +38,15 @@ int main(void) SetTargetFPS(60); // Set desired framerate (frames-per-second) //-------------------------------------------------------------------------------------- - + // Main game loop while (!WindowShouldClose()) // Detect window close button or ESC key { // Update //---------------------------------------------------------------------------------- - switch(currentScreen) + switch(currentScreen) { - case LOGO: + case LOGO: { // TODO: Update LOGO screen variables here! @@ -58,7 +58,7 @@ int main(void) currentScreen = TITLE; } } break; - case TITLE: + case TITLE: { // TODO: Update TITLE screen variables here! @@ -69,16 +69,16 @@ int main(void) } } break; case GAMEPLAY: - { + { // TODO: Update GAMEPLAY screen variables here! // Press enter to change to ENDING screen if (IsKeyPressed(KEY_ENTER) || IsGestureDetected(GESTURE_TAP)) { currentScreen = ENDING; - } + } } break; - case ENDING: + case ENDING: { // TODO: Update ENDING screen variables here! @@ -86,63 +86,63 @@ int main(void) if (IsKeyPressed(KEY_ENTER) || IsGestureDetected(GESTURE_TAP)) { currentScreen = TITLE; - } + } } break; default: break; } //---------------------------------------------------------------------------------- - + // Draw //---------------------------------------------------------------------------------- BeginDrawing(); - + ClearBackground(RAYWHITE); - - switch(currentScreen) + + switch(currentScreen) { - case LOGO: + case LOGO: { // TODO: Draw LOGO screen here! DrawText("LOGO SCREEN", 20, 20, 40, LIGHTGRAY); DrawText("WAIT for 2 SECONDS...", 290, 220, 20, GRAY); - + } break; - case TITLE: + case TITLE: { // TODO: Draw TITLE screen here! DrawRectangle(0, 0, screenWidth, screenHeight, GREEN); DrawText("TITLE SCREEN", 20, 20, 40, DARKGREEN); DrawText("PRESS ENTER or TAP to JUMP to GAMEPLAY SCREEN", 120, 220, 20, DARKGREEN); - + } break; case GAMEPLAY: - { + { // TODO: Draw GAMEPLAY screen here! DrawRectangle(0, 0, screenWidth, screenHeight, PURPLE); DrawText("GAMEPLAY SCREEN", 20, 20, 40, MAROON); DrawText("PRESS ENTER or TAP to JUMP to ENDING SCREEN", 130, 220, 20, MAROON); } break; - case ENDING: + case ENDING: { // TODO: Draw ENDING screen here! DrawRectangle(0, 0, screenWidth, screenHeight, BLUE); DrawText("ENDING SCREEN", 20, 20, 40, DARKBLUE); DrawText("PRESS ENTER or TAP to RETURN to TITLE SCREEN", 120, 220, 20, DARKBLUE); - + } break; default: break; } - + EndDrawing(); //---------------------------------------------------------------------------------- } // De-Initialization //-------------------------------------------------------------------------------------- - + // TODO: Unload all loaded data (textures, fonts, audio) here! - + CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- diff --git a/examples/core/core_quat_conversion.c b/examples/core/core_quat_conversion.c index f3c9b757e..a60e40007 100644 --- a/examples/core/core_quat_conversion.c +++ b/examples/core/core_quat_conversion.c @@ -10,7 +10,7 @@ * * Example contributed by Chris Camacho (@chriscamacho) and reviewed by Ramon Santamaria (@raysan5) * -* Copyright (c) 2020 Chris Camacho (@chriscamacho) and Ramon Santamaria (@raysan5) +* Copyright (c) 2020-2021 Chris Camacho (@chriscamacho) and Ramon Santamaria (@raysan5) * ********************************************************************************************/ @@ -32,15 +32,23 @@ int main(void) camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; // Camera looking at point camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target) camera.fovy = 45.0f; // Camera field-of-view Y - camera.projection = CAMERA_PERSPECTIVE; // Camera mode type + camera.projection = CAMERA_PERSPECTIVE; // Camera mode type - Mesh mesh = GenMeshCylinder(0.2f, 1.0f, 32); - Model model = LoadModelFromMesh(mesh); + // Load a cylinder model for testing + Model model = LoadModelFromMesh(GenMeshCylinder(0.2f, 1.0f, 32)); - // Some required variables + // Generic quaternion for operations Quaternion q1 = { 0 }; - Matrix m1 = { 0 }, m2 = { 0 }, m3 = { 0 }, m4 = { 0 }; - Vector3 v1 = { 0 }, v2 = { 0 }; + + // Transform matrices required to draw 4 cylinders + Matrix m1 = { 0 }; + Matrix m2 = { 0 }; + Matrix m3 = { 0 }; + Matrix m4 = { 0 }; + + // Generic vectors for rotations + Vector3 v1 = { 0 }; + Vector3 v2 = { 0 }; SetTargetFPS(60); // Set our game to run at 60 frames-per-second //-------------------------------------------------------------------------------------- @@ -50,6 +58,10 @@ int main(void) { // Update //-------------------------------------------------------------------------------------- + if (v2.x < 0) v2.x += PI*2; + if (v2.y < 0) v2.y += PI*2; + if (v2.z < 0) v2.z += PI*2; + if (!IsKeyDown(KEY_SPACE)) { v1.x += 0.01f; @@ -68,7 +80,7 @@ int main(void) q1 = QuaternionFromMatrix(m1); m3 = QuaternionToMatrix(q1); - v2 = QuaternionToEuler(q1); + v2 = QuaternionToEuler(q1); // Angles returned in radians m4 = MatrixRotateZYX(v2); //-------------------------------------------------------------------------------------- @@ -83,10 +95,13 @@ int main(void) model.transform = m1; DrawModel(model, (Vector3){ -1, 0, 0 }, 1.0f, RED); + model.transform = m2; DrawModel(model, (Vector3){ 1, 0, 0 }, 1.0f, RED); + model.transform = m3; DrawModel(model, (Vector3){ 0, 0, 0 }, 1.0f, RED); + model.transform = m4; DrawModel(model, (Vector3){ 0, 0, -1 }, 1.0f, RED); @@ -94,23 +109,13 @@ int main(void) EndMode3D(); - if (v2.x < 0) v2.x += PI*2; - if (v2.y < 0) v2.y += PI*2; - if (v2.z < 0) v2.z += PI*2; + DrawText(TextFormat("%2.3f", v1.x), 20, 20, 20, (v1.x == v2.x)? GREEN: BLACK); + DrawText(TextFormat("%2.3f", v1.y), 20, 40, 20, (v1.y == v2.y)? GREEN: BLACK); + DrawText(TextFormat("%2.3f", v1.z), 20, 60, 20, (v1.z == v2.z)? GREEN: BLACK); - Color cx,cy,cz; - cx = cy = cz = BLACK; - if (v1.x == v2.x) cx = GREEN; - if (v1.y == v2.y) cy = GREEN; - if (v1.z == v2.z) cz = GREEN; - - DrawText(TextFormat("%2.3f", v1.x), 20, 20, 20, cx); - DrawText(TextFormat("%2.3f", v1.y), 20, 40, 20, cy); - DrawText(TextFormat("%2.3f", v1.z), 20, 60, 20, cz); - - DrawText(TextFormat("%2.3f", v2.x), 200, 20, 20, cx); - DrawText(TextFormat("%2.3f", v2.y), 200, 40, 20, cy); - DrawText(TextFormat("%2.3f", v2.z), 200, 60, 20, cz); + DrawText(TextFormat("%2.3f", v2.x), 200, 20, 20, (v1.x == v2.x)? GREEN: BLACK); + DrawText(TextFormat("%2.3f", v2.y), 200, 40, 20, (v1.y == v2.y)? GREEN: BLACK); + DrawText(TextFormat("%2.3f", v2.z), 200, 60, 20, (v1.z == v2.z)? GREEN: BLACK); EndDrawing(); //---------------------------------------------------------------------------------- diff --git a/examples/core/core_random_values.c b/examples/core/core_random_values.c index 260e708cc..b44b5faf4 100644 --- a/examples/core/core_random_values.c +++ b/examples/core/core_random_values.c @@ -20,10 +20,12 @@ int main(void) InitWindow(screenWidth, screenHeight, "raylib [core] example - generate random values"); - int framesCounter = 0; // Variable used to count frames + // SetRandomSeed(0xaabbccff); // Set a custom random seed if desired, by default: "time(NULL)" int randValue = GetRandomValue(-8, 5); // Get a random integer number between -8 and 5 (both included) - + + int framesCounter = 0; // Variable used to count frames + SetTargetFPS(60); // Set our game to run at 60 frames-per-second //-------------------------------------------------------------------------------------- diff --git a/examples/core/core_2d_camera_smooth_pixelperfect.c b/examples/core/core_smooth_pixelperfect.c similarity index 96% rename from examples/core/core_2d_camera_smooth_pixelperfect.c rename to examples/core/core_smooth_pixelperfect.c index 75ffe262a..e0c6d1976 100644 --- a/examples/core/core_2d_camera_smooth_pixelperfect.c +++ b/examples/core/core_smooth_pixelperfect.c @@ -1,118 +1,117 @@ -/******************************************************************************************* -* -* raylib [core] example - smooth pixel-perfect camera -* -* This example has been created using raylib 3.7 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Example contributed by Giancamillo Alessandroni (@NotManyIdeasDev) and -* reviewed by Ramon Santamaria (@raysan5) -* -* Copyright (c) 2021 Giancamillo Alessandroni (@NotManyIdeasDev) and Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" - -#include // Required for: sinf(), cosf() - -int main(void) -{ - // Initialization - //-------------------------------------------------------------------------------------- - const int screenWidth = 800; - const int screenHeight = 450; - - const int virtualScreenWidth = 160; - const int virtualScreenHeight = 90; - - const float virtualRatio = (float)screenWidth/(float)virtualScreenWidth; - - InitWindow(screenWidth, screenHeight, "raylib [core] example - smooth pixel-perfect camera"); - - Camera2D worldSpaceCamera = { 0 }; // Game world camera - worldSpaceCamera.zoom = 1.0f; - - Camera2D screenSpaceCamera = { 0 }; // Smoothing camera - screenSpaceCamera.zoom = 1.0f; - - RenderTexture2D target = LoadRenderTexture(virtualScreenWidth, virtualScreenHeight); // This is where we'll draw all our objects. - - Rectangle rec01 = { 70.0f, 35.0f, 20.0f, 20.0f }; - Rectangle rec02 = { 90.0f, 55.0f, 30.0f, 10.0f }; - Rectangle rec03 = { 80.0f, 65.0f, 15.0f, 25.0f }; - - // The target's height is flipped (in the source Rectangle), due to OpenGL reasons - Rectangle sourceRec = { 0.0f, 0.0f, (float)target.texture.width, -(float)target.texture.height }; - Rectangle destRec = { -virtualRatio, -virtualRatio, screenWidth + (virtualRatio*2), screenHeight + (virtualRatio*2) }; - - Vector2 origin = { 0.0f, 0.0f }; - - float rotation = 0.0f; - - float cameraX = 0.0f; - float cameraY = 0.0f; - - SetTargetFPS(60); - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - rotation += 60.0f*GetFrameTime(); // Rotate the rectangles, 60 degrees per second - - // Make the camera move to demonstrate the effect - cameraX = (sinf(GetTime())*50.0f) - 10.0f; - cameraY = cosf(GetTime())*30.0f; - - // Set the camera's target to the values computed above - screenSpaceCamera.target = (Vector2){ cameraX, cameraY }; - - // Round worldSpace coordinates, keep decimals into screenSpace coordinates - worldSpaceCamera.target.x = (int)screenSpaceCamera.target.x; - screenSpaceCamera.target.x -= worldSpaceCamera.target.x; - screenSpaceCamera.target.x *= virtualRatio; - - worldSpaceCamera.target.y = (int)screenSpaceCamera.target.y; - screenSpaceCamera.target.y -= worldSpaceCamera.target.y; - screenSpaceCamera.target.y *= virtualRatio; - - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginTextureMode(target); - ClearBackground(RAYWHITE); - - BeginMode2D(worldSpaceCamera); - DrawRectanglePro(rec01, origin, rotation, BLACK); - DrawRectanglePro(rec02, origin, -rotation, RED); - DrawRectanglePro(rec03, origin, rotation + 45.0f, BLUE); - EndMode2D(); - EndTextureMode(); - - BeginDrawing(); - ClearBackground(RED); - - BeginMode2D(screenSpaceCamera); - DrawTexturePro(target.texture, sourceRec, destRec, origin, 0.0f, WHITE); - EndMode2D(); - - DrawText(TextFormat("Screen resolution: %ix%i", screenWidth, screenHeight), 10, 10, 20, DARKBLUE); - DrawText(TextFormat("World resolution: %ix%i", virtualScreenWidth, virtualScreenHeight), 10, 40, 20, DARKGREEN); - DrawFPS(GetScreenWidth() - 95, 10); - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - UnloadRenderTexture(target); // Unload render texture - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; +/******************************************************************************************* +* +* raylib [core] example - smooth pixel-perfect camera +* +* This example has been created using raylib 3.7 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Example contributed by Giancamillo Alessandroni (@NotManyIdeasDev) and +* reviewed by Ramon Santamaria (@raysan5) +* +* Copyright (c) 2021 Giancamillo Alessandroni (@NotManyIdeasDev) and Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +#include // Required for: sinf(), cosf() + +int main(void) +{ + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + const int virtualScreenWidth = 160; + const int virtualScreenHeight = 90; + + const float virtualRatio = (float)screenWidth/(float)virtualScreenWidth; + + InitWindow(screenWidth, screenHeight, "raylib [core] example - smooth pixel-perfect camera"); + + Camera2D worldSpaceCamera = { 0 }; // Game world camera + worldSpaceCamera.zoom = 1.0f; + + Camera2D screenSpaceCamera = { 0 }; // Smoothing camera + screenSpaceCamera.zoom = 1.0f; + + RenderTexture2D target = LoadRenderTexture(virtualScreenWidth, virtualScreenHeight); // This is where we'll draw all our objects. + + Rectangle rec01 = { 70.0f, 35.0f, 20.0f, 20.0f }; + Rectangle rec02 = { 90.0f, 55.0f, 30.0f, 10.0f }; + Rectangle rec03 = { 80.0f, 65.0f, 15.0f, 25.0f }; + + // The target's height is flipped (in the source Rectangle), due to OpenGL reasons + Rectangle sourceRec = { 0.0f, 0.0f, (float)target.texture.width, -(float)target.texture.height }; + Rectangle destRec = { -virtualRatio, -virtualRatio, screenWidth + (virtualRatio*2), screenHeight + (virtualRatio*2) }; + + Vector2 origin = { 0.0f, 0.0f }; + + float rotation = 0.0f; + + float cameraX = 0.0f; + float cameraY = 0.0f; + + SetTargetFPS(60); + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + rotation += 60.0f*GetFrameTime(); // Rotate the rectangles, 60 degrees per second + + // Make the camera move to demonstrate the effect + cameraX = (sinf(GetTime())*50.0f) - 10.0f; + cameraY = cosf(GetTime())*30.0f; + + // Set the camera's target to the values computed above + screenSpaceCamera.target = (Vector2){ cameraX, cameraY }; + + // Round worldSpace coordinates, keep decimals into screenSpace coordinates + worldSpaceCamera.target.x = (int)screenSpaceCamera.target.x; + screenSpaceCamera.target.x -= worldSpaceCamera.target.x; + screenSpaceCamera.target.x *= virtualRatio; + + worldSpaceCamera.target.y = (int)screenSpaceCamera.target.y; + screenSpaceCamera.target.y -= worldSpaceCamera.target.y; + screenSpaceCamera.target.y *= virtualRatio; + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginTextureMode(target); + ClearBackground(RAYWHITE); + + BeginMode2D(worldSpaceCamera); + DrawRectanglePro(rec01, origin, rotation, BLACK); + DrawRectanglePro(rec02, origin, -rotation, RED); + DrawRectanglePro(rec03, origin, rotation + 45.0f, BLUE); + EndMode2D(); + EndTextureMode(); + + BeginDrawing(); + ClearBackground(RED); + + BeginMode2D(screenSpaceCamera); + DrawTexturePro(target.texture, sourceRec, destRec, origin, 0.0f, WHITE); + EndMode2D(); + + DrawText(TextFormat("Screen resolution: %ix%i", screenWidth, screenHeight), 10, 10, 20, DARKBLUE); + DrawText(TextFormat("World resolution: %ix%i", virtualScreenWidth, virtualScreenHeight), 10, 40, 20, DARKGREEN); + DrawFPS(GetScreenWidth() - 95, 10); + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + UnloadRenderTexture(target); // Unload render texture + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; } \ No newline at end of file diff --git a/examples/core/core_smooth_pixelperfect.png b/examples/core/core_smooth_pixelperfect.png new file mode 100644 index 000000000..d3b6ce012 Binary files /dev/null and b/examples/core/core_smooth_pixelperfect.png differ diff --git a/examples/core/core_split_screen.c b/examples/core/core_split_screen.c index 31c3fb4bf..c05c0b32d 100644 --- a/examples/core/core_split_screen.c +++ b/examples/core/core_split_screen.c @@ -22,7 +22,7 @@ void DrawScene(void) { int count = 5; float spacing = 4; - + // Grid of cube trees on a plane to make a "world" DrawPlane((Vector3){ 0, 0, 0 }, (Vector2){ 50, 50 }, BEIGE); // Simple world plane @@ -73,10 +73,10 @@ int main(void) cameraPlayer2.position.y = 3.0f; RenderTexture screenPlayer2 = LoadRenderTexture(screenWidth / 2, screenHeight); - + // Build a flipped rectangle the size of the split view to use for drawing later Rectangle splitScreenRect = { 0.0f, 0.0f, (float)screenPlayer1.texture.width, (float)-screenPlayer1.texture.height }; - + SetTargetFPS(60); // Set our game to run at 60 frames-per-second //-------------------------------------------------------------------------------------- @@ -122,7 +122,7 @@ int main(void) BeginMode3D(cameraPlayer1); DrawScene(); EndMode3D(); - DrawText("PLAYER1 W/S to move", 0, 0, 20, RED); + DrawText("PLAYER1 W/S to move", 10, 10, 20, RED); EndTextureMode(); // Draw Player2 view to the render texture @@ -131,7 +131,7 @@ int main(void) BeginMode3D(cameraPlayer2); DrawScene(); EndMode3D(); - DrawText("PLAYER2 UP/DOWN to move", 0, 0, 20, BLUE); + DrawText("PLAYER2 UP/DOWN to move", 10, 10, 20, BLUE); EndTextureMode(); // Draw both views render textures to the screen side by side @@ -147,7 +147,7 @@ int main(void) UnloadRenderTexture(screenPlayer1); // Unload render texture UnloadRenderTexture(screenPlayer2); // Unload render texture UnloadTexture(textureGrid); // Unload texture - + CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- diff --git a/examples/core/core_split_screen.png b/examples/core/core_split_screen.png index 20cd2ead9..eace9027b 100644 Binary files a/examples/core/core_split_screen.png and b/examples/core/core_split_screen.png differ diff --git a/examples/models/models_animation.c b/examples/models/models_animation.c index 4fde9baf3..0a375c905 100644 --- a/examples/models/models_animation.c +++ b/examples/models/models_animation.c @@ -37,17 +37,17 @@ int main(void) camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; // Camera looking at point camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target) camera.fovy = 45.0f; // Camera field-of-view Y - camera.projection = CAMERA_PERSPECTIVE; // Camera mode type + camera.projection = CAMERA_PERSPECTIVE; // Camera mode type - Model model = LoadModel("resources/guy/guy.iqm"); // Load the animated model mesh and basic data - Texture2D texture = LoadTexture("resources/guy/guytex.png"); // Load model texture and set material - SetMaterialTexture(&model.materials[0], MATERIAL_MAP_DIFFUSE, texture); // Set model material map texture + Model model = LoadModel("resources/models/iqm/guy.iqm"); // Load the animated model mesh and basic data + Texture2D texture = LoadTexture("resources/models/iqm/guytex.png"); // Load model texture and set material + SetMaterialTexture(&model.materials[0], MATERIAL_MAP_DIFFUSE, texture); // Set model material map texture Vector3 position = { 0.0f, 0.0f, 0.0f }; // Set model position // Load animation data - int animsCount = 0; - ModelAnimation *anims = LoadModelAnimations("resources/guy/guyanim.iqm", &animsCount); + unsigned int animsCount = 0; + ModelAnimation *anims = LoadModelAnimations("resources/models/iqm/guyanim.iqm", &animsCount); int animFrameCounter = 0; SetCameraMode(camera, CAMERA_FREE); // Set free camera mode diff --git a/examples/models/models_gltf_animation.c b/examples/models/models_gltf_animation.c deleted file mode 100644 index 69df2982b..000000000 --- a/examples/models/models_gltf_animation.c +++ /dev/null @@ -1,122 +0,0 @@ -/******************************************************************************************* -* -* raylib [models] example - Load 3d gltf model with animations and play them -* -* This example has been created using raylib 3.5 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Example contributed by Hristo Stamenov (@object71) and reviewed by Ramon Santamaria (@raysan5) -* -* Copyright (c) 2021 Hristo Stamenov (@object71) and Ramon Santamaria (@raysan5) -* -******************************************************************************************** -* -* To export a model from blender, make sure it is not posed, the vertices need to be in the -* same position as they would be in edit mode. -* and that the scale of your models is set to 0. Scaling can be done from the export menu. -* -********************************************************************************************/ - -#include "raylib.h" - -#include - - -int main(void) -{ - // Initialization - //-------------------------------------------------------------------------------------- - const int screenWidth = 800; - const int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [models] example - model animation"); - - // Define the camera to look into our 3d world - Camera camera = { 0 }; - camera.position = (Vector3){ 10.0f, 10.0f, 10.0f }; // Camera position - camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; // Camera looking at point - camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target) - camera.fovy = 45.0f; // Camera field-of-view Y - camera.projection = CAMERA_PERSPECTIVE; // Camera mode type - - Model model = LoadModel("resources/gltf/rigged_figure.glb"); // Load the animated model mesh and - // basic data -// Texture2D texture = LoadTexture("resources/guy/guytex.png"); // Load model texture and set material -// SetMaterialTexture(&model.materials[0], MAP_DIFFUSE, texture); // Set model material map texture - - Vector3 position = { 0.0f, 0.0f, 0.0f }; // Set model position - - // Load animation data - int animsCount = 0; - ModelAnimation *anims = LoadModelAnimations("resources/gltf/rigged_figure.glb", &animsCount); - int animFrameCounter = 0; - int animationDirection = 1; - - SetCameraMode(camera, CAMERA_FREE); // Set free camera mode - - SetTargetFPS(30); // Set our game to run at 60 frames-per-second - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - UpdateCamera(&camera); - - // Play animation when spacebar is held down - if (IsKeyDown(KEY_SPACE)) - { - animFrameCounter += animationDirection; - - if (animFrameCounter >= anims[0].frameCount || animFrameCounter <= 0) - { - animationDirection *= -1; - animFrameCounter += animationDirection; - } - - UpdateModelAnimation(model, anims[0], animFrameCounter); - } - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - BeginMode3D(camera); - - DrawModelEx(model, position, (Vector3){ 1.0f, 0.0f, 0.0f }, -90.0f, (Vector3){ 1.0f, 1.0f, 1.0f }, WHITE); - - for (int i = 0; i < model.boneCount; i++) - { - DrawSphere(anims[0].framePoses[animFrameCounter][i].translation, 0.01f, RED); - } - - DrawGrid(10, 1.0f); // Draw a grid - - EndMode3D(); - - DrawText("PRESS SPACE to PLAY MODEL ANIMATION", 10, 10, 20, MAROON); - DrawText("(cc4) Rigged Figure by @Cesium", screenWidth - 200, screenHeight - 20, 10, GRAY); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- -// UnloadTexture(texture); // Unload texture - - // Unload model animations data - for (int i = 0; i < animsCount; i++) UnloadModelAnimation(anims[i]); - RL_FREE(anims); - - UnloadModel(model); // Unload model - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} diff --git a/examples/models/models_loading.c b/examples/models/models_loading.c index 16f122ee8..0c9b702b6 100644 --- a/examples/models/models_loading.c +++ b/examples/models/models_loading.c @@ -4,17 +4,19 @@ * * raylib supports multiple models file formats: * -* - OBJ > Text file, must include vertex position-texcoords-normals information, -* if files references some .mtl materials file, it will be loaded (or try to) -* - GLTF > Modern text/binary file format, includes lot of information and it could -* also reference external files, raylib will try loading mesh and materials data -* - IQM > Binary file format including mesh vertex data but also animation data, -* raylib can load .iqm animations. +* - OBJ > Text file format. Must include vertex position-texcoords-normals information, +* if files references some .mtl materials file, it will be loaded (or try to). +* - GLTF > Text/binary file format. Includes lot of information and it could +* also reference external files, raylib will try loading mesh and materials data. +* - IQM > Binary file format. Includes mesh vertex data but also animation data, +* raylib can load .iqm animations. +* - VOX > Binary file format. MagikaVoxel mesh format: +* https://github.com/ephtracy/voxel-model/blob/master/MagicaVoxel-file-format-vox.txt * -* This example has been created using raylib 2.6 (www.raylib.com) +* This example has been created using raylib 4.0 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * -* Copyright (c) 2014-2019 Ramon Santamaria (@raysan5) +* Copyright (c) 2014-2021 Ramon Santamaria (@raysan5) * ********************************************************************************************/ @@ -37,13 +39,13 @@ int main(void) camera.fovy = 45.0f; // Camera field-of-view Y camera.projection = CAMERA_PERSPECTIVE; // Camera mode type - Model model = LoadModel("resources/models/castle.obj"); // Load model - Texture2D texture = LoadTexture("resources/models/castle_diffuse.png"); // Load model texture - model.materials[0].maps[MATERIAL_MAP_DIFFUSE].texture = texture; // Set map diffuse texture + Model model = LoadModel("resources/models/obj/castle.obj"); // Load model + Texture2D texture = LoadTexture("resources/models/obj/castle_diffuse.png"); // Load model texture + model.materials[0].maps[MATERIAL_MAP_DIFFUSE].texture = texture; // Set map diffuse texture - Vector3 position = { 0.0f, 0.0f, 0.0f }; // Set model position + Vector3 position = { 0.0f, 0.0f, 0.0f }; // Set model position - BoundingBox bounds = GetMeshBoundingBox(model.meshes[0]); // Set model bounds + BoundingBox bounds = GetMeshBoundingBox(model.meshes[0]); // Set model bounds // NOTE: bounds are calculated from the original size of the model, // if model is scaled on drawing, bounds must be also scaled diff --git a/examples/models/models_gltf_model.c b/examples/models/models_loading_gltf.c similarity index 66% rename from examples/models/models_gltf_model.c rename to examples/models/models_loading_gltf.c index 3f843c9d4..fe79afecc 100644 --- a/examples/models/models_gltf_model.c +++ b/examples/models/models_loading_gltf.c @@ -1,27 +1,24 @@ /******************************************************************************************* * -* raylib [models] example - Load 3d gltf model +* raylib [models] example - Load models gltf * * This example has been created using raylib 3.5 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * +* NOTE: To export a model from Blender, make sure it is not posed, the vertices need to be +* in the same position as they would be in edit mode. +* Also make sure the scale parameter of your models is set to 0.0, +* scaling can be applied from the export menu. +* * Example contributed by Hristo Stamenov (@object71) and reviewed by Ramon Santamaria (@raysan5) * * Copyright (c) 2021 Hristo Stamenov (@object71) and Ramon Santamaria (@raysan5) * -******************************************************************************************** -* -* To export a model from blender, make sure it is not posed, the vertices need to be in the -* same position as they would be in edit mode. -* and that the scale of your models is set to 0. Scaling can be done from the export menu. -* ********************************************************************************************/ #include "raylib.h" -#include - -#define MAX_MODELS 8 +#define MAX_GLTF_MODELS 8 int main(void) { @@ -40,16 +37,16 @@ int main(void) camera.fovy = 45.0f; // Camera field-of-view Y camera.projection = CAMERA_PERSPECTIVE; // Camera mode type - Model model[MAX_MODELS] = { 0 }; - - model[0] = LoadModel("resources/gltf/raylib_32x32.glb"); - model[1] = LoadModel("resources/gltf/rigged_figure.glb"); - model[2] = LoadModel("resources/gltf/GearboxAssy.glb"); - model[3] = LoadModel("resources/gltf/BoxAnimated.glb"); - model[4] = LoadModel("resources/gltf/AnimatedTriangle.gltf"); - model[5] = LoadModel("resources/gltf/AnimatedMorphCube.glb"); - model[6] = LoadModel("resources/gltf/vertex_colored_object.glb"); - model[7] = LoadModel("resources/gltf/girl.glb"); + // Load some models + Model model[MAX_GLTF_MODELS] = { 0 }; + model[0] = LoadModel("resources/models/gltf/raylib_32x32.glb"); + model[1] = LoadModel("resources/models/gltf/rigged_figure.glb"); + model[2] = LoadModel("resources/models/gltf/GearboxAssy.glb"); + model[3] = LoadModel("resources/models/gltf/BoxAnimated.glb"); + model[4] = LoadModel("resources/models/gltf/AnimatedTriangle.gltf"); + model[5] = LoadModel("resources/models/gltf/AnimatedMorphCube.glb"); + model[6] = LoadModel("resources/models/gltf/vertex_colored_object.glb"); + model[7] = LoadModel("resources/models/gltf/girl.glb"); int currentModel = 0; @@ -65,19 +62,20 @@ int main(void) { // Update //---------------------------------------------------------------------------------- - UpdateCamera(&camera); + UpdateCamera(&camera); // Update our camera with inputs if (IsKeyReleased(KEY_RIGHT)) { currentModel++; - if (currentModel == MAX_MODELS) currentModel = 0; + if (currentModel == MAX_GLTF_MODELS) currentModel = 0; } if (IsKeyReleased(KEY_LEFT)) { currentModel--; - if (currentModel < 0) currentModel = MAX_MODELS - 1; + if (currentModel < 0) currentModel = MAX_GLTF_MODELS - 1; } + //---------------------------------------------------------------------------------- // Draw //---------------------------------------------------------------------------------- @@ -87,8 +85,7 @@ int main(void) BeginMode3D(camera); - DrawModelEx(model[currentModel], position, (Vector3){ 0.0f, 1.0f, 0.0f }, 180.0f, (Vector3){ 2.0f, 2.0f, 2.0f }, WHITE); - + DrawModel(model[currentModel], position, 1.0f, WHITE); DrawGrid(10, 1.0f); // Draw a grid EndMode3D(); @@ -99,7 +96,7 @@ int main(void) // De-Initialization //-------------------------------------------------------------------------------------- - for (int i = 0; i < MAX_MODELS; i++) UnloadModel(model[i]); // Unload models + for (int i = 0; i < MAX_GLTF_MODELS; i++) UnloadModel(model[i]); // Unload models CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- diff --git a/examples/models/models_gltf_model.png b/examples/models/models_loading_gltf.png similarity index 100% rename from examples/models/models_gltf_model.png rename to examples/models/models_loading_gltf.png diff --git a/examples/models/models_loading_vox.c b/examples/models/models_loading_vox.c new file mode 100644 index 000000000..7836cdd3f --- /dev/null +++ b/examples/models/models_loading_vox.c @@ -0,0 +1,130 @@ +/******************************************************************************************* +* +* raylib [models] example - Load models vox (MagicaVoxel) +* +* This example has been created using raylib 4.0 (www.raylib.com) +* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) +* +* Example contributed by Johann Nadalutti (@procfxgen) and reviewed by Ramon Santamaria (@raysan5) +* +* Copyright (c) 2021 Johann Nadalutti (@procfxgen) and Ramon Santamaria (@raysan5) +* +********************************************************************************************/ + +#include "raylib.h" + +#include "raymath.h" // Required for: MatrixTranslate() + +#define MAX_VOX_FILES 3 + +int main(void) +{ + // Initialization + //-------------------------------------------------------------------------------------- + const int screenWidth = 800; + const int screenHeight = 450; + + const char *voxFileNames[] = { + "resources/models/vox/chr_knight.vox", + "resources/models/vox/chr_sword.vox", + "resources/models/vox/monu9.vox" + }; + + InitWindow(screenWidth, screenHeight, "raylib [models] example - magicavoxel loading"); + + // Define the camera to look into our 3d world + Camera camera = { 0 }; + camera.position = (Vector3){ 10.0f, 10.0f, 10.0f }; // Camera position + camera.target = (Vector3){ 0.0f, 0.0f, 0.0f }; // Camera looking at point + camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target) + camera.fovy = 45.0f; // Camera field-of-view Y + camera.projection = CAMERA_PERSPECTIVE; // Camera mode type + + // Load MagicaVoxel files + Model models[MAX_VOX_FILES] = { 0 }; + + for (int i = 0; i < MAX_VOX_FILES; i++) + { + // Load VOX file and measure time + double t0 = GetTime()*1000.0; + models[i] = LoadModel(voxFileNames[i]); + double t1 = GetTime()*1000.0; + + TraceLog(LOG_WARNING, TextFormat("[%s] File loaded in %.3f ms", voxFileNames[i], t1 - t0)); + + // Compute model translation matrix to center model on draw position (0, 0 , 0) + BoundingBox bb = GetModelBoundingBox(models[i]); + Vector3 center = { 0 }; + center.x = bb.min.x + (((bb.max.x - bb.min.x)/2)); + center.z = bb.min.z + (((bb.max.z - bb.min.z)/2)); + + Matrix matTranslate = MatrixTranslate(-center.x, 0, -center.z); + models[i].transform = matTranslate; + } + + int currentModel = 0; + + SetCameraMode(camera, CAMERA_ORBITAL); // Set a orbital camera mode + + SetTargetFPS(60); // Set our game to run at 60 frames-per-second + //-------------------------------------------------------------------------------------- + + // Main game loop + while (!WindowShouldClose()) // Detect window close button or ESC key + { + // Update + //---------------------------------------------------------------------------------- + UpdateCamera(&camera); // Update our camera to orbit + + // Cycle between models on mouse click + if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT)) currentModel = (currentModel + 1)%MAX_VOX_FILES; + + // Cycle between models on key pressed + if (IsKeyPressed(KEY_RIGHT)) + { + currentModel++; + if (currentModel >= MAX_VOX_FILES) currentModel = 0; + } + else if (IsKeyPressed(KEY_LEFT)) + { + currentModel--; + if (currentModel < 0) currentModel = MAX_VOX_FILES - 1; + } + //---------------------------------------------------------------------------------- + + // Draw + //---------------------------------------------------------------------------------- + BeginDrawing(); + + ClearBackground(RAYWHITE); + + // Draw 3D model + BeginMode3D(camera); + + DrawModel(models[currentModel], (Vector3){ 0, 0, 0 }, 1.0f, WHITE); + DrawGrid(10, 1.0); + + EndMode3D(); + + // Display info + DrawRectangle(10, 400, 310, 30, Fade(SKYBLUE, 0.5f)); + DrawRectangleLines(10, 400, 310, 30, Fade(DARKBLUE, 0.5f)); + DrawText("MOUSE LEFT BUTTON to CYCLE VOX MODELS", 40, 410, 10, BLUE); + DrawText(TextFormat("File: %s", GetFileName(voxFileNames[currentModel])), 10, 10, 20, GRAY); + + EndDrawing(); + //---------------------------------------------------------------------------------- + } + + // De-Initialization + //-------------------------------------------------------------------------------------- + // Unload models data (GPU VRAM) + for (int i = 0; i < MAX_VOX_FILES; i++) UnloadModel(models[i]); + + CloseWindow(); // Close window and OpenGL context + //-------------------------------------------------------------------------------------- + + return 0; +} + + diff --git a/examples/models/models_loading_vox.png b/examples/models/models_loading_vox.png new file mode 100644 index 000000000..417d887e4 Binary files /dev/null and b/examples/models/models_loading_vox.png differ diff --git a/examples/models/models_magicavoxel_loading.c b/examples/models/models_magicavoxel_loading.c deleted file mode 100644 index fd268f079..000000000 --- a/examples/models/models_magicavoxel_loading.c +++ /dev/null @@ -1,151 +0,0 @@ -/******************************************************************************************* -* -* raylib [models] example - magicavoxel loader and viewer -* -* This example has been created using raylib 3.8 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Example contributed by Johann Nadalutti -* -* Copyright (c) 2021 Johann Nadalutti -* -********************************************************************************************/ - -#include "raylib.h" -#include "raymath.h" - -#include - - -// VOX Files to load and view - -#define NUM_VOX_FILES 3 - -const char* szVoxFiles[] = { - "resources/vox/chr_knight.vox", - "resources/vox/chr_sword.vox", - "resources/vox/monu9.vox" -}; - - -int main(void) -{ - // Initialization - //-------------------------------------------------------------------------------------- - const int screenWidth = 800; - const int screenHeight = 450; - - InitWindow(screenWidth, screenHeight, "raylib [models] example - magicavoxel loading"); - - // Load MagicaVoxel files - Model models[NUM_VOX_FILES] = { 0 }; - - for (int i = 0; i < NUM_VOX_FILES; i++) - { - // Load MagicaVoxel File and build model - double t0, t1; - t0 = GetTime() * 1000.0; - - models[i] = LoadModel(szVoxFiles[i]); - - t1 = GetTime() * 1000.0; - TraceLog(LOG_INFO, TextFormat("Vox <%s> loaded in %f ms", GetFileName(szVoxFiles[i]), t1 - t0)); - - //Compute model's center matrix - BoundingBox bb = GetModelBoundingBox(models[i]); - Vector3 center; - center.x = bb.min.x + (((bb.max.x - bb.min.x) / 2)); - center.z = bb.min.z + (((bb.max.z - bb.min.z) / 2)); - - Matrix matP = MatrixTranslate(-center.x, 0, -center.z); - models[i].transform = matP; - - - } - - - // Define the camera to look into our 3d world - Camera camera = { { 0.0f, 10.0f, 10.0f }, { 0.0f, 0.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, 45.0f, 0 }; - - // Model drawing position - Vector3 position = { 0.0f, 0.0f, 0.0f }; - - int currentModel = 0; - - - - SetCameraMode(camera, CAMERA_ORBITAL); // Set a orbital camera mode - - SetTargetFPS(60); // Set our game to run at 60 frames-per-second - - //-------------------------------------------------------------------------------------- - // Main game loop - //-------------------------------------------------------------------------------------- - while (!WindowShouldClose()) // Detect window close button or ESC key - { - //-------------------------------------------------------------------------------------- - // Update - //---------------------------------------------------------------------------------- - UpdateCamera(&camera); // Update internal camera and our camera - - if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT)) - { - currentModel = (currentModel + 1) % NUM_VOX_FILES; // Cycle between models - } - - if (IsKeyPressed(KEY_RIGHT)) - { - currentModel++; - if (currentModel >= NUM_VOX_FILES) currentModel = 0; - } - else if (IsKeyPressed(KEY_LEFT)) - { - currentModel--; - if (currentModel < 0) currentModel = NUM_VOX_FILES - 1; - } - - //---------------------------------------------------------------------------------- - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - //Display model - BeginMode3D(camera); - - Vector3 rotAxis = { 1,0,0 }; - Vector3 scale = { 1,1,1 }; - - - DrawModelEx(models[currentModel], position, rotAxis, 0, scale, WHITE); - //DrawModelWiresEx(models[currentModel], position, rotAxis, -90.0f, scale, BLACK); - - DrawGrid(10, 1.0); - - EndMode3D(); - - //Display debug infos - DrawRectangle(30, 400, 310, 30, Fade(SKYBLUE, 0.5f)); - DrawRectangleLines(30, 400, 310, 30, Fade(DARKBLUE, 0.5f)); - DrawText("MOUSE LEFT BUTTON to CYCLE VOX MODELS", 40, 410, 10, BLUE); - - DrawText(GetFileName(szVoxFiles[currentModel]), 100, 10, 20, DARKBLUE); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - - // Unload models data (GPU VRAM) - for (int i = 0; i < NUM_VOX_FILES; i++) UnloadModel(models[i]); - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} - - diff --git a/examples/models/models_material_pbr.c b/examples/models/models_material_pbr.c deleted file mode 100644 index 48bdfd885..000000000 --- a/examples/models/models_material_pbr.c +++ /dev/null @@ -1,543 +0,0 @@ -/******************************************************************************************* -* -* raylib [models] example - PBR material -* -* NOTE: This example requires raylib OpenGL 3.3 for shaders support and only #version 330 -* is currently supported. OpenGL ES 2.0 platforms are not supported at the moment. -* -* This example has been created using raylib 1.8 (www.raylib.com) -* raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) -* -* Copyright (c) 2017 Ramon Santamaria (@raysan5) -* -********************************************************************************************/ - -#include "raylib.h" -#include "raymath.h" -#include "rlgl.h" - -#include - -#define RLIGHTS_IMPLEMENTATION -#include "rlights.h" - -#if defined(PLATFORM_DESKTOP) - #define GLSL_VERSION 330 -#else // PLATFORM_RPI, PLATFORM_ANDROID, PLATFORM_WEB - #define GLSL_VERSION 100 -#endif - -#define CUBEMAP_SIZE 1024 // Cubemap texture size -#define IRRADIANCE_SIZE 32 // Irradiance texture size -#define PREFILTERED_SIZE 256 // Prefiltered HDR environment texture size -#define BRDF_SIZE 512 // BRDF LUT texture size -#define LIGHT_DISTANCE 1000.0f -#define LIGHT_HEIGHT 1.0f - -// PBR texture maps generation -static TextureCubemap GenTextureCubemap(Shader shader, Texture2D panorama, int size, int format); // Generate cubemap (6 faces) from equirectangular (panorama) texture -static TextureCubemap GenTextureIrradiance(Shader shader, TextureCubemap cubemap, int size); // Generate irradiance cubemap using cubemap texture -static TextureCubemap GenTexturePrefilter(Shader shader, TextureCubemap cubemap, int size); // Generate prefilter cubemap using cubemap texture -static Texture2D GenTextureBRDF(Shader shader, int size); // Generate a generic BRDF texture - -// PBR material loading -static Material LoadMaterialPBR(Color albedo, float metalness, float roughness); - -int main(void) -{ - // Initialization - //-------------------------------------------------------------------------------------- - const int screenWidth = 800; - const int screenHeight = 450; - - SetConfigFlags(FLAG_MSAA_4X_HINT); // Enable Multi Sampling Anti Aliasing 4x (if available) - InitWindow(screenWidth, screenHeight, "raylib [models] example - pbr material"); - - // Define the camera to look into our 3d world - Camera camera = { 0 }; - camera.position = (Vector3){ 4.0f, 4.0f, 4.0f }; // Camera position - camera.target = (Vector3){ 0.0f, 0.5f, 0.0f }; // Camera looking at point - camera.up = (Vector3){ 0.0f, 1.0f, 0.0f }; // Camera up vector (rotation towards target) - camera.fovy = 45.0f; // Camera field-of-view Y - camera.projection = CAMERA_PERSPECTIVE; // Camera mode type - - // Load model and PBR material - Model model = LoadModel("resources/pbr/trooper.obj"); - - // Mesh tangents are generated... and uploaded to GPU - // NOTE: New VBO for tangents is generated at default location and also binded to mesh VAO - //MeshTangents(&model.meshes[0]); - - model.materials[0] = LoadMaterialPBR((Color){ 255, 255, 255, 255 }, 1.0f, 1.0f); - - // Create lights - // NOTE: Lights are added to an internal lights pool automatically - CreateLight(LIGHT_POINT, (Vector3){ LIGHT_DISTANCE, LIGHT_HEIGHT, 0.0f }, (Vector3){ 0.0f, 0.0f, 0.0f }, (Color){ 255, 0, 0, 255 }, model.materials[0].shader); - CreateLight(LIGHT_POINT, (Vector3){ 0.0f, LIGHT_HEIGHT, LIGHT_DISTANCE }, (Vector3){ 0.0f, 0.0f, 0.0f }, (Color){ 0, 255, 0, 255 }, model.materials[0].shader); - CreateLight(LIGHT_POINT, (Vector3){ -LIGHT_DISTANCE, LIGHT_HEIGHT, 0.0f }, (Vector3){ 0.0f, 0.0f, 0.0f }, (Color){ 0, 0, 255, 255 }, model.materials[0].shader); - CreateLight(LIGHT_DIRECTIONAL, (Vector3){ 0.0f, LIGHT_HEIGHT*2.0f, -LIGHT_DISTANCE }, (Vector3){ 0.0f, 0.0f, 0.0f }, (Color){ 255, 0, 255, 255 }, model.materials[0].shader); - - SetCameraMode(camera, CAMERA_ORBITAL); // Set an orbital camera mode - - SetTargetFPS(60); // Set our game to run at 60 frames-per-second - //-------------------------------------------------------------------------------------- - - // Main game loop - while (!WindowShouldClose()) // Detect window close button or ESC key - { - // Update - //---------------------------------------------------------------------------------- - UpdateCamera(&camera); // Update camera - - // Send to material PBR shader camera view position - float cameraPos[3] = { camera.position.x, camera.position.y, camera.position.z }; - SetShaderValue(model.materials[0].shader, model.materials[0].shader.locs[SHADER_LOC_VECTOR_VIEW], cameraPos, SHADER_UNIFORM_VEC3); - //---------------------------------------------------------------------------------- - - // Draw - //---------------------------------------------------------------------------------- - BeginDrawing(); - - ClearBackground(RAYWHITE); - - BeginMode3D(camera); - - DrawModel(model, Vector3Zero(), 1.0f, WHITE); - - DrawGrid(10, 1.0f); - - EndMode3D(); - - DrawFPS(10, 10); - - EndDrawing(); - //---------------------------------------------------------------------------------- - } - - // De-Initialization - //-------------------------------------------------------------------------------------- - UnloadMaterial(model.materials[0]); // Unload material: shader and textures - - UnloadModel(model); // Unload model - - CloseWindow(); // Close window and OpenGL context - //-------------------------------------------------------------------------------------- - - return 0; -} - -// Load PBR material (Supports: ALBEDO, NORMAL, METALNESS, ROUGHNESS, AO, EMMISIVE, HEIGHT maps) -// NOTE: PBR shader is loaded inside this function -static Material LoadMaterialPBR(Color albedo, float metalness, float roughness) -{ - Material mat = LoadMaterialDefault(); // Initialize material to default - - // Load PBR shader (requires several maps) - mat.shader = LoadShader(TextFormat("resources/shaders/glsl%i/pbr.vs", GLSL_VERSION), - TextFormat("resources/shaders/glsl%i/pbr.fs", GLSL_VERSION)); - - // Get required locations points for PBR material - // NOTE: Those location names must be available and used in the shader code - mat.shader.locs[SHADER_LOC_MAP_ALBEDO] = GetShaderLocation(mat.shader, "albedo.sampler"); - mat.shader.locs[SHADER_LOC_MAP_METALNESS] = GetShaderLocation(mat.shader, "metalness.sampler"); - mat.shader.locs[SHADER_LOC_MAP_NORMAL] = GetShaderLocation(mat.shader, "normals.sampler"); - mat.shader.locs[SHADER_LOC_MAP_ROUGHNESS] = GetShaderLocation(mat.shader, "roughness.sampler"); - mat.shader.locs[SHADER_LOC_MAP_OCCLUSION] = GetShaderLocation(mat.shader, "occlusion.sampler"); - //mat.shader.locs[SHADER_LOC_MAP_EMISSION] = GetShaderLocation(mat.shader, "emission.sampler"); - //mat.shader.locs[SHADER_LOC_MAP_HEIGHT] = GetShaderLocation(mat.shader, "height.sampler"); - mat.shader.locs[SHADER_LOC_MAP_IRRADIANCE] = GetShaderLocation(mat.shader, "irradianceMap"); - mat.shader.locs[SHADER_LOC_MAP_PREFILTER] = GetShaderLocation(mat.shader, "prefilterMap"); - mat.shader.locs[SHADER_LOC_MAP_BRDF] = GetShaderLocation(mat.shader, "brdfLUT"); - - // Set view matrix location - mat.shader.locs[SHADER_LOC_MATRIX_MODEL] = GetShaderLocation(mat.shader, "matModel"); - //mat.shader.locs[SHADER_LOC_MATRIX_VIEW] = GetShaderLocation(mat.shader, "view"); - mat.shader.locs[SHADER_LOC_VECTOR_VIEW] = GetShaderLocation(mat.shader, "viewPos"); - - // Set PBR standard maps - mat.maps[MATERIAL_MAP_ALBEDO].texture = LoadTexture("resources/pbr/trooper_albedo.png"); - mat.maps[MATERIAL_MAP_NORMAL].texture = LoadTexture("resources/pbr/trooper_normals.png"); - mat.maps[MATERIAL_MAP_METALNESS].texture = LoadTexture("resources/pbr/trooper_metalness.png"); - mat.maps[MATERIAL_MAP_ROUGHNESS].texture = LoadTexture("resources/pbr/trooper_roughness.png"); - mat.maps[MATERIAL_MAP_OCCLUSION].texture = LoadTexture("resources/pbr/trooper_ao.png"); - - // Set textures filtering for better quality - SetTextureFilter(mat.maps[MATERIAL_MAP_ALBEDO].texture, TEXTURE_FILTER_BILINEAR); - SetTextureFilter(mat.maps[MATERIAL_MAP_NORMAL].texture, TEXTURE_FILTER_BILINEAR); - SetTextureFilter(mat.maps[MATERIAL_MAP_METALNESS].texture, TEXTURE_FILTER_BILINEAR); - SetTextureFilter(mat.maps[MATERIAL_MAP_ROUGHNESS].texture, TEXTURE_FILTER_BILINEAR); - SetTextureFilter(mat.maps[MATERIAL_MAP_OCCLUSION].texture, TEXTURE_FILTER_BILINEAR); - - // Enable sample usage in shader for assigned textures - SetShaderValue(mat.shader, GetShaderLocation(mat.shader, "albedo.useSampler"), (int[1]){ 1 }, SHADER_UNIFORM_INT); - SetShaderValue(mat.shader, GetShaderLocation(mat.shader, "normals.useSampler"), (int[1]){ 1 }, SHADER_UNIFORM_INT); - SetShaderValue(mat.shader, GetShaderLocation(mat.shader, "metalness.useSampler"), (int[1]){ 1 }, SHADER_UNIFORM_INT); - SetShaderValue(mat.shader, GetShaderLocation(mat.shader, "roughness.useSampler"), (int[1]){ 1 }, SHADER_UNIFORM_INT); - SetShaderValue(mat.shader, GetShaderLocation(mat.shader, "occlusion.useSampler"), (int[1]){ 1 }, SHADER_UNIFORM_INT); - - int renderModeLoc = GetShaderLocation(mat.shader, "renderMode"); - SetShaderValue(mat.shader, renderModeLoc, (int[1]){ 0 }, SHADER_UNIFORM_INT); - - // Set up material properties color - mat.maps[MATERIAL_MAP_ALBEDO].color = albedo; - mat.maps[MATERIAL_MAP_NORMAL].color = (Color){ 128, 128, 255, 255 }; - mat.maps[MATERIAL_MAP_METALNESS].value = metalness; - mat.maps[MATERIAL_MAP_ROUGHNESS].value = roughness; - mat.maps[MATERIAL_MAP_OCCLUSION].value = 1.0f; - mat.maps[MATERIAL_MAP_EMISSION].value = 0.5f; - mat.maps[MATERIAL_MAP_HEIGHT].value = 0.5f; - - // Generate cubemap from panorama texture - //-------------------------------------------------------------------------------------------------------- - Texture2D panorama = LoadTexture("resources/dresden_square_2k.hdr"); - - // Load equirectangular to cubemap shader - Shader shdrCubemap = LoadShader(TextFormat("resources/shaders/glsl%i/pbr.vs", GLSL_VERSION), - TextFormat("resources/shaders/glsl%i/pbr.fs", GLSL_VERSION)); - - SetShaderValue(shdrCubemap, GetShaderLocation(shdrCubemap, "equirectangularMap"), (int[1]){ 0 }, SHADER_UNIFORM_INT); - TextureCubemap cubemap = GenTextureCubemap(shdrCubemap, panorama, CUBEMAP_SIZE, PIXELFORMAT_UNCOMPRESSED_R32G32B32); - UnloadTexture(panorama); - UnloadShader(shdrCubemap); - //-------------------------------------------------------------------------------------------------------- - - // Generate irradiance map from cubemap texture - //-------------------------------------------------------------------------------------------------------- - // Load irradiance (GI) calculation shader - Shader shdrIrradiance = LoadShader(TextFormat("resources/shaders/glsl%i/skybox.vs", GLSL_VERSION), - TextFormat("resources/shaders/glsl%i/irradiance.fs", GLSL_VERSION)); - - SetShaderValue(shdrIrradiance, GetShaderLocation(shdrIrradiance, "environmentMap"), (int[1]){ 0 }, SHADER_UNIFORM_INT); - mat.maps[MATERIAL_MAP_IRRADIANCE].texture = GenTextureIrradiance(shdrIrradiance, cubemap, IRRADIANCE_SIZE); - UnloadShader(shdrIrradiance); - //-------------------------------------------------------------------------------------------------------- - - // Generate prefilter map from cubemap texture - //-------------------------------------------------------------------------------------------------------- - // Load reflection prefilter calculation shader - Shader shdrPrefilter = LoadShader(TextFormat("resources/shaders/glsl%i/skybox.vs", GLSL_VERSION), - TextFormat("resources/shaders/glsl%i/prefilter.fs", GLSL_VERSION)); - - SetShaderValue(shdrPrefilter, GetShaderLocation(shdrPrefilter, "environmentMap"), (int[1]){ 0 }, SHADER_UNIFORM_INT); - mat.maps[MATERIAL_MAP_PREFILTER].texture = GenTexturePrefilter(shdrPrefilter, cubemap, PREFILTERED_SIZE); - UnloadTexture(cubemap); - UnloadShader(shdrPrefilter); - //-------------------------------------------------------------------------------------------------------- - - // Generate BRDF (bidirectional reflectance distribution function) texture (using shader) - //-------------------------------------------------------------------------------------------------------- - Shader shdrBRDF = LoadShader(TextFormat("resources/shaders/glsl%i/brdf.vs", GLSL_VERSION), - TextFormat("resources/shaders/glsl%i/brdf.fs", GLSL_VERSION)); - - mat.maps[MATERIAL_MAP_BRDF].texture = GenTextureBRDF(shdrBRDF, BRDF_SIZE); - UnloadShader(shdrBRDF); - //-------------------------------------------------------------------------------------------------------- - - return mat; -} - -// Texture maps generation (PBR) -//------------------------------------------------------------------------------------------- -// Generate cubemap texture from HDR texture -static TextureCubemap GenTextureCubemap(Shader shader, Texture2D panorama, int size, int format) -{ - TextureCubemap cubemap = { 0 }; - - rlDisableBackfaceCulling(); // Disable backface culling to render inside the cube - - // STEP 1: Setup framebuffer - //------------------------------------------------------------------------------------------ - unsigned int rbo = rlLoadTextureDepth(size, size, true); - cubemap.id = rlLoadTextureCubemap(NULL, size, format); - - unsigned int fbo = rlLoadFramebuffer(size, size); - rlFramebufferAttach(fbo, rbo, RL_ATTACHMENT_DEPTH, RL_ATTACHMENT_RENDERBUFFER, 0); - rlFramebufferAttach(fbo, cubemap.id, RL_ATTACHMENT_COLOR_CHANNEL0, RL_ATTACHMENT_CUBEMAP_POSITIVE_X, 0); - - // Check if framebuffer is complete with attachments (valid) - if (rlFramebufferComplete(fbo)) TraceLog(LOG_INFO, "FBO: [ID %i] Framebuffer object created successfully", fbo); - //------------------------------------------------------------------------------------------ - - // STEP 2: Draw to framebuffer - //------------------------------------------------------------------------------------------ - // NOTE: Shader is used to convert HDR equirectangular environment map to cubemap equivalent (6 faces) - rlEnableShader(shader.id); - - // Define projection matrix and send it to shader - Matrix matFboProjection = MatrixPerspective(90.0*DEG2RAD, 1.0, RL_CULL_DISTANCE_NEAR, RL_CULL_DISTANCE_FAR); - rlSetUniformMatrix(shader.locs[SHADER_LOC_MATRIX_PROJECTION], matFboProjection); - - // Define view matrix for every side of the cubemap - Matrix fboViews[6] = { - MatrixLookAt((Vector3){ 0.0f, 0.0f, 0.0f }, (Vector3){ 1.0f, 0.0f, 0.0f }, (Vector3){ 0.0f, -1.0f, 0.0f }), - MatrixLookAt((Vector3){ 0.0f, 0.0f, 0.0f }, (Vector3){ -1.0f, 0.0f, 0.0f }, (Vector3){ 0.0f, -1.0f, 0.0f }), - MatrixLookAt((Vector3){ 0.0f, 0.0f, 0.0f }, (Vector3){ 0.0f, 1.0f, 0.0f }, (Vector3){ 0.0f, 0.0f, 1.0f }), - MatrixLookAt((Vector3){ 0.0f, 0.0f, 0.0f }, (Vector3){ 0.0f, -1.0f, 0.0f }, (Vector3){ 0.0f, 0.0f, -1.0f }), - MatrixLookAt((Vector3){ 0.0f, 0.0f, 0.0f }, (Vector3){ 0.0f, 0.0f, 1.0f }, (Vector3){ 0.0f, -1.0f, 0.0f }), - MatrixLookAt((Vector3){ 0.0f, 0.0f, 0.0f }, (Vector3){ 0.0f, 0.0f, -1.0f }, (Vector3){ 0.0f, -1.0f, 0.0f }) - }; - - rlViewport(0, 0, size, size); // Set viewport to current fbo dimensions - - // Activate and enable texture for drawing to cubemap faces - rlActiveTextureSlot(0); - rlEnableTexture(panorama.id); - - for (int i = 0; i < 6; i++) - { - // Set the view matrix for the current cube face - rlSetUniformMatrix(shader.locs[SHADER_LOC_MATRIX_VIEW], fboViews[i]); - - // Select the current cubemap face attachment for the fbo - // WARNING: This function by default enables->attach->disables fbo!!! - rlFramebufferAttach(fbo, cubemap.id, RL_ATTACHMENT_COLOR_CHANNEL0, RL_ATTACHMENT_CUBEMAP_POSITIVE_X + i, 0); - rlEnableFramebuffer(fbo); - - // Load and draw a cube, it uses the current enabled texture - rlClearScreenBuffers(); - rlLoadDrawCube(); - - // ALTERNATIVE: Try to use internal batch system to draw the cube instead of rlLoadDrawCube - // for some reason this method does not work, maybe due to cube triangles definition? normals pointing out? - // TODO: Investigate this issue... - //rlSetTexture(panorama.id); // WARNING: It must be called after enabling current framebuffer if using internal batch system! - //rlClearScreenBuffers(); - //DrawCubeV(Vector3Zero(), Vector3One(), WHITE); - //rlDrawRenderBatchActive(); - } - //------------------------------------------------------------------------------------------ - - // STEP 3: Unload framebuffer and reset state - //------------------------------------------------------------------------------------------ - rlDisableShader(); // Unbind shader - rlDisableTexture(); // Unbind texture - rlDisableFramebuffer(); // Unbind framebuffer - rlUnloadFramebuffer(fbo); // Unload framebuffer (and automatically attached depth texture/renderbuffer) - - // Reset viewport dimensions to default - rlViewport(0, 0, rlGetFramebufferWidth(), rlGetFramebufferHeight()); - rlEnableBackfaceCulling(); - //------------------------------------------------------------------------------------------ - - cubemap.width = size; - cubemap.height = size; - cubemap.mipmaps = 1; - cubemap.format = PIXELFORMAT_UNCOMPRESSED_R32G32B32; - - return cubemap; -} - -// Generate irradiance texture using cubemap data -static TextureCubemap GenTextureIrradiance(Shader shader, TextureCubemap cubemap, int size) -{ - TextureCubemap irradiance = { 0 }; - - rlDisableBackfaceCulling(); // Disable backface culling to render inside the cube - - // STEP 1: Setup framebuffer - //------------------------------------------------------------------------------------------ - unsigned int rbo = rlLoadTextureDepth(size, size, true); - irradiance.id = rlLoadTextureCubemap(NULL, size, PIXELFORMAT_UNCOMPRESSED_R32G32B32); - - unsigned int fbo = rlLoadFramebuffer(size, size); - rlFramebufferAttach(fbo, rbo, RL_ATTACHMENT_DEPTH, RL_ATTACHMENT_RENDERBUFFER, 0); - rlFramebufferAttach(fbo, cubemap.id, RL_ATTACHMENT_COLOR_CHANNEL0, RL_ATTACHMENT_CUBEMAP_POSITIVE_X, 0); - //------------------------------------------------------------------------------------------ - - // STEP 2: Draw to framebuffer - //------------------------------------------------------------------------------------------ - // NOTE: Shader is used to solve diffuse integral by convolution to create an irradiance cubemap - rlEnableShader(shader.id); - - // Define projection matrix and send it to shader - Matrix matFboProjection = MatrixPerspective(90.0*DEG2RAD, 1.0, RL_CULL_DISTANCE_NEAR, RL_CULL_DISTANCE_FAR); - rlSetUniformMatrix(shader.locs[SHADER_LOC_MATRIX_PROJECTION], matFboProjection); - - // Define view matrix for every side of the cubemap - Matrix fboViews[6] = { - MatrixLookAt((Vector3){ 0.0f, 0.0f, 0.0f }, (Vector3){ 1.0f, 0.0f, 0.0f }, (Vector3){ 0.0f, -1.0f, 0.0f }), - MatrixLookAt((Vector3){ 0.0f, 0.0f, 0.0f }, (Vector3){ -1.0f, 0.0f, 0.0f }, (Vector3){ 0.0f, -1.0f, 0.0f }), - MatrixLookAt((Vector3){ 0.0f, 0.0f, 0.0f }, (Vector3){ 0.0f, 1.0f, 0.0f }, (Vector3){ 0.0f, 0.0f, 1.0f }), - MatrixLookAt((Vector3){ 0.0f, 0.0f, 0.0f }, (Vector3){ 0.0f, -1.0f, 0.0f }, (Vector3){ 0.0f, 0.0f, -1.0f }), - MatrixLookAt((Vector3){ 0.0f, 0.0f, 0.0f }, (Vector3){ 0.0f, 0.0f, 1.0f }, (Vector3){ 0.0f, -1.0f, 0.0f }), - MatrixLookAt((Vector3){ 0.0f, 0.0f, 0.0f }, (Vector3){ 0.0f, 0.0f, -1.0f }, (Vector3){ 0.0f, -1.0f, 0.0f }) - }; - - rlActiveTextureSlot(0); - rlEnableTextureCubemap(cubemap.id); - - rlViewport(0, 0, size, size); // Set viewport to current fbo dimensions - - for (int i = 0; i < 6; i++) - { - rlSetUniformMatrix(shader.locs[SHADER_LOC_MATRIX_VIEW], fboViews[i]); - rlFramebufferAttach(fbo, irradiance.id, RL_ATTACHMENT_COLOR_CHANNEL0, RL_ATTACHMENT_CUBEMAP_POSITIVE_X + i, 0); - - rlEnableFramebuffer(fbo); - rlClearScreenBuffers(); - rlLoadDrawCube(); - } - //------------------------------------------------------------------------------------------ - - // STEP 3: Unload framebuffer and reset state - //------------------------------------------------------------------------------------------ - rlDisableShader(); // Unbind shader - rlDisableTexture(); // Unbind texture - rlDisableFramebuffer(); // Unbind framebuffer - rlUnloadFramebuffer(fbo); // Unload framebuffer (and automatically attached depth texture/renderbuffer) - - // Reset viewport dimensions to default - rlViewport(0, 0, rlGetFramebufferWidth(), rlGetFramebufferHeight()); - rlEnableBackfaceCulling(); - //------------------------------------------------------------------------------------------ - - irradiance.width = size; - irradiance.height = size; - irradiance.mipmaps = 1; - irradiance.format = PIXELFORMAT_UNCOMPRESSED_R32G32B32; - - return irradiance; -} - -// Generate prefilter texture using cubemap data -static TextureCubemap GenTexturePrefilter(Shader shader, TextureCubemap cubemap, int size) -{ - TextureCubemap prefilter = { 0 }; - - rlDisableBackfaceCulling(); // Disable backface culling to render inside the cube - - // STEP 1: Setup framebuffer - //------------------------------------------------------------------------------------------ - unsigned int rbo = rlLoadTextureDepth(size, size, true); - prefilter.id = rlLoadTextureCubemap(NULL, size, PIXELFORMAT_UNCOMPRESSED_R32G32B32); - rlTextureParameters(prefilter.id, RL_TEXTURE_MIN_FILTER, RL_TEXTURE_FILTER_MIP_LINEAR); - - unsigned int fbo = rlLoadFramebuffer(size, size); - rlFramebufferAttach(fbo, rbo, RL_ATTACHMENT_DEPTH, RL_ATTACHMENT_RENDERBUFFER, 0); - rlFramebufferAttach(fbo, cubemap.id, RL_ATTACHMENT_COLOR_CHANNEL0, RL_ATTACHMENT_CUBEMAP_POSITIVE_X, 0); - //------------------------------------------------------------------------------------------ - - // Generate mipmaps for the prefiltered HDR texture - //glGenerateMipmap(GL_TEXTURE_CUBE_MAP); // TODO! - - // STEP 2: Draw to framebuffer - //------------------------------------------------------------------------------------------ - // NOTE: Shader is used to prefilter HDR and store data into mipmap levels - - // Define projection matrix and send it to shader - Matrix fboProjection = MatrixPerspective(90.0*DEG2RAD, 1.0, RL_CULL_DISTANCE_NEAR, RL_CULL_DISTANCE_FAR); - rlEnableShader(shader.id); - rlSetUniformMatrix(shader.locs[SHADER_LOC_MATRIX_PROJECTION], fboProjection); - - // Define view matrix for every side of the cubemap - Matrix fboViews[6] = { - MatrixLookAt((Vector3){ 0.0f, 0.0f, 0.0f }, (Vector3){ 1.0f, 0.0f, 0.0f }, (Vector3){ 0.0f, -1.0f, 0.0f }), - MatrixLookAt((Vector3){ 0.0f, 0.0f, 0.0f }, (Vector3){ -1.0f, 0.0f, 0.0f }, (Vector3){ 0.0f, -1.0f, 0.0f }), - MatrixLookAt((Vector3){ 0.0f, 0.0f, 0.0f }, (Vector3){ 0.0f, 1.0f, 0.0f }, (Vector3){ 0.0f, 0.0f, 1.0f }), - MatrixLookAt((Vector3){ 0.0f, 0.0f, 0.0f }, (Vector3){ 0.0f, -1.0f, 0.0f }, (Vector3){ 0.0f, 0.0f, -1.0f }), - MatrixLookAt((Vector3){ 0.0f, 0.0f, 0.0f }, (Vector3){ 0.0f, 0.0f, 1.0f }, (Vector3){ 0.0f, -1.0f, 0.0f }), - MatrixLookAt((Vector3){ 0.0f, 0.0f, 0.0f }, (Vector3){ 0.0f, 0.0f, -1.0f }, (Vector3){ 0.0f, -1.0f, 0.0f }) - }; - - rlActiveTextureSlot(0); - rlEnableTextureCubemap(cubemap.id); - - // TODO: Locations should be taken out of this function... too shader dependant... - int roughnessLoc = rlGetLocationUniform(shader.id, "roughness"); - - rlEnableFramebuffer(fbo); - - #define MAX_MIPMAP_LEVELS 5 // Max number of prefilter texture mipmaps - - for (int mip = 0; mip < MAX_MIPMAP_LEVELS; mip++) - { - // Resize framebuffer according to mip-level size. - unsigned int mipWidth = size*(int)powf(0.5f, (float)mip); - unsigned int mipHeight = size*(int)powf(0.5f, (float)mip); - - rlViewport(0, 0, mipWidth, mipHeight); - - //glBindRenderbuffer(GL_RENDERBUFFER, rbo); - //glRenderbufferStorage(GL_RENDERBUFFER, GL_DEPTH_COMPONENT24, mipWidth, mipHeight); - - float roughness = (float)mip/(float)(MAX_MIPMAP_LEVELS - 1); - rlSetUniform(roughnessLoc, &roughness, SHADER_UNIFORM_FLOAT, 1); - - for (int i = 0; i < 6; i++) - { - rlSetUniformMatrix(shader.locs[SHADER_LOC_MATRIX_VIEW], fboViews[i]); - rlFramebufferAttach(fbo, prefilter.id, RL_ATTACHMENT_COLOR_CHANNEL0, RL_ATTACHMENT_CUBEMAP_POSITIVE_X + i, mip); - - rlClearScreenBuffers(); - rlLoadDrawCube(); - } - } - //------------------------------------------------------------------------------------------ - - // STEP 3: Unload framebuffer and reset state - //------------------------------------------------------------------------------------------ - rlDisableShader(); // Unbind shader - rlDisableTexture(); // Unbind texture - rlDisableFramebuffer(); // Unbind framebuffer - rlUnloadFramebuffer(fbo); // Unload framebuffer (and automatically attached depth texture/renderbuffer) - - // Reset viewport dimensions to default - rlViewport(0, 0, rlGetFramebufferWidth(), rlGetFramebufferHeight()); - rlEnableBackfaceCulling(); - //------------------------------------------------------------------------------------------ - - prefilter.width = size; - prefilter.height = size; - prefilter.mipmaps = MAX_MIPMAP_LEVELS; - prefilter.format = PIXELFORMAT_UNCOMPRESSED_R32G32B32; - - return prefilter; -} - -// Generate BRDF texture using cubemap data -// TODO: Review implementation: https://github.com/HectorMF/BRDFGenerator -static Texture2D GenTextureBRDF(Shader shader, int size) -{ - Texture2D brdf = { 0 }; - - // STEP 1: Setup framebuffer - //------------------------------------------------------------------------------------------ - unsigned int rbo = rlLoadTextureDepth(size, size, true); - brdf.id = rlLoadTexture(NULL, size, size, PIXELFORMAT_UNCOMPRESSED_R32G32B32, 1); - - unsigned int fbo = rlLoadFramebuffer(size, size); - rlFramebufferAttach(fbo, rbo, RL_ATTACHMENT_DEPTH, RL_ATTACHMENT_RENDERBUFFER, 0); - rlFramebufferAttach(fbo, brdf.id, RL_ATTACHMENT_COLOR_CHANNEL0, RL_ATTACHMENT_TEXTURE2D, 0); - //------------------------------------------------------------------------------------------ - - // STEP 2: Draw to framebuffer - //------------------------------------------------------------------------------------------ - // NOTE: Render BRDF LUT into a quad using FBO - rlEnableShader(shader.id); - - rlViewport(0, 0, size, size); - - rlEnableFramebuffer(fbo); - rlClearScreenBuffers(); - - rlLoadDrawQuad(); - //------------------------------------------------------------------------------------------ - - // STEP 3: Unload framebuffer and reset state - //------------------------------------------------------------------------------------------ - rlDisableShader(); // Unbind shader - rlDisableTexture(); // Unbind texture - rlDisableFramebuffer(); // Unbind framebuffer - rlUnloadFramebuffer(fbo); // Unload framebuffer (and automatically attached depth texture/renderbuffer) - - // Reset viewport dimensions to default - rlViewport(0, 0, rlGetFramebufferWidth(), rlGetFramebufferHeight()); - //------------------------------------------------------------------------------------------ - - brdf.width = size; - brdf.height = size; - brdf.mipmaps = 1; - brdf.format = PIXELFORMAT_UNCOMPRESSED_R32G32B32; - - return brdf; -} diff --git a/examples/models/models_material_pbr.png b/examples/models/models_material_pbr.png deleted file mode 100644 index 86ba01b0f..000000000 Binary files a/examples/models/models_material_pbr.png and /dev/null differ diff --git a/examples/models/models_mesh_picking.c b/examples/models/models_mesh_picking.c index 0ac70907b..f48683e4a 100644 --- a/examples/models/models_mesh_picking.c +++ b/examples/models/models_mesh_picking.c @@ -31,16 +31,16 @@ int main(void) camera.target = (Vector3){ 0.0f, 8.0f, 0.0f }; // Camera looking at point camera.up = (Vector3){ 0.0f, 1.6f, 0.0f }; // Camera up vector (rotation towards target) camera.fovy = 45.0f; // Camera field-of-view Y - camera.projection = CAMERA_PERSPECTIVE; // Camera mode type + camera.projection = CAMERA_PERSPECTIVE; // Camera mode type Ray ray = { 0 }; // Picking ray - Model tower = LoadModel("resources/models/turret.obj"); // Load OBJ model - Texture2D texture = LoadTexture("resources/models/turret_diffuse.png"); // Load model texture - tower.materials[0].maps[MATERIAL_MAP_DIFFUSE].texture = texture; // Set model diffuse texture + Model tower = LoadModel("resources/models/obj/turret.obj"); // Load OBJ model + Texture2D texture = LoadTexture("resources/models/obj/turret_diffuse.png"); // Load model texture + tower.materials[0].maps[MATERIAL_MAP_DIFFUSE].texture = texture; // Set model diffuse texture - Vector3 towerPos = { 0.0f, 0.0f, 0.0f }; // Set model position - BoundingBox towerBBox = GetMeshBoundingBox(tower.meshes[0]); // Get mesh bounding box + Vector3 towerPos = { 0.0f, 0.0f, 0.0f }; // Set model position + BoundingBox towerBBox = GetMeshBoundingBox(tower.meshes[0]); // Get mesh bounding box // Ground quad Vector3 g0 = (Vector3){ -50.0f, 0.0f, -50.0f }; diff --git a/examples/models/models_skybox.c b/examples/models/models_skybox.c index 168d61f61..dd202617e 100644 --- a/examples/models/models_skybox.c +++ b/examples/models/models_skybox.c @@ -10,8 +10,9 @@ ********************************************************************************************/ #include "raylib.h" + #include "rlgl.h" -#include "raymath.h" +#include "raymath.h" // Required for: MatrixPerspective(), MatrixLookAt() #if defined(PLATFORM_DESKTOP) #define GLSL_VERSION 330 diff --git a/examples/models/models_yaw_pitch_roll.c b/examples/models/models_yaw_pitch_roll.c index 70fe84777..19d5edc74 100644 --- a/examples/models/models_yaw_pitch_roll.c +++ b/examples/models/models_yaw_pitch_roll.c @@ -7,12 +7,13 @@ * * Example contributed by Berni (@Berni8k) and reviewed by Ramon Santamaria (@raysan5) * -* Copyright (c) 2017 Berni (@Berni8k) and Ramon Santamaria (@raysan5) +* Copyright (c) 2017-2021 Berni (@Berni8k) and Ramon Santamaria (@raysan5) * ********************************************************************************************/ #include "raylib.h" -#include "raymath.h" + +#include "raymath.h" // Required for: MatrixRotateXYZ() int main(void) { @@ -33,7 +34,7 @@ int main(void) // Model loading // NOTE: Diffuse map loaded automatically - Model model = LoadModel("resources/plane/plane.gltf"); + Model model = LoadModel("resources/models/gltf/plane/plane.gltf"); float pitch = 0.0f; float roll = 0.0f; @@ -78,7 +79,6 @@ int main(void) model.transform = MatrixRotateXYZ((Vector3){ DEG2RAD*pitch, DEG2RAD*yaw, DEG2RAD*roll }); //---------------------------------------------------------------------------------- - // Draw //---------------------------------------------------------------------------------- BeginDrawing(); diff --git a/examples/models/resources/LICENSE.md b/examples/models/resources/LICENSE.md index 6483ae849..c47ac186d 100644 --- a/examples/models/resources/LICENSE.md +++ b/examples/models/resources/LICENSE.md @@ -1,20 +1,23 @@ | resource | author | licence | notes | | :------------------- | :---------: | :------ | :---- | -| models/castle.obj,
models/castle_diffuse.png | [Alberto Cano](https://www.artstation.com/albertocano) | [CC-BY-NC](https://creativecommons.org/licenses/by-nc/4.0/legalcode) | - | -| models/bridge.obj,
models/bridge_diffuse.png | [Alberto Cano](https://www.artstation.com/albertocano) | [CC-BY-NC](https://creativecommons.org/licenses/by-nc/4.0/legalcode) | - | -| models/house.obj,
models/house_diffuse.png | [Alberto Cano](https://www.artstation.com/albertocano) | [CC-BY-NC](https://creativecommons.org/licenses/by-nc/4.0/legalcode) | - | -| models/market.obj,
models/market_diffuse.png | [Alberto Cano](https://www.artstation.com/albertocano) | [CC-BY-NC](https://creativecommons.org/licenses/by-nc/4.0/legalcode) | - | -| models/turret.obj,
models/turret_diffuse.png | [Alberto Cano](https://www.artstation.com/albertocano) | [CC-BY-NC](https://creativecommons.org/licenses/by-nc/4.0/legalcode) | - | -| models/well.obj,
models/well_diffuse.png | [Alberto Cano](https://www.artstation.com/albertocano) | [CC-BY-NC](https://creativecommons.org/licenses/by-nc/4.0/legalcode) | - | -| models/cube.obj,
models/cube_diffuse.png | [@raysan5](https://github.com/raysan5) | [CC0](https://creativecommons.org/publicdomain/zero/1.0/) | - | -| models/vertex_colored_object.iqm | ❔ | ❔ | - | +| models/obj/castle.obj,
models/castle_diffuse.png | [Alberto Cano](https://www.artstation.com/albertocano) | [CC-BY-NC](https://creativecommons.org/licenses/by-nc/4.0/legalcode) | - | +| models/obj/bridge.obj,
models/bridge_diffuse.png | [Alberto Cano](https://www.artstation.com/albertocano) | [CC-BY-NC](https://creativecommons.org/licenses/by-nc/4.0/legalcode) | - | +| models/obj/house.obj,
models/house_diffuse.png | [Alberto Cano](https://www.artstation.com/albertocano) | [CC-BY-NC](https://creativecommons.org/licenses/by-nc/4.0/legalcode) | - | +| models/obj/market.obj,
models/market_diffuse.png | [Alberto Cano](https://www.artstation.com/albertocano) | [CC-BY-NC](https://creativecommons.org/licenses/by-nc/4.0/legalcode) | - | +| models/obj/turret.obj,
models/turret_diffuse.png | [Alberto Cano](https://www.artstation.com/albertocano) | [CC-BY-NC](https://creativecommons.org/licenses/by-nc/4.0/legalcode) | - | +| models/obj/well.obj,
models/well_diffuse.png | [Alberto Cano](https://www.artstation.com/albertocano) | [CC-BY-NC](https://creativecommons.org/licenses/by-nc/4.0/legalcode) | - | +| models/obj/cube.obj,
models/cube_diffuse.png | [@raysan5](https://github.com/raysan5) | [CC0](https://creativecommons.org/publicdomain/zero/1.0/) | - | +| models/iqm/guy.iqm,
models/iqm/guyanim.iqm,
models/iqm/guytex.png,
models/iqm/guy.blend | [@culacant](https://github.com/culacant) | [CC0](https://creativecommons.org/publicdomain/zero/1.0/) | - | +| models/iqm/vertex_colored_object.iqm | ❔ | ❔ | - | +| models/gltf/plane/plane.gltf,
models/gltf/plane/plane.bin,
models/gltf/plane/plane_diffuse.png | [GiaHanLam](https://sketchfab.com/GiaHanLam) | [CC-BY](https://creativecommons.org/licenses/by/4.0/) | Used by: [`models_yaw_pitch_roll.c`](https://github.com/raysan5/raylib/blob/master/examples/models/models_yaw_pitch_roll.c) +| models/gltf/... | _various_ | Check [LICENSE](https://github.com/raysan5/raylib/blob/master/examples/models/resources/models/gltf/LICENSE) | - | +| models/vox/chr_knight.vox | ❔ | ❔ | - | +| models/vox/chr_sword.vox | ❔ | ❔ | - | +| models/vox/monu9.vox | ❔ | ❔ | - | | billboard.png | [@emegeme](https://github.com/emegeme) | [CC0](https://creativecommons.org/publicdomain/zero/1.0/) | - | | cubicmap.png | [@raysan5](https://github.com/raysan5) | [CC0](https://creativecommons.org/publicdomain/zero/1.0/) | - | | cubicmap_atlas.png | [@emegeme](https://github.com/emegeme) | [CC0](https://creativecommons.org/publicdomain/zero/1.0/) | - | | heightmap.png | [@raysan5](https://github.com/raysan5) | [CC0](https://creativecommons.org/publicdomain/zero/1.0/) | - | | dresden_square_1k.hdr | [HDRIHaven](https://hdrihaven.com/hdri/?h=dresden_square) | [CC0](https://hdrihaven.com/p/license.php) | - | | dresden_square_2k.hdr | [HDRIHaven](https://hdrihaven.com/hdri/?h=dresden_square) | [CC0](https://hdrihaven.com/p/license.php) | - | -| skybox.png | ❔ | ❔ | - | -| **guy/...** | [@culacant](https://github.com/culacant) | [CC0](https://creativecommons.org/publicdomain/zero/1.0/) | -| **plane/...** | [GiaHanLam](https://sketchfab.com/GiaHanLam) | [CC-BY](https://creativecommons.org/licenses/by/4.0/) | Used by: [`models_yaw_pitch_roll.c`](https://github.com/raysan5/raylib/blob/master/examples/models/models_yaw_pitch_roll.c) -| **gltf/...** | _various_ | [LICENSE](https://github.com/raysan5/raylib/blob/master/examples/models/resources/gltf/LICENSE) | - | +| skybox.png | ❔ | ❔ | - | \ No newline at end of file diff --git a/examples/models/resources/gltf/AnimatedMorphCube.glb b/examples/models/resources/models/gltf/AnimatedMorphCube.glb similarity index 100% rename from examples/models/resources/gltf/AnimatedMorphCube.glb rename to examples/models/resources/models/gltf/AnimatedMorphCube.glb diff --git a/examples/models/resources/gltf/AnimatedTriangle.gltf b/examples/models/resources/models/gltf/AnimatedTriangle.gltf similarity index 100% rename from examples/models/resources/gltf/AnimatedTriangle.gltf rename to examples/models/resources/models/gltf/AnimatedTriangle.gltf diff --git a/examples/models/resources/gltf/BoxAnimated.glb b/examples/models/resources/models/gltf/BoxAnimated.glb similarity index 100% rename from examples/models/resources/gltf/BoxAnimated.glb rename to examples/models/resources/models/gltf/BoxAnimated.glb diff --git a/examples/models/resources/gltf/GearboxAssy.glb b/examples/models/resources/models/gltf/GearboxAssy.glb similarity index 100% rename from examples/models/resources/gltf/GearboxAssy.glb rename to examples/models/resources/models/gltf/GearboxAssy.glb diff --git a/examples/models/resources/gltf/LICENSE b/examples/models/resources/models/gltf/LICENSE similarity index 100% rename from examples/models/resources/gltf/LICENSE rename to examples/models/resources/models/gltf/LICENSE diff --git a/examples/models/resources/gltf/girl.glb b/examples/models/resources/models/gltf/girl.glb similarity index 100% rename from examples/models/resources/gltf/girl.glb rename to examples/models/resources/models/gltf/girl.glb diff --git a/examples/models/resources/plane/LICENSE b/examples/models/resources/models/gltf/plane/LICENSE similarity index 100% rename from examples/models/resources/plane/LICENSE rename to examples/models/resources/models/gltf/plane/LICENSE diff --git a/examples/models/resources/plane/plane.bin b/examples/models/resources/models/gltf/plane/plane.bin similarity index 100% rename from examples/models/resources/plane/plane.bin rename to examples/models/resources/models/gltf/plane/plane.bin diff --git a/examples/models/resources/plane/plane.gltf b/examples/models/resources/models/gltf/plane/plane.gltf similarity index 100% rename from examples/models/resources/plane/plane.gltf rename to examples/models/resources/models/gltf/plane/plane.gltf diff --git a/examples/models/resources/plane/plane_diffuse.png b/examples/models/resources/models/gltf/plane/plane_diffuse.png similarity index 100% rename from examples/models/resources/plane/plane_diffuse.png rename to examples/models/resources/models/gltf/plane/plane_diffuse.png diff --git a/examples/models/resources/gltf/raylib_32x32.glb b/examples/models/resources/models/gltf/raylib_32x32.glb similarity index 100% rename from examples/models/resources/gltf/raylib_32x32.glb rename to examples/models/resources/models/gltf/raylib_32x32.glb diff --git a/examples/models/resources/gltf/rigged_figure.glb b/examples/models/resources/models/gltf/rigged_figure.glb similarity index 100% rename from examples/models/resources/gltf/rigged_figure.glb rename to examples/models/resources/models/gltf/rigged_figure.glb diff --git a/examples/models/resources/gltf/vertex_colored_object.glb b/examples/models/resources/models/gltf/vertex_colored_object.glb similarity index 100% rename from examples/models/resources/gltf/vertex_colored_object.glb rename to examples/models/resources/models/gltf/vertex_colored_object.glb diff --git a/examples/models/resources/guy/guy.blend b/examples/models/resources/models/iqm/guy.blend similarity index 100% rename from examples/models/resources/guy/guy.blend rename to examples/models/resources/models/iqm/guy.blend diff --git a/examples/models/resources/guy/guy.iqm b/examples/models/resources/models/iqm/guy.iqm similarity index 100% rename from examples/models/resources/guy/guy.iqm rename to examples/models/resources/models/iqm/guy.iqm diff --git a/examples/models/resources/guy/guyanim.iqm b/examples/models/resources/models/iqm/guyanim.iqm similarity index 100% rename from examples/models/resources/guy/guyanim.iqm rename to examples/models/resources/models/iqm/guyanim.iqm diff --git a/examples/models/resources/guy/guytex.png b/examples/models/resources/models/iqm/guytex.png similarity index 100% rename from examples/models/resources/guy/guytex.png rename to examples/models/resources/models/iqm/guytex.png diff --git a/examples/models/resources/models/vertex_colored_object.iqm b/examples/models/resources/models/iqm/vertex_colored_object.iqm similarity index 100% rename from examples/models/resources/models/vertex_colored_object.iqm rename to examples/models/resources/models/iqm/vertex_colored_object.iqm diff --git a/examples/models/resources/models/bridge.obj b/examples/models/resources/models/obj/bridge.obj similarity index 100% rename from examples/models/resources/models/bridge.obj rename to examples/models/resources/models/obj/bridge.obj diff --git a/examples/models/resources/models/bridge_diffuse.png b/examples/models/resources/models/obj/bridge_diffuse.png similarity index 100% rename from examples/models/resources/models/bridge_diffuse.png rename to examples/models/resources/models/obj/bridge_diffuse.png diff --git a/examples/models/resources/models/castle.obj b/examples/models/resources/models/obj/castle.obj similarity index 100% rename from examples/models/resources/models/castle.obj rename to examples/models/resources/models/obj/castle.obj diff --git a/examples/models/resources/models/castle_diffuse.png b/examples/models/resources/models/obj/castle_diffuse.png similarity index 100% rename from examples/models/resources/models/castle_diffuse.png rename to examples/models/resources/models/obj/castle_diffuse.png diff --git a/examples/models/resources/models/cube.obj b/examples/models/resources/models/obj/cube.obj similarity index 100% rename from examples/models/resources/models/cube.obj rename to examples/models/resources/models/obj/cube.obj diff --git a/examples/models/resources/models/cube_diffuse.png b/examples/models/resources/models/obj/cube_diffuse.png similarity index 100% rename from examples/models/resources/models/cube_diffuse.png rename to examples/models/resources/models/obj/cube_diffuse.png diff --git a/examples/models/resources/models/house.obj b/examples/models/resources/models/obj/house.obj similarity index 100% rename from examples/models/resources/models/house.obj rename to examples/models/resources/models/obj/house.obj diff --git a/examples/models/resources/models/house_diffuse.png b/examples/models/resources/models/obj/house_diffuse.png similarity index 100% rename from examples/models/resources/models/house_diffuse.png rename to examples/models/resources/models/obj/house_diffuse.png diff --git a/examples/models/resources/models/market.obj b/examples/models/resources/models/obj/market.obj similarity index 100% rename from examples/models/resources/models/market.obj rename to examples/models/resources/models/obj/market.obj diff --git a/examples/models/resources/models/market_diffuse.png b/examples/models/resources/models/obj/market_diffuse.png similarity index 100% rename from examples/models/resources/models/market_diffuse.png rename to examples/models/resources/models/obj/market_diffuse.png diff --git a/examples/models/resources/models/turret.obj b/examples/models/resources/models/obj/turret.obj similarity index 100% rename from examples/models/resources/models/turret.obj rename to examples/models/resources/models/obj/turret.obj diff --git a/examples/models/resources/models/turret_diffuse.png b/examples/models/resources/models/obj/turret_diffuse.png similarity index 100% rename from examples/models/resources/models/turret_diffuse.png rename to examples/models/resources/models/obj/turret_diffuse.png diff --git a/examples/models/resources/models/well.obj b/examples/models/resources/models/obj/well.obj similarity index 100% rename from examples/models/resources/models/well.obj rename to examples/models/resources/models/obj/well.obj diff --git a/examples/models/resources/models/well_diffuse.png b/examples/models/resources/models/obj/well_diffuse.png similarity index 100% rename from examples/models/resources/models/well_diffuse.png rename to examples/models/resources/models/obj/well_diffuse.png diff --git a/examples/models/resources/models/vox/LICENSE b/examples/models/resources/models/vox/LICENSE new file mode 100644 index 000000000..afb6608df --- /dev/null +++ b/examples/models/resources/models/vox/LICENSE @@ -0,0 +1,9 @@ +The following models are provided by the official github repo of voxel-model format by MagikaVoxel developer @ephtracy + +GitHub official repo: https://github.com/ephtracy/voxel-model + + - chr_knight.vox - https://github.com/ephtracy/voxel-model/blob/master/vox/character/chr_knight.vox + - chr_sword.vox - https://github.com/ephtracy/voxel-model/blob/master/vox/character/chr_sword.vox + - monu9.vox - https://github.com/ephtracy/voxel-model/blob/master/vox/monument/monu9.vox + +Worth mentioning there is no license specified for the models yet: https://github.com/ephtracy/voxel-model/issues/22 diff --git a/examples/models/resources/vox/chr_knight.vox b/examples/models/resources/models/vox/chr_knight.vox similarity index 100% rename from examples/models/resources/vox/chr_knight.vox rename to examples/models/resources/models/vox/chr_knight.vox diff --git a/examples/models/resources/vox/chr_sword.vox b/examples/models/resources/models/vox/chr_sword.vox similarity index 100% rename from examples/models/resources/vox/chr_sword.vox rename to examples/models/resources/models/vox/chr_sword.vox diff --git a/examples/models/resources/vox/monu9.vox b/examples/models/resources/models/vox/monu9.vox similarity index 100% rename from examples/models/resources/vox/monu9.vox rename to examples/models/resources/models/vox/monu9.vox diff --git a/examples/models/resources/pbr/trooper.obj b/examples/models/resources/pbr/trooper.obj deleted file mode 100644 index 8342149b4..000000000 --- a/examples/models/resources/pbr/trooper.obj +++ /dev/null @@ -1,18312 +0,0 @@ -# 3ds Max Wavefront OBJ Exporter v0.97b - (c)2007 guruware -# File Created: 26.04.2017 15:31:30 - -# -# object asdf -# - -v 0.000000 0.622922 0.713143 -v 0.000000 0.729854 0.627920 -v 0.000000 0.786583 0.636084 -v 0.000000 1.045946 0.570983 -v 0.000000 1.031233 0.544927 -v 0.000000 1.298009 0.514342 -v 0.000000 1.149254 0.538029 -v 0.000000 0.849328 0.558225 -v 0.000000 1.010490 0.528641 -v 0.000000 0.812325 0.602129 -v 0.000000 0.826873 0.574585 -v 0.000000 0.598750 0.710767 -v 0.000000 0.597623 0.667964 -v 0.084179 0.001562 0.626712 -v 0.000000 0.019620 0.500428 -v 0.169721 0.247278 0.492525 -v 0.000000 0.672880 0.668161 -v 0.151477 0.524575 0.652958 -v 0.131329 0.580069 0.661848 -v 0.114890 0.690102 0.619225 -v 0.089181 0.737425 0.627349 -v 0.053560 0.774530 0.633427 -v 0.049246 0.664280 0.667001 -v 0.186382 0.271672 0.580150 -v 0.311559 0.308788 0.348438 -v 0.378840 0.342231 0.214617 -v 0.183507 0.569029 0.586468 -v 0.209450 0.536520 0.545413 -v 0.198080 0.521331 0.574546 -v 0.267398 0.403558 0.503948 -v 0.256089 0.441711 0.491998 -v 0.285742 0.459568 0.464178 -v 0.306543 0.432843 0.469860 -v 0.165325 0.437671 0.633861 -v 0.247099 0.266255 0.460384 -v 0.411737 0.577071 0.405239 -v 0.391126 0.593584 0.404410 -v 0.423157 0.665068 0.384484 -v 0.450381 0.650863 0.385873 -v 0.455839 0.767810 0.367329 -v 0.485703 0.759030 0.374794 -v 0.459863 0.861942 0.364012 -v 0.441495 0.926861 0.380699 -v 0.464600 0.938004 0.400564 -v 0.486272 0.860457 0.381569 -v 0.412950 0.958719 0.400066 -v 0.433231 0.969863 0.422984 -v 0.384666 0.993819 0.454111 -v 0.373370 0.975991 0.421316 -v 0.268595 1.001637 0.475054 -v 0.282018 1.019372 0.506357 -v 0.140747 1.022724 0.522858 -v 0.142861 1.038352 0.553143 -v 0.382002 0.526733 0.421956 -v 0.358027 0.549805 0.420654 -v 0.283231 1.129298 0.472519 -v 0.407676 1.103160 0.412405 -v 0.142742 1.145411 0.517657 -v 0.475980 1.051464 0.381820 -v 0.436937 1.273467 0.377742 -v 0.509148 1.215159 0.336059 -v 0.304083 1.289812 0.450362 -v 0.143813 1.298790 0.497732 -v 0.110535 0.005395 0.599741 -v 0.144636 0.007877 0.604104 -v 0.293295 0.114109 0.276156 -v 0.260152 0.107644 0.254081 -v 0.197065 0.074325 0.379573 -v 0.227388 0.078784 0.397485 -v 0.237847 0.407594 0.541883 -v 0.231621 0.449564 0.516437 -v 0.160737 0.631269 0.602314 -v 0.444186 0.859839 0.371886 -v 0.434630 0.774993 0.376796 -v 0.411293 0.784139 0.372012 -v 0.403227 0.683902 0.400076 -v 0.388978 0.692028 0.396861 -v 0.369494 0.625951 0.429479 -v 0.358286 0.634576 0.424258 -v 0.342018 0.588721 0.453890 -v 0.331282 0.598798 0.447604 -v 0.289939 0.540541 0.495245 -v 0.281628 0.555508 0.488272 -v 0.309166 0.574121 0.466919 -v 0.261032 0.532563 0.515138 -v 0.258024 0.548682 0.507222 -v 0.202005 0.604862 0.553457 -v 0.205910 0.611484 0.542729 -v 0.223742 0.580733 0.532442 -v 0.221625 0.567634 0.541178 -v 0.178827 0.658546 0.552711 -v 0.173035 0.649694 0.573047 -v 0.125737 0.710486 0.599078 -v 0.141059 0.725485 0.557956 -v 0.098129 0.758054 0.597822 -v 0.108767 0.774398 0.560327 -v 0.061667 0.811050 0.570191 -v 0.057506 0.797335 0.602919 -v 0.154331 0.735616 0.545874 -v 0.190511 0.669141 0.544146 -v 0.120866 0.788022 0.551539 -v 0.065878 0.831958 0.557455 -v 0.439622 0.164783 0.046454 -v 0.403369 0.158676 0.035724 -v 0.454695 0.393247 0.013123 -v 0.498859 0.652598 0.320131 -v 0.478108 0.569070 0.289071 -v 0.518749 0.756759 0.340138 -v 0.527035 0.864085 0.351082 -v 0.550736 0.898387 0.334364 -v 0.544386 1.063371 0.335370 -v 0.545633 0.957967 0.341651 -v 0.533646 1.144131 0.326771 -v 0.422309 0.390526 0.007474 -v 0.113420 0.036204 0.643019 -v 0.134754 0.038875 0.643369 -v 0.135221 0.496068 0.699086 -v 0.113959 0.491977 0.697827 -v 0.100398 0.533113 0.702830 -v 0.121035 0.544521 0.704907 -v 0.076885 0.568295 0.706604 -v 0.093612 0.585987 0.709064 -v 0.041615 0.592176 0.710046 -v 0.050283 0.614831 0.711977 -v 0.432885 0.496493 0.293853 -v 0.400949 0.430460 0.265742 -v 0.096783 0.628475 0.664271 -v 0.052102 0.724350 0.626520 -v 0.138353 1.005327 0.509887 -v 0.263014 0.984554 0.465959 -v 0.365811 0.960416 0.411823 -v 0.394256 0.940253 0.388419 -v 0.410052 0.910315 0.375204 -v 0.419575 0.862522 0.366444 -v 0.380631 0.699220 0.401037 -v 0.349108 0.645921 0.427353 -v 0.323965 0.614964 0.450672 -v 0.278554 0.580382 0.490828 -v 0.300994 0.592376 0.471315 -v 0.254464 0.581187 0.510285 -v 0.215870 0.620817 0.535316 -v 0.557803 0.755616 0.295922 -v 0.546731 0.661016 0.259888 -v 0.531596 0.568778 0.214190 -v 0.503308 0.414580 0.027689 -v 0.523063 0.514749 0.176710 -v 0.512466 0.454397 0.115234 -v 0.566009 0.866797 0.314610 -v 0.335534 0.135443 0.125461 -v 0.370979 0.144594 0.147925 -v 0.133099 0.006781 0.635881 -v 0.115421 0.004489 0.635349 -v 0.107225 0.496826 0.657458 -v 0.098172 0.534477 0.662574 -v 0.078210 0.567301 0.665019 -v 0.042684 0.588742 0.667999 -v 0.138654 0.035774 0.498835 -v 0.177433 0.045028 0.511062 -v 0.232130 0.302131 0.350816 -v 0.394011 0.379101 0.048138 -v 0.329111 0.350753 0.175490 -v 0.508459 0.549937 -0.030999 -v 0.447154 0.538399 -0.038645 -v 0.521728 0.703778 -0.084572 -v 0.462647 0.692239 -0.093682 -v 0.541601 0.885421 -0.147515 -v 0.482814 0.888664 -0.158438 -v 0.406864 0.426440 0.035170 -v 0.422535 0.552211 -0.000368 -v 0.437495 0.703889 -0.055161 -v 0.460158 0.902545 -0.122292 -v 0.511690 0.951481 0.370465 -v 0.119837 0.785737 0.545637 -v 0.065203 0.830441 0.550092 -v 0.000000 0.847636 0.551977 -v 0.318931 0.563527 0.473299 -v 0.325282 0.505009 0.439221 -v 0.347680 0.478912 0.441207 -v 0.233389 0.598793 0.525692 -v 0.241209 0.558521 0.519476 -v 0.239296 0.542350 0.529470 -v 0.216445 0.488345 0.537085 -v 0.216352 0.460240 0.561593 -v 0.135568 0.289508 0.673741 -v 0.114279 0.286852 0.673442 -v 0.109956 0.290610 0.632618 -v 0.462678 0.445515 0.162601 -v 0.475992 0.504367 0.232227 -v 0.419538 0.415538 0.178370 -v 0.084165 0.004645 0.599219 -v 0.084146 0.352002 0.640173 -v 0.084146 0.482690 0.655758 -v 0.078088 0.516461 0.660174 -v 0.061269 0.547527 0.662898 -v 0.033034 0.565643 0.665350 -v 0.000000 0.572762 0.665373 -v 0.000000 0.569438 0.693598 -v 0.061279 0.544283 0.690643 -v 0.084179 0.479331 0.683015 -v 0.033134 0.562394 0.692770 -v 0.078102 0.513276 0.687002 -v 0.084179 0.347638 0.662632 -v 0.084179 0.353069 0.668186 -v 0.084179 0.340460 0.666706 -v -0.151477 0.524575 0.652958 -v -0.183508 0.569029 0.586468 -v -0.131329 0.580069 0.661848 -v -0.160737 0.631269 0.602314 -v -0.052102 0.724350 0.626520 -v -0.053560 0.774530 0.633427 -v -0.049247 0.664280 0.667001 -v -0.311559 0.308788 0.348438 -v -0.293295 0.114109 0.276156 -v -0.378840 0.342231 0.214617 -v -0.370979 0.144594 0.147925 -v -0.198080 0.521331 0.574546 -v -0.209450 0.536520 0.545413 -v -0.267398 0.403558 0.503948 -v -0.306543 0.432843 0.469860 -v -0.256090 0.441711 0.491998 -v -0.285742 0.459568 0.464178 -v -0.165325 0.437671 0.633861 -v -0.247100 0.266255 0.460384 -v -0.227388 0.078784 0.397485 -v -0.411737 0.577071 0.405239 -v -0.450381 0.650863 0.385873 -v -0.391126 0.593584 0.404410 -v -0.423157 0.665068 0.384484 -v -0.485704 0.759030 0.374794 -v -0.455839 0.767810 0.367329 -v -0.459864 0.861942 0.364012 -v -0.486272 0.860457 0.381569 -v -0.441495 0.926861 0.380699 -v -0.464600 0.938004 0.400564 -v -0.433231 0.969863 0.422984 -v -0.412950 0.958719 0.400066 -v -0.282018 1.019372 0.506357 -v -0.268596 1.001637 0.475054 -v -0.384666 0.993819 0.454111 -v -0.373370 0.975991 0.421316 -v -0.142861 1.038352 0.553143 -v -0.140747 1.022724 0.522858 -v -0.478108 0.569070 0.289071 -v -0.498859 0.652598 0.320131 -v -0.518749 0.756759 0.340138 -v -0.527035 0.864085 0.351082 -v -0.382002 0.526733 0.421956 -v -0.358028 0.549805 0.420654 -v -0.283231 1.129298 0.472519 -v -0.407676 1.103160 0.412405 -v -0.142742 1.145411 0.517657 -v -0.511691 0.951481 0.370465 -v -0.475980 1.051464 0.381820 -v -0.436937 1.273467 0.377742 -v -0.509148 1.215159 0.336059 -v -0.304083 1.289812 0.450362 -v -0.143813 1.298790 0.497732 -v -0.115421 0.004489 0.635349 -v -0.110535 0.005395 0.599741 -v -0.133099 0.006781 0.635881 -v -0.144636 0.007877 0.604104 -v -0.197066 0.074325 0.379573 -v -0.260152 0.107644 0.254081 -v -0.335534 0.135443 0.125461 -v -0.177433 0.045028 0.511062 -v -0.138654 0.035774 0.498835 -v -0.237847 0.407594 0.541883 -v -0.231621 0.449564 0.516437 -v -0.186382 0.271672 0.580150 -v -0.057506 0.797335 0.602919 -v -0.098130 0.758054 0.597822 -v -0.089181 0.737425 0.627349 -v -0.125738 0.710486 0.599078 -v -0.114890 0.690102 0.619225 -v -0.202006 0.604862 0.553457 -v -0.173035 0.649694 0.573047 -v -0.221625 0.567634 0.541178 -v -0.261032 0.532563 0.515138 -v -0.289939 0.540541 0.495245 -v -0.369494 0.625951 0.429479 -v -0.403228 0.683902 0.400076 -v -0.434630 0.774993 0.376796 -v -0.444187 0.859839 0.371886 -v -0.394256 0.940253 0.388419 -v -0.410053 0.910315 0.375204 -v -0.263014 0.984554 0.465959 -v -0.365811 0.960416 0.411823 -v -0.138353 1.005327 0.509887 -v -0.342018 0.588721 0.453890 -v -0.325282 0.505009 0.439221 -v -0.318931 0.563527 0.473299 -v -0.419575 0.862522 0.366444 -v -0.411293 0.784139 0.372012 -v -0.388978 0.692028 0.396861 -v -0.358286 0.634576 0.424258 -v -0.331282 0.598798 0.447604 -v -0.309166 0.574121 0.466919 -v -0.281628 0.555508 0.488272 -v -0.258024 0.548682 0.507222 -v -0.223743 0.580733 0.532442 -v -0.205910 0.611484 0.542729 -v -0.178827 0.658546 0.552711 -v -0.141059 0.725485 0.557956 -v -0.108768 0.774398 0.560327 -v -0.061667 0.811050 0.570191 -v -0.190511 0.669141 0.544146 -v -0.154331 0.735616 0.545874 -v -0.120866 0.788022 0.551539 -v -0.065878 0.831958 0.557455 -v -0.566009 0.866797 0.314610 -v -0.557803 0.755616 0.295922 -v -0.403369 0.158676 0.035724 -v -0.422309 0.390526 0.007474 -v -0.439623 0.164783 0.046454 -v -0.454695 0.393247 0.013123 -v -0.232130 0.302131 0.350816 -v -0.329112 0.350753 0.175490 -v -0.169721 0.247278 0.492525 -v -0.394011 0.379101 0.048138 -v -0.113420 0.036204 0.643019 -v -0.134754 0.038875 0.643369 -v -0.114279 0.286852 0.673442 -v -0.135568 0.289508 0.673741 -v -0.121036 0.544521 0.704907 -v -0.100398 0.533113 0.702830 -v -0.135221 0.496068 0.699086 -v -0.113959 0.491977 0.697827 -v -0.093612 0.585987 0.709064 -v -0.076885 0.568295 0.706604 -v -0.050284 0.614831 0.711977 -v -0.041615 0.592176 0.710046 -v -0.347680 0.478912 0.441207 -v -0.400949 0.430460 0.265742 -v -0.432885 0.496493 0.293853 -v -0.419538 0.415538 0.178370 -v -0.475992 0.504367 0.232227 -v -0.546731 0.661016 0.259888 -v -0.096783 0.628475 0.664271 -v -0.380631 0.699220 0.401037 -v -0.349108 0.645921 0.427353 -v -0.323965 0.614964 0.450672 -v -0.278554 0.580382 0.490828 -v -0.300994 0.592376 0.471315 -v -0.254465 0.581187 0.510285 -v -0.233389 0.598793 0.525692 -v -0.215870 0.620817 0.535316 -v -0.065203 0.830441 0.550092 -v -0.119838 0.785737 0.545637 -v -0.550737 0.898387 0.334364 -v -0.533646 1.144131 0.326771 -v -0.544386 1.063371 0.335370 -v -0.508459 0.549937 -0.030999 -v -0.503308 0.414580 0.027689 -v -0.042684 0.588742 0.667999 -v -0.078210 0.567301 0.665019 -v -0.098173 0.534477 0.662574 -v -0.107225 0.496826 0.657458 -v -0.109956 0.290610 0.632618 -v -0.084165 0.004645 0.599219 -v -0.216445 0.488345 0.537085 -v -0.216353 0.460240 0.561593 -v -0.239297 0.542350 0.529470 -v -0.241209 0.558521 0.519476 -v -0.447154 0.538399 -0.038645 -v -0.521729 0.703778 -0.084572 -v -0.462647 0.692239 -0.093682 -v -0.541601 0.885421 -0.147515 -v -0.482814 0.888664 -0.158438 -v -0.406864 0.426440 0.035170 -v -0.422535 0.552211 -0.000368 -v -0.437495 0.703889 -0.055161 -v -0.460158 0.902545 -0.122292 -v -0.512467 0.454397 0.115234 -v -0.462678 0.445515 0.162601 -v -0.545633 0.957967 0.341651 -v -0.523063 0.514749 0.176710 -v -0.531596 0.568778 0.214190 -v -0.084146 0.352002 0.640173 -v -0.084146 0.482690 0.655758 -v -0.078088 0.516461 0.660174 -v -0.061269 0.547527 0.662898 -v -0.033034 0.565643 0.665350 -v -0.033135 0.562394 0.692770 -v -0.078102 0.513276 0.687002 -v -0.084179 0.479331 0.683015 -v -0.061279 0.544283 0.690643 -v -0.084179 0.001562 0.626712 -v -0.084179 0.340460 0.666706 -v -0.084179 0.347638 0.662632 -v -0.084179 0.353069 0.668186 -v 0.472678 0.498641 0.495580 -v 0.455134 0.363052 0.415115 -v 0.495820 0.677998 0.552178 -v 0.508480 0.873301 0.617343 -v 0.418954 1.198035 0.746808 -v 0.226891 1.228586 0.775409 -v 0.000000 1.239688 0.783618 -v 0.507938 0.922792 0.636298 -v 0.498280 1.034902 0.679668 -v 0.463011 1.172257 0.732715 -v 0.526901 0.501753 0.487367 -v 0.503139 0.380206 0.406528 -v 0.557002 0.682570 0.546605 -v 0.557258 0.890442 0.616173 -v 0.440330 1.260757 0.756994 -v 0.237063 1.291562 0.788802 -v 0.000000 1.303438 0.798479 -v 0.551565 1.044372 0.673726 -v 0.519555 1.199309 0.727544 -v 0.578629 0.860338 0.602969 -v 0.453456 0.387867 0.009125 -v 0.514033 0.413414 0.006748 -v 0.538383 0.540815 -0.041315 -v 0.563228 0.698624 -0.097146 -v 0.578629 0.889788 -0.165692 -v 0.401001 1.304767 0.242620 -v 0.335796 1.309552 0.340186 -v 0.121185 1.312348 0.465164 -v 0.000000 1.311687 0.475739 -v 0.556904 0.925710 -0.185852 -v 0.553961 0.965324 -0.221030 -v 0.547991 1.040282 -0.269386 -v 0.533706 1.185715 -0.306229 -v 0.460050 0.394654 0.460563 -v 0.507153 0.403294 0.446925 -v 0.485571 1.116606 0.710684 -v 0.535991 1.130023 0.705238 -v 0.542214 1.125565 -0.298134 -v 0.531238 0.518132 0.263921 -v 0.559660 0.689425 0.272826 -v 0.578629 0.873101 0.278899 -v 0.557889 0.905482 0.281533 -v 0.551597 1.042421 0.292352 -v 0.539814 1.135696 0.301089 -v 0.518906 1.213291 0.458865 -v 0.454415 0.367847 0.251116 -v 0.507363 0.391047 0.248269 -v 0.521461 1.231712 -0.295396 -v 0.551526 1.040605 -0.117034 -v 0.544234 1.105747 -0.107437 -v 0.462265 1.300027 0.118026 -v 0.521878 1.217109 0.125659 -v 0.497751 1.296740 -0.210064 -v 0.439391 1.282255 0.525135 -v 0.237065 1.307015 0.594925 -v 0.000000 1.310493 0.630779 -v 0.457592 0.372454 0.442336 -v 0.504071 0.386924 0.431313 -v 0.509748 1.274034 -0.264504 -v 0.457855 0.385287 0.432539 -v 0.454862 0.383365 0.250964 -v 0.455654 0.378042 0.411305 -v 0.460638 1.175477 0.718840 -v 0.417039 1.199882 0.732548 -v 0.495675 0.682478 0.538474 -v 0.472448 0.503090 0.481931 -v 0.508165 0.878296 0.603678 -v 0.225296 1.229162 0.761042 -v 0.000000 1.239799 0.766477 -v 0.497310 1.039942 0.666166 -v 0.507395 0.928064 0.622852 -v 0.483919 1.120965 0.697020 -v 0.459794 0.402406 0.446365 -v 0.496029 0.399310 0.418886 -v 0.524404 0.529557 0.264265 -v 0.499299 0.405394 0.253953 -v 0.496064 0.396443 0.403086 -v 0.493704 1.202905 0.706920 -v 0.491877 1.222469 0.271484 -v 0.432994 1.237217 0.726031 -v 0.406565 1.283041 0.245873 -v 0.545063 0.682278 0.529418 -v 0.548665 0.682341 0.276431 -v 0.514660 0.503906 0.469355 -v 0.558168 0.861778 0.586649 -v 0.561787 0.869876 0.282683 -v 0.227789 1.268357 0.761172 -v 0.344000 1.286400 0.347772 -v 0.123232 1.293313 0.475684 -v 0.000000 1.276835 0.764351 -v 0.000000 1.291718 0.487812 -v 0.544438 0.891741 0.598331 -v 0.547857 0.901451 0.284972 -v 0.533694 1.044316 0.657349 -v 0.542418 1.041574 0.280644 -v 0.541725 0.940231 0.285367 -v 0.538157 0.929880 0.613045 -v 0.523336 1.130394 0.687416 -v 0.532723 1.127003 0.276865 -v 0.438828 1.287197 0.115931 -v 0.467218 1.288406 -0.109583 -v 0.497531 0.413366 0.432461 -v 0.417627 1.255699 0.520493 -v 0.573825 0.913823 -0.177280 -v 0.573955 0.895149 0.280376 -v 0.574051 0.881109 0.610551 -v 0.435214 1.306286 0.112960 -v 0.483731 1.303610 -0.110598 -v 0.460597 1.307026 -0.109257 -v 0.517924 1.185677 -0.279932 -v 0.527570 1.125716 -0.273598 -v 0.533346 1.041535 -0.244216 -v 0.538489 0.966120 -0.193288 -v 0.545807 0.923712 -0.158500 -v 0.559396 0.890681 -0.141981 -v 0.541768 0.699706 -0.078683 -v 0.522827 0.542499 -0.018996 -v 0.502348 0.421501 0.023788 -v 0.454188 0.400027 0.020421 -v 0.490524 1.185677 -0.282528 -v 0.493804 1.125716 -0.277663 -v 0.490550 1.185908 -0.305724 -v 0.493268 1.125560 -0.301537 -v 0.498703 1.041535 -0.252803 -v 0.498387 1.041395 -0.273887 -v 0.502402 0.966120 -0.203136 -v 0.501880 0.968429 -0.229786 -v 0.501328 0.910853 -0.182371 -v 0.501295 0.908990 -0.160008 -v 0.496870 0.699706 -0.084306 -v 0.496949 0.701241 -0.103441 -v 0.477537 0.542852 -0.032825 -v 0.477593 0.543778 -0.048374 -v 0.497124 1.262500 -0.242720 -v 0.509349 1.220731 -0.273629 -v 0.490045 1.279480 -0.202366 -v 0.485872 1.230418 -0.296101 -v 0.486558 1.220731 -0.276225 -v 0.478962 1.262500 -0.247944 -v 0.477158 1.274252 -0.264501 -v 0.467497 1.298303 -0.209259 -v 0.470183 1.284062 -0.202366 -v 0.516461 1.240163 -0.107947 -v 0.524456 1.220080 -0.155722 -v 0.534875 1.172294 -0.175250 -v 0.542633 1.125781 -0.154095 -v 0.534875 1.173073 -0.039573 -v 0.524411 1.219834 -0.058684 -v 0.540902 1.125098 -0.060120 -v 0.534875 1.111311 -0.107437 -v 0.534875 1.128549 -0.151332 -v 0.534875 1.237813 -0.108846 -v 0.534875 1.218874 -0.154189 -v 0.534875 1.128377 -0.063540 -v 0.534875 1.218432 -0.061318 -v 0.473441 1.302867 -0.010762 -v 0.452160 1.306359 -0.010008 -v 0.457523 1.287529 -0.009930 -v 0.529670 1.121062 -0.010335 -v 0.465373 1.263467 0.126383 -v 0.515162 1.259525 -0.190287 -v 0.507844 1.272916 -0.111218 -v 0.504476 1.273514 -0.025759 -v 0.526132 1.220835 -0.227576 -v 0.497090 1.270667 0.125320 -v 0.488818 1.255423 0.493359 -v 0.490346 1.237550 0.741165 -v 0.443790 1.189769 0.740555 -v 0.441632 1.192343 0.726499 -v 0.467913 1.224439 0.715903 -v 0.469037 1.237820 0.508236 -v 0.245138 1.311425 0.423078 -v 0.247845 1.290506 0.430310 -v 0.440425 1.267422 0.260726 -v 0.476756 1.273515 -0.009293 -v 0.482988 1.277877 -0.109284 -v 0.502717 1.204145 0.512725 -v 0.501746 1.227849 -0.007411 -v 0.505001 1.225114 -0.109696 -v -0.524404 0.529557 0.264265 -v -0.499299 0.405394 0.253953 -v -0.496064 0.396443 0.403086 -v -0.491877 1.222469 0.271484 -v -0.440425 1.267422 0.260726 -v -0.465373 1.263467 0.126383 -v -0.460050 0.394654 0.460563 -v -0.507153 0.403294 0.446925 -v -0.472678 0.498641 0.495580 -v -0.526901 0.501753 0.487367 -v -0.495820 0.677998 0.552178 -v -0.557002 0.682570 0.546605 -v -0.578629 0.860338 0.602969 -v -0.508480 0.873301 0.617343 -v -0.226891 1.228586 0.775409 -v -0.418954 1.198035 0.746808 -v -0.237063 1.291562 0.788802 -v -0.440330 1.260757 0.756994 -v -0.557258 0.890442 0.616173 -v -0.507938 0.922792 0.636298 -v -0.498280 1.034902 0.679668 -v -0.551565 1.044372 0.673726 -v -0.443790 1.189769 0.740555 -v -0.463011 1.172257 0.732715 -v -0.490346 1.237550 0.741165 -v -0.519555 1.199309 0.727544 -v -0.485571 1.116606 0.710684 -v -0.535991 1.130023 0.705238 -v -0.455134 0.363052 0.415115 -v -0.454415 0.367847 0.251116 -v -0.503139 0.380206 0.406528 -v -0.507363 0.391047 0.248269 -v -0.531238 0.518132 0.263921 -v -0.559660 0.689425 0.272826 -v -0.578629 0.873101 0.278899 -v -0.237065 1.307015 0.594925 -v -0.439391 1.282255 0.525135 -v -0.551597 1.042421 0.292352 -v -0.557889 0.905482 0.281533 -v -0.488818 1.255423 0.493359 -v -0.518906 1.213291 0.458865 -v -0.539814 1.135696 0.301089 -v -0.574051 0.881109 0.610551 -v -0.573955 0.895149 0.280376 -v -0.457592 0.372454 0.442336 -v -0.504071 0.386924 0.431313 -v -0.545063 0.682278 0.529418 -v -0.548665 0.682341 0.276431 -v -0.514660 0.503906 0.469355 -v -0.561787 0.869876 0.282683 -v -0.558168 0.861778 0.586649 -v -0.247845 1.290506 0.430310 -v -0.227789 1.268357 0.761172 -v -0.123232 1.293313 0.475684 -v -0.547857 0.901451 0.284972 -v -0.544438 0.891741 0.598331 -v -0.533694 1.044316 0.657349 -v -0.542418 1.041574 0.280644 -v -0.538157 0.929880 0.613045 -v -0.541725 0.940231 0.285367 -v -0.523336 1.130394 0.687416 -v -0.532723 1.127003 0.276865 -v -0.502717 1.204145 0.512725 -v -0.493704 1.202905 0.706920 -v -0.521878 1.217109 0.125659 -v -0.478962 1.262500 -0.247944 -v -0.477158 1.274252 -0.264501 -v -0.486558 1.220731 -0.276225 -v -0.485872 1.230418 -0.296101 -v -0.470183 1.284062 -0.202366 -v -0.467497 1.298303 -0.209259 -v -0.517924 1.185677 -0.279932 -v -0.527570 1.125716 -0.273598 -v -0.529670 1.121062 -0.010335 -v -0.533346 1.041535 -0.244216 -v -0.538489 0.966120 -0.193288 -v -0.559396 0.890681 -0.141981 -v -0.545807 0.923712 -0.158500 -v -0.541768 0.699706 -0.078683 -v -0.522827 0.542499 -0.018996 -v -0.502348 0.421501 0.023788 -v -0.514033 0.413414 0.006748 -v -0.453456 0.387867 0.009125 -v -0.538383 0.540815 -0.041315 -v -0.563228 0.698624 -0.097146 -v -0.578629 0.889788 -0.165692 -v -0.573825 0.913823 -0.177280 -v -0.556904 0.925710 -0.185852 -v -0.551526 1.040605 -0.117034 -v -0.245138 1.311425 0.423078 -v -0.335796 1.309552 0.340186 -v -0.401001 1.304767 0.242620 -v -0.462265 1.300027 0.118026 -v -0.121185 1.312348 0.465164 -v -0.497531 0.413366 0.432461 -v -0.454862 0.383365 0.250964 -v -0.455654 0.378042 0.411305 -v -0.457855 0.385287 0.432539 -v -0.441632 1.192343 0.726499 -v -0.460638 1.175477 0.718840 -v -0.495675 0.682478 0.538474 -v -0.472448 0.503090 0.481931 -v -0.508165 0.878296 0.603678 -v -0.417039 1.199882 0.732548 -v -0.225296 1.229162 0.761042 -v -0.497310 1.039942 0.666166 -v -0.507395 0.928064 0.622852 -v -0.483919 1.120965 0.697020 -v -0.454188 0.400027 0.020421 -v -0.459794 0.402406 0.446365 -v -0.496029 0.399310 0.418886 -v -0.467913 1.224439 0.715903 -v -0.432994 1.237217 0.726031 -v -0.469037 1.237820 0.508236 -v -0.496949 0.701241 -0.103441 -v -0.477593 0.543778 -0.048374 -v -0.553961 0.965324 -0.221030 -v -0.501880 0.968429 -0.229786 -v -0.547991 1.040282 -0.269386 -v -0.498387 1.041395 -0.273887 -v -0.542214 1.125565 -0.298134 -v -0.493268 1.125560 -0.301537 -v -0.501328 0.910853 -0.182371 -v -0.533706 1.185715 -0.306229 -v -0.490550 1.185908 -0.305724 -v -0.406565 1.283041 0.245873 -v -0.344000 1.286400 0.347772 -v -0.438828 1.287197 0.115931 -v -0.435214 1.306286 0.112960 -v -0.473441 1.302867 -0.010762 -v -0.452160 1.306359 -0.010008 -v -0.417627 1.255699 0.520493 -v -0.457523 1.287529 -0.009930 -v -0.467218 1.288406 -0.109583 -v -0.460597 1.307026 -0.109257 -v -0.493804 1.125716 -0.277663 -v -0.490524 1.185677 -0.282528 -v -0.498703 1.041535 -0.252803 -v -0.502402 0.966120 -0.203136 -v -0.501295 0.908990 -0.160008 -v -0.496870 0.699706 -0.084306 -v -0.477537 0.542852 -0.032825 -v -0.509349 1.220731 -0.273629 -v -0.497124 1.262500 -0.242720 -v -0.521461 1.231712 -0.295396 -v -0.509748 1.274034 -0.264504 -v -0.497751 1.296740 -0.210064 -v -0.490045 1.279480 -0.202366 -v -0.483731 1.303610 -0.110598 -v -0.501746 1.227849 -0.007411 -v -0.505001 1.225114 -0.109696 -v -0.524456 1.220080 -0.155722 -v -0.534875 1.172294 -0.175250 -v -0.526132 1.220835 -0.227576 -v -0.516461 1.240163 -0.107947 -v -0.507844 1.272916 -0.111218 -v -0.515162 1.259525 -0.190287 -v -0.524411 1.219834 -0.058684 -v -0.504476 1.273514 -0.025759 -v -0.497090 1.270667 0.125320 -v -0.544234 1.105747 -0.107437 -v -0.540902 1.125098 -0.060120 -v -0.542633 1.125781 -0.154095 -v -0.534875 1.111311 -0.107437 -v -0.534875 1.128549 -0.151332 -v -0.534875 1.237813 -0.108846 -v -0.534875 1.218874 -0.154189 -v -0.534875 1.173073 -0.039573 -v -0.534875 1.128377 -0.063540 -v -0.534875 1.218432 -0.061318 -v -0.476756 1.273515 -0.009293 -v -0.482988 1.277877 -0.109284 -v 0.000000 0.275313 -0.663685 -v 0.000000 0.401435 -0.692916 -v 0.000000 0.482880 -0.796468 -v 0.000000 0.553547 -0.851344 -v 0.000000 0.832426 -0.872868 -v 0.000000 0.893900 -0.856622 -v 0.000000 0.927457 -0.832146 -v 0.000000 1.131149 -0.815607 -v 0.000000 1.220981 -0.796999 -v 0.000000 1.284136 -0.768631 -v 0.000000 1.310340 -0.741967 -v 0.000000 0.743029 -0.878336 -v 0.000000 0.425120 -0.718862 -v 0.000000 1.403912 -0.699561 -v 0.000000 1.546331 -0.229220 -v 0.000000 1.540559 -0.376814 -v 0.000000 1.522687 -0.517027 -v 0.000000 1.479294 -0.625103 -v 0.000000 1.543301 -0.073087 -v 0.000000 1.533419 0.076839 -v 0.000000 1.516212 0.199947 -v 0.000000 1.346225 0.433512 -v 0.000000 1.420419 0.392736 -v 0.000000 1.484265 0.311647 -v 0.000000 1.296991 0.443624 -v 0.000000 1.027557 -0.826267 -v 0.000000 0.649856 -0.873601 -v 0.000000 0.378046 -0.678510 -v 0.000000 0.273635 -0.628613 -v 0.000000 1.296991 0.502498 -v 0.466306 0.386360 -0.136250 -v 0.454450 0.392430 -0.287917 -v 0.425859 0.398485 -0.412160 -v 0.368089 0.401568 -0.521642 -v 0.297157 0.403666 -0.596314 -v 0.205207 0.403504 -0.649593 -v 0.105847 0.402057 -0.682957 -v 0.480393 0.409301 -0.301310 -v 0.452650 0.418753 -0.431928 -v 0.390228 0.422728 -0.545312 -v 0.312241 0.424274 -0.619736 -v 0.215618 0.424967 -0.674609 -v 0.111099 0.424687 -0.705398 -v 0.639960 0.513162 -0.272312 -v 0.599536 0.452946 -0.199652 -v 0.565749 0.452970 -0.370140 -v 0.619839 0.518132 -0.424157 -v 0.571177 0.525431 -0.548174 -v 0.523320 0.460508 -0.502629 -v 0.494740 0.534493 -0.657377 -v 0.451475 0.468040 -0.610905 -v 0.395924 0.543049 -0.744076 -v 0.362309 0.473311 -0.693480 -v 0.123652 0.483032 -0.786924 -v 0.245744 0.479214 -0.754807 -v 0.265657 0.549179 -0.808178 -v 0.132838 0.553184 -0.842528 -v 0.661515 0.618840 -0.315200 -v 0.644798 0.622977 -0.442636 -v 0.595960 0.628675 -0.572599 -v 0.513801 0.635011 -0.677834 -v 0.409901 0.641868 -0.763748 -v 0.275951 0.645809 -0.830733 -v 0.136471 0.649791 -0.865248 -v 0.617504 0.863480 -0.269102 -v 0.648789 0.803643 -0.321878 -v 0.621909 0.816086 -0.447824 -v 0.582346 0.882561 -0.430587 -v 0.544359 0.883943 -0.558911 -v 0.574742 0.819434 -0.574193 -v 0.483138 0.885529 -0.663189 -v 0.504765 0.823740 -0.679602 -v 0.270124 0.894651 -0.811084 -v 0.274073 0.830747 -0.832120 -v 0.134353 0.831969 -0.865275 -v 0.126694 0.894325 -0.844375 -v 0.555684 0.924913 -0.215786 -v 0.542490 0.930013 -0.409367 -v 0.506223 0.929637 -0.540696 -v 0.453039 0.926990 -0.643237 -v 0.251092 0.934623 -0.761604 -v 0.131933 0.935714 -0.801735 -v 0.118270 0.928204 -0.817928 -v 0.541290 1.131051 -0.329770 -v 0.522547 1.221382 -0.333103 -v 0.527345 1.130042 -0.414468 -v 0.507335 1.220849 -0.419783 -v 0.466574 1.222041 -0.533019 -v 0.483032 1.131700 -0.538807 -v 0.401709 1.220497 -0.629408 -v 0.423966 1.131922 -0.637852 -v 0.499345 1.281729 -0.300617 -v 0.483534 1.282236 -0.412917 -v 0.440056 1.282233 -0.516511 -v 0.377487 1.282191 -0.611856 -v 0.305615 1.282151 -0.683800 -v 0.322480 1.219805 -0.699842 -v 0.218417 1.284231 -0.727081 -v 0.236803 1.222103 -0.751386 -v 0.135989 1.220931 -0.782210 -v 0.117495 1.283165 -0.757567 -v 0.445922 0.403746 -0.027623 -v 0.505883 0.408960 -0.050173 -v 0.468055 0.381464 -0.035311 -v 0.580665 0.890722 -0.197061 -v 0.138959 0.743105 -0.870690 -v 0.596701 0.725339 -0.578856 -v 0.516370 0.731493 -0.688300 -v 0.642316 0.719345 -0.447379 -v 0.661834 0.716038 -0.329195 -v 0.520064 0.454769 -0.062988 -v 0.548213 0.459164 -0.113006 -v 0.546190 0.422366 -0.110464 -v 0.592898 0.490111 -0.196279 -v 0.620879 0.540437 -0.260291 -v 0.638525 0.622410 -0.295973 -v 0.630203 0.789048 -0.299916 -v 0.608579 0.835674 -0.253307 -v 0.639084 0.716171 -0.308229 -v 0.579652 0.842662 -0.180699 -v 0.561758 0.716544 -0.140073 -v 0.443242 1.310225 -0.388568 -v 0.404913 1.310202 -0.498226 -v 0.349724 1.310198 -0.586795 -v 0.282673 1.309843 -0.654823 -v 0.198588 1.310222 -0.700834 -v 0.106783 1.310295 -0.731039 -v 0.385868 1.400122 -0.400909 -v 0.310421 1.467857 -0.390880 -v 0.266173 1.457967 -0.524738 -v 0.311280 1.398134 -0.549305 -v 0.103505 1.534730 -0.378049 -v 0.099605 1.515760 -0.515166 -v 0.098392 1.474770 -0.620740 -v 0.251767 1.392396 -0.618851 -v 0.196272 1.456735 -0.592215 -v 0.175834 1.395176 -0.666718 -v 0.098528 1.399139 -0.691758 -v 0.180286 1.497351 -0.508038 -v 0.205987 1.515010 -0.381370 -v 0.418065 1.396418 -0.086963 -v 0.401971 1.392277 0.064915 -v 0.338078 1.463460 0.067784 -v 0.344507 1.467198 -0.084766 -v 0.109455 1.537381 -0.075093 -v 0.108976 1.527873 0.075027 -v 0.225309 1.511005 0.071866 -v 0.230138 1.517579 -0.079762 -v 0.314399 1.385814 0.295828 -v 0.278741 1.440388 0.260842 -v 0.314098 1.453090 0.186838 -v 0.372752 1.383205 0.193041 -v 0.211867 1.461839 0.285578 -v 0.225744 1.402438 0.355029 -v 0.110084 1.478708 0.303265 -v 0.110939 1.417340 0.385419 -v 0.108071 1.511040 0.195934 -v 0.214860 1.493880 0.189970 -v 0.495293 1.130906 -0.311334 -v 0.486364 1.216647 -0.318528 -v 0.468907 1.289028 -0.251379 -v 0.473660 1.269780 -0.286016 -v 0.504737 0.925614 -0.191771 -v 0.507862 0.810263 -0.150418 -v 0.495591 0.714721 -0.119267 -v 0.491635 1.132654 -0.106675 -v 0.432580 1.329079 0.074886 -v 0.465204 1.286335 -0.088443 -v 0.450412 1.329108 -0.088832 -v 0.444194 1.291131 0.083885 -v 0.401969 1.292611 0.206764 -v 0.333440 1.292107 0.313494 -v 0.234143 1.294910 0.394789 -v 0.113326 1.296983 0.434097 -v 0.328881 1.326787 0.307695 -v 0.394160 1.326788 0.203723 -v 0.233009 1.336604 0.387698 -v 0.114571 1.344287 0.424379 -v 0.462744 1.311686 -0.259062 -v 0.109254 1.540182 -0.231520 -v 0.229079 1.519875 -0.231583 -v 0.343282 1.468938 -0.231173 -v 0.417230 1.398320 -0.239037 -v 0.471985 0.567307 -0.075478 -v 0.540053 0.567203 -0.095331 -v 0.136825 1.029733 -0.811013 -v 0.147588 1.027527 -0.794752 -v 0.249720 1.023759 -0.756375 -v 0.498972 1.029689 -0.542891 -v 0.441643 1.029899 -0.640491 -v 0.536198 1.028551 -0.419037 -v 0.547465 1.036499 -0.298053 -v 0.501330 1.041592 -0.279615 -v 0.258015 0.928087 -0.777295 -v 0.153096 1.129226 -0.801359 -v 0.162876 1.115404 -0.786713 -v 0.250912 1.115393 -0.756707 -v 0.455484 0.349625 -0.025968 -v 0.450950 0.357358 -0.135180 -v 0.438576 0.364976 -0.278590 -v 0.416686 0.370766 -0.404924 -v 0.359161 0.375531 -0.513272 -v 0.288606 0.376913 -0.584422 -v 0.201735 0.377912 -0.635053 -v 0.105106 0.378058 -0.667741 -v 0.278818 0.741071 -0.838910 -v 0.418408 0.737259 -0.769866 -v 0.566206 0.782571 -0.334788 -v 0.553921 0.735774 -0.319053 -v 0.527469 0.510938 -0.261160 -v 0.545175 0.507375 -0.277553 -v 0.569095 0.515103 -0.296617 -v 0.593006 0.554095 -0.321349 -v 0.605831 0.626748 -0.341959 -v 0.599099 0.764999 -0.356748 -v 0.585171 0.784938 -0.352159 -v 0.608177 0.717896 -0.357361 -v 0.529242 0.562382 -0.273853 -v 0.344794 1.128248 -0.717305 -v 0.367282 1.027340 -0.714399 -v 0.384778 0.927942 -0.710487 -v 0.402272 0.889632 -0.739208 -v 0.412484 0.828200 -0.759841 -v 0.365095 0.934093 -0.708841 -v 0.347186 1.025898 -0.709747 -v 0.255804 1.130180 -0.766157 -v 0.328548 1.115315 -0.714309 -v 0.401698 0.161159 0.035348 -v 0.377051 0.160724 0.006376 -v 0.368521 0.406688 0.091378 -v 0.343597 0.404088 0.094562 -v 0.413219 0.715576 0.027679 -v 0.436055 0.716322 0.023696 -v 0.382800 0.574088 0.054618 -v 0.404840 0.573925 0.050695 -v 0.331589 0.254574 0.135128 -v 0.303326 0.254948 0.136872 -v 0.320307 0.205128 0.145554 -v 0.292115 0.205551 0.145640 -v 0.432841 0.801786 0.021187 -v 0.455617 0.802996 0.018481 -v 0.337860 0.157653 0.114579 -v 0.311484 0.156788 0.114977 -v 0.295638 0.172621 0.137148 -v 0.324782 0.174236 0.135367 -v 0.415282 0.162208 0.019281 -v 0.349958 0.233448 -0.504833 -v 0.399038 0.215040 -0.405576 -v 0.285763 0.249069 -0.573785 -v 0.101710 0.271338 -0.652303 -v 0.421193 0.195600 -0.276785 -v 0.426462 0.177916 -0.130665 -v 0.198180 0.262088 -0.622766 -v 0.322960 0.231834 -0.482911 -v 0.365646 0.212881 -0.392210 -v 0.264730 0.247261 -0.545574 -v 0.094875 0.269410 -0.617867 -v 0.386129 0.193272 -0.273976 -v 0.391105 0.175399 -0.131456 -v 0.185617 0.260371 -0.590118 -v 0.480064 1.136059 0.081115 -v 0.487545 0.819099 0.080478 -v 0.432745 0.818974 0.083847 -v 0.467901 1.284465 0.089812 -v 0.445221 1.289194 0.217243 -v 0.375291 1.292107 0.352815 -v 0.263750 1.294910 0.452360 -v 0.127368 1.296983 0.489311 -v 0.500087 1.137085 0.083727 -v 0.507598 0.816962 0.082356 -v 0.378612 0.402151 -0.029888 -v 0.352383 0.438381 -0.235280 -v 0.352669 0.408344 -0.049001 -v 0.512539 0.970340 0.083013 -v 0.492501 0.970961 0.080783 -v 0.502190 0.964727 -0.102247 -v 0.363441 0.220628 0.091202 -v 0.555135 0.924435 -0.296496 -v 0.534707 0.472766 -0.108628 -v 0.385031 0.311832 -0.044641 -v 0.389544 0.345010 -0.250336 -v 0.374571 0.365985 -0.367508 -v 0.336980 0.385292 -0.460572 -v 0.282361 0.399908 -0.526535 -v 0.200756 0.413689 -0.577795 -v 0.104426 0.424403 -0.610495 -v 0.000000 0.426302 -0.622922 -v 0.000000 0.518012 -0.581708 -v 0.095767 0.514240 -0.569918 -v 0.181719 0.504288 -0.533168 -v 0.250913 0.491717 -0.481709 -v 0.303037 0.475351 -0.416525 -v 0.335127 0.460809 -0.336618 -v 0.000000 0.443393 -0.583372 -v 0.351251 0.330560 -0.061170 -v 0.353121 0.362843 -0.247197 -v 0.094819 0.437749 -0.574202 -v 0.180289 0.427513 -0.539896 -v 0.250278 0.414870 -0.491564 -v 0.303258 0.400518 -0.429420 -v 0.335573 0.384386 -0.350114 -v 0.308468 0.200412 0.127973 -v 0.366319 0.181806 0.035711 -v 0.368809 0.228761 0.029032 -v 0.314214 0.247332 0.123412 -v 0.307475 0.243242 0.115479 -v 0.360379 0.226428 0.028026 -v 0.303706 0.202899 0.120956 -v 0.356610 0.186085 0.033502 -v -0.466306 0.386360 -0.136250 -v -0.468055 0.381464 -0.035311 -v -0.450950 0.357358 -0.135180 -v -0.455484 0.349625 -0.025968 -v -0.425859 0.398485 -0.412160 -v -0.454450 0.392430 -0.287917 -v -0.416686 0.370766 -0.404924 -v -0.438576 0.364976 -0.278590 -v -0.368089 0.401568 -0.521642 -v -0.359161 0.375531 -0.513272 -v -0.297157 0.403666 -0.596314 -v -0.288606 0.376913 -0.584422 -v -0.105847 0.402057 -0.682957 -v -0.205207 0.403504 -0.649593 -v -0.105106 0.378058 -0.667741 -v -0.201735 0.377912 -0.635053 -v -0.480393 0.409301 -0.301310 -v -0.452650 0.418753 -0.431928 -v -0.390228 0.422728 -0.545312 -v -0.312241 0.424274 -0.619736 -v -0.215618 0.424967 -0.674609 -v -0.111099 0.424687 -0.705398 -v -0.599536 0.452946 -0.199652 -v -0.565749 0.452970 -0.370140 -v -0.639960 0.513162 -0.272312 -v -0.619839 0.518132 -0.424157 -v -0.523320 0.460508 -0.502629 -v -0.571177 0.525431 -0.548174 -v -0.451475 0.468040 -0.610905 -v -0.494740 0.534493 -0.657377 -v -0.362309 0.473311 -0.693480 -v -0.395924 0.543049 -0.744076 -v -0.245744 0.479214 -0.754807 -v -0.123652 0.483032 -0.786924 -v -0.265657 0.549179 -0.808178 -v -0.132838 0.553184 -0.842528 -v -0.661515 0.618840 -0.315200 -v -0.644798 0.622977 -0.442636 -v -0.595960 0.628675 -0.572599 -v -0.513801 0.635011 -0.677834 -v -0.409901 0.641868 -0.763748 -v -0.275951 0.645809 -0.830733 -v -0.136471 0.649791 -0.865248 -v -0.617504 0.863480 -0.269102 -v -0.648789 0.803643 -0.321878 -v -0.582346 0.882561 -0.430587 -v -0.621909 0.816086 -0.447824 -v -0.574742 0.819434 -0.574193 -v -0.544359 0.883943 -0.558911 -v -0.504765 0.823740 -0.679602 -v -0.483138 0.885529 -0.663189 -v -0.134353 0.831969 -0.865275 -v -0.126694 0.894325 -0.844375 -v -0.542490 0.930013 -0.409367 -v -0.506223 0.929637 -0.540696 -v -0.453039 0.926990 -0.643237 -v -0.384778 0.927942 -0.710487 -v -0.402272 0.889632 -0.739208 -v -0.258015 0.928087 -0.777295 -v -0.270124 0.894651 -0.811084 -v -0.118270 0.928204 -0.817928 -v -0.536198 1.028551 -0.419037 -v -0.547465 1.036499 -0.298053 -v -0.555135 0.924435 -0.296496 -v -0.555684 0.924913 -0.215786 -v -0.498972 1.029689 -0.542891 -v -0.441643 1.029899 -0.640491 -v -0.365095 0.934093 -0.708841 -v -0.251092 0.934623 -0.761604 -v -0.347186 1.025898 -0.709747 -v -0.249720 1.023759 -0.756375 -v -0.131933 0.935714 -0.801735 -v -0.147588 1.027527 -0.794752 -v -0.136825 1.029733 -0.811013 -v -0.541290 1.131051 -0.329770 -v -0.527345 1.130042 -0.414468 -v -0.522547 1.221382 -0.333103 -v -0.507335 1.220849 -0.419783 -v -0.483032 1.131700 -0.538807 -v -0.466574 1.222041 -0.533019 -v -0.423966 1.131922 -0.637852 -v -0.401709 1.220497 -0.629408 -v -0.499345 1.281729 -0.300617 -v -0.483534 1.282236 -0.412917 -v -0.440056 1.282233 -0.516511 -v -0.377487 1.282191 -0.611856 -v -0.322480 1.219805 -0.699842 -v -0.305615 1.282151 -0.683800 -v -0.236803 1.222103 -0.751386 -v -0.218417 1.284231 -0.727081 -v -0.135989 1.220931 -0.782210 -v -0.117495 1.283165 -0.757567 -v -0.462744 1.311686 -0.259062 -v -0.443242 1.310225 -0.388568 -v -0.404913 1.310202 -0.498226 -v -0.349724 1.310198 -0.586795 -v -0.282673 1.309843 -0.654823 -v -0.198588 1.310222 -0.700834 -v -0.106783 1.310295 -0.731039 -v -0.504737 0.925614 -0.191771 -v -0.501330 1.041592 -0.279615 -v -0.495293 1.130906 -0.311334 -v -0.486364 1.216647 -0.318528 -v -0.468907 1.289028 -0.251379 -v -0.473660 1.269780 -0.286016 -v -0.445922 0.403746 -0.027623 -v -0.505883 0.408960 -0.050173 -v -0.507862 0.810263 -0.150418 -v -0.579652 0.842662 -0.180699 -v -0.561758 0.716544 -0.140073 -v -0.495591 0.714721 -0.119267 -v -0.580665 0.890722 -0.197061 -v -0.138959 0.743105 -0.870690 -v -0.418408 0.737259 -0.769866 -v -0.278818 0.741071 -0.838910 -v -0.412484 0.828200 -0.759841 -v -0.274073 0.830747 -0.832120 -v -0.596701 0.725339 -0.578856 -v -0.516370 0.731493 -0.688300 -v -0.642316 0.719345 -0.447379 -v -0.661834 0.716038 -0.329195 -v -0.546190 0.422366 -0.110464 -v -0.520064 0.454769 -0.062988 -v -0.548213 0.459164 -0.113006 -v -0.620879 0.540437 -0.260291 -v -0.592898 0.490111 -0.196279 -v -0.638525 0.622410 -0.295973 -v -0.608579 0.835674 -0.253307 -v -0.630203 0.789048 -0.299916 -v -0.639084 0.716171 -0.308229 -v -0.553921 0.735774 -0.319053 -v -0.566206 0.782571 -0.334788 -v -0.534707 0.472766 -0.108628 -v -0.527469 0.510938 -0.261160 -v -0.545175 0.507375 -0.277553 -v -0.569095 0.515103 -0.296617 -v -0.593006 0.554095 -0.321349 -v -0.605831 0.626748 -0.341959 -v -0.585171 0.784938 -0.352159 -v -0.599099 0.764999 -0.356748 -v -0.608177 0.717896 -0.357361 -v -0.540053 0.567203 -0.095331 -v -0.471985 0.567307 -0.075478 -v -0.529242 0.562382 -0.273853 -v -0.385868 1.400122 -0.400909 -v -0.311280 1.398134 -0.549305 -v -0.251767 1.392396 -0.618851 -v -0.175834 1.395176 -0.666718 -v -0.098528 1.399139 -0.691758 -v -0.266173 1.457967 -0.524738 -v -0.310421 1.467857 -0.390880 -v -0.103505 1.534730 -0.378049 -v -0.099605 1.515760 -0.515166 -v -0.098392 1.474770 -0.620740 -v -0.196272 1.456735 -0.592215 -v -0.180286 1.497351 -0.508038 -v -0.205987 1.515010 -0.381370 -v -0.418065 1.396418 -0.086963 -v -0.344507 1.467198 -0.084766 -v -0.401971 1.392277 0.064915 -v -0.338078 1.463460 0.067784 -v -0.109455 1.537381 -0.075093 -v -0.108976 1.527873 0.075027 -v -0.230138 1.517579 -0.079762 -v -0.225309 1.511005 0.071866 -v -0.314399 1.385814 0.295828 -v -0.372752 1.383205 0.193041 -v -0.278741 1.440388 0.260842 -v -0.314098 1.453090 0.186838 -v -0.211867 1.461839 0.285578 -v -0.225744 1.402438 0.355029 -v -0.110939 1.417340 0.385419 -v -0.110084 1.478708 0.303265 -v -0.108071 1.511040 0.195934 -v -0.214860 1.493880 0.189970 -v -0.491635 1.132654 -0.106675 -v -0.465204 1.286335 -0.088443 -v -0.502190 0.964727 -0.102247 -v -0.444194 1.291131 0.083885 -v -0.480064 1.136059 0.081115 -v -0.432580 1.329079 0.074886 -v -0.450412 1.329108 -0.088832 -v -0.333440 1.292107 0.313494 -v -0.401969 1.292611 0.206764 -v -0.328881 1.326787 0.307695 -v -0.394160 1.326788 0.203723 -v -0.234143 1.294910 0.394789 -v -0.233009 1.336604 0.387698 -v -0.114571 1.344287 0.424379 -v -0.113326 1.296983 0.434097 -v -0.109254 1.540182 -0.231520 -v -0.229079 1.519875 -0.231583 -v -0.343282 1.468938 -0.231173 -v -0.417230 1.398320 -0.239037 -v -0.404840 0.573925 0.050695 -v -0.368521 0.406688 0.091378 -v -0.153096 1.129226 -0.801359 -v -0.250912 1.115393 -0.756707 -v -0.162876 1.115404 -0.786713 -v -0.328548 1.115315 -0.714309 -v -0.401698 0.161159 0.035348 -v -0.363441 0.220628 0.091202 -v -0.337860 0.157653 0.114579 -v -0.415282 0.162208 0.019281 -v -0.426462 0.177916 -0.130665 -v -0.421193 0.195600 -0.276785 -v -0.399038 0.215040 -0.405576 -v -0.349958 0.233448 -0.504833 -v -0.285763 0.249069 -0.573785 -v -0.101710 0.271338 -0.652303 -v -0.198180 0.262088 -0.622766 -v -0.436055 0.716322 0.023696 -v -0.344794 1.128248 -0.717305 -v -0.367282 1.027340 -0.714399 -v -0.255804 1.130180 -0.766157 -v -0.331589 0.254574 0.135128 -v -0.492501 0.970961 0.080783 -v -0.455617 0.802996 0.018481 -v -0.487545 0.819099 0.080478 -v -0.320307 0.205128 0.145554 -v -0.311484 0.156788 0.114977 -v -0.377051 0.160724 0.006376 -v -0.382800 0.574088 0.054618 -v -0.343597 0.404088 0.094562 -v -0.303326 0.254948 0.136872 -v -0.413219 0.715576 0.027679 -v -0.292115 0.205551 0.145640 -v -0.432841 0.801786 0.021187 -v -0.432745 0.818974 0.083847 -v -0.324782 0.174236 0.135367 -v -0.295638 0.172621 0.137148 -v -0.322960 0.231834 -0.482911 -v -0.365646 0.212881 -0.392210 -v -0.264730 0.247261 -0.545574 -v -0.094875 0.269410 -0.617867 -v -0.386129 0.193272 -0.273976 -v -0.391105 0.175399 -0.131456 -v -0.185617 0.260371 -0.590118 -v -0.445221 1.289194 0.217243 -v -0.467901 1.284465 0.089812 -v -0.375291 1.292107 0.352815 -v -0.263750 1.294910 0.452360 -v -0.127368 1.296983 0.489311 -v -0.512539 0.970340 0.083013 -v -0.500087 1.137085 0.083727 -v -0.366319 0.181806 0.035711 -v -0.368809 0.228761 0.029032 -v -0.374571 0.365985 -0.367508 -v -0.336980 0.385292 -0.460572 -v -0.282361 0.399908 -0.526535 -v -0.104426 0.424403 -0.610495 -v -0.389544 0.345010 -0.250336 -v -0.385031 0.311832 -0.044641 -v -0.200756 0.413689 -0.577795 -v -0.378612 0.402151 -0.029888 -v -0.352669 0.408344 -0.049001 -v -0.507598 0.816962 0.082356 -v -0.308468 0.200412 0.127973 -v -0.314214 0.247332 0.123412 -v -0.353121 0.362843 -0.247197 -v -0.352383 0.438381 -0.235280 -v -0.335573 0.384386 -0.350114 -v -0.335127 0.460809 -0.336618 -v -0.351251 0.330560 -0.061170 -v -0.094819 0.437749 -0.574202 -v -0.095767 0.514240 -0.569918 -v -0.180289 0.427513 -0.539896 -v -0.181719 0.504288 -0.533168 -v -0.250278 0.414870 -0.491564 -v -0.250913 0.491717 -0.481709 -v -0.303258 0.400518 -0.429420 -v -0.303037 0.475351 -0.416525 -v -0.307475 0.243242 0.115479 -v -0.360379 0.226428 0.028026 -v -0.303706 0.202899 0.120956 -v -0.356610 0.186085 0.033502 -v 0.045195 0.106111 0.726884 -v 0.000000 0.124316 0.731242 -v -0.045195 0.106111 0.726884 -v -0.063915 0.062158 0.716360 -v -0.045195 0.018206 0.705836 -v 0.000000 0.000000 0.701477 -v 0.045195 0.018206 0.705836 -v 0.063915 0.062158 0.716360 -v 0.039704 0.095512 0.747571 -v 0.000000 0.111505 0.751401 -v -0.039704 0.095512 0.747571 -v -0.056150 0.056899 0.738326 -v -0.039704 0.018286 0.729080 -v 0.000000 0.002292 0.725251 -v 0.039704 0.018286 0.729080 -v 0.056150 0.056899 0.738326 -v 0.024381 0.119402 0.730066 -v -0.024381 0.119402 0.730066 -v -0.058861 0.085869 0.722037 -v -0.058861 0.038447 0.710683 -v -0.024381 0.004915 0.702654 -v 0.024381 0.004915 0.702654 -v 0.058861 0.038447 0.710683 -v 0.058861 0.085869 0.722037 -v 0.021419 0.107188 0.750366 -v -0.021419 0.107188 0.750366 -v -0.051710 0.077729 0.743313 -v -0.051710 0.036068 0.733338 -v -0.021419 0.006610 0.726285 -v 0.021419 0.006610 0.726285 -v 0.051710 0.036068 0.733338 -v 0.051710 0.077729 0.743313 -v 0.000000 0.058196 0.733203 -v -0.037584 0.095022 0.740514 -v 0.000000 0.110160 0.744144 -v 0.037584 0.095022 0.740514 -v 0.053152 0.058473 0.731753 -v 0.037584 0.021924 0.722991 -v 0.000000 0.006786 0.719362 -v -0.037584 0.021924 0.722991 -v -0.053152 0.058473 0.731753 -v -0.058981 0.107430 0.632200 -v -0.064044 0.083671 0.626511 -v -0.058981 0.059912 0.620822 -v -0.045286 0.039630 0.615966 -v -0.024431 0.026312 0.612777 -v 0.000000 0.021387 0.611598 -v 0.024431 0.026312 0.612777 -v 0.045286 0.039630 0.615966 -v 0.058981 0.059912 0.620822 -v 0.064044 0.083671 0.626511 -v 0.058981 0.107430 0.632200 -v 0.045286 0.127712 0.637056 -v 0.024431 0.141031 0.640245 -v 0.000000 0.145955 0.641424 -v -0.024431 0.141031 0.640245 -v -0.045286 0.127712 0.637056 -v -0.015701 0.191440 0.662358 -v -0.029510 0.208600 0.659555 -v -0.047927 0.206062 0.647498 -v -0.052534 0.186364 0.638244 -v -0.038724 0.169204 0.641047 -v -0.020307 0.171742 0.653104 -v -0.027832 0.180575 0.695644 -v -0.041393 0.197977 0.692247 -v -0.059481 0.195683 0.679370 -v -0.064010 0.175987 0.669892 -v -0.050449 0.158585 0.673290 -v -0.032361 0.160879 0.686166 -v -0.016500 0.186147 0.678574 -v -0.021067 0.166450 0.669208 -v -0.039320 0.164034 0.656742 -v -0.053005 0.181315 0.653641 -v -0.048437 0.201012 0.663007 -v -0.030185 0.203428 0.675474 -v 0.062761 0.192783 0.661866 -v 0.048977 0.209954 0.658914 -v 0.030654 0.207413 0.646686 -v 0.026115 0.187701 0.637409 -v 0.039898 0.170530 0.640361 -v 0.058221 0.173071 0.652589 -v 0.050406 0.181970 0.694964 -v 0.036870 0.199368 0.691450 -v 0.018871 0.197059 0.678451 -v 0.014409 0.177351 0.668966 -v 0.027946 0.159954 0.672480 -v 0.045944 0.162263 0.685479 -v 0.061352 0.187275 0.678726 -v 0.056851 0.167565 0.669345 -v 0.038690 0.165140 0.656731 -v 0.025031 0.182424 0.653499 -v 0.029532 0.202134 0.662880 -v 0.047692 0.204559 0.675494 -v -0.072228 0.298449 0.698603 -v -0.072228 0.312687 0.653319 -v 0.080729 0.291987 0.704095 -v 0.080684 0.308771 0.651751 -v 0.061209 0.308457 0.651655 -v 0.061241 0.294422 0.697845 -v 0.060283 0.298627 0.698038 -v 0.060280 0.312685 0.653315 -v 0.080683 0.221337 0.651028 -v 0.080707 0.215851 0.672265 -v -0.072325 0.216169 0.672110 -v -0.072266 0.223066 0.647211 -v -0.063682 0.215894 0.672214 -v -0.063688 0.294407 0.697837 -v -0.063340 0.213876 0.679535 -v 0.080728 0.213876 0.679535 -v -0.063339 0.291987 0.704095 -v -0.072457 0.114034 0.635819 -v -0.072393 0.151119 0.651150 -v 0.080686 0.151134 0.651099 -v 0.080661 0.114068 0.635710 -v -0.072319 0.132879 0.676343 -v 0.080696 0.132879 0.676343 -v -0.072335 0.116302 0.671131 -v 0.080689 0.116302 0.671131 -v 0.022267 0.289779 0.700695 -v 0.020190 0.288298 0.705372 -v 0.009350 0.287210 0.708857 -v -0.001534 0.288308 0.705386 -v -0.003563 0.289779 0.700695 -v 0.022286 0.217834 0.678053 -v 0.020253 0.216353 0.682731 -v 0.009369 0.215265 0.686215 -v -0.001471 0.216363 0.682746 -v -0.003543 0.217834 0.678053 -v 0.009362 0.289776 0.700572 -v 0.009362 0.217862 0.677966 -v 0.078299 0.289779 0.700653 -v 0.075566 0.288303 0.705323 -v 0.059365 0.285897 0.713014 -v 0.042025 0.285897 0.713014 -v 0.025794 0.288314 0.705339 -v 0.023084 0.289779 0.700653 -v 0.078319 0.217827 0.678010 -v 0.075608 0.216351 0.682679 -v 0.059385 0.213945 0.690371 -v 0.042044 0.213945 0.690371 -v 0.025836 0.216363 0.682696 -v 0.023104 0.217827 0.678010 -v 0.050702 0.289857 0.700313 -v 0.050702 0.217906 0.677826 -v -0.004096 0.289777 0.700653 -v -0.007634 0.288299 0.705320 -v -0.023576 0.285895 0.713014 -v -0.040917 0.285895 0.713014 -v -0.056893 0.288314 0.705340 -v -0.060404 0.289777 0.700653 -v -0.004077 0.217820 0.678008 -v -0.007587 0.216343 0.682675 -v -0.023557 0.213938 0.690368 -v -0.040897 0.213938 0.690368 -v -0.056846 0.216357 0.682695 -v -0.060384 0.217820 0.678008 -v -0.032240 0.289838 0.700374 -v -0.032240 0.217884 0.677894 -v 0.080670 0.156545 0.641776 -v -0.072379 0.158415 0.640456 -v -0.003610 0.193106 0.675959 -v -0.008306 0.190821 0.683225 -v -0.044264 0.190821 0.683225 -v -0.048118 0.191864 0.679908 -v -0.003610 0.188319 0.674454 -v -0.008306 0.186035 0.681720 -v -0.044264 0.186035 0.681720 -v -0.048118 0.187078 0.678403 -v -0.048118 0.196367 0.665589 -v -0.003610 0.196367 0.665589 -v -0.048118 0.191580 0.664084 -v -0.003610 0.191580 0.664084 -v 0.070219 0.192991 0.676324 -v 0.065411 0.190820 0.683228 -v 0.029630 0.190820 0.683228 -v 0.025776 0.191864 0.679908 -v 0.070219 0.188205 0.674820 -v 0.065411 0.186034 0.681723 -v 0.029630 0.186034 0.681723 -v 0.025776 0.187078 0.678403 -v 0.025776 0.196367 0.665589 -v 0.070219 0.196367 0.665589 -v 0.025776 0.191580 0.664084 -v 0.070219 0.191580 0.664084 -v 0.073479 0.200727 0.682695 -v 0.068774 0.198767 0.688927 -v 0.030021 0.198767 0.688927 -v 0.026085 0.200727 0.682695 -v 0.073479 0.195940 0.681190 -v 0.068774 0.193981 0.687422 -v 0.030021 0.193981 0.687422 -v 0.026085 0.195940 0.681190 -v 0.026085 0.205229 0.668375 -v 0.073479 0.205229 0.668375 -v 0.026085 0.200443 0.666870 -v 0.073479 0.200443 0.666870 -v 0.070043 0.209345 0.685404 -v 0.065521 0.207384 0.691637 -v 0.030018 0.207384 0.691637 -v 0.026163 0.209345 0.685404 -v 0.070043 0.204558 0.683899 -v 0.065521 0.202598 0.690132 -v 0.030018 0.202598 0.690132 -v 0.026163 0.204558 0.683899 -v 0.026163 0.213847 0.671085 -v 0.070043 0.213847 0.671085 -v 0.026163 0.209061 0.669580 -v 0.070043 0.209061 0.669580 -v 0.013475 0.209399 0.685231 -v 0.008838 0.207365 0.691699 -v -0.044948 0.207365 0.691699 -v -0.068126 0.208904 0.686807 -v 0.013475 0.204613 0.683726 -v 0.008838 0.202579 0.690194 -v -0.044948 0.202579 0.690194 -v -0.068126 0.204117 0.685302 -v -0.069379 0.213847 0.671085 -v 0.013475 0.213847 0.671085 -v -0.069379 0.209061 0.669580 -v 0.013475 0.209061 0.669580 -v 0.003782 0.200633 0.682665 -v -0.000640 0.198669 0.688913 -v -0.044217 0.198669 0.688913 -v -0.047822 0.200633 0.682665 -v 0.003782 0.195847 0.681160 -v -0.000640 0.193882 0.687408 -v -0.044217 0.193882 0.687408 -v -0.047822 0.195847 0.681160 -v -0.047822 0.205136 0.668346 -v 0.003782 0.205136 0.668346 -v -0.047822 0.200349 0.666841 -v 0.003782 0.200349 0.666841 -v -0.071989 0.226043 0.675139 -v 0.080363 0.226036 0.675164 -v -0.050269 0.217877 0.701110 -v -0.053928 0.219802 0.694990 -v 0.080363 0.220942 0.691363 -v 0.006891 0.221067 0.690966 -v 0.012066 0.221067 0.690966 -v 0.071721 0.217877 0.701110 -v -0.006867 0.217877 0.701110 -v 0.025176 0.217877 0.701110 -v -0.071989 0.221257 0.673634 -v 0.080363 0.221249 0.673659 -v -0.050269 0.213091 0.699605 -v -0.053928 0.215015 0.693485 -v 0.080363 0.216155 0.689858 -v 0.006891 0.216281 0.689461 -v 0.012066 0.216281 0.689461 -v 0.071721 0.213091 0.699605 -v -0.006867 0.213091 0.699605 -v 0.025176 0.213091 0.699605 -v -0.064956 0.215367 0.692366 -v -0.064956 0.220153 0.693871 -v 0.009469 0.226039 0.675153 -v 0.009469 0.221253 0.673648 -v -0.071989 0.236253 0.678350 -v 0.080363 0.236245 0.678374 -v -0.050269 0.228086 0.704320 -v -0.053928 0.230011 0.698200 -v 0.080363 0.231151 0.694573 -v 0.006891 0.231276 0.694176 -v 0.012066 0.231276 0.694176 -v 0.071721 0.228086 0.704320 -v -0.006867 0.228086 0.704320 -v 0.025176 0.228086 0.704320 -v -0.071989 0.231466 0.676845 -v 0.080363 0.231459 0.676869 -v -0.050269 0.223300 0.702815 -v -0.053928 0.225225 0.696695 -v 0.080363 0.226365 0.693068 -v 0.006891 0.226490 0.692671 -v 0.012066 0.226490 0.692671 -v 0.071721 0.223300 0.702815 -v -0.006867 0.223300 0.702815 -v 0.025176 0.223300 0.702815 -v -0.064956 0.225576 0.695576 -v -0.064956 0.230363 0.697081 -v 0.009469 0.236248 0.678363 -v 0.009469 0.231462 0.676858 -v -0.046746 0.238940 0.707881 -v -0.049545 0.240909 0.701620 -v 0.070235 0.240909 0.701620 -v 0.065421 0.238940 0.707881 -v -0.008537 0.238940 0.707881 -v -0.004021 0.240909 0.701620 -v 0.026278 0.238940 0.707881 -v 0.022269 0.240909 0.701620 -v -0.046746 0.234154 0.706376 -v -0.049545 0.236122 0.700115 -v 0.070235 0.236122 0.700115 -v 0.065421 0.234154 0.706376 -v -0.008537 0.234154 0.706376 -v -0.004021 0.236122 0.700115 -v 0.026278 0.234154 0.706376 -v 0.022269 0.236122 0.700115 -v -0.049545 0.248509 0.677449 -v -0.049545 0.243723 0.675944 -v -0.004021 0.248509 0.677449 -v -0.004021 0.243723 0.675944 -v 0.022269 0.248509 0.677449 -v 0.070235 0.248509 0.677449 -v 0.022269 0.243723 0.675944 -v 0.070235 0.243723 0.675944 -v -0.071989 0.257502 0.685031 -v 0.080363 0.257495 0.685055 -v -0.050269 0.249336 0.711002 -v -0.053928 0.251261 0.704882 -v 0.080363 0.252401 0.701255 -v 0.006891 0.252526 0.700857 -v 0.012066 0.252526 0.700857 -v 0.071721 0.249336 0.711002 -v -0.006867 0.249336 0.711002 -v 0.025176 0.249336 0.711002 -v -0.071989 0.252716 0.683526 -v 0.080363 0.252708 0.683550 -v -0.050269 0.244550 0.709497 -v -0.053928 0.246474 0.703376 -v 0.080363 0.247615 0.699750 -v 0.006891 0.247740 0.699353 -v 0.012066 0.247740 0.699353 -v 0.071721 0.244550 0.709497 -v -0.006867 0.244550 0.709497 -v 0.025176 0.244550 0.709497 -v -0.064956 0.246826 0.702258 -v -0.064956 0.251613 0.703763 -v 0.009469 0.257498 0.685045 -v 0.009469 0.252712 0.683540 -v -0.046746 0.260085 0.714530 -v -0.049545 0.262054 0.708269 -v 0.070235 0.262054 0.708269 -v 0.065421 0.260085 0.714530 -v -0.008537 0.260085 0.714530 -v -0.004021 0.262054 0.708269 -v 0.026278 0.260085 0.714530 -v 0.022269 0.262054 0.708269 -v -0.046746 0.255299 0.713025 -v -0.049545 0.257267 0.706764 -v 0.070235 0.257267 0.706764 -v 0.065421 0.255299 0.713025 -v -0.008537 0.255299 0.713025 -v -0.004021 0.257267 0.706764 -v 0.026278 0.255299 0.713025 -v 0.022269 0.257267 0.706764 -v -0.049545 0.269654 0.684097 -v -0.049545 0.264868 0.682592 -v -0.004021 0.269654 0.684097 -v -0.004021 0.264868 0.682593 -v 0.022269 0.269654 0.684097 -v 0.070235 0.269654 0.684097 -v 0.022269 0.264868 0.682593 -v 0.070235 0.264868 0.682593 -v -0.071989 0.278810 0.691731 -v 0.080363 0.278803 0.691755 -v -0.050269 0.270644 0.717702 -v -0.053928 0.272569 0.711581 -v 0.080363 0.273709 0.707955 -v 0.006891 0.273834 0.707557 -v 0.012066 0.273834 0.707557 -v 0.071721 0.270644 0.717702 -v -0.006867 0.270644 0.717702 -v 0.025176 0.270644 0.717702 -v -0.071989 0.274024 0.690226 -v 0.080363 0.274017 0.690250 -v -0.050269 0.265858 0.716197 -v -0.053928 0.267782 0.710076 -v 0.080363 0.268923 0.706450 -v 0.006891 0.269048 0.706052 -v 0.012066 0.269048 0.706052 -v 0.071721 0.265858 0.716197 -v -0.006867 0.265858 0.716197 -v 0.025176 0.265858 0.716197 -v -0.064956 0.268134 0.708958 -v -0.064956 0.272921 0.710463 -v 0.009469 0.278806 0.691744 -v 0.009469 0.274020 0.690240 -v -0.062901 0.287276 0.701624 -v 0.080363 0.287266 0.701656 -v -0.044962 0.281179 0.721014 -v -0.056345 0.283658 0.713129 -v 0.080363 0.284244 0.711267 -v 0.006891 0.284369 0.710870 -v 0.012066 0.284369 0.710870 -v 0.071721 0.281179 0.721014 -v -0.006867 0.281179 0.721014 -v 0.025176 0.281179 0.721014 -v -0.062901 0.282490 0.700119 -v 0.080363 0.282479 0.700151 -v -0.044962 0.276393 0.719509 -v -0.056345 0.278872 0.711624 -v 0.080363 0.279457 0.709762 -v 0.006891 0.279582 0.709365 -v 0.012066 0.279582 0.709365 -v 0.071721 0.276393 0.719509 -v -0.006867 0.276393 0.719509 -v 0.025176 0.276393 0.719509 -v 0.009469 0.287271 0.701640 -v 0.009469 0.282485 0.700135 -v -0.009010 0.218793 0.692928 -v -0.012796 0.218793 0.692928 -v -0.012796 0.216921 0.698879 -v -0.009010 0.216921 0.698879 -v -0.009010 0.280736 0.712405 -v -0.012796 0.280736 0.712405 -v -0.012796 0.278865 0.718356 -v -0.009010 0.278865 0.718356 -v -0.041859 0.218793 0.692928 -v -0.045645 0.218793 0.692928 -v -0.045645 0.216921 0.698879 -v -0.041859 0.216921 0.698879 -v -0.041729 0.280736 0.712405 -v -0.045515 0.280736 0.712405 -v -0.045515 0.278865 0.718356 -v -0.041729 0.278865 0.718356 -v 0.030300 0.218793 0.692928 -v 0.026514 0.218793 0.692928 -v 0.026514 0.216921 0.698879 -v 0.030300 0.216921 0.698879 -v 0.030300 0.280736 0.712405 -v 0.026514 0.280736 0.712405 -v 0.026514 0.278865 0.718356 -v 0.030300 0.278865 0.718356 -v -0.071896 0.169696 0.656630 -v 0.080374 0.169696 0.656630 -v -0.041175 0.161282 0.683388 -v -0.044093 0.163812 0.675340 -v -0.065337 0.164090 0.674456 -v 0.080374 0.164335 0.673676 -v -0.071896 0.167221 0.664498 -v 0.006576 0.165674 0.669420 -v 0.016885 0.164042 0.674608 -v 0.012158 0.165674 0.669420 -v 0.074157 0.161282 0.683388 -v -0.001016 0.161282 0.683388 -v 0.040546 0.161282 0.683388 -v 0.036692 0.164042 0.674608 -v -0.071896 0.166290 0.655559 -v 0.080374 0.166290 0.655559 -v -0.041175 0.157876 0.682317 -v -0.044093 0.160406 0.674269 -v -0.065337 0.160684 0.673385 -v 0.080374 0.160930 0.672605 -v -0.071896 0.163816 0.663427 -v 0.006576 0.162268 0.668349 -v 0.016885 0.160637 0.673537 -v 0.012158 0.162268 0.668349 -v 0.074157 0.157876 0.682317 -v -0.001016 0.157876 0.682317 -v 0.040546 0.157876 0.682317 -v 0.036692 0.160637 0.673537 -v -0.018960 0.166290 0.655559 -v -0.018960 0.157876 0.682317 -v -0.020689 0.161282 0.683388 -v -0.020689 0.169696 0.656630 -v -0.022418 0.166290 0.655559 -v -0.022418 0.157876 0.682317 -v -0.022418 0.150312 0.650535 -v -0.018960 0.150312 0.650535 -v -0.022418 0.144723 0.678182 -v -0.018960 0.144723 0.678182 -v -0.022418 0.136348 0.668404 -v -0.018960 0.136348 0.668404 -v -0.001932 0.141164 0.669311 -v 0.001157 0.141164 0.669311 -v -0.001932 0.154131 0.651407 -v 0.001157 0.154131 0.651407 -v -0.002329 0.151537 0.649529 -v 0.001554 0.151537 0.649529 -v -0.002329 0.138571 0.667433 -v 0.001554 0.138571 0.667433 -v 0.025744 0.138814 0.672600 -v 0.030625 0.138814 0.672600 -v 0.025744 0.154152 0.651422 -v 0.030625 0.154152 0.651422 -v 0.024876 0.151537 0.649529 -v 0.031493 0.151537 0.649529 -v 0.024876 0.136200 0.670706 -v 0.031493 0.136200 0.670706 -v 0.009588 0.169696 0.656630 -v 0.009588 0.166290 0.655559 -v 0.047294 0.186886 0.698846 -v 0.041074 0.195470 0.697412 -v 0.030340 0.201216 0.691923 -v 0.021653 0.200439 0.685840 -v 0.012342 0.195382 0.677847 -v 0.008582 0.184456 0.671713 -v 0.012375 0.171698 0.670120 -v 0.031651 0.156278 0.678265 -v 0.040438 0.156864 0.684355 -v 0.049307 0.162929 0.692371 -v 0.051639 0.174611 0.697782 -v 0.035176 0.210072 0.695854 -v 0.043394 0.205703 0.700015 -v 0.027425 0.151596 0.672042 -v 0.020347 0.155651 0.668430 -v 0.019039 0.162676 0.671688 -v 0.049940 0.188159 0.694957 -v 0.043719 0.196743 0.693523 -v 0.032986 0.202488 0.688034 -v 0.024299 0.201712 0.681951 -v 0.014988 0.196655 0.673959 -v 0.011227 0.185729 0.667824 -v 0.015021 0.172971 0.666231 -v 0.034297 0.157551 0.674376 -v 0.043083 0.158137 0.680467 -v 0.051953 0.164202 0.688482 -v 0.054285 0.175883 0.693893 -v 0.037822 0.211345 0.691965 -v 0.046040 0.206976 0.696126 -v 0.030071 0.152869 0.668153 -v 0.022993 0.156924 0.664540 -v 0.021685 0.163949 0.667799 -v -0.030589 0.185510 0.698391 -v -0.036953 0.193985 0.697059 -v -0.047578 0.199819 0.691761 -v -0.056218 0.199532 0.685749 -v -0.065593 0.194724 0.677677 -v -0.069523 0.183933 0.671410 -v -0.066057 0.171077 0.669849 -v -0.047354 0.155111 0.677853 -v -0.038339 0.155613 0.684136 -v -0.029378 0.161384 0.692033 -v -0.026584 0.173134 0.697278 -v -0.042245 0.208357 0.695999 -v -0.034512 0.204028 0.699950 -v -0.051642 0.150181 0.672108 -v -0.058865 0.154641 0.668233 -v -0.059836 0.161761 0.671685 -v -0.027918 0.186726 0.694501 -v -0.034282 0.195201 0.693168 -v -0.044908 0.201035 0.687870 -v -0.053548 0.200748 0.681858 -v -0.062923 0.195940 0.673788 -v -0.066853 0.185148 0.667520 -v -0.063387 0.172293 0.665958 -v -0.044683 0.156327 0.673962 -v -0.035669 0.156828 0.680246 -v -0.026707 0.162600 0.688143 -v -0.023913 0.174350 0.693387 -v -0.039575 0.209573 0.692108 -v -0.031842 0.205244 0.696060 -v -0.048971 0.151397 0.668218 -v -0.056194 0.155857 0.664342 -v -0.057166 0.162976 0.667795 -v 0.000000 0.103257 0.749016 -v -0.018148 0.099602 0.748141 -v -0.033639 0.089706 0.745772 -v -0.043814 0.074641 0.742165 -v -0.047572 0.056992 0.737939 -v -0.043814 0.039343 0.733713 -v -0.033639 0.024278 0.730107 -v -0.018148 0.014383 0.727737 -v 0.000000 0.010728 0.726862 -v 0.018148 0.014383 0.727737 -v 0.033639 0.024278 0.730107 -v 0.043814 0.039343 0.733713 -v 0.047572 0.056992 0.737939 -v 0.043814 0.074641 0.742165 -v 0.033639 0.089706 0.745772 -v 0.018148 0.099602 0.748141 -v 0.000000 0.104790 0.743713 -v -0.018246 0.101117 0.742833 -v -0.033820 0.091167 0.740451 -v -0.044051 0.076021 0.736825 -v -0.047828 0.058277 0.732576 -v -0.044051 0.040532 0.728327 -v -0.033820 0.025386 0.724702 -v -0.018246 0.015437 0.722319 -v 0.000000 0.011763 0.721439 -v 0.018246 0.015437 0.722319 -v 0.033820 0.025386 0.724702 -v 0.044051 0.040532 0.728327 -v 0.047828 0.058277 0.732576 -v 0.044051 0.076021 0.736825 -v 0.033820 0.091167 0.740451 -v 0.018246 0.101117 0.742833 -# 1902 vertices - -vn 0.874367 0.142896 0.463750 -vn 0.839359 0.129826 0.527846 -vn 0.769638 0.335020 0.543525 -vn 0.769638 0.335020 0.543525 -vn 0.839359 0.129826 0.527846 -vn 0.750340 0.293327 0.592410 -vn 0.116849 0.176924 0.977264 -vn 0.301224 0.372748 0.877680 -vn 0.000000 0.212854 0.977084 -vn 0.000000 0.212854 0.977084 -vn 0.301224 0.372748 0.877680 -vn -0.000000 0.428954 0.903327 -vn 0.000000 0.212854 0.977084 -vn 0.000001 0.613691 0.789546 -vn 0.116849 0.176924 0.977264 -vn 0.116849 0.176924 0.977264 -vn 0.000001 0.613691 0.789546 -vn 0.275018 0.577380 0.768764 -vn 0.872814 -0.299764 0.385146 -vn 0.876645 -0.220403 0.427686 -vn 0.897861 -0.284137 0.336321 -vn 0.897861 -0.284137 0.336321 -vn 0.876645 -0.220403 0.427686 -vn 0.879104 -0.123736 0.460289 -vn 0.839359 0.129826 0.527846 -vn 0.878718 0.118805 0.462320 -vn 0.725880 0.010497 0.687741 -vn 0.736370 -0.009801 0.676508 -vn 0.667492 -0.004836 0.744601 -vn 0.650783 0.155178 0.743237 -vn 0.650783 0.155178 0.743237 -vn 0.667492 -0.004836 0.744601 -vn 0.558848 0.112880 0.821552 -vn 0.865779 -0.017836 0.500109 -vn 0.878718 0.118805 0.462320 -vn 0.874367 0.142896 0.463750 -vn 0.874367 0.142896 0.463750 -vn 0.878718 0.118805 0.462320 -vn 0.839359 0.129826 0.527846 -vn 0.872814 -0.299764 0.385146 -vn 0.667492 -0.004836 0.744601 -vn 0.868708 -0.239350 0.433656 -vn 0.868708 -0.239350 0.433656 -vn 0.667492 -0.004836 0.744601 -vn 0.736370 -0.009801 0.676508 -vn 0.872814 -0.299764 0.385146 -vn 0.868708 -0.239350 0.433656 -vn 0.876645 -0.220403 0.427686 -vn 0.876645 -0.220403 0.427686 -vn 0.868708 -0.239350 0.433656 -vn 0.899836 -0.220831 0.376203 -vn 0.563981 -0.086031 0.821294 -vn 0.506636 -0.080127 0.858428 -vn 0.423336 0.053240 0.904407 -vn 0.423336 0.053240 0.904407 -vn 0.506636 -0.080127 0.858428 -vn 0.328463 0.080054 0.941118 -vn 0.506636 -0.080127 0.858428 -vn 0.345092 -0.069681 0.935979 -vn 0.328463 0.080054 0.941118 -vn 0.328463 0.080054 0.941118 -vn 0.345092 -0.069681 0.935979 -vn 0.069472 0.062895 0.995599 -vn -0.102947 -0.125139 0.986784 -vn 0.094891 -0.123581 0.987787 -vn -0.231638 -0.421064 0.876954 -vn -0.231638 -0.421064 0.876954 -vn 0.094891 -0.123581 0.987787 -vn 0.160787 -0.314713 0.935469 -vn 0.267558 -0.406754 0.873478 -vn -0.072677 -0.707963 0.702500 -vn 0.160787 -0.314713 0.935469 -vn 0.160787 -0.314713 0.935469 -vn -0.072677 -0.707963 0.702500 -vn -0.231638 -0.421064 0.876954 -vn 0.298116 -0.370998 0.879481 -vn 0.138482 -0.732184 0.666881 -vn 0.328776 -0.398405 0.856259 -vn 0.328776 -0.398405 0.856259 -vn 0.138482 -0.732184 0.666881 -vn 0.086428 -0.753305 0.651967 -vn 0.175494 -0.359003 0.916689 -vn 0.078068 -0.775295 0.626756 -vn 0.298116 -0.370998 0.879481 -vn 0.298116 -0.370998 0.879481 -vn 0.078068 -0.775295 0.626756 -vn 0.138482 -0.732184 0.666881 -vn 0.000000 -0.331736 0.943372 -vn -0.000000 -0.773117 0.634263 -vn 0.175494 -0.359003 0.916689 -vn 0.175494 -0.359003 0.916689 -vn -0.000000 -0.773117 0.634263 -vn 0.078068 -0.775295 0.626756 -vn 0.345092 -0.069681 0.935979 -vn 0.094891 -0.123581 0.987787 -vn 0.069472 0.062895 0.995599 -vn 0.069472 0.062895 0.995599 -vn 0.094891 -0.123581 0.987787 -vn -0.102947 -0.125139 0.986784 -vn 0.563981 -0.086031 0.821294 -vn 0.756897 -0.413234 0.506304 -vn 0.506636 -0.080127 0.858428 -vn 0.506636 -0.080127 0.858428 -vn 0.756897 -0.413234 0.506304 -vn 0.755253 -0.322586 0.570553 -vn 0.506636 -0.080127 0.858428 -vn 0.755253 -0.322586 0.570553 -vn 0.345092 -0.069681 0.935979 -vn 0.345092 -0.069681 0.935979 -vn 0.755253 -0.322586 0.570553 -vn 0.712959 -0.201500 0.671630 -vn 0.094891 -0.123581 0.987787 -vn 0.345092 -0.069681 0.935979 -vn 0.646546 -0.091362 0.757385 -vn 0.646546 -0.091362 0.757385 -vn 0.345092 -0.069681 0.935979 -vn 0.712959 -0.201500 0.671630 -vn 0.599920 -0.116148 0.791584 -vn 0.563981 -0.086031 0.821294 -vn 0.490474 -0.015548 0.871317 -vn 0.490474 -0.015548 0.871317 -vn 0.563981 -0.086031 0.821294 -vn 0.423336 0.053240 0.904407 -vn 0.298116 -0.370998 0.879481 -vn 0.328776 -0.398405 0.856259 -vn 0.390125 0.174215 0.904130 -vn 0.390125 0.174215 0.904130 -vn 0.328776 -0.398405 0.856259 -vn 0.491149 0.152390 0.857642 -vn 0.298116 -0.370998 0.879481 -vn 0.390125 0.174215 0.904130 -vn 0.175494 -0.359003 0.916689 -vn 0.175494 -0.359003 0.916689 -vn 0.390125 0.174215 0.904130 -vn 0.230528 0.218428 0.948233 -vn 0.000000 -0.331736 0.943372 -vn 0.175494 -0.359003 0.916689 -vn -0.000000 0.233936 0.972252 -vn -0.000000 0.233936 0.972252 -vn 0.175494 -0.359003 0.916689 -vn 0.230528 0.218428 0.948233 -vn 0.160787 -0.314713 0.935469 -vn 0.094891 -0.123581 0.987787 -vn 0.595966 0.010468 0.802942 -vn 0.595966 0.010468 0.802942 -vn 0.094891 -0.123581 0.987787 -vn 0.646546 -0.091362 0.757385 -vn 0.540100 0.136136 0.830518 -vn 0.267558 -0.406754 0.873478 -vn 0.595966 0.010468 0.802942 -vn 0.595966 0.010468 0.802942 -vn 0.267558 -0.406754 0.873478 -vn 0.160787 -0.314713 0.935469 -vn 0.513045 0.085684 0.854075 -vn 0.491149 0.152390 0.857642 -vn 0.547185 0.096805 0.831395 -vn 0.547185 0.096805 0.831395 -vn 0.491149 0.152390 0.857642 -vn 0.540100 0.136136 0.830518 -vn 0.513045 0.085684 0.854075 -vn 0.385025 0.087869 0.918714 -vn 0.491149 0.152390 0.857642 -vn 0.491149 0.152390 0.857642 -vn 0.385025 0.087869 0.918714 -vn 0.390125 0.174215 0.904130 -vn 0.385025 0.087869 0.918714 -vn 0.208441 0.117321 0.970973 -vn 0.390125 0.174215 0.904130 -vn 0.390125 0.174215 0.904130 -vn 0.208441 0.117321 0.970973 -vn 0.230528 0.218428 0.948233 -vn 0.208441 0.117321 0.970973 -vn -0.000000 0.141983 0.989869 -vn 0.230528 0.218428 0.948233 -vn 0.230528 0.218428 0.948233 -vn -0.000000 0.141983 0.989869 -vn -0.000000 0.233936 0.972252 -vn 0.129730 -0.990616 -0.043006 -vn 0.072237 -0.977132 -0.199989 -vn 0.102817 -0.994359 -0.026060 -vn 0.102817 -0.994359 -0.026060 -vn 0.072237 -0.977132 -0.199989 -vn 0.116236 -0.981237 -0.153826 -vn 0.238279 -0.957056 -0.165130 -vn 0.244426 -0.956220 -0.160935 -vn 0.252548 -0.961968 -0.104105 -vn 0.252548 -0.961968 -0.104105 -vn 0.244426 -0.956220 -0.160935 -vn 0.257569 -0.961355 -0.097239 -vn 0.252548 -0.961968 -0.104105 -vn 0.257569 -0.961355 -0.097239 -vn 0.264099 -0.963244 -0.049115 -vn 0.264099 -0.963244 -0.049115 -vn 0.257569 -0.961355 -0.097239 -vn 0.275481 -0.960323 -0.043470 -vn 0.238279 -0.957056 -0.165130 -vn 0.286498 -0.934423 -0.211594 -vn 0.244426 -0.956220 -0.160935 -vn 0.244426 -0.956220 -0.160935 -vn 0.286498 -0.934423 -0.211594 -vn 0.219139 -0.948685 -0.227980 -vn 0.793372 0.044920 0.607078 -vn 0.736370 -0.009801 0.676508 -vn 0.815337 0.129486 0.564322 -vn 0.815337 0.129486 0.564322 -vn 0.736370 -0.009801 0.676508 -vn 0.650783 0.155178 0.743237 -vn 0.856568 -0.147677 0.494451 -vn 0.868708 -0.239350 0.433656 -vn 0.793372 0.044920 0.607078 -vn 0.793372 0.044920 0.607078 -vn 0.868708 -0.239350 0.433656 -vn 0.736370 -0.009801 0.676508 -vn 0.000000 0.852896 0.522081 -vn -0.000000 0.428954 0.903327 -vn 0.440421 0.756675 0.483190 -vn 0.440421 0.756675 0.483190 -vn -0.000000 0.428954 0.903327 -vn 0.301224 0.372748 0.877680 -vn 0.693408 0.534699 0.482993 -vn 0.436523 0.194338 0.878454 -vn 0.746743 0.367139 0.554603 -vn 0.746743 0.367139 0.554603 -vn 0.436523 0.194338 0.878454 -vn 0.577927 0.320953 0.750326 -vn 0.839359 0.129826 0.527846 -vn 0.804035 0.222201 0.551501 -vn 0.750340 0.293327 0.592410 -vn 0.750340 0.293327 0.592410 -vn 0.804035 0.222201 0.551501 -vn 0.795050 0.365669 0.483923 -vn 0.804035 0.222201 0.551501 -vn 0.725880 0.010497 0.687741 -vn 0.637792 0.094825 0.764349 -vn 0.725880 0.010497 0.687741 -vn 0.804035 0.222201 0.551501 -vn 0.839359 0.129826 0.527846 -vn 0.815337 0.129486 0.564322 -vn 0.650783 0.155178 0.743237 -vn 0.586426 0.081490 0.805893 -vn 0.586426 0.081490 0.805893 -vn 0.650783 0.155178 0.743237 -vn 0.583297 0.099180 0.806181 -vn 0.423336 0.053240 0.904407 -vn 0.328463 0.080054 0.941118 -vn 0.396273 0.237589 0.886859 -vn 0.396273 0.237589 0.886859 -vn 0.328463 0.080054 0.941118 -vn 0.332949 0.174518 0.926654 -vn 0.328463 0.080054 0.941118 -vn 0.069472 0.062895 0.995599 -vn 0.332949 0.174518 0.926654 -vn 0.332949 0.174518 0.926654 -vn 0.069472 0.062895 0.995599 -vn 0.176996 0.117972 0.977116 -vn -0.102947 -0.125139 0.986784 -vn -0.231638 -0.421064 0.876954 -vn 0.156160 -0.047093 0.986609 -vn -0.072677 -0.707963 0.702500 -vn 0.077064 -0.547430 0.833296 -vn -0.231638 -0.421064 0.876954 -vn -0.231638 -0.421064 0.876954 -vn 0.077064 -0.547430 0.833296 -vn -0.054624 -0.259423 0.964218 -vn 0.138482 -0.732184 0.666881 -vn 0.247673 -0.520936 0.816874 -vn 0.086428 -0.753305 0.651967 -vn 0.086428 -0.753305 0.651967 -vn 0.247673 -0.520936 0.816874 -vn 0.212866 -0.594441 0.775453 -vn 0.078068 -0.775295 0.626756 -vn 0.142005 -0.600231 0.787120 -vn 0.138482 -0.732184 0.666881 -vn 0.138482 -0.732184 0.666881 -vn 0.142005 -0.600231 0.787120 -vn 0.247673 -0.520936 0.816874 -vn -0.000000 -0.773117 0.634263 -vn -0.000000 -0.616413 0.787423 -vn 0.078068 -0.775295 0.626756 -vn 0.078068 -0.775295 0.626756 -vn -0.000000 -0.616413 0.787423 -vn 0.142005 -0.600231 0.787120 -vn 0.069472 0.062895 0.995599 -vn -0.102947 -0.125139 0.986784 -vn 0.176996 0.117972 0.977116 -vn 0.176996 0.117972 0.977116 -vn -0.102947 -0.125139 0.986784 -vn 0.156160 -0.047093 0.986609 -vn 0.490474 -0.015548 0.871317 -vn 0.423336 0.053240 0.904407 -vn 0.465482 0.198170 0.862586 -vn 0.465482 0.198170 0.862586 -vn 0.423336 0.053240 0.904407 -vn 0.396273 0.237589 0.886859 -vn 0.650783 0.155178 0.743237 -vn 0.558848 0.112880 0.821552 -vn 0.583297 0.099180 0.806181 -vn 0.558848 0.112880 0.821552 -vn 0.508399 -0.001748 0.861120 -vn 0.583297 0.099180 0.806181 -vn 0.583297 0.099180 0.806181 -vn 0.508399 -0.001748 0.861120 -vn 0.524770 0.165762 0.834949 -vn -0.231638 -0.421064 0.876954 -vn -0.054624 -0.259423 0.964218 -vn 0.156160 -0.047093 0.986609 -vn 0.156160 -0.047093 0.986609 -vn -0.054624 -0.259423 0.964218 -vn -0.223353 -0.078074 0.971606 -vn 0.176996 0.117972 0.977116 -vn 0.156160 -0.047093 0.986609 -vn -0.116952 0.164913 0.979350 -vn -0.116952 0.164913 0.979350 -vn 0.156160 -0.047093 0.986609 -vn -0.223353 -0.078074 0.971606 -vn 0.332949 0.174518 0.926654 -vn 0.176996 0.117972 0.977116 -vn 0.235208 0.242647 0.941169 -vn 0.235208 0.242647 0.941169 -vn 0.176996 0.117972 0.977116 -vn -0.116952 0.164913 0.979350 -vn 0.396273 0.237589 0.886859 -vn 0.332949 0.174518 0.926654 -vn 0.250798 0.356808 0.899882 -vn 0.250798 0.356808 0.899882 -vn 0.332949 0.174518 0.926654 -vn 0.235208 0.242647 0.941169 -vn 0.465482 0.198170 0.862586 -vn 0.396273 0.237589 0.886859 -vn 0.327185 0.359445 0.873927 -vn 0.327185 0.359445 0.873927 -vn 0.396273 0.237589 0.886859 -vn 0.250798 0.356808 0.899882 -vn 0.375740 0.369738 0.849772 -vn 0.476121 0.310210 0.822848 -vn 0.524770 0.165762 0.834949 -vn 0.524770 0.165762 0.834949 -vn 0.476121 0.310210 0.822848 -vn 0.583297 0.099180 0.806181 -vn 0.586426 0.081490 0.805893 -vn 0.583297 0.099180 0.806181 -vn 0.578466 0.274019 0.768304 -vn 0.578466 0.274019 0.768304 -vn 0.583297 0.099180 0.806181 -vn 0.476121 0.310210 0.822848 -vn 0.637792 0.094825 0.764349 -vn 0.701508 0.141475 0.698478 -vn 0.804035 0.222201 0.551501 -vn 0.804035 0.222201 0.551501 -vn 0.701508 0.141475 0.698478 -vn 0.693111 0.218075 0.687052 -vn 0.795050 0.365669 0.483923 -vn 0.804035 0.222201 0.551501 -vn 0.692277 0.290502 0.660576 -vn 0.692277 0.290502 0.660576 -vn 0.804035 0.222201 0.551501 -vn 0.693111 0.218075 0.687052 -vn 0.746743 0.367139 0.554603 -vn 0.795050 0.365669 0.483923 -vn 0.665432 0.371470 0.647465 -vn 0.665432 0.371470 0.647465 -vn 0.795050 0.365669 0.483923 -vn 0.692277 0.290502 0.660576 -vn 0.746743 0.367139 0.554603 -vn 0.665432 0.371470 0.647465 -vn 0.693408 0.534699 0.482993 -vn 0.693408 0.534699 0.482993 -vn 0.665432 0.371470 0.647465 -vn 0.565544 0.401306 0.720495 -vn 0.440421 0.756675 0.483190 -vn 0.395914 0.622562 0.675033 -vn 0.000000 0.852896 0.522081 -vn 0.000000 0.852896 0.522081 -vn 0.395914 0.622562 0.675033 -vn 0.000000 0.735528 0.677494 -vn 0.692277 0.290502 0.660576 -vn 0.492427 0.164830 0.854603 -vn 0.665432 0.371470 0.647465 -vn 0.665432 0.371470 0.647465 -vn 0.492427 0.164830 0.854603 -vn 0.511349 0.270648 0.815642 -vn 0.665432 0.371470 0.647465 -vn 0.511349 0.270648 0.815642 -vn 0.565544 0.401306 0.720495 -vn 0.565544 0.401306 0.720495 -vn 0.511349 0.270648 0.815642 -vn 0.410556 0.235873 0.880800 -vn 0.395914 0.622562 0.675033 -vn 0.283113 0.470702 0.835635 -vn 0.000000 0.735528 0.677494 -vn 0.000000 0.735528 0.677494 -vn 0.283113 0.470702 0.835635 -vn 0.000000 0.588858 0.808237 -vn 0.646546 -0.091362 0.757385 -vn 0.712959 -0.201500 0.671630 -vn 0.693830 -0.131650 0.708003 -vn 0.693830 -0.131650 0.708003 -vn 0.712959 -0.201500 0.671630 -vn 0.739324 -0.227264 0.633838 -vn 0.267558 -0.406754 0.873478 -vn 0.540100 0.136136 0.830518 -vn 0.328776 -0.398405 0.856259 -vn 0.328776 -0.398405 0.856259 -vn 0.540100 0.136136 0.830518 -vn 0.491149 0.152390 0.857642 -vn 0.328776 -0.398405 0.856259 -vn 0.086428 -0.753305 0.651967 -vn 0.267558 -0.406754 0.873478 -vn 0.267558 -0.406754 0.873478 -vn 0.086428 -0.753305 0.651967 -vn -0.072677 -0.707963 0.702500 -vn 0.086428 -0.753305 0.651967 -vn 0.212866 -0.594441 0.775453 -vn -0.072677 -0.707963 0.702500 -vn -0.072677 -0.707963 0.702500 -vn 0.212866 -0.594441 0.775453 -vn 0.077064 -0.547430 0.833296 -vn 0.302576 -0.139600 -0.942847 -vn 0.192392 -0.228822 -0.954267 -vn 0.292926 -0.140834 -0.945706 -vn 0.292926 -0.140834 -0.945706 -vn 0.192392 -0.228822 -0.954267 -vn 0.238326 -0.280306 -0.929855 -vn -0.885110 0.090062 -0.456583 -vn -0.908319 0.101642 -0.405740 -vn -0.901202 0.095876 -0.422661 -vn -0.838070 0.099633 -0.536388 -vn -0.885110 0.090062 -0.456583 -vn -0.872698 0.061052 -0.484429 -vn -0.872698 0.061052 -0.484429 -vn -0.885110 0.090062 -0.456583 -vn -0.901202 0.095876 -0.422661 -vn -0.906366 0.121056 -0.404780 -vn -0.918399 0.104092 -0.381717 -vn -0.908319 0.101642 -0.405740 -vn -0.908319 0.101642 -0.405740 -vn -0.918399 0.104092 -0.381717 -vn -0.901202 0.095876 -0.422661 -vn -0.838270 0.058952 -0.542059 -vn -0.848483 0.011890 -0.529089 -vn -0.841805 0.021328 -0.539360 -vn 0.004213 -0.178993 0.983841 -vn 0.005068 -0.169127 0.985581 -vn 0.000875 -0.119271 0.992861 -vn 0.000875 -0.119271 0.992861 -vn 0.005068 -0.169127 0.985581 -vn -0.000283 -0.119211 0.992869 -vn -0.028557 -0.125072 0.991737 -vn -0.030092 -0.127525 0.991379 -vn -0.033619 -0.126186 0.991437 -vn -0.033619 -0.126186 0.991437 -vn -0.030092 -0.127525 0.991379 -vn -0.033272 -0.126422 0.991418 -vn -0.009534 -0.119049 0.992843 -vn -0.012070 -0.128801 0.991597 -vn -0.028557 -0.125072 0.991737 -vn -0.028557 -0.125072 0.991737 -vn -0.012070 -0.128801 0.991597 -vn -0.030092 -0.127525 0.991379 -vn 0.008610 -0.088195 0.996066 -vn 0.006816 -0.096393 0.995320 -vn -0.009534 -0.119049 0.992843 -vn -0.009534 -0.119049 0.992843 -vn 0.006816 -0.096393 0.995320 -vn -0.012070 -0.128801 0.991597 -vn 0.008610 -0.088195 0.996066 -vn 0.000000 -0.094600 0.995515 -vn 0.006816 -0.096393 0.995320 -vn 0.006816 -0.096393 0.995320 -vn 0.000000 -0.094600 0.995515 -vn 0.000000 -0.097825 0.995204 -vn 0.629564 -0.097579 0.770797 -vn 0.897861 -0.284137 0.336321 -vn 0.827590 -0.457878 0.324718 -vn 0.599920 -0.116148 0.791584 -vn 0.827590 -0.457878 0.324718 -vn 0.753614 -0.507019 0.418327 -vn 0.753614 -0.507019 0.418327 -vn 0.794821 -0.533487 0.289225 -vn 0.692347 -0.561281 0.453452 -vn 0.794821 -0.533487 0.289225 -vn 0.753614 -0.507019 0.418327 -vn 0.827590 -0.457878 0.324718 -vn 0.712959 -0.201500 0.671630 -vn 0.755253 -0.322586 0.570553 -vn 0.739324 -0.227264 0.633838 -vn 0.739324 -0.227264 0.633838 -vn 0.755253 -0.322586 0.570553 -vn 0.757093 -0.350156 0.551544 -vn 0.756897 -0.413234 0.506304 -vn 0.753614 -0.507019 0.418327 -vn 0.692347 -0.561281 0.453452 -vn 0.599920 -0.116148 0.791584 -vn 0.753614 -0.507019 0.418327 -vn 0.563981 -0.086031 0.821294 -vn 0.563981 -0.086031 0.821294 -vn 0.753614 -0.507019 0.418327 -vn 0.756897 -0.413234 0.506304 -vn 0.559633 0.486693 0.670777 -vn 0.577927 0.320953 0.750326 -vn 0.275018 0.577380 0.768764 -vn 0.275018 0.577380 0.768764 -vn 0.577927 0.320953 0.750326 -vn 0.116849 0.176924 0.977264 -vn 0.769638 0.335020 0.543525 -vn 0.750340 0.293327 0.592410 -vn 0.559633 0.486693 0.670777 -vn 0.559633 0.486693 0.670777 -vn 0.750340 0.293327 0.592410 -vn 0.577927 0.320953 0.750326 -vn 0.235208 0.242647 0.941169 -vn -0.116952 0.164913 0.979350 -vn 0.517412 0.107566 0.848949 -vn 0.250798 0.356808 0.899882 -vn 0.235208 0.242647 0.941169 -vn 0.503238 0.171977 0.846862 -vn 0.503238 0.171977 0.846862 -vn 0.235208 0.242647 0.941169 -vn 0.517412 0.107566 0.848949 -vn 0.327185 0.359445 0.873927 -vn 0.250798 0.356808 0.899882 -vn 0.576598 0.119160 0.808292 -vn 0.576598 0.119160 0.808292 -vn 0.250798 0.356808 0.899882 -vn 0.503238 0.171977 0.846862 -vn 0.476121 0.310210 0.822848 -vn 0.375740 0.369738 0.849772 -vn 0.622963 0.010707 0.782178 -vn 0.622963 0.010707 0.782178 -vn 0.375740 0.369738 0.849772 -vn 0.613048 0.091494 0.784730 -vn 0.622963 0.010707 0.782178 -vn 0.578466 0.274019 0.768304 -vn 0.476121 0.310210 0.822848 -vn 0.578466 0.274019 0.768304 -vn 0.622963 0.010707 0.782178 -vn 0.600783 -0.009281 0.799358 -vn 0.701508 0.141475 0.698478 -vn 0.561162 0.016469 0.827542 -vn 0.693111 0.218075 0.687052 -vn 0.693111 0.218075 0.687052 -vn 0.561162 0.016469 0.827542 -vn 0.534016 0.096637 0.839934 -vn 0.693111 0.218075 0.687052 -vn 0.534016 0.096637 0.839934 -vn 0.692277 0.290502 0.660576 -vn 0.692277 0.290502 0.660576 -vn 0.534016 0.096637 0.839934 -vn 0.492427 0.164830 0.854603 -vn 0.433159 0.872883 -0.224608 -vn 0.000000 0.965908 -0.258887 -vn 0.420776 0.879811 -0.221087 -vn 0.420776 0.879811 -0.221087 -vn 0.000000 0.965908 -0.258887 -vn -0.000000 0.965233 -0.261391 -vn 0.775130 0.531844 -0.341050 -vn 0.689875 0.626450 -0.362813 -vn 0.662525 0.655485 -0.362491 -vn 0.654908 -0.078612 0.751609 -vn 0.646546 -0.091362 0.757385 -vn 0.693830 -0.131650 0.708003 -vn 0.547185 0.096805 0.831395 -vn 0.540100 0.136136 0.830518 -vn 0.580964 0.116968 0.805481 -vn 0.580964 0.116968 0.805481 -vn 0.540100 0.136136 0.830518 -vn 0.552821 0.127056 0.823557 -vn 0.238326 -0.280306 -0.929855 -vn 0.205507 -0.341339 -0.917199 -vn 0.413320 -0.375423 -0.829593 -vn 0.740528 -0.552831 0.382095 -vn 0.794821 -0.533487 0.289225 -vn 0.897861 -0.284137 0.336321 -vn 0.740528 -0.552831 0.382095 -vn 0.879104 -0.123736 0.460289 -vn 0.825383 0.027812 0.563888 -vn 0.879104 -0.123736 0.460289 -vn 0.740528 -0.552831 0.382095 -vn 0.897861 -0.284137 0.336321 -vn 0.275481 -0.960323 -0.043470 -vn 0.202619 -0.977154 -0.064148 -vn 0.264099 -0.963244 -0.049115 -vn 0.264099 -0.963244 -0.049115 -vn 0.202619 -0.977154 -0.064148 -vn 0.185660 -0.980159 -0.069421 -vn 0.005068 -0.169127 0.985581 -vn 0.004213 -0.178993 0.983841 -vn 0.005265 -0.232431 0.972599 -vn 0.005265 -0.232431 0.972599 -vn 0.004213 -0.178993 0.983841 -vn 0.001215 -0.234994 0.971996 -vn 0.946101 -0.091808 0.310587 -vn 0.947651 -0.069522 0.311647 -vn 0.933835 -0.126242 0.334685 -vn -0.363064 -0.930250 0.053092 -vn -0.385532 -0.921257 0.051487 -vn -0.687639 -0.725988 0.009737 -vn -0.687639 -0.725988 0.009737 -vn -0.385532 -0.921257 0.051487 -vn -0.709102 -0.705080 0.006041 -vn 0.000000 -0.999654 0.026321 -vn 0.000000 -0.998690 0.051159 -vn -0.363064 -0.930250 0.053092 -vn -0.363064 -0.930250 0.053092 -vn 0.000000 -0.998690 0.051159 -vn -0.385532 -0.921257 0.051487 -vn -0.900188 -0.434837 0.024056 -vn -0.913375 -0.402924 0.058299 -vn -0.980424 -0.151736 0.125481 -vn -0.980424 -0.151736 0.125481 -vn -0.913375 -0.402924 0.058299 -vn -0.980182 -0.136745 0.143330 -vn -0.687639 -0.725988 0.009737 -vn -0.709102 -0.705080 0.006041 -vn -0.900188 -0.434837 0.024056 -vn -0.900188 -0.434837 0.024056 -vn -0.709102 -0.705080 0.006041 -vn -0.913375 -0.402924 0.058299 -vn -0.994612 -0.017356 0.102202 -vn -0.994065 -0.017268 0.107409 -vn -0.980182 -0.136745 0.143330 -vn -0.980182 -0.136745 0.143330 -vn -0.994065 -0.017268 0.107409 -vn -0.980424 -0.151736 0.125481 -vn 0.000000 -0.031297 -0.999510 -vn -0.002828 -0.032587 -0.999465 -vn -0.008149 -0.028624 -0.999557 -vn 0.072237 -0.977132 -0.199989 -vn 0.219139 -0.948685 -0.227980 -vn 0.116236 -0.981237 -0.153826 -vn 0.116236 -0.981237 -0.153826 -vn 0.219139 -0.948685 -0.227980 -vn 0.286498 -0.934423 -0.211594 -vn -0.035271 -0.981040 -0.190571 -vn 0.035271 -0.981040 -0.190571 -vn 0.000000 -0.993771 -0.111439 -vn 0.823204 0.041899 0.566197 -vn 0.877209 0.129252 0.462382 -vn 0.815337 0.129486 0.564322 -vn 0.815337 0.129486 0.564322 -vn 0.877209 0.129252 0.462382 -vn 0.793372 0.044920 0.607078 -vn 0.605520 0.092760 0.790405 -vn 0.823204 0.041899 0.566197 -vn 0.586426 0.081490 0.805893 -vn 0.586426 0.081490 0.805893 -vn 0.823204 0.041899 0.566197 -vn 0.815337 0.129486 0.564322 -vn 0.676738 0.161385 0.718318 -vn 0.605520 0.092760 0.790405 -vn 0.578466 0.274019 0.768304 -vn 0.578466 0.274019 0.768304 -vn 0.605520 0.092760 0.790405 -vn 0.586426 0.081490 0.805893 -vn 0.375740 0.369738 0.849772 -vn 0.327185 0.359445 0.873927 -vn 0.613048 0.091494 0.784730 -vn 0.613048 0.091494 0.784730 -vn 0.327185 0.359445 0.873927 -vn 0.576598 0.119160 0.808292 -vn 0.524770 0.165762 0.834949 -vn 0.465482 0.198170 0.862586 -vn 0.375740 0.369738 0.849772 -vn 0.375740 0.369738 0.849772 -vn 0.465482 0.198170 0.862586 -vn 0.327185 0.359445 0.873927 -vn 0.508399 -0.001748 0.861120 -vn 0.490474 -0.015548 0.871317 -vn 0.524770 0.165762 0.834949 -vn 0.524770 0.165762 0.834949 -vn 0.490474 -0.015548 0.871317 -vn 0.465482 0.198170 0.862586 -vn 0.629564 -0.097579 0.770797 -vn 0.599920 -0.116148 0.791584 -vn 0.508399 -0.001748 0.861120 -vn 0.508399 -0.001748 0.861120 -vn 0.599920 -0.116148 0.791584 -vn 0.490474 -0.015548 0.871317 -vn 0.629564 -0.097579 0.770797 -vn 0.827590 -0.457878 0.324718 -vn 0.599920 -0.116148 0.791584 -vn 0.856568 -0.147677 0.494451 -vn 0.877209 0.129252 0.462382 -vn 0.865779 -0.017836 0.500109 -vn 0.877209 0.129252 0.462382 -vn 0.856568 -0.147677 0.494451 -vn 0.793372 0.044920 0.607078 -vn 0.946101 -0.091808 0.310587 -vn 0.921518 -0.135700 0.363854 -vn 0.947651 -0.069522 0.311647 -vn 0.885192 -0.082688 0.457819 -vn 0.921518 -0.135700 0.363854 -vn 0.856568 -0.147677 0.494451 -vn 0.856568 -0.147677 0.494451 -vn 0.921518 -0.135700 0.363854 -vn 0.868708 -0.239350 0.433656 -vn 0.868708 -0.239350 0.433656 -vn 0.921518 -0.135700 0.363854 -vn 0.899836 -0.220831 0.376203 -vn 0.329487 0.646995 0.687630 -vn 0.275018 0.577380 0.768764 -vn 0.000001 0.672206 0.740364 -vn 0.000001 0.672206 0.740364 -vn 0.275018 0.577380 0.768764 -vn 0.000001 0.613691 0.789546 -vn 0.630978 0.528192 0.568225 -vn 0.559633 0.486693 0.670777 -vn 0.329487 0.646995 0.687630 -vn 0.329487 0.646995 0.687630 -vn 0.559633 0.486693 0.670777 -vn 0.275018 0.577380 0.768764 -vn 0.829124 0.305410 0.468271 -vn 0.769638 0.335020 0.543525 -vn 0.630978 0.528192 0.568225 -vn 0.630978 0.528192 0.568225 -vn 0.769638 0.335020 0.543525 -vn 0.559633 0.486693 0.670777 -vn 0.903662 0.091606 0.418334 -vn 0.874367 0.142896 0.463750 -vn 0.829124 0.305410 0.468271 -vn 0.829124 0.305410 0.468271 -vn 0.874367 0.142896 0.463750 -vn 0.769638 0.335020 0.543525 -vn 0.874367 0.142896 0.463750 -vn 0.903662 0.091606 0.418334 -vn 0.865779 -0.017836 0.500109 -vn 0.903662 0.091606 0.418334 -vn 0.885192 -0.082688 0.457819 -vn 0.865779 -0.017836 0.500109 -vn 0.885192 -0.082688 0.457819 -vn 0.856568 -0.147677 0.494451 -vn 0.865779 -0.017836 0.500109 -vn 0.689875 0.626450 -0.362813 -vn 0.433159 0.872883 -0.224608 -vn 0.662525 0.655485 -0.362491 -vn 0.662525 0.655485 -0.362491 -vn 0.433159 0.872883 -0.224608 -vn 0.420776 0.879811 -0.221087 -vn 0.565544 0.401306 0.720495 -vn 0.410556 0.235873 0.880800 -vn 0.395914 0.622562 0.675033 -vn 0.395914 0.622562 0.675033 -vn 0.410556 0.235873 0.880800 -vn 0.283113 0.470702 0.835635 -vn 0.440421 0.756675 0.483190 -vn 0.693408 0.534699 0.482993 -vn 0.395914 0.622562 0.675033 -vn 0.395914 0.622562 0.675033 -vn 0.693408 0.534699 0.482993 -vn 0.565544 0.401306 0.720495 -vn 0.436523 0.194338 0.878454 -vn 0.693408 0.534699 0.482993 -vn 0.301224 0.372748 0.877680 -vn 0.301224 0.372748 0.877680 -vn 0.693408 0.534699 0.482993 -vn 0.440421 0.756675 0.483190 -vn 0.301224 0.372748 0.877680 -vn 0.116849 0.176924 0.977264 -vn 0.436523 0.194338 0.878454 -vn 0.436523 0.194338 0.878454 -vn 0.116849 0.176924 0.977264 -vn 0.577927 0.320953 0.750326 -vn -0.838070 0.099633 -0.536388 -vn -0.872698 0.061052 -0.484429 -vn -0.838270 0.058952 -0.542059 -vn -0.838270 0.058952 -0.542059 -vn -0.872698 0.061052 -0.484429 -vn -0.848483 0.011890 -0.529089 -vn 0.205507 -0.341339 -0.917199 -vn 0.238326 -0.280306 -0.929855 -vn 0.178952 -0.332850 -0.925844 -vn 0.178952 -0.332850 -0.925844 -vn 0.238326 -0.280306 -0.929855 -vn 0.192392 -0.228822 -0.954267 -vn 0.178952 -0.332850 -0.925844 -vn 0.203434 -0.333613 -0.920498 -vn 0.205507 -0.341339 -0.917199 -vn 0.205507 -0.341339 -0.917199 -vn 0.203434 -0.333613 -0.920498 -vn 0.201669 -0.331943 -0.921490 -vn 0.203434 -0.333613 -0.920498 -vn 0.163755 -0.336085 -0.927487 -vn 0.201669 -0.331943 -0.921490 -vn 0.201669 -0.331943 -0.921490 -vn 0.163755 -0.336085 -0.927487 -vn 0.153812 -0.338506 -0.928308 -vn -0.848483 0.011890 -0.529089 -vn -0.857799 0.017740 -0.513679 -vn -0.841805 0.021328 -0.539360 -vn -0.841805 0.021328 -0.539360 -vn -0.857799 0.017740 -0.513679 -vn -0.852988 -0.069459 -0.517289 -vn -0.857799 0.017740 -0.513679 -vn -0.850491 -0.071994 -0.521040 -vn -0.852988 -0.069459 -0.517289 -vn -0.850491 -0.071994 -0.521040 -vn -0.846858 -0.092154 -0.523774 -vn -0.852988 -0.069459 -0.517289 -vn -0.852988 -0.069459 -0.517289 -vn -0.846858 -0.092154 -0.523774 -vn -0.847084 -0.090957 -0.523617 -vn -0.846858 -0.092154 -0.523774 -vn -0.856333 -0.079551 -0.510260 -vn -0.847084 -0.090957 -0.523617 -vn -0.847084 -0.090957 -0.523617 -vn -0.856333 -0.079551 -0.510260 -vn -0.858056 -0.079184 -0.507414 -vn 0.478460 -0.790217 0.382927 -vn 0.740528 -0.552831 0.382095 -vn 0.276535 -0.885349 0.373744 -vn 0.740528 -0.552831 0.382095 -vn 0.590636 -0.714540 0.374942 -vn 0.794821 -0.533487 0.289225 -vn 0.750340 0.293327 0.592410 -vn 0.795050 0.365669 0.483923 -vn 0.577927 0.320953 0.750326 -vn 0.577927 0.320953 0.750326 -vn 0.795050 0.365669 0.483923 -vn 0.746743 0.367139 0.554603 -vn 0.646546 -0.091362 0.757385 -vn 0.654908 -0.078612 0.751609 -vn 0.595966 0.010468 0.802942 -vn 0.595966 0.010468 0.802942 -vn 0.654908 -0.078612 0.751609 -vn 0.645955 0.010511 0.763303 -vn 0.540100 0.136136 0.830518 -vn 0.595966 0.010468 0.802942 -vn 0.552821 0.127056 0.823557 -vn 0.552821 0.127056 0.823557 -vn 0.595966 0.010468 0.802942 -vn 0.645955 0.010511 0.763303 -vn 0.251850 0.142172 0.957266 -vn -0.000000 0.162236 0.986752 -vn 0.148083 0.146979 0.977992 -vn 0.148083 0.146979 0.977992 -vn -0.000000 0.162236 0.986752 -vn 0.000000 0.141845 0.989889 -vn 0.309236 0.165615 0.936453 -vn 0.419722 0.109486 0.901025 -vn 0.258902 0.164100 0.951862 -vn 0.419722 0.109486 0.901025 -vn 0.251850 0.142172 0.957266 -vn 0.258902 0.164100 0.951862 -vn 0.251850 0.142172 0.957266 -vn 0.148083 0.146979 0.977992 -vn 0.258902 0.164100 0.951862 -vn 0.419722 0.109486 0.901025 -vn 0.612309 0.047674 0.789180 -vn 0.564812 0.045085 0.823987 -vn 0.612309 0.047674 0.789180 -vn 0.419722 0.109486 0.901025 -vn 0.606936 0.075890 0.791119 -vn 0.419722 0.109486 0.901025 -vn 0.543709 0.088666 0.834577 -vn 0.606936 0.075890 0.791119 -vn 0.419722 0.109486 0.901025 -vn 0.454197 0.114604 0.883499 -vn 0.543709 0.088666 0.834577 -vn 0.454197 0.114604 0.883499 -vn 0.419722 0.109486 0.901025 -vn 0.309236 0.165615 0.936453 -vn 0.669690 0.002394 0.742637 -vn 0.671572 0.000921 0.740939 -vn 0.564812 0.045085 0.823987 -vn 0.671572 0.000921 0.740939 -vn 0.643622 0.003589 0.765335 -vn 0.564812 0.045085 0.823987 -vn 0.643622 0.003589 0.765335 -vn 0.639898 0.000849 0.768459 -vn 0.564812 0.045085 0.823987 -vn 0.612309 0.047674 0.789180 -vn 0.636922 0.014002 0.770801 -vn 0.564812 0.045085 0.823987 -vn 0.636922 0.014002 0.770801 -vn 0.657122 0.006114 0.753760 -vn 0.564812 0.045085 0.823987 -vn 0.564812 0.045085 0.823987 -vn 0.657122 0.006114 0.753760 -vn 0.669690 0.002394 0.742637 -vn 0.643622 0.003589 0.765335 -vn 0.683680 -0.002210 0.729778 -vn 0.639898 0.000849 0.768459 -vn 0.639898 0.000849 0.768459 -vn 0.683680 -0.002210 0.729778 -vn 0.627582 -0.013520 0.778433 -vn 0.683680 -0.002210 0.729778 -vn 0.640471 -0.013126 0.767870 -vn 0.627582 -0.013520 0.778433 -vn 0.667492 -0.004836 0.744601 -vn 0.629564 -0.097579 0.770797 -vn 0.558848 0.112880 0.821552 -vn 0.558848 0.112880 0.821552 -vn 0.629564 -0.097579 0.770797 -vn 0.508399 -0.001748 0.861120 -vn 0.897861 -0.284137 0.336321 -vn 0.629564 -0.097579 0.770797 -vn 0.872814 -0.299764 0.385146 -vn 0.629564 -0.097579 0.770797 -vn 0.667492 -0.004836 0.744601 -vn 0.872814 -0.299764 0.385146 -vn 0.600783 -0.009281 0.799358 -vn 0.676738 0.161385 0.718318 -vn 0.578466 0.274019 0.768304 -vn 0.676738 0.161385 0.718318 -vn 0.561162 0.016469 0.827542 -vn 0.701508 0.141475 0.698478 -vn 0.561162 0.016469 0.827542 -vn 0.676738 0.161385 0.718318 -vn 0.600783 -0.009281 0.799358 -vn 0.701508 0.141475 0.698478 -vn 0.637792 0.094825 0.764349 -vn 0.676738 0.161385 0.718318 -vn 0.676738 0.161385 0.718318 -vn 0.637792 0.094825 0.764349 -vn 0.605520 0.092760 0.790405 -vn 0.637792 0.094825 0.764349 -vn 0.725880 0.010497 0.687741 -vn 0.605520 0.092760 0.790405 -vn 0.605520 0.092760 0.790405 -vn 0.725880 0.010497 0.687741 -vn 0.823204 0.041899 0.566197 -vn 0.725880 0.010497 0.687741 -vn 0.878718 0.118805 0.462320 -vn 0.823204 0.041899 0.566197 -vn 0.823204 0.041899 0.566197 -vn 0.878718 0.118805 0.462320 -vn 0.877209 0.129252 0.462382 -vn 0.878718 0.118805 0.462320 -vn 0.865779 -0.017836 0.500109 -vn 0.877209 0.129252 0.462382 -vn 0.000875 -0.119271 0.992861 -vn -0.000283 -0.119211 0.992869 -vn -0.033272 -0.126422 0.991418 -vn -0.033272 -0.126422 0.991418 -vn -0.000283 -0.119211 0.992869 -vn -0.033619 -0.126186 0.991437 -vn -0.995493 -0.030523 0.089784 -vn -0.993894 -0.047100 0.099785 -vn -0.986612 -0.094408 0.132977 -vn 0.921518 -0.135700 0.363854 -vn 0.885192 -0.082688 0.457819 -vn 0.947651 -0.069522 0.311647 -vn 0.740528 -0.552831 0.382095 -vn 0.478460 -0.790217 0.382927 -vn 0.590636 -0.714540 0.374942 -vn 0.692347 -0.561281 0.453452 -vn 0.590636 -0.714540 0.374942 -vn 0.662696 -0.571306 0.484194 -vn 0.662696 -0.571306 0.484194 -vn 0.590636 -0.714540 0.374942 -vn 0.478460 -0.790217 0.382927 -vn 0.756897 -0.413234 0.506304 -vn 0.692347 -0.561281 0.453452 -vn 0.729157 -0.440006 0.524142 -vn 0.729157 -0.440006 0.524142 -vn 0.692347 -0.561281 0.453452 -vn 0.662696 -0.571306 0.484194 -vn 0.755253 -0.322586 0.570553 -vn 0.756897 -0.413234 0.506304 -vn 0.757093 -0.350156 0.551544 -vn 0.757093 -0.350156 0.551544 -vn 0.756897 -0.413234 0.506304 -vn 0.729157 -0.440006 0.524142 -vn -0.994065 -0.017268 0.107409 -vn -0.994612 -0.017356 0.102202 -vn -0.995493 -0.030523 0.089784 -vn -0.995493 -0.030523 0.089784 -vn -0.994612 -0.017356 0.102202 -vn -0.993894 -0.047100 0.099785 -vn 0.692347 -0.561281 0.453452 -vn 0.794821 -0.533487 0.289225 -vn 0.590636 -0.714540 0.374942 -vn 0.897861 -0.284137 0.336321 -vn 0.794821 -0.533487 0.289225 -vn 0.827590 -0.457878 0.324718 -vn 0.072237 -0.977132 -0.199989 -vn 0.035271 -0.981040 -0.190571 -vn 0.219139 -0.948685 -0.227980 -vn 0.219139 -0.948685 -0.227980 -vn 0.035271 -0.981040 -0.190571 -vn -0.000000 -0.979515 -0.201370 -vn 0.006740 -0.119147 0.992854 -vn -0.014744 -0.114681 0.993293 -vn 0.010643 -0.117305 0.993039 -vn 0.010643 -0.117305 0.993039 -vn -0.014744 -0.114681 0.993293 -vn -0.016403 -0.114530 0.993284 -vn 0.001677 -0.122098 0.992517 -vn 0.006740 -0.119147 0.992854 -vn 0.002947 -0.126501 0.991962 -vn 0.002947 -0.126501 0.991962 -vn 0.006740 -0.119147 0.992854 -vn 0.010643 -0.117305 0.993039 -vn -0.015049 -0.110728 0.993737 -vn -0.008436 -0.120558 0.992670 -vn 0.002947 -0.126501 0.991962 -vn 0.002947 -0.126501 0.991962 -vn -0.008436 -0.120558 0.992670 -vn 0.001677 -0.122098 0.992517 -vn -0.004325 -0.103474 0.994623 -vn -0.007502 -0.104044 0.994544 -vn -0.015049 -0.110728 0.993737 -vn -0.015049 -0.110728 0.993737 -vn -0.007502 -0.104044 0.994544 -vn -0.008436 -0.120558 0.992670 -vn -0.005018 -0.111652 0.993735 -vn -0.005159 -0.111410 0.993761 -vn -0.004325 -0.103474 0.994623 -vn -0.004325 -0.103474 0.994623 -vn -0.005159 -0.111410 0.993761 -vn -0.007502 -0.104044 0.994544 -vn -0.000000 -0.103656 0.994613 -vn 0.000000 -0.104054 0.994572 -vn -0.005018 -0.111652 0.993735 -vn -0.005018 -0.111652 0.993735 -vn 0.000000 -0.104054 0.994572 -vn -0.005159 -0.111410 0.993761 -vn 0.383256 0.917388 0.107303 -vn 0.381629 0.918042 0.107509 -vn 0.000001 0.993140 0.116931 -vn 0.000001 0.993140 0.116931 -vn 0.381629 0.918042 0.107509 -vn -0.000000 0.993137 0.116961 -vn 0.944421 0.326503 0.038270 -vn 0.996158 0.087056 0.009500 -vn 0.944072 0.327512 0.038261 -vn 0.944072 0.327512 0.038261 -vn 0.996158 0.087056 0.009500 -vn 0.996136 0.087303 0.009553 -vn 0.383256 0.917388 0.107303 -vn 0.734848 0.673668 0.078545 -vn 0.381629 0.918042 0.107509 -vn 0.381629 0.918042 0.107509 -vn 0.734848 0.673668 0.078545 -vn 0.733828 0.674769 0.078632 -vn 0.944421 0.326503 0.038270 -vn 0.944072 0.327512 0.038261 -vn 0.734848 0.673668 0.078545 -vn 0.734848 0.673668 0.078545 -vn 0.944072 0.327512 0.038261 -vn 0.733828 0.674769 0.078632 -vn 0.999999 0.000168 -0.001210 -vn 0.999999 0.000474 -0.001197 -vn 0.999999 0.000133 -0.001444 -vn 0.999999 0.000474 -0.001197 -vn 0.999999 0.000168 -0.001210 -vn 0.996136 0.087303 0.009553 -vn 0.999999 0.000474 -0.001197 -vn 0.996136 0.087303 0.009553 -vn 0.996158 0.087056 0.009500 -vn 1.000000 0.000059 -0.000503 -vn 1.000000 0.000066 -0.000537 -vn 0.999999 -0.000103 -0.001265 -vn 0.999999 0.000168 -0.001210 -vn 0.999999 -0.000103 -0.001265 -vn 1.000000 0.000066 -0.000537 -vn 0.999999 -0.000103 -0.001265 -vn 0.999999 0.000168 -0.001210 -vn 0.999999 0.000133 -0.001444 -vn -0.874368 0.142892 0.463748 -vn -0.769637 0.335024 0.543524 -vn -0.839359 0.129821 0.527847 -vn -0.769637 0.335024 0.543524 -vn -0.750336 0.293332 0.592412 -vn -0.839359 0.129821 0.527847 -vn -0.116849 0.176925 0.977263 -vn 0.000000 0.212854 0.977084 -vn -0.301220 0.372748 0.877682 -vn 0.000000 0.212854 0.977084 -vn -0.000000 0.428954 0.903327 -vn -0.301220 0.372748 0.877682 -vn 0.000000 0.212854 0.977084 -vn -0.116849 0.176925 0.977263 -vn 0.000001 0.613691 0.789546 -vn -0.116849 0.176925 0.977263 -vn -0.275020 0.577380 0.768763 -vn 0.000001 0.613691 0.789546 -vn -0.872815 -0.299763 0.385144 -vn -0.897861 -0.284137 0.336321 -vn -0.876646 -0.220404 0.427685 -vn -0.897861 -0.284137 0.336321 -vn -0.879103 -0.123735 0.460291 -vn -0.876646 -0.220404 0.427685 -vn -0.839359 0.129821 0.527847 -vn -0.725879 0.010493 0.687742 -vn -0.878719 0.118802 0.462319 -vn -0.736369 -0.009801 0.676509 -vn -0.650778 0.155174 0.743242 -vn -0.667494 -0.004835 0.744600 -vn -0.650778 0.155174 0.743242 -vn -0.558854 0.112881 0.821547 -vn -0.667494 -0.004835 0.744600 -vn -0.865777 -0.017836 0.500112 -vn -0.874368 0.142892 0.463748 -vn -0.878719 0.118802 0.462319 -vn -0.874368 0.142892 0.463748 -vn -0.839359 0.129821 0.527847 -vn -0.878719 0.118802 0.462319 -vn -0.872815 -0.299763 0.385144 -vn -0.868708 -0.239350 0.433657 -vn -0.667494 -0.004835 0.744600 -vn -0.868708 -0.239350 0.433657 -vn -0.736369 -0.009801 0.676509 -vn -0.667494 -0.004835 0.744600 -vn -0.872815 -0.299763 0.385144 -vn -0.876646 -0.220404 0.427685 -vn -0.868708 -0.239350 0.433657 -vn -0.876646 -0.220404 0.427685 -vn -0.899836 -0.220835 0.376201 -vn -0.868708 -0.239350 0.433657 -vn -0.563982 -0.086031 0.821293 -vn -0.423338 0.053242 0.904406 -vn -0.506635 -0.080128 0.858429 -vn -0.423338 0.053242 0.904406 -vn -0.328468 0.080050 0.941117 -vn -0.506635 -0.080128 0.858429 -vn -0.506635 -0.080128 0.858429 -vn -0.328468 0.080050 0.941117 -vn -0.345102 -0.069683 0.935975 -vn -0.328468 0.080050 0.941117 -vn -0.069477 0.062895 0.995599 -vn -0.345102 -0.069683 0.935975 -vn 0.102959 -0.125140 0.986782 -vn 0.231638 -0.421065 0.876954 -vn -0.094883 -0.123582 0.987788 -vn 0.231638 -0.421065 0.876954 -vn -0.160782 -0.314716 0.935469 -vn -0.094883 -0.123582 0.987788 -vn -0.267556 -0.406753 0.873479 -vn -0.160782 -0.314716 0.935469 -vn 0.072677 -0.707963 0.702500 -vn -0.160782 -0.314716 0.935469 -vn 0.231638 -0.421065 0.876954 -vn 0.072677 -0.707963 0.702500 -vn -0.298116 -0.370998 0.879481 -vn -0.328776 -0.398405 0.856259 -vn -0.138480 -0.732187 0.666877 -vn -0.328776 -0.398405 0.856259 -vn -0.086429 -0.753305 0.651967 -vn -0.138480 -0.732187 0.666877 -vn -0.175494 -0.359003 0.916689 -vn -0.298116 -0.370998 0.879481 -vn -0.078068 -0.775295 0.626756 -vn -0.298116 -0.370998 0.879481 -vn -0.138480 -0.732187 0.666877 -vn -0.078068 -0.775295 0.626756 -vn 0.000000 -0.331736 0.943372 -vn -0.175494 -0.359003 0.916689 -vn -0.000000 -0.773117 0.634263 -vn -0.175494 -0.359003 0.916689 -vn -0.078068 -0.775295 0.626756 -vn -0.000000 -0.773117 0.634263 -vn -0.345102 -0.069683 0.935975 -vn -0.069477 0.062895 0.995599 -vn -0.094883 -0.123582 0.987788 -vn -0.069477 0.062895 0.995599 -vn 0.102959 -0.125140 0.986782 -vn -0.094883 -0.123582 0.987788 -vn -0.563982 -0.086031 0.821293 -vn -0.506635 -0.080128 0.858429 -vn -0.756897 -0.413234 0.506304 -vn -0.506635 -0.080128 0.858429 -vn -0.755254 -0.322587 0.570552 -vn -0.756897 -0.413234 0.506304 -vn -0.506635 -0.080128 0.858429 -vn -0.345102 -0.069683 0.935975 -vn -0.755254 -0.322587 0.570552 -vn -0.345102 -0.069683 0.935975 -vn -0.712964 -0.201500 0.671625 -vn -0.755254 -0.322587 0.570552 -vn -0.094883 -0.123582 0.987788 -vn -0.646545 -0.091367 0.757385 -vn -0.345102 -0.069683 0.935975 -vn -0.646545 -0.091367 0.757385 -vn -0.712964 -0.201500 0.671625 -vn -0.345102 -0.069683 0.935975 -vn -0.599921 -0.116149 0.791584 -vn -0.490471 -0.015544 0.871319 -vn -0.563982 -0.086031 0.821293 -vn -0.490471 -0.015544 0.871319 -vn -0.423338 0.053242 0.904406 -vn -0.563982 -0.086031 0.821293 -vn -0.298116 -0.370998 0.879481 -vn -0.390125 0.174215 0.904130 -vn -0.328776 -0.398405 0.856259 -vn -0.390125 0.174215 0.904130 -vn -0.491149 0.152390 0.857642 -vn -0.328776 -0.398405 0.856259 -vn -0.298116 -0.370998 0.879481 -vn -0.175494 -0.359003 0.916689 -vn -0.390125 0.174215 0.904130 -vn -0.175494 -0.359003 0.916689 -vn -0.230528 0.218428 0.948233 -vn -0.390125 0.174215 0.904130 -vn 0.000000 -0.331736 0.943372 -vn -0.000000 0.233936 0.972252 -vn -0.175494 -0.359003 0.916689 -vn -0.000000 0.233936 0.972252 -vn -0.230528 0.218428 0.948233 -vn -0.175494 -0.359003 0.916689 -vn -0.160782 -0.314716 0.935469 -vn -0.595966 0.010468 0.802941 -vn -0.094883 -0.123582 0.987788 -vn -0.595966 0.010468 0.802941 -vn -0.646545 -0.091367 0.757385 -vn -0.094883 -0.123582 0.987788 -vn -0.540099 0.136138 0.830518 -vn -0.595966 0.010468 0.802941 -vn -0.267556 -0.406753 0.873479 -vn -0.595966 0.010468 0.802941 -vn -0.160782 -0.314716 0.935469 -vn -0.267556 -0.406753 0.873479 -vn -0.513045 0.085684 0.854075 -vn -0.547185 0.096805 0.831395 -vn -0.491149 0.152390 0.857642 -vn -0.547185 0.096805 0.831395 -vn -0.540099 0.136138 0.830518 -vn -0.491149 0.152390 0.857642 -vn -0.513045 0.085684 0.854075 -vn -0.491149 0.152390 0.857642 -vn -0.385025 0.087869 0.918714 -vn -0.491149 0.152390 0.857642 -vn -0.390125 0.174215 0.904130 -vn -0.385025 0.087869 0.918714 -vn -0.385025 0.087869 0.918714 -vn -0.390125 0.174215 0.904130 -vn -0.208441 0.117321 0.970973 -vn -0.390125 0.174215 0.904130 -vn -0.230528 0.218428 0.948233 -vn -0.208441 0.117321 0.970973 -vn -0.208441 0.117321 0.970973 -vn -0.230528 0.218428 0.948233 -vn -0.000000 0.141983 0.989869 -vn -0.230528 0.218428 0.948233 -vn -0.000000 0.233936 0.972252 -vn -0.000000 0.141983 0.989869 -vn -0.129730 -0.990616 -0.043006 -vn -0.102818 -0.994359 -0.026060 -vn -0.072237 -0.977132 -0.199989 -vn -0.102818 -0.994359 -0.026060 -vn -0.116236 -0.981237 -0.153826 -vn -0.072237 -0.977132 -0.199989 -vn -0.238285 -0.957055 -0.165127 -vn -0.252549 -0.961967 -0.104105 -vn -0.244430 -0.956219 -0.160933 -vn -0.252549 -0.961967 -0.104105 -vn -0.257569 -0.961354 -0.097240 -vn -0.244430 -0.956219 -0.160933 -vn -0.252549 -0.961967 -0.104105 -vn -0.264099 -0.963244 -0.049115 -vn -0.257569 -0.961354 -0.097240 -vn -0.264099 -0.963244 -0.049115 -vn -0.275481 -0.960323 -0.043470 -vn -0.257569 -0.961354 -0.097240 -vn -0.238285 -0.957055 -0.165127 -vn -0.244430 -0.956219 -0.160933 -vn -0.286498 -0.934423 -0.211593 -vn -0.244430 -0.956219 -0.160933 -vn -0.219139 -0.948685 -0.227979 -vn -0.286498 -0.934423 -0.211593 -vn -0.793375 0.044918 0.607073 -vn -0.815336 0.129486 0.564323 -vn -0.736369 -0.009801 0.676509 -vn -0.815336 0.129486 0.564323 -vn -0.650778 0.155174 0.743242 -vn -0.736369 -0.009801 0.676509 -vn -0.856567 -0.147677 0.494454 -vn -0.793375 0.044918 0.607073 -vn -0.868708 -0.239350 0.433657 -vn -0.793375 0.044918 0.607073 -vn -0.736369 -0.009801 0.676509 -vn -0.868708 -0.239350 0.433657 -vn 0.000000 0.852896 0.522081 -vn -0.440416 0.756677 0.483190 -vn -0.000000 0.428954 0.903327 -vn -0.440416 0.756677 0.483190 -vn -0.301220 0.372748 0.877682 -vn -0.000000 0.428954 0.903327 -vn -0.693405 0.534698 0.482998 -vn -0.746744 0.367133 0.554606 -vn -0.436515 0.194333 0.878459 -vn -0.746744 0.367133 0.554606 -vn -0.577924 0.320947 0.750331 -vn -0.436515 0.194333 0.878459 -vn -0.839359 0.129821 0.527847 -vn -0.750336 0.293332 0.592412 -vn -0.804042 0.222216 0.551485 -vn -0.750336 0.293332 0.592412 -vn -0.795047 0.365673 0.483925 -vn -0.804042 0.222216 0.551485 -vn -0.804042 0.222216 0.551485 -vn -0.637787 0.094809 0.764355 -vn -0.725879 0.010493 0.687742 -vn -0.725879 0.010493 0.687742 -vn -0.839359 0.129821 0.527847 -vn -0.804042 0.222216 0.551485 -vn -0.815336 0.129486 0.564323 -vn -0.586431 0.081488 0.805890 -vn -0.650778 0.155174 0.743242 -vn -0.586431 0.081488 0.805890 -vn -0.583298 0.099182 0.806180 -vn -0.650778 0.155174 0.743242 -vn -0.423338 0.053242 0.904406 -vn -0.396273 0.237589 0.886859 -vn -0.328468 0.080050 0.941117 -vn -0.396273 0.237589 0.886859 -vn -0.332958 0.174510 0.926653 -vn -0.328468 0.080050 0.941117 -vn -0.328468 0.080050 0.941117 -vn -0.332958 0.174510 0.926653 -vn -0.069477 0.062895 0.995599 -vn -0.332958 0.174510 0.926653 -vn -0.176995 0.117973 0.977116 -vn -0.069477 0.062895 0.995599 -vn 0.102959 -0.125140 0.986782 -vn -0.156165 -0.047092 0.986608 -vn 0.231638 -0.421065 0.876954 -vn 0.072677 -0.707963 0.702500 -vn 0.231638 -0.421065 0.876954 -vn -0.077064 -0.547431 0.833295 -vn 0.231638 -0.421065 0.876954 -vn 0.054624 -0.259422 0.964218 -vn -0.077064 -0.547431 0.833295 -vn -0.138480 -0.732187 0.666877 -vn -0.086429 -0.753305 0.651967 -vn -0.247668 -0.520946 0.816869 -vn -0.086429 -0.753305 0.651967 -vn -0.212866 -0.594441 0.775453 -vn -0.247668 -0.520946 0.816869 -vn -0.078068 -0.775295 0.626756 -vn -0.138480 -0.732187 0.666877 -vn -0.142004 -0.600232 0.787119 -vn -0.138480 -0.732187 0.666877 -vn -0.247668 -0.520946 0.816869 -vn -0.142004 -0.600232 0.787119 -vn -0.000000 -0.773117 0.634263 -vn -0.078068 -0.775295 0.626756 -vn -0.000000 -0.616413 0.787423 -vn -0.078068 -0.775295 0.626756 -vn -0.142004 -0.600232 0.787119 -vn -0.000000 -0.616413 0.787423 -vn -0.069477 0.062895 0.995599 -vn -0.176995 0.117973 0.977116 -vn 0.102959 -0.125140 0.986782 -vn -0.176995 0.117973 0.977116 -vn -0.156165 -0.047092 0.986608 -vn 0.102959 -0.125140 0.986782 -vn -0.490471 -0.015544 0.871319 -vn -0.465480 0.198176 0.862586 -vn -0.423338 0.053242 0.904406 -vn -0.465480 0.198176 0.862586 -vn -0.396273 0.237589 0.886859 -vn -0.423338 0.053242 0.904406 -vn -0.650778 0.155174 0.743242 -vn -0.583298 0.099182 0.806180 -vn -0.558854 0.112881 0.821547 -vn -0.558854 0.112881 0.821547 -vn -0.583298 0.099182 0.806180 -vn -0.508398 -0.001751 0.861120 -vn -0.583298 0.099182 0.806180 -vn -0.524767 0.165762 0.834951 -vn -0.508398 -0.001751 0.861120 -vn 0.231638 -0.421065 0.876954 -vn -0.156165 -0.047092 0.986608 -vn 0.054624 -0.259422 0.964218 -vn -0.156165 -0.047092 0.986608 -vn 0.223344 -0.078069 0.971608 -vn 0.054624 -0.259422 0.964218 -vn -0.176995 0.117973 0.977116 -vn 0.116951 0.164914 0.979350 -vn -0.156165 -0.047092 0.986608 -vn 0.116951 0.164914 0.979350 -vn 0.223344 -0.078069 0.971608 -vn -0.156165 -0.047092 0.986608 -vn -0.332958 0.174510 0.926653 -vn -0.235209 0.242648 0.941169 -vn -0.176995 0.117973 0.977116 -vn -0.235209 0.242648 0.941169 -vn 0.116951 0.164914 0.979350 -vn -0.176995 0.117973 0.977116 -vn -0.396273 0.237589 0.886859 -vn -0.250798 0.356808 0.899882 -vn -0.332958 0.174510 0.926653 -vn -0.250798 0.356808 0.899882 -vn -0.235209 0.242648 0.941169 -vn -0.332958 0.174510 0.926653 -vn -0.465480 0.198176 0.862586 -vn -0.327185 0.359445 0.873927 -vn -0.396273 0.237589 0.886859 -vn -0.327185 0.359445 0.873927 -vn -0.250798 0.356808 0.899882 -vn -0.396273 0.237589 0.886859 -vn -0.375740 0.369738 0.849772 -vn -0.524767 0.165762 0.834951 -vn -0.476121 0.310210 0.822848 -vn -0.524767 0.165762 0.834951 -vn -0.583298 0.099182 0.806180 -vn -0.476121 0.310210 0.822848 -vn -0.586431 0.081488 0.805890 -vn -0.578472 0.274016 0.768300 -vn -0.583298 0.099182 0.806180 -vn -0.578472 0.274016 0.768300 -vn -0.476121 0.310210 0.822848 -vn -0.583298 0.099182 0.806180 -vn -0.637787 0.094809 0.764355 -vn -0.804042 0.222216 0.551485 -vn -0.701511 0.141462 0.698478 -vn -0.804042 0.222216 0.551485 -vn -0.693125 0.218098 0.687030 -vn -0.701511 0.141462 0.698478 -vn -0.795047 0.365673 0.483925 -vn -0.692277 0.290506 0.660575 -vn -0.804042 0.222216 0.551485 -vn -0.692277 0.290506 0.660575 -vn -0.693125 0.218098 0.687030 -vn -0.804042 0.222216 0.551485 -vn -0.746744 0.367133 0.554606 -vn -0.665438 0.371469 0.647459 -vn -0.795047 0.365673 0.483925 -vn -0.665438 0.371469 0.647459 -vn -0.692277 0.290506 0.660575 -vn -0.795047 0.365673 0.483925 -vn -0.746744 0.367133 0.554606 -vn -0.693405 0.534698 0.482998 -vn -0.665438 0.371469 0.647459 -vn -0.693405 0.534698 0.482998 -vn -0.565548 0.401311 0.720490 -vn -0.665438 0.371469 0.647459 -vn -0.440416 0.756677 0.483190 -vn 0.000000 0.852896 0.522081 -vn -0.395912 0.622565 0.675031 -vn 0.000000 0.852896 0.522081 -vn 0.000000 0.735528 0.677494 -vn -0.395912 0.622565 0.675031 -vn -0.692277 0.290506 0.660575 -vn -0.665438 0.371469 0.647459 -vn -0.492427 0.164830 0.854603 -vn -0.665438 0.371469 0.647459 -vn -0.511353 0.270647 0.815640 -vn -0.492427 0.164830 0.854603 -vn -0.665438 0.371469 0.647459 -vn -0.565548 0.401311 0.720490 -vn -0.511353 0.270647 0.815640 -vn -0.565548 0.401311 0.720490 -vn -0.410565 0.235886 0.880792 -vn -0.511353 0.270647 0.815640 -vn -0.395912 0.622565 0.675031 -vn 0.000000 0.735528 0.677494 -vn -0.283113 0.470702 0.835635 -vn 0.000000 0.735528 0.677494 -vn 0.000000 0.588858 0.808237 -vn -0.283113 0.470702 0.835635 -vn -0.646545 -0.091367 0.757385 -vn -0.693829 -0.131658 0.708002 -vn -0.712964 -0.201500 0.671625 -vn -0.693829 -0.131658 0.708002 -vn -0.739324 -0.227264 0.633838 -vn -0.712964 -0.201500 0.671625 -vn -0.267556 -0.406753 0.873479 -vn -0.328776 -0.398405 0.856259 -vn -0.540099 0.136138 0.830518 -vn -0.328776 -0.398405 0.856259 -vn -0.491149 0.152390 0.857642 -vn -0.540099 0.136138 0.830518 -vn -0.328776 -0.398405 0.856259 -vn -0.267556 -0.406753 0.873479 -vn -0.086429 -0.753305 0.651967 -vn -0.267556 -0.406753 0.873479 -vn 0.072677 -0.707963 0.702500 -vn -0.086429 -0.753305 0.651967 -vn -0.086429 -0.753305 0.651967 -vn 0.072677 -0.707963 0.702500 -vn -0.212866 -0.594441 0.775453 -vn 0.072677 -0.707963 0.702500 -vn -0.077064 -0.547431 0.833295 -vn -0.212866 -0.594441 0.775453 -vn -0.302568 -0.139599 -0.942849 -vn -0.292919 -0.140833 -0.945709 -vn -0.192392 -0.228822 -0.954267 -vn -0.292919 -0.140833 -0.945709 -vn -0.238326 -0.280305 -0.929855 -vn -0.192392 -0.228822 -0.954267 -vn 0.885111 0.090062 -0.456582 -vn 0.901202 0.095875 -0.422662 -vn 0.908319 0.101640 -0.405741 -vn 0.838070 0.099637 -0.536387 -vn 0.872698 0.061054 -0.484428 -vn 0.885111 0.090062 -0.456582 -vn 0.872698 0.061054 -0.484428 -vn 0.901202 0.095875 -0.422662 -vn 0.885111 0.090062 -0.456582 -vn 0.906363 0.121056 -0.404786 -vn 0.908319 0.101640 -0.405741 -vn 0.918398 0.104089 -0.381720 -vn 0.908319 0.101640 -0.405741 -vn 0.901202 0.095875 -0.422662 -vn 0.918398 0.104089 -0.381720 -vn 0.838271 0.058954 -0.542057 -vn 0.841805 0.021328 -0.539360 -vn 0.848484 0.011890 -0.529087 -vn -0.004213 -0.178993 0.983841 -vn -0.000875 -0.119271 0.992861 -vn -0.005068 -0.169127 0.985581 -vn -0.000875 -0.119271 0.992861 -vn 0.000283 -0.119211 0.992869 -vn -0.005068 -0.169127 0.985581 -vn 0.028557 -0.125072 0.991737 -vn 0.033619 -0.126186 0.991437 -vn 0.030091 -0.127525 0.991379 -vn 0.033619 -0.126186 0.991437 -vn 0.033272 -0.126422 0.991418 -vn 0.030091 -0.127525 0.991379 -vn 0.009534 -0.119049 0.992843 -vn 0.028557 -0.125072 0.991737 -vn 0.012070 -0.128801 0.991597 -vn 0.028557 -0.125072 0.991737 -vn 0.030091 -0.127525 0.991379 -vn 0.012070 -0.128801 0.991597 -vn -0.008610 -0.088195 0.996066 -vn 0.009534 -0.119049 0.992843 -vn -0.006816 -0.096394 0.995320 -vn 0.009534 -0.119049 0.992843 -vn 0.012070 -0.128801 0.991597 -vn -0.006816 -0.096394 0.995320 -vn -0.008610 -0.088195 0.996066 -vn -0.006816 -0.096394 0.995320 -vn 0.000000 -0.094600 0.995515 -vn -0.006816 -0.096394 0.995320 -vn 0.000000 -0.097825 0.995204 -vn 0.000000 -0.094600 0.995515 -vn -0.629564 -0.097579 0.770797 -vn -0.827590 -0.457878 0.324718 -vn -0.897861 -0.284137 0.336321 -vn -0.599921 -0.116149 0.791584 -vn -0.753614 -0.507019 0.418327 -vn -0.827590 -0.457878 0.324718 -vn -0.753614 -0.507019 0.418327 -vn -0.692347 -0.561281 0.453452 -vn -0.794821 -0.533487 0.289225 -vn -0.794821 -0.533487 0.289225 -vn -0.827590 -0.457878 0.324718 -vn -0.753614 -0.507019 0.418327 -vn -0.712964 -0.201500 0.671625 -vn -0.739324 -0.227264 0.633838 -vn -0.755254 -0.322587 0.570552 -vn -0.739324 -0.227264 0.633838 -vn -0.757093 -0.350156 0.551544 -vn -0.755254 -0.322587 0.570552 -vn -0.756897 -0.413234 0.506304 -vn -0.692347 -0.561281 0.453452 -vn -0.753614 -0.507019 0.418327 -vn -0.599921 -0.116149 0.791584 -vn -0.563982 -0.086031 0.821293 -vn -0.753614 -0.507019 0.418327 -vn -0.563982 -0.086031 0.821293 -vn -0.756897 -0.413234 0.506304 -vn -0.753614 -0.507019 0.418327 -vn -0.559636 0.486691 0.670775 -vn -0.275020 0.577380 0.768763 -vn -0.577924 0.320947 0.750331 -vn -0.275020 0.577380 0.768763 -vn -0.116849 0.176925 0.977263 -vn -0.577924 0.320947 0.750331 -vn -0.769637 0.335024 0.543524 -vn -0.559636 0.486691 0.670775 -vn -0.750336 0.293332 0.592412 -vn -0.559636 0.486691 0.670775 -vn -0.577924 0.320947 0.750331 -vn -0.750336 0.293332 0.592412 -vn -0.235209 0.242648 0.941169 -vn -0.517412 0.107566 0.848949 -vn 0.116951 0.164914 0.979350 -vn -0.250798 0.356808 0.899882 -vn -0.503238 0.171977 0.846862 -vn -0.235209 0.242648 0.941169 -vn -0.503238 0.171977 0.846862 -vn -0.517412 0.107566 0.848949 -vn -0.235209 0.242648 0.941169 -vn -0.327185 0.359445 0.873927 -vn -0.576598 0.119160 0.808292 -vn -0.250798 0.356808 0.899882 -vn -0.576598 0.119160 0.808292 -vn -0.503238 0.171977 0.846862 -vn -0.250798 0.356808 0.899882 -vn -0.476121 0.310210 0.822848 -vn -0.622967 0.010702 0.782175 -vn -0.375740 0.369738 0.849772 -vn -0.622967 0.010702 0.782175 -vn -0.613048 0.091494 0.784730 -vn -0.375740 0.369738 0.849772 -vn -0.622967 0.010702 0.782175 -vn -0.476121 0.310210 0.822848 -vn -0.578472 0.274016 0.768300 -vn -0.578472 0.274016 0.768300 -vn -0.600779 -0.009294 0.799361 -vn -0.622967 0.010702 0.782175 -vn -0.701511 0.141462 0.698478 -vn -0.693125 0.218098 0.687030 -vn -0.561167 0.016480 0.827539 -vn -0.693125 0.218098 0.687030 -vn -0.534016 0.096637 0.839934 -vn -0.561167 0.016480 0.827539 -vn -0.693125 0.218098 0.687030 -vn -0.692277 0.290506 0.660575 -vn -0.534016 0.096637 0.839934 -vn -0.692277 0.290506 0.660575 -vn -0.492427 0.164830 0.854603 -vn -0.534016 0.096637 0.839934 -vn -0.433159 0.872884 -0.224606 -vn -0.420776 0.879811 -0.221087 -vn 0.000000 0.965908 -0.258887 -vn -0.420776 0.879811 -0.221087 -vn -0.000000 0.965233 -0.261391 -vn 0.000000 0.965908 -0.258887 -vn -0.775173 0.531858 -0.340932 -vn -0.662547 0.655515 -0.362398 -vn -0.689916 0.626465 -0.362709 -vn -0.654905 -0.078622 0.751610 -vn -0.693829 -0.131658 0.708002 -vn -0.646545 -0.091367 0.757385 -vn -0.547185 0.096805 0.831395 -vn -0.580964 0.116968 0.805481 -vn -0.540099 0.136138 0.830518 -vn -0.580964 0.116968 0.805481 -vn -0.552822 0.127057 0.823556 -vn -0.540099 0.136138 0.830518 -vn -0.238326 -0.280305 -0.929855 -vn -0.413320 -0.375423 -0.829593 -vn -0.205507 -0.341339 -0.917199 -vn -0.740528 -0.552831 0.382095 -vn -0.897861 -0.284137 0.336321 -vn -0.794821 -0.533487 0.289225 -vn -0.740528 -0.552831 0.382095 -vn -0.825379 0.027816 0.563894 -vn -0.879103 -0.123735 0.460291 -vn -0.879103 -0.123735 0.460291 -vn -0.897861 -0.284137 0.336321 -vn -0.740528 -0.552831 0.382095 -vn -0.275481 -0.960323 -0.043470 -vn -0.264099 -0.963244 -0.049115 -vn -0.202615 -0.977155 -0.064149 -vn -0.264099 -0.963244 -0.049115 -vn -0.185655 -0.980160 -0.069422 -vn -0.202615 -0.977155 -0.064149 -vn -0.005068 -0.169127 0.985581 -vn -0.005265 -0.232431 0.972599 -vn -0.004213 -0.178993 0.983841 -vn -0.005265 -0.232431 0.972599 -vn -0.001215 -0.234994 0.971996 -vn -0.004213 -0.178993 0.983841 -vn -0.946101 -0.091808 0.310587 -vn -0.933835 -0.126242 0.334685 -vn -0.947651 -0.069522 0.311647 -vn 0.363064 -0.930250 0.053092 -vn 0.687639 -0.725988 0.009737 -vn 0.385532 -0.921257 0.051487 -vn 0.687639 -0.725988 0.009737 -vn 0.709098 -0.705084 0.006035 -vn 0.385532 -0.921257 0.051487 -vn 0.000000 -0.999654 0.026321 -vn 0.363064 -0.930250 0.053092 -vn 0.000000 -0.998690 0.051159 -vn 0.363064 -0.930250 0.053092 -vn 0.385532 -0.921257 0.051487 -vn 0.000000 -0.998690 0.051159 -vn 0.900186 -0.434841 0.024039 -vn 0.980425 -0.151730 0.125476 -vn 0.913375 -0.402926 0.058283 -vn 0.980425 -0.151730 0.125476 -vn 0.980184 -0.136733 0.143331 -vn 0.913375 -0.402926 0.058283 -vn 0.687639 -0.725988 0.009737 -vn 0.900186 -0.434841 0.024039 -vn 0.709098 -0.705084 0.006035 -vn 0.900186 -0.434841 0.024039 -vn 0.913375 -0.402926 0.058283 -vn 0.709098 -0.705084 0.006035 -vn 0.994612 -0.017356 0.102202 -vn 0.980184 -0.136733 0.143331 -vn 0.994065 -0.017268 0.107409 -vn 0.980184 -0.136733 0.143331 -vn 0.980425 -0.151730 0.125476 -vn 0.994065 -0.017268 0.107409 -vn 0.002828 -0.032587 -0.999465 -vn 0.000000 -0.031297 -0.999510 -vn 0.008149 -0.028624 -0.999557 -vn 0.000000 -0.031297 -0.999510 -vn 0.002828 -0.032587 -0.999465 -vn -0.002828 -0.032587 -0.999465 -vn -0.072237 -0.977132 -0.199989 -vn -0.116236 -0.981237 -0.153826 -vn -0.219139 -0.948685 -0.227979 -vn -0.116236 -0.981237 -0.153826 -vn -0.286498 -0.934423 -0.211593 -vn -0.219139 -0.948685 -0.227979 -vn 0.035271 -0.981040 -0.190571 -vn -0.035271 -0.981040 -0.190571 -vn -0.000000 -0.979515 -0.201370 -vn -0.823208 0.041906 0.566191 -vn -0.815336 0.129486 0.564323 -vn -0.877212 0.129258 0.462376 -vn -0.815336 0.129486 0.564323 -vn -0.793375 0.044918 0.607073 -vn -0.877212 0.129258 0.462376 -vn -0.605525 0.092770 0.790401 -vn -0.586431 0.081488 0.805890 -vn -0.823208 0.041906 0.566191 -vn -0.586431 0.081488 0.805890 -vn -0.815336 0.129486 0.564323 -vn -0.823208 0.041906 0.566191 -vn -0.676740 0.161393 0.718314 -vn -0.578472 0.274016 0.768300 -vn -0.605525 0.092770 0.790401 -vn -0.578472 0.274016 0.768300 -vn -0.586431 0.081488 0.805890 -vn -0.605525 0.092770 0.790401 -vn -0.375740 0.369738 0.849772 -vn -0.613048 0.091494 0.784730 -vn -0.327185 0.359445 0.873927 -vn -0.613048 0.091494 0.784730 -vn -0.576598 0.119160 0.808292 -vn -0.327185 0.359445 0.873927 -vn -0.524767 0.165762 0.834951 -vn -0.375740 0.369738 0.849772 -vn -0.465480 0.198176 0.862586 -vn -0.375740 0.369738 0.849772 -vn -0.327185 0.359445 0.873927 -vn -0.465480 0.198176 0.862586 -vn -0.508398 -0.001751 0.861120 -vn -0.524767 0.165762 0.834951 -vn -0.490471 -0.015544 0.871319 -vn -0.524767 0.165762 0.834951 -vn -0.465480 0.198176 0.862586 -vn -0.490471 -0.015544 0.871319 -vn -0.629564 -0.097579 0.770797 -vn -0.508398 -0.001751 0.861120 -vn -0.599921 -0.116149 0.791584 -vn -0.508398 -0.001751 0.861120 -vn -0.490471 -0.015544 0.871319 -vn -0.599921 -0.116149 0.791584 -vn -0.629564 -0.097579 0.770797 -vn -0.599921 -0.116149 0.791584 -vn -0.827590 -0.457878 0.324718 -vn -0.856567 -0.147677 0.494454 -vn -0.865777 -0.017836 0.500112 -vn -0.877212 0.129258 0.462376 -vn -0.877212 0.129258 0.462376 -vn -0.793375 0.044918 0.607073 -vn -0.856567 -0.147677 0.494454 -vn -0.946101 -0.091808 0.310587 -vn -0.947651 -0.069522 0.311647 -vn -0.921518 -0.135702 0.363854 -vn -0.885192 -0.082688 0.457819 -vn -0.856567 -0.147677 0.494454 -vn -0.921518 -0.135702 0.363854 -vn -0.856567 -0.147677 0.494454 -vn -0.868708 -0.239350 0.433657 -vn -0.921518 -0.135702 0.363854 -vn -0.868708 -0.239350 0.433657 -vn -0.899836 -0.220835 0.376201 -vn -0.921518 -0.135702 0.363854 -vn -0.329491 0.646994 0.687629 -vn 0.000001 0.672206 0.740364 -vn -0.275020 0.577380 0.768763 -vn 0.000001 0.672206 0.740364 -vn 0.000001 0.613691 0.789546 -vn -0.275020 0.577380 0.768763 -vn -0.630979 0.528195 0.568222 -vn -0.329491 0.646994 0.687629 -vn -0.559636 0.486691 0.670775 -vn -0.329491 0.646994 0.687629 -vn -0.275020 0.577380 0.768763 -vn -0.559636 0.486691 0.670775 -vn -0.829128 0.305413 0.468263 -vn -0.630979 0.528195 0.568222 -vn -0.769637 0.335024 0.543524 -vn -0.630979 0.528195 0.568222 -vn -0.559636 0.486691 0.670775 -vn -0.769637 0.335024 0.543524 -vn -0.903664 0.091600 0.418331 -vn -0.829128 0.305413 0.468263 -vn -0.874368 0.142892 0.463748 -vn -0.829128 0.305413 0.468263 -vn -0.769637 0.335024 0.543524 -vn -0.874368 0.142892 0.463748 -vn -0.874368 0.142892 0.463748 -vn -0.865777 -0.017836 0.500112 -vn -0.903664 0.091600 0.418331 -vn -0.903664 0.091600 0.418331 -vn -0.865777 -0.017836 0.500112 -vn -0.885192 -0.082688 0.457819 -vn -0.885192 -0.082688 0.457819 -vn -0.865777 -0.017836 0.500112 -vn -0.856567 -0.147677 0.494454 -vn -0.689916 0.626465 -0.362709 -vn -0.662547 0.655515 -0.362398 -vn -0.433159 0.872884 -0.224606 -vn -0.662547 0.655515 -0.362398 -vn -0.420776 0.879811 -0.221087 -vn -0.433159 0.872884 -0.224606 -vn -0.565548 0.401311 0.720490 -vn -0.395912 0.622565 0.675031 -vn -0.410565 0.235886 0.880792 -vn -0.395912 0.622565 0.675031 -vn -0.283113 0.470702 0.835635 -vn -0.410565 0.235886 0.880792 -vn -0.440416 0.756677 0.483190 -vn -0.395912 0.622565 0.675031 -vn -0.693405 0.534698 0.482998 -vn -0.395912 0.622565 0.675031 -vn -0.565548 0.401311 0.720490 -vn -0.693405 0.534698 0.482998 -vn -0.436515 0.194333 0.878459 -vn -0.301220 0.372748 0.877682 -vn -0.693405 0.534698 0.482998 -vn -0.301220 0.372748 0.877682 -vn -0.440416 0.756677 0.483190 -vn -0.693405 0.534698 0.482998 -vn -0.301220 0.372748 0.877682 -vn -0.436515 0.194333 0.878459 -vn -0.116849 0.176925 0.977263 -vn -0.436515 0.194333 0.878459 -vn -0.577924 0.320947 0.750331 -vn -0.116849 0.176925 0.977263 -vn 0.838070 0.099637 -0.536387 -vn 0.838271 0.058954 -0.542057 -vn 0.872698 0.061054 -0.484428 -vn 0.838271 0.058954 -0.542057 -vn 0.848484 0.011890 -0.529087 -vn 0.872698 0.061054 -0.484428 -vn -0.205507 -0.341339 -0.917199 -vn -0.178952 -0.332850 -0.925844 -vn -0.238326 -0.280305 -0.929855 -vn -0.178952 -0.332850 -0.925844 -vn -0.192392 -0.228822 -0.954267 -vn -0.238326 -0.280305 -0.929855 -vn -0.178952 -0.332850 -0.925844 -vn -0.205507 -0.341339 -0.917199 -vn -0.203431 -0.333613 -0.920499 -vn -0.205507 -0.341339 -0.917199 -vn -0.201666 -0.331943 -0.921490 -vn -0.203431 -0.333613 -0.920499 -vn -0.203431 -0.333613 -0.920499 -vn -0.201666 -0.331943 -0.921490 -vn -0.163755 -0.336084 -0.927487 -vn -0.201666 -0.331943 -0.921490 -vn -0.153812 -0.338505 -0.928308 -vn -0.163755 -0.336084 -0.927487 -vn 0.848484 0.011890 -0.529087 -vn 0.841805 0.021328 -0.539360 -vn 0.857799 0.017740 -0.513679 -vn 0.841805 0.021328 -0.539360 -vn 0.852988 -0.069459 -0.517289 -vn 0.857799 0.017740 -0.513679 -vn 0.857799 0.017740 -0.513679 -vn 0.852988 -0.069459 -0.517289 -vn 0.850491 -0.071994 -0.521040 -vn 0.850491 -0.071994 -0.521040 -vn 0.852988 -0.069459 -0.517289 -vn 0.846858 -0.092154 -0.523774 -vn 0.852988 -0.069459 -0.517289 -vn 0.847084 -0.090957 -0.523617 -vn 0.846858 -0.092154 -0.523774 -vn 0.846858 -0.092154 -0.523774 -vn 0.847084 -0.090957 -0.523617 -vn 0.856333 -0.079551 -0.510260 -vn 0.847084 -0.090957 -0.523617 -vn 0.858056 -0.079184 -0.507414 -vn 0.856333 -0.079551 -0.510260 -vn 0.000000 -0.932573 -0.360982 -vn 0.000000 -0.932573 -0.360982 -vn 0.000000 -0.953392 -0.301735 -vn 0.000000 -0.932573 -0.360982 -vn 0.000000 -0.953392 -0.301735 -vn 0.000000 -0.953392 -0.301735 -vn 0.000000 -0.972069 -0.234696 -vn 0.000000 -0.972069 -0.234696 -vn 0.000000 -0.976110 -0.217278 -vn 0.000000 -0.972069 -0.234696 -vn 0.000000 -0.976110 -0.217278 -vn 0.000000 -0.976110 -0.217278 -vn 0.000000 -0.953392 -0.301735 -vn 0.000000 -0.953392 -0.301735 -vn 0.000000 -0.972069 -0.234696 -vn 0.000000 -0.953392 -0.301735 -vn 0.000000 -0.972069 -0.234696 -vn 0.000000 -0.972069 -0.234696 -vn 0.000000 -0.264205 -0.964467 -vn 0.000000 -0.264205 -0.964467 -vn 0.000000 -0.264205 -0.964467 -vn 0.000000 -0.264205 -0.964467 -vn 0.000000 -0.264205 -0.964467 -vn 0.000000 -0.264205 -0.964467 -vn -0.478456 -0.790218 0.382931 -vn -0.276536 -0.885350 0.373742 -vn -0.740528 -0.552831 0.382095 -vn -0.740528 -0.552831 0.382095 -vn -0.794821 -0.533487 0.289225 -vn -0.590635 -0.714541 0.374944 -vn -0.750336 0.293332 0.592412 -vn -0.577924 0.320947 0.750331 -vn -0.795047 0.365673 0.483925 -vn -0.577924 0.320947 0.750331 -vn -0.746744 0.367133 0.554606 -vn -0.795047 0.365673 0.483925 -vn -0.646545 -0.091367 0.757385 -vn -0.595966 0.010468 0.802941 -vn -0.654905 -0.078622 0.751610 -vn -0.595966 0.010468 0.802941 -vn -0.645965 0.010516 0.763295 -vn -0.654905 -0.078622 0.751610 -vn -0.540099 0.136138 0.830518 -vn -0.552822 0.127057 0.823556 -vn -0.595966 0.010468 0.802941 -vn -0.552822 0.127057 0.823556 -vn -0.645965 0.010516 0.763295 -vn -0.595966 0.010468 0.802941 -vn -0.251850 0.142173 0.957266 -vn -0.148081 0.146979 0.977992 -vn -0.000000 0.162236 0.986752 -vn -0.148081 0.146979 0.977992 -vn 0.000000 0.141845 0.989889 -vn -0.000000 0.162236 0.986752 -vn -0.309238 0.165614 0.936453 -vn -0.258904 0.164100 0.951861 -vn -0.419722 0.109486 0.901025 -vn -0.419722 0.109486 0.901025 -vn -0.258904 0.164100 0.951861 -vn -0.251850 0.142173 0.957266 -vn -0.251850 0.142173 0.957266 -vn -0.258904 0.164100 0.951861 -vn -0.148081 0.146979 0.977992 -vn -0.419722 0.109486 0.901025 -vn -0.564812 0.045086 0.823987 -vn -0.612310 0.047672 0.789179 -vn -0.612310 0.047672 0.789179 -vn -0.606924 0.075892 0.791128 -vn -0.419722 0.109486 0.901025 -vn -0.419722 0.109486 0.901025 -vn -0.606924 0.075892 0.791128 -vn -0.543709 0.088666 0.834577 -vn -0.419722 0.109486 0.901025 -vn -0.543709 0.088666 0.834577 -vn -0.454197 0.114604 0.883499 -vn -0.454197 0.114604 0.883499 -vn -0.309238 0.165614 0.936453 -vn -0.419722 0.109486 0.901025 -vn -0.669690 0.002394 0.742637 -vn -0.564812 0.045086 0.823987 -vn -0.671572 0.000921 0.740939 -vn -0.671572 0.000921 0.740939 -vn -0.564812 0.045086 0.823987 -vn -0.643622 0.003589 0.765335 -vn -0.643622 0.003589 0.765335 -vn -0.564812 0.045086 0.823987 -vn -0.639893 0.000847 0.768464 -vn -0.612310 0.047672 0.789179 -vn -0.564812 0.045086 0.823987 -vn -0.636933 0.013998 0.770792 -vn -0.636933 0.013998 0.770792 -vn -0.564812 0.045086 0.823987 -vn -0.657122 0.006114 0.753760 -vn -0.564812 0.045086 0.823987 -vn -0.669690 0.002394 0.742637 -vn -0.657122 0.006114 0.753760 -vn -0.643622 0.003589 0.765335 -vn -0.639893 0.000847 0.768464 -vn -0.683680 -0.002210 0.729779 -vn -0.639893 0.000847 0.768464 -vn -0.627557 -0.013526 0.778453 -vn -0.683680 -0.002210 0.729779 -vn -0.683680 -0.002210 0.729779 -vn -0.627557 -0.013526 0.778453 -vn -0.640497 -0.013131 0.767849 -vn -0.667494 -0.004835 0.744600 -vn -0.558854 0.112881 0.821547 -vn -0.629564 -0.097579 0.770797 -vn -0.558854 0.112881 0.821547 -vn -0.508398 -0.001751 0.861120 -vn -0.629564 -0.097579 0.770797 -vn -0.897861 -0.284137 0.336321 -vn -0.872815 -0.299763 0.385144 -vn -0.629564 -0.097579 0.770797 -vn -0.629564 -0.097579 0.770797 -vn -0.872815 -0.299763 0.385144 -vn -0.667494 -0.004835 0.744600 -vn -0.600779 -0.009294 0.799361 -vn -0.578472 0.274016 0.768300 -vn -0.676740 0.161393 0.718314 -vn -0.676740 0.161393 0.718314 -vn -0.701511 0.141462 0.698478 -vn -0.561167 0.016480 0.827539 -vn -0.561167 0.016480 0.827539 -vn -0.600779 -0.009294 0.799361 -vn -0.676740 0.161393 0.718314 -vn -0.701511 0.141462 0.698478 -vn -0.676740 0.161393 0.718314 -vn -0.637787 0.094809 0.764355 -vn -0.676740 0.161393 0.718314 -vn -0.605525 0.092770 0.790401 -vn -0.637787 0.094809 0.764355 -vn -0.637787 0.094809 0.764355 -vn -0.605525 0.092770 0.790401 -vn -0.725879 0.010493 0.687742 -vn -0.605525 0.092770 0.790401 -vn -0.823208 0.041906 0.566191 -vn -0.725879 0.010493 0.687742 -vn -0.725879 0.010493 0.687742 -vn -0.823208 0.041906 0.566191 -vn -0.878719 0.118802 0.462319 -vn -0.823208 0.041906 0.566191 -vn -0.877212 0.129258 0.462376 -vn -0.878719 0.118802 0.462319 -vn -0.878719 0.118802 0.462319 -vn -0.877212 0.129258 0.462376 -vn -0.865777 -0.017836 0.500112 -vn -0.000875 -0.119271 0.992861 -vn 0.033272 -0.126422 0.991418 -vn 0.000283 -0.119211 0.992869 -vn 0.033272 -0.126422 0.991418 -vn 0.033619 -0.126186 0.991437 -vn 0.000283 -0.119211 0.992869 -vn 0.995493 -0.030523 0.089784 -vn 0.986612 -0.094408 0.132977 -vn 0.993894 -0.047100 0.099785 -vn -0.921518 -0.135702 0.363854 -vn -0.947651 -0.069522 0.311647 -vn -0.885192 -0.082688 0.457819 -vn -0.740528 -0.552831 0.382095 -vn -0.590635 -0.714541 0.374944 -vn -0.478456 -0.790218 0.382931 -vn -0.692347 -0.561281 0.453452 -vn -0.662695 -0.571305 0.484196 -vn -0.590635 -0.714541 0.374944 -vn -0.662695 -0.571305 0.484196 -vn -0.478456 -0.790218 0.382931 -vn -0.590635 -0.714541 0.374944 -vn -0.756897 -0.413234 0.506304 -vn -0.729157 -0.440006 0.524142 -vn -0.692347 -0.561281 0.453452 -vn -0.729157 -0.440006 0.524142 -vn -0.662695 -0.571305 0.484196 -vn -0.692347 -0.561281 0.453452 -vn -0.755254 -0.322587 0.570552 -vn -0.757093 -0.350156 0.551544 -vn -0.756897 -0.413234 0.506304 -vn -0.757093 -0.350156 0.551544 -vn -0.729157 -0.440006 0.524142 -vn -0.756897 -0.413234 0.506304 -vn 0.994065 -0.017268 0.107409 -vn 0.995493 -0.030523 0.089784 -vn 0.994612 -0.017356 0.102202 -vn 0.995493 -0.030523 0.089784 -vn 0.993894 -0.047100 0.099785 -vn 0.994612 -0.017356 0.102202 -vn -0.692347 -0.561281 0.453452 -vn -0.590635 -0.714541 0.374944 -vn -0.794821 -0.533487 0.289225 -vn -0.897861 -0.284137 0.336321 -vn -0.827590 -0.457878 0.324718 -vn -0.794821 -0.533487 0.289225 -vn -0.072237 -0.977132 -0.199989 -vn -0.219139 -0.948685 -0.227979 -vn -0.035271 -0.981040 -0.190571 -vn -0.219139 -0.948685 -0.227979 -vn -0.000000 -0.979515 -0.201370 -vn -0.035271 -0.981040 -0.190571 -vn -0.006740 -0.119147 0.992854 -vn -0.010643 -0.117305 0.993039 -vn 0.014744 -0.114681 0.993293 -vn -0.010643 -0.117305 0.993039 -vn 0.016403 -0.114530 0.993284 -vn 0.014744 -0.114681 0.993293 -vn -0.001677 -0.122098 0.992517 -vn -0.002947 -0.126501 0.991962 -vn -0.006740 -0.119147 0.992854 -vn -0.002947 -0.126501 0.991962 -vn -0.010643 -0.117305 0.993039 -vn -0.006740 -0.119147 0.992854 -vn 0.015048 -0.110728 0.993737 -vn -0.002947 -0.126501 0.991962 -vn 0.008436 -0.120558 0.992670 -vn -0.002947 -0.126501 0.991962 -vn -0.001677 -0.122098 0.992517 -vn 0.008436 -0.120558 0.992670 -vn 0.004324 -0.103474 0.994623 -vn 0.015048 -0.110728 0.993737 -vn 0.007501 -0.104044 0.994544 -vn 0.015048 -0.110728 0.993737 -vn 0.008436 -0.120558 0.992670 -vn 0.007501 -0.104044 0.994544 -vn 0.005018 -0.111652 0.993735 -vn 0.004324 -0.103474 0.994623 -vn 0.005159 -0.111410 0.993761 -vn 0.004324 -0.103474 0.994623 -vn 0.007501 -0.104044 0.994544 -vn 0.005159 -0.111410 0.993761 -vn -0.000000 -0.103656 0.994613 -vn 0.005018 -0.111652 0.993735 -vn 0.000000 -0.104054 0.994572 -vn 0.005018 -0.111652 0.993735 -vn 0.005159 -0.111410 0.993761 -vn 0.000000 -0.104054 0.994572 -vn -0.383264 0.917386 0.107289 -vn 0.000001 0.993140 0.116931 -vn -0.381628 0.918043 0.107501 -vn 0.000001 0.993140 0.116931 -vn -0.000000 0.993137 0.116961 -vn -0.381628 0.918043 0.107501 -vn -0.944421 0.326503 0.038270 -vn -0.944072 0.327512 0.038261 -vn -0.996158 0.087056 0.009500 -vn -0.944072 0.327512 0.038261 -vn -0.996136 0.087303 0.009553 -vn -0.996158 0.087056 0.009500 -vn -0.383264 0.917386 0.107289 -vn -0.381628 0.918043 0.107501 -vn -0.734851 0.673666 0.078540 -vn -0.381628 0.918043 0.107501 -vn -0.733828 0.674769 0.078632 -vn -0.734851 0.673666 0.078540 -vn -0.944421 0.326503 0.038270 -vn -0.734851 0.673666 0.078540 -vn -0.944072 0.327512 0.038261 -vn -0.734851 0.673666 0.078540 -vn -0.733828 0.674769 0.078632 -vn -0.944072 0.327512 0.038261 -vn 0.000000 -0.993771 -0.111439 -vn 0.000000 -0.993771 -0.111439 -vn -0.035271 -0.981040 -0.190571 -vn 0.000000 0.198064 0.980189 -vn 0.000000 -0.117199 0.993109 -vn 0.000000 0.198064 0.980189 -vn 0.000000 -0.117199 0.993109 -vn 0.000000 -0.117199 0.993109 -vn 0.000000 0.198064 0.980189 -vn 0.000000 -0.116642 0.993174 -vn 0.000000 -0.116642 0.993174 -vn 0.000000 -0.116649 0.993173 -vn 0.000000 -0.116642 0.993174 -vn 0.000000 -0.116649 0.993173 -vn 0.000000 -0.116649 0.993173 -vn 0.000000 -0.116648 0.993173 -vn 0.000000 -0.116648 0.993173 -vn 0.000000 -0.116628 0.993176 -vn 0.000000 -0.116648 0.993173 -vn 0.000000 -0.116628 0.993176 -vn 0.000000 -0.116628 0.993176 -vn -0.999999 0.000168 -0.001210 -vn -0.999999 0.000474 -0.001197 -vn -0.996136 0.087303 0.009553 -vn 0.000000 0.493608 0.869684 -vn 0.000000 0.493608 0.869684 -vn 0.000000 0.198064 0.980189 -vn 0.000000 0.493608 0.869684 -vn 0.000000 0.198064 0.980189 -vn 0.000000 0.198064 0.980189 -vn 0.000000 -0.714981 0.699144 -vn 0.000000 -0.714981 0.699144 -vn 0.000000 -0.441037 0.897489 -vn 0.000000 -0.714981 0.699144 -vn 0.000000 -0.441037 0.897489 -vn 0.000000 -0.441037 0.897489 -vn 0.000000 -0.116649 0.993173 -vn 0.000000 -0.441037 0.897489 -vn 0.000000 -0.116649 0.993173 -vn 0.000000 -0.441037 0.897489 -vn 0.000000 -0.441037 0.897489 -vn 0.000000 -0.116649 0.993173 -vn 0.000000 -0.116628 0.993176 -vn 0.000000 -0.116628 0.993176 -vn 0.000000 -0.116642 0.993174 -vn 0.000000 -0.116628 0.993176 -vn 0.000000 -0.116642 0.993174 -vn 0.000000 -0.116642 0.993174 -vn -0.999999 0.000474 -0.001197 -vn -0.999999 0.000168 -0.001210 -vn -0.999999 0.000133 -0.001444 -vn -0.999999 0.000474 -0.001197 -vn -0.996158 0.087056 0.009500 -vn -0.996136 0.087303 0.009553 -vn -1.000000 0.000059 -0.000503 -vn -0.999999 -0.000103 -0.001265 -vn -1.000000 0.000066 -0.000537 -vn -0.999999 0.000168 -0.001210 -vn -0.999999 -0.000103 -0.001265 -vn -0.999999 0.000133 -0.001444 -vn 0.000000 -0.116739 0.993163 -vn 0.000000 -0.116648 0.993173 -vn 0.000000 -0.116648 0.993173 -vn -0.999999 -0.000103 -0.001265 -vn -0.999999 0.000168 -0.001210 -vn -1.000000 0.000066 -0.000537 -vn -0.984694 0.174160 -0.006738 -vn -0.980089 0.198515 -0.004173 -vn -0.983212 0.180337 -0.027797 -vn -0.808708 -0.587341 -0.031976 -vn -0.494936 -0.863469 -0.097259 -vn -0.708309 -0.701790 -0.076086 -vn 0.339143 -0.505622 0.793302 -vn 0.299846 -0.516749 0.801912 -vn 0.182952 -0.354088 0.917143 -vn 0.182952 -0.354088 0.917143 -vn 0.299846 -0.516749 0.801912 -vn 0.154745 -0.355795 0.921664 -vn 0.182952 -0.354088 0.917143 -vn 0.154745 -0.355795 0.921664 -vn 0.116745 -0.319879 0.940238 -vn 0.116745 -0.319879 0.940238 -vn 0.154745 -0.355795 0.921664 -vn 0.109565 -0.318437 0.941591 -vn 0.109565 -0.318437 0.941591 -vn 0.131033 -0.317293 0.939231 -vn 0.116745 -0.319879 0.940238 -vn 0.116745 -0.319879 0.940238 -vn 0.131033 -0.317293 0.939231 -vn 0.138390 -0.332970 0.932727 -vn 0.067684 -0.219277 0.973312 -vn 0.144281 -0.209043 0.967204 -vn 0.071452 -0.215752 0.973830 -vn 0.071452 -0.215752 0.973830 -vn 0.144281 -0.209043 0.967204 -vn 0.158943 -0.205989 0.965560 -vn -0.000000 -0.227028 0.973888 -vn 0.067684 -0.219277 0.973312 -vn -0.000000 -0.224410 0.974495 -vn -0.000000 -0.224410 0.974495 -vn 0.067684 -0.219277 0.973312 -vn 0.071452 -0.215752 0.973830 -vn 0.138390 -0.332970 0.932727 -vn 0.142304 -0.333246 0.932039 -vn 0.149920 -0.347308 0.925690 -vn 0.149920 -0.347308 0.925690 -vn 0.142304 -0.333246 0.932039 -vn 0.161840 -0.334626 0.928350 -vn 0.161840 -0.334626 0.928350 -vn 0.142304 -0.333246 0.932039 -vn 0.166593 -0.330885 0.928850 -vn 0.191886 -0.210924 0.958484 -vn 0.196009 -0.235372 0.951935 -vn 0.196192 -0.207154 0.958434 -vn 0.196192 -0.207154 0.958434 -vn 0.196009 -0.235372 0.951935 -vn 0.196607 -0.228696 0.953438 -vn 0.178410 -0.306737 0.934924 -vn 0.188830 -0.293149 0.937234 -vn 0.196009 -0.235372 0.951935 -vn 0.196009 -0.235372 0.951935 -vn 0.188830 -0.293149 0.937234 -vn 0.196607 -0.228696 0.953438 -vn 0.345594 -0.929888 0.125990 -vn 0.390945 -0.918337 -0.061799 -vn 0.357049 -0.929812 0.089253 -vn 0.357049 -0.929812 0.089253 -vn 0.390945 -0.918337 -0.061799 -vn 0.396515 -0.915703 -0.065292 -vn 0.984334 -0.176055 0.009521 -vn 0.983848 -0.178923 0.005394 -vn 0.980679 -0.195518 0.006376 -vn 0.990796 -0.135356 0.001687 -vn 0.983848 -0.178923 0.005394 -vn 0.991086 -0.133014 0.007440 -vn 0.991086 -0.133014 0.007440 -vn 0.983848 -0.178923 0.005394 -vn 0.984334 -0.176055 0.009521 -vn 0.991086 -0.133014 0.007440 -vn 0.998589 0.052790 0.005722 -vn 0.990796 -0.135356 0.001687 -vn 0.990796 -0.135356 0.001687 -vn 0.998589 0.052790 0.005722 -vn 0.997021 0.077063 0.003255 -vn 0.095426 0.992875 0.071360 -vn 0.284211 0.955066 0.084101 -vn 0.083437 0.994889 0.056877 -vn 0.083437 0.994889 0.056877 -vn 0.284211 0.955066 0.084101 -vn 0.322783 0.944059 0.067556 -vn 0.000000 0.999116 0.042032 -vn 0.095426 0.992875 0.071360 -vn -0.000000 0.999216 0.039578 -vn -0.000000 0.999216 0.039578 -vn 0.095426 0.992875 0.071360 -vn 0.083437 0.994889 0.056877 -vn 0.993002 0.117935 0.006226 -vn 0.999247 0.038797 0.000740 -vn 0.996380 0.085006 0.000430 -vn 0.996380 0.085006 0.000430 -vn 0.999247 0.038797 0.000740 -vn 0.998947 0.045842 0.001757 -vn 0.615919 0.785318 0.062605 -vn 0.893410 0.448498 0.025842 -vn 0.682062 0.729639 0.049171 -vn 0.682062 0.729639 0.049171 -vn 0.893410 0.448498 0.025842 -vn 0.914969 0.402789 0.024342 -vn 0.893410 0.448498 0.025842 -vn 0.978147 0.207638 0.010723 -vn 0.914969 0.402789 0.024342 -vn 0.914969 0.402789 0.024342 -vn 0.978147 0.207638 0.010723 -vn 0.983245 0.182196 0.005792 -vn 0.756449 0.653385 0.029548 -vn 0.997021 0.077063 0.003255 -vn 0.823527 0.566803 0.023172 -vn 0.823527 0.566803 0.023172 -vn 0.997021 0.077063 0.003255 -vn 0.998589 0.052790 0.005722 -vn 0.363218 -0.788030 0.497072 -vn 0.354110 -0.803703 0.478192 -vn 0.339143 -0.505622 0.793302 -vn 0.339143 -0.505622 0.793302 -vn 0.354110 -0.803703 0.478192 -vn 0.299846 -0.516749 0.801912 -vn 0.161840 -0.334626 0.928350 -vn 0.166593 -0.330885 0.928850 -vn 0.178410 -0.306737 0.934924 -vn 0.178410 -0.306737 0.934924 -vn 0.166593 -0.330885 0.928850 -vn 0.188830 -0.293149 0.937234 -vn 0.978147 0.207638 0.010723 -vn 0.993002 0.117935 0.006226 -vn 0.983245 0.182196 0.005792 -vn 0.983245 0.182196 0.005792 -vn 0.993002 0.117935 0.006226 -vn 0.996380 0.085006 0.000430 -vn -0.993452 0.113575 -0.012418 -vn -0.993500 0.113826 0.000749 -vn -0.983596 0.179257 -0.020171 -vn -0.983596 0.179257 -0.020171 -vn -0.993500 0.113826 0.000749 -vn -0.984694 0.174160 -0.006738 -vn -0.993500 0.113826 0.000749 -vn -0.993452 0.113575 -0.012418 -vn -0.985935 -0.166960 -0.007524 -vn -0.985935 -0.166960 -0.007524 -vn -0.993452 0.113575 -0.012418 -vn -0.975625 -0.218711 -0.017944 -vn -0.324453 -0.809413 -0.489470 -vn -0.095583 -0.992659 -0.074102 -vn -0.119524 -0.861339 -0.493770 -vn -0.095583 -0.992659 -0.074102 -vn -0.000000 -0.997673 -0.068181 -vn -0.119524 -0.861339 -0.493770 -vn -0.000000 -0.997673 -0.068181 -vn 0.000000 -0.871316 -0.490722 -vn -0.119524 -0.861339 -0.493770 -vn -0.985935 -0.166960 -0.007524 -vn -0.975625 -0.218711 -0.017944 -vn -0.959190 -0.282414 -0.014033 -vn -0.959190 -0.282414 -0.014033 -vn -0.975625 -0.218711 -0.017944 -vn -0.965709 -0.258960 -0.018602 -vn -0.996490 -0.080699 -0.022271 -vn -0.998432 -0.055875 -0.003518 -vn -0.996882 -0.076594 -0.018986 -vn -0.996882 -0.076594 -0.018986 -vn -0.998432 -0.055875 -0.003518 -vn -0.997107 -0.075791 -0.005838 -vn -0.965301 -0.259102 -0.032545 -vn -0.969905 -0.243373 -0.007371 -vn -0.996490 -0.080699 -0.022271 -vn -0.996490 -0.080699 -0.022271 -vn -0.969905 -0.243373 -0.007371 -vn -0.998432 -0.055875 -0.003518 -vn -0.850012 -0.526176 -0.024864 -vn -0.969905 -0.243373 -0.007371 -vn -0.965301 -0.259102 -0.032545 -vn -0.969905 -0.243373 -0.007371 -vn -0.850012 -0.526176 -0.024864 -vn -0.808708 -0.587341 -0.031976 -vn -0.965301 -0.259102 -0.032545 -vn -0.791469 -0.609184 -0.049722 -vn -0.850012 -0.526176 -0.024864 -vn 0.914969 0.402789 0.024342 -vn 0.983245 0.182196 0.005792 -vn 0.945131 0.326041 0.020602 -vn -0.767409 -0.563943 0.305045 -vn -0.979545 -0.197391 -0.039099 -vn -0.772660 -0.348538 0.530583 -vn -0.772660 -0.348538 0.530583 -vn -0.979545 -0.197391 -0.039099 -vn -0.990615 -0.133182 -0.030719 -vn -0.755223 -0.652355 0.063808 -vn -0.973639 -0.218470 -0.065558 -vn -0.767409 -0.563943 0.305045 -vn -0.767409 -0.563943 0.305045 -vn -0.973639 -0.218470 -0.065558 -vn -0.979545 -0.197391 -0.039099 -vn -0.707233 -0.162804 0.687980 -vn -0.738957 0.055017 0.671503 -vn -0.985507 -0.169473 0.007393 -vn -0.738957 0.055017 0.671503 -vn -0.761618 0.252637 0.596751 -vn -0.985507 -0.169473 0.007393 -vn -0.997107 -0.075791 -0.005838 -vn -0.998432 -0.055875 -0.003518 -vn -0.775408 0.330567 0.538023 -vn -0.761618 0.252637 0.596751 -vn -0.998432 -0.055875 -0.003518 -vn -0.985507 -0.169473 0.007393 -vn -0.985935 -0.166960 -0.007524 -vn -0.959190 -0.282414 -0.014033 -vn -0.820751 0.061453 0.567972 -vn -0.820751 0.061453 0.567972 -vn -0.959190 -0.282414 -0.014033 -vn -0.804082 0.167348 0.570480 -vn -0.993500 0.113826 0.000749 -vn -0.985935 -0.166960 -0.007524 -vn -0.724913 0.292702 0.623560 -vn -0.724913 0.292702 0.623560 -vn -0.985935 -0.166960 -0.007524 -vn -0.820751 0.061453 0.567972 -vn -0.984694 0.174160 -0.006738 -vn -0.993500 0.113826 0.000749 -vn -0.771535 0.304529 0.558566 -vn -0.771535 0.304529 0.558566 -vn -0.993500 0.113826 0.000749 -vn -0.724913 0.292702 0.623560 -vn -0.980089 0.198515 -0.004173 -vn -0.984694 0.174160 -0.006738 -vn -0.740815 0.342903 0.577590 -vn -0.740815 0.342903 0.577590 -vn -0.984694 0.174160 -0.006738 -vn -0.771535 0.304529 0.558566 -vn 0.385018 -0.919892 -0.074557 -vn 0.396515 -0.915703 -0.065292 -vn 0.386712 -0.919150 -0.074949 -vn 0.386712 -0.919150 -0.074949 -vn 0.396515 -0.915703 -0.065292 -vn 0.390945 -0.918337 -0.061799 -vn 0.985997 -0.166579 0.007890 -vn 0.984334 -0.176055 0.009521 -vn 0.982751 -0.184689 0.009457 -vn 0.982751 -0.184689 0.009457 -vn 0.984334 -0.176055 0.009521 -vn 0.982479 -0.186010 0.011654 -vn 0.993671 -0.112316 0.001790 -vn 0.991086 -0.133014 0.007440 -vn 0.985997 -0.166579 0.007890 -vn 0.985997 -0.166579 0.007890 -vn 0.991086 -0.133014 0.007440 -vn 0.984334 -0.176055 0.009521 -vn 0.995237 0.097405 0.003889 -vn 0.998589 0.052790 0.005722 -vn 0.993671 -0.112316 0.001790 -vn 0.993671 -0.112316 0.001790 -vn 0.998589 0.052790 0.005722 -vn 0.991086 -0.133014 0.007440 -vn 0.998589 0.052790 0.005722 -vn 0.995237 0.097405 0.003889 -vn 0.823527 0.566803 0.023172 -vn 0.823527 0.566803 0.023172 -vn 0.995237 0.097405 0.003889 -vn 0.761245 0.647906 0.026911 -vn 0.574631 -0.446587 -0.685827 -vn 0.996550 0.082383 -0.010068 -vn 0.998947 0.045842 0.001757 -vn 0.082937 0.995311 0.049767 -vn 0.322783 0.944059 0.067556 -vn 0.135626 0.988292 0.069896 -vn 0.135626 0.988292 0.069896 -vn 0.322783 0.944059 0.067556 -vn 0.180265 0.982087 0.054868 -vn 0.180265 0.982087 0.054868 -vn 0.322783 0.944059 0.067556 -vn 0.429327 0.901377 0.056555 -vn 0.011871 0.999709 0.020995 -vn 0.083437 0.994889 0.056877 -vn 0.082937 0.995311 0.049767 -vn 0.000000 0.999970 0.007701 -vn -0.000000 0.999216 0.039578 -vn 0.011871 0.999709 0.020995 -vn 0.011871 0.999709 0.020995 -vn -0.000000 0.999216 0.039578 -vn 0.083437 0.994889 0.056877 -vn 0.363218 -0.788030 0.497072 -vn 0.345594 -0.929888 0.125990 -vn 0.354110 -0.803703 0.478192 -vn 0.354110 -0.803703 0.478192 -vn 0.345594 -0.929888 0.125990 -vn 0.357049 -0.929812 0.089253 -vn 0.982423 -0.186181 0.013505 -vn 0.982479 -0.186010 0.011654 -vn 0.984334 -0.176055 0.009521 -vn -0.983596 0.179257 -0.020171 -vn -0.984694 0.174160 -0.006738 -vn -0.984046 0.174020 -0.037009 -vn -0.959190 -0.282414 -0.014033 -vn -0.965709 -0.258960 -0.018602 -vn -0.997107 -0.075791 -0.005838 -vn -0.997107 -0.075791 -0.005838 -vn -0.965709 -0.258960 -0.018602 -vn -0.996882 -0.076594 -0.018986 -vn -0.959190 -0.282414 -0.014033 -vn -0.997107 -0.075791 -0.005838 -vn -0.804082 0.167348 0.570480 -vn -0.804082 0.167348 0.570480 -vn -0.997107 -0.075791 -0.005838 -vn -0.775408 0.330567 0.538023 -vn 0.138390 -0.332970 0.932727 -vn 0.131033 -0.317293 0.939231 -vn 0.134867 -0.315546 0.939277 -vn -0.999569 0.028846 0.005434 -vn -0.999550 0.029492 0.005516 -vn -0.998069 0.045238 0.042564 -vn -0.998069 0.045238 0.042564 -vn -0.999550 0.029492 0.005516 -vn -0.997809 0.049679 0.043688 -vn -0.998069 0.045238 0.042564 -vn -0.997809 0.049679 0.043688 -vn -0.995800 0.065592 0.063883 -vn -0.995800 0.065592 0.063883 -vn -0.997809 0.049679 0.043688 -vn -0.995888 0.066977 0.061000 -vn -0.507293 -0.858759 -0.072022 -vn -0.515410 -0.853105 -0.081018 -vn -0.811258 -0.584646 0.007064 -vn -0.811258 -0.584646 0.007064 -vn -0.515410 -0.853105 -0.081018 -vn -0.818825 -0.574042 0.001045 -vn -0.995708 0.084216 0.038390 -vn -0.992675 0.109002 0.052112 -vn -0.995703 0.084333 0.038251 -vn -0.995703 0.084333 0.038251 -vn -0.992675 0.109002 0.052112 -vn -0.992674 0.108503 0.053153 -vn -0.995703 0.084333 0.038251 -vn -0.999464 0.014411 0.029383 -vn -0.995708 0.084216 0.038390 -vn -0.995708 0.084216 0.038390 -vn -0.999464 0.014411 0.029383 -vn -0.999501 0.014175 0.028222 -vn -0.249117 -0.963466 -0.098359 -vn -0.247950 -0.964620 -0.089610 -vn -0.104406 -0.994097 -0.029509 -vn -0.104406 -0.994097 -0.029509 -vn -0.247950 -0.964620 -0.089610 -vn -0.106145 -0.993954 -0.028067 -vn -0.000000 -0.999979 -0.006475 -vn -0.104406 -0.994097 -0.029509 -vn -0.000000 -0.999971 -0.007637 -vn -0.000000 -0.999971 -0.007637 -vn -0.104406 -0.994097 -0.029509 -vn -0.106145 -0.993954 -0.028067 -vn -0.990700 -0.134435 0.020989 -vn -0.998261 -0.056077 0.018160 -vn -0.990656 -0.134478 0.022719 -vn -0.990656 -0.134478 0.022719 -vn -0.998261 -0.056077 0.018160 -vn -0.998293 -0.055357 0.018610 -vn -0.990700 -0.134435 0.020989 -vn -0.990656 -0.134478 0.022719 -vn -0.959183 -0.281844 0.023066 -vn -0.959183 -0.281844 0.023066 -vn -0.990656 -0.134478 0.022719 -vn -0.957430 -0.287103 0.029993 -vn -0.959183 -0.281844 0.023066 -vn -0.957430 -0.287103 0.029993 -vn -0.818825 -0.574042 0.001045 -vn -0.818825 -0.574042 0.001045 -vn -0.957430 -0.287103 0.029993 -vn -0.811258 -0.584646 0.007064 -vn -0.999569 0.028846 0.005434 -vn -0.969840 0.166099 0.178388 -vn -0.999550 0.029492 0.005516 -vn -0.999550 0.029492 0.005516 -vn -0.969840 0.166099 0.178388 -vn -0.994998 0.093231 -0.035887 -vn -0.994625 0.082784 0.062195 -vn -0.995800 0.065592 0.063883 -vn -0.994644 0.081683 0.063330 -vn -0.994644 0.081683 0.063330 -vn -0.995800 0.065592 0.063883 -vn -0.995888 0.066977 0.061000 -vn -0.992675 0.109002 0.052112 -vn -0.994625 0.082784 0.062195 -vn -0.992674 0.108503 0.053153 -vn -0.992674 0.108503 0.053153 -vn -0.994625 0.082784 0.062195 -vn -0.994644 0.081683 0.063330 -vn -0.999501 0.014175 0.028222 -vn -0.999464 0.014411 0.029383 -vn -0.998261 -0.056077 0.018160 -vn -0.998261 -0.056077 0.018160 -vn -0.999464 0.014411 0.029383 -vn -0.998293 -0.055357 0.018610 -vn -0.417566 0.902141 -0.108536 -vn -0.426749 0.902770 -0.053783 -vn -0.440343 0.896429 0.050135 -vn -0.440343 0.896429 0.050135 -vn -0.426749 0.902770 -0.053783 -vn -0.446303 0.893472 0.050214 -vn -0.448052 0.757634 -0.474595 -vn -0.446061 0.791914 -0.417015 -vn -0.417566 0.902141 -0.108536 -vn -0.417566 0.902141 -0.108536 -vn -0.446061 0.791914 -0.417015 -vn -0.426749 0.902770 -0.053783 -vn -0.319057 -0.035786 -0.947060 -vn -0.328251 -0.031289 -0.944072 -vn -0.404581 0.077599 -0.911204 -vn -0.404581 0.077599 -0.911204 -vn -0.328251 -0.031289 -0.944072 -vn -0.359800 0.075412 -0.929977 -vn -0.169298 0.324929 -0.930462 -vn -0.263657 0.363905 -0.893341 -vn -0.180314 0.325379 -0.928232 -vn -0.180314 0.325379 -0.928232 -vn -0.263657 0.363905 -0.893341 -vn -0.290602 0.358700 -0.887065 -vn -0.169298 0.324929 -0.930462 -vn -0.180314 0.325379 -0.928232 -vn -0.212363 0.301851 -0.929402 -vn -0.212363 0.301851 -0.929402 -vn -0.180314 0.325379 -0.928232 -vn -0.235126 0.317229 -0.918739 -vn -0.085991 0.008774 -0.996257 -vn -0.085479 -0.001567 -0.996339 -vn -0.212106 -0.072179 -0.974577 -vn -0.212106 -0.072179 -0.974577 -vn -0.085479 -0.001567 -0.996339 -vn -0.239693 -0.077290 -0.967767 -vn 0.000000 -0.057309 -0.998357 -vn -0.085479 -0.001567 -0.996339 -vn 0.000000 -0.050714 -0.998713 -vn 0.000000 -0.050714 -0.998713 -vn -0.085479 -0.001567 -0.996339 -vn -0.085991 0.008774 -0.996257 -vn -0.255352 0.293656 -0.921174 -vn -0.212363 0.301851 -0.929402 -vn -0.235126 0.317229 -0.918739 -vn -0.263699 0.309474 -0.913613 -vn -0.262790 0.310576 -0.913501 -vn -0.290612 0.326849 -0.899285 -vn -0.290612 0.326849 -0.899285 -vn -0.262790 0.310576 -0.913501 -vn -0.305134 0.314478 -0.898886 -vn -0.310643 0.219722 -0.924783 -vn -0.276780 0.226506 -0.933856 -vn -0.263699 0.309474 -0.913613 -vn -0.263699 0.309474 -0.913613 -vn -0.276780 0.226506 -0.933856 -vn -0.262790 0.310576 -0.913501 -vn -0.276780 0.226506 -0.933856 -vn -0.310643 0.219722 -0.924783 -vn -0.359800 0.075412 -0.929977 -vn -0.359800 0.075412 -0.929977 -vn -0.310643 0.219722 -0.924783 -vn -0.404581 0.077599 -0.911204 -vn -0.446303 0.893472 0.050214 -vn -0.415109 0.907407 0.065557 -vn -0.440343 0.896429 0.050135 -vn -0.440343 0.896429 0.050135 -vn -0.415109 0.907407 0.065557 -vn -0.410226 0.909524 0.066933 -vn -0.405249 0.503584 -0.763005 -vn -0.446061 0.791914 -0.417015 -vn -0.436406 0.498474 -0.749049 -vn -0.436406 0.498474 -0.749049 -vn -0.446061 0.791914 -0.417015 -vn -0.448052 0.757634 -0.474595 -vn -0.263657 0.363905 -0.893341 -vn -0.405249 0.503584 -0.763005 -vn -0.290602 0.358700 -0.887065 -vn -0.290602 0.358700 -0.887065 -vn -0.405249 0.503584 -0.763005 -vn -0.436406 0.498474 -0.749049 -vn -0.305134 0.314478 -0.898886 -vn -0.255352 0.293656 -0.921174 -vn -0.290612 0.326849 -0.899285 -vn -0.290612 0.326849 -0.899285 -vn -0.255352 0.293656 -0.921174 -vn -0.235126 0.317229 -0.918739 -vn -0.850012 -0.526176 -0.024864 -vn -0.791469 -0.609184 -0.049722 -vn -0.539402 -0.840642 -0.048634 -vn -0.539402 -0.840642 -0.048634 -vn -0.791469 -0.609184 -0.049722 -vn -0.488009 -0.871020 -0.056324 -vn 0.562710 0.825931 0.034560 -vn 0.541816 0.839771 0.034923 -vn 0.761245 0.647906 0.026911 -vn 0.761245 0.647906 0.026911 -vn 0.541816 0.839771 0.034923 -vn 0.823527 0.566803 0.023172 -vn 0.495577 0.867646 0.039930 -vn 0.756449 0.653385 0.029548 -vn 0.541816 0.839771 0.034923 -vn 0.541816 0.839771 0.034923 -vn 0.756449 0.653385 0.029548 -vn 0.823527 0.566803 0.023172 -vn 0.138390 -0.332970 0.932727 -vn 0.134867 -0.315546 0.939277 -vn 0.142304 -0.333246 0.932039 -vn 0.980679 -0.195518 0.006376 -vn 0.981678 -0.190277 0.010176 -vn 0.984334 -0.176055 0.009521 -vn 0.981678 -0.190277 0.010176 -vn 0.982423 -0.186181 0.013505 -vn 0.984334 -0.176055 0.009521 -vn -0.984694 0.174160 -0.006738 -vn -0.983212 0.180337 -0.027797 -vn -0.985848 0.161528 -0.044851 -vn -0.984694 0.174160 -0.006738 -vn -0.985848 0.161528 -0.044851 -vn -0.984046 0.174020 -0.037009 -vn 0.075421 -0.342512 -0.936481 -vn 0.088936 -0.352542 -0.931560 -vn 0.080619 -0.343276 -0.935768 -vn 0.080619 -0.343276 -0.935768 -vn 0.088936 -0.352542 -0.931560 -vn 0.094136 -0.352187 -0.931184 -vn 0.088936 -0.352542 -0.931560 -vn 0.110062 -0.360826 -0.926116 -vn 0.094136 -0.352187 -0.931184 -vn 0.094136 -0.352187 -0.931184 -vn 0.110062 -0.360826 -0.926116 -vn 0.115215 -0.359361 -0.926059 -vn 0.731212 -0.381836 -0.565270 -vn 0.099908 -0.581232 -0.807581 -vn 0.713582 -0.257949 -0.651354 -vn 0.713582 -0.257949 -0.651354 -vn 0.099908 -0.581232 -0.807581 -vn 0.071198 -0.408463 -0.909994 -vn 0.713582 -0.257949 -0.651354 -vn 0.071198 -0.408463 -0.909994 -vn 0.723566 -0.082382 -0.685321 -vn 0.723566 -0.082382 -0.685321 -vn 0.071198 -0.408463 -0.909994 -vn 0.051319 -0.202061 -0.978028 -vn 0.731212 -0.381836 -0.565270 -vn 0.574631 -0.446587 -0.685827 -vn 0.099908 -0.581232 -0.807581 -vn 0.099908 -0.581232 -0.807581 -vn 0.574631 -0.446587 -0.685827 -vn 0.108229 -0.493339 -0.863078 -vn 0.108229 -0.493339 -0.863078 -vn 0.092628 -0.376477 -0.921784 -vn 0.080619 -0.343276 -0.935768 -vn 0.080619 -0.343276 -0.935768 -vn 0.092628 -0.376477 -0.921784 -vn 0.075421 -0.342512 -0.936481 -vn 0.080859 -0.444705 -0.892020 -vn 0.092628 -0.376477 -0.921784 -vn 0.108229 -0.493339 -0.863078 -vn 0.574631 -0.446587 -0.685827 -vn 0.080859 -0.444705 -0.892020 -vn 0.108229 -0.493339 -0.863078 -vn 0.723566 -0.082382 -0.685321 -vn 0.051319 -0.202061 -0.978028 -vn 0.668540 0.161888 -0.725842 -vn 0.668540 0.161888 -0.725842 -vn 0.051319 -0.202061 -0.978028 -vn -0.006508 0.083612 -0.996477 -vn 0.000000 -0.871316 -0.490722 -vn -0.000000 -0.514402 -0.857549 -vn -0.119524 -0.861339 -0.493770 -vn -0.119524 -0.861339 -0.493770 -vn -0.000000 -0.514402 -0.857549 -vn -0.192801 -0.483418 -0.853894 -vn -0.476271 -0.348677 -0.807211 -vn -0.324453 -0.809413 -0.489470 -vn -0.192801 -0.483418 -0.853894 -vn -0.192801 -0.483418 -0.853894 -vn -0.324453 -0.809413 -0.489470 -vn -0.119524 -0.861339 -0.493770 -vn -0.879217 -0.280086 -0.385394 -vn -0.658652 -0.695759 -0.286526 -vn -0.702167 -0.425692 -0.570743 -vn -0.702167 -0.425692 -0.570743 -vn -0.658652 -0.695759 -0.286526 -vn -0.491332 -0.797984 -0.349020 -vn -0.658652 -0.695759 -0.286526 -vn -0.879217 -0.280086 -0.385394 -vn -0.833807 -0.528564 -0.159328 -vn -0.833807 -0.528564 -0.159328 -vn -0.879217 -0.280086 -0.385394 -vn -0.957276 -0.214865 -0.193535 -vn 0.446710 0.893463 0.046633 -vn 0.166799 0.985578 0.028524 -vn 0.429327 0.901377 0.056555 -vn 0.429327 0.901377 0.056555 -vn 0.166799 0.985578 0.028524 -vn 0.216363 0.975064 0.049360 -vn -0.324453 -0.809413 -0.489470 -vn -0.491332 -0.797984 -0.349020 -vn -0.253349 -0.964463 -0.075004 -vn -0.494936 -0.863469 -0.097259 -vn -0.491332 -0.797984 -0.349020 -vn -0.658652 -0.695759 -0.286526 -vn -0.956032 -0.272734 -0.107795 -vn -0.813515 -0.572091 -0.104428 -vn -0.957276 -0.214865 -0.193535 -vn -0.957276 -0.214865 -0.193535 -vn -0.813515 -0.572091 -0.104428 -vn -0.833807 -0.528564 -0.159328 -vn 0.429327 0.901377 0.056555 -vn 0.216363 0.975064 0.049360 -vn 0.180265 0.982087 0.054868 -vn -0.780359 -0.622831 -0.055866 -vn -0.944473 -0.323507 -0.057569 -vn -0.755223 -0.652355 0.063808 -vn -0.755223 -0.652355 0.063808 -vn -0.944473 -0.323507 -0.057569 -vn -0.973639 -0.218470 -0.065558 -vn -0.763261 0.075432 0.641672 -vn -0.759621 -0.099247 0.642749 -vn -0.998456 -0.051981 0.019606 -vn -0.998456 -0.051981 0.019606 -vn -0.759621 -0.099247 0.642749 -vn -0.997150 -0.075336 -0.004072 -vn -0.805391 0.217929 0.551228 -vn -0.763261 0.075432 0.641672 -vn -0.998707 -0.048248 0.015984 -vn -0.998707 -0.048248 0.015984 -vn -0.763261 0.075432 0.641672 -vn -0.998456 -0.051981 0.019606 -vn -0.775685 0.361202 0.517538 -vn -0.805391 0.217929 0.551228 -vn -0.999627 -0.020816 0.017698 -vn -0.999627 -0.020816 0.017698 -vn -0.805391 0.217929 0.551228 -vn -0.998707 -0.048248 0.015984 -vn -0.999627 -0.020816 0.017698 -vn -0.999782 0.020752 0.002261 -vn -0.775685 0.361202 0.517538 -vn -0.775685 0.361202 0.517538 -vn -0.999782 0.020752 0.002261 -vn -0.740592 0.322814 0.589333 -vn -0.999782 0.020752 0.002261 -vn -0.998303 0.058229 0.000632 -vn -0.740592 0.322814 0.589333 -vn -0.740592 0.322814 0.589333 -vn -0.998303 0.058229 0.000632 -vn -0.728818 0.284083 0.622994 -vn -0.773857 0.304856 0.555164 -vn -0.728818 0.284083 0.622994 -vn -0.990513 0.137395 0.002445 -vn -0.990513 0.137395 0.002445 -vn -0.728818 0.284083 0.622994 -vn -0.998303 0.058229 0.000632 -vn -0.738957 0.055017 0.671503 -vn -0.707233 -0.162804 0.687980 -vn -0.763261 0.075432 0.641672 -vn -0.763261 0.075432 0.641672 -vn -0.707233 -0.162804 0.687980 -vn -0.759621 -0.099247 0.642749 -vn -0.761618 0.252637 0.596751 -vn -0.738957 0.055017 0.671503 -vn -0.805391 0.217929 0.551228 -vn -0.805391 0.217929 0.551228 -vn -0.738957 0.055017 0.671503 -vn -0.763261 0.075432 0.641672 -vn -0.775408 0.330567 0.538023 -vn -0.761618 0.252637 0.596751 -vn -0.775685 0.361202 0.517538 -vn -0.775685 0.361202 0.517538 -vn -0.761618 0.252637 0.596751 -vn -0.805391 0.217929 0.551228 -vn -0.740592 0.322814 0.589333 -vn -0.804082 0.167348 0.570480 -vn -0.775685 0.361202 0.517538 -vn -0.775685 0.361202 0.517538 -vn -0.804082 0.167348 0.570480 -vn -0.775408 0.330567 0.538023 -vn -0.740592 0.322814 0.589333 -vn -0.820751 0.061453 0.567972 -vn -0.804082 0.167348 0.570480 -vn -0.724913 0.292702 0.623560 -vn -0.820751 0.061453 0.567972 -vn -0.728818 0.284083 0.622994 -vn -0.728818 0.284083 0.622994 -vn -0.820751 0.061453 0.567972 -vn -0.740592 0.322814 0.589333 -vn -0.773857 0.304856 0.555164 -vn -0.771535 0.304529 0.558566 -vn -0.728818 0.284083 0.622994 -vn -0.728818 0.284083 0.622994 -vn -0.771535 0.304529 0.558566 -vn -0.724913 0.292702 0.623560 -vn -0.771535 0.304529 0.558566 -vn -0.773857 0.304856 0.555164 -vn -0.740815 0.342903 0.577590 -vn -0.740815 0.342903 0.577590 -vn -0.773857 0.304856 0.555164 -vn -0.969840 0.166099 0.178388 -vn -0.759621 -0.099247 0.642749 -vn -0.772660 -0.348538 0.530583 -vn -0.997150 -0.075336 -0.004072 -vn -0.997150 -0.075336 -0.004072 -vn -0.772660 -0.348538 0.530583 -vn -0.990615 -0.133182 -0.030719 -vn -0.656028 -0.418182 0.628292 -vn -0.627242 -0.676188 0.386443 -vn -0.772660 -0.348538 0.530583 -vn -0.772660 -0.348538 0.530583 -vn -0.627242 -0.676188 0.386443 -vn -0.767409 -0.563943 0.305045 -vn 0.600495 0.443647 -0.665270 -vn 0.004398 0.419539 -0.907726 -vn 0.554377 0.702479 -0.446307 -vn 0.554377 0.702479 -0.446307 -vn 0.004398 0.419539 -0.907726 -vn 0.010368 0.800881 -0.598734 -vn 0.554377 0.702479 -0.446307 -vn 0.010368 0.800881 -0.598734 -vn 0.517246 0.846290 -0.127473 -vn 0.517246 0.846290 -0.127473 -vn 0.010368 0.800881 -0.598734 -vn 0.051864 0.975168 -0.215306 -vn -0.627242 -0.676188 0.386443 -vn -0.634100 -0.764086 0.118699 -vn -0.767409 -0.563943 0.305045 -vn -0.767409 -0.563943 0.305045 -vn -0.634100 -0.764086 0.118699 -vn -0.755223 -0.652355 0.063808 -vn -0.780359 -0.622831 -0.055866 -vn -0.755223 -0.652355 0.063808 -vn -0.634100 -0.764086 0.118699 -vn 0.517246 0.846290 -0.127473 -vn 0.051864 0.975168 -0.215306 -vn 0.494071 0.869415 -0.003328 -vn 0.494071 0.869415 -0.003328 -vn 0.051864 0.975168 -0.215306 -vn 0.145820 0.989051 -0.022703 -vn -0.707233 -0.162804 0.687980 -vn -0.656028 -0.418182 0.628292 -vn -0.759621 -0.099247 0.642749 -vn -0.759621 -0.099247 0.642749 -vn -0.656028 -0.418182 0.628292 -vn -0.772660 -0.348538 0.530583 -vn 0.668540 0.161888 -0.725842 -vn -0.006508 0.083612 -0.996477 -vn 0.600495 0.443647 -0.665270 -vn 0.600495 0.443647 -0.665270 -vn -0.006508 0.083612 -0.996477 -vn 0.004398 0.419539 -0.907726 -vn -0.923588 -0.380903 -0.043567 -vn -0.951043 -0.307690 -0.029046 -vn -0.985507 -0.169473 0.007393 -vn -0.833807 -0.528564 -0.159328 -vn -0.813515 -0.572091 -0.104428 -vn -0.708309 -0.701790 -0.076086 -vn -0.494936 -0.863469 -0.097259 -vn -0.808708 -0.587341 -0.031976 -vn -0.539402 -0.840642 -0.048634 -vn -0.994998 0.093231 -0.035887 -vn -0.969840 0.166099 0.178388 -vn -0.990513 0.137395 0.002445 -vn -0.990513 0.137395 0.002445 -vn -0.969840 0.166099 0.178388 -vn -0.773857 0.304856 0.555164 -vn 0.969531 0.242434 0.035143 -vn 0.984202 0.176837 0.008696 -vn 0.971231 0.238135 0.001538 -vn 0.984202 0.176837 0.008696 -vn 0.668540 0.161888 -0.725842 -vn 0.971231 0.238135 0.001538 -vn 0.668540 0.161888 -0.725842 -vn 0.600495 0.443647 -0.665270 -vn 0.971231 0.238135 0.001538 -vn 0.554377 0.702479 -0.446307 -vn 0.971231 0.238135 0.001538 -vn 0.600495 0.443647 -0.665270 -vn 0.967156 0.254168 -0.002830 -vn 0.969531 0.242434 0.035143 -vn 0.885029 0.465465 0.008081 -vn 0.885029 0.465465 0.008081 -vn 0.969531 0.242434 0.035143 -vn 0.932362 0.360030 0.032846 -vn 0.956121 0.292541 0.015885 -vn 0.844338 0.533959 0.044504 -vn 0.945131 0.326041 0.020602 -vn 0.945131 0.326041 0.020602 -vn 0.844338 0.533959 0.044504 -vn 0.789936 0.611456 0.046072 -vn 0.996550 0.082383 -0.010068 -vn 0.993936 0.109771 -0.006474 -vn 0.996380 0.085006 0.000430 -vn 0.993936 0.109771 -0.006474 -vn 0.989557 0.144091 0.003808 -vn 0.996380 0.085006 0.000430 -vn 0.996380 0.085006 0.000430 -vn 0.989557 0.144091 0.003808 -vn 0.983245 0.182196 0.005792 -vn 0.723566 -0.082382 -0.685321 -vn 0.995327 0.096478 -0.003944 -vn 0.713582 -0.257949 -0.651354 -vn 0.996550 0.082383 -0.010068 -vn 0.713582 -0.257949 -0.651354 -vn 0.993936 0.109771 -0.006474 -vn 0.713582 -0.257949 -0.651354 -vn 0.995327 0.096478 -0.003944 -vn 0.993936 0.109771 -0.006474 -vn 0.668540 0.161888 -0.725842 -vn 0.984202 0.176837 0.008696 -vn 0.723566 -0.082382 -0.685321 -vn 0.723566 -0.082382 -0.685321 -vn 0.984202 0.176837 0.008696 -vn 0.995327 0.096478 -0.003944 -vn 0.510928 0.859417 0.018820 -vn 0.453914 0.680417 0.575321 -vn 0.512047 0.858797 0.016581 -vn 0.512047 0.858797 0.016581 -vn 0.453914 0.680417 0.575321 -vn 0.449290 0.674456 0.585873 -vn 0.126933 0.991885 0.007160 -vn 0.135281 0.990653 -0.017479 -vn 0.173425 0.735723 -0.654703 -vn 0.173425 0.735723 -0.654703 -vn 0.135281 0.990653 -0.017479 -vn 0.182289 0.709418 -0.680806 -vn 0.178828 0.405350 -0.896500 -vn 0.173425 0.735723 -0.654703 -vn 0.182289 0.709418 -0.680806 -vn 0.453914 0.680417 0.575321 -vn 0.435398 0.431875 0.789881 -vn 0.449290 0.674456 0.585873 -vn 0.603657 0.376752 -0.702606 -vn 0.609064 0.605926 -0.511757 -vn 0.616263 0.596857 -0.513792 -vn 0.248653 0.725676 0.641534 -vn 0.274003 0.415746 0.867224 -vn 0.258900 0.717586 0.646561 -vn 0.126933 0.991885 0.007160 -vn 0.248653 0.725676 0.641534 -vn 0.135281 0.990653 -0.017479 -vn 0.135281 0.990653 -0.017479 -vn 0.248653 0.725676 0.641534 -vn 0.258900 0.717586 0.646561 -vn 0.510928 0.859417 0.018820 -vn 0.512047 0.858797 0.016581 -vn 0.609064 0.605926 -0.511757 -vn 0.609064 0.605926 -0.511757 -vn 0.512047 0.858797 0.016581 -vn 0.616263 0.596857 -0.513792 -vn 0.844338 0.533959 0.044504 -vn 0.956121 0.292541 0.015885 -vn 0.885029 0.465465 0.008081 -vn 0.885029 0.465465 0.008081 -vn 0.956121 0.292541 0.015885 -vn 0.967156 0.254168 -0.002830 -vn 0.494071 0.869415 -0.003328 -vn 0.145820 0.989051 -0.022703 -vn 0.446710 0.893463 0.046633 -vn 0.446710 0.893463 0.046633 -vn 0.145820 0.989051 -0.022703 -vn 0.166799 0.985578 0.028524 -vn -0.780359 -0.622831 -0.055866 -vn -0.813515 -0.572091 -0.104428 -vn -0.944473 -0.323507 -0.057569 -vn -0.944473 -0.323507 -0.057569 -vn -0.813515 -0.572091 -0.104428 -vn -0.956032 -0.272734 -0.107795 -vn 0.989557 0.144091 0.003808 -vn 0.983787 0.179160 0.008038 -vn 0.983245 0.182196 0.005792 -vn 0.956121 0.292541 0.015885 -vn 0.945131 0.326041 0.020602 -vn 0.983787 0.179160 0.008038 -vn 0.945131 0.326041 0.020602 -vn 0.983245 0.182196 0.005792 -vn 0.983787 0.179160 0.008038 -vn 0.713582 -0.257949 -0.651354 -vn 0.996550 0.082383 -0.010068 -vn 0.731212 -0.381836 -0.565270 -vn 0.996550 0.082383 -0.010068 -vn 0.574631 -0.446587 -0.685827 -vn 0.731212 -0.381836 -0.565270 -vn 0.996550 0.082383 -0.010068 -vn 0.996380 0.085006 0.000430 -vn 0.998947 0.045842 0.001757 -vn -0.998432 -0.055875 -0.003518 -vn -0.761618 0.252637 0.596751 -vn -0.775408 0.330567 0.538023 -vn -0.969905 -0.243373 -0.007371 -vn -0.923588 -0.380903 -0.043567 -vn -0.985507 -0.169473 0.007393 -vn -0.923588 -0.380903 -0.043567 -vn -0.969905 -0.243373 -0.007371 -vn -0.808708 -0.587341 -0.031976 -vn -0.998432 -0.055875 -0.003518 -vn -0.969905 -0.243373 -0.007371 -vn -0.985507 -0.169473 0.007393 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 0.885029 0.465465 0.008081 -vn 0.932362 0.360030 0.032846 -vn 0.494071 0.869415 -0.003328 -vn 0.494071 0.869415 -0.003328 -vn 0.932362 0.360030 0.032846 -vn 0.517246 0.846290 -0.127473 -vn 0.446710 0.893463 0.046633 -vn 0.844338 0.533959 0.044504 -vn 0.494071 0.869415 -0.003328 -vn 0.494071 0.869415 -0.003328 -vn 0.844338 0.533959 0.044504 -vn 0.885029 0.465465 0.008081 -vn 0.932362 0.360030 0.032846 -vn 0.969531 0.242434 0.035143 -vn 0.971231 0.238135 0.001538 -vn 0.554377 0.702479 -0.446307 -vn 0.932362 0.360030 0.032846 -vn 0.971231 0.238135 0.001538 -vn 0.932362 0.360030 0.032846 -vn 0.554377 0.702479 -0.446307 -vn 0.517246 0.846290 -0.127473 -vn 0.429327 0.901377 0.056555 -vn 0.789936 0.611456 0.046072 -vn 0.446710 0.893463 0.046633 -vn 0.446710 0.893463 0.046633 -vn 0.789936 0.611456 0.046072 -vn 0.844338 0.533959 0.044504 -vn 0.682062 0.729639 0.049171 -vn 0.914969 0.402789 0.024342 -vn 0.789936 0.611456 0.046072 -vn 0.789936 0.611456 0.046072 -vn 0.914969 0.402789 0.024342 -vn 0.945131 0.326041 0.020602 -vn 0.284211 0.955066 0.084101 -vn 0.615919 0.785318 0.062605 -vn 0.322783 0.944059 0.067556 -vn 0.322783 0.944059 0.067556 -vn 0.615919 0.785318 0.062605 -vn 0.682062 0.729639 0.049171 -vn 0.144281 -0.209043 0.967204 -vn 0.191886 -0.210924 0.958484 -vn 0.158943 -0.205989 0.965560 -vn 0.158943 -0.205989 0.965560 -vn 0.191886 -0.210924 0.958484 -vn 0.196192 -0.207154 0.958434 -vn -0.247950 -0.964620 -0.089610 -vn -0.249117 -0.963466 -0.098359 -vn -0.507293 -0.858759 -0.072022 -vn -0.507293 -0.858759 -0.072022 -vn -0.249117 -0.963466 -0.098359 -vn -0.515410 -0.853105 -0.081018 -vn -0.212106 -0.072179 -0.974577 -vn -0.239693 -0.077290 -0.967767 -vn -0.319057 -0.035786 -0.947060 -vn -0.319057 -0.035786 -0.947060 -vn -0.239693 -0.077290 -0.967767 -vn -0.328251 -0.031289 -0.944072 -vn -0.253470 -0.964963 -0.067819 -vn -0.253349 -0.964463 -0.075004 -vn -0.488009 -0.871020 -0.056324 -vn -0.488009 -0.871020 -0.056324 -vn -0.253349 -0.964463 -0.075004 -vn -0.539402 -0.840642 -0.048634 -vn 0.322783 0.944059 0.067556 -vn 0.682062 0.729639 0.049171 -vn 0.429327 0.901377 0.056555 -vn 0.429327 0.901377 0.056555 -vn 0.682062 0.729639 0.049171 -vn 0.789936 0.611456 0.046072 -vn -0.491332 -0.797984 -0.349020 -vn -0.494936 -0.863469 -0.097259 -vn -0.253349 -0.964463 -0.075004 -vn 0.322783 0.944059 0.067556 -vn 0.082937 0.995311 0.049767 -vn 0.083437 0.994889 0.056877 -vn -0.324453 -0.809413 -0.489470 -vn -0.476271 -0.348677 -0.807211 -vn -0.491332 -0.797984 -0.349020 -vn -0.491332 -0.797984 -0.349020 -vn -0.476271 -0.348677 -0.807211 -vn -0.702167 -0.425692 -0.570743 -vn -0.324453 -0.809413 -0.489470 -vn -0.253349 -0.964463 -0.075004 -vn -0.095583 -0.992659 -0.074102 -vn -0.095583 -0.992659 -0.074102 -vn -0.253349 -0.964463 -0.075004 -vn -0.253470 -0.964963 -0.067819 -vn -0.253349 -0.964463 -0.075004 -vn -0.494936 -0.863469 -0.097259 -vn -0.539402 -0.840642 -0.048634 -vn -0.833807 -0.528564 -0.159328 -vn -0.494936 -0.863469 -0.097259 -vn -0.658652 -0.695759 -0.286526 -vn -0.494936 -0.863469 -0.097259 -vn -0.833807 -0.528564 -0.159328 -vn -0.708309 -0.701790 -0.076086 -vn -0.708309 -0.701790 -0.076086 -vn -0.813515 -0.572091 -0.104428 -vn -0.745659 -0.659800 -0.093041 -vn -0.764602 -0.641682 -0.060234 -vn -0.813515 -0.572091 -0.104428 -vn -0.780359 -0.622831 -0.055866 -vn -0.813515 -0.572091 -0.104428 -vn -0.764602 -0.641682 -0.060234 -vn -0.745659 -0.659800 -0.093041 -vn -0.780359 -0.622831 -0.055866 -vn -0.634100 -0.764086 0.118699 -vn -0.764602 -0.641682 -0.060234 -vn -0.808708 -0.587341 -0.031976 -vn -0.850012 -0.526176 -0.024864 -vn -0.539402 -0.840642 -0.048634 -vn -0.708309 -0.701790 -0.076086 -vn -0.923588 -0.380903 -0.043567 -vn -0.808708 -0.587341 -0.031976 -vn -0.923588 -0.380903 -0.043567 -vn -0.708309 -0.701790 -0.076086 -vn -0.745659 -0.659800 -0.093041 -vn -0.745659 -0.659800 -0.093041 -vn -0.764602 -0.641682 -0.060234 -vn -0.923588 -0.380903 -0.043567 -vn -0.764602 -0.641682 -0.060234 -vn -0.951043 -0.307690 -0.029046 -vn -0.923588 -0.380903 -0.043567 -vn -0.634100 -0.764086 0.118699 -vn -0.951043 -0.307690 -0.029046 -vn -0.764602 -0.641682 -0.060234 -vn -0.951043 -0.307690 -0.029046 -vn -0.634100 -0.764086 0.118699 -vn -0.627242 -0.676188 0.386443 -vn -0.656028 -0.418182 0.628292 -vn -0.951043 -0.307690 -0.029046 -vn -0.627242 -0.676188 0.386443 -vn -0.707233 -0.162804 0.687980 -vn -0.951043 -0.307690 -0.029046 -vn -0.656028 -0.418182 0.628292 -vn -0.985507 -0.169473 0.007393 -vn -0.951043 -0.307690 -0.029046 -vn -0.707233 -0.162804 0.687980 -vn 0.984694 0.174160 -0.006738 -vn 0.983212 0.180337 -0.027797 -vn 0.980089 0.198515 -0.004173 -vn 0.808708 -0.587341 -0.031976 -vn 0.708309 -0.701790 -0.076086 -vn 0.494936 -0.863469 -0.097259 -vn -0.339143 -0.505622 0.793302 -vn -0.182952 -0.354088 0.917143 -vn -0.299846 -0.516749 0.801912 -vn -0.182952 -0.354088 0.917143 -vn -0.154745 -0.355795 0.921664 -vn -0.299846 -0.516749 0.801912 -vn -0.182952 -0.354088 0.917143 -vn -0.116745 -0.319879 0.940238 -vn -0.154745 -0.355795 0.921664 -vn -0.116745 -0.319879 0.940238 -vn -0.109565 -0.318437 0.941591 -vn -0.154745 -0.355795 0.921664 -vn -0.109565 -0.318437 0.941591 -vn -0.116745 -0.319879 0.940238 -vn -0.131033 -0.317293 0.939231 -vn -0.116745 -0.319879 0.940238 -vn -0.138390 -0.332971 0.932727 -vn -0.131033 -0.317293 0.939231 -vn -0.067684 -0.219277 0.973312 -vn -0.071452 -0.215752 0.973830 -vn -0.144281 -0.209043 0.967204 -vn -0.071452 -0.215752 0.973830 -vn -0.158943 -0.205989 0.965560 -vn -0.144281 -0.209043 0.967204 -vn -0.000000 -0.227028 0.973888 -vn -0.000000 -0.224410 0.974495 -vn -0.067684 -0.219277 0.973312 -vn -0.000000 -0.224410 0.974495 -vn -0.071452 -0.215752 0.973830 -vn -0.067684 -0.219277 0.973312 -vn -0.138390 -0.332971 0.932727 -vn -0.149920 -0.347308 0.925690 -vn -0.142304 -0.333246 0.932039 -vn -0.149920 -0.347308 0.925690 -vn -0.161840 -0.334626 0.928350 -vn -0.142304 -0.333246 0.932039 -vn -0.161840 -0.334626 0.928350 -vn -0.166593 -0.330885 0.928850 -vn -0.142304 -0.333246 0.932039 -vn -0.191886 -0.210924 0.958484 -vn -0.196192 -0.207154 0.958434 -vn -0.196009 -0.235372 0.951935 -vn -0.196192 -0.207154 0.958434 -vn -0.196607 -0.228696 0.953438 -vn -0.196009 -0.235372 0.951935 -vn -0.178410 -0.306737 0.934924 -vn -0.196009 -0.235372 0.951935 -vn -0.188830 -0.293149 0.937234 -vn -0.196009 -0.235372 0.951935 -vn -0.196607 -0.228696 0.953438 -vn -0.188830 -0.293149 0.937234 -vn -0.345594 -0.929888 0.125990 -vn -0.357049 -0.929812 0.089253 -vn -0.390945 -0.918337 -0.061799 -vn -0.357049 -0.929812 0.089253 -vn -0.396515 -0.915703 -0.065292 -vn -0.390945 -0.918337 -0.061799 -vn -0.984334 -0.176055 0.009521 -vn -0.980679 -0.195518 0.006376 -vn -0.983848 -0.178923 0.005394 -vn -0.990796 -0.135356 0.001687 -vn -0.991086 -0.133014 0.007440 -vn -0.983848 -0.178923 0.005394 -vn -0.991086 -0.133014 0.007440 -vn -0.984334 -0.176055 0.009521 -vn -0.983848 -0.178923 0.005394 -vn -0.991086 -0.133014 0.007440 -vn -0.990796 -0.135356 0.001687 -vn -0.998589 0.052790 0.005722 -vn -0.990796 -0.135356 0.001687 -vn -0.997021 0.077063 0.003255 -vn -0.998589 0.052790 0.005722 -vn -0.095426 0.992875 0.071360 -vn -0.083437 0.994889 0.056877 -vn -0.284211 0.955066 0.084101 -vn -0.083437 0.994889 0.056877 -vn -0.322783 0.944059 0.067556 -vn -0.284211 0.955066 0.084101 -vn 0.000000 0.999116 0.042032 -vn -0.000000 0.999216 0.039578 -vn -0.095426 0.992875 0.071360 -vn -0.000000 0.999216 0.039578 -vn -0.083437 0.994889 0.056877 -vn -0.095426 0.992875 0.071360 -vn -0.993002 0.117935 0.006226 -vn -0.996380 0.085006 0.000430 -vn -0.999247 0.038797 0.000740 -vn -0.996380 0.085006 0.000430 -vn -0.998947 0.045842 0.001757 -vn -0.999247 0.038797 0.000740 -vn -0.615919 0.785318 0.062605 -vn -0.682062 0.729639 0.049171 -vn -0.893410 0.448498 0.025842 -vn -0.682062 0.729639 0.049171 -vn -0.914969 0.402789 0.024342 -vn -0.893410 0.448498 0.025842 -vn -0.893410 0.448498 0.025842 -vn -0.914969 0.402789 0.024342 -vn -0.978147 0.207638 0.010723 -vn -0.914969 0.402789 0.024342 -vn -0.983245 0.182196 0.005792 -vn -0.978147 0.207638 0.010723 -vn -0.756449 0.653385 0.029548 -vn -0.823527 0.566803 0.023172 -vn -0.997021 0.077063 0.003255 -vn -0.823527 0.566803 0.023172 -vn -0.998589 0.052790 0.005722 -vn -0.997021 0.077063 0.003255 -vn -0.363218 -0.788030 0.497072 -vn -0.339143 -0.505622 0.793302 -vn -0.354110 -0.803703 0.478192 -vn -0.339143 -0.505622 0.793302 -vn -0.299846 -0.516749 0.801912 -vn -0.354110 -0.803703 0.478192 -vn -0.161840 -0.334626 0.928350 -vn -0.178410 -0.306737 0.934924 -vn -0.166593 -0.330885 0.928850 -vn -0.178410 -0.306737 0.934924 -vn -0.188830 -0.293149 0.937234 -vn -0.166593 -0.330885 0.928850 -vn -0.978147 0.207638 0.010723 -vn -0.983245 0.182196 0.005792 -vn -0.993002 0.117935 0.006226 -vn -0.983245 0.182196 0.005792 -vn -0.996380 0.085006 0.000430 -vn -0.993002 0.117935 0.006226 -vn 0.993452 0.113575 -0.012418 -vn 0.983596 0.179257 -0.020171 -vn 0.993500 0.113826 0.000749 -vn 0.983596 0.179257 -0.020171 -vn 0.984694 0.174160 -0.006738 -vn 0.993500 0.113826 0.000749 -vn 0.993500 0.113826 0.000749 -vn 0.985935 -0.166960 -0.007524 -vn 0.993452 0.113575 -0.012418 -vn 0.985935 -0.166960 -0.007524 -vn 0.975625 -0.218711 -0.017944 -vn 0.993452 0.113575 -0.012418 -vn 0.324453 -0.809413 -0.489470 -vn 0.119524 -0.861339 -0.493770 -vn 0.095583 -0.992659 -0.074102 -vn 0.095583 -0.992659 -0.074102 -vn 0.119524 -0.861339 -0.493770 -vn -0.000000 -0.997673 -0.068181 -vn -0.000000 -0.997673 -0.068181 -vn 0.119524 -0.861339 -0.493770 -vn 0.000000 -0.871316 -0.490722 -vn 0.985935 -0.166960 -0.007524 -vn 0.959190 -0.282414 -0.014033 -vn 0.975625 -0.218711 -0.017944 -vn 0.959190 -0.282414 -0.014033 -vn 0.965709 -0.258960 -0.018602 -vn 0.975625 -0.218711 -0.017944 -vn 0.996490 -0.080699 -0.022271 -vn 0.996882 -0.076594 -0.018986 -vn 0.998432 -0.055875 -0.003518 -vn 0.996882 -0.076594 -0.018986 -vn 0.997107 -0.075791 -0.005838 -vn 0.998432 -0.055875 -0.003518 -vn 0.965301 -0.259102 -0.032545 -vn 0.996490 -0.080699 -0.022271 -vn 0.969905 -0.243373 -0.007371 -vn 0.996490 -0.080699 -0.022271 -vn 0.998432 -0.055875 -0.003518 -vn 0.969905 -0.243373 -0.007371 -vn 0.850012 -0.526176 -0.024864 -vn 0.965301 -0.259102 -0.032545 -vn 0.969905 -0.243373 -0.007371 -vn 0.969905 -0.243373 -0.007371 -vn 0.808708 -0.587341 -0.031976 -vn 0.850012 -0.526176 -0.024864 -vn 0.965301 -0.259102 -0.032545 -vn 0.850012 -0.526176 -0.024864 -vn 0.791469 -0.609184 -0.049722 -vn -0.914969 0.402789 0.024342 -vn -0.945131 0.326041 0.020602 -vn -0.983245 0.182196 0.005792 -vn 0.767409 -0.563943 0.305045 -vn 0.772660 -0.348538 0.530583 -vn 0.979545 -0.197391 -0.039099 -vn 0.772660 -0.348538 0.530583 -vn 0.990615 -0.133182 -0.030719 -vn 0.979545 -0.197391 -0.039099 -vn 0.755223 -0.652355 0.063808 -vn 0.767409 -0.563943 0.305045 -vn 0.973639 -0.218470 -0.065558 -vn 0.767409 -0.563943 0.305045 -vn 0.979545 -0.197391 -0.039099 -vn 0.973639 -0.218470 -0.065558 -vn 0.707233 -0.162804 0.687980 -vn 0.985507 -0.169473 0.007393 -vn 0.738957 0.055017 0.671503 -vn 0.738957 0.055017 0.671503 -vn 0.985507 -0.169473 0.007393 -vn 0.761618 0.252637 0.596751 -vn 0.997107 -0.075791 -0.005838 -vn 0.775408 0.330567 0.538022 -vn 0.998432 -0.055875 -0.003518 -vn 0.761618 0.252637 0.596751 -vn 0.985507 -0.169473 0.007393 -vn 0.998432 -0.055875 -0.003518 -vn 0.985935 -0.166960 -0.007524 -vn 0.820751 0.061453 0.567972 -vn 0.959190 -0.282414 -0.014033 -vn 0.820751 0.061453 0.567972 -vn 0.804082 0.167348 0.570480 -vn 0.959190 -0.282414 -0.014033 -vn 0.993500 0.113826 0.000749 -vn 0.724913 0.292702 0.623560 -vn 0.985935 -0.166960 -0.007524 -vn 0.724913 0.292702 0.623560 -vn 0.820751 0.061453 0.567972 -vn 0.985935 -0.166960 -0.007524 -vn 0.984694 0.174160 -0.006738 -vn 0.771535 0.304529 0.558566 -vn 0.993500 0.113826 0.000749 -vn 0.771535 0.304529 0.558566 -vn 0.724913 0.292702 0.623560 -vn 0.993500 0.113826 0.000749 -vn 0.980089 0.198515 -0.004173 -vn 0.740815 0.342904 0.577590 -vn 0.984694 0.174160 -0.006738 -vn 0.740815 0.342904 0.577590 -vn 0.771535 0.304529 0.558566 -vn 0.984694 0.174160 -0.006738 -vn -0.385018 -0.919892 -0.074557 -vn -0.386712 -0.919150 -0.074949 -vn -0.396515 -0.915703 -0.065292 -vn -0.386712 -0.919150 -0.074949 -vn -0.390945 -0.918337 -0.061799 -vn -0.396515 -0.915703 -0.065292 -vn -0.985997 -0.166579 0.007890 -vn -0.982751 -0.184689 0.009457 -vn -0.984334 -0.176055 0.009521 -vn -0.982751 -0.184689 0.009457 -vn -0.982479 -0.186010 0.011654 -vn -0.984334 -0.176055 0.009521 -vn -0.993671 -0.112316 0.001790 -vn -0.985997 -0.166579 0.007890 -vn -0.991086 -0.133014 0.007440 -vn -0.985997 -0.166579 0.007890 -vn -0.984334 -0.176055 0.009521 -vn -0.991086 -0.133014 0.007440 -vn -0.995237 0.097405 0.003889 -vn -0.993671 -0.112316 0.001790 -vn -0.998589 0.052790 0.005722 -vn -0.993671 -0.112316 0.001790 -vn -0.991086 -0.133014 0.007440 -vn -0.998589 0.052790 0.005722 -vn -0.998589 0.052790 0.005722 -vn -0.823527 0.566803 0.023172 -vn -0.995237 0.097405 0.003889 -vn -0.823527 0.566803 0.023172 -vn -0.761245 0.647906 0.026911 -vn -0.995237 0.097405 0.003889 -vn -0.574631 -0.446587 -0.685827 -vn -0.998947 0.045842 0.001757 -vn -0.996550 0.082383 -0.010068 -vn -0.082937 0.995311 0.049767 -vn -0.135626 0.988292 0.069896 -vn -0.322783 0.944059 0.067556 -vn -0.135626 0.988292 0.069896 -vn -0.180265 0.982087 0.054868 -vn -0.322783 0.944059 0.067556 -vn -0.180265 0.982087 0.054868 -vn -0.429327 0.901377 0.056555 -vn -0.322783 0.944059 0.067556 -vn -0.011871 0.999709 0.020995 -vn -0.082937 0.995311 0.049767 -vn -0.083437 0.994889 0.056877 -vn 0.000000 0.999970 0.007701 -vn -0.011871 0.999709 0.020995 -vn -0.000000 0.999216 0.039578 -vn -0.011871 0.999709 0.020995 -vn -0.083437 0.994889 0.056877 -vn -0.000000 0.999216 0.039578 -vn -0.363218 -0.788030 0.497072 -vn -0.354110 -0.803703 0.478192 -vn -0.345594 -0.929888 0.125990 -vn -0.354110 -0.803703 0.478192 -vn -0.357049 -0.929812 0.089253 -vn -0.345594 -0.929888 0.125990 -vn -0.982423 -0.186181 0.013505 -vn -0.984334 -0.176055 0.009521 -vn -0.982479 -0.186010 0.011654 -vn 0.983596 0.179257 -0.020171 -vn 0.984046 0.174020 -0.037009 -vn 0.984694 0.174160 -0.006738 -vn 0.959190 -0.282414 -0.014033 -vn 0.997107 -0.075791 -0.005838 -vn 0.965709 -0.258960 -0.018602 -vn 0.997107 -0.075791 -0.005838 -vn 0.996882 -0.076594 -0.018986 -vn 0.965709 -0.258960 -0.018602 -vn 0.959190 -0.282414 -0.014033 -vn 0.804082 0.167348 0.570480 -vn 0.997107 -0.075791 -0.005838 -vn 0.804082 0.167348 0.570480 -vn 0.775408 0.330567 0.538022 -vn 0.997107 -0.075791 -0.005838 -vn -0.138390 -0.332971 0.932727 -vn -0.134867 -0.315546 0.939277 -vn -0.131033 -0.317293 0.939231 -vn 0.999569 0.028846 0.005434 -vn 0.998069 0.045238 0.042564 -vn 0.999550 0.029492 0.005516 -vn 0.998069 0.045238 0.042564 -vn 0.997809 0.049679 0.043688 -vn 0.999550 0.029492 0.005516 -vn 0.998069 0.045238 0.042564 -vn 0.995800 0.065592 0.063883 -vn 0.997809 0.049679 0.043688 -vn 0.995800 0.065592 0.063883 -vn 0.995888 0.066977 0.061000 -vn 0.997809 0.049679 0.043688 -vn 0.507293 -0.858759 -0.072022 -vn 0.811258 -0.584646 0.007064 -vn 0.515410 -0.853105 -0.081018 -vn 0.811258 -0.584646 0.007064 -vn 0.818825 -0.574042 0.001045 -vn 0.515410 -0.853105 -0.081018 -vn 0.995708 0.084216 0.038390 -vn 0.995703 0.084333 0.038251 -vn 0.992675 0.109002 0.052112 -vn 0.995703 0.084333 0.038251 -vn 0.992674 0.108503 0.053153 -vn 0.992675 0.109002 0.052112 -vn 0.995703 0.084333 0.038251 -vn 0.995708 0.084216 0.038390 -vn 0.999464 0.014411 0.029383 -vn 0.995708 0.084216 0.038390 -vn 0.999501 0.014175 0.028222 -vn 0.999464 0.014411 0.029383 -vn 0.249118 -0.963466 -0.098359 -vn 0.104406 -0.994097 -0.029509 -vn 0.247950 -0.964620 -0.089610 -vn 0.104406 -0.994097 -0.029509 -vn 0.106145 -0.993954 -0.028067 -vn 0.247950 -0.964620 -0.089610 -vn -0.000000 -0.999979 -0.006475 -vn -0.000000 -0.999971 -0.007637 -vn 0.104406 -0.994097 -0.029509 -vn -0.000000 -0.999971 -0.007637 -vn 0.106145 -0.993954 -0.028067 -vn 0.104406 -0.994097 -0.029509 -vn 0.990700 -0.134435 0.020989 -vn 0.990656 -0.134478 0.022719 -vn 0.998261 -0.056077 0.018160 -vn 0.990656 -0.134478 0.022719 -vn 0.998293 -0.055357 0.018610 -vn 0.998261 -0.056077 0.018160 -vn 0.990700 -0.134435 0.020989 -vn 0.959183 -0.281844 0.023066 -vn 0.990656 -0.134478 0.022719 -vn 0.959183 -0.281844 0.023066 -vn 0.957430 -0.287103 0.029993 -vn 0.990656 -0.134478 0.022719 -vn 0.959183 -0.281844 0.023066 -vn 0.818825 -0.574042 0.001045 -vn 0.957430 -0.287103 0.029993 -vn 0.818825 -0.574042 0.001045 -vn 0.811258 -0.584646 0.007064 -vn 0.957430 -0.287103 0.029993 -vn 0.999569 0.028846 0.005434 -vn 0.999550 0.029492 0.005516 -vn 0.969840 0.166099 0.178388 -vn 0.999550 0.029492 0.005516 -vn 0.994998 0.093231 -0.035887 -vn 0.969840 0.166099 0.178388 -vn 0.994625 0.082784 0.062195 -vn 0.994644 0.081683 0.063330 -vn 0.995800 0.065592 0.063883 -vn 0.994644 0.081683 0.063330 -vn 0.995888 0.066977 0.061000 -vn 0.995800 0.065592 0.063883 -vn 0.992675 0.109002 0.052112 -vn 0.992674 0.108503 0.053153 -vn 0.994625 0.082784 0.062195 -vn 0.992674 0.108503 0.053153 -vn 0.994644 0.081683 0.063330 -vn 0.994625 0.082784 0.062195 -vn 0.999501 0.014175 0.028222 -vn 0.998261 -0.056077 0.018160 -vn 0.999464 0.014411 0.029383 -vn 0.998261 -0.056077 0.018160 -vn 0.998293 -0.055357 0.018610 -vn 0.999464 0.014411 0.029383 -vn 0.417566 0.902141 -0.108536 -vn 0.440343 0.896429 0.050135 -vn 0.426749 0.902769 -0.053783 -vn 0.440343 0.896429 0.050135 -vn 0.446303 0.893472 0.050214 -vn 0.426749 0.902769 -0.053783 -vn 0.448052 0.757634 -0.474595 -vn 0.417566 0.902141 -0.108536 -vn 0.446061 0.791914 -0.417015 -vn 0.417566 0.902141 -0.108536 -vn 0.426749 0.902769 -0.053783 -vn 0.446061 0.791914 -0.417015 -vn 0.319057 -0.035786 -0.947060 -vn 0.404581 0.077599 -0.911204 -vn 0.328251 -0.031289 -0.944072 -vn 0.404581 0.077599 -0.911204 -vn 0.359800 0.075412 -0.929977 -vn 0.328251 -0.031289 -0.944072 -vn 0.169298 0.324929 -0.930462 -vn 0.180314 0.325379 -0.928232 -vn 0.263657 0.363905 -0.893341 -vn 0.180314 0.325379 -0.928232 -vn 0.290602 0.358700 -0.887065 -vn 0.263657 0.363905 -0.893341 -vn 0.169298 0.324929 -0.930462 -vn 0.212363 0.301851 -0.929402 -vn 0.180314 0.325379 -0.928232 -vn 0.212363 0.301851 -0.929402 -vn 0.235126 0.317229 -0.918739 -vn 0.180314 0.325379 -0.928232 -vn 0.085991 0.008774 -0.996257 -vn 0.212106 -0.072179 -0.974577 -vn 0.085479 -0.001567 -0.996339 -vn 0.212106 -0.072179 -0.974577 -vn 0.239693 -0.077290 -0.967767 -vn 0.085479 -0.001567 -0.996339 -vn 0.000000 -0.057309 -0.998357 -vn 0.000000 -0.050714 -0.998713 -vn 0.085479 -0.001567 -0.996339 -vn 0.000000 -0.050714 -0.998713 -vn 0.085991 0.008774 -0.996257 -vn 0.085479 -0.001567 -0.996339 -vn 0.255352 0.293656 -0.921174 -vn 0.235126 0.317229 -0.918739 -vn 0.212363 0.301851 -0.929402 -vn 0.263699 0.309474 -0.913613 -vn 0.290613 0.326849 -0.899285 -vn 0.262790 0.310576 -0.913501 -vn 0.290613 0.326849 -0.899285 -vn 0.305134 0.314478 -0.898886 -vn 0.262790 0.310576 -0.913501 -vn 0.310643 0.219722 -0.924783 -vn 0.263699 0.309474 -0.913613 -vn 0.276780 0.226506 -0.933856 -vn 0.263699 0.309474 -0.913613 -vn 0.262790 0.310576 -0.913501 -vn 0.276780 0.226506 -0.933856 -vn 0.276780 0.226506 -0.933856 -vn 0.359800 0.075412 -0.929977 -vn 0.310643 0.219722 -0.924783 -vn 0.359800 0.075412 -0.929977 -vn 0.404581 0.077599 -0.911204 -vn 0.310643 0.219722 -0.924783 -vn 0.446303 0.893472 0.050214 -vn 0.440343 0.896429 0.050135 -vn 0.415109 0.907407 0.065557 -vn 0.440343 0.896429 0.050135 -vn 0.410226 0.909524 0.066933 -vn 0.415109 0.907407 0.065557 -vn 0.405249 0.503584 -0.763005 -vn 0.436406 0.498474 -0.749049 -vn 0.446061 0.791914 -0.417015 -vn 0.436406 0.498474 -0.749049 -vn 0.448052 0.757634 -0.474595 -vn 0.446061 0.791914 -0.417015 -vn 0.263657 0.363905 -0.893341 -vn 0.290602 0.358700 -0.887065 -vn 0.405249 0.503584 -0.763005 -vn 0.290602 0.358700 -0.887065 -vn 0.436406 0.498474 -0.749049 -vn 0.405249 0.503584 -0.763005 -vn 0.305134 0.314478 -0.898886 -vn 0.290613 0.326849 -0.899285 -vn 0.255352 0.293656 -0.921174 -vn 0.290613 0.326849 -0.899285 -vn 0.235126 0.317229 -0.918739 -vn 0.255352 0.293656 -0.921174 -vn 0.850012 -0.526176 -0.024864 -vn 0.539402 -0.840642 -0.048634 -vn 0.791469 -0.609184 -0.049722 -vn 0.539402 -0.840642 -0.048634 -vn 0.488009 -0.871020 -0.056324 -vn 0.791469 -0.609184 -0.049722 -vn -0.562710 0.825931 0.034560 -vn -0.761245 0.647906 0.026911 -vn -0.541816 0.839771 0.034923 -vn -0.761245 0.647906 0.026911 -vn -0.823527 0.566803 0.023172 -vn -0.541816 0.839771 0.034923 -vn -0.495577 0.867646 0.039930 -vn -0.541816 0.839771 0.034923 -vn -0.756449 0.653385 0.029548 -vn -0.541816 0.839771 0.034923 -vn -0.823527 0.566803 0.023172 -vn -0.756449 0.653385 0.029548 -vn -0.138390 -0.332971 0.932727 -vn -0.142304 -0.333246 0.932039 -vn -0.134867 -0.315546 0.939277 -vn -0.980679 -0.195518 0.006376 -vn -0.984334 -0.176055 0.009521 -vn -0.981678 -0.190277 0.010176 -vn -0.981678 -0.190277 0.010176 -vn -0.984334 -0.176055 0.009521 -vn -0.982423 -0.186181 0.013505 -vn 0.984694 0.174160 -0.006738 -vn 0.985848 0.161528 -0.044851 -vn 0.983212 0.180337 -0.027797 -vn 0.984694 0.174160 -0.006738 -vn 0.984046 0.174020 -0.037009 -vn 0.985848 0.161528 -0.044851 -vn -0.075421 -0.342512 -0.936481 -vn -0.080619 -0.343276 -0.935768 -vn -0.088936 -0.352542 -0.931560 -vn -0.080619 -0.343276 -0.935768 -vn -0.094136 -0.352187 -0.931184 -vn -0.088936 -0.352542 -0.931560 -vn -0.088936 -0.352542 -0.931560 -vn -0.094136 -0.352187 -0.931184 -vn -0.110062 -0.360826 -0.926116 -vn -0.094136 -0.352187 -0.931184 -vn -0.115215 -0.359361 -0.926059 -vn -0.110062 -0.360826 -0.926116 -vn -0.731212 -0.381836 -0.565270 -vn -0.713582 -0.257949 -0.651354 -vn -0.099908 -0.581232 -0.807581 -vn -0.713582 -0.257949 -0.651354 -vn -0.071198 -0.408463 -0.909994 -vn -0.099908 -0.581232 -0.807581 -vn -0.713582 -0.257949 -0.651354 -vn -0.723566 -0.082382 -0.685321 -vn -0.071198 -0.408463 -0.909994 -vn -0.723566 -0.082382 -0.685321 -vn -0.051319 -0.202061 -0.978028 -vn -0.071198 -0.408463 -0.909994 -vn -0.731212 -0.381836 -0.565270 -vn -0.099908 -0.581232 -0.807581 -vn -0.574631 -0.446587 -0.685827 -vn -0.099908 -0.581232 -0.807581 -vn -0.108229 -0.493339 -0.863078 -vn -0.574631 -0.446587 -0.685827 -vn -0.108229 -0.493339 -0.863078 -vn -0.080619 -0.343276 -0.935768 -vn -0.092628 -0.376477 -0.921784 -vn -0.080619 -0.343276 -0.935768 -vn -0.075421 -0.342512 -0.936481 -vn -0.092628 -0.376477 -0.921784 -vn -0.080859 -0.444705 -0.892020 -vn -0.108229 -0.493339 -0.863078 -vn -0.092628 -0.376477 -0.921784 -vn -0.574631 -0.446587 -0.685827 -vn -0.108229 -0.493339 -0.863078 -vn -0.080859 -0.444705 -0.892020 -vn -0.723566 -0.082382 -0.685321 -vn -0.668540 0.161888 -0.725842 -vn -0.051319 -0.202061 -0.978028 -vn -0.668540 0.161888 -0.725842 -vn 0.006508 0.083612 -0.996477 -vn -0.051319 -0.202061 -0.978028 -vn 0.000000 -0.871316 -0.490722 -vn 0.119524 -0.861339 -0.493770 -vn -0.000000 -0.514402 -0.857549 -vn 0.119524 -0.861339 -0.493770 -vn 0.192801 -0.483418 -0.853894 -vn -0.000000 -0.514402 -0.857549 -vn 0.476271 -0.348677 -0.807211 -vn 0.192801 -0.483418 -0.853894 -vn 0.324453 -0.809413 -0.489470 -vn 0.192801 -0.483418 -0.853894 -vn 0.119524 -0.861339 -0.493770 -vn 0.324453 -0.809413 -0.489470 -vn 0.879217 -0.280086 -0.385394 -vn 0.702167 -0.425693 -0.570743 -vn 0.658652 -0.695759 -0.286526 -vn 0.702167 -0.425693 -0.570743 -vn 0.491332 -0.797984 -0.349020 -vn 0.658652 -0.695759 -0.286526 -vn 0.658652 -0.695759 -0.286526 -vn 0.833807 -0.528564 -0.159328 -vn 0.879217 -0.280086 -0.385394 -vn 0.833807 -0.528564 -0.159328 -vn 0.957276 -0.214865 -0.193535 -vn 0.879217 -0.280086 -0.385394 -vn -0.446710 0.893463 0.046633 -vn -0.429327 0.901377 0.056555 -vn -0.166799 0.985578 0.028524 -vn -0.429327 0.901377 0.056555 -vn -0.216363 0.975064 0.049360 -vn -0.166799 0.985578 0.028524 -vn 0.324453 -0.809413 -0.489470 -vn 0.253349 -0.964463 -0.075004 -vn 0.491332 -0.797984 -0.349020 -vn 0.494936 -0.863469 -0.097259 -vn 0.658652 -0.695759 -0.286526 -vn 0.491332 -0.797984 -0.349020 -vn 0.956032 -0.272734 -0.107795 -vn 0.957276 -0.214865 -0.193535 -vn 0.813515 -0.572091 -0.104428 -vn 0.957276 -0.214865 -0.193535 -vn 0.833807 -0.528564 -0.159328 -vn 0.813515 -0.572091 -0.104428 -vn -0.429327 0.901377 0.056555 -vn -0.180265 0.982087 0.054868 -vn -0.216363 0.975064 0.049360 -vn 0.780359 -0.622831 -0.055866 -vn 0.755223 -0.652355 0.063808 -vn 0.944473 -0.323507 -0.057569 -vn 0.755223 -0.652355 0.063808 -vn 0.973639 -0.218470 -0.065558 -vn 0.944473 -0.323507 -0.057569 -vn 0.763261 0.075432 0.641672 -vn 0.998456 -0.051981 0.019606 -vn 0.759620 -0.099247 0.642749 -vn 0.998456 -0.051981 0.019606 -vn 0.997150 -0.075336 -0.004072 -vn 0.759620 -0.099247 0.642749 -vn 0.805391 0.217929 0.551228 -vn 0.998707 -0.048248 0.015984 -vn 0.763261 0.075432 0.641672 -vn 0.998707 -0.048248 0.015984 -vn 0.998456 -0.051981 0.019606 -vn 0.763261 0.075432 0.641672 -vn 0.775685 0.361202 0.517538 -vn 0.999627 -0.020816 0.017698 -vn 0.805391 0.217929 0.551228 -vn 0.999627 -0.020816 0.017698 -vn 0.998707 -0.048248 0.015984 -vn 0.805391 0.217929 0.551228 -vn 0.999627 -0.020816 0.017698 -vn 0.775685 0.361202 0.517538 -vn 0.999782 0.020752 0.002261 -vn 0.775685 0.361202 0.517538 -vn 0.740592 0.322814 0.589333 -vn 0.999782 0.020752 0.002261 -vn 0.999782 0.020752 0.002261 -vn 0.740592 0.322814 0.589333 -vn 0.998303 0.058229 0.000632 -vn 0.740592 0.322814 0.589333 -vn 0.728818 0.284083 0.622994 -vn 0.998303 0.058229 0.000632 -vn 0.773857 0.304857 0.555164 -vn 0.990513 0.137395 0.002445 -vn 0.728818 0.284083 0.622994 -vn 0.990513 0.137395 0.002445 -vn 0.998303 0.058229 0.000632 -vn 0.728818 0.284083 0.622994 -vn 0.738957 0.055017 0.671503 -vn 0.763261 0.075432 0.641672 -vn 0.707233 -0.162804 0.687980 -vn 0.763261 0.075432 0.641672 -vn 0.759620 -0.099247 0.642749 -vn 0.707233 -0.162804 0.687980 -vn 0.761618 0.252637 0.596751 -vn 0.805391 0.217929 0.551228 -vn 0.738957 0.055017 0.671503 -vn 0.805391 0.217929 0.551228 -vn 0.763261 0.075432 0.641672 -vn 0.738957 0.055017 0.671503 -vn 0.775408 0.330567 0.538022 -vn 0.775685 0.361202 0.517538 -vn 0.761618 0.252637 0.596751 -vn 0.775685 0.361202 0.517538 -vn 0.805391 0.217929 0.551228 -vn 0.761618 0.252637 0.596751 -vn 0.740592 0.322814 0.589333 -vn 0.775685 0.361202 0.517538 -vn 0.804082 0.167348 0.570480 -vn 0.775685 0.361202 0.517538 -vn 0.775408 0.330567 0.538022 -vn 0.804082 0.167348 0.570480 -vn 0.740592 0.322814 0.589333 -vn 0.804082 0.167348 0.570480 -vn 0.820751 0.061453 0.567972 -vn 0.724913 0.292702 0.623560 -vn 0.728818 0.284083 0.622994 -vn 0.820751 0.061453 0.567972 -vn 0.728818 0.284083 0.622994 -vn 0.740592 0.322814 0.589333 -vn 0.820751 0.061453 0.567972 -vn 0.773857 0.304857 0.555164 -vn 0.728818 0.284083 0.622994 -vn 0.771535 0.304529 0.558566 -vn 0.728818 0.284083 0.622994 -vn 0.724913 0.292702 0.623560 -vn 0.771535 0.304529 0.558566 -vn 0.771535 0.304529 0.558566 -vn 0.740815 0.342904 0.577590 -vn 0.773857 0.304857 0.555164 -vn 0.740815 0.342904 0.577590 -vn 0.969840 0.166099 0.178388 -vn 0.773857 0.304857 0.555164 -vn 0.759620 -0.099247 0.642749 -vn 0.997150 -0.075336 -0.004072 -vn 0.772660 -0.348538 0.530583 -vn 0.997150 -0.075336 -0.004072 -vn 0.990615 -0.133182 -0.030719 -vn 0.772660 -0.348538 0.530583 -vn 0.656028 -0.418182 0.628292 -vn 0.772660 -0.348538 0.530583 -vn 0.627242 -0.676188 0.386443 -vn 0.772660 -0.348538 0.530583 -vn 0.767409 -0.563943 0.305045 -vn 0.627242 -0.676188 0.386443 -vn -0.600495 0.443647 -0.665270 -vn -0.554377 0.702479 -0.446307 -vn -0.004398 0.419539 -0.907726 -vn -0.554377 0.702479 -0.446307 -vn -0.010368 0.800881 -0.598733 -vn -0.004398 0.419539 -0.907726 -vn -0.554377 0.702479 -0.446307 -vn -0.517246 0.846290 -0.127473 -vn -0.010368 0.800881 -0.598733 -vn -0.517246 0.846290 -0.127473 -vn -0.051864 0.975168 -0.215306 -vn -0.010368 0.800881 -0.598733 -vn 0.627242 -0.676188 0.386443 -vn 0.767409 -0.563943 0.305045 -vn 0.634100 -0.764086 0.118699 -vn 0.767409 -0.563943 0.305045 -vn 0.755223 -0.652355 0.063808 -vn 0.634100 -0.764086 0.118699 -vn 0.780359 -0.622831 -0.055866 -vn 0.634100 -0.764086 0.118699 -vn 0.755223 -0.652355 0.063808 -vn -0.517246 0.846290 -0.127473 -vn -0.494071 0.869415 -0.003328 -vn -0.051864 0.975168 -0.215306 -vn -0.494071 0.869415 -0.003328 -vn -0.145820 0.989051 -0.022703 -vn -0.051864 0.975168 -0.215306 -vn 0.707233 -0.162804 0.687980 -vn 0.759620 -0.099247 0.642749 -vn 0.656028 -0.418182 0.628292 -vn 0.759620 -0.099247 0.642749 -vn 0.772660 -0.348538 0.530583 -vn 0.656028 -0.418182 0.628292 -vn -0.668540 0.161888 -0.725842 -vn -0.600495 0.443647 -0.665270 -vn 0.006508 0.083612 -0.996477 -vn -0.600495 0.443647 -0.665270 -vn -0.004398 0.419539 -0.907726 -vn 0.006508 0.083612 -0.996477 -vn 0.923588 -0.380903 -0.043567 -vn 0.985507 -0.169473 0.007393 -vn 0.951043 -0.307690 -0.029046 -vn 0.833807 -0.528564 -0.159328 -vn 0.708309 -0.701790 -0.076086 -vn 0.813515 -0.572091 -0.104428 -vn 0.494936 -0.863469 -0.097259 -vn 0.539402 -0.840642 -0.048634 -vn 0.808708 -0.587341 -0.031976 -vn 0.994998 0.093231 -0.035887 -vn 0.990513 0.137395 0.002445 -vn 0.969840 0.166099 0.178388 -vn 0.990513 0.137395 0.002445 -vn 0.773857 0.304857 0.555164 -vn 0.969840 0.166099 0.178388 -vn -0.969531 0.242434 0.035143 -vn -0.971231 0.238135 0.001538 -vn -0.984202 0.176837 0.008696 -vn -0.984202 0.176837 0.008696 -vn -0.971231 0.238135 0.001538 -vn -0.668540 0.161888 -0.725842 -vn -0.668540 0.161888 -0.725842 -vn -0.971231 0.238135 0.001538 -vn -0.600495 0.443647 -0.665270 -vn -0.554377 0.702479 -0.446307 -vn -0.600495 0.443647 -0.665270 -vn -0.971231 0.238135 0.001538 -vn -0.967156 0.254168 -0.002830 -vn -0.885029 0.465465 0.008081 -vn -0.969531 0.242434 0.035143 -vn -0.885029 0.465465 0.008081 -vn -0.932362 0.360030 0.032846 -vn -0.969531 0.242434 0.035143 -vn -0.956121 0.292541 0.015885 -vn -0.945131 0.326041 0.020602 -vn -0.844338 0.533959 0.044504 -vn -0.945131 0.326041 0.020602 -vn -0.789936 0.611456 0.046072 -vn -0.844338 0.533959 0.044504 -vn -0.996550 0.082383 -0.010068 -vn -0.996380 0.085006 0.000430 -vn -0.993936 0.109771 -0.006474 -vn -0.993936 0.109771 -0.006474 -vn -0.996380 0.085006 0.000430 -vn -0.989557 0.144091 0.003808 -vn -0.996380 0.085006 0.000430 -vn -0.983245 0.182196 0.005792 -vn -0.989557 0.144091 0.003808 -vn -0.723566 -0.082382 -0.685321 -vn -0.713582 -0.257949 -0.651354 -vn -0.995327 0.096478 -0.003944 -vn -0.996550 0.082383 -0.010068 -vn -0.993936 0.109771 -0.006474 -vn -0.713582 -0.257949 -0.651354 -vn -0.713582 -0.257949 -0.651354 -vn -0.993936 0.109771 -0.006474 -vn -0.995327 0.096478 -0.003944 -vn -0.668540 0.161888 -0.725842 -vn -0.723566 -0.082382 -0.685321 -vn -0.984202 0.176837 0.008696 -vn -0.723566 -0.082382 -0.685321 -vn -0.995327 0.096478 -0.003944 -vn -0.984202 0.176837 0.008696 -vn -0.510928 0.859417 0.018820 -vn -0.512047 0.858797 0.016581 -vn -0.453914 0.680417 0.575322 -vn -0.512047 0.858797 0.016581 -vn -0.449290 0.674456 0.585873 -vn -0.453914 0.680417 0.575322 -vn -0.126933 0.991885 0.007160 -vn -0.173425 0.735723 -0.654703 -vn -0.135280 0.990653 -0.017479 -vn -0.173425 0.735723 -0.654703 -vn -0.182289 0.709418 -0.680806 -vn -0.135280 0.990653 -0.017479 -vn -0.178828 0.405350 -0.896500 -vn -0.182289 0.709418 -0.680806 -vn -0.173425 0.735723 -0.654703 -vn -0.453914 0.680417 0.575322 -vn -0.449290 0.674456 0.585873 -vn -0.435398 0.431875 0.789881 -vn -0.603657 0.376752 -0.702606 -vn -0.616263 0.596857 -0.513792 -vn -0.609064 0.605926 -0.511757 -vn -0.248653 0.725676 0.641534 -vn -0.258900 0.717586 0.646561 -vn -0.274003 0.415746 0.867224 -vn -0.126933 0.991885 0.007160 -vn -0.135280 0.990653 -0.017479 -vn -0.248653 0.725676 0.641534 -vn -0.135280 0.990653 -0.017479 -vn -0.258900 0.717586 0.646561 -vn -0.248653 0.725676 0.641534 -vn -0.510928 0.859417 0.018820 -vn -0.609064 0.605926 -0.511757 -vn -0.512047 0.858797 0.016581 -vn -0.609064 0.605926 -0.511757 -vn -0.616263 0.596857 -0.513792 -vn -0.512047 0.858797 0.016581 -vn -0.844338 0.533959 0.044504 -vn -0.885029 0.465465 0.008081 -vn -0.956121 0.292541 0.015885 -vn -0.885029 0.465465 0.008081 -vn -0.967156 0.254168 -0.002830 -vn -0.956121 0.292541 0.015885 -vn -0.494071 0.869415 -0.003328 -vn -0.446710 0.893463 0.046633 -vn -0.145820 0.989051 -0.022703 -vn -0.446710 0.893463 0.046633 -vn -0.166799 0.985578 0.028524 -vn -0.145820 0.989051 -0.022703 -vn 0.780359 -0.622831 -0.055866 -vn 0.944473 -0.323507 -0.057569 -vn 0.813515 -0.572091 -0.104428 -vn 0.944473 -0.323507 -0.057569 -vn 0.956032 -0.272734 -0.107795 -vn 0.813515 -0.572091 -0.104428 -vn -0.989557 0.144091 0.003808 -vn -0.983245 0.182196 0.005792 -vn -0.983787 0.179160 0.008038 -vn -0.956121 0.292541 0.015885 -vn -0.983787 0.179160 0.008038 -vn -0.945131 0.326041 0.020602 -vn -0.945131 0.326041 0.020602 -vn -0.983787 0.179160 0.008038 -vn -0.983245 0.182196 0.005792 -vn -0.713582 -0.257949 -0.651354 -vn -0.731212 -0.381836 -0.565270 -vn -0.996550 0.082383 -0.010068 -vn -0.996550 0.082383 -0.010068 -vn -0.731212 -0.381836 -0.565270 -vn -0.574631 -0.446587 -0.685827 -vn -0.996550 0.082383 -0.010068 -vn -0.998947 0.045842 0.001757 -vn -0.996380 0.085006 0.000430 -vn 0.998432 -0.055875 -0.003518 -vn 0.775408 0.330567 0.538022 -vn 0.761618 0.252637 0.596751 -vn 0.969905 -0.243373 -0.007371 -vn 0.985507 -0.169473 0.007393 -vn 0.923588 -0.380903 -0.043567 -vn 0.923588 -0.380903 -0.043567 -vn 0.808708 -0.587341 -0.031976 -vn 0.969905 -0.243373 -0.007371 -vn 0.998432 -0.055875 -0.003518 -vn 0.985507 -0.169473 0.007393 -vn 0.969905 -0.243373 -0.007371 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -0.885029 0.465465 0.008081 -vn -0.494071 0.869415 -0.003328 -vn -0.932362 0.360030 0.032846 -vn -0.494071 0.869415 -0.003328 -vn -0.517246 0.846290 -0.127473 -vn -0.932362 0.360030 0.032846 -vn -0.446710 0.893463 0.046633 -vn -0.494071 0.869415 -0.003328 -vn -0.844338 0.533959 0.044504 -vn -0.494071 0.869415 -0.003328 -vn -0.885029 0.465465 0.008081 -vn -0.844338 0.533959 0.044504 -vn -0.932362 0.360030 0.032846 -vn -0.971231 0.238135 0.001538 -vn -0.969531 0.242434 0.035143 -vn -0.554377 0.702479 -0.446307 -vn -0.971231 0.238135 0.001538 -vn -0.932362 0.360030 0.032846 -vn -0.932362 0.360030 0.032846 -vn -0.517246 0.846290 -0.127473 -vn -0.554377 0.702479 -0.446307 -vn -0.429327 0.901377 0.056555 -vn -0.446710 0.893463 0.046633 -vn -0.789936 0.611456 0.046072 -vn -0.446710 0.893463 0.046633 -vn -0.844338 0.533959 0.044504 -vn -0.789936 0.611456 0.046072 -vn -0.682062 0.729639 0.049171 -vn -0.789936 0.611456 0.046072 -vn -0.914969 0.402789 0.024342 -vn -0.789936 0.611456 0.046072 -vn -0.945131 0.326041 0.020602 -vn -0.914969 0.402789 0.024342 -vn -0.284211 0.955066 0.084101 -vn -0.322783 0.944059 0.067556 -vn -0.615919 0.785318 0.062605 -vn -0.322783 0.944059 0.067556 -vn -0.682062 0.729639 0.049171 -vn -0.615919 0.785318 0.062605 -vn -0.144281 -0.209043 0.967204 -vn -0.158943 -0.205989 0.965560 -vn -0.191886 -0.210924 0.958484 -vn -0.158943 -0.205989 0.965560 -vn -0.196192 -0.207154 0.958434 -vn -0.191886 -0.210924 0.958484 -vn 0.247950 -0.964620 -0.089610 -vn 0.507293 -0.858759 -0.072022 -vn 0.249118 -0.963466 -0.098359 -vn 0.507293 -0.858759 -0.072022 -vn 0.515410 -0.853105 -0.081018 -vn 0.249118 -0.963466 -0.098359 -vn 0.212106 -0.072179 -0.974577 -vn 0.319057 -0.035786 -0.947060 -vn 0.239693 -0.077290 -0.967767 -vn 0.319057 -0.035786 -0.947060 -vn 0.328251 -0.031289 -0.944072 -vn 0.239693 -0.077290 -0.967767 -vn 0.253470 -0.964963 -0.067819 -vn 0.488009 -0.871020 -0.056324 -vn 0.253349 -0.964463 -0.075004 -vn 0.488009 -0.871020 -0.056324 -vn 0.539402 -0.840642 -0.048634 -vn 0.253349 -0.964463 -0.075004 -vn -0.322783 0.944059 0.067556 -vn -0.429327 0.901377 0.056555 -vn -0.682062 0.729639 0.049171 -vn -0.429327 0.901377 0.056555 -vn -0.789936 0.611456 0.046072 -vn -0.682062 0.729639 0.049171 -vn 0.491332 -0.797984 -0.349020 -vn 0.253349 -0.964463 -0.075004 -vn 0.494936 -0.863469 -0.097259 -vn -0.322783 0.944059 0.067556 -vn -0.083437 0.994889 0.056877 -vn -0.082937 0.995311 0.049767 -vn 0.324453 -0.809413 -0.489470 -vn 0.491332 -0.797984 -0.349020 -vn 0.476271 -0.348677 -0.807211 -vn 0.491332 -0.797984 -0.349020 -vn 0.702167 -0.425693 -0.570743 -vn 0.476271 -0.348677 -0.807211 -vn 0.324453 -0.809413 -0.489470 -vn 0.095583 -0.992659 -0.074102 -vn 0.253349 -0.964463 -0.075004 -vn 0.095583 -0.992659 -0.074102 -vn 0.253470 -0.964963 -0.067819 -vn 0.253349 -0.964463 -0.075004 -vn 0.253349 -0.964463 -0.075004 -vn 0.539402 -0.840642 -0.048634 -vn 0.494936 -0.863469 -0.097259 -vn 0.833807 -0.528564 -0.159328 -vn 0.658652 -0.695759 -0.286526 -vn 0.494936 -0.863469 -0.097259 -vn 0.494936 -0.863469 -0.097259 -vn 0.708309 -0.701790 -0.076086 -vn 0.833807 -0.528564 -0.159328 -vn 0.708309 -0.701790 -0.076086 -vn 0.745659 -0.659800 -0.093041 -vn 0.813515 -0.572091 -0.104428 -vn 0.764602 -0.641682 -0.060234 -vn 0.780359 -0.622831 -0.055866 -vn 0.813515 -0.572091 -0.104428 -vn 0.813515 -0.572091 -0.104428 -vn 0.745659 -0.659800 -0.093041 -vn 0.764602 -0.641682 -0.060234 -vn 0.780359 -0.622831 -0.055866 -vn 0.764602 -0.641682 -0.060234 -vn 0.634100 -0.764086 0.118699 -vn 0.808708 -0.587341 -0.031976 -vn 0.539402 -0.840642 -0.048634 -vn 0.850012 -0.526176 -0.024864 -vn 0.708309 -0.701790 -0.076086 -vn 0.808708 -0.587341 -0.031976 -vn 0.923588 -0.380903 -0.043567 -vn 0.923588 -0.380903 -0.043567 -vn 0.745659 -0.659800 -0.093041 -vn 0.708309 -0.701790 -0.076086 -vn 0.745659 -0.659800 -0.093041 -vn 0.923588 -0.380903 -0.043567 -vn 0.764602 -0.641682 -0.060234 -vn 0.764602 -0.641682 -0.060234 -vn 0.923588 -0.380903 -0.043567 -vn 0.951043 -0.307690 -0.029046 -vn 0.634100 -0.764086 0.118699 -vn 0.764602 -0.641682 -0.060234 -vn 0.951043 -0.307690 -0.029046 -vn 0.951043 -0.307690 -0.029046 -vn 0.627242 -0.676188 0.386443 -vn 0.634100 -0.764086 0.118699 -vn 0.656028 -0.418182 0.628292 -vn 0.627242 -0.676188 0.386443 -vn 0.951043 -0.307690 -0.029046 -vn 0.707233 -0.162804 0.687980 -vn 0.656028 -0.418182 0.628292 -vn 0.951043 -0.307690 -0.029046 -vn 0.985507 -0.169473 0.007393 -vn 0.707233 -0.162804 0.687980 -vn 0.951043 -0.307690 -0.029046 -vn 0.693869 -0.717639 -0.059504 -vn 0.734614 -0.292666 0.612119 -vn 0.951661 -0.299535 -0.067968 -vn 0.951661 -0.299535 -0.067968 -vn 0.734614 -0.292666 0.612119 -vn 0.865823 -0.075119 0.494680 -vn 0.694372 -0.659335 -0.288316 -vn 0.688953 -0.713776 -0.125968 -vn 0.911130 -0.251283 -0.326649 -vn 0.911130 -0.251283 -0.326649 -vn 0.688953 -0.713776 -0.125968 -vn 0.936547 -0.324609 -0.132316 -vn 0.591638 -0.669054 -0.449811 -vn 0.694372 -0.659335 -0.288316 -vn 0.776501 -0.261174 -0.573441 -vn 0.776501 -0.261174 -0.573441 -vn 0.694372 -0.659335 -0.288316 -vn 0.911130 -0.251283 -0.326649 -vn 0.450135 -0.670894 -0.589305 -vn 0.591638 -0.669054 -0.449811 -vn 0.582436 -0.291964 -0.758634 -vn 0.582436 -0.291964 -0.758634 -vn 0.591638 -0.669054 -0.449811 -vn 0.776501 -0.261174 -0.573441 -vn 0.167519 -0.631543 -0.757027 -vn 0.303200 -0.657246 -0.689998 -vn 0.203644 -0.349140 -0.914675 -vn 0.203644 -0.349140 -0.914675 -vn 0.303200 -0.657246 -0.689998 -vn 0.389637 -0.317883 -0.864369 -vn -0.000000 -0.641479 -0.767141 -vn 0.167519 -0.631543 -0.757027 -vn 0.000000 -0.346225 -0.938152 -vn 0.000000 -0.346225 -0.938152 -vn 0.167519 -0.631543 -0.757027 -vn 0.203644 -0.349140 -0.914675 -vn 0.688953 -0.713776 -0.125968 -vn 0.694372 -0.659335 -0.288316 -vn 0.440580 -0.890619 -0.112635 -vn 0.440580 -0.890619 -0.112635 -vn 0.694372 -0.659335 -0.288316 -vn 0.411066 -0.888894 -0.202218 -vn 0.694372 -0.659335 -0.288316 -vn 0.591638 -0.669054 -0.449811 -vn 0.411066 -0.888894 -0.202218 -vn 0.411066 -0.888894 -0.202218 -vn 0.591638 -0.669054 -0.449811 -vn 0.372727 -0.870575 -0.321206 -vn 0.591638 -0.669054 -0.449811 -vn 0.450135 -0.670894 -0.589305 -vn 0.372727 -0.870575 -0.321206 -vn 0.372727 -0.870575 -0.321206 -vn 0.450135 -0.670894 -0.589305 -vn 0.308118 -0.845792 -0.435546 -vn 0.213971 -0.821557 -0.528451 -vn 0.303200 -0.657246 -0.689998 -vn 0.127120 -0.776749 -0.616849 -vn 0.127120 -0.776749 -0.616849 -vn 0.303200 -0.657246 -0.689998 -vn 0.167519 -0.631543 -0.757027 -vn -0.000000 -0.641479 -0.767141 -vn -0.000000 -0.775130 -0.631802 -vn 0.167519 -0.631543 -0.757027 -vn 0.167519 -0.631543 -0.757027 -vn -0.000000 -0.775130 -0.631802 -vn 0.127120 -0.776749 -0.616849 -vn 0.829370 -0.508463 0.231538 -vn 0.547229 -0.823054 -0.152061 -vn 0.933139 -0.256382 0.252030 -vn 0.933139 -0.256382 0.252030 -vn 0.547229 -0.823054 -0.152061 -vn 0.834994 -0.497446 -0.235229 -vn 0.547229 -0.823054 -0.152061 -vn 0.499176 -0.817395 -0.287557 -vn 0.834994 -0.497446 -0.235229 -vn 0.834994 -0.497446 -0.235229 -vn 0.499176 -0.817395 -0.287557 -vn 0.746611 -0.509098 -0.428241 -vn 0.499176 -0.817395 -0.287557 -vn 0.433962 -0.796400 -0.421218 -vn 0.746611 -0.509098 -0.428241 -vn 0.746611 -0.509098 -0.428241 -vn 0.433962 -0.796400 -0.421218 -vn 0.626875 -0.487380 -0.607855 -vn 0.433962 -0.796400 -0.421218 -vn 0.339986 -0.770658 -0.538977 -vn 0.626875 -0.487380 -0.607855 -vn 0.626875 -0.487380 -0.607855 -vn 0.339986 -0.770658 -0.538977 -vn 0.474424 -0.451462 -0.755715 -vn 0.219380 -0.740034 -0.635784 -vn 0.105150 -0.721120 -0.684785 -vn 0.298918 -0.442208 -0.845636 -vn 0.298918 -0.442208 -0.845636 -vn 0.105150 -0.721120 -0.684785 -vn 0.134280 -0.433849 -0.890923 -vn 0.000000 -0.711059 -0.703132 -vn 0.000000 -0.428150 -0.903708 -vn 0.105150 -0.721120 -0.684785 -vn 0.105150 -0.721120 -0.684785 -vn 0.000000 -0.428150 -0.903708 -vn 0.134280 -0.433849 -0.890923 -vn 0.933139 -0.256382 0.252030 -vn 0.834994 -0.497446 -0.235229 -vn 0.950169 -0.026411 0.310615 -vn 0.950169 -0.026411 0.310615 -vn 0.834994 -0.497446 -0.235229 -vn 0.957770 -0.134386 -0.254199 -vn 0.834994 -0.497446 -0.235229 -vn 0.746611 -0.509098 -0.428241 -vn 0.957770 -0.134386 -0.254199 -vn 0.957770 -0.134386 -0.254199 -vn 0.746611 -0.509098 -0.428241 -vn 0.861660 -0.163786 -0.480330 -vn 0.746611 -0.509098 -0.428241 -vn 0.626875 -0.487380 -0.607855 -vn 0.861660 -0.163786 -0.480330 -vn 0.861660 -0.163786 -0.480330 -vn 0.626875 -0.487380 -0.607855 -vn 0.707443 -0.172771 -0.685328 -vn 0.626875 -0.487380 -0.607855 -vn 0.474424 -0.451462 -0.755715 -vn 0.707443 -0.172771 -0.685328 -vn 0.707443 -0.172771 -0.685328 -vn 0.474424 -0.451462 -0.755715 -vn 0.530815 -0.169218 -0.830422 -vn 0.298918 -0.442208 -0.845636 -vn 0.134280 -0.433849 -0.890923 -vn 0.338040 -0.168109 -0.925996 -vn 0.338040 -0.168109 -0.925996 -vn 0.134280 -0.433849 -0.890923 -vn 0.143223 -0.147346 -0.978661 -vn 0.000000 -0.428150 -0.903708 -vn 0.000000 -0.139213 -0.990262 -vn 0.134280 -0.433849 -0.890923 -vn 0.134280 -0.433849 -0.890923 -vn 0.000000 -0.139213 -0.990262 -vn 0.143223 -0.147346 -0.978661 -vn 0.887379 0.408080 0.214547 -vn 0.955533 0.229356 0.185346 -vn 0.775796 0.611274 -0.156478 -vn 0.775796 0.611274 -0.156478 -vn 0.955533 0.229356 0.185346 -vn 0.899654 0.371805 -0.228876 -vn 0.838201 0.338530 -0.427570 -vn 0.748562 0.572863 -0.333891 -vn 0.899654 0.371805 -0.228876 -vn 0.899654 0.371805 -0.228876 -vn 0.748562 0.572863 -0.333891 -vn 0.775796 0.611274 -0.156478 -vn 0.838201 0.338530 -0.427570 -vn 0.730079 0.280919 -0.622953 -vn 0.748562 0.572863 -0.333891 -vn 0.748562 0.572863 -0.333891 -vn 0.730079 0.280919 -0.622953 -vn 0.670026 0.523745 -0.526077 -vn 0.141285 0.197838 -0.969999 -vn 0.000000 0.169328 -0.985560 -vn 0.141907 0.486043 -0.862337 -vn 0.141907 0.486043 -0.862337 -vn 0.000000 0.169328 -0.985560 -vn -0.000000 0.429750 -0.902948 -vn 0.910865 0.382103 -0.155956 -vn 0.775796 0.611274 -0.156478 -vn 0.852446 0.395819 -0.341559 -vn 0.852446 0.395819 -0.341559 -vn 0.775796 0.611274 -0.156478 -vn 0.748562 0.572863 -0.333891 -vn 0.852446 0.395819 -0.341559 -vn 0.748562 0.572863 -0.333891 -vn 0.727146 0.408695 -0.551567 -vn 0.727146 0.408695 -0.551567 -vn 0.748562 0.572863 -0.333891 -vn 0.670026 0.523745 -0.526077 -vn 0.561493 0.486609 -0.669281 -vn 0.515036 0.508272 -0.690216 -vn 0.260541 0.716419 -0.647196 -vn 0.260541 0.716419 -0.647196 -vn 0.515036 0.508272 -0.690216 -vn 0.306784 0.535384 -0.786923 -vn 0.306784 0.535384 -0.786923 -vn 0.141907 0.486043 -0.862337 -vn 0.260541 0.716419 -0.647196 -vn 0.260541 0.716419 -0.647196 -vn 0.141907 0.486043 -0.862337 -vn 0.139642 0.443685 -0.885237 -vn 0.141907 0.486043 -0.862337 -vn -0.000000 0.429750 -0.902948 -vn 0.139642 0.443685 -0.885237 -vn 0.139642 0.443685 -0.885237 -vn -0.000000 0.429750 -0.902948 -vn 0.000000 0.345679 -0.938353 -vn 0.978524 0.071526 -0.193328 -vn 0.865780 0.298022 0.402004 -vn 0.910865 0.382103 -0.155956 -vn 0.910702 0.410936 -0.041879 -vn 0.865780 0.298022 0.402004 -vn 0.663248 0.596004 0.452638 -vn 0.910865 0.382103 -0.155956 -vn 0.852446 0.395819 -0.341559 -vn 0.978524 0.071526 -0.193328 -vn 0.978524 0.071526 -0.193328 -vn 0.852446 0.395819 -0.341559 -vn 0.911055 0.107518 -0.398019 -vn 0.852446 0.395819 -0.341559 -vn 0.727146 0.408695 -0.551567 -vn 0.911055 0.107518 -0.398019 -vn 0.911055 0.107518 -0.398019 -vn 0.727146 0.408695 -0.551567 -vn 0.783256 0.126122 -0.608771 -vn 0.419181 0.072841 -0.904976 -vn 0.381991 0.053413 -0.922621 -vn 0.426493 0.056983 -0.902694 -vn 0.426493 0.056983 -0.902694 -vn 0.381991 0.053413 -0.922621 -vn 0.394310 0.036711 -0.918244 -vn 0.319266 0.017626 -0.947501 -vn 0.341576 0.029789 -0.939382 -vn 0.381991 0.053413 -0.922621 -vn 0.381991 0.053413 -0.922621 -vn 0.341576 0.029789 -0.939382 -vn 0.394310 0.036711 -0.918244 -vn 0.000000 0.345679 -0.938353 -vn 0.000000 0.077721 -0.996975 -vn 0.139642 0.443685 -0.885237 -vn 0.139642 0.443685 -0.885237 -vn 0.000000 0.077721 -0.996975 -vn 0.103853 0.070740 -0.992074 -vn 0.887417 0.192326 0.418929 -vn 0.963287 0.140801 -0.228590 -vn 0.895262 0.186285 0.404727 -vn 0.895262 0.186285 0.404727 -vn 0.963287 0.140801 -0.228590 -vn 0.922032 0.290901 -0.255407 -vn 0.963287 0.140801 -0.228590 -vn 0.891648 0.172871 -0.418426 -vn 0.922032 0.290901 -0.255407 -vn 0.922032 0.290901 -0.255407 -vn 0.891648 0.172871 -0.418426 -vn 0.845815 0.329793 -0.419325 -vn 0.891648 0.172871 -0.418426 -vn 0.767576 0.190717 -0.611926 -vn 0.845815 0.329793 -0.419325 -vn 0.845815 0.329793 -0.419325 -vn 0.767576 0.190717 -0.611926 -vn 0.708098 0.345784 -0.615654 -vn 0.883142 0.315792 0.346895 -vn 0.895262 0.186285 0.404727 -vn 0.746380 0.632005 -0.208535 -vn 0.746380 0.632005 -0.208535 -vn 0.895262 0.186285 0.404727 -vn 0.922032 0.290901 -0.255407 -vn 0.845815 0.329793 -0.419325 -vn 0.682306 0.642739 -0.348346 -vn 0.922032 0.290901 -0.255407 -vn 0.922032 0.290901 -0.255407 -vn 0.682306 0.642739 -0.348346 -vn 0.746380 0.632005 -0.208535 -vn 0.708098 0.345784 -0.615654 -vn 0.597176 0.623458 -0.504659 -vn 0.845815 0.329793 -0.419325 -vn 0.845815 0.329793 -0.419325 -vn 0.597176 0.623458 -0.504659 -vn 0.682306 0.642739 -0.348346 -vn 0.708098 0.345784 -0.615654 -vn 0.565694 0.317444 -0.761065 -vn 0.597176 0.623458 -0.504659 -vn 0.597176 0.623458 -0.504659 -vn 0.565694 0.317444 -0.761065 -vn 0.484964 0.591691 -0.643981 -vn 0.565694 0.317444 -0.761065 -vn 0.379772 0.322230 -0.867145 -vn 0.484964 0.591691 -0.643981 -vn 0.484964 0.591691 -0.643981 -vn 0.379772 0.322230 -0.867145 -vn 0.297017 0.614079 -0.731223 -vn 0.186911 0.318785 -0.929215 -vn 0.000000 0.303281 -0.952901 -vn 0.160628 0.572026 -0.804354 -vn 0.160628 0.572026 -0.804354 -vn 0.000000 0.303281 -0.952901 -vn 0.000000 0.566902 -0.823785 -vn 0.872500 0.486439 0.046048 -vn 0.883142 0.315792 0.346895 -vn 0.695502 0.699075 -0.166048 -vn 0.695502 0.699075 -0.166048 -vn 0.883142 0.315792 0.346895 -vn 0.746380 0.632005 -0.208535 -vn 0.682306 0.642739 -0.348346 -vn 0.641577 0.697453 -0.319279 -vn 0.746380 0.632005 -0.208535 -vn 0.746380 0.632005 -0.208535 -vn 0.641577 0.697453 -0.319279 -vn 0.695502 0.699075 -0.166048 -vn 0.597176 0.623458 -0.504659 -vn 0.576935 0.677233 -0.456619 -vn 0.682306 0.642739 -0.348346 -vn 0.682306 0.642739 -0.348346 -vn 0.576935 0.677233 -0.456619 -vn 0.641577 0.697453 -0.319279 -vn 0.484964 0.591691 -0.643981 -vn 0.445043 0.671109 -0.592916 -vn 0.597176 0.623458 -0.504659 -vn 0.597176 0.623458 -0.504659 -vn 0.445043 0.671109 -0.592916 -vn 0.576935 0.677233 -0.456619 -vn 0.484964 0.591691 -0.643981 -vn 0.297017 0.614079 -0.731223 -vn 0.445043 0.671109 -0.592916 -vn 0.445043 0.671109 -0.592916 -vn 0.297017 0.614079 -0.731223 -vn 0.311586 0.626785 -0.714181 -vn 0.160628 0.572026 -0.804354 -vn 0.000000 0.566902 -0.823785 -vn 0.167735 0.583693 -0.794460 -vn 0.167735 0.583693 -0.794460 -vn 0.000000 0.566902 -0.823785 -vn 0.000000 0.578067 -0.815989 -vn 0.827008 0.305512 0.471932 -vn 0.663248 0.596004 0.452638 -vn 0.787499 0.326946 0.522448 -vn 0.787499 0.326946 0.522448 -vn 0.663248 0.596004 0.452638 -vn 0.865780 0.298022 0.402004 -vn 0.887417 0.192326 0.418929 -vn 0.895262 0.186285 0.404727 -vn 0.790440 0.189724 0.582417 -vn 0.790440 0.189724 0.582417 -vn 0.895262 0.186285 0.404727 -vn 0.775527 -0.000898 0.631313 -vn 0.883142 0.315792 0.346895 -vn 0.964631 0.193831 0.178653 -vn 0.879022 -0.245419 0.408766 -vn 0.643794 0.051604 0.763457 -vn 0.734614 -0.292666 0.612119 -vn 0.645109 -0.423749 0.635823 -vn 0.827008 0.305512 0.471932 -vn 0.731349 0.176702 0.658715 -vn 0.722072 0.167012 0.671356 -vn 0.722072 0.167012 0.671356 -vn 0.731349 0.176702 0.658715 -vn 0.822162 0.061563 0.565915 -vn 0.731349 0.176702 0.658715 -vn 0.687158 0.108164 0.718411 -vn 0.822162 0.061563 0.565915 -vn 0.827008 0.305512 0.471932 -vn 0.665715 0.458373 0.588828 -vn 0.663248 0.596004 0.452638 -vn 0.141923 0.004781 -0.989866 -vn -0.000000 0.003909 -0.999992 -vn 0.141285 0.197838 -0.969999 -vn 0.141285 0.197838 -0.969999 -vn -0.000000 0.003909 -0.999992 -vn 0.000000 0.169328 -0.985560 -vn 0.549889 0.016593 -0.835073 -vn 0.341784 0.005125 -0.939765 -vn 0.556365 0.235871 -0.796758 -vn 0.556365 0.235871 -0.796758 -vn 0.341784 0.005125 -0.939765 -vn 0.340643 0.199708 -0.918738 -vn 0.879747 0.084713 -0.467833 -vn 0.732050 0.035948 -0.680302 -vn 0.838201 0.338530 -0.427570 -vn 0.838201 0.338530 -0.427570 -vn 0.732050 0.035948 -0.680302 -vn 0.730079 0.280919 -0.622953 -vn 0.963144 0.096949 -0.250908 -vn 0.879747 0.084713 -0.467833 -vn 0.899654 0.371805 -0.228876 -vn 0.899654 0.371805 -0.228876 -vn 0.879747 0.084713 -0.467833 -vn 0.838201 0.338530 -0.427570 -vn 0.952537 0.082086 0.293147 -vn 0.963144 0.096949 -0.250908 -vn 0.955533 0.229356 0.185346 -vn 0.955533 0.229356 0.185346 -vn 0.963144 0.096949 -0.250908 -vn 0.899654 0.371805 -0.228876 -vn 0.645109 -0.423749 0.635823 -vn 0.762062 -0.580087 0.287682 -vn 0.652378 0.102382 0.750946 -vn 0.652378 0.102382 0.750946 -vn 0.762062 -0.580087 0.287682 -vn 0.817308 0.373606 0.438665 -vn 0.066628 0.586188 0.807431 -vn 0.829370 -0.508463 0.231538 -vn 0.933139 -0.256382 0.252030 -vn 0.829370 -0.508463 0.231538 -vn 0.066628 0.586188 0.807431 -vn 0.482375 0.684024 0.547198 -vn 0.933139 -0.256382 0.252030 -vn 0.950169 -0.026411 0.310615 -vn 0.066628 0.586188 0.807431 -vn 0.066628 0.586188 0.807431 -vn 0.950169 -0.026411 0.310615 -vn -0.074275 0.267465 0.960701 -vn 0.955533 0.229356 0.185346 -vn 0.818615 -0.123715 0.560860 -vn 0.172799 -0.451525 0.875366 -vn 0.818615 -0.123715 0.560860 -vn 0.955533 0.229356 0.185346 -vn 0.887379 0.408080 0.214547 -vn -0.096717 0.033816 0.994737 -vn 0.955533 0.229356 0.185346 -vn 0.172799 -0.451525 0.875366 -vn 0.955533 0.229356 0.185346 -vn -0.096717 0.033816 0.994737 -vn 0.952537 0.082086 0.293147 -vn 0.127120 -0.776749 -0.616849 -vn -0.000000 -0.775130 -0.631802 -vn 0.105150 -0.721120 -0.684785 -vn 0.105150 -0.721120 -0.684785 -vn -0.000000 -0.775130 -0.631802 -vn 0.000000 -0.711059 -0.703132 -vn 0.213971 -0.821557 -0.528451 -vn 0.127120 -0.776749 -0.616849 -vn 0.219380 -0.740034 -0.635784 -vn 0.219380 -0.740034 -0.635784 -vn 0.127120 -0.776749 -0.616849 -vn 0.105150 -0.721120 -0.684785 -vn 0.372727 -0.870575 -0.321206 -vn 0.308118 -0.845792 -0.435546 -vn 0.433962 -0.796400 -0.421218 -vn 0.433962 -0.796400 -0.421218 -vn 0.308118 -0.845792 -0.435546 -vn 0.339986 -0.770658 -0.538977 -vn 0.411066 -0.888894 -0.202218 -vn 0.372727 -0.870575 -0.321206 -vn 0.499176 -0.817395 -0.287557 -vn 0.499176 -0.817395 -0.287557 -vn 0.372727 -0.870575 -0.321206 -vn 0.433962 -0.796400 -0.421218 -vn 0.440580 -0.890619 -0.112635 -vn 0.411066 -0.888894 -0.202218 -vn 0.547229 -0.823054 -0.152061 -vn 0.547229 -0.823054 -0.152061 -vn 0.411066 -0.888894 -0.202218 -vn 0.499176 -0.817395 -0.287557 -vn 0.762062 -0.580087 0.287682 -vn 0.440580 -0.890619 -0.112635 -vn 0.829370 -0.508463 0.231538 -vn 0.829370 -0.508463 0.231538 -vn 0.440580 -0.890619 -0.112635 -vn 0.547229 -0.823054 -0.152061 -vn 0.762062 -0.580087 0.287682 -vn 0.829370 -0.508463 0.231538 -vn 0.817308 0.373606 0.438665 -vn 0.817308 0.373606 0.438665 -vn 0.829370 -0.508463 0.231538 -vn 0.482375 0.684024 0.547198 -vn 0.822162 0.061563 0.565915 -vn 0.980730 -0.192660 -0.032425 -vn 0.722072 0.167012 0.671356 -vn 0.722072 0.167012 0.671356 -vn 0.980730 -0.192660 -0.032425 -vn 0.968206 -0.249820 0.012937 -vn 0.652378 0.102382 0.750946 -vn 0.817308 0.373606 0.438665 -vn 0.926853 0.296065 0.230845 -vn 0.849402 0.514429 0.117811 -vn 0.817308 0.373606 0.438665 -vn 0.044560 0.961925 0.269656 -vn 0.482375 0.684024 0.547198 -vn 0.066628 0.586188 0.807431 -vn -0.454056 0.816322 0.357003 -vn -0.454056 0.816322 0.357003 -vn 0.066628 0.586188 0.807431 -vn -0.741744 0.469145 0.479291 -vn 0.066628 0.586188 0.807431 -vn -0.074275 0.267465 0.960701 -vn -0.741744 0.469145 0.479291 -vn -0.741744 0.469145 0.479291 -vn -0.074275 0.267465 0.960701 -vn -0.800068 0.182433 0.571498 -vn 0.818615 -0.123715 0.560860 -vn -0.577310 -0.607635 0.545429 -vn 0.172799 -0.451525 0.875366 -vn 0.172799 -0.451525 0.875366 -vn -0.577310 -0.607635 0.545429 -vn -0.757302 -0.341398 0.556724 -vn 0.497236 -0.822134 0.277223 -vn 0.429055 -0.842434 0.325909 -vn 0.489758 -0.824720 0.282797 -vn 0.489758 -0.824720 0.282797 -vn 0.429055 -0.842434 0.325909 -vn 0.413625 -0.846061 0.336297 -vn 0.172799 -0.451525 0.875366 -vn -0.757302 -0.341398 0.556724 -vn -0.096717 0.033816 0.994737 -vn -0.096717 0.033816 0.994737 -vn -0.757302 -0.341398 0.556724 -vn -0.846383 -0.041168 0.530981 -vn 0.817308 0.373606 0.438665 -vn 0.482375 0.684024 0.547198 -vn 0.044560 0.961925 0.269656 -vn 0.044560 0.961925 0.269656 -vn 0.482375 0.684024 0.547198 -vn -0.454056 0.816322 0.357003 -vn 0.722072 0.167012 0.671356 -vn 0.665715 0.458373 0.588828 -vn 0.827008 0.305512 0.471932 -vn 0.665715 0.458373 0.588828 -vn 0.818615 -0.123715 0.560860 -vn 0.887379 0.408080 0.214547 -vn 0.818615 -0.123715 0.560860 -vn 0.665715 0.458373 0.588828 -vn 0.722072 0.167012 0.671356 -vn 0.822162 0.061563 0.565915 -vn 0.687158 0.108164 0.718411 -vn 0.807536 0.080137 0.584349 -vn 0.807536 0.080137 0.584349 -vn 0.687158 0.108164 0.718411 -vn 0.643614 0.102220 0.758493 -vn 0.980730 -0.192660 -0.032425 -vn 0.822162 0.061563 0.565915 -vn 0.992109 -0.110931 -0.058437 -vn 0.992109 -0.110931 -0.058437 -vn 0.822162 0.061563 0.565915 -vn 0.807536 0.080137 0.584349 -vn 0.643794 0.051604 0.763457 -vn 0.645109 -0.423749 0.635823 -vn 0.652378 0.102382 0.750946 -vn 0.762062 -0.580087 0.287682 -vn 0.645109 -0.423749 0.635823 -vn 0.693869 -0.717639 -0.059504 -vn 0.693869 -0.717639 -0.059504 -vn 0.645109 -0.423749 0.635823 -vn 0.734614 -0.292666 0.612119 -vn 0.688953 -0.713776 -0.125968 -vn 0.693869 -0.717639 -0.059504 -vn 0.936547 -0.324609 -0.132316 -vn 0.936547 -0.324609 -0.132316 -vn 0.693869 -0.717639 -0.059504 -vn 0.951661 -0.299535 -0.067968 -vn 0.695502 0.699075 -0.166048 -vn 0.641577 0.697453 -0.319279 -vn 0.737048 0.630837 -0.242495 -vn 0.576935 0.677233 -0.456619 -vn 0.657376 0.599430 -0.456663 -vn 0.641577 0.697453 -0.319279 -vn 0.641577 0.697453 -0.319279 -vn 0.657376 0.599430 -0.456663 -vn 0.737048 0.630837 -0.242495 -vn 0.445043 0.671109 -0.592916 -vn 0.522000 0.565707 -0.638350 -vn 0.576935 0.677233 -0.456619 -vn 0.576935 0.677233 -0.456619 -vn 0.522000 0.565707 -0.638350 -vn 0.657376 0.599430 -0.456663 -vn 0.445043 0.671109 -0.592916 -vn 0.311586 0.626785 -0.714181 -vn 0.522000 0.565707 -0.638350 -vn 0.522000 0.565707 -0.638350 -vn 0.311586 0.626785 -0.714181 -vn 0.366912 0.544933 -0.753938 -vn 0.167735 0.583693 -0.794460 -vn 0.000000 0.578067 -0.815989 -vn 0.182275 0.548030 -0.816357 -vn 0.182275 0.548030 -0.816357 -vn 0.000000 0.578067 -0.815989 -vn 0.000000 0.566147 -0.824304 -vn 0.522554 0.775614 -0.354063 -vn 0.531461 0.826347 -0.186276 -vn 0.657376 0.599430 -0.456663 -vn 0.657376 0.599430 -0.456663 -vn 0.531461 0.826347 -0.186276 -vn 0.737048 0.630837 -0.242495 -vn 0.124090 0.987698 -0.095156 -vn 0.155681 0.954668 -0.253718 -vn 0.000000 0.996295 -0.085997 -vn 0.000000 0.996295 -0.085997 -vn 0.155681 0.954668 -0.253718 -vn 0.000000 0.968551 -0.248813 -vn 0.155681 0.954668 -0.253718 -vn 0.174351 0.814871 -0.552800 -vn 0.000000 0.968551 -0.248813 -vn 0.000000 0.968551 -0.248813 -vn 0.174351 0.814871 -0.552800 -vn -0.000000 0.828372 -0.560179 -vn 0.370339 0.773014 -0.515071 -vn 0.522554 0.775614 -0.354063 -vn 0.522000 0.565707 -0.638350 -vn 0.522000 0.565707 -0.638350 -vn 0.522554 0.775614 -0.354063 -vn 0.657376 0.599430 -0.456663 -vn 0.366912 0.544933 -0.753938 -vn 0.370339 0.773014 -0.515071 -vn 0.522000 0.565707 -0.638350 -vn 0.000000 0.566147 -0.824304 -vn -0.000000 0.828372 -0.560179 -vn 0.182275 0.548030 -0.816357 -vn 0.182275 0.548030 -0.816357 -vn -0.000000 0.828372 -0.560179 -vn 0.174351 0.814871 -0.552800 -vn 0.370339 0.773014 -0.515071 -vn 0.283844 0.920677 -0.267929 -vn 0.522554 0.775614 -0.354063 -vn 0.283844 0.920677 -0.267929 -vn 0.289060 0.948825 -0.127180 -vn 0.522554 0.775614 -0.354063 -vn 0.522554 0.775614 -0.354063 -vn 0.289060 0.948825 -0.127180 -vn 0.531461 0.826347 -0.186276 -vn 0.811511 0.582008 0.052118 -vn 0.564449 0.824801 0.033177 -vn 0.813126 0.562843 0.148437 -vn 0.813126 0.562843 0.148437 -vn 0.564449 0.824801 0.033177 -vn 0.586343 0.801355 0.118456 -vn 0.107263 0.993482 0.038571 -vn -0.000000 0.999113 0.042110 -vn 0.101507 0.989456 0.103309 -vn 0.101507 0.989456 0.103309 -vn -0.000000 0.999113 0.042110 -vn -0.000000 0.994745 0.102388 -vn 0.564449 0.824801 0.033177 -vn 0.285655 0.957858 0.030146 -vn 0.586343 0.801355 0.118456 -vn 0.586343 0.801355 0.118456 -vn 0.285655 0.957858 0.030146 -vn 0.271656 0.956444 0.106859 -vn 0.675523 0.489859 0.551096 -vn 0.790476 0.510996 0.337684 -vn 0.504243 0.754679 0.419760 -vn 0.504243 0.754679 0.419760 -vn 0.790476 0.510996 0.337684 -vn 0.566436 0.773715 0.283751 -vn 0.306688 0.839558 0.448424 -vn 0.395709 0.594759 0.699769 -vn 0.504243 0.754679 0.419760 -vn 0.504243 0.754679 0.419760 -vn 0.395709 0.594759 0.699769 -vn 0.675523 0.489859 0.551096 -vn 0.000000 0.644588 0.764530 -vn 0.172841 0.641260 0.747604 -vn -0.000000 0.890696 0.454600 -vn -0.000000 0.890696 0.454600 -vn 0.172841 0.641260 0.747604 -vn 0.151422 0.882115 0.446031 -vn 0.114776 0.969606 0.216080 -vn -0.000000 0.977356 0.211603 -vn 0.151422 0.882115 0.446031 -vn 0.151422 0.882115 0.446031 -vn -0.000000 0.977356 0.211603 -vn -0.000000 0.890696 0.454600 -vn 0.306688 0.839558 0.448424 -vn 0.504243 0.754679 0.419760 -vn 0.269387 0.933644 0.236092 -vn 0.269387 0.933644 0.236092 -vn 0.504243 0.754679 0.419760 -vn 0.566436 0.773715 0.283751 -vn 0.775527 -0.000898 0.631313 -vn 0.992653 0.114144 0.040135 -vn 0.790440 0.189724 0.582417 -vn 0.879022 -0.245419 0.408766 -vn 0.992653 0.114144 0.040135 -vn 0.775527 -0.000898 0.631313 -vn 0.964631 0.193831 0.178653 -vn 0.992653 0.114144 0.040135 -vn 0.879022 -0.245419 0.408766 -vn 0.992653 0.114144 0.040135 -vn 0.964631 0.193831 0.178653 -vn 0.965976 0.251500 0.060315 -vn 0.787499 0.326946 0.522448 -vn 0.998468 0.034872 0.042952 -vn 0.827008 0.305512 0.471932 -vn 0.827008 0.305512 0.471932 -vn 0.998468 0.034872 0.042952 -vn 0.731349 0.176702 0.658715 -vn 0.941576 0.289157 0.172692 -vn 0.987901 0.136372 0.073847 -vn 0.965976 0.251500 0.060315 -vn 0.965976 0.251500 0.060315 -vn 0.987901 0.136372 0.073847 -vn 0.992653 0.114144 0.040135 -vn 0.965976 0.251500 0.060315 -vn 0.905940 0.384539 0.177207 -vn 0.941576 0.289157 0.172692 -vn 0.921473 0.383876 0.059379 -vn 0.905940 0.384539 0.177207 -vn 0.965976 0.251500 0.060315 -vn 0.730356 0.204967 0.651589 -vn 0.877960 0.234283 0.417490 -vn 0.736229 0.256875 0.626085 -vn 0.736229 0.256875 0.626085 -vn 0.877960 0.234283 0.417490 -vn 0.859273 0.317420 0.401117 -vn 0.730356 0.204967 0.651589 -vn 0.736229 0.256875 0.626085 -vn 0.478164 0.165313 0.862572 -vn 0.478164 0.165313 0.862572 -vn 0.736229 0.256875 0.626085 -vn 0.464356 0.290440 0.836671 -vn -0.000000 0.342544 0.939502 -vn 0.000000 0.200670 0.979659 -vn 0.190440 0.332540 0.923661 -vn 0.190440 0.332540 0.923661 -vn 0.000000 0.200670 0.979659 -vn 0.189718 0.191129 0.963056 -vn 0.811511 0.582008 0.052118 -vn 0.813126 0.562843 0.148437 -vn 0.921473 0.383876 0.059379 -vn 0.921473 0.383876 0.059379 -vn 0.813126 0.562843 0.148437 -vn 0.905940 0.384539 0.177207 -vn 0.859273 0.317420 0.401117 -vn 0.790476 0.510996 0.337684 -vn 0.736229 0.256875 0.626085 -vn 0.736229 0.256875 0.626085 -vn 0.790476 0.510996 0.337684 -vn 0.675523 0.489859 0.551096 -vn 0.395709 0.594759 0.699769 -vn 0.464356 0.290440 0.836671 -vn 0.675523 0.489859 0.551096 -vn 0.675523 0.489859 0.551096 -vn 0.464356 0.290440 0.836671 -vn 0.736229 0.256875 0.626085 -vn 0.190440 0.332540 0.923661 -vn 0.172841 0.641260 0.747604 -vn -0.000000 0.342544 0.939502 -vn -0.000000 0.342544 0.939502 -vn 0.172841 0.641260 0.747604 -vn 0.000000 0.644588 0.764530 -vn 0.113784 0.993394 -0.014901 -vn -0.000000 0.999950 -0.010010 -vn 0.107263 0.993482 0.038571 -vn 0.107263 0.993482 0.038571 -vn -0.000000 0.999950 -0.010010 -vn -0.000000 0.999113 0.042110 -vn 0.285655 0.957858 0.030146 -vn 0.564449 0.824801 0.033177 -vn 0.293378 0.955452 -0.032274 -vn 0.293378 0.955452 -0.032274 -vn 0.564449 0.824801 0.033177 -vn 0.558464 0.827906 -0.051870 -vn 0.558464 0.827906 -0.051870 -vn 0.564449 0.824801 0.033177 -vn 0.795043 0.603545 -0.060330 -vn 0.795043 0.603545 -0.060330 -vn 0.564449 0.824801 0.033177 -vn 0.811511 0.582008 0.052118 -vn 0.872500 0.486439 0.046048 -vn 0.795043 0.603545 -0.060330 -vn 0.921473 0.383876 0.059379 -vn 0.921473 0.383876 0.059379 -vn 0.795043 0.603545 -0.060330 -vn 0.811511 0.582008 0.052118 -vn 0.910702 0.410936 -0.041879 -vn 0.887379 0.408080 0.214547 -vn 0.775796 0.611274 -0.156478 -vn 0.665715 0.458373 0.588828 -vn 0.910702 0.410936 -0.041879 -vn 0.663248 0.596004 0.452638 -vn 0.795043 0.603545 -0.060330 -vn 0.737048 0.630837 -0.242495 -vn 0.558464 0.827906 -0.051870 -vn 0.558464 0.827906 -0.051870 -vn 0.737048 0.630837 -0.242495 -vn 0.531461 0.826347 -0.186276 -vn 0.558464 0.827906 -0.051870 -vn 0.531461 0.826347 -0.186276 -vn 0.293378 0.955452 -0.032274 -vn 0.293378 0.955452 -0.032274 -vn 0.531461 0.826347 -0.186276 -vn 0.289060 0.948825 -0.127180 -vn 0.000000 0.996295 -0.085997 -vn -0.000000 0.999950 -0.010010 -vn 0.124090 0.987698 -0.095156 -vn 0.124090 0.987698 -0.095156 -vn -0.000000 0.999950 -0.010010 -vn 0.113784 0.993394 -0.014901 -vn 0.895262 0.186285 0.404727 -vn 0.883142 0.315792 0.346895 -vn 0.775527 -0.000898 0.631313 -vn 0.775527 -0.000898 0.631313 -vn 0.883142 0.315792 0.346895 -vn 0.879022 -0.245419 0.408766 -vn 0.964631 0.193831 0.178653 -vn 0.883142 0.315792 0.346895 -vn 0.872500 0.486439 0.046048 -vn 0.737048 0.630837 -0.242495 -vn 0.795043 0.603545 -0.060330 -vn 0.695502 0.699075 -0.166048 -vn 0.695502 0.699075 -0.166048 -vn 0.795043 0.603545 -0.060330 -vn 0.872500 0.486439 0.046048 -vn 0.762062 -0.580087 0.287682 -vn 0.693869 -0.717639 -0.059504 -vn 0.440580 -0.890619 -0.112635 -vn 0.440580 -0.890619 -0.112635 -vn 0.693869 -0.717639 -0.059504 -vn 0.688953 -0.713776 -0.125968 -vn 0.643614 0.102220 0.758493 -vn 0.869836 -0.056841 0.490055 -vn 0.643794 0.051604 0.763457 -vn 0.643794 0.051604 0.763457 -vn 0.869836 -0.056841 0.490055 -vn 0.833627 -0.033590 0.551305 -vn 0.807536 0.080137 0.584349 -vn 0.643614 0.102220 0.758493 -vn 0.652378 0.102382 0.750946 -vn 0.652378 0.102382 0.750946 -vn 0.643614 0.102220 0.758493 -vn 0.643794 0.051604 0.763457 -vn 0.652378 0.102382 0.750946 -vn 0.926853 0.296065 0.230845 -vn 0.807536 0.080137 0.584349 -vn 0.807536 0.080137 0.584349 -vn 0.849402 0.514429 0.117811 -vn 0.992109 -0.110931 -0.058437 -vn 0.998468 0.034872 0.042952 -vn 0.787499 0.326946 0.522448 -vn 0.992653 0.114144 0.040135 -vn 0.000000 0.077721 -0.996975 -vn 0.000000 0.152101 -0.988365 -vn 0.103853 0.070740 -0.992074 -vn 0.103853 0.070740 -0.992074 -vn 0.000000 0.152101 -0.988365 -vn 0.170294 0.181676 -0.968501 -vn 0.402909 -0.008557 -0.915200 -vn 0.394310 0.036711 -0.918244 -vn 0.339259 0.010099 -0.940639 -vn 0.339259 0.010099 -0.940639 -vn 0.394310 0.036711 -0.918244 -vn 0.341576 0.029789 -0.939382 -vn 0.402909 -0.008557 -0.915200 -vn 0.452658 0.019859 -0.891463 -vn 0.394310 0.036711 -0.918244 -vn 0.394310 0.036711 -0.918244 -vn 0.452658 0.019859 -0.891463 -vn 0.426493 0.056983 -0.902694 -vn 0.911055 0.107518 -0.398019 -vn 0.783256 0.126122 -0.608771 -vn 0.891648 0.172871 -0.418426 -vn 0.891648 0.172871 -0.418426 -vn 0.783256 0.126122 -0.608771 -vn 0.767576 0.190717 -0.611926 -vn 0.978524 0.071526 -0.193328 -vn 0.911055 0.107518 -0.398019 -vn 0.963287 0.140801 -0.228590 -vn 0.963287 0.140801 -0.228590 -vn 0.911055 0.107518 -0.398019 -vn 0.891648 0.172871 -0.418426 -vn 0.784323 -0.020364 0.620019 -vn 0.804548 -0.044303 0.592232 -vn 0.791556 -0.097603 0.603252 -vn 0.643794 0.051604 0.763457 -vn 0.784323 -0.020364 0.620019 -vn 0.865823 -0.075119 0.494680 -vn 0.865823 -0.075119 0.494680 -vn 0.784323 -0.020364 0.620019 -vn 0.894455 -0.085918 0.438826 -vn 0.894455 -0.085918 0.438826 -vn 0.987210 -0.158821 -0.013868 -vn 0.865823 -0.075119 0.494680 -vn 0.865823 -0.075119 0.494680 -vn 0.987210 -0.158821 -0.013868 -vn 0.951661 -0.299535 -0.067968 -vn 0.936547 -0.324609 -0.132316 -vn 0.951661 -0.299535 -0.067968 -vn 0.986121 -0.113166 -0.121487 -vn 0.986121 -0.113166 -0.121487 -vn 0.951661 -0.299535 -0.067968 -vn 0.987210 -0.158821 -0.013868 -vn 0.911130 -0.251283 -0.326649 -vn 0.936547 -0.324609 -0.132316 -vn 0.944819 -0.103296 -0.310882 -vn 0.944819 -0.103296 -0.310882 -vn 0.936547 -0.324609 -0.132316 -vn 0.986121 -0.113166 -0.121487 -vn 0.776501 -0.261174 -0.573441 -vn 0.911130 -0.251283 -0.326649 -vn 0.817637 -0.091284 -0.568451 -vn 0.817637 -0.091284 -0.568451 -vn 0.911130 -0.251283 -0.326649 -vn 0.944819 -0.103296 -0.310882 -vn 0.582436 -0.291964 -0.758634 -vn 0.776501 -0.261174 -0.573441 -vn 0.615939 -0.083779 -0.783326 -vn 0.615939 -0.083779 -0.783326 -vn 0.776501 -0.261174 -0.573441 -vn 0.817637 -0.091284 -0.568451 -vn 0.203644 -0.349140 -0.914675 -vn 0.389637 -0.317883 -0.864369 -vn 0.205817 -0.136223 -0.969063 -vn 0.205817 -0.136223 -0.969063 -vn 0.389637 -0.317883 -0.864369 -vn 0.394315 -0.101461 -0.913357 -vn 0.000000 -0.346225 -0.938152 -vn 0.203644 -0.349140 -0.914675 -vn 0.000000 -0.144658 -0.989482 -vn 0.000000 -0.144658 -0.989482 -vn 0.203644 -0.349140 -0.914675 -vn 0.205817 -0.136223 -0.969063 -vn 0.000000 -0.139213 -0.990262 -vn -0.000000 0.003909 -0.999992 -vn 0.143223 -0.147346 -0.978661 -vn 0.143223 -0.147346 -0.978661 -vn -0.000000 0.003909 -0.999992 -vn 0.141923 0.004781 -0.989866 -vn 0.338040 -0.168109 -0.925996 -vn 0.143223 -0.147346 -0.978661 -vn 0.341784 0.005125 -0.939765 -vn 0.341784 0.005125 -0.939765 -vn 0.143223 -0.147346 -0.978661 -vn 0.141923 0.004781 -0.989866 -vn 0.707443 -0.172771 -0.685328 -vn 0.530815 -0.169218 -0.830422 -vn 0.732050 0.035948 -0.680302 -vn 0.732050 0.035948 -0.680302 -vn 0.530815 -0.169218 -0.830422 -vn 0.549889 0.016593 -0.835073 -vn 0.861660 -0.163786 -0.480330 -vn 0.707443 -0.172771 -0.685328 -vn 0.879747 0.084713 -0.467833 -vn 0.879747 0.084713 -0.467833 -vn 0.707443 -0.172771 -0.685328 -vn 0.732050 0.035948 -0.680302 -vn 0.957770 -0.134386 -0.254199 -vn 0.861660 -0.163786 -0.480330 -vn 0.963144 0.096949 -0.250908 -vn 0.963144 0.096949 -0.250908 -vn 0.861660 -0.163786 -0.480330 -vn 0.879747 0.084713 -0.467833 -vn 0.950169 -0.026411 0.310615 -vn 0.957770 -0.134386 -0.254199 -vn 0.952537 0.082086 0.293147 -vn 0.952537 0.082086 0.293147 -vn 0.957770 -0.134386 -0.254199 -vn 0.963144 0.096949 -0.250908 -vn 0.952537 0.082086 0.293147 -vn -0.096717 0.033816 0.994737 -vn 0.950169 -0.026411 0.310615 -vn 0.950169 -0.026411 0.310615 -vn -0.096717 0.033816 0.994737 -vn -0.074275 0.267465 0.960701 -vn -0.074275 0.267465 0.960701 -vn -0.096717 0.033816 0.994737 -vn -0.800068 0.182433 0.571498 -vn -0.800068 0.182433 0.571498 -vn -0.096717 0.033816 0.994737 -vn -0.846383 -0.041168 0.530981 -vn 0.869836 -0.056841 0.490055 -vn 0.643614 0.102220 0.758493 -vn 0.905834 -0.117974 0.406875 -vn 0.905834 -0.117974 0.406875 -vn 0.643614 0.102220 0.758493 -vn 0.687158 0.108164 0.718411 -vn 0.965976 0.251500 0.060315 -vn 0.964631 0.193831 0.178653 -vn 0.921473 0.383876 0.059379 -vn 0.921473 0.383876 0.059379 -vn 0.964631 0.193831 0.178653 -vn 0.872500 0.486439 0.046048 -vn 0.614486 0.229061 -0.754942 -vn 0.767576 0.190717 -0.611926 -vn 0.698707 0.118060 -0.705599 -vn 0.698707 0.118060 -0.705599 -vn 0.767576 0.190717 -0.611926 -vn 0.783256 0.126122 -0.608771 -vn 0.727146 0.408695 -0.551567 -vn 0.561493 0.486609 -0.669281 -vn 0.783256 0.126122 -0.608771 -vn 0.783256 0.126122 -0.608771 -vn 0.561493 0.486609 -0.669281 -vn 0.698707 0.118060 -0.705599 -vn 0.670026 0.523745 -0.526077 -vn 0.515036 0.508272 -0.690216 -vn 0.727146 0.408695 -0.551567 -vn 0.727146 0.408695 -0.551567 -vn 0.515036 0.508272 -0.690216 -vn 0.561493 0.486609 -0.669281 -vn 0.730079 0.280919 -0.622953 -vn 0.556365 0.235871 -0.796758 -vn 0.670026 0.523745 -0.526077 -vn 0.670026 0.523745 -0.526077 -vn 0.556365 0.235871 -0.796758 -vn 0.515036 0.508272 -0.690216 -vn 0.732050 0.035948 -0.680302 -vn 0.549889 0.016593 -0.835073 -vn 0.730079 0.280919 -0.622953 -vn 0.730079 0.280919 -0.622953 -vn 0.549889 0.016593 -0.835073 -vn 0.556365 0.235871 -0.796758 -vn 0.137038 0.934417 -0.328765 -vn 0.229349 0.870656 -0.435152 -vn 0.141598 0.929887 -0.339500 -vn 0.141598 0.929887 -0.339500 -vn 0.229349 0.870656 -0.435152 -vn 0.233757 0.866197 -0.441656 -vn 0.151357 0.841808 -0.518122 -vn 0.149833 0.848035 -0.508318 -vn 0.141598 0.929887 -0.339500 -vn 0.141598 0.929887 -0.339500 -vn 0.149833 0.848035 -0.508318 -vn 0.137038 0.934417 -0.328765 -vn 0.783017 -0.101303 -0.613695 -vn 0.819661 -0.094117 -0.565065 -vn 0.787275 -0.100989 -0.608276 -vn 0.787275 -0.100989 -0.608276 -vn 0.819661 -0.094117 -0.565065 -vn 0.824120 -0.095081 -0.558377 -vn -0.219733 -0.075510 -0.972633 -vn -0.207125 -0.070360 -0.975781 -vn -0.113867 -0.056451 -0.991891 -vn -0.113867 -0.056451 -0.991891 -vn -0.207125 -0.070360 -0.975781 -vn -0.100825 -0.056839 -0.993279 -vn 0.796721 -0.072073 -0.600035 -vn 0.799694 -0.074176 -0.595808 -vn 0.819661 -0.094117 -0.565065 -vn 0.819661 -0.094117 -0.565065 -vn 0.799694 -0.074176 -0.595808 -vn 0.824120 -0.095081 -0.558377 -vn 0.262423 -0.608163 -0.749181 -vn 0.326439 -0.587395 -0.740544 -vn 0.262466 -0.605799 -0.751078 -vn 0.262466 -0.605799 -0.751078 -vn 0.326439 -0.587395 -0.740544 -vn 0.325064 -0.583268 -0.744400 -vn 0.325064 -0.583268 -0.744400 -vn 0.326439 -0.587395 -0.740544 -vn 0.368755 -0.617809 -0.694501 -vn 0.368755 -0.617809 -0.694501 -vn 0.326439 -0.587395 -0.740544 -vn 0.366732 -0.621124 -0.692613 -vn -0.135651 -0.058713 -0.989016 -vn -0.207125 -0.070360 -0.975781 -vn -0.144397 -0.062565 -0.987540 -vn -0.144397 -0.062565 -0.987540 -vn -0.207125 -0.070360 -0.975781 -vn -0.219733 -0.075510 -0.972633 -vn 0.530815 -0.169218 -0.830422 -vn 0.338040 -0.168109 -0.925996 -vn 0.549889 0.016593 -0.835073 -vn 0.549889 0.016593 -0.835073 -vn 0.338040 -0.168109 -0.925996 -vn 0.341784 0.005125 -0.939765 -vn 0.474424 -0.451462 -0.755715 -vn 0.298918 -0.442208 -0.845636 -vn 0.530815 -0.169218 -0.830422 -vn 0.530815 -0.169218 -0.830422 -vn 0.298918 -0.442208 -0.845636 -vn 0.338040 -0.168109 -0.925996 -vn 0.339986 -0.770658 -0.538977 -vn 0.219380 -0.740034 -0.635784 -vn 0.474424 -0.451462 -0.755715 -vn 0.474424 -0.451462 -0.755715 -vn 0.219380 -0.740034 -0.635784 -vn 0.298918 -0.442208 -0.845636 -vn 0.308118 -0.845792 -0.435546 -vn 0.213971 -0.821557 -0.528451 -vn 0.339986 -0.770658 -0.538977 -vn 0.339986 -0.770658 -0.538977 -vn 0.213971 -0.821557 -0.528451 -vn 0.219380 -0.740034 -0.635784 -vn 0.450135 -0.670894 -0.589305 -vn 0.303200 -0.657246 -0.689998 -vn 0.308118 -0.845792 -0.435546 -vn 0.308118 -0.845792 -0.435546 -vn 0.303200 -0.657246 -0.689998 -vn 0.213971 -0.821557 -0.528451 -vn 0.303200 -0.657246 -0.689998 -vn 0.450135 -0.670894 -0.589305 -vn 0.389637 -0.317883 -0.864369 -vn 0.389637 -0.317883 -0.864369 -vn 0.450135 -0.670894 -0.589305 -vn 0.582436 -0.291964 -0.758634 -vn 0.389637 -0.317883 -0.864369 -vn 0.582436 -0.291964 -0.758634 -vn 0.394315 -0.101461 -0.913357 -vn 0.394315 -0.101461 -0.913357 -vn 0.582436 -0.291964 -0.758634 -vn 0.615939 -0.083779 -0.783326 -vn 0.341784 0.005125 -0.939765 -vn 0.141923 0.004781 -0.989866 -vn 0.340643 0.199708 -0.918738 -vn 0.340643 0.199708 -0.918738 -vn 0.141923 0.004781 -0.989866 -vn 0.141285 0.197838 -0.969999 -vn 0.379772 0.322230 -0.867145 -vn 0.186911 0.318785 -0.929215 -vn 0.297017 0.614079 -0.731223 -vn 0.297017 0.614079 -0.731223 -vn 0.186911 0.318785 -0.929215 -vn 0.160628 0.572026 -0.804354 -vn 0.297017 0.614079 -0.731223 -vn 0.160628 0.572026 -0.804354 -vn 0.311586 0.626785 -0.714181 -vn 0.311586 0.626785 -0.714181 -vn 0.160628 0.572026 -0.804354 -vn 0.167735 0.583693 -0.794460 -vn 0.311586 0.626785 -0.714181 -vn 0.167735 0.583693 -0.794460 -vn 0.366912 0.544933 -0.753938 -vn 0.366912 0.544933 -0.753938 -vn 0.167735 0.583693 -0.794460 -vn 0.182275 0.548030 -0.816357 -vn 0.182275 0.548030 -0.816357 -vn 0.174351 0.814871 -0.552800 -vn 0.366912 0.544933 -0.753938 -vn 0.366912 0.544933 -0.753938 -vn 0.174351 0.814871 -0.552800 -vn 0.370339 0.773014 -0.515071 -vn 0.174351 0.814871 -0.552800 -vn 0.155681 0.954668 -0.253718 -vn 0.370339 0.773014 -0.515071 -vn 0.370339 0.773014 -0.515071 -vn 0.155681 0.954668 -0.253718 -vn 0.283844 0.920677 -0.267929 -vn 0.155681 0.954668 -0.253718 -vn 0.124090 0.987698 -0.095156 -vn 0.283844 0.920677 -0.267929 -vn 0.283844 0.920677 -0.267929 -vn 0.124090 0.987698 -0.095156 -vn 0.289060 0.948825 -0.127180 -vn 0.124090 0.987698 -0.095156 -vn 0.113784 0.993394 -0.014901 -vn 0.289060 0.948825 -0.127180 -vn 0.289060 0.948825 -0.127180 -vn 0.113784 0.993394 -0.014901 -vn 0.293378 0.955452 -0.032274 -vn 0.107263 0.993482 0.038571 -vn 0.285655 0.957858 0.030146 -vn 0.113784 0.993394 -0.014901 -vn 0.113784 0.993394 -0.014901 -vn 0.285655 0.957858 0.030146 -vn 0.293378 0.955452 -0.032274 -vn 0.285655 0.957858 0.030146 -vn 0.107263 0.993482 0.038571 -vn 0.271656 0.956444 0.106859 -vn 0.271656 0.956444 0.106859 -vn 0.107263 0.993482 0.038571 -vn 0.101507 0.989456 0.103309 -vn 0.151422 0.882115 0.446031 -vn 0.306688 0.839558 0.448424 -vn 0.114776 0.969606 0.216080 -vn 0.114776 0.969606 0.216080 -vn 0.306688 0.839558 0.448424 -vn 0.269387 0.933644 0.236092 -vn 0.172841 0.641260 0.747604 -vn 0.395709 0.594759 0.699769 -vn 0.151422 0.882115 0.446031 -vn 0.151422 0.882115 0.446031 -vn 0.395709 0.594759 0.699769 -vn 0.306688 0.839558 0.448424 -vn 0.172841 0.641260 0.747604 -vn 0.190440 0.332540 0.923661 -vn 0.395709 0.594759 0.699769 -vn 0.395709 0.594759 0.699769 -vn 0.190440 0.332540 0.923661 -vn 0.464356 0.290440 0.836671 -vn 0.478164 0.165313 0.862572 -vn 0.464356 0.290440 0.836671 -vn 0.189718 0.191129 0.963056 -vn 0.189718 0.191129 0.963056 -vn 0.464356 0.290440 0.836671 -vn 0.190440 0.332540 0.923661 -vn 0.186911 0.318785 -0.929215 -vn 0.379772 0.322230 -0.867145 -vn 0.170294 0.181676 -0.968501 -vn 0.170294 0.181676 -0.968501 -vn 0.379772 0.322230 -0.867145 -vn 0.409926 0.237447 -0.880670 -vn 0.000000 0.303281 -0.952901 -vn 0.186911 0.318785 -0.929215 -vn 0.000000 0.152101 -0.988365 -vn 0.000000 0.152101 -0.988365 -vn 0.186911 0.318785 -0.929215 -vn 0.170294 0.181676 -0.968501 -vn 0.379772 0.322230 -0.867145 -vn 0.565694 0.317444 -0.761065 -vn 0.409926 0.237447 -0.880670 -vn 0.409926 0.237447 -0.880670 -vn 0.565694 0.317444 -0.761065 -vn 0.614486 0.229061 -0.754942 -vn 0.767576 0.190717 -0.611926 -vn 0.614486 0.229061 -0.754942 -vn 0.708098 0.345784 -0.615654 -vn 0.708098 0.345784 -0.615654 -vn 0.614486 0.229061 -0.754942 -vn 0.565694 0.317444 -0.761065 -vn 0.978524 0.071526 -0.193328 -vn 0.963287 0.140801 -0.228590 -vn 0.865780 0.298022 0.402004 -vn 0.963287 0.140801 -0.228590 -vn 0.887417 0.192326 0.418929 -vn 0.865780 0.298022 0.402004 -vn 0.787499 0.326946 0.522448 -vn 0.865780 0.298022 0.402004 -vn 0.790440 0.189724 0.582417 -vn 0.790440 0.189724 0.582417 -vn 0.865780 0.298022 0.402004 -vn 0.887417 0.192326 0.418929 -vn 0.790440 0.189724 0.582417 -vn 0.992653 0.114144 0.040135 -vn 0.787499 0.326946 0.522448 -vn 0.804548 -0.044303 0.592232 -vn 0.833627 -0.033590 0.551305 -vn 0.796174 -0.034614 0.604077 -vn 0.865823 -0.075119 0.494680 -vn 0.734614 -0.292666 0.612119 -vn 0.643794 0.051604 0.763457 -vn 0.998468 0.034872 0.042952 -vn 0.992653 0.114144 0.040135 -vn 0.998297 0.019801 0.054872 -vn 0.998297 0.019801 0.054872 -vn 0.992653 0.114144 0.040135 -vn 0.987901 0.136372 0.073847 -vn 0.731349 0.176702 0.658715 -vn 0.926994 -0.129511 0.352007 -vn 0.687158 0.108164 0.718411 -vn 0.687158 0.108164 0.718411 -vn 0.926994 -0.129511 0.352007 -vn 0.905834 -0.117974 0.406875 -vn 0.216505 -0.964012 0.154295 -vn 0.344016 -0.936633 0.066114 -vn 0.128723 -0.973951 0.186681 -vn 0.804548 -0.044303 0.592232 -vn 0.796174 -0.034614 0.604077 -vn 0.791053 -0.070536 0.607668 -vn 0.051570 -0.896247 0.440547 -vn 0.055472 -0.996740 -0.058593 -vn 0.035555 -0.976723 0.211536 -vn 0.035555 -0.976723 0.211536 -vn 0.055472 -0.996740 -0.058593 -vn 0.040877 -0.998968 -0.019776 -vn 0.173479 0.168868 0.970252 -vn 0.170701 0.176661 0.969357 -vn 0.103368 0.223513 0.969204 -vn 0.103368 0.223513 0.969204 -vn 0.170701 0.176661 0.969357 -vn 0.097159 0.235044 0.967117 -vn 0.052936 0.216365 0.974876 -vn 0.064598 0.228971 0.971287 -vn 0.097159 0.235044 0.967117 -vn 0.097159 0.235044 0.967117 -vn 0.064598 0.228971 0.971287 -vn 0.103368 0.223513 0.969204 -vn 0.170701 0.176661 0.969357 -vn 0.173479 0.168868 0.970252 -vn 0.168149 0.101726 0.980499 -vn 0.168149 0.101726 0.980499 -vn 0.173479 0.168868 0.970252 -vn 0.164097 0.082307 0.983004 -vn 0.064598 0.228971 0.971287 -vn 0.052936 0.216365 0.974876 -vn 0.028834 -0.044924 0.998574 -vn 0.028834 -0.044924 0.998574 -vn 0.052936 0.216365 0.974876 -vn 0.002361 -0.045708 0.998952 -vn 0.116158 0.033510 0.992665 -vn 0.123951 0.033775 0.991713 -vn 0.164097 0.082307 0.983004 -vn 0.164097 0.082307 0.983004 -vn 0.123951 0.033775 0.991713 -vn 0.168149 0.101726 0.980499 -vn 0.082393 -0.961065 0.263752 -vn 0.216505 -0.964012 0.154295 -vn 0.031297 -0.968343 0.247652 -vn 0.031297 -0.968343 0.247652 -vn 0.216505 -0.964012 0.154295 -vn 0.128723 -0.973951 0.186681 -vn 0.035555 -0.976723 0.211536 -vn 0.069238 -0.603543 0.794318 -vn 0.051570 -0.896247 0.440547 -vn 0.051570 -0.896247 0.440547 -vn 0.069238 -0.603543 0.794318 -vn 0.059046 -0.495915 0.866361 -vn -0.073850 -0.984960 -0.156207 -vn -0.011693 -0.985385 -0.169942 -vn -0.066127 -0.984212 -0.164178 -vn -0.066127 -0.984212 -0.164178 -vn -0.011693 -0.985385 -0.169942 -vn -0.001533 -0.984680 -0.174366 -vn -0.093677 -0.987412 -0.127443 -vn -0.073850 -0.984960 -0.156207 -vn -0.091072 -0.986479 -0.136255 -vn -0.091072 -0.986479 -0.136255 -vn -0.073850 -0.984960 -0.156207 -vn -0.066127 -0.984212 -0.164178 -vn 0.000000 -0.998857 -0.047789 -vn -0.055000 -0.996369 -0.064993 -vn -0.000000 -0.998702 -0.050933 -vn -0.000000 -0.998702 -0.050933 -vn -0.055000 -0.996369 -0.064993 -vn -0.055740 -0.996133 -0.067916 -vn -0.011693 -0.985385 -0.169942 -vn 0.049456 -0.988223 -0.144810 -vn -0.001533 -0.984680 -0.174366 -vn -0.001533 -0.984680 -0.174366 -vn 0.049456 -0.988223 -0.144810 -vn 0.055033 -0.987514 -0.147607 -vn 0.049456 -0.988223 -0.144810 -vn 0.071620 -0.991106 -0.112155 -vn 0.055033 -0.987514 -0.147607 -vn 0.055033 -0.987514 -0.147607 -vn 0.071620 -0.991106 -0.112155 -vn 0.073058 -0.990988 -0.112275 -vn 0.073058 -0.990988 -0.112275 -vn 0.071620 -0.991106 -0.112155 -vn 0.055472 -0.996740 -0.058593 -vn 0.055472 -0.996740 -0.058593 -vn 0.071620 -0.991106 -0.112155 -vn 0.060234 -0.996137 -0.063893 -vn 0.055472 -0.996740 -0.058593 -vn 0.060234 -0.996137 -0.063893 -vn 0.040877 -0.998968 -0.019776 -vn -0.085404 -0.992811 -0.083858 -vn -0.093677 -0.987412 -0.127443 -vn -0.085338 -0.992316 -0.089595 -vn -0.085338 -0.992316 -0.089595 -vn -0.093677 -0.987412 -0.127443 -vn -0.091072 -0.986479 -0.136255 -vn -0.055000 -0.996369 -0.064993 -vn -0.085404 -0.992811 -0.083858 -vn -0.055740 -0.996133 -0.067916 -vn -0.055740 -0.996133 -0.067916 -vn -0.085404 -0.992811 -0.083858 -vn -0.085338 -0.992316 -0.089595 -vn 0.905940 0.384539 0.177207 -vn 0.859273 0.317420 0.401117 -vn 0.941576 0.289157 0.172692 -vn 0.941576 0.289157 0.172692 -vn 0.859273 0.317420 0.401117 -vn 0.877960 0.234283 0.417490 -vn 0.101507 0.989456 0.103309 -vn -0.000000 0.994745 0.102388 -vn 0.114776 0.969606 0.216080 -vn 0.114776 0.969606 0.216080 -vn -0.000000 0.994745 0.102388 -vn -0.000000 0.977356 0.211603 -vn 0.271656 0.956444 0.106859 -vn 0.101507 0.989456 0.103309 -vn 0.269387 0.933644 0.236092 -vn 0.269387 0.933644 0.236092 -vn 0.101507 0.989456 0.103309 -vn 0.114776 0.969606 0.216080 -vn 0.586343 0.801355 0.118456 -vn 0.271656 0.956444 0.106859 -vn 0.566436 0.773715 0.283751 -vn 0.566436 0.773715 0.283751 -vn 0.271656 0.956444 0.106859 -vn 0.269387 0.933644 0.236092 -vn 0.813126 0.562843 0.148437 -vn 0.586343 0.801355 0.118456 -vn 0.790476 0.510996 0.337684 -vn 0.790476 0.510996 0.337684 -vn 0.586343 0.801355 0.118456 -vn 0.566436 0.773715 0.283751 -vn 0.813126 0.562843 0.148437 -vn 0.790476 0.510996 0.337684 -vn 0.905940 0.384539 0.177207 -vn 0.905940 0.384539 0.177207 -vn 0.790476 0.510996 0.337684 -vn 0.859273 0.317420 0.401117 -vn 0.796705 -0.095826 0.596723 -vn 0.791556 -0.097603 0.603252 -vn 0.804548 -0.044303 0.592232 -vn 0.069238 -0.603543 0.794318 -vn 0.028834 -0.044924 0.998574 -vn 0.059046 -0.495915 0.866361 -vn 0.059046 -0.495915 0.866361 -vn 0.028834 -0.044924 0.998574 -vn 0.002361 -0.045708 0.998952 -vn 0.796705 -0.095826 0.596723 -vn 0.804548 -0.044303 0.592232 -vn 0.791053 -0.070536 0.607668 -vn 0.068959 0.997617 0.002300 -vn 0.218354 0.974305 0.055235 -vn 0.084065 0.996201 0.022715 -vn 0.084065 0.996201 0.022715 -vn 0.218354 0.974305 0.055235 -vn 0.252470 0.964683 0.075137 -vn 0.014728 0.999791 -0.014175 -vn 0.068959 0.997617 0.002300 -vn 0.018825 0.999773 -0.010023 -vn 0.018825 0.999773 -0.010023 -vn 0.068959 0.997617 0.002300 -vn 0.084065 0.996201 0.022715 -vn 0.015249 0.999853 -0.007842 -vn 0.014728 0.999791 -0.014175 -vn 0.015359 0.999847 -0.008355 -vn 0.015359 0.999847 -0.008355 -vn 0.014728 0.999791 -0.014175 -vn 0.018825 0.999773 -0.010023 -vn 0.007721 0.999968 -0.001961 -vn 0.007912 0.999965 -0.002547 -vn 0.015359 0.999847 -0.008355 -vn 0.015359 0.999847 -0.008355 -vn 0.007912 0.999965 -0.002547 -vn 0.015249 0.999853 -0.007842 -vn 0.000000 1.000000 -0.000000 -vn -0.000000 1.000000 -0.000005 -vn 0.007721 0.999968 -0.001961 -vn 0.007721 0.999968 -0.001961 -vn -0.000000 1.000000 -0.000005 -vn 0.007912 0.999965 -0.002547 -vn 0.110017 0.005351 -0.993915 -vn 0.111445 0.005659 -0.993755 -vn 0.126614 0.038353 -0.991210 -vn 0.126614 0.038353 -0.991210 -vn 0.111445 0.005659 -0.993755 -vn 0.133476 0.042166 -0.990155 -vn 0.126614 0.038353 -0.991210 -vn 0.133476 0.042166 -0.990155 -vn 0.253493 0.077283 -0.964245 -vn 0.253493 0.077283 -0.964245 -vn 0.133476 0.042166 -0.990155 -vn 0.262361 0.077868 -0.961823 -vn 0.340643 0.199708 -0.918738 -vn 0.306784 0.535384 -0.786923 -vn 0.556365 0.235871 -0.796758 -vn 0.556365 0.235871 -0.796758 -vn 0.306784 0.535384 -0.786923 -vn 0.515036 0.508272 -0.690216 -vn 0.141907 0.486043 -0.862337 -vn 0.306784 0.535384 -0.786923 -vn 0.141285 0.197838 -0.969999 -vn 0.141285 0.197838 -0.969999 -vn 0.306784 0.535384 -0.786923 -vn 0.340643 0.199708 -0.918738 -vn -0.888112 0.137352 -0.438624 -vn -0.946841 -0.010033 -0.321544 -vn -0.961150 0.056049 -0.270275 -vn -0.956670 -0.001270 0.291171 -vn -0.963043 0.024640 0.268217 -vn -0.840437 -0.003126 0.541901 -vn -0.840437 -0.003126 0.541901 -vn -0.963043 0.024640 0.268217 -vn -0.857807 0.003552 0.513960 -vn -0.621471 -0.025881 0.783010 -vn -0.840437 -0.003126 0.541901 -vn -0.649274 -0.021358 0.760255 -vn -0.649274 -0.021358 0.760255 -vn -0.840437 -0.003126 0.541901 -vn -0.857807 0.003552 0.513960 -vn -0.223132 -0.032589 0.974243 -vn 0.000000 -0.039132 0.999234 -vn -0.212283 -0.038788 0.976438 -vn -0.212283 -0.038788 0.976438 -vn 0.000000 -0.039132 0.999234 -vn -0.000000 -0.037251 0.999306 -vn -0.963043 0.024640 0.268217 -vn -0.956670 -0.001270 0.291171 -vn -0.996973 0.006708 0.077452 -vn -0.996973 0.006708 0.077452 -vn -0.956670 -0.001270 0.291171 -vn -0.994531 0.006140 0.104260 -vn -0.996973 0.006708 0.077452 -vn -0.999371 0.000763 -0.035441 -vn -0.984573 -0.023021 -0.173451 -vn -0.999371 0.000763 -0.035441 -vn -0.996973 0.006708 0.077452 -vn -0.994531 0.006140 0.104260 -vn -0.928473 0.002886 -0.371389 -vn -0.984573 -0.023021 -0.173451 -vn -0.946841 -0.010033 -0.321544 -vn -0.946841 -0.010033 -0.321544 -vn -0.984573 -0.023021 -0.173451 -vn -0.961150 0.056049 -0.270275 -vn -0.961150 0.056049 -0.270275 -vn -0.984573 -0.023021 -0.173451 -vn -0.999371 0.000763 -0.035441 -vn -0.621471 -0.025881 0.783010 -vn -0.649274 -0.021358 0.760255 -vn -0.405789 -0.043061 0.912952 -vn -0.405789 -0.043061 0.912952 -vn -0.649274 -0.021358 0.760255 -vn -0.427059 -0.024260 0.903898 -vn -0.405789 -0.043061 0.912952 -vn -0.427059 -0.024260 0.903898 -vn -0.212283 -0.038788 0.976438 -vn -0.212283 -0.038788 0.976438 -vn -0.427059 -0.024260 0.903898 -vn -0.223132 -0.032589 0.974243 -vn -0.984573 -0.023021 -0.173451 -vn -0.928473 0.002886 -0.371389 -vn -0.962439 -0.024231 -0.270413 -vn -0.202739 -0.978340 -0.041815 -vn -0.023703 -0.999235 -0.031121 -vn -0.050170 -0.995292 -0.082922 -vn 0.601143 0.119267 0.790191 -vn 0.614054 0.126132 0.779120 -vn 0.603048 0.121629 0.788378 -vn 0.614054 0.126132 0.779120 -vn 0.601143 0.119267 0.790191 -vn 0.601351 0.120282 0.789879 -vn 0.601143 0.119267 0.790191 -vn 0.597652 0.112916 0.793764 -vn 0.601351 0.120282 0.789879 -vn 0.603048 0.121629 0.788378 -vn 0.614054 0.126132 0.779120 -vn 0.599764 0.125022 0.790350 -vn 0.599764 0.125022 0.790350 -vn 0.614054 0.126132 0.779120 -vn 0.635852 0.133040 0.760258 -vn 0.635852 0.133040 0.760258 -vn 0.614054 0.126132 0.779120 -vn 0.687777 0.151464 0.709945 -vn 0.597652 0.112916 0.793764 -vn 0.572388 0.153981 0.805396 -vn 0.601351 0.120282 0.789879 -vn 0.572388 0.153981 0.805396 -vn 0.594374 0.153736 0.789357 -vn 0.601351 0.120282 0.789879 -vn 0.601351 0.120282 0.789879 -vn 0.594374 0.153736 0.789357 -vn 0.668633 0.073281 0.739973 -vn 0.093377 0.001257 -0.995630 -vn 0.094757 0.001026 -0.995500 -vn 0.110017 0.005351 -0.993915 -vn 0.110017 0.005351 -0.993915 -vn 0.094757 0.001026 -0.995500 -vn 0.111445 0.005659 -0.993755 -vn 0.731349 0.176702 0.658715 -vn 0.998468 0.034872 0.042952 -vn 0.997539 -0.014146 0.068676 -vn 0.997539 -0.014146 0.068676 -vn 0.998468 0.034872 0.042952 -vn 0.998297 0.019801 0.054872 -vn -0.757937 0.083145 -0.647008 -vn -0.888112 0.137352 -0.438624 -vn -0.812212 0.128738 -0.568980 -vn -0.812212 0.128738 -0.568980 -vn -0.888112 0.137352 -0.438624 -vn -0.961150 0.056049 -0.270275 -vn -0.743623 0.126560 -0.656511 -vn -0.757937 0.083145 -0.647008 -vn -0.812212 0.128738 -0.568980 -vn -0.743623 0.126560 -0.656511 -vn -0.728687 0.061348 -0.682093 -vn -0.757937 0.083145 -0.647008 -vn -0.765253 0.041319 -0.642403 -vn -0.793371 0.048012 -0.606842 -vn -0.728687 0.061348 -0.682093 -vn -0.728687 0.061348 -0.682093 -vn -0.793371 0.048012 -0.606842 -vn -0.757937 0.083145 -0.647008 -vn -0.793371 0.048012 -0.606842 -vn -0.765253 0.041319 -0.642403 -vn -0.928473 0.002886 -0.371389 -vn 0.784323 -0.020364 0.620019 -vn 0.643794 0.051604 0.763457 -vn 0.804548 -0.044303 0.592232 -vn 0.643794 0.051604 0.763457 -vn 0.833627 -0.033590 0.551305 -vn 0.804548 -0.044303 0.592232 -vn 0.887379 0.408080 0.214547 -vn 0.910702 0.410936 -0.041879 -vn 0.665715 0.458373 0.588828 -vn 0.910702 0.410936 -0.041879 -vn 0.775796 0.611274 -0.156478 -vn 0.910865 0.382103 -0.155956 -vn 0.910865 0.382103 -0.155956 -vn 0.865780 0.298022 0.402004 -vn 0.910702 0.410936 -0.041879 -vn 0.926853 0.296065 0.230845 -vn 0.817308 0.373606 0.438665 -vn 0.849402 0.514429 0.117811 -vn 0.807536 0.080137 0.584349 -vn 0.926853 0.296065 0.230845 -vn 0.849402 0.514429 0.117811 -vn -0.996773 -0.018467 0.078112 -vn -0.996358 -0.022534 0.082241 -vn -0.963650 -0.052073 0.262043 -vn -0.963650 -0.052073 0.262043 -vn -0.996358 -0.022534 0.082241 -vn -0.962906 -0.051413 0.264895 -vn -0.999792 0.019275 -0.006705 -vn -0.999913 0.012170 -0.005074 -vn -0.996773 -0.018467 0.078112 -vn -0.996773 -0.018467 0.078112 -vn -0.999913 0.012170 -0.005074 -vn -0.996358 -0.022534 0.082241 -vn -0.252664 -0.057093 0.965868 -vn -0.251793 -0.044009 0.966780 -vn 0.000000 -0.036099 0.999348 -vn 0.000000 -0.036099 0.999348 -vn -0.251793 -0.044009 0.966780 -vn -0.000000 -0.022294 0.999751 -vn -0.493589 -0.076185 0.866352 -vn -0.494095 -0.060695 0.867287 -vn -0.252664 -0.057093 0.965868 -vn -0.252664 -0.057093 0.965868 -vn -0.494095 -0.060695 0.867287 -vn -0.251793 -0.044009 0.966780 -vn -0.689424 -0.095290 0.718063 -vn -0.690337 -0.077073 0.719371 -vn -0.493589 -0.076185 0.866352 -vn -0.493589 -0.076185 0.866352 -vn -0.690337 -0.077073 0.719371 -vn -0.494095 -0.060695 0.867287 -vn -0.861733 -0.089612 0.499385 -vn -0.862233 -0.079902 0.500170 -vn -0.689424 -0.095290 0.718063 -vn -0.689424 -0.095290 0.718063 -vn -0.862233 -0.079902 0.500170 -vn -0.690337 -0.077073 0.719371 -vn -0.963650 -0.052073 0.262043 -vn -0.962906 -0.051413 0.264895 -vn -0.861733 -0.089612 0.499385 -vn -0.861733 -0.089612 0.499385 -vn -0.962906 -0.051413 0.264895 -vn -0.862233 -0.079902 0.500170 -vn -0.508924 -0.173879 0.843067 -vn -0.580600 -0.129349 0.803849 -vn -0.530011 -0.161213 0.832525 -vn -0.530011 -0.161213 0.832525 -vn -0.580600 -0.129349 0.803849 -vn -0.606607 -0.112074 0.787063 -vn -0.420642 -0.894155 -0.153453 -vn -0.423196 -0.892876 -0.153873 -vn -0.445537 -0.885349 -0.132870 -vn -0.445537 -0.885349 -0.132870 -vn -0.423196 -0.892876 -0.153873 -vn -0.445045 -0.885607 -0.132797 -vn -0.443902 -0.894515 -0.052850 -vn -0.445537 -0.885349 -0.132870 -vn -0.444520 -0.893994 -0.056369 -vn -0.444520 -0.893994 -0.056369 -vn -0.445537 -0.885349 -0.132870 -vn -0.445045 -0.885607 -0.132797 -vn -0.382942 -0.923043 0.036704 -vn -0.443902 -0.894515 -0.052850 -vn -0.390221 -0.920247 0.029540 -vn -0.390221 -0.920247 0.029540 -vn -0.443902 -0.894515 -0.052850 -vn -0.444520 -0.893994 -0.056369 -vn -0.308278 -0.943585 0.120883 -vn -0.382942 -0.923043 0.036704 -vn -0.309267 -0.942490 0.126753 -vn -0.309267 -0.942490 0.126753 -vn -0.382942 -0.923043 0.036704 -vn -0.390221 -0.920247 0.029540 -vn -0.308278 -0.943585 0.120883 -vn -0.309267 -0.942490 0.126753 -vn -0.240249 -0.947922 0.209103 -vn -0.240249 -0.947922 0.209103 -vn -0.309267 -0.942490 0.126753 -vn -0.245596 -0.944213 0.219420 -vn -0.143501 -0.937524 0.316949 -vn -0.139148 -0.943161 0.301804 -vn -0.245596 -0.944213 0.219420 -vn -0.245596 -0.944213 0.219420 -vn -0.139148 -0.943161 0.301804 -vn -0.240249 -0.947922 0.209103 -vn -0.139148 -0.943161 0.301804 -vn -0.143501 -0.937524 0.316949 -vn 0.000000 -0.924899 0.380214 -vn 0.000000 -0.924899 0.380214 -vn -0.143501 -0.937524 0.316949 -vn 0.000000 -0.917956 0.396682 -vn -0.928473 0.002886 -0.371389 -vn -0.946841 -0.010033 -0.321544 -vn -0.793371 0.048012 -0.606842 -vn -0.207642 0.930056 -0.303118 -vn -0.218086 0.925466 -0.309759 -vn -0.208097 0.929860 -0.303408 -vn -0.208097 0.929860 -0.303408 -vn -0.218086 0.925466 -0.309759 -vn -0.218979 0.925066 -0.310326 -vn -0.854784 0.009411 -0.518898 -vn -0.854783 0.009414 -0.518900 -vn -0.854781 0.009420 -0.518903 -vn -0.854781 0.009420 -0.518903 -vn -0.854783 0.009414 -0.518900 -vn -0.854780 0.009423 -0.518904 -vn -0.391140 -0.918370 -0.060048 -vn -0.391102 -0.918388 -0.060026 -vn -0.391137 -0.918371 -0.060046 -vn -0.391137 -0.918371 -0.060046 -vn -0.391102 -0.918388 -0.060026 -vn -0.391100 -0.918389 -0.060025 -vn 0.157284 -0.147242 -0.976515 -vn 0.157283 -0.147243 -0.976515 -vn 0.157284 -0.147242 -0.976515 -vn 0.157284 -0.147242 -0.976515 -vn 0.157283 -0.147243 -0.976515 -vn 0.157282 -0.147243 -0.976515 -vn -0.791236 0.154415 0.591693 -vn -0.790899 0.154309 0.592172 -vn -0.791187 0.154399 0.591763 -vn -0.791187 0.154399 0.591763 -vn -0.790899 0.154309 0.592172 -vn -0.790837 0.154289 0.592260 -vn -0.693869 -0.717639 -0.059504 -vn -0.951661 -0.299535 -0.067968 -vn -0.734614 -0.292666 0.612119 -vn -0.951661 -0.299535 -0.067968 -vn -0.865823 -0.075119 0.494680 -vn -0.734614 -0.292666 0.612119 -vn -0.694372 -0.659335 -0.288316 -vn -0.911130 -0.251282 -0.326649 -vn -0.688953 -0.713776 -0.125968 -vn -0.911130 -0.251282 -0.326649 -vn -0.936547 -0.324609 -0.132316 -vn -0.688953 -0.713776 -0.125968 -vn -0.591638 -0.669054 -0.449811 -vn -0.776501 -0.261174 -0.573441 -vn -0.694372 -0.659335 -0.288316 -vn -0.776501 -0.261174 -0.573441 -vn -0.911130 -0.251282 -0.326649 -vn -0.694372 -0.659335 -0.288316 -vn -0.450135 -0.670894 -0.589305 -vn -0.582436 -0.291964 -0.758634 -vn -0.591638 -0.669054 -0.449811 -vn -0.582436 -0.291964 -0.758634 -vn -0.776501 -0.261174 -0.573441 -vn -0.591638 -0.669054 -0.449811 -vn -0.167519 -0.631543 -0.757027 -vn -0.203644 -0.349140 -0.914675 -vn -0.303200 -0.657246 -0.689998 -vn -0.203644 -0.349140 -0.914675 -vn -0.389637 -0.317883 -0.864369 -vn -0.303200 -0.657246 -0.689998 -vn -0.000000 -0.641479 -0.767141 -vn 0.000000 -0.346225 -0.938152 -vn -0.167519 -0.631543 -0.757027 -vn 0.000000 -0.346225 -0.938152 -vn -0.203644 -0.349140 -0.914675 -vn -0.167519 -0.631543 -0.757027 -vn -0.688953 -0.713776 -0.125968 -vn -0.440580 -0.890619 -0.112635 -vn -0.694372 -0.659335 -0.288316 -vn -0.440580 -0.890619 -0.112635 -vn -0.411066 -0.888894 -0.202218 -vn -0.694372 -0.659335 -0.288316 -vn -0.694372 -0.659335 -0.288316 -vn -0.411066 -0.888894 -0.202218 -vn -0.591638 -0.669054 -0.449811 -vn -0.411066 -0.888894 -0.202218 -vn -0.372727 -0.870575 -0.321206 -vn -0.591638 -0.669054 -0.449811 -vn -0.591638 -0.669054 -0.449811 -vn -0.372727 -0.870575 -0.321206 -vn -0.450135 -0.670894 -0.589305 -vn -0.372727 -0.870575 -0.321206 -vn -0.308118 -0.845792 -0.435546 -vn -0.450135 -0.670894 -0.589305 -vn -0.213971 -0.821557 -0.528451 -vn -0.127120 -0.776749 -0.616849 -vn -0.303200 -0.657246 -0.689998 -vn -0.127120 -0.776749 -0.616849 -vn -0.167519 -0.631543 -0.757027 -vn -0.303200 -0.657246 -0.689998 -vn -0.000000 -0.641479 -0.767141 -vn -0.167519 -0.631543 -0.757027 -vn -0.000000 -0.775130 -0.631802 -vn -0.167519 -0.631543 -0.757027 -vn -0.127120 -0.776749 -0.616849 -vn -0.000000 -0.775130 -0.631802 -vn -0.829370 -0.508464 0.231538 -vn -0.933139 -0.256382 0.252030 -vn -0.547229 -0.823054 -0.152061 -vn -0.933139 -0.256382 0.252030 -vn -0.834994 -0.497446 -0.235229 -vn -0.547229 -0.823054 -0.152061 -vn -0.547229 -0.823054 -0.152061 -vn -0.834994 -0.497446 -0.235229 -vn -0.499176 -0.817395 -0.287557 -vn -0.834994 -0.497446 -0.235229 -vn -0.746611 -0.509098 -0.428241 -vn -0.499176 -0.817395 -0.287557 -vn -0.499176 -0.817395 -0.287557 -vn -0.746611 -0.509098 -0.428241 -vn -0.433962 -0.796400 -0.421218 -vn -0.746611 -0.509098 -0.428241 -vn -0.626875 -0.487380 -0.607855 -vn -0.433962 -0.796400 -0.421218 -vn -0.433962 -0.796400 -0.421218 -vn -0.626875 -0.487380 -0.607855 -vn -0.339986 -0.770658 -0.538977 -vn -0.626875 -0.487380 -0.607855 -vn -0.474424 -0.451462 -0.755715 -vn -0.339986 -0.770658 -0.538977 -vn -0.219380 -0.740034 -0.635784 -vn -0.298918 -0.442208 -0.845636 -vn -0.105150 -0.721120 -0.684785 -vn -0.298918 -0.442208 -0.845636 -vn -0.134280 -0.433849 -0.890923 -vn -0.105150 -0.721120 -0.684785 -vn 0.000000 -0.711059 -0.703132 -vn -0.105150 -0.721120 -0.684785 -vn 0.000000 -0.428150 -0.903708 -vn -0.105150 -0.721120 -0.684785 -vn -0.134280 -0.433849 -0.890923 -vn 0.000000 -0.428150 -0.903708 -vn -0.933139 -0.256382 0.252030 -vn -0.950169 -0.026411 0.310615 -vn -0.834994 -0.497446 -0.235229 -vn -0.950169 -0.026411 0.310615 -vn -0.957770 -0.134386 -0.254199 -vn -0.834994 -0.497446 -0.235229 -vn -0.834994 -0.497446 -0.235229 -vn -0.957770 -0.134386 -0.254199 -vn -0.746611 -0.509098 -0.428241 -vn -0.957770 -0.134386 -0.254199 -vn -0.861660 -0.163786 -0.480330 -vn -0.746611 -0.509098 -0.428241 -vn -0.746611 -0.509098 -0.428241 -vn -0.861660 -0.163786 -0.480330 -vn -0.626875 -0.487380 -0.607855 -vn -0.861660 -0.163786 -0.480330 -vn -0.707443 -0.172771 -0.685328 -vn -0.626875 -0.487380 -0.607855 -vn -0.626875 -0.487380 -0.607855 -vn -0.707443 -0.172771 -0.685328 -vn -0.474424 -0.451462 -0.755715 -vn -0.707443 -0.172771 -0.685328 -vn -0.530815 -0.169218 -0.830422 -vn -0.474424 -0.451462 -0.755715 -vn -0.298918 -0.442208 -0.845636 -vn -0.338040 -0.168109 -0.925996 -vn -0.134280 -0.433849 -0.890923 -vn -0.338040 -0.168109 -0.925996 -vn -0.143223 -0.147346 -0.978661 -vn -0.134280 -0.433849 -0.890923 -vn 0.000000 -0.428150 -0.903708 -vn -0.134280 -0.433849 -0.890923 -vn 0.000000 -0.139213 -0.990262 -vn -0.134280 -0.433849 -0.890923 -vn -0.143223 -0.147346 -0.978661 -vn 0.000000 -0.139213 -0.990262 -vn -0.887379 0.408080 0.214547 -vn -0.775796 0.611274 -0.156478 -vn -0.955533 0.229356 0.185346 -vn -0.775796 0.611274 -0.156478 -vn -0.899654 0.371805 -0.228876 -vn -0.955533 0.229356 0.185346 -vn -0.838201 0.338530 -0.427570 -vn -0.899654 0.371805 -0.228876 -vn -0.748562 0.572863 -0.333891 -vn -0.899654 0.371805 -0.228876 -vn -0.775796 0.611274 -0.156478 -vn -0.748562 0.572863 -0.333891 -vn -0.838201 0.338530 -0.427570 -vn -0.748562 0.572863 -0.333891 -vn -0.730079 0.280919 -0.622953 -vn -0.748562 0.572863 -0.333891 -vn -0.670026 0.523745 -0.526076 -vn -0.730079 0.280919 -0.622953 -vn -0.141285 0.197838 -0.969999 -vn -0.141907 0.486043 -0.862337 -vn 0.000000 0.169328 -0.985560 -vn -0.141907 0.486043 -0.862337 -vn -0.000000 0.429750 -0.902948 -vn 0.000000 0.169328 -0.985560 -vn -0.910865 0.382102 -0.155957 -vn -0.852446 0.395819 -0.341559 -vn -0.775796 0.611274 -0.156478 -vn -0.852446 0.395819 -0.341559 -vn -0.748562 0.572863 -0.333891 -vn -0.775796 0.611274 -0.156478 -vn -0.852446 0.395819 -0.341559 -vn -0.727146 0.408695 -0.551567 -vn -0.748562 0.572863 -0.333891 -vn -0.727146 0.408695 -0.551567 -vn -0.670026 0.523745 -0.526076 -vn -0.748562 0.572863 -0.333891 -vn -0.561493 0.486609 -0.669281 -vn -0.260541 0.716419 -0.647196 -vn -0.515036 0.508272 -0.690216 -vn -0.260541 0.716419 -0.647196 -vn -0.306784 0.535384 -0.786923 -vn -0.515036 0.508272 -0.690216 -vn -0.306784 0.535384 -0.786923 -vn -0.260541 0.716419 -0.647196 -vn -0.141907 0.486043 -0.862337 -vn -0.260541 0.716419 -0.647196 -vn -0.139642 0.443685 -0.885237 -vn -0.141907 0.486043 -0.862337 -vn -0.141907 0.486043 -0.862337 -vn -0.139642 0.443685 -0.885237 -vn -0.000000 0.429750 -0.902948 -vn -0.139642 0.443685 -0.885237 -vn 0.000000 0.345679 -0.938353 -vn -0.000000 0.429750 -0.902948 -vn -0.978524 0.071526 -0.193328 -vn -0.910865 0.382102 -0.155957 -vn -0.865780 0.298022 0.402004 -vn -0.910702 0.410936 -0.041879 -vn -0.663248 0.596004 0.452638 -vn -0.865780 0.298022 0.402004 -vn -0.910865 0.382102 -0.155957 -vn -0.978524 0.071526 -0.193328 -vn -0.852446 0.395819 -0.341559 -vn -0.978524 0.071526 -0.193328 -vn -0.911055 0.107518 -0.398019 -vn -0.852446 0.395819 -0.341559 -vn -0.852446 0.395819 -0.341559 -vn -0.911055 0.107518 -0.398019 -vn -0.727146 0.408695 -0.551567 -vn -0.911055 0.107518 -0.398019 -vn -0.783256 0.126122 -0.608772 -vn -0.727146 0.408695 -0.551567 -vn -0.419181 0.072841 -0.904976 -vn -0.426493 0.056983 -0.902694 -vn -0.381991 0.053413 -0.922621 -vn -0.426493 0.056983 -0.902694 -vn -0.394310 0.036711 -0.918244 -vn -0.381991 0.053413 -0.922621 -vn -0.319266 0.017626 -0.947501 -vn -0.381991 0.053413 -0.922621 -vn -0.341576 0.029789 -0.939382 -vn -0.381991 0.053413 -0.922621 -vn -0.394310 0.036711 -0.918244 -vn -0.341576 0.029789 -0.939382 -vn 0.000000 0.345679 -0.938353 -vn -0.139642 0.443685 -0.885237 -vn 0.000000 0.077721 -0.996975 -vn -0.139642 0.443685 -0.885237 -vn -0.103853 0.070740 -0.992074 -vn 0.000000 0.077721 -0.996975 -vn -0.887417 0.192326 0.418929 -vn -0.895262 0.186285 0.404727 -vn -0.963287 0.140801 -0.228590 -vn -0.895262 0.186285 0.404727 -vn -0.922032 0.290901 -0.255407 -vn -0.963287 0.140801 -0.228590 -vn -0.963287 0.140801 -0.228590 -vn -0.922032 0.290901 -0.255407 -vn -0.891648 0.172871 -0.418426 -vn -0.922032 0.290901 -0.255407 -vn -0.845815 0.329793 -0.419325 -vn -0.891648 0.172871 -0.418426 -vn -0.891648 0.172871 -0.418426 -vn -0.845815 0.329793 -0.419325 -vn -0.767576 0.190717 -0.611926 -vn -0.845815 0.329793 -0.419325 -vn -0.708098 0.345784 -0.615654 -vn -0.767576 0.190717 -0.611926 -vn -0.883142 0.315792 0.346895 -vn -0.746380 0.632005 -0.208535 -vn -0.895262 0.186285 0.404727 -vn -0.746380 0.632005 -0.208535 -vn -0.922032 0.290901 -0.255407 -vn -0.895262 0.186285 0.404727 -vn -0.845815 0.329793 -0.419325 -vn -0.922032 0.290901 -0.255407 -vn -0.682306 0.642739 -0.348346 -vn -0.922032 0.290901 -0.255407 -vn -0.746380 0.632005 -0.208535 -vn -0.682306 0.642739 -0.348346 -vn -0.708098 0.345784 -0.615654 -vn -0.845815 0.329793 -0.419325 -vn -0.597176 0.623458 -0.504659 -vn -0.845815 0.329793 -0.419325 -vn -0.682306 0.642739 -0.348346 -vn -0.597176 0.623458 -0.504659 -vn -0.708098 0.345784 -0.615654 -vn -0.597176 0.623458 -0.504659 -vn -0.565694 0.317444 -0.761065 -vn -0.597176 0.623458 -0.504659 -vn -0.484964 0.591691 -0.643982 -vn -0.565694 0.317444 -0.761065 -vn -0.565694 0.317444 -0.761065 -vn -0.484964 0.591691 -0.643982 -vn -0.379772 0.322230 -0.867145 -vn -0.484964 0.591691 -0.643982 -vn -0.297017 0.614079 -0.731223 -vn -0.379772 0.322230 -0.867145 -vn -0.186911 0.318785 -0.929215 -vn -0.160628 0.572026 -0.804354 -vn 0.000000 0.303281 -0.952901 -vn -0.160628 0.572026 -0.804354 -vn 0.000000 0.566902 -0.823785 -vn 0.000000 0.303281 -0.952901 -vn -0.872500 0.486439 0.046048 -vn -0.695502 0.699074 -0.166048 -vn -0.883142 0.315792 0.346895 -vn -0.695502 0.699074 -0.166048 -vn -0.746380 0.632005 -0.208535 -vn -0.883142 0.315792 0.346895 -vn -0.682306 0.642739 -0.348346 -vn -0.746380 0.632005 -0.208535 -vn -0.641577 0.697453 -0.319279 -vn -0.746380 0.632005 -0.208535 -vn -0.695502 0.699074 -0.166048 -vn -0.641577 0.697453 -0.319279 -vn -0.597176 0.623458 -0.504659 -vn -0.682306 0.642739 -0.348346 -vn -0.576935 0.677233 -0.456619 -vn -0.682306 0.642739 -0.348346 -vn -0.641577 0.697453 -0.319279 -vn -0.576935 0.677233 -0.456619 -vn -0.484964 0.591691 -0.643982 -vn -0.597176 0.623458 -0.504659 -vn -0.445043 0.671109 -0.592916 -vn -0.597176 0.623458 -0.504659 -vn -0.576935 0.677233 -0.456619 -vn -0.445043 0.671109 -0.592916 -vn -0.484964 0.591691 -0.643982 -vn -0.445043 0.671109 -0.592916 -vn -0.297017 0.614079 -0.731223 -vn -0.445043 0.671109 -0.592916 -vn -0.311586 0.626785 -0.714181 -vn -0.297017 0.614079 -0.731223 -vn -0.160628 0.572026 -0.804354 -vn -0.167735 0.583693 -0.794460 -vn 0.000000 0.566902 -0.823785 -vn -0.167735 0.583693 -0.794460 -vn 0.000000 0.578067 -0.815989 -vn 0.000000 0.566902 -0.823785 -vn -0.827008 0.305512 0.471932 -vn -0.787499 0.326946 0.522448 -vn -0.663248 0.596004 0.452638 -vn -0.787499 0.326946 0.522448 -vn -0.865780 0.298022 0.402004 -vn -0.663248 0.596004 0.452638 -vn -0.887417 0.192326 0.418929 -vn -0.790440 0.189724 0.582417 -vn -0.895262 0.186285 0.404727 -vn -0.790440 0.189724 0.582417 -vn -0.775527 -0.000898 0.631313 -vn -0.895262 0.186285 0.404727 -vn -0.883142 0.315792 0.346895 -vn -0.879022 -0.245419 0.408766 -vn -0.964631 0.193831 0.178653 -vn -0.643794 0.051604 0.763457 -vn -0.645109 -0.423749 0.635823 -vn -0.734614 -0.292666 0.612119 -vn -0.827008 0.305512 0.471932 -vn -0.722072 0.167012 0.671356 -vn -0.731349 0.176702 0.658715 -vn -0.722072 0.167012 0.671356 -vn -0.822162 0.061563 0.565915 -vn -0.731349 0.176702 0.658715 -vn -0.731349 0.176702 0.658715 -vn -0.822162 0.061563 0.565915 -vn -0.687158 0.108164 0.718411 -vn -0.827008 0.305512 0.471932 -vn -0.663248 0.596004 0.452638 -vn -0.665715 0.458373 0.588828 -vn -0.141923 0.004781 -0.989866 -vn -0.141285 0.197838 -0.969999 -vn -0.000000 0.003909 -0.999992 -vn -0.141285 0.197838 -0.969999 -vn 0.000000 0.169328 -0.985560 -vn -0.000000 0.003909 -0.999992 -vn -0.549889 0.016593 -0.835073 -vn -0.556365 0.235871 -0.796758 -vn -0.341784 0.005125 -0.939765 -vn -0.556365 0.235871 -0.796758 -vn -0.340643 0.199708 -0.918738 -vn -0.341784 0.005125 -0.939765 -vn -0.879747 0.084713 -0.467833 -vn -0.838201 0.338530 -0.427570 -vn -0.732050 0.035948 -0.680302 -vn -0.838201 0.338530 -0.427570 -vn -0.730079 0.280919 -0.622953 -vn -0.732050 0.035948 -0.680302 -vn -0.963144 0.096949 -0.250908 -vn -0.899654 0.371805 -0.228876 -vn -0.879747 0.084713 -0.467833 -vn -0.899654 0.371805 -0.228876 -vn -0.838201 0.338530 -0.427570 -vn -0.879747 0.084713 -0.467833 -vn -0.952537 0.082086 0.293147 -vn -0.955533 0.229356 0.185346 -vn -0.963144 0.096949 -0.250908 -vn -0.955533 0.229356 0.185346 -vn -0.899654 0.371805 -0.228876 -vn -0.963144 0.096949 -0.250908 -vn -0.645109 -0.423749 0.635823 -vn -0.652378 0.102382 0.750946 -vn -0.762062 -0.580087 0.287682 -vn -0.652378 0.102382 0.750946 -vn -0.817308 0.373606 0.438665 -vn -0.762062 -0.580087 0.287682 -vn -0.066628 0.586188 0.807431 -vn -0.933139 -0.256382 0.252030 -vn -0.829370 -0.508464 0.231538 -vn -0.829370 -0.508464 0.231538 -vn -0.482375 0.684024 0.547198 -vn -0.066628 0.586188 0.807431 -vn -0.933139 -0.256382 0.252030 -vn -0.066628 0.586188 0.807431 -vn -0.950169 -0.026411 0.310615 -vn -0.066628 0.586188 0.807431 -vn 0.074275 0.267465 0.960701 -vn -0.950169 -0.026411 0.310615 -vn -0.955533 0.229356 0.185346 -vn -0.172799 -0.451525 0.875366 -vn -0.818615 -0.123715 0.560860 -vn -0.818615 -0.123715 0.560860 -vn -0.887379 0.408080 0.214547 -vn -0.955533 0.229356 0.185346 -vn 0.096717 0.033816 0.994737 -vn -0.172799 -0.451525 0.875366 -vn -0.955533 0.229356 0.185346 -vn -0.955533 0.229356 0.185346 -vn -0.952537 0.082086 0.293147 -vn 0.096717 0.033816 0.994737 -vn -0.127120 -0.776749 -0.616849 -vn -0.105150 -0.721120 -0.684785 -vn -0.000000 -0.775130 -0.631802 -vn -0.105150 -0.721120 -0.684785 -vn 0.000000 -0.711059 -0.703132 -vn -0.000000 -0.775130 -0.631802 -vn -0.213971 -0.821557 -0.528451 -vn -0.219380 -0.740034 -0.635784 -vn -0.127120 -0.776749 -0.616849 -vn -0.219380 -0.740034 -0.635784 -vn -0.105150 -0.721120 -0.684785 -vn -0.127120 -0.776749 -0.616849 -vn -0.372727 -0.870575 -0.321206 -vn -0.433962 -0.796400 -0.421218 -vn -0.308118 -0.845792 -0.435546 -vn -0.433962 -0.796400 -0.421218 -vn -0.339986 -0.770658 -0.538977 -vn -0.308118 -0.845792 -0.435546 -vn -0.411066 -0.888894 -0.202218 -vn -0.499176 -0.817395 -0.287557 -vn -0.372727 -0.870575 -0.321206 -vn -0.499176 -0.817395 -0.287557 -vn -0.433962 -0.796400 -0.421218 -vn -0.372727 -0.870575 -0.321206 -vn -0.440580 -0.890619 -0.112635 -vn -0.547229 -0.823054 -0.152061 -vn -0.411066 -0.888894 -0.202218 -vn -0.547229 -0.823054 -0.152061 -vn -0.499176 -0.817395 -0.287557 -vn -0.411066 -0.888894 -0.202218 -vn -0.762062 -0.580087 0.287682 -vn -0.829370 -0.508464 0.231538 -vn -0.440580 -0.890619 -0.112635 -vn -0.829370 -0.508464 0.231538 -vn -0.547229 -0.823054 -0.152061 -vn -0.440580 -0.890619 -0.112635 -vn -0.762062 -0.580087 0.287682 -vn -0.817308 0.373606 0.438665 -vn -0.829370 -0.508464 0.231538 -vn -0.817308 0.373606 0.438665 -vn -0.482375 0.684024 0.547198 -vn -0.829370 -0.508464 0.231538 -vn -0.822162 0.061563 0.565915 -vn -0.722072 0.167012 0.671356 -vn -0.980730 -0.192660 -0.032425 -vn -0.722072 0.167012 0.671356 -vn -0.968206 -0.249820 0.012937 -vn -0.980730 -0.192660 -0.032425 -vn -0.652378 0.102382 0.750946 -vn -0.926853 0.296065 0.230845 -vn -0.817308 0.373606 0.438665 -vn -0.849402 0.514429 0.117811 -vn -0.044560 0.961925 0.269656 -vn -0.817308 0.373606 0.438665 -vn -0.482375 0.684024 0.547198 -vn 0.454056 0.816322 0.357003 -vn -0.066628 0.586188 0.807431 -vn 0.454056 0.816322 0.357003 -vn 0.741744 0.469145 0.479291 -vn -0.066628 0.586188 0.807431 -vn -0.066628 0.586188 0.807431 -vn 0.741744 0.469145 0.479291 -vn 0.074275 0.267465 0.960701 -vn 0.741744 0.469145 0.479291 -vn 0.800068 0.182433 0.571498 -vn 0.074275 0.267465 0.960701 -vn -0.818615 -0.123715 0.560860 -vn -0.172799 -0.451525 0.875366 -vn 0.577310 -0.607635 0.545429 -vn -0.172799 -0.451525 0.875366 -vn 0.757302 -0.341398 0.556724 -vn 0.577310 -0.607635 0.545429 -vn -0.497236 -0.822134 0.277223 -vn -0.489758 -0.824720 0.282797 -vn -0.429055 -0.842434 0.325909 -vn -0.489758 -0.824720 0.282797 -vn -0.413625 -0.846061 0.336297 -vn -0.429055 -0.842434 0.325909 -vn -0.172799 -0.451525 0.875366 -vn 0.096717 0.033816 0.994737 -vn 0.757302 -0.341398 0.556724 -vn 0.096717 0.033816 0.994737 -vn 0.846383 -0.041168 0.530981 -vn 0.757302 -0.341398 0.556724 -vn -0.817308 0.373606 0.438665 -vn -0.044560 0.961925 0.269656 -vn -0.482375 0.684024 0.547198 -vn -0.044560 0.961925 0.269656 -vn 0.454056 0.816322 0.357003 -vn -0.482375 0.684024 0.547198 -vn -0.722072 0.167012 0.671356 -vn -0.827008 0.305512 0.471932 -vn -0.665715 0.458373 0.588828 -vn -0.665715 0.458373 0.588828 -vn -0.887379 0.408080 0.214547 -vn -0.818615 -0.123715 0.560860 -vn -0.818615 -0.123715 0.560860 -vn -0.722072 0.167012 0.671356 -vn -0.665715 0.458373 0.588828 -vn -0.822162 0.061563 0.565915 -vn -0.807536 0.080137 0.584349 -vn -0.687158 0.108164 0.718411 -vn -0.807536 0.080137 0.584349 -vn -0.643614 0.102220 0.758493 -vn -0.687158 0.108164 0.718411 -vn -0.980730 -0.192660 -0.032425 -vn -0.992109 -0.110931 -0.058437 -vn -0.822162 0.061563 0.565915 -vn -0.992109 -0.110931 -0.058437 -vn -0.807536 0.080137 0.584349 -vn -0.822162 0.061563 0.565915 -vn -0.643794 0.051604 0.763457 -vn -0.652378 0.102382 0.750946 -vn -0.645109 -0.423749 0.635823 -vn -0.762062 -0.580087 0.287682 -vn -0.693869 -0.717639 -0.059504 -vn -0.645109 -0.423749 0.635823 -vn -0.693869 -0.717639 -0.059504 -vn -0.734614 -0.292666 0.612119 -vn -0.645109 -0.423749 0.635823 -vn -0.688953 -0.713776 -0.125968 -vn -0.936547 -0.324609 -0.132316 -vn -0.693869 -0.717639 -0.059504 -vn -0.936547 -0.324609 -0.132316 -vn -0.951661 -0.299535 -0.067968 -vn -0.693869 -0.717639 -0.059504 -vn -0.695502 0.699074 -0.166048 -vn -0.737048 0.630837 -0.242495 -vn -0.641577 0.697453 -0.319279 -vn -0.576935 0.677233 -0.456619 -vn -0.641577 0.697453 -0.319279 -vn -0.657376 0.599430 -0.456663 -vn -0.641577 0.697453 -0.319279 -vn -0.737048 0.630837 -0.242495 -vn -0.657376 0.599430 -0.456663 -vn -0.445043 0.671109 -0.592916 -vn -0.576935 0.677233 -0.456619 -vn -0.522000 0.565707 -0.638350 -vn -0.576935 0.677233 -0.456619 -vn -0.657376 0.599430 -0.456663 -vn -0.522000 0.565707 -0.638350 -vn -0.445043 0.671109 -0.592916 -vn -0.522000 0.565707 -0.638350 -vn -0.311586 0.626785 -0.714181 -vn -0.522000 0.565707 -0.638350 -vn -0.366912 0.544933 -0.753938 -vn -0.311586 0.626785 -0.714181 -vn -0.167735 0.583693 -0.794460 -vn -0.182275 0.548030 -0.816357 -vn 0.000000 0.578067 -0.815989 -vn -0.182275 0.548030 -0.816357 -vn 0.000000 0.566147 -0.824304 -vn 0.000000 0.578067 -0.815989 -vn -0.522554 0.775614 -0.354063 -vn -0.657376 0.599430 -0.456663 -vn -0.531461 0.826347 -0.186276 -vn -0.657376 0.599430 -0.456663 -vn -0.737048 0.630837 -0.242495 -vn -0.531461 0.826347 -0.186276 -vn -0.124090 0.987698 -0.095156 -vn 0.000000 0.996295 -0.085997 -vn -0.155681 0.954668 -0.253718 -vn 0.000000 0.996295 -0.085997 -vn 0.000000 0.968551 -0.248813 -vn -0.155681 0.954668 -0.253718 -vn -0.155681 0.954668 -0.253718 -vn 0.000000 0.968551 -0.248813 -vn -0.174351 0.814871 -0.552800 -vn 0.000000 0.968551 -0.248813 -vn -0.000000 0.828372 -0.560179 -vn -0.174351 0.814871 -0.552800 -vn -0.370339 0.773014 -0.515071 -vn -0.522000 0.565707 -0.638350 -vn -0.522554 0.775614 -0.354063 -vn -0.522000 0.565707 -0.638350 -vn -0.657376 0.599430 -0.456663 -vn -0.522554 0.775614 -0.354063 -vn -0.366912 0.544933 -0.753938 -vn -0.522000 0.565707 -0.638350 -vn -0.370339 0.773014 -0.515071 -vn 0.000000 0.566147 -0.824304 -vn -0.182275 0.548030 -0.816357 -vn -0.000000 0.828372 -0.560179 -vn -0.182275 0.548030 -0.816357 -vn -0.174351 0.814871 -0.552800 -vn -0.000000 0.828372 -0.560179 -vn -0.370339 0.773014 -0.515071 -vn -0.522554 0.775614 -0.354063 -vn -0.283844 0.920677 -0.267929 -vn -0.283844 0.920677 -0.267929 -vn -0.522554 0.775614 -0.354063 -vn -0.289060 0.948825 -0.127180 -vn -0.522554 0.775614 -0.354063 -vn -0.531461 0.826347 -0.186276 -vn -0.289060 0.948825 -0.127180 -vn -0.811511 0.582008 0.052118 -vn -0.813126 0.562843 0.148437 -vn -0.564449 0.824801 0.033177 -vn -0.813126 0.562843 0.148437 -vn -0.586343 0.801355 0.118456 -vn -0.564449 0.824801 0.033177 -vn -0.107263 0.993482 0.038571 -vn -0.101507 0.989456 0.103309 -vn -0.000000 0.999113 0.042110 -vn -0.101507 0.989456 0.103309 -vn -0.000000 0.994745 0.102388 -vn -0.000000 0.999113 0.042110 -vn -0.564449 0.824801 0.033177 -vn -0.586343 0.801355 0.118456 -vn -0.285655 0.957858 0.030146 -vn -0.586343 0.801355 0.118456 -vn -0.271656 0.956444 0.106859 -vn -0.285655 0.957858 0.030146 -vn -0.675523 0.489859 0.551096 -vn -0.504243 0.754679 0.419760 -vn -0.790476 0.510996 0.337684 -vn -0.504243 0.754679 0.419760 -vn -0.566436 0.773715 0.283751 -vn -0.790476 0.510996 0.337684 -vn -0.306688 0.839558 0.448424 -vn -0.504243 0.754679 0.419760 -vn -0.395709 0.594759 0.699769 -vn -0.504243 0.754679 0.419760 -vn -0.675523 0.489859 0.551096 -vn -0.395709 0.594759 0.699769 -vn 0.000000 0.644588 0.764530 -vn -0.000000 0.890696 0.454600 -vn -0.172841 0.641260 0.747604 -vn -0.000000 0.890696 0.454600 -vn -0.151422 0.882115 0.446031 -vn -0.172841 0.641260 0.747604 -vn -0.114776 0.969606 0.216080 -vn -0.151422 0.882115 0.446031 -vn -0.000000 0.977356 0.211603 -vn -0.151422 0.882115 0.446031 -vn -0.000000 0.890696 0.454600 -vn -0.000000 0.977356 0.211603 -vn -0.306688 0.839558 0.448424 -vn -0.269387 0.933644 0.236092 -vn -0.504243 0.754679 0.419760 -vn -0.269387 0.933644 0.236092 -vn -0.566436 0.773715 0.283751 -vn -0.504243 0.754679 0.419760 -vn -0.775527 -0.000898 0.631313 -vn -0.790440 0.189724 0.582417 -vn -0.992653 0.114144 0.040135 -vn -0.879022 -0.245419 0.408766 -vn -0.775527 -0.000898 0.631313 -vn -0.992653 0.114144 0.040135 -vn -0.964631 0.193831 0.178653 -vn -0.879022 -0.245419 0.408766 -vn -0.992653 0.114144 0.040135 -vn -0.992653 0.114144 0.040135 -vn -0.965976 0.251500 0.060315 -vn -0.964631 0.193831 0.178653 -vn -0.787499 0.326946 0.522448 -vn -0.827008 0.305512 0.471932 -vn -0.998468 0.034872 0.042952 -vn -0.827008 0.305512 0.471932 -vn -0.731349 0.176702 0.658715 -vn -0.998468 0.034872 0.042952 -vn -0.941576 0.289157 0.172692 -vn -0.965976 0.251500 0.060315 -vn -0.987901 0.136372 0.073847 -vn -0.965976 0.251500 0.060315 -vn -0.992653 0.114144 0.040135 -vn -0.987901 0.136372 0.073847 -vn -0.965976 0.251500 0.060315 -vn -0.941576 0.289157 0.172692 -vn -0.905940 0.384539 0.177207 -vn -0.921473 0.383876 0.059379 -vn -0.965976 0.251500 0.060315 -vn -0.905940 0.384539 0.177207 -vn -0.730356 0.204967 0.651589 -vn -0.736229 0.256875 0.626085 -vn -0.877960 0.234283 0.417490 -vn -0.736229 0.256875 0.626085 -vn -0.859273 0.317420 0.401117 -vn -0.877960 0.234283 0.417490 -vn -0.730356 0.204967 0.651589 -vn -0.478164 0.165313 0.862572 -vn -0.736229 0.256875 0.626085 -vn -0.478164 0.165313 0.862572 -vn -0.464356 0.290440 0.836671 -vn -0.736229 0.256875 0.626085 -vn -0.000000 0.342544 0.939502 -vn -0.190440 0.332540 0.923661 -vn 0.000000 0.200670 0.979659 -vn -0.190440 0.332540 0.923661 -vn -0.189718 0.191129 0.963056 -vn 0.000000 0.200670 0.979659 -vn -0.811511 0.582008 0.052118 -vn -0.921473 0.383876 0.059379 -vn -0.813126 0.562843 0.148437 -vn -0.921473 0.383876 0.059379 -vn -0.905940 0.384539 0.177207 -vn -0.813126 0.562843 0.148437 -vn -0.859273 0.317420 0.401117 -vn -0.736229 0.256875 0.626085 -vn -0.790476 0.510996 0.337684 -vn -0.736229 0.256875 0.626085 -vn -0.675523 0.489859 0.551096 -vn -0.790476 0.510996 0.337684 -vn -0.395709 0.594759 0.699769 -vn -0.675523 0.489859 0.551096 -vn -0.464356 0.290440 0.836671 -vn -0.675523 0.489859 0.551096 -vn -0.736229 0.256875 0.626085 -vn -0.464356 0.290440 0.836671 -vn -0.190440 0.332540 0.923661 -vn -0.000000 0.342544 0.939502 -vn -0.172841 0.641260 0.747604 -vn -0.000000 0.342544 0.939502 -vn 0.000000 0.644588 0.764530 -vn -0.172841 0.641260 0.747604 -vn -0.113784 0.993394 -0.014901 -vn -0.107263 0.993482 0.038571 -vn -0.000000 0.999950 -0.010010 -vn -0.107263 0.993482 0.038571 -vn -0.000000 0.999113 0.042110 -vn -0.000000 0.999950 -0.010010 -vn -0.285655 0.957858 0.030146 -vn -0.293378 0.955452 -0.032274 -vn -0.564449 0.824801 0.033177 -vn -0.293378 0.955452 -0.032274 -vn -0.558464 0.827906 -0.051870 -vn -0.564449 0.824801 0.033177 -vn -0.558464 0.827906 -0.051870 -vn -0.795044 0.603545 -0.060330 -vn -0.564449 0.824801 0.033177 -vn -0.795044 0.603545 -0.060330 -vn -0.811511 0.582008 0.052118 -vn -0.564449 0.824801 0.033177 -vn -0.872500 0.486439 0.046048 -vn -0.921473 0.383876 0.059379 -vn -0.795044 0.603545 -0.060330 -vn -0.921473 0.383876 0.059379 -vn -0.811511 0.582008 0.052118 -vn -0.795044 0.603545 -0.060330 -vn -0.910702 0.410936 -0.041879 -vn -0.775796 0.611274 -0.156478 -vn -0.887379 0.408080 0.214547 -vn -0.665715 0.458373 0.588828 -vn -0.663248 0.596004 0.452638 -vn -0.910702 0.410936 -0.041879 -vn -0.795044 0.603545 -0.060330 -vn -0.558464 0.827906 -0.051870 -vn -0.737048 0.630837 -0.242495 -vn -0.558464 0.827906 -0.051870 -vn -0.531461 0.826347 -0.186276 -vn -0.737048 0.630837 -0.242495 -vn -0.558464 0.827906 -0.051870 -vn -0.293378 0.955452 -0.032274 -vn -0.531461 0.826347 -0.186276 -vn -0.293378 0.955452 -0.032274 -vn -0.289060 0.948825 -0.127180 -vn -0.531461 0.826347 -0.186276 -vn 0.000000 0.996295 -0.085997 -vn -0.124090 0.987698 -0.095156 -vn -0.000000 0.999950 -0.010010 -vn -0.124090 0.987698 -0.095156 -vn -0.113784 0.993394 -0.014901 -vn -0.000000 0.999950 -0.010010 -vn -0.895262 0.186285 0.404727 -vn -0.775527 -0.000898 0.631313 -vn -0.883142 0.315792 0.346895 -vn -0.775527 -0.000898 0.631313 -vn -0.879022 -0.245419 0.408766 -vn -0.883142 0.315792 0.346895 -vn -0.964631 0.193831 0.178653 -vn -0.872500 0.486439 0.046048 -vn -0.883142 0.315792 0.346895 -vn -0.737048 0.630837 -0.242495 -vn -0.695502 0.699074 -0.166048 -vn -0.795044 0.603545 -0.060330 -vn -0.695502 0.699074 -0.166048 -vn -0.872500 0.486439 0.046048 -vn -0.795044 0.603545 -0.060330 -vn -0.762062 -0.580087 0.287682 -vn -0.440580 -0.890619 -0.112635 -vn -0.693869 -0.717639 -0.059504 -vn -0.440580 -0.890619 -0.112635 -vn -0.688953 -0.713776 -0.125968 -vn -0.693869 -0.717639 -0.059504 -vn -0.643614 0.102220 0.758493 -vn -0.643794 0.051604 0.763457 -vn -0.869836 -0.056841 0.490055 -vn -0.643794 0.051604 0.763457 -vn -0.833627 -0.033590 0.551305 -vn -0.869836 -0.056841 0.490055 -vn -0.807536 0.080137 0.584349 -vn -0.652378 0.102382 0.750946 -vn -0.643614 0.102220 0.758493 -vn -0.652378 0.102382 0.750946 -vn -0.643794 0.051604 0.763457 -vn -0.643614 0.102220 0.758493 -vn -0.652378 0.102382 0.750946 -vn -0.807536 0.080137 0.584349 -vn -0.926853 0.296065 0.230845 -vn -0.807536 0.080137 0.584349 -vn -0.992109 -0.110931 -0.058437 -vn -0.849402 0.514429 0.117811 -vn -0.998468 0.034872 0.042952 -vn -0.992653 0.114144 0.040135 -vn -0.787499 0.326946 0.522448 -vn 0.000000 0.077721 -0.996975 -vn -0.103853 0.070740 -0.992074 -vn 0.000000 0.152101 -0.988365 -vn -0.103853 0.070740 -0.992074 -vn -0.170294 0.181676 -0.968501 -vn 0.000000 0.152101 -0.988365 -vn -0.402909 -0.008557 -0.915200 -vn -0.339259 0.010099 -0.940639 -vn -0.394310 0.036711 -0.918244 -vn -0.339259 0.010099 -0.940639 -vn -0.341576 0.029789 -0.939382 -vn -0.394310 0.036711 -0.918244 -vn -0.402909 -0.008557 -0.915200 -vn -0.394310 0.036711 -0.918244 -vn -0.452658 0.019859 -0.891463 -vn -0.394310 0.036711 -0.918244 -vn -0.426493 0.056983 -0.902694 -vn -0.452658 0.019859 -0.891463 -vn -0.911055 0.107518 -0.398019 -vn -0.891648 0.172871 -0.418426 -vn -0.783256 0.126122 -0.608772 -vn -0.891648 0.172871 -0.418426 -vn -0.767576 0.190717 -0.611926 -vn -0.783256 0.126122 -0.608772 -vn -0.978524 0.071526 -0.193328 -vn -0.963287 0.140801 -0.228590 -vn -0.911055 0.107518 -0.398019 -vn -0.963287 0.140801 -0.228590 -vn -0.891648 0.172871 -0.418426 -vn -0.911055 0.107518 -0.398019 -vn -0.784323 -0.020364 0.620019 -vn -0.791556 -0.097603 0.603252 -vn -0.804548 -0.044303 0.592232 -vn -0.643794 0.051604 0.763457 -vn -0.865823 -0.075119 0.494680 -vn -0.784323 -0.020364 0.620019 -vn -0.865823 -0.075119 0.494680 -vn -0.894455 -0.085918 0.438825 -vn -0.784323 -0.020364 0.620019 -vn -0.894455 -0.085918 0.438825 -vn -0.865823 -0.075119 0.494680 -vn -0.987210 -0.158821 -0.013868 -vn -0.865823 -0.075119 0.494680 -vn -0.951661 -0.299535 -0.067968 -vn -0.987210 -0.158821 -0.013868 -vn -0.936547 -0.324609 -0.132316 -vn -0.986121 -0.113166 -0.121487 -vn -0.951661 -0.299535 -0.067968 -vn -0.986121 -0.113166 -0.121487 -vn -0.987210 -0.158821 -0.013868 -vn -0.951661 -0.299535 -0.067968 -vn -0.911130 -0.251282 -0.326649 -vn -0.944819 -0.103296 -0.310882 -vn -0.936547 -0.324609 -0.132316 -vn -0.944819 -0.103296 -0.310882 -vn -0.986121 -0.113166 -0.121487 -vn -0.936547 -0.324609 -0.132316 -vn -0.776501 -0.261174 -0.573441 -vn -0.817637 -0.091284 -0.568451 -vn -0.911130 -0.251282 -0.326649 -vn -0.817637 -0.091284 -0.568451 -vn -0.944819 -0.103296 -0.310882 -vn -0.911130 -0.251282 -0.326649 -vn -0.582436 -0.291964 -0.758634 -vn -0.615939 -0.083779 -0.783326 -vn -0.776501 -0.261174 -0.573441 -vn -0.615939 -0.083779 -0.783326 -vn -0.817637 -0.091284 -0.568451 -vn -0.776501 -0.261174 -0.573441 -vn -0.203644 -0.349140 -0.914675 -vn -0.205817 -0.136223 -0.969063 -vn -0.389637 -0.317883 -0.864369 -vn -0.205817 -0.136223 -0.969063 -vn -0.394315 -0.101461 -0.913357 -vn -0.389637 -0.317883 -0.864369 -vn 0.000000 -0.346225 -0.938152 -vn 0.000000 -0.144658 -0.989482 -vn -0.203644 -0.349140 -0.914675 -vn 0.000000 -0.144658 -0.989482 -vn -0.205817 -0.136223 -0.969063 -vn -0.203644 -0.349140 -0.914675 -vn 0.000000 -0.139213 -0.990262 -vn -0.143223 -0.147346 -0.978661 -vn -0.000000 0.003909 -0.999992 -vn -0.143223 -0.147346 -0.978661 -vn -0.141923 0.004781 -0.989866 -vn -0.000000 0.003909 -0.999992 -vn -0.338040 -0.168109 -0.925996 -vn -0.341784 0.005125 -0.939765 -vn -0.143223 -0.147346 -0.978661 -vn -0.341784 0.005125 -0.939765 -vn -0.141923 0.004781 -0.989866 -vn -0.143223 -0.147346 -0.978661 -vn -0.707443 -0.172771 -0.685328 -vn -0.732050 0.035948 -0.680302 -vn -0.530815 -0.169218 -0.830422 -vn -0.732050 0.035948 -0.680302 -vn -0.549889 0.016593 -0.835073 -vn -0.530815 -0.169218 -0.830422 -vn -0.861660 -0.163786 -0.480330 -vn -0.879747 0.084713 -0.467833 -vn -0.707443 -0.172771 -0.685328 -vn -0.879747 0.084713 -0.467833 -vn -0.732050 0.035948 -0.680302 -vn -0.707443 -0.172771 -0.685328 -vn -0.957770 -0.134386 -0.254199 -vn -0.963144 0.096949 -0.250908 -vn -0.861660 -0.163786 -0.480330 -vn -0.963144 0.096949 -0.250908 -vn -0.879747 0.084713 -0.467833 -vn -0.861660 -0.163786 -0.480330 -vn -0.950169 -0.026411 0.310615 -vn -0.952537 0.082086 0.293147 -vn -0.957770 -0.134386 -0.254199 -vn -0.952537 0.082086 0.293147 -vn -0.963144 0.096949 -0.250908 -vn -0.957770 -0.134386 -0.254199 -vn -0.952537 0.082086 0.293147 -vn -0.950169 -0.026411 0.310615 -vn 0.096717 0.033816 0.994737 -vn -0.950169 -0.026411 0.310615 -vn 0.074275 0.267465 0.960701 -vn 0.096717 0.033816 0.994737 -vn 0.074275 0.267465 0.960701 -vn 0.800068 0.182433 0.571498 -vn 0.096717 0.033816 0.994737 -vn 0.800068 0.182433 0.571498 -vn 0.846383 -0.041168 0.530981 -vn 0.096717 0.033816 0.994737 -vn -0.869836 -0.056841 0.490055 -vn -0.905834 -0.117974 0.406875 -vn -0.643614 0.102220 0.758493 -vn -0.905834 -0.117974 0.406875 -vn -0.687158 0.108164 0.718411 -vn -0.643614 0.102220 0.758493 -vn -0.965976 0.251500 0.060315 -vn -0.921473 0.383876 0.059379 -vn -0.964631 0.193831 0.178653 -vn -0.921473 0.383876 0.059379 -vn -0.872500 0.486439 0.046048 -vn -0.964631 0.193831 0.178653 -vn -0.614486 0.229061 -0.754942 -vn -0.698707 0.118060 -0.705599 -vn -0.767576 0.190717 -0.611926 -vn -0.698707 0.118060 -0.705599 -vn -0.783256 0.126122 -0.608772 -vn -0.767576 0.190717 -0.611926 -vn -0.727146 0.408695 -0.551567 -vn -0.783256 0.126122 -0.608772 -vn -0.561493 0.486609 -0.669281 -vn -0.783256 0.126122 -0.608772 -vn -0.698707 0.118060 -0.705599 -vn -0.561493 0.486609 -0.669281 -vn -0.670026 0.523745 -0.526076 -vn -0.727146 0.408695 -0.551567 -vn -0.515036 0.508272 -0.690216 -vn -0.727146 0.408695 -0.551567 -vn -0.561493 0.486609 -0.669281 -vn -0.515036 0.508272 -0.690216 -vn -0.730079 0.280919 -0.622953 -vn -0.670026 0.523745 -0.526076 -vn -0.556365 0.235871 -0.796758 -vn -0.670026 0.523745 -0.526076 -vn -0.515036 0.508272 -0.690216 -vn -0.556365 0.235871 -0.796758 -vn -0.732050 0.035948 -0.680302 -vn -0.730079 0.280919 -0.622953 -vn -0.549889 0.016593 -0.835073 -vn -0.730079 0.280919 -0.622953 -vn -0.556365 0.235871 -0.796758 -vn -0.549889 0.016593 -0.835073 -vn -0.137038 0.934417 -0.328765 -vn -0.141598 0.929887 -0.339500 -vn -0.229349 0.870656 -0.435152 -vn -0.141598 0.929887 -0.339500 -vn -0.233757 0.866197 -0.441656 -vn -0.229349 0.870656 -0.435152 -vn -0.151357 0.841808 -0.518122 -vn -0.141598 0.929887 -0.339500 -vn -0.149833 0.848035 -0.508318 -vn -0.141598 0.929887 -0.339500 -vn -0.137038 0.934417 -0.328765 -vn -0.149833 0.848035 -0.508318 -vn -0.783017 -0.101303 -0.613695 -vn -0.787275 -0.100989 -0.608275 -vn -0.819661 -0.094117 -0.565065 -vn -0.787275 -0.100989 -0.608275 -vn -0.824120 -0.095081 -0.558377 -vn -0.819661 -0.094117 -0.565065 -vn 0.219733 -0.075510 -0.972633 -vn 0.113867 -0.056451 -0.991891 -vn 0.207125 -0.070360 -0.975781 -vn 0.113867 -0.056451 -0.991891 -vn 0.100825 -0.056839 -0.993279 -vn 0.207125 -0.070360 -0.975781 -vn -0.796721 -0.072073 -0.600035 -vn -0.819661 -0.094117 -0.565065 -vn -0.799694 -0.074176 -0.595808 -vn -0.819661 -0.094117 -0.565065 -vn -0.824120 -0.095081 -0.558377 -vn -0.799694 -0.074176 -0.595808 -vn -0.262423 -0.608163 -0.749181 -vn -0.262466 -0.605799 -0.751078 -vn -0.326439 -0.587395 -0.740544 -vn -0.262466 -0.605799 -0.751078 -vn -0.325064 -0.583268 -0.744400 -vn -0.326439 -0.587395 -0.740544 -vn -0.325064 -0.583268 -0.744400 -vn -0.368755 -0.617809 -0.694501 -vn -0.326439 -0.587395 -0.740544 -vn -0.368755 -0.617809 -0.694501 -vn -0.366732 -0.621124 -0.692613 -vn -0.326439 -0.587395 -0.740544 -vn 0.135651 -0.058713 -0.989016 -vn 0.144397 -0.062565 -0.987540 -vn 0.207125 -0.070360 -0.975781 -vn 0.144397 -0.062565 -0.987540 -vn 0.219733 -0.075510 -0.972633 -vn 0.207125 -0.070360 -0.975781 -vn -0.530815 -0.169218 -0.830422 -vn -0.549889 0.016593 -0.835073 -vn -0.338040 -0.168109 -0.925996 -vn -0.549889 0.016593 -0.835073 -vn -0.341784 0.005125 -0.939765 -vn -0.338040 -0.168109 -0.925996 -vn -0.474424 -0.451462 -0.755715 -vn -0.530815 -0.169218 -0.830422 -vn -0.298918 -0.442208 -0.845636 -vn -0.530815 -0.169218 -0.830422 -vn -0.338040 -0.168109 -0.925996 -vn -0.298918 -0.442208 -0.845636 -vn -0.339986 -0.770658 -0.538977 -vn -0.474424 -0.451462 -0.755715 -vn -0.219380 -0.740034 -0.635784 -vn -0.474424 -0.451462 -0.755715 -vn -0.298918 -0.442208 -0.845636 -vn -0.219380 -0.740034 -0.635784 -vn -0.308118 -0.845792 -0.435546 -vn -0.339986 -0.770658 -0.538977 -vn -0.213971 -0.821557 -0.528451 -vn -0.339986 -0.770658 -0.538977 -vn -0.219380 -0.740034 -0.635784 -vn -0.213971 -0.821557 -0.528451 -vn -0.450135 -0.670894 -0.589305 -vn -0.308118 -0.845792 -0.435546 -vn -0.303200 -0.657246 -0.689998 -vn -0.308118 -0.845792 -0.435546 -vn -0.213971 -0.821557 -0.528451 -vn -0.303200 -0.657246 -0.689998 -vn -0.303200 -0.657246 -0.689998 -vn -0.389637 -0.317883 -0.864369 -vn -0.450135 -0.670894 -0.589305 -vn -0.389637 -0.317883 -0.864369 -vn -0.582436 -0.291964 -0.758634 -vn -0.450135 -0.670894 -0.589305 -vn -0.389637 -0.317883 -0.864369 -vn -0.394315 -0.101461 -0.913357 -vn -0.582436 -0.291964 -0.758634 -vn -0.394315 -0.101461 -0.913357 -vn -0.615939 -0.083779 -0.783326 -vn -0.582436 -0.291964 -0.758634 -vn -0.341784 0.005125 -0.939765 -vn -0.340643 0.199708 -0.918738 -vn -0.141923 0.004781 -0.989866 -vn -0.340643 0.199708 -0.918738 -vn -0.141285 0.197838 -0.969999 -vn -0.141923 0.004781 -0.989866 -vn -0.379772 0.322230 -0.867145 -vn -0.297017 0.614079 -0.731223 -vn -0.186911 0.318785 -0.929215 -vn -0.297017 0.614079 -0.731223 -vn -0.160628 0.572026 -0.804354 -vn -0.186911 0.318785 -0.929215 -vn -0.297017 0.614079 -0.731223 -vn -0.311586 0.626785 -0.714181 -vn -0.160628 0.572026 -0.804354 -vn -0.311586 0.626785 -0.714181 -vn -0.167735 0.583693 -0.794460 -vn -0.160628 0.572026 -0.804354 -vn -0.311586 0.626785 -0.714181 -vn -0.366912 0.544933 -0.753938 -vn -0.167735 0.583693 -0.794460 -vn -0.366912 0.544933 -0.753938 -vn -0.182275 0.548030 -0.816357 -vn -0.167735 0.583693 -0.794460 -vn -0.182275 0.548030 -0.816357 -vn -0.366912 0.544933 -0.753938 -vn -0.174351 0.814871 -0.552800 -vn -0.366912 0.544933 -0.753938 -vn -0.370339 0.773014 -0.515071 -vn -0.174351 0.814871 -0.552800 -vn -0.174351 0.814871 -0.552800 -vn -0.370339 0.773014 -0.515071 -vn -0.155681 0.954668 -0.253718 -vn -0.370339 0.773014 -0.515071 -vn -0.283844 0.920677 -0.267929 -vn -0.155681 0.954668 -0.253718 -vn -0.155681 0.954668 -0.253718 -vn -0.283844 0.920677 -0.267929 -vn -0.124090 0.987698 -0.095156 -vn -0.283844 0.920677 -0.267929 -vn -0.289060 0.948825 -0.127180 -vn -0.124090 0.987698 -0.095156 -vn -0.124090 0.987698 -0.095156 -vn -0.289060 0.948825 -0.127180 -vn -0.113784 0.993394 -0.014901 -vn -0.289060 0.948825 -0.127180 -vn -0.293378 0.955452 -0.032274 -vn -0.113784 0.993394 -0.014901 -vn -0.107263 0.993482 0.038571 -vn -0.113784 0.993394 -0.014901 -vn -0.285655 0.957858 0.030146 -vn -0.113784 0.993394 -0.014901 -vn -0.293378 0.955452 -0.032274 -vn -0.285655 0.957858 0.030146 -vn -0.285655 0.957858 0.030146 -vn -0.271656 0.956444 0.106859 -vn -0.107263 0.993482 0.038571 -vn -0.271656 0.956444 0.106859 -vn -0.101507 0.989456 0.103309 -vn -0.107263 0.993482 0.038571 -vn -0.151422 0.882115 0.446031 -vn -0.114776 0.969606 0.216080 -vn -0.306688 0.839558 0.448424 -vn -0.114776 0.969606 0.216080 -vn -0.269387 0.933644 0.236092 -vn -0.306688 0.839558 0.448424 -vn -0.172841 0.641260 0.747604 -vn -0.151422 0.882115 0.446031 -vn -0.395709 0.594759 0.699769 -vn -0.151422 0.882115 0.446031 -vn -0.306688 0.839558 0.448424 -vn -0.395709 0.594759 0.699769 -vn -0.172841 0.641260 0.747604 -vn -0.395709 0.594759 0.699769 -vn -0.190440 0.332540 0.923661 -vn -0.395709 0.594759 0.699769 -vn -0.464356 0.290440 0.836671 -vn -0.190440 0.332540 0.923661 -vn -0.478164 0.165313 0.862572 -vn -0.189718 0.191129 0.963056 -vn -0.464356 0.290440 0.836671 -vn -0.189718 0.191129 0.963056 -vn -0.190440 0.332540 0.923661 -vn -0.464356 0.290440 0.836671 -vn -0.186911 0.318785 -0.929215 -vn -0.170294 0.181676 -0.968501 -vn -0.379772 0.322230 -0.867145 -vn -0.170294 0.181676 -0.968501 -vn -0.409926 0.237447 -0.880670 -vn -0.379772 0.322230 -0.867145 -vn 0.000000 0.303281 -0.952901 -vn 0.000000 0.152101 -0.988365 -vn -0.186911 0.318785 -0.929215 -vn 0.000000 0.152101 -0.988365 -vn -0.170294 0.181676 -0.968501 -vn -0.186911 0.318785 -0.929215 -vn -0.379772 0.322230 -0.867145 -vn -0.409926 0.237447 -0.880670 -vn -0.565694 0.317444 -0.761065 -vn -0.409926 0.237447 -0.880670 -vn -0.614486 0.229061 -0.754942 -vn -0.565694 0.317444 -0.761065 -vn -0.767576 0.190717 -0.611926 -vn -0.708098 0.345784 -0.615654 -vn -0.614486 0.229061 -0.754942 -vn -0.708098 0.345784 -0.615654 -vn -0.565694 0.317444 -0.761065 -vn -0.614486 0.229061 -0.754942 -vn -0.978524 0.071526 -0.193328 -vn -0.865780 0.298022 0.402004 -vn -0.963287 0.140801 -0.228590 -vn -0.963287 0.140801 -0.228590 -vn -0.865780 0.298022 0.402004 -vn -0.887417 0.192326 0.418929 -vn -0.787499 0.326946 0.522448 -vn -0.790440 0.189724 0.582417 -vn -0.865780 0.298022 0.402004 -vn -0.790440 0.189724 0.582417 -vn -0.887417 0.192326 0.418929 -vn -0.865780 0.298022 0.402004 -vn -0.790440 0.189724 0.582417 -vn -0.787499 0.326946 0.522448 -vn -0.992653 0.114144 0.040135 -vn -0.804548 -0.044303 0.592232 -vn -0.796174 -0.034614 0.604077 -vn -0.833627 -0.033590 0.551305 -vn -0.865823 -0.075119 0.494680 -vn -0.643794 0.051604 0.763457 -vn -0.734614 -0.292666 0.612119 -vn -0.998468 0.034872 0.042952 -vn -0.998297 0.019801 0.054872 -vn -0.992653 0.114144 0.040135 -vn -0.998297 0.019801 0.054872 -vn -0.987901 0.136372 0.073847 -vn -0.992653 0.114144 0.040135 -vn -0.731349 0.176702 0.658715 -vn -0.687158 0.108164 0.718411 -vn -0.926994 -0.129511 0.352007 -vn -0.687158 0.108164 0.718411 -vn -0.905834 -0.117974 0.406875 -vn -0.926994 -0.129511 0.352007 -vn -0.216505 -0.964012 0.154295 -vn -0.128723 -0.973951 0.186681 -vn -0.344016 -0.936633 0.066114 -vn -0.804548 -0.044303 0.592232 -vn -0.791053 -0.070536 0.607668 -vn -0.796174 -0.034614 0.604077 -vn -0.051570 -0.896247 0.440547 -vn -0.035555 -0.976723 0.211536 -vn -0.055472 -0.996740 -0.058593 -vn -0.035555 -0.976723 0.211536 -vn -0.040877 -0.998968 -0.019776 -vn -0.055472 -0.996740 -0.058593 -vn -0.173479 0.168867 0.970252 -vn -0.103368 0.223513 0.969204 -vn -0.170701 0.176661 0.969357 -vn -0.103368 0.223513 0.969204 -vn -0.097159 0.235044 0.967117 -vn -0.170701 0.176661 0.969357 -vn -0.052936 0.216365 0.974876 -vn -0.097159 0.235044 0.967117 -vn -0.064598 0.228971 0.971287 -vn -0.097159 0.235044 0.967117 -vn -0.103368 0.223513 0.969204 -vn -0.064598 0.228971 0.971287 -vn -0.170701 0.176661 0.969357 -vn -0.168149 0.101726 0.980499 -vn -0.173479 0.168867 0.970252 -vn -0.168149 0.101726 0.980499 -vn -0.164097 0.082307 0.983004 -vn -0.173479 0.168867 0.970252 -vn -0.064598 0.228971 0.971287 -vn -0.028834 -0.044924 0.998574 -vn -0.052936 0.216365 0.974876 -vn -0.028834 -0.044924 0.998574 -vn -0.002361 -0.045709 0.998952 -vn -0.052936 0.216365 0.974876 -vn -0.116158 0.033510 0.992665 -vn -0.164097 0.082307 0.983004 -vn -0.123951 0.033775 0.991713 -vn -0.164097 0.082307 0.983004 -vn -0.168149 0.101726 0.980499 -vn -0.123951 0.033775 0.991713 -vn -0.082393 -0.961065 0.263752 -vn -0.031297 -0.968343 0.247652 -vn -0.216505 -0.964012 0.154295 -vn -0.031297 -0.968343 0.247652 -vn -0.128723 -0.973951 0.186681 -vn -0.216505 -0.964012 0.154295 -vn -0.035555 -0.976723 0.211536 -vn -0.051570 -0.896247 0.440547 -vn -0.069238 -0.603543 0.794318 -vn -0.051570 -0.896247 0.440547 -vn -0.059046 -0.495915 0.866361 -vn -0.069238 -0.603543 0.794318 -vn 0.073850 -0.984960 -0.156207 -vn 0.066127 -0.984212 -0.164178 -vn 0.011693 -0.985385 -0.169942 -vn 0.066127 -0.984212 -0.164178 -vn 0.001533 -0.984680 -0.174366 -vn 0.011693 -0.985385 -0.169942 -vn 0.093677 -0.987412 -0.127443 -vn 0.091072 -0.986479 -0.136255 -vn 0.073850 -0.984960 -0.156207 -vn 0.091072 -0.986479 -0.136255 -vn 0.066127 -0.984212 -0.164178 -vn 0.073850 -0.984960 -0.156207 -vn 0.000000 -0.998857 -0.047789 -vn -0.000000 -0.998702 -0.050933 -vn 0.055000 -0.996369 -0.064993 -vn -0.000000 -0.998702 -0.050933 -vn 0.055740 -0.996133 -0.067916 -vn 0.055000 -0.996369 -0.064993 -vn 0.011693 -0.985385 -0.169942 -vn 0.001533 -0.984680 -0.174366 -vn -0.049456 -0.988223 -0.144810 -vn 0.001533 -0.984680 -0.174366 -vn -0.055033 -0.987514 -0.147607 -vn -0.049456 -0.988223 -0.144810 -vn -0.049456 -0.988223 -0.144810 -vn -0.055033 -0.987514 -0.147607 -vn -0.071620 -0.991106 -0.112155 -vn -0.055033 -0.987514 -0.147607 -vn -0.073058 -0.990988 -0.112275 -vn -0.071620 -0.991106 -0.112155 -vn -0.073058 -0.990988 -0.112275 -vn -0.055472 -0.996740 -0.058593 -vn -0.071620 -0.991106 -0.112155 -vn -0.055472 -0.996740 -0.058593 -vn -0.060234 -0.996137 -0.063893 -vn -0.071620 -0.991106 -0.112155 -vn -0.055472 -0.996740 -0.058593 -vn -0.040877 -0.998968 -0.019776 -vn -0.060234 -0.996137 -0.063893 -vn 0.085405 -0.992811 -0.083858 -vn 0.085338 -0.992316 -0.089595 -vn 0.093677 -0.987412 -0.127443 -vn 0.085338 -0.992316 -0.089595 -vn 0.091072 -0.986479 -0.136255 -vn 0.093677 -0.987412 -0.127443 -vn 0.055000 -0.996369 -0.064993 -vn 0.055740 -0.996133 -0.067916 -vn 0.085405 -0.992811 -0.083858 -vn 0.055740 -0.996133 -0.067916 -vn 0.085338 -0.992316 -0.089595 -vn 0.085405 -0.992811 -0.083858 -vn -0.905940 0.384539 0.177207 -vn -0.941576 0.289157 0.172692 -vn -0.859273 0.317420 0.401117 -vn -0.941576 0.289157 0.172692 -vn -0.877960 0.234283 0.417490 -vn -0.859273 0.317420 0.401117 -vn -0.101507 0.989456 0.103309 -vn -0.114776 0.969606 0.216080 -vn -0.000000 0.994745 0.102388 -vn -0.114776 0.969606 0.216080 -vn -0.000000 0.977356 0.211603 -vn -0.000000 0.994745 0.102388 -vn -0.271656 0.956444 0.106859 -vn -0.269387 0.933644 0.236092 -vn -0.101507 0.989456 0.103309 -vn -0.269387 0.933644 0.236092 -vn -0.114776 0.969606 0.216080 -vn -0.101507 0.989456 0.103309 -vn -0.586343 0.801355 0.118456 -vn -0.566436 0.773715 0.283751 -vn -0.271656 0.956444 0.106859 -vn -0.566436 0.773715 0.283751 -vn -0.269387 0.933644 0.236092 -vn -0.271656 0.956444 0.106859 -vn -0.813126 0.562843 0.148437 -vn -0.790476 0.510996 0.337684 -vn -0.586343 0.801355 0.118456 -vn -0.790476 0.510996 0.337684 -vn -0.566436 0.773715 0.283751 -vn -0.586343 0.801355 0.118456 -vn -0.813126 0.562843 0.148437 -vn -0.905940 0.384539 0.177207 -vn -0.790476 0.510996 0.337684 -vn -0.905940 0.384539 0.177207 -vn -0.859273 0.317420 0.401117 -vn -0.790476 0.510996 0.337684 -vn -0.796705 -0.095826 0.596723 -vn -0.804548 -0.044303 0.592232 -vn -0.791556 -0.097603 0.603252 -vn -0.069238 -0.603543 0.794318 -vn -0.059046 -0.495915 0.866361 -vn -0.028834 -0.044924 0.998574 -vn -0.059046 -0.495915 0.866361 -vn -0.002361 -0.045709 0.998952 -vn -0.028834 -0.044924 0.998574 -vn -0.796705 -0.095826 0.596723 -vn -0.791053 -0.070536 0.607668 -vn -0.804548 -0.044303 0.592232 -vn -0.068959 0.997617 0.002300 -vn -0.084065 0.996201 0.022715 -vn -0.218354 0.974305 0.055235 -vn -0.084065 0.996201 0.022715 -vn -0.252470 0.964683 0.075137 -vn -0.218354 0.974305 0.055235 -vn -0.014728 0.999791 -0.014175 -vn -0.018825 0.999773 -0.010023 -vn -0.068959 0.997617 0.002300 -vn -0.018825 0.999773 -0.010023 -vn -0.084065 0.996201 0.022715 -vn -0.068959 0.997617 0.002300 -vn -0.015249 0.999853 -0.007842 -vn -0.015359 0.999847 -0.008355 -vn -0.014728 0.999791 -0.014175 -vn -0.015359 0.999847 -0.008355 -vn -0.018825 0.999773 -0.010023 -vn -0.014728 0.999791 -0.014175 -vn -0.007721 0.999968 -0.001961 -vn -0.015359 0.999847 -0.008355 -vn -0.007912 0.999965 -0.002547 -vn -0.015359 0.999847 -0.008355 -vn -0.015249 0.999853 -0.007842 -vn -0.007912 0.999965 -0.002547 -vn 0.000000 1.000000 -0.000000 -vn -0.007721 0.999968 -0.001961 -vn -0.000000 1.000000 -0.000005 -vn -0.007721 0.999968 -0.001961 -vn -0.007912 0.999965 -0.002547 -vn -0.000000 1.000000 -0.000005 -vn -0.110017 0.005351 -0.993915 -vn -0.126614 0.038353 -0.991210 -vn -0.111445 0.005659 -0.993755 -vn -0.126614 0.038353 -0.991210 -vn -0.133476 0.042166 -0.990155 -vn -0.111445 0.005659 -0.993755 -vn -0.126614 0.038353 -0.991210 -vn -0.253493 0.077283 -0.964245 -vn -0.133476 0.042166 -0.990155 -vn -0.253493 0.077283 -0.964245 -vn -0.262361 0.077868 -0.961823 -vn -0.133476 0.042166 -0.990155 -vn -0.340643 0.199708 -0.918738 -vn -0.556365 0.235871 -0.796758 -vn -0.306784 0.535384 -0.786923 -vn -0.556365 0.235871 -0.796758 -vn -0.515036 0.508272 -0.690216 -vn -0.306784 0.535384 -0.786923 -vn -0.141907 0.486043 -0.862337 -vn -0.141285 0.197838 -0.969999 -vn -0.306784 0.535384 -0.786923 -vn -0.141285 0.197838 -0.969999 -vn -0.340643 0.199708 -0.918738 -vn -0.306784 0.535384 -0.786923 -vn 0.888112 0.137352 -0.438624 -vn 0.961150 0.056049 -0.270275 -vn 0.946841 -0.010033 -0.321544 -vn 0.956670 -0.001270 0.291171 -vn 0.840437 -0.003126 0.541901 -vn 0.963043 0.024640 0.268217 -vn 0.840437 -0.003126 0.541901 -vn 0.857807 0.003552 0.513960 -vn 0.963043 0.024640 0.268217 -vn 0.621471 -0.025881 0.783010 -vn 0.649274 -0.021358 0.760255 -vn 0.840437 -0.003126 0.541901 -vn 0.649274 -0.021358 0.760255 -vn 0.857807 0.003552 0.513960 -vn 0.840437 -0.003126 0.541901 -vn 0.223132 -0.032589 0.974243 -vn 0.212283 -0.038788 0.976438 -vn 0.000000 -0.039132 0.999234 -vn 0.212283 -0.038788 0.976438 -vn -0.000000 -0.037251 0.999306 -vn 0.000000 -0.039132 0.999234 -vn 0.963043 0.024640 0.268217 -vn 0.996973 0.006708 0.077452 -vn 0.956670 -0.001270 0.291171 -vn 0.996973 0.006708 0.077452 -vn 0.994531 0.006140 0.104260 -vn 0.956670 -0.001270 0.291171 -vn 0.996973 0.006708 0.077452 -vn 0.984573 -0.023021 -0.173451 -vn 0.999371 0.000763 -0.035441 -vn 0.999371 0.000763 -0.035441 -vn 0.994531 0.006140 0.104260 -vn 0.996973 0.006708 0.077452 -vn 0.928473 0.002886 -0.371389 -vn 0.946841 -0.010033 -0.321544 -vn 0.984573 -0.023021 -0.173451 -vn 0.946841 -0.010033 -0.321544 -vn 0.961150 0.056049 -0.270275 -vn 0.984573 -0.023021 -0.173451 -vn 0.961150 0.056049 -0.270275 -vn 0.999371 0.000763 -0.035441 -vn 0.984573 -0.023021 -0.173451 -vn 0.621471 -0.025881 0.783010 -vn 0.405789 -0.043061 0.912952 -vn 0.649274 -0.021358 0.760255 -vn 0.405789 -0.043061 0.912952 -vn 0.427059 -0.024260 0.903898 -vn 0.649274 -0.021358 0.760255 -vn 0.405789 -0.043061 0.912952 -vn 0.212283 -0.038788 0.976438 -vn 0.427059 -0.024260 0.903898 -vn 0.212283 -0.038788 0.976438 -vn 0.223132 -0.032589 0.974243 -vn 0.427059 -0.024260 0.903898 -vn 0.984573 -0.023021 -0.173451 -vn 0.962439 -0.024231 -0.270413 -vn 0.928473 0.002886 -0.371389 -vn 0.202739 -0.978340 -0.041815 -vn 0.050170 -0.995292 -0.082922 -vn 0.023703 -0.999235 -0.031121 -vn -0.601143 0.119267 0.790191 -vn -0.603048 0.121629 0.788378 -vn -0.614054 0.126132 0.779120 -vn -0.614054 0.126132 0.779120 -vn -0.601351 0.120282 0.789879 -vn -0.601143 0.119267 0.790191 -vn -0.601143 0.119267 0.790191 -vn -0.601351 0.120282 0.789879 -vn -0.597652 0.112916 0.793764 -vn -0.603048 0.121629 0.788378 -vn -0.599764 0.125022 0.790350 -vn -0.614054 0.126132 0.779120 -vn -0.599764 0.125022 0.790350 -vn -0.635852 0.133040 0.760258 -vn -0.614054 0.126132 0.779120 -vn -0.635852 0.133040 0.760258 -vn -0.687777 0.151464 0.709945 -vn -0.614054 0.126132 0.779120 -vn -0.597652 0.112916 0.793764 -vn -0.601351 0.120282 0.789879 -vn -0.572387 0.153981 0.805396 -vn -0.572387 0.153981 0.805396 -vn -0.601351 0.120282 0.789879 -vn -0.594374 0.153736 0.789357 -vn -0.601351 0.120282 0.789879 -vn -0.668633 0.073281 0.739973 -vn -0.594374 0.153736 0.789357 -vn -0.093377 0.001257 -0.995630 -vn -0.110017 0.005351 -0.993915 -vn -0.094757 0.001026 -0.995500 -vn -0.110017 0.005351 -0.993915 -vn -0.111445 0.005659 -0.993755 -vn -0.094757 0.001026 -0.995500 -vn -0.731349 0.176702 0.658715 -vn -0.997539 -0.014146 0.068676 -vn -0.998468 0.034872 0.042952 -vn -0.997539 -0.014146 0.068676 -vn -0.998297 0.019801 0.054872 -vn -0.998468 0.034872 0.042952 -vn 0.757937 0.083145 -0.647008 -vn 0.812212 0.128738 -0.568980 -vn 0.888112 0.137352 -0.438624 -vn 0.812212 0.128738 -0.568980 -vn 0.961150 0.056049 -0.270275 -vn 0.888112 0.137352 -0.438624 -vn 0.743623 0.126560 -0.656511 -vn 0.812212 0.128738 -0.568980 -vn 0.757937 0.083145 -0.647008 -vn 0.743623 0.126560 -0.656511 -vn 0.757937 0.083145 -0.647008 -vn 0.728687 0.061348 -0.682093 -vn 0.765253 0.041319 -0.642403 -vn 0.728687 0.061348 -0.682093 -vn 0.793371 0.048012 -0.606842 -vn 0.728687 0.061348 -0.682093 -vn 0.757937 0.083145 -0.647008 -vn 0.793371 0.048012 -0.606842 -vn 0.793371 0.048012 -0.606842 -vn 0.928473 0.002886 -0.371389 -vn 0.765253 0.041319 -0.642403 -vn -0.784323 -0.020364 0.620019 -vn -0.804548 -0.044303 0.592232 -vn -0.643794 0.051604 0.763457 -vn -0.643794 0.051604 0.763457 -vn -0.804548 -0.044303 0.592232 -vn -0.833627 -0.033590 0.551305 -vn -0.887379 0.408080 0.214547 -vn -0.665715 0.458373 0.588828 -vn -0.910702 0.410936 -0.041879 -vn -0.910702 0.410936 -0.041879 -vn -0.910865 0.382102 -0.155957 -vn -0.775796 0.611274 -0.156478 -vn -0.910865 0.382102 -0.155957 -vn -0.910702 0.410936 -0.041879 -vn -0.865780 0.298022 0.402004 -vn -0.926853 0.296065 0.230845 -vn -0.849402 0.514429 0.117811 -vn -0.817308 0.373606 0.438665 -vn -0.807536 0.080137 0.584349 -vn -0.849402 0.514429 0.117811 -vn -0.926853 0.296065 0.230845 -vn 0.996773 -0.018467 0.078112 -vn 0.963650 -0.052073 0.262043 -vn 0.996358 -0.022534 0.082241 -vn 0.963650 -0.052073 0.262043 -vn 0.962906 -0.051413 0.264895 -vn 0.996358 -0.022534 0.082241 -vn 0.999792 0.019275 -0.006705 -vn 0.996773 -0.018467 0.078112 -vn 0.999913 0.012170 -0.005074 -vn 0.996773 -0.018467 0.078112 -vn 0.996358 -0.022534 0.082241 -vn 0.999913 0.012170 -0.005074 -vn 0.252664 -0.057093 0.965868 -vn 0.000000 -0.036099 0.999348 -vn 0.251793 -0.044009 0.966780 -vn 0.000000 -0.036099 0.999348 -vn -0.000000 -0.022294 0.999751 -vn 0.251793 -0.044009 0.966780 -vn 0.493589 -0.076185 0.866352 -vn 0.252664 -0.057093 0.965868 -vn 0.494095 -0.060695 0.867287 -vn 0.252664 -0.057093 0.965868 -vn 0.251793 -0.044009 0.966780 -vn 0.494095 -0.060695 0.867287 -vn 0.689423 -0.095290 0.718063 -vn 0.493589 -0.076185 0.866352 -vn 0.690337 -0.077073 0.719371 -vn 0.493589 -0.076185 0.866352 -vn 0.494095 -0.060695 0.867287 -vn 0.690337 -0.077073 0.719371 -vn 0.861733 -0.089612 0.499385 -vn 0.689423 -0.095290 0.718063 -vn 0.862233 -0.079902 0.500170 -vn 0.689423 -0.095290 0.718063 -vn 0.690337 -0.077073 0.719371 -vn 0.862233 -0.079902 0.500170 -vn 0.963650 -0.052073 0.262043 -vn 0.861733 -0.089612 0.499385 -vn 0.962906 -0.051413 0.264895 -vn 0.861733 -0.089612 0.499385 -vn 0.862233 -0.079902 0.500170 -vn 0.962906 -0.051413 0.264895 -vn 0.508924 -0.173879 0.843067 -vn 0.530011 -0.161213 0.832525 -vn 0.580600 -0.129349 0.803849 -vn 0.530011 -0.161213 0.832525 -vn 0.606607 -0.112074 0.787063 -vn 0.580600 -0.129349 0.803849 -vn 0.420642 -0.894155 -0.153453 -vn 0.445537 -0.885349 -0.132870 -vn 0.423196 -0.892876 -0.153873 -vn 0.445537 -0.885349 -0.132870 -vn 0.445045 -0.885607 -0.132797 -vn 0.423196 -0.892876 -0.153873 -vn 0.443902 -0.894515 -0.052850 -vn 0.444520 -0.893994 -0.056369 -vn 0.445537 -0.885349 -0.132870 -vn 0.444520 -0.893994 -0.056369 -vn 0.445045 -0.885607 -0.132797 -vn 0.445537 -0.885349 -0.132870 -vn 0.382942 -0.923043 0.036704 -vn 0.390221 -0.920247 0.029540 -vn 0.443902 -0.894515 -0.052850 -vn 0.390221 -0.920247 0.029540 -vn 0.444520 -0.893994 -0.056369 -vn 0.443902 -0.894515 -0.052850 -vn 0.308278 -0.943585 0.120883 -vn 0.309267 -0.942490 0.126753 -vn 0.382942 -0.923043 0.036704 -vn 0.309267 -0.942490 0.126753 -vn 0.390221 -0.920247 0.029540 -vn 0.382942 -0.923043 0.036704 -vn 0.308278 -0.943585 0.120883 -vn 0.240249 -0.947922 0.209103 -vn 0.309267 -0.942490 0.126753 -vn 0.240249 -0.947922 0.209103 -vn 0.245596 -0.944213 0.219420 -vn 0.309267 -0.942490 0.126753 -vn 0.143501 -0.937524 0.316949 -vn 0.245596 -0.944213 0.219420 -vn 0.139149 -0.943161 0.301804 -vn 0.245596 -0.944213 0.219420 -vn 0.240249 -0.947922 0.209103 -vn 0.139149 -0.943161 0.301804 -vn 0.139149 -0.943161 0.301804 -vn 0.000000 -0.924899 0.380214 -vn 0.143501 -0.937524 0.316949 -vn 0.000000 -0.924899 0.380214 -vn 0.000000 -0.917956 0.396682 -vn 0.143501 -0.937524 0.316949 -vn 0.928473 0.002886 -0.371389 -vn 0.793371 0.048012 -0.606842 -vn 0.946841 -0.010033 -0.321544 -vn 0.207643 0.930056 -0.303118 -vn 0.208097 0.929860 -0.303408 -vn 0.218086 0.925466 -0.309759 -vn 0.208097 0.929860 -0.303408 -vn 0.218979 0.925066 -0.310326 -vn 0.218086 0.925466 -0.309759 -vn 0.854784 0.009411 -0.518898 -vn 0.854781 0.009420 -0.518903 -vn 0.854783 0.009414 -0.518900 -vn 0.854781 0.009420 -0.518903 -vn 0.854780 0.009423 -0.518904 -vn 0.854783 0.009414 -0.518900 -vn 0.391140 -0.918370 -0.060048 -vn 0.391137 -0.918371 -0.060046 -vn 0.391102 -0.918388 -0.060026 -vn 0.391137 -0.918371 -0.060046 -vn 0.391100 -0.918389 -0.060025 -vn 0.391102 -0.918388 -0.060026 -vn -0.157284 -0.147242 -0.976515 -vn -0.157284 -0.147242 -0.976515 -vn -0.157283 -0.147243 -0.976515 -vn -0.157284 -0.147242 -0.976515 -vn -0.157282 -0.147243 -0.976515 -vn -0.157283 -0.147243 -0.976515 -vn 0.791236 0.154415 0.591693 -vn 0.791187 0.154399 0.591763 -vn 0.790899 0.154309 0.592172 -vn 0.791187 0.154399 0.591763 -vn 0.790837 0.154289 0.592260 -vn 0.790899 0.154309 0.592172 -vn -0.002040 -0.982183 -0.187914 -vn 0.000000 -0.975856 -0.218413 -vn -0.019019 -0.978509 -0.205324 -vn 0.023703 -0.999235 -0.031121 -vn 0.050170 -0.995292 -0.082922 -vn -0.050170 -0.995292 -0.082922 -vn -0.050170 -0.995292 -0.082922 -vn -0.023703 -0.999235 -0.031121 -vn 0.023703 -0.999235 -0.031121 -vn 0.002040 -0.982183 -0.187914 -vn -0.002040 -0.982183 -0.187914 -vn 0.050170 -0.995292 -0.082922 -vn -0.002040 -0.982183 -0.187914 -vn -0.050170 -0.995292 -0.082922 -vn 0.050170 -0.995292 -0.082922 -vn 0.019019 -0.978509 -0.205324 -vn 0.015799 -0.977740 -0.209227 -vn 0.000000 -0.975856 -0.218413 -vn 0.002040 -0.982183 -0.187914 -vn 0.000000 -0.975856 -0.218413 -vn -0.002040 -0.982183 -0.187914 -vn -0.019019 -0.978509 -0.205324 -vn -0.015799 -0.977740 -0.209227 -vn -0.067791 -0.985150 -0.157747 -vn -0.019019 -0.978509 -0.205324 -vn 0.000000 -0.975856 -0.218413 -vn -0.015799 -0.977740 -0.209227 -vn -0.067791 -0.985150 -0.157747 -vn -0.015773 -0.974169 -0.225268 -vn 0.012040 -0.967510 -0.252545 -vn -0.067791 -0.985150 -0.157747 -vn -0.015799 -0.977740 -0.209227 -vn -0.015773 -0.974169 -0.225268 -vn 0.019019 -0.978509 -0.205324 -vn 0.000000 -0.975856 -0.218413 -vn 0.002040 -0.982183 -0.187914 -vn 0.067791 -0.985150 -0.157747 -vn 0.015773 -0.974169 -0.225268 -vn 0.015799 -0.977740 -0.209227 -vn 0.067791 -0.985150 -0.157747 -vn 0.015799 -0.977740 -0.209227 -vn 0.019019 -0.978509 -0.205324 -vn -0.012040 -0.967510 -0.252545 -vn 0.015773 -0.974169 -0.225268 -vn 0.067791 -0.985150 -0.157747 -vn 0.697758 0.640804 0.320162 -vn 0.377613 0.848927 0.369770 -vn 0.668696 0.574599 0.471891 -vn 0.668696 0.574599 0.471891 -vn 0.377613 0.848927 0.369770 -vn 0.362004 0.774468 0.518799 -vn 0.000000 0.921893 0.387443 -vn -0.377616 0.848928 0.369767 -vn -0.000000 0.843980 0.536375 -vn -0.000000 0.843980 0.536375 -vn -0.377616 0.848928 0.369767 -vn -0.362004 0.774468 0.518799 -vn -0.697759 0.640807 0.320155 -vn -0.911691 0.329542 0.245403 -vn -0.668696 0.574599 0.471891 -vn -0.668696 0.574599 0.471891 -vn -0.911691 0.329542 0.245403 -vn -0.873986 0.276575 0.399567 -vn -0.986768 -0.037754 0.157680 -vn -0.911686 -0.404959 0.069542 -vn -0.945676 -0.075697 0.316176 -vn -0.945676 -0.075697 0.316176 -vn -0.911686 -0.404959 0.069542 -vn -0.873983 -0.427558 0.230973 -vn -0.697752 -0.716323 -0.004794 -vn -0.377636 -0.924330 -0.054816 -vn -0.668690 -0.726020 0.160464 -vn -0.668690 -0.726020 0.160464 -vn -0.377636 -0.924330 -0.054816 -vn -0.362020 -0.925447 0.111757 -vn -0.000000 -0.997398 -0.072093 -vn 0.377636 -0.924330 -0.054816 -vn 0.000000 -0.995385 0.095966 -vn 0.000000 -0.995385 0.095966 -vn 0.377636 -0.924330 -0.054816 -vn 0.362020 -0.925447 0.111757 -vn 0.697752 -0.716323 -0.004794 -vn 0.911686 -0.404959 0.069542 -vn 0.668690 -0.726020 0.160464 -vn 0.668690 -0.726020 0.160464 -vn 0.911686 -0.404959 0.069542 -vn 0.873983 -0.427558 0.230973 -vn 0.986768 -0.037754 0.157680 -vn 0.911691 0.329538 0.245406 -vn 0.945676 -0.075697 0.316176 -vn 0.945676 -0.075697 0.316176 -vn 0.911691 0.329538 0.245406 -vn 0.873986 0.276575 0.399567 -vn 0.000000 0.921893 0.387443 -vn 0.377613 0.848927 0.369770 -vn 0.000000 0.972184 0.234219 -vn 0.000000 0.972184 0.234219 -vn 0.377613 0.848927 0.369770 -vn 0.382689 0.898156 0.216482 -vn -0.697759 0.640807 0.320155 -vn -0.377616 0.848928 0.369767 -vn -0.707113 0.687335 0.166016 -vn -0.707113 0.687335 0.166016 -vn -0.377616 0.848928 0.369767 -vn -0.382694 0.898152 0.216489 -vn -0.986768 -0.037754 0.157680 -vn -0.911691 0.329542 0.245403 -vn -0.999999 -0.000329 0.001369 -vn -0.999999 -0.000329 0.001369 -vn -0.911691 0.329542 0.245403 -vn -0.923879 0.371836 0.090475 -vn -0.697752 -0.716323 -0.004794 -vn -0.911686 -0.404959 0.069542 -vn -0.707102 -0.688000 -0.163286 -vn -0.707102 -0.688000 -0.163286 -vn -0.911686 -0.404959 0.069542 -vn -0.923879 -0.372490 -0.087743 -vn -0.000000 -0.997398 -0.072093 -vn -0.377636 -0.924330 -0.054816 -vn 0.000000 -0.972838 -0.231488 -vn 0.000000 -0.972838 -0.231488 -vn -0.377636 -0.924330 -0.054816 -vn -0.382697 -0.898803 -0.213765 -vn 0.697752 -0.716323 -0.004794 -vn 0.377636 -0.924330 -0.054816 -vn 0.707102 -0.688000 -0.163286 -vn 0.707102 -0.688000 -0.163286 -vn 0.377636 -0.924330 -0.054816 -vn 0.382697 -0.898803 -0.213765 -vn 0.986768 -0.037754 0.157680 -vn 0.911686 -0.404959 0.069542 -vn 0.999999 -0.000329 0.001369 -vn 0.999999 -0.000329 0.001369 -vn 0.911686 -0.404959 0.069542 -vn 0.923879 -0.372490 -0.087743 -vn 0.707113 0.687339 0.166001 -vn 0.697758 0.640804 0.320162 -vn 0.923881 0.371832 0.090466 -vn 0.923881 0.371832 0.090466 -vn 0.697758 0.640804 0.320162 -vn 0.911691 0.329538 0.245406 -vn 0.707113 0.687339 0.166001 -vn 0.382689 0.898156 0.216482 -vn 0.697758 0.640804 0.320162 -vn 0.697758 0.640804 0.320162 -vn 0.382689 0.898156 0.216482 -vn 0.377613 0.848927 0.369770 -vn 0.000000 0.921893 0.387443 -vn 0.000000 0.972184 0.234219 -vn -0.377616 0.848928 0.369767 -vn -0.377616 0.848928 0.369767 -vn 0.000000 0.972184 0.234219 -vn -0.382694 0.898152 0.216489 -vn -0.697759 0.640807 0.320155 -vn -0.707113 0.687335 0.166016 -vn -0.911691 0.329542 0.245403 -vn -0.911691 0.329542 0.245403 -vn -0.707113 0.687335 0.166016 -vn -0.923879 0.371836 0.090475 -vn -0.986768 -0.037754 0.157680 -vn -0.999999 -0.000329 0.001369 -vn -0.911686 -0.404959 0.069542 -vn -0.911686 -0.404959 0.069542 -vn -0.999999 -0.000329 0.001369 -vn -0.923879 -0.372490 -0.087743 -vn 0.697752 -0.716323 -0.004794 -vn 0.707102 -0.688000 -0.163286 -vn 0.911686 -0.404959 0.069542 -vn 0.911686 -0.404959 0.069542 -vn 0.707102 -0.688000 -0.163286 -vn 0.923879 -0.372490 -0.087743 -vn 0.986768 -0.037754 0.157680 -vn 0.999999 -0.000329 0.001369 -vn 0.911691 0.329538 0.245406 -vn 0.911691 0.329538 0.245406 -vn 0.999999 -0.000329 0.001369 -vn 0.923881 0.371832 0.090466 -vn 0.873986 0.276575 0.399567 -vn 0.911691 0.329538 0.245406 -vn 0.668696 0.574599 0.471891 -vn 0.668696 0.574599 0.471891 -vn 0.911691 0.329538 0.245406 -vn 0.697758 0.640804 0.320162 -vn 0.986768 -0.037754 0.157680 -vn 0.945676 -0.075697 0.316176 -vn 0.911686 -0.404959 0.069542 -vn 0.911686 -0.404959 0.069542 -vn 0.945676 -0.075697 0.316176 -vn 0.873983 -0.427558 0.230973 -vn 0.697752 -0.716323 -0.004794 -vn 0.668690 -0.726020 0.160464 -vn 0.377636 -0.924330 -0.054816 -vn 0.377636 -0.924330 -0.054816 -vn 0.668690 -0.726020 0.160464 -vn 0.362020 -0.925447 0.111757 -vn -0.000000 -0.997398 -0.072093 -vn 0.000000 -0.995385 0.095966 -vn -0.377636 -0.924330 -0.054816 -vn -0.377636 -0.924330 -0.054816 -vn 0.000000 -0.995385 0.095966 -vn -0.362020 -0.925447 0.111757 -vn -0.697752 -0.716323 -0.004794 -vn -0.668690 -0.726020 0.160464 -vn -0.911686 -0.404959 0.069542 -vn -0.911686 -0.404959 0.069542 -vn -0.668690 -0.726020 0.160464 -vn -0.873983 -0.427558 0.230973 -vn -0.986768 -0.037754 0.157680 -vn -0.945676 -0.075697 0.316176 -vn -0.911691 0.329542 0.245403 -vn -0.911691 0.329542 0.245403 -vn -0.945676 -0.075697 0.316176 -vn -0.873986 0.276575 0.399567 -vn -0.697759 0.640807 0.320155 -vn -0.668696 0.574599 0.471891 -vn -0.377616 0.848928 0.369767 -vn -0.377616 0.848928 0.369767 -vn -0.668696 0.574599 0.471891 -vn -0.362004 0.774468 0.518799 -vn 0.000000 0.921893 0.387443 -vn -0.000000 0.843980 0.536375 -vn 0.377613 0.848927 0.369770 -vn 0.377613 0.848927 0.369770 -vn -0.000000 0.843980 0.536375 -vn 0.362004 0.774468 0.518799 -vn 0.000000 -0.277783 0.960644 -vn 0.000000 -0.277750 0.960654 -vn -0.017785 -0.274350 0.961465 -vn -0.017785 -0.274350 0.961465 -vn 0.000000 -0.277750 0.960654 -vn -0.017790 -0.274330 0.961471 -vn -0.032750 -0.264436 0.963847 -vn -0.017785 -0.274350 0.961465 -vn -0.032751 -0.264436 0.963847 -vn -0.032751 -0.264436 0.963847 -vn -0.017785 -0.274350 0.961465 -vn -0.017790 -0.274330 0.961471 -vn 0.032750 -0.264436 0.963847 -vn 0.032751 -0.264436 0.963847 -vn 0.017785 -0.274350 0.961465 -vn 0.017785 -0.274350 0.961465 -vn 0.032751 -0.264436 0.963847 -vn 0.017790 -0.274330 0.961471 -vn 0.000000 -0.277783 0.960644 -vn 0.017785 -0.274350 0.961465 -vn 0.000000 -0.277750 0.960654 -vn 0.000000 -0.277750 0.960654 -vn 0.017785 -0.274350 0.961465 -vn 0.017790 -0.274330 0.961471 -vn 0.046351 -0.232601 0.971467 -vn 0.046347 -0.232603 0.971467 -vn 0.042918 -0.249889 0.967323 -vn 0.042918 -0.249889 0.967323 -vn 0.046347 -0.232603 0.971467 -vn 0.042909 -0.249890 0.967323 -vn 0.032750 -0.264436 0.963847 -vn 0.042918 -0.249889 0.967323 -vn 0.032751 -0.264436 0.963847 -vn 0.032751 -0.264436 0.963847 -vn 0.042918 -0.249889 0.967323 -vn 0.042909 -0.249890 0.967323 -vn 0.032644 -0.200849 0.979078 -vn 0.032676 -0.200818 0.979083 -vn 0.042938 -0.215297 0.975604 -vn 0.042938 -0.215297 0.975604 -vn 0.032676 -0.200818 0.979083 -vn 0.042958 -0.215274 0.975608 -vn 0.046351 -0.232601 0.971467 -vn 0.042938 -0.215297 0.975604 -vn 0.046347 -0.232603 0.971467 -vn 0.046347 -0.232603 0.971467 -vn 0.042938 -0.215297 0.975604 -vn 0.042958 -0.215274 0.975608 -vn -0.000000 -0.187577 0.982250 -vn -0.000000 -0.187566 0.982252 -vn 0.017785 -0.190857 0.981457 -vn 0.017785 -0.190857 0.981457 -vn -0.000000 -0.187566 0.982252 -vn 0.017807 -0.190835 0.981461 -vn 0.032644 -0.200849 0.979078 -vn 0.017785 -0.190857 0.981457 -vn 0.032676 -0.200818 0.979083 -vn 0.032676 -0.200818 0.979083 -vn 0.017785 -0.190857 0.981457 -vn 0.017807 -0.190835 0.981461 -vn -0.032644 -0.200849 0.979078 -vn -0.032676 -0.200819 0.979083 -vn -0.017785 -0.190857 0.981457 -vn -0.017785 -0.190857 0.981457 -vn -0.032676 -0.200819 0.979083 -vn -0.017807 -0.190835 0.981461 -vn -0.000000 -0.187577 0.982250 -vn -0.017785 -0.190857 0.981457 -vn -0.000000 -0.187566 0.982252 -vn -0.000000 -0.187566 0.982252 -vn -0.017785 -0.190857 0.981457 -vn -0.017807 -0.190835 0.981461 -vn -0.046351 -0.232601 0.971467 -vn -0.046347 -0.232603 0.971467 -vn -0.042938 -0.215297 0.975604 -vn -0.042938 -0.215297 0.975604 -vn -0.046347 -0.232603 0.971467 -vn -0.042958 -0.215274 0.975608 -vn -0.032644 -0.200849 0.979078 -vn -0.042938 -0.215297 0.975604 -vn -0.032676 -0.200819 0.979083 -vn -0.032676 -0.200819 0.979083 -vn -0.042938 -0.215297 0.975604 -vn -0.042958 -0.215274 0.975608 -vn -0.032750 -0.264436 0.963847 -vn -0.032751 -0.264436 0.963847 -vn -0.042918 -0.249889 0.967323 -vn -0.042918 -0.249889 0.967323 -vn -0.032751 -0.264436 0.963847 -vn -0.042909 -0.249890 0.967323 -vn -0.046351 -0.232601 0.971467 -vn -0.042918 -0.249889 0.967323 -vn -0.046347 -0.232603 0.971467 -vn -0.046347 -0.232603 0.971467 -vn -0.042918 -0.249889 0.967323 -vn -0.042909 -0.249890 0.967323 -vn -0.019644 -0.213940 0.976649 -vn -0.000000 -0.233082 0.972457 -vn 0.000000 -0.206033 0.978545 -vn 0.000000 -0.206033 0.978545 -vn -0.000000 -0.233082 0.972457 -vn 0.019644 -0.213940 0.976649 -vn 0.019644 -0.213940 0.976649 -vn -0.000000 -0.233082 0.972457 -vn 0.027733 -0.233031 0.972074 -vn 0.027733 -0.233031 0.972074 -vn -0.000000 -0.233082 0.972457 -vn 0.019590 -0.252093 0.967505 -vn 0.019590 -0.252093 0.967505 -vn -0.000000 -0.233082 0.972457 -vn -0.000000 -0.259970 0.965617 -vn -0.000000 -0.259970 0.965617 -vn -0.000000 -0.233082 0.972457 -vn -0.019590 -0.252093 0.967505 -vn -0.019590 -0.252093 0.967505 -vn -0.000000 -0.233082 0.972457 -vn -0.027733 -0.233031 0.972074 -vn -0.027733 -0.233031 0.972074 -vn -0.000000 -0.233082 0.972457 -vn -0.019644 -0.213940 0.976649 -vn -0.697752 -0.716323 -0.004794 -vn -0.707102 -0.688000 -0.163286 -vn -0.377636 -0.924330 -0.054816 -vn -0.377636 -0.924330 -0.054816 -vn -0.707102 -0.688000 -0.163286 -vn -0.382697 -0.898803 -0.213765 -vn -0.000000 -0.997398 -0.072093 -vn 0.000000 -0.972838 -0.231488 -vn 0.377636 -0.924330 -0.054816 -vn 0.377636 -0.924330 -0.054816 -vn 0.000000 -0.972838 -0.231488 -vn 0.382697 -0.898803 -0.213765 -vn 0.737682 0.632293 0.236708 -vn 0.681840 0.613669 0.398125 -vn 0.738575 0.630131 0.239670 -vn 0.738575 0.630131 0.239670 -vn 0.681840 0.613669 0.398125 -vn 0.665560 0.605372 0.436525 -vn -0.311467 0.906530 0.284940 -vn -0.278363 0.932868 0.228630 -vn -0.312038 0.906994 0.282832 -vn -0.312038 0.906994 0.282832 -vn -0.278363 0.932868 0.228630 -vn -0.266781 0.940996 0.208218 -vn -0.976892 0.210142 0.039026 -vn -0.931751 0.308242 -0.191901 -vn -0.977049 0.209732 0.037243 -vn -0.977049 0.209732 0.037243 -vn -0.931751 0.308242 -0.191901 -vn -0.925744 0.314520 -0.209940 -vn -0.739447 -0.632675 -0.230087 -vn -0.740368 -0.630416 -0.233303 -vn -0.682404 -0.614001 -0.396646 -vn -0.682404 -0.614001 -0.396646 -vn -0.740368 -0.630416 -0.233303 -vn -0.665230 -0.605254 -0.437192 -vn 0.312372 -0.905730 -0.286490 -vn 0.312955 -0.906184 -0.284411 -vn 0.279566 -0.932034 -0.230553 -vn 0.279566 -0.932034 -0.230553 -vn 0.312955 -0.906184 -0.284411 -vn 0.268192 -0.940088 -0.210496 -vn 0.975975 -0.216438 -0.025065 -vn 0.976107 -0.216022 -0.023446 -vn 0.930418 -0.309743 0.195913 -vn 0.930418 -0.309743 0.195913 -vn 0.976107 -0.216022 -0.023446 -vn 0.924760 -0.315558 0.212701 -vn 0.924760 -0.315558 0.212701 -vn 0.820657 -0.389489 0.418114 -vn 0.930418 -0.309743 0.195913 -vn 0.930418 -0.309743 0.195913 -vn 0.820657 -0.389489 0.418114 -vn 0.820373 -0.389920 0.418272 -vn 0.268192 -0.940088 -0.210496 -vn 0.234742 -0.959072 -0.158355 -vn 0.279566 -0.932034 -0.230553 -vn 0.279566 -0.932034 -0.230553 -vn 0.234742 -0.959072 -0.158355 -vn 0.234311 -0.959193 -0.158266 -vn -0.665230 -0.605254 -0.437192 -vn -0.583961 -0.567471 -0.580488 -vn -0.682404 -0.614001 -0.396646 -vn -0.682404 -0.614001 -0.396646 -vn -0.583961 -0.567471 -0.580488 -vn -0.583078 -0.567833 -0.581021 -vn -0.925744 0.314520 -0.209940 -vn -0.931751 0.308242 -0.191901 -vn -0.816619 0.391452 -0.424144 -vn -0.816619 0.391452 -0.424144 -vn -0.931751 0.308242 -0.191901 -vn -0.816318 0.391895 -0.424316 -vn -0.266781 0.940996 0.208218 -vn -0.278363 0.932868 0.228630 -vn -0.233075 0.959900 0.155782 -vn -0.233075 0.959900 0.155782 -vn -0.278363 0.932868 0.228630 -vn -0.232585 0.960036 0.155678 -vn 0.665560 0.605372 0.436525 -vn 0.681840 0.613669 0.398125 -vn 0.586860 0.568918 0.576132 -vn 0.586860 0.568918 0.576132 -vn 0.681840 0.613669 0.398125 -vn 0.586054 0.569260 0.576614 -vn 0.730109 0.631128 0.261950 -vn 0.674042 0.612076 0.413559 -vn 0.730870 0.629198 0.264459 -vn 0.730870 0.629198 0.264459 -vn 0.674042 0.612076 0.413559 -vn 0.658902 0.604471 0.447731 -vn -0.309867 0.910080 0.275204 -vn -0.277606 0.934791 0.221588 -vn -0.310374 0.910441 0.273431 -vn -0.310374 0.910441 0.273431 -vn -0.277606 0.934791 0.221588 -vn -0.267058 0.941974 0.203383 -vn -0.975179 0.221311 0.006884 -vn -0.925862 0.312979 -0.211715 -vn -0.975276 0.220926 0.005394 -vn -0.975276 0.220926 0.005394 -vn -0.925862 0.312979 -0.211715 -vn -0.920190 0.318481 -0.227641 -vn -0.731779 -0.631473 -0.256403 -vn -0.732555 -0.629471 -0.259094 -vn -0.674460 -0.612301 -0.412543 -vn -0.674460 -0.612301 -0.412543 -vn -0.732555 -0.629471 -0.259094 -vn -0.658586 -0.604310 -0.448412 -vn 0.310648 -0.909417 -0.276512 -vn 0.311165 -0.909772 -0.274755 -vn 0.278716 -0.934049 -0.223315 -vn 0.278716 -0.934049 -0.223315 -vn 0.311165 -0.909772 -0.274755 -vn 0.268348 -0.941166 -0.205417 -vn 0.973944 -0.226729 0.005129 -vn 0.974028 -0.226334 0.006528 -vn 0.924735 -0.314179 0.214839 -vn 0.924735 -0.314179 0.214839 -vn 0.974028 -0.226334 0.006528 -vn 0.919377 -0.319305 0.229760 -vn 0.919377 -0.319305 0.229760 -vn 0.817616 -0.389044 0.424440 -vn 0.924735 -0.314179 0.214839 -vn 0.924735 -0.314179 0.214839 -vn 0.817616 -0.389044 0.424440 -vn 0.817361 -0.389419 0.424586 -vn 0.268348 -0.941166 -0.205417 -vn 0.235758 -0.959292 -0.155492 -vn 0.278716 -0.934049 -0.223315 -vn 0.278716 -0.934049 -0.223315 -vn 0.235758 -0.959292 -0.155492 -vn 0.235318 -0.959416 -0.155393 -vn -0.658586 -0.604310 -0.448412 -vn -0.579992 -0.568280 -0.583667 -vn -0.674460 -0.612301 -0.412543 -vn -0.674460 -0.612301 -0.412543 -vn -0.579992 -0.568280 -0.583667 -vn -0.579111 -0.568623 -0.584208 -vn -0.920190 0.318481 -0.227641 -vn -0.925862 0.312979 -0.211715 -vn -0.813745 0.390880 -0.430154 -vn -0.813745 0.390880 -0.430154 -vn -0.925862 0.312979 -0.211715 -vn -0.813468 0.391275 -0.430318 -vn -0.267058 0.941974 0.203383 -vn -0.277606 0.934791 0.221588 -vn -0.234166 0.960067 0.153092 -vn -0.234166 0.960067 0.153092 -vn -0.277606 0.934791 0.221588 -vn -0.233661 0.960209 0.152976 -vn 0.658902 0.604471 0.447731 -vn 0.674042 0.612076 0.413559 -vn 0.582696 0.569623 0.579651 -vn 0.582696 0.569623 0.579651 -vn 0.674042 0.612076 0.413559 -vn 0.581938 0.569929 0.580111 -vn 0.999999 -0.000024 -0.001367 -vn 0.999999 0.000110 -0.001589 -vn 0.999999 0.000312 -0.001607 -vn 0.999999 0.000312 -0.001607 -vn 0.999999 0.000110 -0.001589 -vn 0.999999 0.000042 -0.001067 -vn -0.000428 -0.310851 0.950458 -vn -0.013543 -0.308905 0.950997 -vn -0.000211 -0.310413 0.950602 -vn -0.000211 -0.310413 0.950602 -vn -0.013543 -0.308905 0.950997 -vn -0.001386 -0.309078 0.951036 -vn -0.001386 -0.309078 0.951036 -vn -0.013543 -0.308905 0.950997 -vn -0.022512 -0.308285 0.951028 -vn -0.999999 0.001490 -0.000526 -vn -0.999996 0.000606 0.002709 -vn -0.999999 0.001133 0.000814 -vn 0.979622 0.191624 0.060169 -vn 0.973898 0.217328 0.065502 -vn 0.979285 0.193237 0.060504 -vn 0.979285 0.193237 0.060504 -vn 0.973898 0.217328 0.065502 -vn 0.973553 0.218779 0.065802 -vn 1.000000 -0.000004 -0.000861 -vn 1.000000 0.000071 -0.001001 -vn 0.999999 0.000042 -0.001067 -vn 0.999999 0.000042 -0.001067 -vn 1.000000 0.000071 -0.001001 -vn 0.999999 0.000312 -0.001607 -vn -0.013543 -0.308905 0.950997 -vn -0.022202 -0.232051 0.972450 -vn -0.022512 -0.308285 0.951028 -vn -0.022512 -0.308285 0.951028 -vn -0.022202 -0.232051 0.972450 -vn -0.041394 -0.269769 0.962035 -vn -1.000000 0.000415 0.000131 -vn -0.999997 0.001624 -0.001522 -vn -1.000000 0.000666 -0.000237 -vn -1.000000 0.000666 -0.000237 -vn -0.999997 0.001624 -0.001522 -vn -0.999997 0.001815 -0.001774 -vn 0.016620 0.948094 0.317555 -vn -0.007601 0.955684 0.294297 -vn 0.005416 0.940885 0.338683 -vn 0.005416 0.940885 0.338683 -vn -0.007601 0.955684 0.294297 -vn -0.016858 0.956666 0.290698 -vn -0.041394 -0.269769 0.962035 -vn -0.022202 -0.232051 0.972450 -vn 0.000025 -0.048301 0.998833 -vn 0.000025 -0.048301 0.998833 -vn -0.022202 -0.232051 0.972450 -vn -0.000058 -0.045863 0.998948 -vn 0.000023 0.953980 0.299870 -vn 0.000003 0.953963 0.299924 -vn 0.000018 0.953975 0.299885 -vn 0.000018 0.953975 0.299885 -vn 0.000003 0.953963 0.299924 -vn -0.000002 0.953958 0.299940 -vn 1.000000 0.000071 -0.001001 -vn 0.999996 0.000825 -0.002665 -vn 0.999999 0.000312 -0.001607 -vn -0.998986 -0.013491 0.042948 -vn -0.998667 -0.016054 0.049061 -vn -0.998969 -0.013636 0.043294 -vn -0.998969 -0.013636 0.043294 -vn -0.998667 -0.016054 0.049061 -vn -0.998646 -0.016207 0.049426 -vn 0.000000 -0.965024 -0.262163 -vn -0.000187 -0.964080 -0.265612 -vn -0.000006 -0.964991 -0.262283 -vn -0.000006 -0.964991 -0.262283 -vn -0.000187 -0.964080 -0.265612 -vn -0.000193 -0.964048 -0.265727 -vn 0.000000 -0.299947 0.953956 -vn 0.000000 -0.299947 0.953956 -vn 0.000000 -0.299947 0.953956 -vn 0.000000 -0.299947 0.953956 -vn 0.000000 -0.299947 0.953956 -vn 0.000000 -0.299947 0.953956 -vn 0.016620 0.948094 0.317555 -vn 0.005416 0.940885 0.338683 -vn -0.000131 0.932658 0.360761 -vn -0.000131 0.932658 0.360761 -vn 0.005416 0.940885 0.338683 -vn -0.000135 0.932688 0.360683 -vn 0.000000 0.810325 0.585980 -vn 0.000015 0.810283 0.586039 -vn 0.000101 0.810034 0.586382 -vn 0.000101 0.810034 0.586382 -vn 0.000015 0.810283 0.586039 -vn 0.000116 0.809992 0.586441 -vn 0.000000 -0.299936 0.953959 -vn 0.000000 -0.299936 0.953959 -vn 0.000000 -0.299936 0.953959 -vn 0.000000 -0.299936 0.953959 -vn 0.000000 -0.299936 0.953959 -vn 0.000000 -0.299936 0.953959 -vn 0.000267 -0.997944 0.064095 -vn 0.000039 -0.998007 0.063111 -vn 0.000229 -0.997954 0.063928 -vn 0.000229 -0.997954 0.063928 -vn 0.000039 -0.998007 0.063111 -vn 0.000000 -0.998017 0.062945 -vn -0.999996 0.000034 0.002962 -vn -0.999999 0.001133 0.000814 -vn -0.999995 0.000190 0.003234 -vn -0.999995 0.000190 0.003234 -vn -0.999999 0.001133 0.000814 -vn -0.999996 0.000606 0.002709 -vn 1.000000 -0.000285 -0.000940 -vn 0.999999 -0.000024 -0.001367 -vn 1.000000 -0.000308 -0.000684 -vn 1.000000 -0.000308 -0.000684 -vn 0.999999 -0.000024 -0.001367 -vn 1.000000 -0.000243 -0.000572 -vn 0.000053 -0.954216 -0.299120 -vn -0.000468 -0.953831 -0.300343 -vn -0.000135 -0.954094 -0.299507 -vn -0.000135 -0.954094 -0.299507 -vn -0.000468 -0.953831 -0.300343 -vn -0.000646 -0.953846 -0.300294 -vn -0.003087 0.953735 0.300634 -vn 0.000450 0.954940 0.296798 -vn -0.002318 0.954233 0.299054 -vn -0.002318 0.954233 0.299054 -vn 0.000450 0.954940 0.296798 -vn 0.000629 0.955233 0.295854 -vn 0.003057 0.954558 0.298009 -vn 0.002713 0.954781 0.297297 -vn 0.000450 0.954940 0.296798 -vn 0.000450 0.954940 0.296798 -vn 0.002713 0.954781 0.297297 -vn 0.000629 0.955233 0.295854 -vn 0.923843 -0.114166 0.365350 -vn 0.923710 -0.114285 0.365647 -vn 0.921004 -0.116698 0.371662 -vn 0.921004 -0.116698 0.371662 -vn 0.923710 -0.114285 0.365647 -vn 0.920870 -0.116816 0.371957 -vn 0.000091 -0.300271 0.953854 -vn 0.318065 -0.284513 0.904371 -vn 0.000798 -0.300107 0.953905 -vn 0.000798 -0.300107 0.953905 -vn 0.318065 -0.284513 0.904371 -vn 0.319183 -0.284229 0.904066 -vn -0.318216 -0.284823 0.904220 -vn 0.000091 -0.300271 0.953854 -vn -0.317308 -0.284775 0.904555 -vn -0.317308 -0.284775 0.904555 -vn 0.000091 -0.300271 0.953854 -vn 0.000798 -0.300107 0.953905 -vn -0.924369 -0.114759 0.363831 -vn -0.921680 -0.117164 0.369835 -vn -0.924243 -0.114872 0.364114 -vn -0.924243 -0.114872 0.364114 -vn -0.921680 -0.117164 0.369835 -vn -0.921553 -0.117277 0.370116 -vn -0.000033 -0.953359 -0.301839 -vn -0.000278 -0.953520 -0.301330 -vn -0.000468 -0.953831 -0.300343 -vn -0.000468 -0.953831 -0.300343 -vn -0.000278 -0.953520 -0.301330 -vn -0.000646 -0.953846 -0.300294 -vn -0.001640 -0.954772 -0.297335 -vn -0.000298 -0.954188 -0.299209 -vn 0.000335 -0.953740 -0.300633 -vn 0.000335 -0.953740 -0.300633 -vn -0.000298 -0.954188 -0.299209 -vn 0.000000 -0.953686 -0.300805 -vn -0.000000 0.954554 0.298037 -vn -0.000460 0.954487 0.298254 -vn 0.000313 0.953920 0.300062 -vn 0.000313 0.953920 0.300062 -vn -0.000460 0.954487 0.298254 -vn 0.002027 0.953163 0.302449 -vn -0.000460 0.954487 0.298254 -vn -0.000000 0.954554 0.298037 -vn 0.000638 0.954564 0.298005 -vn -0.000528 -0.953655 -0.300901 -vn 0.000335 -0.953740 -0.300633 -vn 0.000000 -0.953686 -0.300805 -vn -0.000000 0.954554 0.298037 -vn 0.001170 0.954567 0.297993 -vn 0.000638 0.954564 0.298005 -vn 0.000638 0.954564 0.298005 -vn 0.001170 0.954567 0.297993 -vn 0.001423 0.954677 0.297640 -vn 0.691212 -0.216569 0.689437 -vn 0.874794 -0.144989 0.462292 -vn 0.690147 -0.217044 0.690354 -vn 0.690147 -0.217044 0.690354 -vn 0.874794 -0.144989 0.462292 -vn 0.873242 -0.146055 0.464884 -vn 0.691212 -0.216569 0.689437 -vn 0.690147 -0.217044 0.690354 -vn 0.228632 -0.292125 0.928650 -vn 0.228632 -0.292125 0.928650 -vn 0.690147 -0.217044 0.690354 -vn 0.228653 -0.292173 0.928630 -vn -0.228291 -0.292369 0.928657 -vn 0.228632 -0.292125 0.928650 -vn -0.228138 -0.292322 0.928709 -vn -0.228138 -0.292322 0.928709 -vn 0.228632 -0.292125 0.928650 -vn 0.228653 -0.292173 0.928630 -vn -0.690365 -0.217540 0.689980 -vn -0.228291 -0.292369 0.928657 -vn -0.691255 -0.217104 0.689226 -vn -0.691255 -0.217104 0.689226 -vn -0.228291 -0.292369 0.928657 -vn -0.228138 -0.292322 0.928709 -vn -0.875485 -0.145283 0.460889 -vn -0.873890 -0.146380 0.463561 -vn -0.691255 -0.217104 0.689226 -vn -0.691255 -0.217104 0.689226 -vn -0.873890 -0.146380 0.463561 -vn -0.690365 -0.217540 0.689980 -vn 0.000000 -0.953686 -0.300805 -vn -0.001312 -0.953480 -0.301453 -vn -0.000528 -0.953655 -0.300901 -vn -0.000528 -0.953655 -0.300901 -vn -0.001312 -0.953480 -0.301453 -vn -0.002079 -0.953140 -0.302522 -vn 0.000960 -0.954369 -0.298627 -vn -0.000226 -0.953559 -0.301207 -vn 0.000812 -0.954153 -0.299318 -vn 0.000812 -0.954153 -0.299318 -vn -0.000226 -0.953559 -0.301207 -vn 0.000234 -0.953479 -0.301460 -vn -0.000921 0.953534 0.301283 -vn 0.000237 0.954506 0.298191 -vn -0.000732 0.953805 0.300426 -vn 0.000237 0.954506 0.298191 -vn -0.000110 0.954609 0.297862 -vn -0.000732 0.953805 0.300426 -vn -0.000110 0.954609 0.297862 -vn 0.000237 0.954506 0.298191 -vn 0.000712 0.954491 0.298238 -vn -0.000808 -0.953593 -0.301096 -vn 0.000234 -0.953479 -0.301460 -vn -0.000226 -0.953559 -0.301207 -vn 0.000879 0.954765 0.297360 -vn 0.000943 0.954675 0.297649 -vn 0.000237 0.954506 0.298191 -vn 0.000237 0.954506 0.298191 -vn 0.000943 0.954675 0.297649 -vn 0.000712 0.954491 0.298238 -vn 0.650392 -0.227638 0.724686 -vn 0.812562 -0.174506 0.556139 -vn 0.649233 -0.228149 0.725565 -vn 0.649233 -0.228149 0.725565 -vn 0.812562 -0.174506 0.556139 -vn 0.810489 -0.175641 0.558800 -vn 0.650392 -0.227638 0.724686 -vn 0.649233 -0.228149 0.725565 -vn 0.231733 -0.291900 0.927952 -vn 0.231733 -0.291900 0.927952 -vn 0.649233 -0.228149 0.725565 -vn 0.231837 -0.291965 0.927905 -vn -0.231379 -0.292175 0.927953 -vn 0.231733 -0.291900 0.927952 -vn -0.231222 -0.292123 0.928009 -vn -0.231222 -0.292123 0.928009 -vn 0.231733 -0.291900 0.927952 -vn 0.231837 -0.291965 0.927905 -vn -0.649442 -0.228653 0.725219 -vn -0.231379 -0.292175 0.927953 -vn -0.650458 -0.228194 0.724453 -vn -0.650458 -0.228194 0.724453 -vn -0.231379 -0.292175 0.927953 -vn -0.231222 -0.292123 0.928009 -vn -0.813432 -0.174813 0.554769 -vn -0.811420 -0.175917 0.557360 -vn -0.650458 -0.228194 0.724453 -vn -0.650458 -0.228194 0.724453 -vn -0.811420 -0.175917 0.557360 -vn -0.649442 -0.228653 0.725219 -vn -0.000942 -0.953189 -0.302373 -vn -0.001026 -0.953315 -0.301977 -vn -0.000226 -0.953559 -0.301207 -vn -0.000226 -0.953559 -0.301207 -vn -0.001026 -0.953315 -0.301977 -vn -0.000808 -0.953593 -0.301096 -vn 0.999999 -0.000024 -0.001367 -vn 1.000000 -0.000285 -0.000940 -vn 0.999999 0.000110 -0.001589 -vn -0.999997 0.001624 -0.001522 -vn -0.999999 0.001490 -0.000526 -vn -0.999997 0.001815 -0.001774 -vn -0.999997 0.001815 -0.001774 -vn -0.999999 0.001490 -0.000526 -vn -0.999999 0.001133 0.000814 -vn -0.000004 -0.953959 -0.299938 -vn -0.000007 -0.953977 -0.299879 -vn -0.000009 -0.953960 -0.299935 -vn -0.000009 -0.953960 -0.299935 -vn -0.000007 -0.953977 -0.299879 -vn 0.000000 -0.953952 -0.299959 -vn 0.851215 -0.157429 0.500649 -vn 0.962086 -0.081807 0.260189 -vn 0.851217 -0.157420 0.500648 -vn 0.851217 -0.157420 0.500648 -vn 0.962086 -0.081807 0.260189 -vn 0.962090 -0.081799 0.260177 -vn -0.358834 -0.279992 0.890417 -vn 0.000000 -0.299969 0.953949 -vn -0.358832 -0.279992 0.890418 -vn -0.358832 -0.279992 0.890418 -vn 0.000000 -0.299969 0.953949 -vn 0.000000 -0.299969 0.953949 -vn -0.669870 -0.222721 0.708286 -vn -0.358834 -0.279992 0.890417 -vn -0.669870 -0.222721 0.708286 -vn -0.669870 -0.222721 0.708286 -vn -0.358834 -0.279992 0.890417 -vn -0.358832 -0.279992 0.890418 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -0.000001 0.953943 0.299987 -vn -0.000002 0.953945 0.299983 -vn -0.000003 0.953942 0.299990 -vn -0.000003 0.953942 0.299990 -vn -0.000002 0.953945 0.299983 -vn 0.000000 0.953952 0.299959 -vn 0.962086 -0.081807 0.260189 -vn 1.000000 0.000000 -0.000000 -vn 0.962090 -0.081799 0.260177 -vn 0.962090 -0.081799 0.260177 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 0.000002 -0.953958 -0.299941 -vn 0.000003 -0.953936 -0.300012 -vn 0.000007 -0.953955 -0.299951 -vn 0.000007 -0.953955 -0.299951 -vn 0.000003 -0.953936 -0.300012 -vn 0.000000 -0.953946 -0.299979 -vn 0.832911 -0.166011 0.527920 -vn 0.957315 -0.086673 0.275747 -vn 0.832923 -0.165972 0.527914 -vn 0.832923 -0.165972 0.527914 -vn 0.957315 -0.086673 0.275747 -vn 0.957336 -0.086634 0.275685 -vn -0.359045 -0.279975 0.890337 -vn 0.000000 -0.299980 0.953945 -vn -0.359046 -0.279977 0.890336 -vn -0.359046 -0.279977 0.890336 -vn 0.000000 -0.299980 0.953945 -vn 0.000000 -0.299980 0.953945 -vn -0.670204 -0.222630 0.707999 -vn -0.359045 -0.279975 0.890337 -vn -0.670207 -0.222633 0.707995 -vn -0.670207 -0.222633 0.707995 -vn -0.359045 -0.279975 0.890337 -vn -0.359046 -0.279977 0.890336 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn 0.000000 0.953940 0.299998 -vn 0.000001 0.953941 0.299994 -vn 0.000000 0.953943 0.299989 -vn 0.000000 0.953943 0.299989 -vn 0.000001 0.953941 0.299994 -vn 0.000001 0.953944 0.299986 -vn 0.957315 -0.086673 0.275747 -vn 1.000000 0.000000 -0.000000 -vn 0.957336 -0.086634 0.275685 -vn 0.957336 -0.086634 0.275685 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 0.000000 -0.953959 -0.299938 -vn 0.000000 -0.953977 -0.299879 -vn 0.000000 -0.953959 -0.299936 -vn 0.000000 -0.953959 -0.299936 -vn 0.000000 -0.953977 -0.299879 -vn 0.000000 -0.953977 -0.299879 -vn 0.811445 -0.175317 0.557513 -vn 0.951696 -0.092093 0.292905 -vn 0.811450 -0.175301 0.557510 -vn 0.811450 -0.175301 0.557510 -vn 0.951696 -0.092093 0.292905 -vn 0.951701 -0.092081 0.292892 -vn 0.000000 -0.299980 0.953945 -vn 0.000000 -0.299980 0.953945 -vn 0.000000 -0.299980 0.953945 -vn 0.000000 -0.299980 0.953945 -vn 0.000000 -0.299980 0.953945 -vn 0.000000 -0.299980 0.953945 -vn -0.963467 -0.080325 0.255498 -vn -0.856549 -0.154797 0.492303 -vn -0.963471 -0.080327 0.255481 -vn -0.963471 -0.080327 0.255481 -vn -0.856549 -0.154797 0.492303 -vn -0.856553 -0.154807 0.492292 -vn -0.963467 -0.080325 0.255498 -vn -0.963471 -0.080327 0.255481 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -0.963471 -0.080327 0.255481 -vn -1.000000 0.000000 -0.000000 -vn 0.000000 0.953966 0.299914 -vn 0.000000 0.953966 0.299914 -vn 0.000000 0.953954 0.299952 -vn 0.000000 0.953954 0.299952 -vn 0.000000 0.953966 0.299914 -vn 0.000000 0.953954 0.299954 -vn 0.951696 -0.092093 0.292905 -vn 1.000000 0.000000 -0.000000 -vn 0.951701 -0.092081 0.292892 -vn 0.951701 -0.092081 0.292892 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 0.000000 -0.953944 -0.299985 -vn 0.000000 -0.953948 -0.299971 -vn 0.000000 -0.953944 -0.299984 -vn 0.000000 -0.953944 -0.299984 -vn 0.000000 -0.953948 -0.299971 -vn 0.000000 -0.953948 -0.299971 -vn 0.822280 -0.170707 0.542876 -vn 0.954535 -0.089412 0.284374 -vn 0.822284 -0.170696 0.542874 -vn 0.822284 -0.170696 0.542874 -vn 0.954535 -0.089412 0.284374 -vn 0.954544 -0.089398 0.284347 -vn 0.000000 -0.299969 0.953949 -vn 0.000000 -0.299969 0.953949 -vn 0.000000 -0.299969 0.953949 -vn 0.000000 -0.299969 0.953949 -vn 0.000000 -0.299969 0.953949 -vn 0.000000 -0.299969 0.953949 -vn -0.964692 -0.078994 0.251256 -vn -0.861276 -0.152417 0.484740 -vn -0.964699 -0.078990 0.251228 -vn -0.964699 -0.078990 0.251228 -vn -0.861276 -0.152417 0.484740 -vn -0.861279 -0.152424 0.484733 -vn -0.964692 -0.078994 0.251256 -vn -0.964699 -0.078990 0.251228 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -0.964699 -0.078990 0.251228 -vn -1.000000 0.000000 -0.000000 -vn 0.000000 0.953961 0.299932 -vn 0.000000 0.953961 0.299932 -vn 0.000000 0.953939 0.300001 -vn 0.000000 0.953939 0.300001 -vn 0.000000 0.953961 0.299932 -vn 0.000000 0.953938 0.300004 -vn 0.954535 -0.089412 0.284374 -vn 1.000000 0.000000 -0.000000 -vn 0.954544 -0.089398 0.284347 -vn 0.954544 -0.089398 0.284347 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 0.000008 -0.953947 -0.299974 -vn 0.000003 -0.953949 -0.299968 -vn 0.000015 -0.953945 -0.299982 -vn 0.825428 -0.169341 0.538509 -vn 0.955361 -0.088624 0.281835 -vn 0.825429 -0.169338 0.538508 -vn 0.825429 -0.169338 0.538508 -vn 0.955361 -0.088624 0.281835 -vn 0.955361 -0.088623 0.281834 -vn -0.108662 -0.298199 0.948298 -vn 0.000000 -0.299980 0.953945 -vn -0.108663 -0.298204 0.948297 -vn -0.108663 -0.298204 0.948297 -vn 0.000000 -0.299980 0.953945 -vn 0.000000 -0.299980 0.953945 -vn -0.216023 -0.292831 0.931442 -vn -0.108662 -0.298199 0.948298 -vn -0.216025 -0.292839 0.931439 -vn -0.216025 -0.292839 0.931439 -vn -0.108662 -0.298199 0.948298 -vn -0.108663 -0.298204 0.948297 -vn -0.997122 -0.022736 0.072318 -vn -0.997122 -0.022737 0.072318 -vn -0.997122 -0.022740 0.072318 -vn -0.997122 -0.022740 0.072318 -vn -0.997122 -0.022737 0.072318 -vn -0.997122 -0.022741 0.072318 -vn 0.000007 0.953952 0.299958 -vn 0.000020 0.953957 0.299944 -vn 0.000039 0.953963 0.299924 -vn 0.955361 -0.088624 0.281835 -vn 1.000000 0.000000 -0.000000 -vn 0.955361 -0.088623 0.281834 -vn 0.955361 -0.088623 0.281834 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 0.000000 -0.953951 -0.299963 -vn 0.000000 -0.953950 -0.299965 -vn 0.000000 -0.953961 -0.299932 -vn 0.000000 -0.953961 -0.299932 -vn 0.000000 -0.953950 -0.299965 -vn 0.000000 -0.953961 -0.299932 -vn 0.828793 -0.167823 0.533795 -vn 0.956239 -0.087764 0.279112 -vn 0.828789 -0.167837 0.533797 -vn 0.828789 -0.167837 0.533797 -vn 0.956239 -0.087764 0.279112 -vn 0.956236 -0.087774 0.279123 -vn 0.000000 -0.299923 0.953963 -vn 0.000000 -0.299923 0.953963 -vn 0.000000 -0.299923 0.953963 -vn 0.000000 -0.299923 0.953963 -vn 0.000000 -0.299923 0.953963 -vn 0.000000 -0.299923 0.953963 -vn -0.968521 -0.074674 0.237466 -vn -0.876060 -0.144634 0.460000 -vn -0.968518 -0.074672 0.237479 -vn -0.968518 -0.074672 0.237479 -vn -0.876060 -0.144634 0.460000 -vn -0.876056 -0.144625 0.460009 -vn -0.968521 -0.074674 0.237466 -vn -0.968518 -0.074672 0.237479 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -0.968518 -0.074672 0.237479 -vn -1.000000 0.000000 -0.000000 -vn 0.000000 0.953942 0.299993 -vn 0.000000 0.953942 0.299993 -vn 0.000000 0.953956 0.299947 -vn 0.000000 0.953956 0.299947 -vn 0.000000 0.953942 0.299993 -vn 0.000000 0.953956 0.299945 -vn 0.956239 -0.087764 0.279112 -vn 1.000000 0.000000 -0.000000 -vn 0.956236 -0.087774 0.279123 -vn 0.956236 -0.087774 0.279123 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 0.000003 0.953953 0.299956 -vn -0.000002 0.953956 0.299946 -vn -0.000016 0.953949 0.299968 -vn -0.000016 0.953949 0.299968 -vn -0.000002 0.953956 0.299946 -vn -0.000026 0.953958 0.299941 -vn 0.000007 -0.953955 -0.299951 -vn 0.000009 -0.953948 -0.299972 -vn 0.000001 -0.953955 -0.299950 -vn 0.000001 -0.953955 -0.299950 -vn 0.000009 -0.953948 -0.299972 -vn 0.000000 -0.953968 -0.299908 -vn -0.868644 -0.148587 0.472631 -vn -0.868651 -0.148604 0.472612 -vn -0.868648 -0.148598 0.472619 -vn -0.868648 -0.148598 0.472619 -vn -0.868651 -0.148604 0.472612 -vn -0.868656 -0.148615 0.472600 -vn -0.941437 -0.101150 0.321661 -vn -0.941437 -0.101150 0.321661 -vn -0.941437 -0.101150 0.321661 -vn -0.941437 -0.101150 0.321661 -vn -0.941437 -0.101150 0.321661 -vn -0.941437 -0.101150 0.321661 -vn 0.939018 -0.103135 0.328037 -vn 1.000000 0.000000 -0.000000 -vn 0.939026 -0.103124 0.328018 -vn 0.939026 -0.103124 0.328018 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 0.763509 -0.193726 0.616055 -vn 0.939018 -0.103135 0.328037 -vn 0.763512 -0.193715 0.616055 -vn 0.763512 -0.193715 0.616055 -vn 0.939018 -0.103135 0.328037 -vn 0.939026 -0.103124 0.328018 -vn -0.334186 -0.282733 0.899101 -vn 0.000000 -0.299980 0.953945 -vn -0.334187 -0.282733 0.899100 -vn -0.334187 -0.282733 0.899100 -vn 0.000000 -0.299980 0.953945 -vn 0.000000 -0.299980 0.953945 -vn -0.334187 -0.282733 0.899100 -vn -0.334186 -0.282733 0.899101 -vn -0.334186 -0.282733 0.899101 -vn -0.334186 -0.282733 0.899101 -vn -0.334186 -0.282733 0.899101 -vn -0.334187 -0.282733 0.899100 -vn 0.323100 -0.283891 0.902780 -vn -0.334187 -0.282733 0.899100 -vn 0.323099 -0.283891 0.902781 -vn 0.323099 -0.283891 0.902781 -vn -0.334187 -0.282733 0.899100 -vn -0.334186 -0.282733 0.899101 -vn 0.323100 -0.283891 0.902780 -vn 0.323099 -0.283891 0.902781 -vn 0.323099 -0.283891 0.902781 -vn 0.323099 -0.283891 0.902781 -vn 0.323099 -0.283891 0.902781 -vn 0.323100 -0.283891 0.902780 -vn 0.000000 -0.299980 0.953945 -vn 0.323099 -0.283891 0.902781 -vn 0.000000 -0.299980 0.953945 -vn 0.000000 -0.299980 0.953945 -vn 0.323099 -0.283891 0.902781 -vn 0.323100 -0.283891 0.902780 -vn -0.000001 -0.953951 -0.299962 -vn 0.000001 -0.953955 -0.299950 -vn -0.000014 -0.953954 -0.299951 -vn -0.105776 -0.298229 0.948615 -vn -0.105767 -0.298248 0.948610 -vn -0.105752 -0.298279 0.948602 -vn -0.105752 -0.298279 0.948602 -vn -0.105767 -0.298248 0.948610 -vn -0.105744 -0.298298 0.948597 -vn -0.000016 0.953949 0.299968 -vn -0.000026 0.953958 0.299941 -vn -0.000076 0.953945 0.299982 -vn 0.000003 0.953953 0.299956 -vn -0.000016 0.953949 0.299968 -vn 0.000007 0.953939 0.300000 -vn 0.000007 0.953939 0.300000 -vn -0.000016 0.953949 0.299968 -vn 0.000000 0.953924 0.300049 -vn -0.000002 0.953956 0.299946 -vn -0.000002 0.953953 0.299957 -vn 0.000001 0.953947 0.299976 -vn 0.000001 0.953947 0.299976 -vn -0.000002 0.953953 0.299957 -vn 0.000002 0.953946 0.299979 -vn -0.000002 0.953956 0.299946 -vn 0.000003 0.953953 0.299956 -vn -0.000002 0.953953 0.299957 -vn -0.000002 0.953953 0.299957 -vn 0.000002 0.953944 0.299984 -vn 0.000002 0.953946 0.299979 -vn 0.000002 0.953946 0.299979 -vn 0.000002 0.953944 0.299984 -vn 0.000000 0.953947 0.299974 -vn 0.000001 -0.953956 -0.299948 -vn -0.000007 -0.953954 -0.299953 -vn 0.000007 -0.953955 -0.299951 -vn 0.000007 -0.953955 -0.299951 -vn 0.000001 -0.953955 -0.299950 -vn 0.000001 -0.953956 -0.299948 -vn 0.000001 -0.953956 -0.299948 -vn 0.000001 -0.953955 -0.299950 -vn -0.000001 -0.953951 -0.299962 -vn 0.000000 -0.953975 -0.299885 -vn -0.000015 -0.953951 -0.299962 -vn -0.000012 -0.953954 -0.299954 -vn -0.000012 -0.953954 -0.299954 -vn -0.000015 -0.953951 -0.299962 -vn -0.000007 -0.953954 -0.299953 -vn -0.000012 -0.953954 -0.299954 -vn -0.000007 -0.953954 -0.299953 -vn -0.000015 -0.953947 -0.299976 -vn -0.000015 -0.953947 -0.299976 -vn -0.000007 -0.953954 -0.299953 -vn 0.000001 -0.953956 -0.299948 -vn 0.000003 0.953953 0.299955 -vn -0.000000 0.953955 0.299950 -vn 0.000008 0.953944 0.299986 -vn 0.000008 0.953944 0.299986 -vn -0.000000 0.953955 0.299950 -vn 0.000011 0.953950 0.299967 -vn -0.000003 -0.953953 -0.299956 -vn -0.000007 -0.953939 -0.300001 -vn 0.000014 -0.953947 -0.299976 -vn 0.000014 -0.953947 -0.299976 -vn -0.000007 -0.953939 -0.300001 -vn 0.000000 -0.953923 -0.300052 -vn -0.868654 -0.148611 0.472605 -vn -0.868655 -0.148613 0.472602 -vn -0.868654 -0.148612 0.472603 -vn -0.868654 -0.148612 0.472603 -vn -0.868655 -0.148613 0.472602 -vn -0.868656 -0.148615 0.472600 -vn -0.941431 -0.101132 0.321682 -vn -0.941432 -0.101135 0.321680 -vn -0.941432 -0.101132 0.321681 -vn -0.941432 -0.101132 0.321681 -vn -0.941432 -0.101135 0.321680 -vn -0.941432 -0.101135 0.321680 -vn 0.939020 -0.103149 0.328027 -vn 1.000000 0.000000 -0.000000 -vn 0.939022 -0.103147 0.328023 -vn 0.939022 -0.103147 0.328023 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 0.763519 -0.193723 0.616044 -vn 0.939020 -0.103149 0.328027 -vn 0.763519 -0.193721 0.616044 -vn 0.763519 -0.193721 0.616044 -vn 0.939020 -0.103149 0.328027 -vn 0.939022 -0.103147 0.328023 -vn -0.334186 -0.282733 0.899101 -vn 0.000000 -0.299980 0.953945 -vn -0.334187 -0.282733 0.899100 -vn -0.334187 -0.282733 0.899100 -vn 0.000000 -0.299980 0.953945 -vn 0.000000 -0.299980 0.953945 -vn -0.334187 -0.282733 0.899100 -vn -0.334186 -0.282733 0.899101 -vn -0.334186 -0.282733 0.899101 -vn -0.334186 -0.282733 0.899101 -vn -0.334186 -0.282733 0.899101 -vn -0.334187 -0.282733 0.899100 -vn 0.323100 -0.283891 0.902780 -vn -0.334187 -0.282733 0.899100 -vn 0.323099 -0.283891 0.902781 -vn 0.323099 -0.283891 0.902781 -vn -0.334187 -0.282733 0.899100 -vn -0.334186 -0.282733 0.899101 -vn 0.323100 -0.283891 0.902780 -vn 0.323099 -0.283891 0.902781 -vn 0.323099 -0.283891 0.902781 -vn 0.323099 -0.283891 0.902781 -vn 0.323099 -0.283891 0.902781 -vn 0.323100 -0.283891 0.902780 -vn 0.000000 -0.299980 0.953945 -vn 0.323099 -0.283891 0.902781 -vn 0.000000 -0.299980 0.953945 -vn 0.000000 -0.299980 0.953945 -vn 0.323099 -0.283891 0.902781 -vn 0.323100 -0.283891 0.902780 -vn 0.000025 -0.953954 -0.299953 -vn 0.000014 -0.953947 -0.299976 -vn 0.000079 -0.953940 -0.299998 -vn -0.105749 -0.298287 0.948600 -vn -0.105755 -0.298275 0.948603 -vn -0.105765 -0.298253 0.948609 -vn -0.105765 -0.298253 0.948609 -vn -0.105755 -0.298275 0.948603 -vn -0.105770 -0.298241 0.948612 -vn 0.000008 0.953944 0.299986 -vn 0.000011 0.953950 0.299967 -vn 0.000012 0.953950 0.299966 -vn 0.000003 0.953953 0.299955 -vn 0.000008 0.953944 0.299986 -vn 0.000007 0.953939 0.300001 -vn 0.000007 0.953939 0.300001 -vn 0.000008 0.953944 0.299986 -vn 0.000000 0.953924 0.300049 -vn -0.000000 0.953955 0.299950 -vn -0.000002 0.953953 0.299957 -vn 0.000001 0.953947 0.299977 -vn 0.000001 0.953947 0.299977 -vn -0.000002 0.953953 0.299957 -vn 0.000002 0.953946 0.299980 -vn -0.000000 0.953955 0.299950 -vn 0.000003 0.953953 0.299955 -vn -0.000002 0.953953 0.299957 -vn -0.000002 0.953953 0.299957 -vn 0.000002 0.953944 0.299985 -vn 0.000002 0.953946 0.299980 -vn 0.000002 0.953946 0.299980 -vn 0.000002 0.953944 0.299985 -vn 0.000000 0.953947 0.299974 -vn 0.000001 -0.953956 -0.299946 -vn 0.000002 -0.953953 -0.299957 -vn -0.000003 -0.953953 -0.299956 -vn -0.000003 -0.953953 -0.299956 -vn 0.000014 -0.953947 -0.299976 -vn 0.000001 -0.953956 -0.299946 -vn 0.000001 -0.953956 -0.299946 -vn 0.000014 -0.953947 -0.299976 -vn 0.000025 -0.953954 -0.299953 -vn 0.000000 -0.953947 -0.299975 -vn -0.000002 -0.953944 -0.299986 -vn -0.000002 -0.953946 -0.299980 -vn -0.000002 -0.953946 -0.299980 -vn -0.000002 -0.953944 -0.299986 -vn 0.000002 -0.953953 -0.299957 -vn -0.000002 -0.953946 -0.299980 -vn 0.000002 -0.953953 -0.299957 -vn -0.000001 -0.953947 -0.299976 -vn -0.000001 -0.953947 -0.299976 -vn 0.000002 -0.953953 -0.299957 -vn 0.000001 -0.953956 -0.299946 -vn -0.979755 -0.060043 0.190986 -vn -0.919844 -0.117665 0.374223 -vn -0.979757 -0.060044 0.190973 -vn -0.979757 -0.060044 0.190973 -vn -0.919844 -0.117665 0.374223 -vn -0.919846 -0.117672 0.374215 -vn 0.806339 -0.177418 0.564217 -vn 0.950353 -0.093331 0.296846 -vn 0.806343 -0.177404 0.564215 -vn 0.806343 -0.177404 0.564215 -vn 0.950353 -0.093331 0.296846 -vn 0.950359 -0.093319 0.296831 -vn 0.000000 -0.299969 0.953949 -vn 0.000000 -0.299969 0.953949 -vn 0.000000 -0.299969 0.953949 -vn 0.000000 -0.299969 0.953949 -vn 0.000000 -0.299969 0.953949 -vn 0.000000 -0.299969 0.953949 -vn -0.962647 -0.081204 0.258296 -vn -0.853388 -0.156356 0.497274 -vn -0.962652 -0.081205 0.258278 -vn -0.962652 -0.081205 0.258278 -vn -0.853388 -0.156356 0.497274 -vn -0.853392 -0.156365 0.497264 -vn 0.823811 -0.170042 0.540759 -vn 0.954939 -0.089021 0.283139 -vn 0.823816 -0.170028 0.540757 -vn 0.823816 -0.170028 0.540757 -vn 0.954939 -0.089021 0.283139 -vn 0.954944 -0.089010 0.283124 -vn 0.000000 -0.299969 0.953949 -vn 0.000000 -0.299969 0.953949 -vn 0.000000 -0.299969 0.953949 -vn 0.000000 -0.299969 0.953949 -vn 0.000000 -0.299969 0.953949 -vn 0.000000 -0.299969 0.953949 -vn -0.979755 -0.060043 0.190986 -vn -0.979757 -0.060044 0.190973 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -0.979757 -0.060044 0.190973 -vn -1.000000 0.000000 -0.000000 -vn 0.000000 0.953949 0.299969 -vn 0.000000 0.953948 0.299971 -vn 0.000000 0.953939 0.300001 -vn 0.000000 0.953939 0.300001 -vn 0.000000 0.953948 0.299971 -vn 0.000000 0.953939 0.300001 -vn 0.000000 -0.953944 -0.299984 -vn 0.000000 -0.953944 -0.299984 -vn 0.000000 -0.953961 -0.299932 -vn 0.000000 -0.953961 -0.299932 -vn 0.000000 -0.953944 -0.299984 -vn 0.000000 -0.953959 -0.299938 -vn 0.954939 -0.089021 0.283139 -vn 1.000000 0.000000 -0.000000 -vn 0.954944 -0.089010 0.283124 -vn 0.954944 -0.089010 0.283124 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn -0.962647 -0.081204 0.258296 -vn -0.962652 -0.081205 0.258278 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -0.962652 -0.081205 0.258278 -vn -1.000000 0.000000 -0.000000 -vn 0.000000 0.953955 0.299949 -vn 0.000000 0.953955 0.299949 -vn 0.000000 0.953949 0.299968 -vn 0.000000 0.953949 0.299968 -vn 0.000000 0.953955 0.299949 -vn 0.000000 0.953949 0.299969 -vn 0.000000 -0.953959 -0.299939 -vn 0.000000 -0.953983 -0.299862 -vn 0.000000 -0.953959 -0.299936 -vn 0.000000 -0.953959 -0.299936 -vn 0.000000 -0.953983 -0.299862 -vn 0.000000 -0.953983 -0.299862 -vn 0.950353 -0.093331 0.296846 -vn 1.000000 0.000000 -0.000000 -vn 0.950359 -0.093319 0.296831 -vn 0.950359 -0.093319 0.296831 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 0.000007 0.953949 0.299967 -vn 0.000002 0.953951 0.299962 -vn 0.000002 0.953954 0.299953 -vn 0.000002 0.953954 0.299953 -vn 0.000002 0.953951 0.299962 -vn 0.000002 0.953965 0.299917 -vn 0.000010 -0.953955 -0.299950 -vn 0.000014 -0.953951 -0.299963 -vn -0.000003 -0.953957 -0.299945 -vn -0.000003 -0.953957 -0.299945 -vn 0.000014 -0.953951 -0.299963 -vn 0.000000 -0.953982 -0.299863 -vn -0.868676 -0.148667 0.472547 -vn -0.868662 -0.148636 0.472582 -vn -0.868667 -0.148648 0.472568 -vn -0.868667 -0.148648 0.472568 -vn -0.868662 -0.148636 0.472582 -vn -0.868654 -0.148616 0.472604 -vn -0.941437 -0.101150 0.321660 -vn -0.941435 -0.101135 0.321669 -vn -0.941437 -0.101148 0.321662 -vn -0.941437 -0.101148 0.321662 -vn -0.941435 -0.101135 0.321669 -vn -0.941435 -0.101132 0.321671 -vn 0.939023 -0.103149 0.328017 -vn 1.000000 0.000000 -0.000000 -vn 0.939020 -0.103152 0.328027 -vn 0.939020 -0.103152 0.328027 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 0.763519 -0.193723 0.616044 -vn 0.939023 -0.103149 0.328017 -vn 0.763519 -0.193723 0.616044 -vn 0.763519 -0.193723 0.616044 -vn 0.939023 -0.103149 0.328017 -vn 0.939020 -0.103152 0.328027 -vn -0.334203 -0.282718 0.899099 -vn 0.000000 -0.299980 0.953945 -vn -0.334206 -0.282731 0.899094 -vn -0.334206 -0.282731 0.899094 -vn 0.000000 -0.299980 0.953945 -vn 0.000000 -0.299980 0.953945 -vn -0.334200 -0.282559 0.899150 -vn -0.334203 -0.282718 0.899099 -vn -0.334179 -0.282576 0.899153 -vn -0.334179 -0.282576 0.899153 -vn -0.334203 -0.282718 0.899099 -vn -0.334206 -0.282731 0.899094 -vn 0.323112 -0.283716 0.902831 -vn -0.334200 -0.282559 0.899150 -vn 0.323092 -0.283732 0.902833 -vn 0.323092 -0.283732 0.902833 -vn -0.334200 -0.282559 0.899150 -vn -0.334179 -0.282576 0.899153 -vn 0.323112 -0.283716 0.902831 -vn 0.323092 -0.283732 0.902833 -vn 0.323116 -0.283875 0.902780 -vn 0.323116 -0.283875 0.902780 -vn 0.323092 -0.283732 0.902833 -vn 0.323119 -0.283889 0.902774 -vn 0.000000 -0.299980 0.953945 -vn 0.323116 -0.283875 0.902780 -vn 0.000000 -0.299980 0.953945 -vn 0.000000 -0.299980 0.953945 -vn 0.323116 -0.283875 0.902780 -vn 0.323119 -0.283889 0.902774 -vn -0.000009 -0.953949 -0.299969 -vn -0.000003 -0.953957 -0.299945 -vn -0.000041 -0.953957 -0.299943 -vn -0.105689 -0.298426 0.948563 -vn -0.105713 -0.298376 0.948576 -vn -0.105752 -0.298291 0.948599 -vn -0.105752 -0.298291 0.948599 -vn -0.105713 -0.298376 0.948576 -vn -0.105775 -0.298241 0.948612 -vn 0.000002 0.953954 0.299953 -vn 0.000002 0.953965 0.299917 -vn 0.000018 0.953969 0.299904 -vn 0.000007 0.953949 0.299967 -vn 0.000002 0.953954 0.299953 -vn 0.000010 0.953946 0.299977 -vn 0.000010 0.953946 0.299977 -vn 0.000002 0.953954 0.299953 -vn 0.000000 0.953924 0.300050 -vn 0.000002 0.953951 0.299962 -vn -0.000001 0.953950 0.299965 -vn -0.000002 0.953950 0.299964 -vn -0.000002 0.953950 0.299964 -vn -0.000001 0.953950 0.299965 -vn -0.000002 0.953950 0.299967 -vn 0.000002 0.953951 0.299962 -vn 0.000007 0.953949 0.299967 -vn -0.000001 0.953950 0.299965 -vn -0.000001 0.953950 0.299965 -vn -0.000002 0.953951 0.299963 -vn -0.000002 0.953950 0.299967 -vn -0.000002 0.953950 0.299967 -vn -0.000002 0.953951 0.299963 -vn 0.000000 0.953947 0.299974 -vn 0.000001 -0.953955 -0.299950 -vn -0.000005 -0.953954 -0.299952 -vn 0.000010 -0.953955 -0.299950 -vn 0.000010 -0.953955 -0.299950 -vn -0.000003 -0.953957 -0.299945 -vn 0.000001 -0.953955 -0.299950 -vn 0.000001 -0.953955 -0.299950 -vn -0.000003 -0.953957 -0.299945 -vn -0.000009 -0.953949 -0.299969 -vn 0.000000 -0.953947 -0.299974 -vn -0.000002 -0.953944 -0.299984 -vn -0.000002 -0.953960 -0.299934 -vn -0.000002 -0.953960 -0.299934 -vn -0.000002 -0.953944 -0.299984 -vn -0.000005 -0.953954 -0.299952 -vn -0.000002 -0.953960 -0.299934 -vn -0.000005 -0.953954 -0.299952 -vn -0.000004 -0.953966 -0.299916 -vn -0.000004 -0.953966 -0.299916 -vn -0.000005 -0.953954 -0.299952 -vn 0.000001 -0.953955 -0.299950 -vn -0.979755 -0.060045 0.190983 -vn -0.919844 -0.117669 0.374221 -vn -0.979757 -0.060047 0.190974 -vn -0.979757 -0.060047 0.190974 -vn -0.919844 -0.117669 0.374221 -vn -0.919846 -0.117676 0.374213 -vn 0.806339 -0.177425 0.564215 -vn 0.950354 -0.093334 0.296843 -vn 0.806343 -0.177411 0.564212 -vn 0.806343 -0.177411 0.564212 -vn 0.950354 -0.093334 0.296843 -vn 0.950358 -0.093323 0.296833 -vn 0.000000 -0.299981 0.953945 -vn 0.000000 -0.299981 0.953945 -vn 0.000000 -0.299981 0.953945 -vn 0.000000 -0.299981 0.953945 -vn 0.000000 -0.299981 0.953945 -vn 0.000000 -0.299981 0.953945 -vn -0.962648 -0.081206 0.258293 -vn -0.853388 -0.156362 0.497272 -vn -0.962651 -0.081209 0.258280 -vn -0.962651 -0.081209 0.258280 -vn -0.853388 -0.156362 0.497272 -vn -0.853392 -0.156371 0.497262 -vn 0.823811 -0.170048 0.540757 -vn 0.954939 -0.089024 0.283136 -vn 0.823816 -0.170035 0.540755 -vn 0.823816 -0.170035 0.540755 -vn 0.954939 -0.089024 0.283136 -vn 0.954943 -0.089014 0.283126 -vn 0.000000 -0.299981 0.953945 -vn 0.000000 -0.299981 0.953945 -vn 0.000000 -0.299981 0.953945 -vn 0.000000 -0.299981 0.953945 -vn 0.000000 -0.299981 0.953945 -vn 0.000000 -0.299981 0.953945 -vn -0.979755 -0.060045 0.190983 -vn -0.979757 -0.060047 0.190974 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -0.979757 -0.060047 0.190974 -vn -1.000000 0.000000 -0.000000 -vn 0.000000 0.953951 0.299962 -vn 0.000000 0.953950 0.299965 -vn 0.000000 0.953938 0.300003 -vn 0.000000 0.953938 0.300003 -vn 0.000000 0.953950 0.299965 -vn 0.000000 0.953938 0.300003 -vn 0.000007 -0.953948 -0.299973 -vn 0.000002 -0.953945 -0.299981 -vn 0.000003 -0.953962 -0.299928 -vn 0.000003 -0.953962 -0.299928 -vn 0.000002 -0.953945 -0.299981 -vn 0.000000 -0.953959 -0.299938 -vn 0.954939 -0.089024 0.283136 -vn 1.000000 0.000000 -0.000000 -vn 0.954943 -0.089014 0.283126 -vn 0.954943 -0.089014 0.283126 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn -0.962648 -0.081206 0.258293 -vn -0.962651 -0.081209 0.258280 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -0.962651 -0.081209 0.258280 -vn -1.000000 0.000000 -0.000000 -vn 0.000000 0.953951 0.299962 -vn 0.000000 0.953951 0.299963 -vn 0.000000 0.953938 0.300003 -vn 0.000000 0.953938 0.300003 -vn 0.000000 0.953951 0.299963 -vn 0.000000 0.953938 0.300003 -vn 0.000000 -0.953958 -0.299939 -vn 0.000000 -0.953983 -0.299862 -vn 0.000000 -0.953959 -0.299936 -vn 0.000000 -0.953959 -0.299936 -vn 0.000000 -0.953983 -0.299862 -vn 0.000000 -0.953983 -0.299862 -vn 0.950354 -0.093334 0.296843 -vn 1.000000 0.000000 -0.000000 -vn 0.950358 -0.093323 0.296833 -vn 0.950358 -0.093323 0.296833 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 0.000003 0.953955 0.299951 -vn -0.000001 0.953956 0.299947 -vn 0.000008 0.953957 0.299945 -vn 0.000008 0.953957 0.299945 -vn -0.000001 0.953956 0.299947 -vn 0.000013 0.953964 0.299921 -vn 0.000007 -0.953952 -0.299961 -vn 0.000011 -0.953957 -0.299942 -vn -0.000004 -0.953957 -0.299945 -vn -0.000004 -0.953957 -0.299945 -vn 0.000011 -0.953957 -0.299942 -vn 0.000000 -0.953982 -0.299862 -vn -0.868678 -0.148575 0.472572 -vn -0.868683 -0.148586 0.472559 -vn -0.868681 -0.148582 0.472564 -vn -0.868681 -0.148582 0.472564 -vn -0.868683 -0.148586 0.472559 -vn -0.868686 -0.148593 0.472552 -vn -0.941437 -0.101147 0.321662 -vn -0.941435 -0.101131 0.321670 -vn -0.941437 -0.101144 0.321663 -vn -0.941437 -0.101144 0.321663 -vn -0.941435 -0.101131 0.321670 -vn -0.941435 -0.101129 0.321672 -vn 0.939021 -0.103150 0.328023 -vn 1.000000 0.000000 -0.000000 -vn 0.939019 -0.103153 0.328027 -vn 0.939019 -0.103153 0.328027 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 0.763521 -0.193715 0.616045 -vn 0.939021 -0.103150 0.328023 -vn 0.763520 -0.193717 0.616044 -vn 0.763520 -0.193717 0.616044 -vn 0.939021 -0.103150 0.328023 -vn 0.939019 -0.103153 0.328027 -vn -0.334207 -0.282721 0.899097 -vn 0.000000 -0.299968 0.953949 -vn -0.334205 -0.282720 0.899097 -vn -0.334205 -0.282720 0.899097 -vn 0.000000 -0.299968 0.953949 -vn 0.000000 -0.299968 0.953949 -vn -0.334206 -0.282732 0.899093 -vn -0.334207 -0.282721 0.899097 -vn -0.334208 -0.282731 0.899093 -vn -0.334208 -0.282731 0.899093 -vn -0.334207 -0.282721 0.899097 -vn -0.334205 -0.282720 0.899097 -vn 0.323119 -0.283889 0.902774 -vn -0.334206 -0.282732 0.899093 -vn 0.323122 -0.283888 0.902773 -vn 0.323122 -0.283888 0.902773 -vn -0.334206 -0.282732 0.899093 -vn -0.334208 -0.282731 0.899093 -vn 0.323119 -0.283889 0.902774 -vn 0.323122 -0.283888 0.902773 -vn 0.323120 -0.283878 0.902777 -vn 0.323120 -0.283878 0.902777 -vn 0.323122 -0.283888 0.902773 -vn 0.323118 -0.283878 0.902778 -vn 0.000000 -0.299968 0.953949 -vn 0.323120 -0.283878 0.902777 -vn 0.000000 -0.299968 0.953949 -vn 0.000000 -0.299968 0.953949 -vn 0.323120 -0.283878 0.902777 -vn 0.323118 -0.283878 0.902778 -vn -0.000010 -0.953949 -0.299969 -vn -0.000004 -0.953957 -0.299945 -vn -0.000043 -0.953957 -0.299942 -vn -0.105684 -0.298243 0.948621 -vn -0.105686 -0.298241 0.948622 -vn -0.105688 -0.298236 0.948623 -vn -0.105688 -0.298236 0.948623 -vn -0.105686 -0.298241 0.948622 -vn -0.105689 -0.298233 0.948624 -vn 0.000008 0.953957 0.299945 -vn 0.000013 0.953964 0.299921 -vn 0.000046 0.953973 0.299894 -vn 0.000003 0.953955 0.299951 -vn 0.000008 0.953957 0.299945 -vn 0.000005 0.953949 0.299969 -vn 0.000005 0.953949 0.299969 -vn 0.000008 0.953957 0.299945 -vn 0.000000 0.953938 0.300005 -vn -0.000001 0.953956 0.299947 -vn -0.000003 0.953954 0.299952 -vn -0.000003 0.953951 0.299962 -vn -0.000003 0.953951 0.299962 -vn -0.000003 0.953954 0.299952 -vn -0.000002 0.953950 0.299967 -vn -0.000001 0.953956 0.299947 -vn 0.000003 0.953955 0.299951 -vn -0.000003 0.953954 0.299952 -vn -0.000003 0.953954 0.299952 -vn -0.000002 0.953951 0.299964 -vn -0.000002 0.953950 0.299967 -vn -0.000002 0.953950 0.299967 -vn -0.000002 0.953951 0.299964 -vn 0.000000 0.953947 0.299974 -vn 0.000005 -0.953950 -0.299965 -vn 0.000001 -0.953950 -0.299964 -vn 0.000007 -0.953952 -0.299961 -vn 0.000007 -0.953952 -0.299961 -vn -0.000004 -0.953957 -0.299945 -vn 0.000005 -0.953950 -0.299965 -vn 0.000005 -0.953950 -0.299965 -vn -0.000004 -0.953957 -0.299945 -vn -0.000010 -0.953949 -0.299969 -vn 0.000000 -0.953947 -0.299975 -vn 0.000002 -0.953950 -0.299965 -vn 0.000002 -0.953950 -0.299967 -vn 0.000002 -0.953950 -0.299967 -vn 0.000002 -0.953950 -0.299965 -vn 0.000001 -0.953950 -0.299964 -vn 0.000002 -0.953950 -0.299967 -vn 0.000001 -0.953950 -0.299964 -vn 0.000002 -0.953951 -0.299964 -vn 0.000002 -0.953951 -0.299964 -vn 0.000001 -0.953950 -0.299964 -vn 0.000005 -0.953950 -0.299965 -vn -0.000004 0.953959 0.299936 -vn -0.000007 0.953958 0.299939 -vn 0.000000 0.953957 0.299943 -vn -0.000004 -0.953936 -0.300010 -vn -0.000003 -0.953968 -0.299907 -vn -0.000000 -0.953948 -0.299972 -vn -0.000000 -0.953948 -0.299972 -vn -0.000003 -0.953968 -0.299907 -vn 0.000000 -0.953963 -0.299924 -vn -0.751588 -0.197870 0.629256 -vn -0.308892 -0.285309 0.907295 -vn -0.751587 -0.197871 0.629257 -vn -0.751587 -0.197871 0.629257 -vn -0.308892 -0.285309 0.907295 -vn -0.308885 -0.285310 0.907297 -vn -0.878582 -0.143262 0.455598 -vn -0.751588 -0.197870 0.629256 -vn -0.878582 -0.143263 0.455598 -vn -0.878582 -0.143263 0.455598 -vn -0.751588 -0.197870 0.629256 -vn -0.751587 -0.197871 0.629257 -vn 0.939020 -0.103136 0.328030 -vn 1.000000 0.000000 -0.000000 -vn 0.939024 -0.103129 0.328023 -vn 0.939024 -0.103129 0.328023 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 0.763511 -0.193725 0.616053 -vn 0.939020 -0.103136 0.328030 -vn 0.763513 -0.193716 0.616053 -vn 0.763513 -0.193716 0.616053 -vn 0.939020 -0.103136 0.328030 -vn 0.939024 -0.103129 0.328023 -vn -0.334190 -0.282728 0.899101 -vn 0.000000 -0.299979 0.953946 -vn -0.334187 -0.282732 0.899100 -vn -0.334187 -0.282732 0.899100 -vn 0.000000 -0.299979 0.953946 -vn 0.000000 -0.299979 0.953946 -vn -0.334178 -0.282680 0.899120 -vn -0.334190 -0.282728 0.899101 -vn -0.334176 -0.282685 0.899119 -vn -0.334176 -0.282685 0.899119 -vn -0.334190 -0.282728 0.899101 -vn -0.334187 -0.282732 0.899100 -vn 0.323092 -0.283838 0.902800 -vn -0.334178 -0.282680 0.899120 -vn 0.323090 -0.283842 0.902799 -vn 0.323090 -0.283842 0.902799 -vn -0.334178 -0.282680 0.899120 -vn -0.334176 -0.282685 0.899119 -vn 0.323092 -0.283838 0.902800 -vn 0.323090 -0.283842 0.902799 -vn 0.323103 -0.283885 0.902781 -vn 0.323103 -0.283885 0.902781 -vn 0.323090 -0.283842 0.902799 -vn 0.323100 -0.283890 0.902781 -vn -0.308892 -0.285309 0.907295 -vn 0.323103 -0.283885 0.902781 -vn -0.308885 -0.285310 0.907297 -vn -0.308885 -0.285310 0.907297 -vn 0.323103 -0.283885 0.902781 -vn 0.323100 -0.283890 0.902781 -vn -0.000007 0.953958 0.299939 -vn -0.000002 0.953948 0.299972 -vn -0.000009 0.953948 0.299971 -vn -0.000009 0.953948 0.299971 -vn -0.000002 0.953948 0.299972 -vn 0.000000 0.953965 0.299918 -vn 0.000000 0.953957 0.299943 -vn 0.000002 0.953945 0.299983 -vn 0.000002 0.953952 0.299960 -vn 0.000002 0.953952 0.299960 -vn 0.000002 0.953945 0.299983 -vn 0.000000 0.953948 0.299973 -vn -0.000004 0.953959 0.299936 -vn 0.000000 0.953957 0.299943 -vn 0.000002 0.953955 0.299950 -vn 0.000002 0.953955 0.299950 -vn 0.000000 0.953957 0.299943 -vn 0.000002 0.953952 0.299960 -vn -0.000007 0.953958 0.299939 -vn -0.000004 0.953959 0.299936 -vn -0.000002 0.953948 0.299972 -vn -0.000002 0.953948 0.299972 -vn -0.000004 0.953959 0.299936 -vn -0.000000 0.953943 0.299988 -vn -0.000008 -0.953931 -0.300026 -vn -0.000006 -0.953939 -0.300002 -vn -0.000004 -0.953936 -0.300010 -vn -0.000004 -0.953936 -0.300010 -vn -0.000000 -0.953948 -0.299972 -vn -0.000008 -0.953931 -0.300026 -vn -0.000008 -0.953931 -0.300026 -vn -0.000000 -0.953948 -0.299972 -vn 0.000001 -0.953943 -0.299986 -vn 0.000000 -0.953975 -0.299885 -vn -0.000003 -0.953971 -0.299898 -vn -0.000002 -0.953961 -0.299930 -vn -0.000002 -0.953961 -0.299930 -vn -0.000003 -0.953971 -0.299898 -vn -0.000006 -0.953939 -0.300002 -vn -0.000002 -0.953961 -0.299930 -vn -0.000006 -0.953939 -0.300002 -vn -0.000003 -0.953952 -0.299960 -vn -0.000003 -0.953952 -0.299960 -vn -0.000006 -0.953939 -0.300002 -vn -0.000008 -0.953931 -0.300026 -vn 0.000000 0.299956 -0.953953 -vn 0.000000 0.299956 -0.953953 -vn 0.000000 0.299956 -0.953953 -vn 0.000000 0.299956 -0.953953 -vn 0.000000 0.299956 -0.953953 -vn 0.000000 0.299956 -0.953953 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn 0.000000 -0.299951 0.953955 -vn 0.000000 -0.299951 0.953955 -vn 0.000000 -0.299951 0.953955 -vn 0.000000 -0.299951 0.953955 -vn 0.000000 -0.299951 0.953955 -vn 0.000000 -0.299951 0.953955 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 0.000000 0.299956 -0.953953 -vn 0.000000 0.299956 -0.953953 -vn 0.000000 0.299956 -0.953953 -vn 0.000000 0.299956 -0.953953 -vn 0.000000 0.299956 -0.953953 -vn 0.000000 0.299956 -0.953953 -vn -0.999998 0.001910 0.000600 -vn -0.999998 0.001910 0.000600 -vn -0.999998 0.001910 0.000601 -vn -0.999998 0.001910 0.000601 -vn -0.999998 0.001910 0.000600 -vn -0.999998 0.001910 0.000601 -vn 0.000000 -0.299951 0.953955 -vn 0.000000 -0.299951 0.953955 -vn 0.000000 -0.299951 0.953955 -vn 0.000000 -0.299951 0.953955 -vn 0.000000 -0.299951 0.953955 -vn 0.000000 -0.299951 0.953955 -vn 0.999998 -0.001910 -0.000600 -vn 0.999998 -0.001910 -0.000600 -vn 0.999998 -0.001910 -0.000601 -vn 0.999998 -0.001910 -0.000601 -vn 0.999998 -0.001910 -0.000600 -vn 0.999998 -0.001910 -0.000601 -vn 0.000000 0.299956 -0.953953 -vn 0.000000 0.299956 -0.953953 -vn 0.000000 0.299956 -0.953953 -vn 0.000000 0.299956 -0.953953 -vn 0.000000 0.299956 -0.953953 -vn 0.000000 0.299956 -0.953953 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn 0.000000 -0.299951 0.953955 -vn 0.000000 -0.299951 0.953955 -vn 0.000000 -0.299951 0.953955 -vn 0.000000 -0.299951 0.953955 -vn 0.000000 -0.299951 0.953955 -vn 0.000000 -0.299951 0.953955 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 0.000000 0.953959 0.299938 -vn 0.000000 0.953959 0.299938 -vn 0.000000 0.953951 0.299962 -vn 0.000000 0.953951 0.299962 -vn 0.000000 0.953959 0.299938 -vn 0.000000 0.953951 0.299963 -vn 0.000000 0.953959 0.299938 -vn 0.000000 0.953959 0.299938 -vn 0.000000 0.953951 0.299962 -vn 0.000000 0.953951 0.299962 -vn 0.000000 0.953959 0.299938 -vn 0.000000 0.953950 0.299965 -vn 0.000000 -0.953959 -0.299938 -vn 0.000000 -0.953983 -0.299862 -vn 0.000003 -0.953962 -0.299928 -vn 0.000003 -0.953962 -0.299928 -vn 0.000000 -0.953983 -0.299862 -vn 0.000000 -0.953983 -0.299862 -vn 0.000000 -0.953944 -0.299984 -vn 0.000000 -0.953944 -0.299984 -vn 0.000000 -0.953959 -0.299936 -vn 0.000000 -0.953959 -0.299936 -vn 0.000000 -0.953944 -0.299984 -vn 0.000000 -0.953958 -0.299939 -vn 0.000000 0.953955 0.299949 -vn 0.000000 0.953955 0.299949 -vn 0.000000 0.953949 0.299969 -vn 0.000000 0.953949 0.299969 -vn 0.000000 0.953955 0.299949 -vn 0.000000 0.953948 0.299971 -vn 0.000000 0.953949 0.299968 -vn 0.000000 0.953949 0.299969 -vn 0.000000 0.953939 0.300001 -vn 0.000000 0.953939 0.300001 -vn 0.000000 0.953949 0.299969 -vn 0.000000 0.953939 0.300001 -vn 0.000000 -0.953944 -0.299984 -vn 0.000000 -0.953944 -0.299984 -vn 0.000000 -0.953959 -0.299936 -vn 0.000000 -0.953959 -0.299936 -vn 0.000000 -0.953944 -0.299984 -vn 0.000000 -0.953959 -0.299939 -vn 0.000000 -0.953959 -0.299938 -vn 0.000000 -0.953983 -0.299862 -vn 0.000000 -0.953961 -0.299932 -vn 0.000000 -0.953961 -0.299932 -vn 0.000000 -0.953983 -0.299862 -vn 0.000000 -0.953983 -0.299862 -vn 0.000000 -0.953951 -0.299963 -vn 0.000000 -0.953935 -0.300013 -vn 0.000000 -0.953950 -0.299965 -vn 0.000000 -0.953950 -0.299965 -vn 0.000000 -0.953935 -0.300013 -vn 0.000000 -0.953935 -0.300013 -vn -0.000009 -0.953960 -0.299935 -vn -0.000011 -0.953958 -0.299940 -vn -0.000004 -0.953959 -0.299938 -vn -0.000004 -0.953959 -0.299938 -vn -0.000011 -0.953958 -0.299940 -vn 0.000000 -0.953944 -0.299983 -vn 0.000000 0.953945 0.299982 -vn -0.000002 0.953942 0.299991 -vn -0.000001 0.953943 0.299987 -vn -0.000001 0.953943 0.299987 -vn -0.000002 0.953942 0.299991 -vn -0.000002 0.953945 0.299983 -vn 0.000000 0.953956 0.299947 -vn 0.000000 0.953956 0.299945 -vn 0.000000 0.953979 0.299875 -vn 0.000000 0.953979 0.299875 -vn 0.000000 0.953956 0.299945 -vn 0.000000 0.953979 0.299875 -vn -0.000006 0.953950 0.299964 -vn -0.000008 0.953951 0.299964 -vn -0.000042 0.953953 0.299957 -vn -0.000006 0.953950 0.299964 -vn 0.000020 0.953957 0.299944 -vn 0.000007 0.953952 0.299958 -vn -0.000006 0.953950 0.299964 -vn 0.000007 0.953952 0.299958 -vn -0.000008 0.953951 0.299964 -vn 0.000006 -0.953951 -0.299964 -vn 0.000009 -0.953951 -0.299964 -vn 0.000003 -0.953949 -0.299968 -vn 0.000006 -0.953951 -0.299964 -vn 0.000003 -0.953949 -0.299968 -vn 0.000008 -0.953947 -0.299974 -vn 0.000048 -0.953953 -0.299956 -vn 0.000009 -0.953951 -0.299964 -vn 0.000006 -0.953951 -0.299964 -vn 0.000000 0.953939 0.300001 -vn 0.000000 0.953938 0.300004 -vn 0.000000 0.953904 0.300113 -vn 0.000000 0.953904 0.300113 -vn 0.000000 0.953938 0.300004 -vn 0.000000 0.953904 0.300113 -vn 0.000000 0.953954 0.299952 -vn 0.000000 0.953954 0.299954 -vn 0.000000 0.953934 0.300016 -vn 0.000000 0.953934 0.300016 -vn 0.000000 0.953954 0.299954 -vn 0.000000 0.953934 0.300016 -vn 0.000000 0.953943 0.299989 -vn 0.000001 0.953944 0.299986 -vn -0.000000 0.953947 0.299975 -vn -0.000000 0.953947 0.299975 -vn 0.000001 0.953944 0.299986 -vn 0.000000 0.953947 0.299974 -vn 0.000007 -0.953955 -0.299951 -vn 0.000009 -0.953962 -0.299926 -vn 0.000002 -0.953958 -0.299941 -vn 0.000002 -0.953958 -0.299941 -vn 0.000009 -0.953962 -0.299926 -vn 0.000000 -0.953973 -0.299893 -vn 0.000000 -0.953959 -0.299938 -vn 0.000000 -0.953959 -0.299936 -vn 0.000000 -0.953948 -0.299973 -vn 0.000000 -0.953948 -0.299973 -vn 0.000000 -0.953959 -0.299936 -vn 0.000000 -0.953948 -0.299973 -vn 0.000000 -0.953944 -0.299985 -vn 0.000000 -0.953944 -0.299984 -vn 0.000000 -0.953942 -0.299993 -vn 0.000000 -0.953942 -0.299993 -vn 0.000000 -0.953944 -0.299984 -vn 0.000000 -0.953942 -0.299993 -vn 0.000011 0.953941 0.299994 -vn 0.000006 0.953944 0.299986 -vn 0.000002 0.953947 0.299974 -vn -0.000009 0.953949 0.299969 -vn -0.000032 0.953926 0.300043 -vn -0.000040 0.953927 0.300039 -vn 0.000023 -0.953955 -0.299950 -vn 0.000000 -0.953973 -0.299894 -vn 0.000006 -0.953949 -0.299970 -vn -0.945064 -0.098052 0.311833 -vn -0.945064 -0.098052 0.311833 -vn -0.945064 -0.098052 0.311833 -vn -0.945064 -0.098052 0.311833 -vn -0.945064 -0.098052 0.311833 -vn -0.945064 -0.098052 0.311833 -vn -0.043579 -0.299675 0.953046 -vn -0.043579 -0.299674 0.953046 -vn -0.043579 -0.299675 0.953046 -vn -0.043579 -0.299675 0.953046 -vn -0.043579 -0.299674 0.953046 -vn -0.043579 -0.299674 0.953046 -vn -0.960922 -0.083057 0.264066 -vn -0.846727 -0.159595 0.507526 -vn -0.960918 -0.083057 0.264080 -vn -0.960918 -0.083057 0.264080 -vn -0.846727 -0.159595 0.507526 -vn -0.846726 -0.159588 0.507531 -vn -1.000000 0.000000 -0.000000 -vn -0.960922 -0.083057 0.264066 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -0.960922 -0.083057 0.264066 -vn -0.960918 -0.083057 0.264080 -vn 0.962669 -0.081214 0.258209 -vn 1.000000 0.000000 -0.000000 -vn 0.962660 -0.081228 0.258239 -vn 0.962660 -0.081228 0.258239 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 0.853455 -0.156328 0.497167 -vn 0.962669 -0.081214 0.258209 -vn 0.853454 -0.156338 0.497167 -vn 0.853454 -0.156338 0.497167 -vn 0.962669 -0.081214 0.258209 -vn 0.962660 -0.081228 0.258239 -vn 0.000000 -0.299959 0.953952 -vn 0.000000 -0.299959 0.953952 -vn 0.000000 -0.299959 0.953952 -vn 0.000000 -0.299959 0.953952 -vn 0.000000 -0.299959 0.953952 -vn 0.000000 -0.299959 0.953952 -vn -0.922398 -0.115888 0.368446 -vn -0.922394 -0.115866 0.368461 -vn -0.922397 -0.115882 0.368450 -vn -0.922397 -0.115882 0.368450 -vn -0.922394 -0.115866 0.368461 -vn -0.922393 -0.115860 0.368466 -vn 0.000000 -0.300040 0.953927 -vn 0.000000 -0.300040 0.953927 -vn 0.000000 -0.300040 0.953927 -vn 0.000000 -0.300040 0.953927 -vn 0.000000 -0.300040 0.953927 -vn 0.000000 -0.300040 0.953927 -vn -0.754741 -0.196780 0.625814 -vn -0.754754 -0.196813 0.625788 -vn -0.754747 -0.196793 0.625803 -vn -0.754747 -0.196793 0.625803 -vn -0.754754 -0.196813 0.625788 -vn -0.754759 -0.196827 0.625777 -vn 0.000000 -0.299959 0.953952 -vn 0.000000 -0.299959 0.953952 -vn 0.000000 -0.299959 0.953952 -vn 0.000000 -0.299959 0.953952 -vn 0.000000 -0.299959 0.953952 -vn 0.000000 -0.299959 0.953952 -vn 0.887761 -0.138072 0.439109 -vn 0.887761 -0.138072 0.439109 -vn 0.887761 -0.138072 0.439109 -vn 0.887761 -0.138072 0.439109 -vn 0.887761 -0.138072 0.439109 -vn 0.887761 -0.138072 0.439109 -vn 0.000000 -0.299959 0.953952 -vn 0.000000 -0.299941 0.953958 -vn 0.000000 -0.299959 0.953952 -vn 0.000000 -0.299959 0.953952 -vn 0.000000 -0.299941 0.953958 -vn 0.000000 -0.299959 0.953952 -vn 0.000001 -0.953950 -0.299965 -vn 0.000004 -0.953954 -0.299953 -vn 0.000000 -0.953968 -0.299907 -vn 0.000000 -0.299959 0.953952 -vn 0.000000 -0.299941 0.953958 -vn 0.000000 -0.299959 0.953952 -vn 0.000000 -0.299959 0.953952 -vn 0.000000 -0.299941 0.953958 -vn 0.000000 -0.299959 0.953952 -vn 0.000000 -0.299959 0.953952 -vn 0.000000 -0.299941 0.953958 -vn 0.000000 -0.299941 0.953958 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn 0.000000 -0.299941 0.953958 -vn 0.000000 -0.299941 0.953958 -vn 0.000000 -0.551002 0.834504 -vn 0.000000 -0.551002 0.834504 -vn 0.000000 -0.299941 0.953958 -vn 0.000000 -0.551002 0.834504 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn 1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn -1.000000 0.000000 -0.000000 -vn 0.000000 -0.551002 0.834504 -vn 0.000000 -0.551002 0.834504 -vn 0.000000 -0.759493 0.650516 -vn 0.000000 -0.759493 0.650516 -vn 0.000000 -0.551002 0.834504 -vn 0.000000 -0.759493 0.650516 -vn 0.000000 0.809898 0.586570 -vn 0.000000 0.809898 0.586570 -vn 0.000000 0.809898 0.586570 -vn 0.000000 0.809898 0.586570 -vn 0.000000 0.809898 0.586570 -vn 0.000000 0.809898 0.586570 -vn 0.000000 -0.586564 0.809903 -vn 0.000000 -0.586564 0.809903 -vn 0.000000 -0.586564 0.809903 -vn 0.000000 -0.586564 0.809903 -vn 0.000000 -0.586564 0.809903 -vn 0.000000 -0.586564 0.809903 -vn 0.992400 0.099663 0.072181 -vn 0.992400 0.099661 0.072179 -vn 0.992403 0.099643 0.072161 -vn 0.992403 0.099643 0.072161 -vn 0.992400 0.099661 0.072179 -vn 0.992404 0.099641 0.072159 -vn -0.992404 0.099641 0.072159 -vn -0.992400 0.099661 0.072179 -vn -0.992403 0.099643 0.072161 -vn -0.992403 0.099643 0.072161 -vn -0.992400 0.099661 0.072179 -vn -0.992400 0.099663 0.072181 -vn 0.000000 0.809901 0.586566 -vn 0.000000 0.809901 0.586566 -vn 0.000000 0.809901 0.586566 -vn 0.000000 0.809901 0.586566 -vn 0.000000 0.809901 0.586566 -vn 0.000000 0.809901 0.586566 -vn 0.000000 -0.586733 0.809781 -vn 0.000000 -0.586733 0.809781 -vn 0.000000 -0.586733 0.809781 -vn 0.000000 -0.586733 0.809781 -vn 0.000000 -0.586733 0.809781 -vn 0.000000 -0.586733 0.809781 -vn 0.965697 0.210307 0.152314 -vn 0.965698 0.210306 0.152313 -vn 0.965702 0.210294 0.152302 -vn 0.965702 0.210294 0.152302 -vn 0.965698 0.210306 0.152313 -vn 0.965702 0.210293 0.152301 -vn -0.965702 0.210293 0.152301 -vn -0.965698 0.210306 0.152313 -vn -0.965702 0.210294 0.152302 -vn -0.965702 0.210294 0.152302 -vn -0.965698 0.210306 0.152313 -vn -0.965697 0.210307 0.152314 -vn -0.000008 0.953953 0.299957 -vn -0.000009 0.953949 0.299969 -vn 0.000000 0.953973 0.299894 -vn 0.000002 0.953947 0.299974 -vn -0.000008 0.953953 0.299957 -vn 0.000000 0.953954 0.299955 -vn -0.000008 0.953953 0.299957 -vn -0.000005 0.953947 0.299976 -vn -0.000009 0.953949 0.299969 -vn -0.000009 0.953949 0.299969 -vn -0.000005 0.953947 0.299976 -vn -0.000032 0.953926 0.300043 -vn -0.000009 0.953949 0.299969 -vn -0.000040 0.953927 0.300039 -vn 0.000002 0.953958 0.299942 -vn 0.000002 0.953947 0.299975 -vn 0.000011 0.953941 0.299994 -vn 0.000000 0.953915 0.300077 -vn 0.000001 0.953950 0.299964 -vn 0.000002 0.953947 0.299975 -vn -0.000001 0.953975 0.299885 -vn -0.000001 0.953975 0.299885 -vn 0.000002 0.953947 0.299975 -vn 0.000000 0.953976 0.299882 -vn 0.000001 0.953950 0.299964 -vn 0.000002 0.953935 0.300013 -vn 0.000002 0.953947 0.299975 -vn 0.000002 0.953935 0.300013 -vn 0.000006 0.953944 0.299986 -vn 0.000002 0.953947 0.299975 -vn 0.000002 0.953947 0.299975 -vn 0.000006 0.953944 0.299986 -vn 0.000011 0.953941 0.299994 -vn 0.000006 0.953944 0.299986 -vn -0.000005 0.953947 0.299976 -vn 0.000002 0.953947 0.299974 -vn 0.000002 0.953947 0.299974 -vn -0.000005 0.953947 0.299976 -vn -0.000008 0.953953 0.299957 -vn 0.000000 -0.953945 -0.299981 -vn -0.000002 -0.953947 -0.299974 -vn -0.000005 -0.953948 -0.299972 -vn -0.000005 -0.953948 -0.299972 -vn -0.000002 -0.953947 -0.299974 -vn -0.000005 -0.953951 -0.299963 -vn -0.000002 -0.953947 -0.299974 -vn 0.000000 -0.953945 -0.299981 -vn 0.000001 -0.953950 -0.299965 -vn -0.000002 -0.953949 -0.299968 -vn -0.000002 -0.953947 -0.299975 -vn 0.000004 -0.953954 -0.299953 -vn 0.000004 -0.953954 -0.299953 -vn -0.000002 -0.953947 -0.299975 -vn 0.000000 -0.953945 -0.299983 -vn 0.000000 -0.953945 -0.299981 -vn -0.000000 -0.953951 -0.299963 -vn 0.000001 -0.953950 -0.299965 -vn 0.000001 -0.953950 -0.299965 -vn -0.000000 -0.953951 -0.299963 -vn 0.000004 -0.953954 -0.299953 -vn -0.000000 -0.953951 -0.299963 -vn -0.000002 -0.953949 -0.299968 -vn 0.000004 -0.953954 -0.299953 -vn -0.000005 -0.953951 -0.299963 -vn -0.000002 -0.953947 -0.299974 -vn 0.000000 -0.953954 -0.299955 -vn 0.000023 -0.953955 -0.299950 -vn 0.000006 -0.953949 -0.299970 -vn 0.000016 -0.953945 -0.299982 -vn -0.000022 -0.953947 -0.299976 -vn 0.000006 -0.953949 -0.299970 -vn 0.000001 -0.953930 -0.300031 -vn -0.000018 -0.953947 -0.299975 -vn 0.000006 -0.953949 -0.299970 -vn -0.000022 -0.953947 -0.299976 -vn 0.000016 -0.953945 -0.299982 -vn 0.000006 -0.953949 -0.299970 -vn -0.000018 -0.953947 -0.299975 -vn -0.528790 -0.207909 0.822894 -vn -0.529347 -0.206827 0.822809 -vn -0.496517 -0.108663 0.861199 -vn -0.496517 -0.108663 0.861199 -vn -0.529347 -0.206827 0.822809 -vn -0.493995 -0.107474 0.862797 -vn 0.542548 0.261481 -0.798291 -vn 0.538860 0.263168 -0.800233 -vn 0.542729 0.261315 -0.798223 -vn 0.542729 0.261315 -0.798223 -vn 0.538860 0.263168 -0.800233 -vn 0.543179 0.260620 -0.798144 -vn 0.538860 0.263168 -0.800233 -vn 0.555186 0.305408 -0.773624 -vn 0.543179 0.260620 -0.798144 -vn 0.555186 0.305408 -0.773624 -vn 0.559618 0.312824 -0.767443 -vn 0.543179 0.260620 -0.798144 -vn 0.543179 0.260620 -0.798144 -vn 0.559618 0.312824 -0.767443 -vn 0.529346 0.206824 -0.822810 -vn 0.529346 0.206824 -0.822810 -vn 0.559618 0.312824 -0.767443 -vn 0.528811 0.207898 -0.822884 -vn 0.528811 0.207898 -0.822884 -vn 0.559618 0.312824 -0.767443 -vn 0.539256 0.262475 -0.800194 -vn 0.559618 0.312824 -0.767443 -vn 0.542412 0.261566 -0.798356 -vn 0.539256 0.262475 -0.800194 -vn 0.542412 0.261566 -0.798356 -vn 0.543115 0.261150 -0.798014 -vn 0.539256 0.262475 -0.800194 -vn 0.543115 0.261150 -0.798014 -vn 0.543135 0.261128 -0.798008 -vn 0.539256 0.262475 -0.800194 -vn 0.528811 0.207898 -0.822884 -vn 0.496521 0.108631 -0.861201 -vn 0.529346 0.206824 -0.822810 -vn 0.529346 0.206824 -0.822810 -vn 0.496521 0.108631 -0.861201 -vn 0.493980 0.107433 -0.862810 -vn 0.699477 0.385150 0.601990 -vn 0.699448 0.385236 0.601968 -vn 0.605421 0.536895 0.587545 -vn 0.605421 0.536895 0.587545 -vn 0.699448 0.385236 0.601968 -vn 0.605431 0.536918 0.587514 -vn 0.699477 0.385150 0.601990 -vn 0.835805 -0.076421 0.543682 -vn 0.699448 0.385236 0.601968 -vn 0.699448 0.385236 0.601968 -vn 0.835805 -0.076421 0.543682 -vn 0.835823 -0.076528 0.543640 -vn 0.835805 -0.076421 0.543682 -vn 0.711226 -0.648338 0.271691 -vn 0.835823 -0.076528 0.543640 -vn 0.835823 -0.076528 0.543640 -vn 0.711226 -0.648338 0.271691 -vn 0.711256 -0.648301 0.271698 -vn 0.711226 -0.648338 0.271691 -vn 0.362955 -0.930027 -0.057562 -vn 0.711256 -0.648301 0.271698 -vn 0.711256 -0.648301 0.271698 -vn 0.362955 -0.930027 -0.057562 -vn 0.363615 -0.929800 -0.057064 -vn 0.409154 -0.912241 -0.020229 -vn 0.431409 -0.902155 -0.001797 -vn 0.362955 -0.930027 -0.057562 -vn 0.362955 -0.930027 -0.057562 -vn 0.431409 -0.902155 -0.001797 -vn 0.363615 -0.929800 -0.057064 -vn 0.409154 -0.912241 -0.020229 -vn 0.613449 -0.772403 0.164544 -vn 0.431409 -0.902155 -0.001797 -vn 0.431409 -0.902155 -0.001797 -vn 0.613449 -0.772403 0.164544 -vn 0.613449 -0.772403 0.164543 -vn -0.256998 -0.853081 -0.454097 -vn -0.257005 -0.853113 -0.454034 -vn -0.257002 -0.853096 -0.454068 -vn -0.257002 -0.853096 -0.454068 -vn -0.257005 -0.853113 -0.454034 -vn -0.257009 -0.853127 -0.454005 -vn -0.756024 -0.261580 -0.600004 -vn -0.771414 -0.220366 -0.596959 -vn -0.837203 0.094028 -0.538749 -vn -0.837203 0.094028 -0.538749 -vn -0.771414 -0.220366 -0.596959 -vn -0.837224 0.094034 -0.538715 -vn -0.711641 -0.361377 -0.602473 -vn -0.711600 -0.361485 -0.602457 -vn -0.756024 -0.261580 -0.600004 -vn -0.756024 -0.261580 -0.600004 -vn -0.711600 -0.361485 -0.602457 -vn -0.771414 -0.220366 -0.596959 -vn -0.711641 -0.361377 -0.602473 -vn -0.839819 0.171460 -0.515077 -vn -0.711600 -0.361485 -0.602457 -vn -0.711600 -0.361485 -0.602457 -vn -0.839819 0.171460 -0.515077 -vn -0.839814 0.171498 -0.515073 -vn -0.839819 0.171460 -0.515077 -vn -0.658607 0.722077 -0.211760 -vn -0.839814 0.171498 -0.515073 -vn -0.839814 0.171498 -0.515073 -vn -0.658607 0.722077 -0.211760 -vn -0.658573 0.722107 -0.211763 -vn -0.658607 0.722077 -0.211760 -vn -0.339481 0.937545 0.075911 -vn -0.658573 0.722107 -0.211763 -vn -0.658573 0.722107 -0.211763 -vn -0.339481 0.937545 0.075911 -vn -0.338967 0.937701 0.076278 -vn -0.339481 0.937545 0.075911 -vn -0.207632 0.962668 0.173664 -vn -0.338967 0.937701 0.076278 -vn -0.338967 0.937701 0.076278 -vn -0.207632 0.962668 0.173664 -vn -0.207584 0.962684 0.173636 -vn -0.758009 0.561350 -0.332127 -vn -0.758064 0.561309 -0.332071 -vn -0.758028 0.561336 -0.332108 -vn -0.758028 0.561336 -0.332108 -vn -0.758064 0.561309 -0.332071 -vn -0.758083 0.561294 -0.332052 -vn 0.235387 0.864929 0.443272 -vn 0.235389 0.864929 0.443271 -vn 0.235388 0.864929 0.443271 -vn 0.235388 0.864929 0.443271 -vn 0.235389 0.864929 0.443271 -vn 0.235390 0.864929 0.443270 -vn 0.830639 -0.306628 0.464778 -vn 0.830664 -0.306605 0.464748 -vn 0.830712 -0.306562 0.464691 -vn 0.830712 -0.306562 0.464691 -vn 0.830664 -0.306605 0.464748 -vn 0.830737 -0.306540 0.464661 -vn -0.555156 -0.305430 0.773637 -vn -0.559601 -0.312809 0.767461 -vn -0.581574 -0.417870 0.697966 -vn -0.581574 -0.417870 0.697966 -vn -0.559601 -0.312809 0.767461 -vn -0.593004 -0.427010 0.682648 -vn -0.542697 -0.261391 0.798219 -vn -0.542768 -0.261326 0.798193 -vn -0.538790 -0.263231 0.800259 -vn -0.542768 -0.261326 0.798193 -vn -0.543188 -0.260613 0.798140 -vn -0.538790 -0.263231 0.800259 -vn -0.538790 -0.263231 0.800259 -vn -0.543188 -0.260613 0.798140 -vn -0.555156 -0.305430 0.773637 -vn -0.555156 -0.305430 0.773637 -vn -0.543188 -0.260613 0.798140 -vn -0.559601 -0.312809 0.767461 -vn -0.543188 -0.260613 0.798140 -vn -0.529347 -0.206827 0.822809 -vn -0.559601 -0.312809 0.767461 -vn -0.529347 -0.206827 0.822809 -vn -0.528790 -0.207909 0.822894 -vn -0.559601 -0.312809 0.767461 -vn -0.528790 -0.207909 0.822894 -vn -0.539261 -0.262469 0.800192 -vn -0.559601 -0.312809 0.767461 -vn -0.559601 -0.312809 0.767461 -vn -0.539261 -0.262469 0.800192 -vn -0.542425 -0.261554 0.798351 -vn -0.539261 -0.262469 0.800192 -vn -0.543193 -0.261101 0.797977 -vn -0.542425 -0.261554 0.798351 -vn -0.543193 -0.261101 0.797977 -vn -0.543123 -0.261115 0.798020 -vn -0.542425 -0.261554 0.798351 -vn 0.555186 0.305408 -0.773624 -vn 0.581597 0.417889 -0.697936 -vn 0.559618 0.312824 -0.767443 -vn 0.559618 0.312824 -0.767443 -vn 0.581597 0.417889 -0.697936 -vn 0.593078 0.427070 -0.682547 -vn -0.527445 -0.204722 0.824555 -vn -0.521047 -0.210346 0.827203 -vn -0.499157 -0.120512 0.858091 -vn -0.499157 -0.120512 0.858091 -vn -0.521047 -0.210346 0.827203 -vn -0.505285 -0.123061 0.854133 -vn 0.559592 0.223151 -0.798161 -vn 0.546538 0.239366 -0.802496 -vn 0.539218 0.242967 -0.806357 -vn 0.539218 0.242967 -0.806357 -vn 0.546538 0.239366 -0.802496 -vn 0.529571 0.257265 -0.808313 -vn 0.546538 0.239366 -0.802496 -vn 0.546101 0.286070 -0.787361 -vn 0.529571 0.257265 -0.808313 -vn 0.546101 0.286070 -0.787361 -vn 0.565282 0.295103 -0.770306 -vn 0.529571 0.257265 -0.808313 -vn 0.529571 0.257265 -0.808313 -vn 0.565282 0.295103 -0.770306 -vn 0.521058 0.210340 -0.827197 -vn 0.521058 0.210340 -0.827197 -vn 0.565282 0.295103 -0.770306 -vn 0.527421 0.204722 -0.824570 -vn 0.527421 0.204722 -0.824570 -vn 0.565282 0.295103 -0.770306 -vn 0.553008 0.246282 -0.795944 -vn 0.565282 0.295103 -0.770306 -vn 0.576294 0.237654 -0.781924 -vn 0.553008 0.246282 -0.795944 -vn 0.576294 0.237654 -0.781924 -vn 0.559688 0.249093 -0.790381 -vn 0.553008 0.246282 -0.795944 -vn 0.559688 0.249093 -0.790381 -vn 0.549439 0.260927 -0.793747 -vn 0.553008 0.246282 -0.795944 -vn 0.527421 0.204722 -0.824570 -vn 0.499193 0.120559 -0.858063 -vn 0.521058 0.210340 -0.827197 -vn 0.521058 0.210340 -0.827197 -vn 0.499193 0.120559 -0.858063 -vn 0.505407 0.123144 -0.854049 -vn 0.602572 0.544224 0.583718 -vn 0.702840 0.379990 0.601351 -vn 0.602547 0.544227 0.583741 -vn 0.602547 0.544227 0.583741 -vn 0.702840 0.379990 0.601351 -vn 0.704472 0.376771 0.601467 -vn 0.702840 0.379990 0.601351 -vn 0.834696 -0.101593 0.541259 -vn 0.704472 0.376771 0.601467 -vn 0.704472 0.376771 0.601467 -vn 0.834696 -0.101593 0.541259 -vn 0.834470 -0.097428 0.542372 -vn 0.693999 -0.668399 0.267597 -vn 0.696653 -0.664399 0.270644 -vn 0.834696 -0.101593 0.541259 -vn 0.834696 -0.101593 0.541259 -vn 0.696653 -0.664399 0.270644 -vn 0.834470 -0.097428 0.542372 -vn 0.344476 -0.937107 -0.056276 -vn 0.345273 -0.936851 -0.055638 -vn 0.693999 -0.668399 0.267597 -vn 0.693999 -0.668399 0.267597 -vn 0.345273 -0.936851 -0.055638 -vn 0.696653 -0.664399 0.270644 -vn 0.411670 -0.911330 -0.002210 -vn 0.428167 -0.903626 0.011550 -vn 0.344476 -0.937107 -0.056276 -vn 0.344476 -0.937107 -0.056276 -vn 0.428167 -0.903626 0.011550 -vn 0.345273 -0.936851 -0.055638 -vn 0.411670 -0.911330 -0.002210 -vn 0.621304 -0.760466 0.188873 -vn 0.428167 -0.903626 0.011550 -vn 0.428167 -0.903626 0.011550 -vn 0.621304 -0.760466 0.188873 -vn 0.621300 -0.760466 0.188885 -vn -0.278012 -0.845821 -0.455297 -vn -0.278023 -0.845854 -0.455230 -vn -0.278017 -0.845836 -0.455268 -vn -0.278017 -0.845836 -0.455268 -vn -0.278023 -0.845854 -0.455230 -vn -0.278028 -0.845868 -0.455201 -vn -0.769322 -0.224426 -0.598144 -vn -0.781261 -0.188402 -0.595093 -vn -0.836255 0.142640 -0.529463 -vn -0.836255 0.142640 -0.529463 -vn -0.781261 -0.188402 -0.595093 -vn -0.836249 0.142639 -0.529473 -vn -0.769322 -0.224426 -0.598144 -vn -0.720273 -0.344710 -0.601982 -vn -0.781261 -0.188402 -0.595093 -vn -0.781261 -0.188402 -0.595093 -vn -0.720273 -0.344710 -0.601982 -vn -0.722511 -0.339911 -0.602028 -vn -0.720273 -0.344710 -0.601982 -vn -0.836094 0.192098 -0.513853 -vn -0.722511 -0.339911 -0.602028 -vn -0.722511 -0.339911 -0.602028 -vn -0.836094 0.192098 -0.513853 -vn -0.836130 0.190417 -0.514419 -vn -0.640987 0.738505 -0.209156 -vn -0.643222 0.735885 -0.211514 -vn -0.836094 0.192098 -0.513853 -vn -0.836094 0.192098 -0.513853 -vn -0.643222 0.735885 -0.211514 -vn -0.836130 0.190417 -0.514419 -vn -0.307180 0.947810 0.085418 -vn -0.307865 0.947635 0.084892 -vn -0.640987 0.738505 -0.209156 -vn -0.640987 0.738505 -0.209156 -vn -0.307865 0.947635 0.084892 -vn -0.643222 0.735885 -0.211514 -vn -0.307865 0.947635 0.084892 -vn -0.307180 0.947810 0.085418 -vn -0.164233 0.967987 0.189814 -vn -0.164233 0.967987 0.189814 -vn -0.307180 0.947810 0.085418 -vn -0.164233 0.967987 0.189814 -vn -0.729536 0.609604 -0.310097 -vn -0.729537 0.609603 -0.310095 -vn -0.729536 0.609604 -0.310097 -vn -0.729536 0.609604 -0.310097 -vn -0.729537 0.609603 -0.310095 -vn -0.729538 0.609603 -0.310095 -vn 0.254629 0.859443 0.443309 -vn 0.254562 0.859441 0.443350 -vn 0.254601 0.859442 0.443326 -vn 0.254601 0.859442 0.443326 -vn 0.254562 0.859441 0.443350 -vn 0.254534 0.859440 0.443368 -vn 0.822825 -0.332602 0.460798 -vn 0.822814 -0.332613 0.460811 -vn 0.822792 -0.332632 0.460835 -vn 0.822792 -0.332632 0.460835 -vn 0.822814 -0.332613 0.460811 -vn 0.822781 -0.332642 0.460848 -vn -0.546135 -0.286051 0.787344 -vn -0.565278 -0.295064 0.770323 -vn -0.577940 -0.382619 0.720824 -vn -0.577940 -0.382619 0.720824 -vn -0.565278 -0.295064 0.770323 -vn -0.614751 -0.410393 0.673543 -vn -0.559617 -0.223203 0.798128 -vn -0.539321 -0.242945 0.806294 -vn -0.546452 -0.239440 0.802533 -vn -0.539321 -0.242945 0.806294 -vn -0.529578 -0.257294 0.808299 -vn -0.546452 -0.239440 0.802533 -vn -0.546452 -0.239440 0.802533 -vn -0.529578 -0.257294 0.808299 -vn -0.546135 -0.286051 0.787344 -vn -0.546135 -0.286051 0.787344 -vn -0.529578 -0.257294 0.808299 -vn -0.565278 -0.295064 0.770323 -vn -0.529578 -0.257294 0.808299 -vn -0.521047 -0.210346 0.827203 -vn -0.565278 -0.295064 0.770323 -vn -0.521047 -0.210346 0.827203 -vn -0.527445 -0.204722 0.824555 -vn -0.565278 -0.295064 0.770323 -vn -0.527445 -0.204722 0.824555 -vn -0.552639 -0.245811 0.796346 -vn -0.565278 -0.295064 0.770323 -vn -0.565278 -0.295064 0.770323 -vn -0.552639 -0.245811 0.796346 -vn -0.576275 -0.238396 0.781713 -vn -0.552639 -0.245811 0.796346 -vn -0.556088 -0.251338 0.792209 -vn -0.576275 -0.238396 0.781713 -vn -0.556088 -0.251338 0.792209 -vn -0.568421 -0.248483 0.784317 -vn -0.576275 -0.238396 0.781713 -vn 0.546101 0.286070 -0.787361 -vn 0.577902 0.382674 -0.720826 -vn 0.565282 0.295103 -0.770306 -vn 0.565282 0.295103 -0.770306 -vn 0.577902 0.382674 -0.720826 -vn 0.614845 0.410555 -0.673357 -vn -0.000034 -0.960657 -0.277738 -vn 0.382293 -0.886674 -0.260118 -vn 0.382276 -0.886684 -0.260108 -vn 0.382276 -0.886684 -0.260108 -vn -0.000034 -0.960657 -0.277738 -vn -0.000034 -0.960657 -0.277738 -vn 0.382293 -0.886674 -0.260118 -vn 0.706342 -0.676101 -0.209685 -vn 0.706319 -0.676125 -0.209686 -vn 0.706319 -0.676125 -0.209686 -vn 0.382276 -0.886684 -0.260108 -vn 0.382293 -0.886674 -0.260118 -vn 0.706342 -0.676101 -0.209685 -vn 0.922902 -0.360890 -0.134202 -vn 0.922895 -0.360906 -0.134207 -vn 0.922895 -0.360906 -0.134207 -vn 0.706319 -0.676125 -0.209686 -vn 0.706342 -0.676101 -0.209685 -vn 0.922902 -0.360890 -0.134202 -vn 0.998923 0.010792 -0.045122 -vn 0.998923 0.010755 -0.045127 -vn 0.998923 0.010755 -0.045127 -vn 0.922895 -0.360906 -0.134207 -vn 0.922902 -0.360890 -0.134202 -vn 0.998923 0.010792 -0.045122 -vn 0.922877 0.382589 0.043869 -vn 0.922885 0.382568 0.043870 -vn 0.922885 0.382568 0.043870 -vn 0.998923 0.010755 -0.045127 -vn 0.998923 0.010792 -0.045122 -vn 0.922877 0.382589 0.043869 -vn 0.706352 0.697725 0.119361 -vn 0.706352 0.697725 0.119357 -vn 0.706352 0.697725 0.119357 -vn 0.922885 0.382568 0.043870 -vn 0.922877 0.382589 0.043869 -vn 0.706352 0.697725 0.119361 -vn 0.382242 0.908327 0.169800 -vn 0.382239 0.908328 0.169804 -vn 0.382239 0.908328 0.169804 -vn 0.706352 0.697725 0.119357 -vn 0.706352 0.697725 0.119361 -vn 0.382242 0.908327 0.169800 -vn 0.000015 0.982272 0.187459 -vn 0.000014 0.982273 0.187459 -vn 0.000014 0.982273 0.187459 -vn 0.382239 0.908328 0.169804 -vn 0.382242 0.908327 0.169800 -vn 0.000015 0.982272 0.187459 -vn -0.382273 0.908314 0.169801 -vn -0.382269 0.908317 0.169798 -vn -0.382269 0.908317 0.169798 -vn 0.000014 0.982273 0.187459 -vn 0.000015 0.982272 0.187459 -vn -0.382273 0.908314 0.169801 -vn -0.706321 0.697755 0.119364 -vn -0.706322 0.697753 0.119368 -vn -0.706322 0.697753 0.119368 -vn -0.382269 0.908317 0.169798 -vn -0.382273 0.908314 0.169801 -vn -0.706321 0.697755 0.119364 -vn -0.922898 0.382537 0.043862 -vn -0.922906 0.382520 0.043853 -vn -0.922906 0.382520 0.043853 -vn -0.706322 0.697753 0.119368 -vn -0.706321 0.697755 0.119364 -vn -0.922898 0.382537 0.043862 -vn -0.998923 0.010848 -0.045105 -vn -0.998923 0.010811 -0.045117 -vn -0.998923 0.010811 -0.045117 -vn -0.922906 0.382520 0.043853 -vn -0.922898 0.382537 0.043862 -vn -0.998923 0.010848 -0.045105 -vn -0.922882 -0.360937 -0.134214 -vn -0.922875 -0.360953 -0.134217 -vn -0.922875 -0.360953 -0.134217 -vn -0.998923 0.010811 -0.045117 -vn -0.998923 0.010848 -0.045105 -vn -0.922882 -0.360937 -0.134214 -vn -0.706374 -0.676072 -0.209673 -vn -0.706350 -0.676094 -0.209683 -vn -0.706350 -0.676094 -0.209683 -vn -0.922875 -0.360953 -0.134217 -vn -0.922882 -0.360937 -0.134214 -vn -0.706374 -0.676072 -0.209673 -vn -0.382243 -0.886697 -0.260111 -vn -0.382228 -0.886701 -0.260124 -vn -0.382228 -0.886701 -0.260124 -vn -0.706350 -0.676094 -0.209683 -vn -0.706374 -0.676072 -0.209673 -vn -0.382243 -0.886697 -0.260111 -vn -0.000034 -0.960657 -0.277738 -vn -0.000034 -0.960657 -0.277738 -vn -0.000034 -0.960657 -0.277738 -vn -0.382228 -0.886701 -0.260124 -vn -0.382243 -0.886697 -0.260111 -# 10365 vertex normals - -vt 0.871414 0.798087 0.000000 -vt 0.852228 0.809224 0.000000 -vt 0.861148 0.786935 0.000000 -vt 0.841327 0.795030 0.000000 -vt 0.828293 0.758206 0.000000 -vt 0.816020 0.756311 0.000000 -vt 0.828099 0.744737 0.000000 -vt 0.813639 0.744737 0.000000 -vt 0.845828 0.744737 0.000000 -vt 0.846646 0.759257 0.000000 -vt 0.891059 0.903942 0.000000 -vt 0.935823 0.931981 0.000000 -vt 0.872802 0.939067 0.000000 -vt 0.918410 0.965970 0.000000 -vt 0.861200 0.819309 0.000000 -vt 0.853690 0.824558 0.000000 -vt 0.878421 0.856169 0.000000 -vt 0.865865 0.866034 0.000000 -vt 0.868269 0.851807 0.000000 -vt 0.860035 0.859357 0.000000 -vt 0.888632 0.812956 0.000000 -vt 0.911588 0.875588 0.000000 -vt 0.954616 0.901820 0.000000 -vt 0.818244 0.881121 0.000000 -vt 0.796012 0.884690 0.000000 -vt 0.815839 0.874584 0.000000 -vt 0.794596 0.876787 0.000000 -vt 0.765906 0.885028 0.000000 -vt 0.765811 0.876702 0.000000 -vt 0.742155 0.870843 0.000000 -vt 0.739925 0.878656 0.000000 -vt 0.726420 0.862641 0.000000 -vt 0.720029 0.868469 0.000000 -vt 0.711174 0.858174 0.000000 -vt 0.718540 0.853732 0.000000 -vt 0.694060 0.814896 0.000000 -vt 0.703556 0.812889 0.000000 -vt 0.703614 0.843515 0.000000 -vt 0.713591 0.842403 0.000000 -vt 0.685832 0.779015 0.000000 -vt 0.694305 0.779028 0.000000 -vt 0.681876 0.744763 0.000000 -vt 0.689209 0.744760 0.000000 -vt 0.810489 0.915025 0.000000 -vt 0.789643 0.904915 0.000000 -vt 0.763502 0.897211 0.000000 -vt 0.736882 0.891458 0.000000 -vt 0.833882 0.877925 0.000000 -vt 0.830196 0.870154 0.000000 -vt 0.665446 0.821078 0.000000 -vt 0.675263 0.855962 0.000000 -vt 0.657850 0.783230 0.000000 -vt 0.654816 0.744778 0.000000 -vt 0.715693 0.882966 0.000000 -vt 0.689929 0.874198 0.000000 -vt 0.632023 0.869789 0.000000 -vt 0.648187 0.889954 0.000000 -vt 0.624729 0.831600 0.000000 -vt 0.617650 0.787994 0.000000 -vt 0.614571 0.744755 0.000000 -vt 0.995992 0.846520 0.000000 -vt 0.996536 0.855982 0.000000 -vt 0.991501 0.845898 0.000000 -vt 0.988333 0.853618 0.000000 -vt 0.961924 0.906842 0.000000 -vt 0.944564 0.937158 0.000000 -vt 0.928403 0.970303 0.000000 -vt 0.972178 0.874978 0.000000 -vt 0.981805 0.879609 0.000000 -vt 0.882666 0.843967 0.000000 -vt 0.869907 0.843064 0.000000 -vt 0.922122 0.842760 0.000000 -vt 0.802869 0.744741 0.000000 -vt 0.807042 0.758253 0.000000 -vt 0.814339 0.770298 0.000000 -vt 0.822772 0.766557 0.000000 -vt 0.824571 0.779950 0.000000 -vt 0.832115 0.776998 0.000000 -vt 0.839157 0.813215 0.000000 -vt 0.832958 0.799411 0.000000 -vt 0.844871 0.823460 0.000000 -vt 0.847351 0.838936 0.000000 -vt 0.841673 0.846389 0.000000 -vt 0.810947 0.863486 0.000000 -vt 0.792244 0.868903 0.000000 -vt 0.765926 0.870387 0.000000 -vt 0.743682 0.866644 0.000000 -vt 0.725129 0.849660 0.000000 -vt 0.732520 0.855317 0.000000 -vt 0.709422 0.811892 0.000000 -vt 0.719360 0.841105 0.000000 -vt 0.700735 0.778593 0.000000 -vt 0.696979 0.744761 0.000000 -vt 0.823595 0.857982 0.000000 -vt 0.844697 0.865754 0.000000 -vt 0.832563 0.852946 0.000000 -vt 0.744624 0.859953 0.000000 -vt 0.765077 0.863689 0.000000 -vt 0.790880 0.864773 0.000000 -vt 0.808861 0.860170 0.000000 -vt 0.820940 0.854831 0.000000 -vt 0.829727 0.850030 0.000000 -vt 0.837776 0.843606 0.000000 -vt 0.842833 0.837312 0.000000 -vt 0.840713 0.823410 0.000000 -vt 0.836029 0.814689 0.000000 -vt 0.827901 0.802468 0.000000 -vt 0.814958 0.787188 0.000000 -vt 0.805131 0.775627 0.000000 -vt 0.798631 0.761364 0.000000 -vt 0.794711 0.744744 0.000000 -vt 0.823022 0.805445 0.000000 -vt 0.810293 0.790673 0.000000 -vt 0.800652 0.778128 0.000000 -vt 0.792317 0.762532 0.000000 -vt 0.787037 0.744747 0.000000 -vt 0.733809 0.904559 0.000000 -vt 0.760316 0.911703 0.000000 -vt 0.991287 0.184616 0.000000 -vt 0.966726 0.142552 0.000000 -vt 0.997388 0.179701 0.000000 -vt 0.972845 0.139150 0.000000 -vt 0.961503 0.229079 0.000000 -vt 0.947051 0.254809 0.000000 -vt 0.918936 0.214844 0.000000 -vt 0.978510 0.203906 0.000000 -vt 0.940721 0.176716 0.000000 -vt 0.933799 0.280513 0.000000 -vt 0.905448 0.246653 0.000000 -vt 0.957712 0.149728 0.000000 -vt 0.987296 0.837510 0.000000 -vt 0.984188 0.841948 0.000000 -vt 0.930988 0.811492 0.000000 -vt 0.927908 0.815945 0.000000 -vt 0.874624 0.782600 0.000000 -vt 0.879310 0.778941 0.000000 -vt 0.883390 0.790657 0.000000 -vt 0.886913 0.786537 0.000000 -vt 0.867629 0.773037 0.000000 -vt 0.873149 0.770324 0.000000 -vt 0.863507 0.760529 0.000000 -vt 0.869542 0.759895 0.000000 -vt 0.863822 0.744725 0.000000 -vt 0.869999 0.748511 0.000000 -vt 0.849470 0.873433 0.000000 -vt 0.850926 0.922938 0.000000 -vt 0.832410 0.914605 0.000000 -vt 0.850628 0.946645 0.000000 -vt 0.824017 0.932271 0.000000 -vt 0.782108 0.922937 0.000000 -vt 0.852220 0.774364 0.000000 -vt 0.789699 0.861815 0.000000 -vt 0.806457 0.856563 0.000000 -vt 0.817326 0.851491 0.000000 -vt 0.831713 0.840069 0.000000 -vt 0.825793 0.846134 0.000000 -vt 0.834948 0.832574 0.000000 -vt 0.834331 0.824327 0.000000 -vt 0.831614 0.817057 0.000000 -vt 0.790882 0.763238 0.000000 -vt 0.785571 0.744748 0.000000 -vt 0.799636 0.779181 0.000000 -vt 0.727417 0.897469 0.000000 -vt 0.666699 0.895450 0.000000 -vt 0.687412 0.895364 0.000000 -vt 0.971997 0.103679 0.000000 -vt 0.982230 0.132221 0.000000 -vt 0.848733 0.990427 0.000000 -vt 0.906049 0.994898 0.000000 -vt 0.915518 0.995736 0.000000 -vt 0.994235 0.842300 0.000000 -vt 0.167314 0.941096 0.000000 -vt 0.157005 0.944138 0.000000 -vt 0.159509 0.928502 0.000000 -vt 0.151449 0.935019 0.000000 -vt 0.170045 0.955096 0.000000 -vt 0.159271 0.955096 0.000000 -vt 0.007461 0.900027 0.000000 -vt 0.147352 0.920573 0.000000 -vt 0.143002 0.929894 0.000000 -vt 0.134407 0.917116 0.000000 -vt 0.133248 0.927578 0.000000 -vt 0.092027 0.900998 0.000000 -vt 0.093769 0.900027 0.000000 -vt 0.079956 0.926907 0.000000 -vt 0.080295 0.916335 0.000000 -vt 0.092054 0.858902 0.000000 -vt 0.870027 0.293539 0.000000 -vt 0.898639 0.291452 0.000000 -vt 0.852039 0.313758 0.000000 -vt 0.887557 0.314149 0.000000 -vt 0.887490 0.319958 0.000000 -vt 0.863674 0.832905 0.000000 -vt 0.873407 0.831316 0.000000 -vt 0.848101 0.831633 0.000000 -vt 0.843067 0.831313 0.000000 -vt 0.960419 0.109997 0.000000 -vt 0.951667 0.076577 0.000000 -vt 0.962974 0.070631 0.000000 -vt 0.940444 0.034450 0.000000 -vt 0.952633 0.031365 0.000000 -vt 0.958689 0.139487 0.000000 -vt 0.950838 0.112785 0.000000 -vt 0.942291 0.079891 0.000000 -vt 0.931355 0.036950 0.000000 -vt 0.826583 0.965707 0.000000 -vt 0.835082 0.988600 0.000000 -vt 0.837427 0.951632 0.000000 -vt 0.713565 0.894176 0.000000 -vt 0.719793 0.778743 0.000000 -vt 0.719398 0.745624 0.000000 -vt 0.762929 0.761192 0.000000 -vt 0.759000 0.745624 0.000000 -vt 0.784902 0.783045 0.000000 -vt 0.722839 0.810315 0.000000 -vt 0.773162 0.774560 0.000000 -vt 0.819474 0.811538 0.000000 -vt 0.726166 0.838217 0.000000 -vt 0.815913 0.804902 0.000000 -vt 0.811087 0.799631 0.000000 -vt 0.800198 0.792446 0.000000 -vt 0.809371 0.832209 0.000000 -vt 0.801299 0.839856 0.000000 -vt 0.787602 0.848287 0.000000 -vt 0.730113 0.846807 0.000000 -vt 0.818819 0.818720 0.000000 -vt 0.815480 0.825394 0.000000 -vt 0.766623 0.855835 0.000000 -vt 0.736832 0.852377 0.000000 -vt 0.747833 0.856606 0.000000 -vt 0.015449 0.916548 0.000000 -vt 0.006293 0.926682 0.000000 -vt 0.007110 0.917489 0.000000 -vt 0.814404 0.948279 0.000000 -vt 0.802918 0.937081 0.000000 -vt 0.893087 0.314095 0.000000 -vt 0.095824 0.933535 0.000000 -vt 0.006082 0.933454 0.000000 -vt 0.129599 0.933505 0.000000 -vt 0.138341 0.935053 0.000000 -vt 0.146346 0.939368 0.000000 -vt 0.151038 0.946615 0.000000 -vt 0.152856 0.955096 0.000000 -vt 0.144859 0.871542 0.000000 -vt 0.150949 0.869044 0.000000 -vt 0.146576 0.879589 0.000000 -vt 0.153315 0.879592 0.000000 -vt 0.132861 0.860617 0.000000 -vt 0.124573 0.858902 0.000000 -vt 0.134998 0.854515 0.000000 -vt 0.125084 0.852531 0.000000 -vt 0.140435 0.864707 0.000000 -vt 0.144883 0.859885 0.000000 -vt 0.092027 0.858272 0.000000 -vt 0.093865 0.858902 0.000000 -vt 0.092417 0.852640 0.000000 -vt 0.007461 0.858902 0.000000 -vt 0.007452 0.852187 0.000000 -vt 0.090091 0.858902 0.000000 -vt 0.871074 0.691493 0.000000 -vt 0.860839 0.702619 0.000000 -vt 0.851934 0.680394 0.000000 -vt 0.841067 0.694553 0.000000 -vt 0.828133 0.731290 0.000000 -vt 0.815877 0.733185 0.000000 -vt 0.846453 0.730237 0.000000 -vt 0.890634 0.585910 0.000000 -vt 0.872415 0.550883 0.000000 -vt 0.935172 0.558265 0.000000 -vt 0.918070 0.524370 0.000000 -vt 0.853388 0.665099 0.000000 -vt 0.860880 0.670332 0.000000 -vt 0.878044 0.633561 0.000000 -vt 0.867920 0.637917 0.000000 -vt 0.865519 0.623725 0.000000 -vt 0.859704 0.630389 0.000000 -vt 0.888242 0.676658 0.000000 -vt 0.911120 0.614185 0.000000 -vt 0.953830 0.588286 0.000000 -vt 0.818016 0.608692 0.000000 -vt 0.815620 0.615215 0.000000 -vt 0.795841 0.605140 0.000000 -vt 0.794431 0.613024 0.000000 -vt 0.765813 0.604815 0.000000 -vt 0.765722 0.613118 0.000000 -vt 0.742130 0.618970 0.000000 -vt 0.726439 0.627156 0.000000 -vt 0.739903 0.611179 0.000000 -vt 0.720063 0.621346 0.000000 -vt 0.711235 0.631618 0.000000 -vt 0.718584 0.636045 0.000000 -vt 0.694188 0.674792 0.000000 -vt 0.703702 0.646243 0.000000 -vt 0.703661 0.676789 0.000000 -vt 0.713654 0.647347 0.000000 -vt 0.685979 0.710585 0.000000 -vt 0.694443 0.710570 0.000000 -vt 0.810271 0.574882 0.000000 -vt 0.789483 0.584973 0.000000 -vt 0.763413 0.592665 0.000000 -vt 0.736865 0.598411 0.000000 -vt 0.833615 0.611875 0.000000 -vt 0.829941 0.619629 0.000000 -vt 0.665644 0.668641 0.000000 -vt 0.675421 0.633843 0.000000 -vt 0.658043 0.706395 0.000000 -vt 0.715732 0.606889 0.000000 -vt 0.690040 0.615648 0.000000 -vt 0.632288 0.620073 0.000000 -vt 0.648399 0.599953 0.000000 -vt 0.625032 0.658163 0.000000 -vt 0.617948 0.701623 0.000000 -vt 0.995069 0.643040 0.000000 -vt 0.990604 0.643696 0.000000 -vt 0.995552 0.633629 0.000000 -vt 0.987415 0.636047 0.000000 -vt 0.961069 0.583273 0.000000 -vt 0.943905 0.553197 0.000000 -vt 0.928051 0.520151 0.000000 -vt 0.971278 0.614898 0.000000 -vt 0.980827 0.610256 0.000000 -vt 0.882292 0.645704 0.000000 -vt 0.869588 0.646646 0.000000 -vt 0.921577 0.646846 0.000000 -vt 0.806850 0.731062 0.000000 -vt 0.814103 0.719122 0.000000 -vt 0.824363 0.709601 0.000000 -vt 0.822583 0.722962 0.000000 -vt 0.831893 0.712543 0.000000 -vt 0.838896 0.676420 0.000000 -vt 0.832717 0.690188 0.000000 -vt 0.844593 0.666198 0.000000 -vt 0.847063 0.650758 0.000000 -vt 0.841397 0.643325 0.000000 -vt 0.810746 0.626281 0.000000 -vt 0.792090 0.620887 0.000000 -vt 0.765839 0.619417 0.000000 -vt 0.743656 0.623159 0.000000 -vt 0.725160 0.640106 0.000000 -vt 0.732529 0.634461 0.000000 -vt 0.709517 0.677781 0.000000 -vt 0.719412 0.648642 0.000000 -vt 0.700865 0.711006 0.000000 -vt 0.823364 0.631767 0.000000 -vt 0.844405 0.624013 0.000000 -vt 0.832310 0.636788 0.000000 -vt 0.744600 0.629834 0.000000 -vt 0.764996 0.626100 0.000000 -vt 0.790730 0.625007 0.000000 -vt 0.808665 0.629592 0.000000 -vt 0.820714 0.634913 0.000000 -vt 0.829481 0.639699 0.000000 -vt 0.837510 0.646105 0.000000 -vt 0.842556 0.652380 0.000000 -vt 0.840444 0.666247 0.000000 -vt 0.835773 0.674949 0.000000 -vt 0.827668 0.687141 0.000000 -vt 0.814770 0.702390 0.000000 -vt 0.804977 0.713925 0.000000 -vt 0.798510 0.728153 0.000000 -vt 0.822798 0.684172 0.000000 -vt 0.810113 0.698916 0.000000 -vt 0.800505 0.711432 0.000000 -vt 0.792205 0.726992 0.000000 -vt 0.733795 0.585344 0.000000 -vt 0.760231 0.578210 0.000000 -vt 0.749864 0.185042 0.000000 -vt 0.743741 0.180171 0.000000 -vt 0.774356 0.142860 0.000000 -vt 0.768210 0.139507 0.000000 -vt 0.779944 0.228845 0.000000 -vt 0.822322 0.214214 0.000000 -vt 0.794326 0.254341 0.000000 -vt 0.762833 0.204067 0.000000 -vt 0.800380 0.176439 0.000000 -vt 0.807594 0.279991 0.000000 -vt 0.835667 0.245974 0.000000 -vt 0.783340 0.150069 0.000000 -vt 0.986459 0.652072 0.000000 -vt 0.930486 0.678108 0.000000 -vt 0.983343 0.647676 0.000000 -vt 0.927411 0.673666 0.000000 -vt 0.874280 0.706939 0.000000 -vt 0.883021 0.698900 0.000000 -vt 0.878958 0.710590 0.000000 -vt 0.886537 0.703009 0.000000 -vt 0.867310 0.716479 0.000000 -vt 0.872816 0.719184 0.000000 -vt 0.863241 0.728954 0.000000 -vt 0.869238 0.729573 0.000000 -vt 0.869789 0.740903 0.000000 -vt 0.849164 0.616351 0.000000 -vt 0.850601 0.566978 0.000000 -vt 0.832136 0.575294 0.000000 -vt 0.823758 0.557679 0.000000 -vt 0.850297 0.543332 0.000000 -vt 0.781963 0.567000 0.000000 -vt 0.851947 0.715162 0.000000 -vt 0.789553 0.627962 0.000000 -vt 0.806267 0.633195 0.000000 -vt 0.817109 0.638250 0.000000 -vt 0.831462 0.649635 0.000000 -vt 0.825555 0.643588 0.000000 -vt 0.834690 0.657109 0.000000 -vt 0.834076 0.665334 0.000000 -vt 0.831365 0.672586 0.000000 -vt 0.790768 0.726291 0.000000 -vt 0.552712 0.587402 0.000000 -vt 0.799489 0.710380 0.000000 -vt 0.727422 0.592418 0.000000 -vt 0.666861 0.594460 0.000000 -vt 0.687520 0.594536 0.000000 -vt 0.758743 0.132695 0.000000 -vt 0.768633 0.104037 0.000000 -vt 0.848394 0.499665 0.000000 -vt 0.905796 0.495536 0.000000 -vt 0.915243 0.494743 0.000000 -vt 0.993344 0.647252 0.000000 -vt 0.167314 0.969095 0.000000 -vt 0.159509 0.981689 0.000000 -vt 0.157005 0.966054 0.000000 -vt 0.151449 0.975172 0.000000 -vt 0.851975 0.319566 0.000000 -vt 0.090185 0.900027 0.000000 -vt 0.147352 0.989617 0.000000 -vt 0.134407 0.993075 0.000000 -vt 0.143002 0.980297 0.000000 -vt 0.133248 0.982613 0.000000 -vt 0.092034 0.900027 0.000000 -vt 0.092317 0.906636 0.000000 -vt 0.079956 0.983284 0.000000 -vt 0.080295 0.993856 0.000000 -vt 0.007373 0.906645 0.000000 -vt 0.841469 0.290835 0.000000 -vt 0.863343 0.656769 0.000000 -vt 0.873052 0.658352 0.000000 -vt 0.847813 0.658044 0.000000 -vt 0.842790 0.658363 0.000000 -vt 0.780288 0.110213 0.000000 -vt 0.788631 0.076689 0.000000 -vt 0.777252 0.070881 0.000000 -vt 0.799339 0.034428 0.000000 -vt 0.787113 0.031492 0.000000 -vt 0.782394 0.139672 0.000000 -vt 0.789903 0.112884 0.000000 -vt 0.798046 0.079888 0.000000 -vt 0.808458 0.036817 0.000000 -vt 0.826307 0.524328 0.000000 -vt 0.834775 0.501491 0.000000 -vt 0.837127 0.538362 0.000000 -vt 0.713606 0.595708 0.000000 -vt 0.719793 0.712504 0.000000 -vt 0.762929 0.730056 0.000000 -vt 0.784902 0.708202 0.000000 -vt 0.773162 0.716687 0.000000 -vt 0.722839 0.680933 0.000000 -vt 0.726166 0.653030 0.000000 -vt 0.819474 0.679709 0.000000 -vt 0.815913 0.686345 0.000000 -vt 0.811086 0.691616 0.000000 -vt 0.800198 0.698801 0.000000 -vt 0.809371 0.659038 0.000000 -vt 0.801298 0.651391 0.000000 -vt 0.787602 0.642960 0.000000 -vt 0.730113 0.644440 0.000000 -vt 0.818819 0.672527 0.000000 -vt 0.815480 0.665853 0.000000 -vt 0.766622 0.635412 0.000000 -vt 0.736832 0.638870 0.000000 -vt 0.747833 0.634641 0.000000 -vt 0.015448 0.993642 0.000000 -vt 0.007110 0.992700 0.000000 -vt 0.006293 0.983508 0.000000 -vt 0.814164 0.541714 0.000000 -vt 0.802712 0.552886 0.000000 -vt 0.846511 0.313581 0.000000 -vt 0.095824 0.976655 0.000000 -vt 0.006081 0.976737 0.000000 -vt 0.129598 0.976686 0.000000 -vt 0.138341 0.975139 0.000000 -vt 0.146345 0.970823 0.000000 -vt 0.151038 0.963576 0.000000 -vt 0.144859 0.887630 0.000000 -vt 0.150944 0.890133 0.000000 -vt 0.132861 0.898549 0.000000 -vt 0.134991 0.904652 0.000000 -vt 0.124573 0.900027 0.000000 -vt 0.125074 0.906633 0.000000 -vt 0.140435 0.894463 0.000000 -vt 0.144876 0.899288 0.000000 -vt 0.693946 0.173145 0.000000 -vt 0.722943 0.178965 0.000000 -vt 0.715167 0.213186 0.000000 -vt 0.533605 0.131198 0.000000 -vt 0.518282 0.125114 0.000000 -vt 0.531182 0.095475 0.000000 -vt 0.731544 0.246003 0.000000 -vt 0.729887 0.257924 0.000000 -vt 0.704107 0.246127 0.000000 -vt 0.703427 0.259698 0.000000 -vt 0.655921 0.250000 0.000000 -vt 0.656540 0.265552 0.000000 -vt 0.611689 0.273725 0.000000 -vt 0.602002 0.258946 0.000000 -vt 0.454887 0.271807 0.000000 -vt 0.502496 0.271672 0.000000 -vt 0.455212 0.287864 0.000000 -vt 0.501087 0.287823 0.000000 -vt 0.401482 0.272503 0.000000 -vt 0.401482 0.288670 0.000000 -vt 0.601618 0.272915 0.000000 -vt 0.588511 0.262397 0.000000 -vt 0.558853 0.265784 0.000000 -vt 0.561431 0.278612 0.000000 -vt 0.510280 0.271988 0.000000 -vt 0.518259 0.271446 0.000000 -vt 0.513069 0.287795 0.000000 -vt 0.523551 0.286047 0.000000 -vt 0.535969 0.269399 0.000000 -vt 0.539672 0.281898 0.000000 -vt 0.749649 0.257155 0.000000 -vt 0.767604 0.294187 0.000000 -vt 0.739495 0.264393 0.000000 -vt 0.755078 0.301162 0.000000 -vt 0.724864 0.312010 0.000000 -vt 0.685373 0.328566 0.000000 -vt 0.643620 0.346523 0.000000 -vt 0.460578 0.336119 0.000000 -vt 0.513579 0.340543 0.000000 -vt 0.401473 0.331545 0.000000 -vt 0.601608 0.361711 0.000000 -vt 0.633851 0.350058 0.000000 -vt 0.529671 0.342340 0.000000 -vt 0.544971 0.344404 0.000000 -vt 0.579232 0.370086 0.000000 -vt 0.606396 0.273921 0.000000 -vt 0.638362 0.348486 0.000000 -vt 0.738390 0.245944 0.000000 -vt 0.735425 0.259160 0.000000 -vt 0.642609 0.223057 0.000000 -vt 0.658537 0.166170 0.000000 -vt 0.686659 0.221168 0.000000 -vt 0.615828 0.155827 0.000000 -vt 0.599276 0.223914 0.000000 -vt 0.463763 0.157942 0.000000 -vt 0.453945 0.235101 0.000000 -vt 0.432699 0.167303 0.000000 -vt 0.402909 0.235101 0.000000 -vt 0.402869 0.170209 0.000000 -vt 0.607818 0.154278 0.000000 -vt 0.591311 0.225769 0.000000 -vt 0.553728 0.229130 0.000000 -vt 0.576439 0.144782 0.000000 -vt 0.581771 0.227055 0.000000 -vt 0.598962 0.152008 0.000000 -vt 0.533257 0.229488 0.000000 -vt 0.557174 0.138522 0.000000 -vt 0.525533 0.186538 0.000000 -vt 0.515975 0.228765 0.000000 -vt 0.578064 0.417206 0.000000 -vt 0.599719 0.514017 0.000000 -vt 0.602713 0.510686 0.000000 -vt 0.614818 0.519487 0.000000 -vt 0.615547 0.514185 0.000000 -vt 0.587761 0.504682 0.000000 -vt 0.590694 0.502497 0.000000 -vt 0.578496 0.011496 0.000000 -vt 0.591295 0.016376 0.000000 -vt 0.575955 0.074693 0.000000 -vt 0.608216 0.027586 0.000000 -vt 0.622451 0.042745 0.000000 -vt 0.636674 0.060017 0.000000 -vt 0.630119 0.053115 0.000000 -vt 0.676348 0.085196 0.000000 -vt 0.708567 0.108239 0.000000 -vt 0.733687 0.125510 0.000000 -vt 0.777022 0.359170 0.000000 -vt 0.791597 0.351363 0.000000 -vt 0.752856 0.384314 0.000000 -vt 0.722727 0.414314 0.000000 -vt 0.686003 0.448900 0.000000 -vt 0.681959 0.454059 0.000000 -vt 0.678966 0.458704 0.000000 -vt 0.645197 0.450985 0.000000 -vt 0.472145 0.378069 0.000000 -vt 0.503514 0.391071 0.000000 -vt 0.528802 0.408323 0.000000 -vt 0.554670 0.430448 0.000000 -vt 0.435389 0.371512 0.000000 -vt 0.401495 0.369589 0.000000 -vt 0.746210 0.251262 0.000000 -vt 0.709480 0.218653 0.000000 -vt 0.771206 0.292787 0.000000 -vt 0.753188 0.256063 0.000000 -vt 0.750507 0.250711 0.000000 -vt 0.510307 0.268374 0.000000 -vt 0.517949 0.267880 0.000000 -vt 0.655348 0.246392 0.000000 -vt 0.703879 0.242550 0.000000 -vt 0.601037 0.255430 0.000000 -vt 0.502698 0.268091 0.000000 -vt 0.454828 0.268222 0.000000 -vt 0.401481 0.268278 0.000000 -vt 0.558121 0.262285 0.000000 -vt 0.587602 0.258919 0.000000 -vt 0.535369 0.265851 0.000000 -vt 0.793560 0.347619 0.000000 -vt 0.731269 0.242097 0.000000 -vt 0.737028 0.241848 0.000000 -vt 0.724406 0.218127 0.000000 -vt 0.734306 0.181288 0.000000 -vt 0.721608 0.222625 0.000000 -vt 0.713560 0.216636 0.000000 -vt 0.507958 0.238879 0.000000 -vt 0.508720 0.229347 0.000000 -vt 0.515396 0.238585 0.000000 -vt 0.643299 0.234864 0.000000 -vt 0.688094 0.231329 0.000000 -vt 0.593788 0.235390 0.000000 -vt 0.454869 0.244112 0.000000 -vt 0.500659 0.240175 0.000000 -vt 0.500770 0.230895 0.000000 -vt 0.402915 0.243859 0.000000 -vt 0.553213 0.238005 0.000000 -vt 0.581215 0.234713 0.000000 -vt 0.531585 0.239088 0.000000 -vt 0.745792 0.127757 0.000000 -vt 0.713337 0.227506 0.000000 -vt 0.718175 0.225676 0.000000 -vt 0.514837 0.183038 0.000000 -vt 0.734256 0.426656 0.000000 -vt 0.764033 0.394527 0.000000 -vt 0.792874 0.363108 0.000000 -vt 0.670541 0.470179 0.000000 -vt 0.676761 0.482066 0.000000 -vt 0.655994 0.486028 0.000000 -vt 0.660688 0.497354 0.000000 -vt 0.638921 0.498168 0.000000 -vt 0.641617 0.509754 0.000000 -vt 0.691540 0.469228 0.000000 -vt 0.627036 0.503995 0.000000 -vt 0.626833 0.514062 0.000000 -vt 0.401503 0.375423 0.000000 -vt 0.434700 0.376915 0.000000 -vt 0.470320 0.383334 0.000000 -vt 0.524924 0.412296 0.000000 -vt 0.500532 0.396636 0.000000 -vt 0.544747 0.436849 0.000000 -vt 0.548949 0.434498 0.000000 -vt 0.569271 0.458371 0.000000 -vt 0.564441 0.460718 0.000000 -vt 0.490755 0.141271 0.000000 -vt 0.501690 0.183534 0.000000 -vt 0.510448 0.119966 0.000000 -vt 0.560442 0.463538 0.000000 -vt 0.572800 0.485657 0.000000 -vt 0.576378 0.482320 0.000000 -vt 0.644348 0.514569 0.000000 -vt 0.626588 0.519585 0.000000 -vt 0.664762 0.499949 0.000000 -vt 0.682758 0.483184 0.000000 -vt 0.696871 0.470881 0.000000 -vt 0.738781 0.428313 0.000000 -vt 0.767651 0.395884 0.000000 -vt 0.593580 0.008852 0.000000 -vt 0.578618 0.005160 0.000000 -vt 0.612085 0.020123 0.000000 -vt 0.627247 0.035345 0.000000 -vt 0.639441 0.045805 0.000000 -vt 0.682593 0.076621 0.000000 -vt 0.714939 0.099261 0.000000 -vt 0.744716 0.120095 0.000000 -vt 0.570488 0.010347 0.000000 -vt 0.559181 0.013750 0.000000 -vt 0.569002 0.005348 0.000000 -vt 0.557040 0.009988 0.000000 -vt 0.617299 0.506217 0.000000 -vt 0.606542 0.504426 0.000000 -vt 0.595934 0.497686 0.000000 -vt 0.552393 0.020923 0.000000 -vt 0.548159 0.019039 0.000000 -vt 0.541175 0.040180 0.000000 -vt 0.581309 0.479426 0.000000 -vt 0.550680 0.068236 0.000000 -vt 0.558203 0.045627 0.000000 -vt 0.523687 0.091131 0.000000 -vt 0.533774 0.062861 0.000000 -vt 0.794219 0.367093 0.000000 -vt 0.606654 0.476742 0.000000 -vt 0.619535 0.475150 0.000000 -vt 0.613626 0.491031 0.000000 -vt 0.596427 0.469565 0.000000 -vt 0.589574 0.474348 0.000000 -vt 0.601644 0.488238 0.000000 -vt 0.596462 0.456333 0.000000 -vt 0.580238 0.456401 0.000000 -vt 0.564474 0.423905 0.000000 -vt 0.629122 0.454336 0.000000 -vt 0.619476 0.446204 0.000000 -vt 0.628661 0.466544 0.000000 -vt 0.626669 0.455159 0.000000 -vt 0.626709 0.465909 0.000000 -vt 0.600154 0.467647 0.000000 -vt 0.607877 0.474550 0.000000 -vt 0.605921 0.447138 0.000000 -vt 0.618663 0.447919 0.000000 -vt 0.599035 0.456745 0.000000 -vt 0.539124 0.064358 0.000000 -vt 0.545401 0.041526 0.000000 -vt 0.111791 0.173540 0.000000 -vt 0.090623 0.213611 0.000000 -vt 0.082803 0.179397 0.000000 -vt 0.272074 0.131370 0.000000 -vt 0.274445 0.095645 0.000000 -vt 0.287389 0.125266 0.000000 -vt 0.072237 0.240197 0.000000 -vt 0.100093 0.240551 0.000000 -vt 0.073743 0.252125 0.000000 -vt 0.100672 0.254197 0.000000 -vt 0.149945 0.243724 0.000000 -vt 0.148516 0.260403 0.000000 -vt 0.192696 0.271216 0.000000 -vt 0.202678 0.256657 0.000000 -vt 0.348145 0.271854 0.000000 -vt 0.347812 0.287920 0.000000 -vt 0.300772 0.271629 0.000000 -vt 0.302124 0.287805 0.000000 -vt 0.215875 0.260681 0.000000 -vt 0.202692 0.270854 0.000000 -vt 0.245096 0.265004 0.000000 -vt 0.242353 0.277848 0.000000 -vt 0.293058 0.271898 0.000000 -vt 0.290208 0.287705 0.000000 -vt 0.285158 0.271285 0.000000 -vt 0.279807 0.285861 0.000000 -vt 0.267659 0.269015 0.000000 -vt 0.263862 0.281496 0.000000 -vt 0.053635 0.251116 0.000000 -vt 0.063805 0.258444 0.000000 -vt 0.034438 0.287782 0.000000 -vt 0.046915 0.294948 0.000000 -vt 0.077447 0.306727 0.000000 -vt 0.117338 0.324766 0.000000 -vt 0.159191 0.344854 0.000000 -vt 0.342353 0.336220 0.000000 -vt 0.289299 0.340680 0.000000 -vt 0.201098 0.361667 0.000000 -vt 0.168986 0.348811 0.000000 -vt 0.273166 0.342554 0.000000 -vt 0.257850 0.344685 0.000000 -vt 0.223430 0.370626 0.000000 -vt 0.197934 0.271664 0.000000 -vt 0.164473 0.347056 0.000000 -vt 0.065374 0.240067 0.000000 -vt 0.068078 0.253266 0.000000 -vt 0.163196 0.223380 0.000000 -vt 0.119146 0.221551 0.000000 -vt 0.147190 0.166514 0.000000 -vt 0.189886 0.156113 0.000000 -vt 0.206530 0.224177 0.000000 -vt 0.341957 0.158019 0.000000 -vt 0.373034 0.167341 0.000000 -vt 0.351874 0.235164 0.000000 -vt 0.197894 0.154553 0.000000 -vt 0.214499 0.226020 0.000000 -vt 0.252086 0.229332 0.000000 -vt 0.224041 0.227293 0.000000 -vt 0.229260 0.145017 0.000000 -vt 0.206746 0.152272 0.000000 -vt 0.272558 0.229664 0.000000 -vt 0.248515 0.138730 0.000000 -vt 0.280223 0.186700 0.000000 -vt 0.289840 0.228914 0.000000 -vt 0.224183 0.418689 0.000000 -vt 0.198386 0.517693 0.000000 -vt 0.182576 0.522783 0.000000 -vt 0.195417 0.514164 0.000000 -vt 0.182046 0.517301 0.000000 -vt 0.211939 0.507362 0.000000 -vt 0.208810 0.505280 0.000000 -vt 0.227018 0.011731 0.000000 -vt 0.229646 0.074925 0.000000 -vt 0.214225 0.016629 0.000000 -vt 0.197320 0.027860 0.000000 -vt 0.183105 0.043039 0.000000 -vt 0.168907 0.060337 0.000000 -vt 0.175452 0.053419 0.000000 -vt 0.129267 0.085565 0.000000 -vt 0.097081 0.108655 0.000000 -vt 0.071984 0.125960 0.000000 -vt 0.021267 0.351703 0.000000 -vt 0.006537 0.343143 0.000000 -vt 0.045268 0.378490 0.000000 -vt 0.075606 0.410662 0.000000 -vt 0.112661 0.447514 0.000000 -vt 0.116676 0.452988 0.000000 -vt 0.119526 0.457894 0.000000 -vt 0.154527 0.452184 0.000000 -vt 0.330720 0.378225 0.000000 -vt 0.299179 0.391414 0.000000 -vt 0.273621 0.408968 0.000000 -vt 0.247402 0.431586 0.000000 -vt 0.367575 0.371577 0.000000 -vt 0.057152 0.245252 0.000000 -vt 0.096319 0.219066 0.000000 -vt 0.030850 0.286314 0.000000 -vt 0.050074 0.249996 0.000000 -vt 0.052831 0.244671 0.000000 -vt 0.293045 0.268282 0.000000 -vt 0.285494 0.267719 0.000000 -vt 0.150722 0.239937 0.000000 -vt 0.100334 0.236957 0.000000 -vt 0.203748 0.253166 0.000000 -vt 0.300577 0.268047 0.000000 -vt 0.348204 0.268269 0.000000 -vt 0.245873 0.261516 0.000000 -vt 0.216849 0.257222 0.000000 -vt 0.268291 0.265471 0.000000 -vt 0.004761 0.339404 0.000000 -vt 0.072545 0.236292 0.000000 -vt 0.066778 0.235993 0.000000 -vt 0.081395 0.218565 0.000000 -vt 0.071442 0.181735 0.000000 -vt 0.084196 0.223057 0.000000 -vt 0.092236 0.217056 0.000000 -vt 0.297872 0.239016 0.000000 -vt 0.290432 0.238737 0.000000 -vt 0.297096 0.229486 0.000000 -vt 0.162522 0.235187 0.000000 -vt 0.117723 0.231713 0.000000 -vt 0.212035 0.235645 0.000000 -vt 0.350965 0.244177 0.000000 -vt 0.305170 0.240301 0.000000 -vt 0.305047 0.231022 0.000000 -vt 0.252613 0.238208 0.000000 -vt 0.224605 0.234952 0.000000 -vt 0.274245 0.239260 0.000000 -vt 0.059882 0.128223 0.000000 -vt 0.092473 0.227926 0.000000 -vt 0.087633 0.226102 0.000000 -vt 0.290913 0.183183 0.000000 -vt 0.062992 0.422821 0.000000 -vt 0.033371 0.388577 0.000000 -vt 0.004787 0.355169 0.000000 -vt 0.127012 0.469953 0.000000 -vt 0.141408 0.486812 0.000000 -vt 0.120140 0.481961 0.000000 -vt 0.136095 0.498246 0.000000 -vt 0.158539 0.499928 0.000000 -vt 0.154140 0.511211 0.000000 -vt 0.105596 0.468174 0.000000 -vt 0.170639 0.506311 0.000000 -vt 0.169501 0.516436 0.000000 -vt 0.368282 0.376978 0.000000 -vt 0.332565 0.383486 0.000000 -vt 0.277537 0.412901 0.000000 -vt 0.302193 0.396965 0.000000 -vt 0.257454 0.437684 0.000000 -vt 0.253170 0.435458 0.000000 -vt 0.231778 0.460510 0.000000 -vt 0.236732 0.462620 0.000000 -vt 0.304061 0.183661 0.000000 -vt 0.314941 0.141380 0.000000 -vt 0.295214 0.120104 0.000000 -vt 0.240837 0.465265 0.000000 -vt 0.227655 0.488107 0.000000 -vt 0.223823 0.485141 0.000000 -vt 0.150332 0.515520 0.000000 -vt 0.169290 0.522106 0.000000 -vt 0.131069 0.499883 0.000000 -vt 0.113942 0.482898 0.000000 -vt 0.099861 0.469714 0.000000 -vt 0.058201 0.424334 0.000000 -vt 0.029594 0.389718 0.000000 -vt 0.211931 0.009108 0.000000 -vt 0.226886 0.005396 0.000000 -vt 0.193440 0.020406 0.000000 -vt 0.178297 0.035647 0.000000 -vt 0.166119 0.046125 0.000000 -vt 0.123009 0.076999 0.000000 -vt 0.090697 0.099685 0.000000 -vt 0.060948 0.120559 0.000000 -vt 0.235025 0.010571 0.000000 -vt 0.236503 0.005569 0.000000 -vt 0.246336 0.013959 0.000000 -vt 0.248472 0.010195 0.000000 -vt 0.180545 0.509024 0.000000 -vt 0.191699 0.507574 0.000000 -vt 0.202897 0.500989 0.000000 -vt 0.253135 0.021122 0.000000 -vt 0.257366 0.019230 0.000000 -vt 0.264380 0.040366 0.000000 -vt 0.218624 0.482684 0.000000 -vt 0.254909 0.068434 0.000000 -vt 0.247358 0.045835 0.000000 -vt 0.281935 0.091292 0.000000 -vt 0.271810 0.063036 0.000000 -vt 0.003278 0.359082 0.000000 -vt 0.192604 0.479055 0.000000 -vt 0.184887 0.493505 0.000000 -vt 0.179390 0.476946 0.000000 -vt 0.203351 0.472074 0.000000 -vt 0.210277 0.477187 0.000000 -vt 0.197336 0.491065 0.000000 -vt 0.203837 0.458398 0.000000 -vt 0.220554 0.458999 0.000000 -vt 0.237641 0.425200 0.000000 -vt 0.170829 0.456184 0.000000 -vt 0.180902 0.447969 0.000000 -vt 0.170608 0.468301 0.000000 -vt 0.173278 0.457092 0.000000 -vt 0.172615 0.467684 0.000000 -vt 0.199614 0.469991 0.000000 -vt 0.191472 0.476881 0.000000 -vt 0.194696 0.449079 0.000000 -vt 0.181670 0.449709 0.000000 -vt 0.201214 0.458873 0.000000 -vt 0.266462 0.064539 0.000000 -vt 0.260154 0.041717 0.000000 -vt 0.482915 0.511831 0.000000 -vt 0.482610 0.488350 0.000000 -vt 0.490098 0.511783 0.000000 -vt 0.490752 0.486237 0.000000 -vt 0.480782 0.575114 0.000000 -vt 0.482154 0.545693 0.000000 -vt 0.487471 0.574910 0.000000 -vt 0.489282 0.544717 0.000000 -vt 0.479787 0.604766 0.000000 -vt 0.486236 0.604792 0.000000 -vt 0.479125 0.629922 0.000000 -vt 0.485964 0.629904 0.000000 -vt 0.479061 0.681800 0.000000 -vt 0.479247 0.656026 0.000000 -vt 0.485423 0.681073 0.000000 -vt 0.485814 0.655306 0.000000 -vt 0.479246 0.707916 0.000000 -vt 0.485364 0.707913 0.000000 -vt 0.475201 0.546442 0.000000 -vt 0.472464 0.576105 0.000000 -vt 0.471307 0.605406 0.000000 -vt 0.471458 0.630164 0.000000 -vt 0.471499 0.655773 0.000000 -vt 0.471913 0.681355 0.000000 -vt 0.471690 0.707919 0.000000 -vt 0.449729 0.518008 0.000000 -vt 0.451946 0.553017 0.000000 -vt 0.433817 0.529127 0.000000 -vt 0.431346 0.556872 0.000000 -vt 0.449892 0.579969 0.000000 -vt 0.429941 0.580608 0.000000 -vt 0.449255 0.605463 0.000000 -vt 0.429112 0.604658 0.000000 -vt 0.448974 0.629552 0.000000 -vt 0.428810 0.628782 0.000000 -vt 0.449326 0.656276 0.000000 -vt 0.449454 0.682068 0.000000 -vt 0.429745 0.656150 0.000000 -vt 0.429377 0.682280 0.000000 -vt 0.450119 0.707927 0.000000 -vt 0.431044 0.707932 0.000000 -vt 0.409940 0.531912 0.000000 -vt 0.407190 0.554682 0.000000 -vt 0.406182 0.578987 0.000000 -vt 0.406388 0.602829 0.000000 -vt 0.406787 0.627217 0.000000 -vt 0.408421 0.654939 0.000000 -vt 0.408026 0.682236 0.000000 -vt 0.409702 0.707936 0.000000 -vt 0.355853 0.512436 0.000000 -vt 0.369251 0.524398 0.000000 -vt 0.345538 0.546253 0.000000 -vt 0.363452 0.549839 0.000000 -vt 0.364225 0.576145 0.000000 -vt 0.347854 0.574374 0.000000 -vt 0.365389 0.599963 0.000000 -vt 0.351123 0.599282 0.000000 -vt 0.370565 0.681832 0.000000 -vt 0.370848 0.707939 0.000000 -vt 0.357319 0.681832 0.000000 -vt 0.358099 0.707938 0.000000 -vt 0.330312 0.542903 0.000000 -vt 0.334132 0.573059 0.000000 -vt 0.339320 0.598579 0.000000 -vt 0.342638 0.620129 0.000000 -vt 0.352827 0.621273 0.000000 -vt 0.347483 0.651191 0.000000 -vt 0.357000 0.651802 0.000000 -vt 0.348834 0.682175 0.000000 -vt 0.350115 0.707938 0.000000 -vt 0.305823 0.547449 0.000000 -vt 0.301797 0.519485 0.000000 -vt 0.333524 0.518145 0.000000 -vt 0.338936 0.500273 0.000000 -vt 0.311563 0.575768 0.000000 -vt 0.317777 0.600481 0.000000 -vt 0.341023 0.624266 0.000000 -vt 0.344054 0.651215 0.000000 -vt 0.323803 0.627792 0.000000 -vt 0.327079 0.651190 0.000000 -vt 0.346214 0.677847 0.000000 -vt 0.329012 0.674650 0.000000 -vt 0.330966 0.707939 0.000000 -vt 0.328754 0.678846 0.000000 -vt 0.273878 0.529732 0.000000 -vt 0.278426 0.550496 0.000000 -vt 0.244103 0.546457 0.000000 -vt 0.256721 0.564160 0.000000 -vt 0.288572 0.580695 0.000000 -vt 0.269655 0.589431 0.000000 -vt 0.297132 0.605744 0.000000 -vt 0.279997 0.613270 0.000000 -vt 0.218771 0.558590 0.000000 -vt 0.241448 0.573633 0.000000 -vt 0.255567 0.595358 0.000000 -vt 0.266771 0.618375 0.000000 -vt 0.286115 0.635085 0.000000 -vt 0.274545 0.639546 0.000000 -vt 0.290074 0.656650 0.000000 -vt 0.278043 0.660112 0.000000 -vt 0.293519 0.679034 0.000000 -vt 0.294683 0.707936 0.000000 -vt 0.281495 0.682427 0.000000 -vt 0.282565 0.707934 0.000000 -vt 0.197466 0.568998 0.000000 -vt 0.228265 0.581211 0.000000 -vt 0.246206 0.600962 0.000000 -vt 0.258120 0.621869 0.000000 -vt 0.266270 0.642009 0.000000 -vt 0.271178 0.662999 0.000000 -vt 0.274847 0.684195 0.000000 -vt 0.276242 0.707934 0.000000 -vt 0.338103 0.488842 0.000000 -vt 0.298557 0.509756 0.000000 -vt 0.269754 0.515859 0.000000 -vt 0.238490 0.540172 0.000000 -vt 0.195889 0.563777 0.000000 -vt 0.247009 0.486454 0.000000 -vt 0.479035 0.481969 0.000000 -vt 0.472333 0.492290 0.000000 -vt 0.372675 0.471561 0.000000 -vt 0.363380 0.490034 0.000000 -vt 0.394516 0.488115 0.000000 -vt 0.399217 0.472286 0.000000 -vt 0.350804 0.497150 0.000000 -vt 0.388639 0.681115 0.000000 -vt 0.389596 0.707938 0.000000 -vt 0.386097 0.624788 0.000000 -vt 0.388500 0.653691 0.000000 -vt 0.366524 0.623096 0.000000 -vt 0.370395 0.653619 0.000000 -vt 0.385178 0.577071 0.000000 -vt 0.385549 0.601740 0.000000 -vt 0.385564 0.551720 0.000000 -vt 0.388514 0.529997 0.000000 -vt 0.463785 0.503472 0.000000 -vt 0.460114 0.491472 0.000000 -vt 0.455275 0.500656 0.000000 -vt 0.428881 0.523387 0.000000 -vt 0.442370 0.513141 0.000000 -vt 0.409522 0.526631 0.000000 -vt 0.362968 0.507688 0.000000 -vt 0.372486 0.518590 0.000000 -vt 0.388440 0.524230 0.000000 -vt 0.628464 0.959968 0.000000 -vt 0.667299 0.976136 0.000000 -vt 0.629123 0.991329 0.000000 -vt 0.667774 0.987916 0.000000 -vt 0.689824 0.906209 0.000000 -vt 0.699322 0.915706 0.000000 -vt 0.694924 0.917012 0.000000 -vt 0.705958 0.952044 0.000000 -vt 0.711347 0.953871 0.000000 -vt 0.715867 0.931975 0.000000 -vt 0.730120 0.946134 0.000000 -vt 0.718174 0.956626 0.000000 -vt 0.729013 0.962078 0.000000 -vt 0.748405 0.956986 0.000000 -vt 0.745142 0.969781 0.000000 -vt 0.801180 0.970564 0.000000 -vt 0.779917 0.986372 0.000000 -vt 0.784998 0.971072 0.000000 -vt 0.774850 0.983603 0.000000 -vt 0.819465 0.971518 0.000000 -vt 0.785125 0.989405 0.000000 -vt 0.768474 0.966156 0.000000 -vt 0.764585 0.979136 0.000000 -vt 0.431365 0.486021 0.000000 -vt 0.438406 0.474564 0.000000 -vt 0.669224 0.934353 0.000000 -vt 0.629277 0.922974 0.000000 -vt 0.217657 0.607018 0.000000 -vt 0.240582 0.632635 0.000000 -vt 0.250462 0.649633 0.000000 -vt 0.255702 0.668837 0.000000 -vt 0.258206 0.686452 0.000000 -vt 0.258729 0.707933 0.000000 -vt 0.230238 0.646244 0.000000 -vt 0.208135 0.630735 0.000000 -vt 0.196996 0.683217 0.000000 -vt 0.221139 0.685315 0.000000 -vt 0.196883 0.707932 0.000000 -vt 0.221353 0.707932 0.000000 -vt 0.240550 0.686341 0.000000 -vt 0.240923 0.707933 0.000000 -vt 0.238938 0.663913 0.000000 -vt 0.222156 0.666598 0.000000 -vt 0.200453 0.657886 0.000000 -vt 0.144918 0.596816 0.000000 -vt 0.145204 0.620342 0.000000 -vt 0.107470 0.605446 0.000000 -vt 0.111566 0.626940 0.000000 -vt 0.142863 0.681242 0.000000 -vt 0.141661 0.707934 0.000000 -vt 0.113415 0.682656 0.000000 -vt 0.112473 0.707936 0.000000 -vt 0.143943 0.650990 0.000000 -vt 0.113487 0.655378 0.000000 -vt 0.058396 0.637178 0.000000 -vt 0.078958 0.618625 0.000000 -vt 0.070774 0.646156 0.000000 -vt 0.086594 0.636979 0.000000 -vt 0.067998 0.662096 0.000000 -vt 0.048782 0.658921 0.000000 -vt 0.042104 0.707939 0.000000 -vt 0.043633 0.684310 0.000000 -vt 0.063861 0.707938 0.000000 -vt 0.065358 0.684252 0.000000 -vt 0.088722 0.684106 0.000000 -vt 0.087552 0.707936 0.000000 -vt 0.088869 0.660187 0.000000 -vt 0.292279 0.470181 0.000000 -vt 0.264842 0.446841 0.000000 -vt 0.332321 0.472762 0.000000 -vt 0.092806 0.584468 0.000000 -vt 0.304041 0.427535 0.000000 -vt 0.099272 0.591632 0.000000 -vt 0.143620 0.579027 0.000000 -vt 0.042357 0.624292 0.000000 -vt 0.064943 0.603139 0.000000 -vt 0.048778 0.628470 0.000000 -vt 0.070534 0.608373 0.000000 -vt 0.025638 0.650617 0.000000 -vt 0.033877 0.654026 0.000000 -vt 0.023639 0.707940 0.000000 -vt 0.012744 0.707941 0.000000 -vt 0.026187 0.681527 0.000000 -vt 0.015898 0.680189 0.000000 -vt 0.171531 0.680159 0.000000 -vt 0.170526 0.707933 0.000000 -vt 0.173540 0.649678 0.000000 -vt 0.177517 0.618979 0.000000 -vt 0.184034 0.593011 0.000000 -vt 0.452802 0.448268 0.000000 -vt 0.488856 0.450285 0.000000 -vt 0.629874 0.895273 0.000000 -vt 0.639039 0.902919 0.000000 -vt 0.670272 0.922120 0.000000 -vt 0.311425 0.707939 0.000000 -vt 0.310176 0.674868 0.000000 -vt 0.309822 0.651748 0.000000 -vt 0.312773 0.671381 0.000000 -vt 0.307535 0.632952 0.000000 -vt 0.535128 0.477085 0.000000 -vt 0.526310 0.459993 0.000000 -vt 0.541837 0.457686 0.000000 -vt 0.534518 0.481019 0.000000 -vt 0.530576 0.512506 0.000000 -vt 0.527092 0.545951 0.000000 -vt 0.522544 0.577332 0.000000 -vt 0.518386 0.604826 0.000000 -vt 0.514778 0.628781 0.000000 -vt 0.509785 0.681252 0.000000 -vt 0.511940 0.654815 0.000000 -vt 0.508560 0.707899 0.000000 -vt 0.420344 0.441968 0.000000 -vt 0.304061 0.629959 0.000000 -vt 0.322646 0.623275 0.000000 -vt 0.306474 0.651689 0.000000 -vt 0.523938 0.446384 0.000000 -vt 0.329696 0.435529 0.000000 -vt 0.403783 0.431796 0.000000 -vt 0.370055 0.433250 0.000000 -vt 0.358127 0.426878 0.000000 -vt 0.535228 0.447553 0.000000 -vt 0.547018 0.454368 0.000000 -vt 0.542978 0.481702 0.000000 -vt 0.454873 0.443496 0.000000 -vt 0.490968 0.444779 0.000000 -vt 0.526394 0.440261 0.000000 -vt 0.424038 0.437860 0.000000 -vt 0.538592 0.442415 0.000000 -vt 0.408324 0.428918 0.000000 -vt 0.371607 0.427446 0.000000 -vt 0.362862 0.418824 0.000000 -vt 0.540562 0.451998 0.000000 -vt 0.544607 0.447268 0.000000 -vt 0.525965 0.604851 0.000000 -vt 0.530366 0.577302 0.000000 -vt 0.522416 0.629304 0.000000 -vt 0.516381 0.707897 0.000000 -vt 0.517485 0.681565 0.000000 -vt 0.534783 0.546455 0.000000 -vt 0.538415 0.512651 0.000000 -vt 0.519613 0.655015 0.000000 -vt 0.059134 0.595488 0.000000 -vt 0.088193 0.580851 0.000000 -vt 0.031040 0.618387 0.000000 -vt 0.011698 0.646450 0.000000 -vt 0.003887 0.677496 0.000000 -vt 0.000875 0.707941 0.000000 -vt 0.331248 0.430808 0.000000 -vt 0.307204 0.423902 0.000000 -vt 0.638791 0.591661 0.000000 -vt 0.635998 0.579790 0.000000 -vt 0.647217 0.593248 0.000000 -vt 0.732192 0.550887 0.000000 -vt 0.713599 0.519664 0.000000 -vt 0.753006 0.537760 0.000000 -vt 0.732612 0.507331 0.000000 -vt 0.769900 0.525029 0.000000 -vt 0.748313 0.496575 0.000000 -vt 0.782214 0.468103 0.000000 -vt 0.801054 0.453833 0.000000 -vt 0.805407 0.496905 0.000000 -vt 0.823062 0.482264 0.000000 -vt 0.689798 0.533164 0.000000 -vt 0.706693 0.564704 0.000000 -vt 0.675778 0.579067 0.000000 -vt 0.645461 0.554901 0.000000 -vt 0.604630 0.548419 0.000000 -vt 0.787477 0.511308 0.000000 -vt 0.764812 0.482881 0.000000 -vt 0.632039 0.536327 0.000000 -vt 0.314384 0.032524 0.000000 -vt 0.322689 0.003520 0.000000 -vt 0.320572 0.037033 0.000000 -vt 0.687420 0.955784 0.000000 -vt 0.687407 0.937818 0.000000 -vt 0.683227 0.977054 0.000000 -vt 0.682377 0.926682 0.000000 -vt 0.675969 0.922939 0.000000 -vt 0.677930 0.987012 0.000000 -vt 0.673249 0.990463 0.000000 -vt 0.355777 0.422588 0.000000 -vt 0.613567 0.598127 0.000000 -vt 0.620434 0.606398 0.000000 -vt 0.613050 0.605615 0.000000 -vt 0.607914 0.599196 0.000000 -vt 0.605944 0.586046 0.000000 -vt 0.610373 0.585928 0.000000 -vt 0.685816 0.524372 0.000000 -vt 0.677273 0.508610 0.000000 -vt 0.707485 0.510754 0.000000 -vt 0.698145 0.495105 0.000000 -vt 0.647636 0.545059 0.000000 -vt 0.637729 0.530161 0.000000 -vt 0.776732 0.460553 0.000000 -vt 0.766336 0.445814 0.000000 -vt 0.794961 0.445940 0.000000 -vt 0.784125 0.431889 0.000000 -vt 0.758684 0.474273 0.000000 -vt 0.748709 0.459214 0.000000 -vt 0.741759 0.486821 0.000000 -vt 0.731964 0.471566 0.000000 -vt 0.725281 0.498946 0.000000 -vt 0.715662 0.483898 0.000000 -vt 0.612713 0.587337 0.000000 -vt 0.634987 0.581679 0.000000 -vt 0.614560 0.596182 0.000000 -vt 0.636567 0.590340 0.000000 -vt 0.482979 0.904091 0.000000 -vt 0.490218 0.904105 0.000000 -vt 0.483048 0.927651 0.000000 -vt 0.491184 0.929739 0.000000 -vt 0.480834 0.840726 0.000000 -vt 0.487525 0.840907 0.000000 -vt 0.482359 0.870104 0.000000 -vt 0.489452 0.871097 0.000000 -vt 0.479797 0.811091 0.000000 -vt 0.486243 0.811041 0.000000 -vt 0.479128 0.785926 0.000000 -vt 0.485962 0.785928 0.000000 -vt 0.479061 0.734032 0.000000 -vt 0.485420 0.734754 0.000000 -vt 0.479246 0.759813 0.000000 -vt 0.485808 0.760522 0.000000 -vt 0.475459 0.869323 0.000000 -vt 0.472488 0.839795 0.000000 -vt 0.471323 0.810475 0.000000 -vt 0.471468 0.785698 0.000000 -vt 0.471503 0.760076 0.000000 -vt 0.471915 0.734485 0.000000 -vt 0.450241 0.896940 0.000000 -vt 0.433732 0.887437 0.000000 -vt 0.451860 0.862932 0.000000 -vt 0.431406 0.859250 0.000000 -vt 0.449931 0.835984 0.000000 -vt 0.430020 0.835382 0.000000 -vt 0.449296 0.810452 0.000000 -vt 0.429179 0.811265 0.000000 -vt 0.449004 0.786334 0.000000 -vt 0.428857 0.787113 0.000000 -vt 0.449344 0.759591 0.000000 -vt 0.429773 0.759726 0.000000 -vt 0.449463 0.733790 0.000000 -vt 0.429390 0.733589 0.000000 -vt 0.409989 0.884294 0.000000 -vt 0.407303 0.861344 0.000000 -vt 0.406296 0.836942 0.000000 -vt 0.406471 0.813072 0.000000 -vt 0.406843 0.788671 0.000000 -vt 0.408453 0.760939 0.000000 -vt 0.408040 0.733637 0.000000 -vt 0.356047 0.903846 0.000000 -vt 0.345608 0.869667 0.000000 -vt 0.369294 0.891113 0.000000 -vt 0.363532 0.865925 0.000000 -vt 0.364308 0.839701 0.000000 -vt 0.347915 0.841498 0.000000 -vt 0.365456 0.815908 0.000000 -vt 0.351184 0.816589 0.000000 -vt 0.370582 0.734044 0.000000 -vt 0.357336 0.734043 0.000000 -vt 0.330378 0.872980 0.000000 -vt 0.334202 0.842813 0.000000 -vt 0.339380 0.817291 0.000000 -vt 0.342688 0.795743 0.000000 -vt 0.347515 0.764686 0.000000 -vt 0.352878 0.794602 0.000000 -vt 0.357034 0.764075 0.000000 -vt 0.348849 0.733698 0.000000 -vt 0.305894 0.868388 0.000000 -vt 0.301866 0.896315 0.000000 -vt 0.333608 0.897683 0.000000 -vt 0.338957 0.915462 0.000000 -vt 0.311628 0.840090 0.000000 -vt 0.317832 0.815386 0.000000 -vt 0.341070 0.791606 0.000000 -vt 0.323845 0.788081 0.000000 -vt 0.344085 0.764660 0.000000 -vt 0.327110 0.764684 0.000000 -vt 0.346233 0.738030 0.000000 -vt 0.329032 0.741226 0.000000 -vt 0.328770 0.737029 0.000000 -vt 0.273951 0.886069 0.000000 -vt 0.244158 0.869371 0.000000 -vt 0.278490 0.865333 0.000000 -vt 0.256773 0.851677 0.000000 -vt 0.288628 0.835155 0.000000 -vt 0.269702 0.826422 0.000000 -vt 0.297178 0.810117 0.000000 -vt 0.280037 0.802591 0.000000 -vt 0.218817 0.857254 0.000000 -vt 0.241493 0.842209 0.000000 -vt 0.255608 0.820492 0.000000 -vt 0.266806 0.797485 0.000000 -vt 0.286149 0.780780 0.000000 -vt 0.274574 0.776318 0.000000 -vt 0.290099 0.759218 0.000000 -vt 0.278064 0.755754 0.000000 -vt 0.293533 0.736838 0.000000 -vt 0.281506 0.733442 0.000000 -vt 0.197505 0.846856 0.000000 -vt 0.228305 0.834638 0.000000 -vt 0.246243 0.814892 0.000000 -vt 0.258152 0.793989 0.000000 -vt 0.266299 0.773853 0.000000 -vt 0.271197 0.752868 0.000000 -vt 0.274856 0.731672 0.000000 -vt 0.338179 0.926897 0.000000 -vt 0.298631 0.906029 0.000000 -vt 0.269832 0.899920 0.000000 -vt 0.238549 0.875659 0.000000 -vt 0.213107 0.861337 0.000000 -vt 0.195928 0.852076 0.000000 -vt 0.479524 0.934132 0.000000 -vt 0.472806 0.923619 0.000000 -vt 0.363459 0.925055 0.000000 -vt 0.372848 0.944020 0.000000 -vt 0.395333 0.928534 0.000000 -vt 0.399667 0.943829 0.000000 -vt 0.350715 0.918398 0.000000 -vt 0.388656 0.734760 0.000000 -vt 0.386154 0.791092 0.000000 -vt 0.366577 0.792780 0.000000 -vt 0.388534 0.762185 0.000000 -vt 0.370429 0.762259 0.000000 -vt 0.385285 0.838803 0.000000 -vt 0.385629 0.814141 0.000000 -vt 0.385712 0.864134 0.000000 -vt 0.388567 0.885956 0.000000 -vt 0.460877 0.924580 0.000000 -vt 0.463628 0.912609 0.000000 -vt 0.454945 0.915570 0.000000 -vt 0.428549 0.893362 0.000000 -vt 0.443156 0.901478 0.000000 -vt 0.409510 0.889669 0.000000 -vt 0.372649 0.896619 0.000000 -vt 0.362845 0.909258 0.000000 -vt 0.388398 0.891757 0.000000 -vt 0.622782 0.959823 0.000000 -vt 0.621661 0.991109 0.000000 -vt 0.583762 0.975340 0.000000 -vt 0.583107 0.987103 0.000000 -vt 0.577558 0.773552 0.000000 -vt 0.583408 0.783969 0.000000 -vt 0.579796 0.786797 0.000000 -vt 0.605568 0.813259 0.000000 -vt 0.603935 0.818711 0.000000 -vt 0.583470 0.809708 0.000000 -vt 0.602225 0.825871 0.000000 -vt 0.586752 0.829528 0.000000 -vt 0.600388 0.837865 0.000000 -vt 0.585002 0.850719 0.000000 -vt 0.597321 0.855473 0.000000 -vt 0.565490 0.901600 0.000000 -vt 0.575280 0.888706 0.000000 -vt 0.590694 0.893430 0.000000 -vt 0.591373 0.887695 0.000000 -vt 0.555673 0.917056 0.000000 -vt 0.590149 0.899431 0.000000 -vt 0.580848 0.872389 0.000000 -vt 0.593680 0.876741 0.000000 -vt 0.432247 0.929890 0.000000 -vt 0.438774 0.941718 0.000000 -vt 0.582559 0.933566 0.000000 -vt 0.622669 0.922876 0.000000 -vt 0.217687 0.808839 0.000000 -vt 0.240608 0.783224 0.000000 -vt 0.250486 0.766229 0.000000 -vt 0.255718 0.747028 0.000000 -vt 0.258214 0.729413 0.000000 -vt 0.230258 0.769617 0.000000 -vt 0.208158 0.785125 0.000000 -vt 0.197004 0.732646 0.000000 -vt 0.221147 0.730549 0.000000 -vt 0.240559 0.729524 0.000000 -vt 0.238953 0.751950 0.000000 -vt 0.222170 0.749266 0.000000 -vt 0.200468 0.757976 0.000000 -vt 0.144941 0.819049 0.000000 -vt 0.107489 0.810422 0.000000 -vt 0.145222 0.795523 0.000000 -vt 0.111581 0.788931 0.000000 -vt 0.142868 0.734627 0.000000 -vt 0.113420 0.733214 0.000000 -vt 0.143955 0.764878 0.000000 -vt 0.113497 0.760493 0.000000 -vt 0.058408 0.778697 0.000000 -vt 0.070784 0.769718 0.000000 -vt 0.078973 0.797249 0.000000 -vt 0.086606 0.778894 0.000000 -vt 0.068006 0.753779 0.000000 -vt 0.048789 0.756957 0.000000 -vt 0.043636 0.731568 0.000000 -vt 0.065360 0.731624 0.000000 -vt 0.088725 0.731768 0.000000 -vt 0.088877 0.755686 0.000000 -vt 0.292377 0.945568 0.000000 -vt 0.141063 0.845974 0.000000 -vt 0.332451 0.942991 0.000000 -vt 0.281041 0.994248 0.000000 -vt 0.304121 0.988208 0.000000 -vt 0.099293 0.824241 0.000000 -vt 0.143647 0.836839 0.000000 -vt 0.042371 0.791587 0.000000 -vt 0.048791 0.787407 0.000000 -vt 0.064959 0.812736 0.000000 -vt 0.070549 0.807502 0.000000 -vt 0.025645 0.765263 0.000000 -vt 0.033884 0.761852 0.000000 -vt 0.026190 0.734350 0.000000 -vt 0.015901 0.735691 0.000000 -vt 0.171538 0.735706 0.000000 -vt 0.173554 0.766186 0.000000 -vt 0.177539 0.796883 0.000000 -vt 0.184062 0.822848 0.000000 -vt 0.453000 0.968186 0.000000 -vt 0.489318 0.965798 0.000000 -vt 0.622679 0.895236 0.000000 -vt 0.613360 0.902669 0.000000 -vt 0.581776 0.921307 0.000000 -vt 0.310194 0.741006 0.000000 -vt 0.309850 0.764125 0.000000 -vt 0.312792 0.744492 0.000000 -vt 0.307570 0.782919 0.000000 -vt 0.535620 0.938607 0.000000 -vt 0.542396 0.958048 0.000000 -vt 0.526858 0.955811 0.000000 -vt 0.534989 0.934668 0.000000 -vt 0.530795 0.903122 0.000000 -vt 0.527204 0.869708 0.000000 -vt 0.522577 0.838354 0.000000 -vt 0.518380 0.810903 0.000000 -vt 0.514760 0.786983 0.000000 -vt 0.509775 0.734545 0.000000 -vt 0.511920 0.760969 0.000000 -vt 0.420258 0.974202 0.000000 -vt 0.304097 0.785910 0.000000 -vt 0.322690 0.792596 0.000000 -vt 0.306501 0.764184 0.000000 -vt 0.524518 0.969438 0.000000 -vt 0.329809 0.980211 0.000000 -vt 0.403448 0.984133 0.000000 -vt 0.370196 0.982445 0.000000 -vt 0.358274 0.988822 0.000000 -vt 0.535809 0.968218 0.000000 -vt 0.547588 0.961358 0.000000 -vt 0.543442 0.933924 0.000000 -vt 0.455021 0.972949 0.000000 -vt 0.491473 0.971280 0.000000 -vt 0.527001 0.975548 0.000000 -vt 0.423815 0.978395 0.000000 -vt 0.539185 0.973348 0.000000 -vt 0.407937 0.987081 0.000000 -vt 0.371751 0.988250 0.000000 -vt 0.363012 0.996874 0.000000 -vt 0.541136 0.963749 0.000000 -vt 0.545189 0.968476 0.000000 -vt 0.525957 0.810847 0.000000 -vt 0.530400 0.838340 0.000000 -vt 0.522397 0.786438 0.000000 -vt 0.517475 0.734226 0.000000 -vt 0.534891 0.869143 0.000000 -vt 0.538637 0.902913 0.000000 -vt 0.519593 0.760758 0.000000 -vt 0.059151 0.820387 0.000000 -vt 0.285929 0.997088 0.000000 -vt 0.031054 0.797491 0.000000 -vt 0.011706 0.769430 0.000000 -vt 0.003892 0.738386 0.000000 -vt 0.331361 0.984930 0.000000 -vt 0.307284 0.991844 0.000000 -vt 0.975584 0.331461 0.000000 -vt 0.975408 0.339843 0.000000 -vt 0.964582 0.325672 0.000000 -vt 0.912218 0.411579 0.000000 -vt 0.894182 0.428346 0.000000 -vt 0.886820 0.385800 0.000000 -vt 0.870121 0.401079 0.000000 -vt 0.877752 0.441538 0.000000 -vt 0.855707 0.413556 0.000000 -vt 0.819617 0.439191 0.000000 -vt 0.841673 0.468871 0.000000 -vt 0.905877 0.366154 0.000000 -vt 0.932155 0.390441 0.000000 -vt 0.938018 0.328903 0.000000 -vt 0.953846 0.364152 0.000000 -vt 0.942180 0.287576 0.000000 -vt 0.860132 0.455141 0.000000 -vt 0.838290 0.426225 0.000000 -vt 0.923533 0.311040 0.000000 -vt 0.491340 0.032524 0.000000 -vt 0.485152 0.037033 0.000000 -vt 0.483035 0.003520 0.000000 -vt 0.564012 0.954671 0.000000 -vt 0.564331 0.936719 0.000000 -vt 0.567839 0.975996 0.000000 -vt 0.569546 0.925676 0.000000 -vt 0.576014 0.922046 0.000000 -vt 0.572963 0.986037 0.000000 -vt 0.577582 0.989565 0.000000 -vt 0.355931 0.993115 0.000000 -vt 0.987986 0.308815 0.000000 -vt 0.994242 0.317548 0.000000 -vt 0.995364 0.310228 0.000000 -vt 0.990473 0.303625 0.000000 -vt 0.978243 0.298377 0.000000 -vt 0.977004 0.302628 0.000000 -vt 0.898377 0.360078 0.000000 -vt 0.879759 0.377646 0.000000 -vt 0.885292 0.347826 0.000000 -vt 0.866962 0.364616 0.000000 -vt 0.928026 0.328347 0.000000 -vt 0.916125 0.314987 0.000000 -vt 0.813696 0.431980 0.000000 -vt 0.802080 0.418185 0.000000 -vt 0.831519 0.417972 0.000000 -vt 0.819486 0.404505 0.000000 -vt 0.847924 0.404753 0.000000 -vt 0.835655 0.391410 0.000000 -vt 0.863816 0.391858 0.000000 -vt 0.851701 0.378742 0.000000 -vt 0.977780 0.305227 0.000000 -vt 0.966673 0.325247 0.000000 -vt 0.985895 0.309216 0.000000 -vt 0.974838 0.328959 0.000000 -vt 0.320638 0.081060 0.000000 -vt 0.402862 0.164002 0.000000 -vt 0.324664 0.105278 0.000000 -vt 0.485086 0.081060 0.000000 -vt 0.481060 0.105278 0.000000 -vt 0.425209 0.161125 0.000000 -vt 0.380515 0.161125 0.000000 -vt 0.332120 0.124242 0.000000 -vt 0.360450 0.152261 0.000000 -vt 0.344295 0.139914 0.000000 -vt 0.473604 0.124242 0.000000 -vt 0.445274 0.152261 0.000000 -vt 0.461430 0.139914 0.000000 -vt 0.579428 0.708922 0.000000 -vt 0.579428 0.699501 0.000000 -vt 0.588756 0.708776 0.000000 -vt 0.588756 0.699427 0.000000 -vt 0.579428 0.690089 0.000000 -vt 0.579428 0.680677 0.000000 -vt 0.588756 0.690088 0.000000 -vt 0.588756 0.680748 0.000000 -vt 0.579428 0.671256 0.000000 -vt 0.579428 0.661863 0.000000 -vt 0.588756 0.671399 0.000000 -vt 0.588756 0.662087 0.000000 -vt 0.579428 0.652439 0.000000 -vt 0.579428 0.643087 0.000000 -vt 0.588756 0.652757 0.000000 -vt 0.588756 0.643523 0.000000 -vt 0.579428 0.633661 0.000000 -vt 0.579428 0.624235 0.000000 -vt 0.588756 0.634319 0.000000 -vt 0.588756 0.625362 0.000000 -vt 0.579428 0.765732 0.000000 -vt 0.579428 0.755934 0.000000 -vt 0.588756 0.763691 0.000000 -vt 0.588756 0.754804 0.000000 -vt 0.579428 0.746508 0.000000 -vt 0.579428 0.737083 0.000000 -vt 0.588756 0.745848 0.000000 -vt 0.588756 0.736645 0.000000 -vt 0.579428 0.727732 0.000000 -vt 0.579428 0.718309 0.000000 -vt 0.588756 0.727414 0.000000 -vt 0.588756 0.718086 0.000000 -vt 0.543043 0.690089 0.000000 -vt 0.543043 0.700034 0.000000 -vt 0.543043 0.670205 0.000000 -vt 0.543043 0.680144 0.000000 -vt 0.543043 0.650359 0.000000 -vt 0.543043 0.660272 0.000000 -vt 0.543043 0.630600 0.000000 -vt 0.543043 0.640468 0.000000 -vt 0.579428 0.614437 0.000000 -vt 0.543043 0.610746 0.000000 -vt 0.543043 0.620698 0.000000 -vt 0.543043 0.749586 0.000000 -vt 0.543043 0.759488 0.000000 -vt 0.543043 0.729825 0.000000 -vt 0.543043 0.739718 0.000000 -vt 0.543043 0.709979 0.000000 -vt 0.543043 0.719912 0.000000 -vt 0.588756 0.616475 0.000000 -vt 0.545255 0.581832 0.000000 -vt 0.548621 0.581473 0.000000 -vt 0.547886 0.590030 0.000000 -vt 0.550841 0.588419 0.000000 -vt 0.553348 0.596685 0.000000 -vt 0.555469 0.594058 0.000000 -vt 0.550035 0.565607 0.000000 -vt 0.552663 0.567728 0.000000 -vt 0.546099 0.573264 0.000000 -vt 0.549324 0.574215 0.000000 -vt 0.564888 0.557513 0.000000 -vt 0.565247 0.560874 0.000000 -vt 0.556690 0.560144 0.000000 -vt 0.558301 0.563100 0.000000 -vt 0.581113 0.562293 0.000000 -vt 0.578989 0.564924 0.000000 -vt 0.573456 0.558357 0.000000 -vt 0.572504 0.561588 0.000000 -vt 0.589206 0.577146 0.000000 -vt 0.585842 0.577505 0.000000 -vt 0.586575 0.568948 0.000000 -vt 0.583620 0.570558 0.000000 -vt 0.584427 0.593372 0.000000 -vt 0.581795 0.591247 0.000000 -vt 0.588363 0.585714 0.000000 -vt 0.585138 0.584765 0.000000 -vt 0.569574 0.601465 0.000000 -vt 0.569215 0.598104 0.000000 -vt 0.577771 0.598834 0.000000 -vt 0.576160 0.595877 0.000000 -vt 0.561005 0.600621 0.000000 -vt 0.561958 0.597389 0.000000 -vt 0.583108 0.543469 0.000000 -vt 0.568362 0.528654 0.000000 -vt 0.589256 0.528684 0.000000 -vt 0.583149 0.513881 0.000000 -vt 0.568364 0.507733 0.000000 -vt 0.553562 0.513840 0.000000 -vt 0.547413 0.528625 0.000000 -vt 0.553521 0.543428 0.000000 -vt 0.568305 0.549576 0.000000 -vt 0.543043 0.769441 0.000000 -vt 0.189202 0.922547 0.000000 -vt 0.194374 0.916535 0.000000 -vt 0.198773 0.926174 0.000000 -vt 0.203134 0.920371 0.000000 -vt 0.177801 0.919806 0.000000 -vt 0.183202 0.912819 0.000000 -vt 0.167758 0.914178 0.000000 -vt 0.172618 0.907346 0.000000 -vt 0.220115 0.948440 0.000000 -vt 0.212790 0.940629 0.000000 -vt 0.223630 0.941400 0.000000 -vt 0.216271 0.933559 0.000000 -vt 0.206585 0.932412 0.000000 -vt 0.210079 0.926013 0.000000 -vt 0.208160 0.912489 0.000000 -vt 0.216391 0.919213 0.000000 -vt 0.223502 0.926914 0.000000 -vt 0.230788 0.934720 0.000000 -vt 0.187652 0.902823 0.000000 -vt 0.177162 0.897793 0.000000 -vt 0.198434 0.907279 0.000000 -vt 0.196169 0.890532 0.000000 -vt 0.201570 0.884097 0.000000 -vt 0.205839 0.894268 0.000000 -vt 0.210469 0.888108 0.000000 -vt 0.184517 0.887654 0.000000 -vt 0.190284 0.880163 0.000000 -vt 0.174180 0.881720 0.000000 -vt 0.179530 0.874410 0.000000 -vt 0.227288 0.916745 0.000000 -vt 0.220082 0.908995 0.000000 -vt 0.231089 0.909587 0.000000 -vt 0.223876 0.901635 0.000000 -vt 0.213754 0.900690 0.000000 -vt 0.217559 0.893929 0.000000 -vt 0.215435 0.880468 0.000000 -vt 0.223799 0.887344 0.000000 -vt 0.230998 0.895336 0.000000 -vt 0.238143 0.903446 0.000000 -vt 0.194712 0.870528 0.000000 -vt 0.184148 0.865255 0.000000 -vt 0.205595 0.875126 0.000000 -vt 0.920507 0.064713 0.000000 -vt 0.924814 0.065630 0.000000 -vt 0.920507 0.092523 0.000000 -vt 0.929448 0.091956 0.000000 -vt 0.902188 0.077993 0.000000 -vt 0.843705 0.077993 0.000000 -vt 0.902188 0.050487 0.000000 -vt 0.840060 0.050487 0.000000 -vt 0.840060 0.077993 0.000000 -vt 0.815555 0.066728 0.000000 -vt 0.819312 0.048894 0.000000 -vt 0.820626 0.065231 0.000000 -vt 0.892909 0.133819 0.000000 -vt 0.892909 0.115039 0.000000 -vt 0.894521 0.133819 0.000000 -vt 0.894521 0.113899 0.000000 -vt 0.940268 0.125989 0.000000 -vt 0.917817 0.126119 0.000000 -vt 0.843705 0.113899 0.000000 -vt 0.840060 0.115039 0.000000 -vt 0.801232 0.128311 0.000000 -vt 0.810083 0.092706 0.000000 -vt 0.820619 0.128448 0.000000 -vt 0.820626 0.093144 0.000000 -vt 0.902188 0.111827 0.000000 -vt 0.902188 0.133819 0.000000 -vt 0.840060 0.133819 0.000000 -vt 0.917435 0.092679 0.000000 -vt 0.845226 0.080753 0.000000 -vt 0.845226 0.111827 0.000000 -vt 0.902188 0.080753 0.000000 -vt 0.902188 0.037776 0.000000 -vt 0.840060 0.037776 0.000000 -vt 0.902188 0.030619 0.000000 -vt 0.840060 0.030619 0.000000 -vt 0.840060 0.016054 0.000000 -vt 0.902188 0.016054 0.000000 -vt 0.832705 0.061296 0.000000 -vt 0.832755 0.054199 0.000000 -vt 0.921776 0.048371 0.000000 -vt 0.908309 0.053735 0.000000 -vt 0.908390 0.060832 0.000000 -vt 0.050479 0.007302 0.000000 -vt 0.056861 0.007404 0.000000 -vt 0.051463 0.009775 0.000000 -vt 0.056861 0.011657 0.000000 -vt 0.063099 0.054914 0.000000 -vt 0.056796 0.054954 0.000000 -vt 0.062091 0.052515 0.000000 -vt 0.056796 0.050719 0.000000 -vt 0.050490 0.054889 0.000000 -vt 0.051483 0.052490 0.000000 -vt 0.062530 0.012897 0.000000 -vt 0.065128 0.012911 0.000000 -vt 0.062353 0.049784 0.000000 -vt 0.064960 0.049800 0.000000 -vt 0.056891 0.012788 0.000000 -vt 0.056762 0.049768 0.000000 -vt 0.051292 0.012770 0.000000 -vt 0.051139 0.049748 0.000000 -vt 0.048532 0.049735 0.000000 -vt 0.048676 0.012757 0.000000 -vt 0.063137 0.007377 0.000000 -vt 0.062178 0.009772 0.000000 -vt 0.071380 0.007571 0.000000 -vt 0.070080 0.005252 0.000000 -vt 0.079089 0.011386 0.000000 -vt 0.083258 0.005035 0.000000 -vt 0.083397 0.057409 0.000000 -vt 0.087655 0.050841 0.000000 -vt 0.096993 0.057219 0.000000 -vt 0.095643 0.054807 0.000000 -vt 0.079096 0.050862 0.000000 -vt 0.087535 0.011384 0.000000 -vt 0.069787 0.057294 0.000000 -vt 0.071112 0.054867 0.000000 -vt 0.096483 0.012337 0.000000 -vt 0.099245 0.012331 0.000000 -vt 0.096598 0.049580 0.000000 -vt 0.099367 0.049574 0.000000 -vt 0.087535 0.012376 0.000000 -vt 0.087655 0.049619 0.000000 -vt 0.079089 0.012378 0.000000 -vt 0.079096 0.049640 0.000000 -vt 0.070143 0.012381 0.000000 -vt 0.070140 0.049650 0.000000 -vt 0.067368 0.049646 0.000000 -vt 0.067368 0.012376 0.000000 -vt 0.096678 0.005012 0.000000 -vt 0.095382 0.007402 0.000000 -vt 0.016910 0.005225 0.000000 -vt 0.030451 0.005126 0.000000 -vt 0.018613 0.007584 0.000000 -vt 0.026276 0.011479 0.000000 -vt 0.044278 0.057230 0.000000 -vt 0.030536 0.057394 0.000000 -vt 0.042545 0.054843 0.000000 -vt 0.034767 0.050919 0.000000 -vt 0.026273 0.050930 0.000000 -vt 0.034741 0.011450 0.000000 -vt 0.016782 0.057284 0.000000 -vt 0.018489 0.054884 0.000000 -vt 0.043577 0.012457 0.000000 -vt 0.046551 0.012462 0.000000 -vt 0.043573 0.049701 0.000000 -vt 0.046554 0.049705 0.000000 -vt 0.034741 0.012443 0.000000 -vt 0.034767 0.049697 0.000000 -vt 0.026276 0.012471 0.000000 -vt 0.026273 0.049708 0.000000 -vt 0.017461 0.012505 0.000000 -vt 0.017453 0.049714 0.000000 -vt 0.014475 0.049710 0.000000 -vt 0.014475 0.012501 0.000000 -vt 0.044106 0.005028 0.000000 -vt 0.042434 0.007422 0.000000 -vt 0.032434 0.074006 0.000000 -vt 0.030188 0.077648 0.000000 -vt 0.011149 0.075985 0.000000 -vt 0.012992 0.077648 0.000000 -vt 0.030188 0.079941 0.000000 -vt 0.034467 0.079941 0.000000 -vt 0.030188 0.082340 0.000000 -vt 0.034467 0.082340 0.000000 -vt 0.012992 0.079941 0.000000 -vt 0.012992 0.082340 0.000000 -vt 0.010510 0.079941 0.000000 -vt 0.010510 0.082340 0.000000 -vt 0.003332 0.079941 0.000000 -vt 0.003332 0.082341 0.000000 -vt 0.032434 0.087859 0.000000 -vt 0.011149 0.085879 0.000000 -vt 0.030188 0.084216 0.000000 -vt 0.012992 0.084216 0.000000 -vt 0.039666 0.079941 0.000000 -vt 0.039666 0.082340 0.000000 -vt 0.075539 0.074187 0.000000 -vt 0.073240 0.077648 0.000000 -vt 0.054285 0.075983 0.000000 -vt 0.056129 0.077648 0.000000 -vt 0.073240 0.079941 0.000000 -vt 0.077395 0.079941 0.000000 -vt 0.073240 0.082340 0.000000 -vt 0.077395 0.082340 0.000000 -vt 0.056129 0.079941 0.000000 -vt 0.056129 0.082340 0.000000 -vt 0.053645 0.079941 0.000000 -vt 0.053645 0.082340 0.000000 -vt 0.046466 0.079941 0.000000 -vt 0.046466 0.082340 0.000000 -vt 0.075539 0.093059 0.000000 -vt 0.054285 0.093059 0.000000 -vt 0.075539 0.087678 0.000000 -vt 0.054285 0.085881 0.000000 -vt 0.082777 0.079941 0.000000 -vt 0.082777 0.082340 0.000000 -vt 0.040086 0.111572 0.000000 -vt 0.037836 0.114696 0.000000 -vt 0.017421 0.111572 0.000000 -vt 0.019303 0.114696 0.000000 -vt 0.037836 0.116989 0.000000 -vt 0.041686 0.116989 0.000000 -vt 0.037836 0.119389 0.000000 -vt 0.041686 0.119389 0.000000 -vt 0.019303 0.116989 0.000000 -vt 0.019303 0.119389 0.000000 -vt 0.015656 0.116989 0.000000 -vt 0.015656 0.119389 0.000000 -vt 0.008477 0.116990 0.000000 -vt 0.008478 0.119389 0.000000 -vt 0.040086 0.131567 0.000000 -vt 0.017421 0.131568 0.000000 -vt 0.040086 0.124389 0.000000 -vt 0.017421 0.124389 0.000000 -vt 0.048865 0.116989 0.000000 -vt 0.048865 0.119389 0.000000 -vt 0.039949 0.179600 0.000000 -vt 0.037786 0.182725 0.000000 -vt 0.018964 0.179600 0.000000 -vt 0.020809 0.182725 0.000000 -vt 0.037786 0.185018 0.000000 -vt 0.041586 0.185018 0.000000 -vt 0.037786 0.187417 0.000000 -vt 0.041586 0.187417 0.000000 -vt 0.020809 0.185018 0.000000 -vt 0.020809 0.187417 0.000000 -vt 0.017180 0.185018 0.000000 -vt 0.017180 0.187417 0.000000 -vt 0.010002 0.185018 0.000000 -vt 0.010002 0.187417 0.000000 -vt 0.039949 0.199596 0.000000 -vt 0.018964 0.199596 0.000000 -vt 0.039949 0.192418 0.000000 -vt 0.018964 0.192418 0.000000 -vt 0.048764 0.185018 0.000000 -vt 0.048764 0.187417 0.000000 -vt 0.011955 0.206884 0.000000 -vt 0.023639 0.217218 0.000000 -vt 0.012555 0.214766 0.000000 -vt 0.049360 0.219511 0.000000 -vt 0.053288 0.219511 0.000000 -vt 0.049360 0.221910 0.000000 -vt 0.053289 0.221911 0.000000 -vt 0.023639 0.219511 0.000000 -vt 0.023639 0.221910 0.000000 -vt 0.012287 0.219511 0.000000 -vt 0.012287 0.221911 0.000000 -vt 0.004383 0.219511 0.000000 -vt 0.004383 0.221911 0.000000 -vt 0.023639 0.223787 0.000000 -vt 0.011955 0.234120 0.000000 -vt 0.012555 0.226239 0.000000 -vt 0.060380 0.219511 0.000000 -vt 0.060380 0.221911 0.000000 -vt 0.042641 0.146377 0.000000 -vt 0.017963 0.146377 0.000000 -vt 0.042642 0.139199 0.000000 -vt 0.017963 0.139199 0.000000 -vt 0.040527 0.151802 0.000000 -vt 0.044306 0.151802 0.000000 -vt 0.040527 0.154201 0.000000 -vt 0.044306 0.154202 0.000000 -vt 0.019687 0.151802 0.000000 -vt 0.019687 0.154201 0.000000 -vt 0.016112 0.151802 0.000000 -vt 0.016112 0.154202 0.000000 -vt 0.008934 0.151802 0.000000 -vt 0.008934 0.154202 0.000000 -vt 0.042641 0.166388 0.000000 -vt 0.017963 0.166388 0.000000 -vt 0.042641 0.159210 0.000000 -vt 0.017963 0.159210 0.000000 -vt 0.051484 0.151802 0.000000 -vt 0.051484 0.154202 0.000000 -vt 0.953336 0.444671 0.000000 -vt 0.954273 0.450779 0.000000 -vt 0.930785 0.443134 0.000000 -vt 0.924201 0.450924 0.000000 -vt 0.953331 0.432617 0.000000 -vt 0.948256 0.436532 0.000000 -vt 0.930744 0.434128 0.000000 -vt 0.932094 0.436532 0.000000 -vt 0.926823 0.437891 0.000000 -vt 0.929554 0.437891 0.000000 -vt 0.926793 0.439649 0.000000 -vt 0.929521 0.439649 0.000000 -vt 0.915044 0.437891 0.000000 -vt 0.922704 0.437891 0.000000 -vt 0.914934 0.439649 0.000000 -vt 0.922685 0.439649 0.000000 -vt 0.982288 0.437891 0.000000 -vt 0.950670 0.437891 0.000000 -vt 0.982225 0.439649 0.000000 -vt 0.950530 0.439649 0.000000 -vt 0.977352 0.437891 0.000000 -vt 0.977314 0.439649 0.000000 -vt 0.960063 0.437891 0.000000 -vt 0.960055 0.439649 0.000000 -vt 0.953878 0.437891 0.000000 -vt 0.953814 0.439649 0.000000 -vt 0.951968 0.437891 0.000000 -vt 0.951905 0.439649 0.000000 -vt 0.945517 0.437891 0.000000 -vt 0.945502 0.439649 0.000000 -vt 0.924228 0.426253 0.000000 -vt 0.926663 0.433590 0.000000 -vt 0.926705 0.443627 0.000000 -vt 0.948283 0.440741 0.000000 -vt 0.932138 0.440741 0.000000 -vt 0.955235 0.444674 0.000000 -vt 0.980535 0.450855 0.000000 -vt 0.980512 0.444540 0.000000 -vt 0.960055 0.440741 0.000000 -vt 0.977314 0.440741 0.000000 -vt 0.954273 0.426504 0.000000 -vt 0.955235 0.432615 0.000000 -vt 0.977352 0.436532 0.000000 -vt 0.960063 0.436532 0.000000 -vt 0.980560 0.432731 0.000000 -vt 0.980600 0.426418 0.000000 -vt 0.903459 0.479755 0.000000 -vt 0.904437 0.485835 0.000000 -vt 0.881075 0.478400 0.000000 -vt 0.874501 0.486121 0.000000 -vt 0.903413 0.467730 0.000000 -vt 0.898406 0.471678 0.000000 -vt 0.880896 0.469431 0.000000 -vt 0.882264 0.471819 0.000000 -vt 0.877016 0.473223 0.000000 -vt 0.879736 0.473199 0.000000 -vt 0.877010 0.474981 0.000000 -vt 0.879724 0.474957 0.000000 -vt 0.865282 0.473325 0.000000 -vt 0.872926 0.473259 0.000000 -vt 0.865280 0.475083 0.000000 -vt 0.872939 0.475017 0.000000 -vt 0.932254 0.472741 0.000000 -vt 0.938486 0.472687 0.000000 -vt 0.932245 0.474499 0.000000 -vt 0.938466 0.474445 0.000000 -vt 0.927336 0.472784 0.000000 -vt 0.927338 0.474542 0.000000 -vt 0.910131 0.472934 0.000000 -vt 0.910134 0.474692 0.000000 -vt 0.903963 0.472988 0.000000 -vt 0.903922 0.474746 0.000000 -vt 0.902060 0.473004 0.000000 -vt 0.902022 0.474763 0.000000 -vt 0.895641 0.473061 0.000000 -vt 0.895647 0.474818 0.000000 -vt 0.874324 0.461617 0.000000 -vt 0.876814 0.468927 0.000000 -vt 0.877017 0.478871 0.000000 -vt 0.898408 0.475887 0.000000 -vt 0.882404 0.476026 0.000000 -vt 0.905354 0.479742 0.000000 -vt 0.930634 0.485707 0.000000 -vt 0.930573 0.479398 0.000000 -vt 0.910144 0.475784 0.000000 -vt 0.927348 0.475634 0.000000 -vt 0.904297 0.461637 0.000000 -vt 0.905304 0.467712 0.000000 -vt 0.927324 0.471425 0.000000 -vt 0.910119 0.471575 0.000000 -vt 0.930483 0.467616 0.000000 -vt 0.930469 0.461329 0.000000 -vt 0.933565 0.698823 0.000000 -vt 0.936203 0.698823 0.000000 -vt 0.933565 0.700678 0.000000 -vt 0.936203 0.700678 0.000000 -vt 0.984256 0.683372 0.000000 -vt 0.987217 0.683372 0.000000 -vt 0.984208 0.685130 0.000000 -vt 0.987170 0.685130 0.000000 -vt 0.969899 0.683372 0.000000 -vt 0.969872 0.685130 0.000000 -vt 0.967097 0.683372 0.000000 -vt 0.967069 0.685130 0.000000 -vt 0.950331 0.698823 0.000000 -vt 0.953277 0.698823 0.000000 -vt 0.950331 0.700678 0.000000 -vt 0.953277 0.700678 0.000000 -vt 0.924196 0.698823 0.000000 -vt 0.924196 0.700678 0.000000 -vt 0.952001 0.704133 0.000000 -vt 0.935169 0.704133 0.000000 -vt 0.950331 0.701706 0.000000 -vt 0.936203 0.701706 0.000000 -vt 0.935169 0.685999 0.000000 -vt 0.952001 0.685999 0.000000 -vt 0.935169 0.695368 0.000000 -vt 0.952001 0.695368 0.000000 -vt 0.962646 0.698823 0.000000 -vt 0.962646 0.700678 0.000000 -vt 0.957856 0.683372 0.000000 -vt 0.957809 0.685130 0.000000 -vt 0.985992 0.697973 0.000000 -vt 0.968437 0.697993 0.000000 -vt 0.985971 0.688627 0.000000 -vt 0.968401 0.688627 0.000000 -vt 0.986036 0.679598 0.000000 -vt 0.984256 0.682013 0.000000 -vt 0.968415 0.679602 0.000000 -vt 0.969899 0.682013 0.000000 -vt 0.996459 0.683372 0.000000 -vt 0.996377 0.685130 0.000000 -vt 0.915612 0.737535 0.000000 -vt 0.916538 0.743631 0.000000 -vt 0.893258 0.735979 0.000000 -vt 0.886595 0.743620 0.000000 -vt 0.915705 0.725470 0.000000 -vt 0.910656 0.729413 0.000000 -vt 0.893164 0.727027 0.000000 -vt 0.894517 0.729413 0.000000 -vt 0.889198 0.730772 0.000000 -vt 0.891925 0.730772 0.000000 -vt 0.889182 0.732530 0.000000 -vt 0.891898 0.732530 0.000000 -vt 0.877447 0.730772 0.000000 -vt 0.885103 0.730772 0.000000 -vt 0.877402 0.732530 0.000000 -vt 0.885094 0.732530 0.000000 -vt 0.944522 0.730772 0.000000 -vt 0.950759 0.730772 0.000000 -vt 0.944500 0.732530 0.000000 -vt 0.950740 0.732530 0.000000 -vt 0.939596 0.730772 0.000000 -vt 0.939585 0.732530 0.000000 -vt 0.922366 0.730772 0.000000 -vt 0.922354 0.732530 0.000000 -vt 0.916190 0.730772 0.000000 -vt 0.916129 0.732530 0.000000 -vt 0.914286 0.730772 0.000000 -vt 0.914227 0.732530 0.000000 -vt 0.907859 0.730772 0.000000 -vt 0.907849 0.732530 0.000000 -vt 0.886535 0.719285 0.000000 -vt 0.889081 0.726564 0.000000 -vt 0.889196 0.736401 0.000000 -vt 0.910587 0.733622 0.000000 -vt 0.894607 0.733622 0.000000 -vt 0.917510 0.737539 0.000000 -vt 0.942776 0.743734 0.000000 -vt 0.942781 0.737419 0.000000 -vt 0.922354 0.733622 0.000000 -vt 0.939585 0.733622 0.000000 -vt 0.916654 0.719367 0.000000 -vt 0.917600 0.725471 0.000000 -vt 0.939596 0.729413 0.000000 -vt 0.922366 0.729413 0.000000 -vt 0.942768 0.725646 0.000000 -vt 0.942770 0.719401 0.000000 -vt 0.965227 0.726360 0.000000 -vt 0.967878 0.726360 0.000000 -vt 0.965227 0.728225 0.000000 -vt 0.967878 0.728225 0.000000 -vt 0.913166 0.769950 0.000000 -vt 0.916120 0.769950 0.000000 -vt 0.913130 0.771708 0.000000 -vt 0.916084 0.771708 0.000000 -vt 0.898867 0.769950 0.000000 -vt 0.898840 0.771708 0.000000 -vt 0.896075 0.769950 0.000000 -vt 0.896044 0.771708 0.000000 -vt 0.982077 0.726360 0.000000 -vt 0.985038 0.726360 0.000000 -vt 0.982077 0.728225 0.000000 -vt 0.985038 0.728225 0.000000 -vt 0.955811 0.726361 0.000000 -vt 0.955811 0.728225 0.000000 -vt 0.983755 0.731673 0.000000 -vt 0.966838 0.731672 0.000000 -vt 0.982077 0.729234 0.000000 -vt 0.967878 0.729234 0.000000 -vt 0.966838 0.713419 0.000000 -vt 0.983755 0.713419 0.000000 -vt 0.966838 0.722835 0.000000 -vt 0.983755 0.722835 0.000000 -vt 0.994453 0.726361 0.000000 -vt 0.994453 0.728225 0.000000 -vt 0.886859 0.769950 0.000000 -vt 0.886836 0.771708 0.000000 -vt 0.914897 0.775196 0.000000 -vt 0.897372 0.775201 0.000000 -vt 0.913130 0.772800 0.000000 -vt 0.898840 0.772800 0.000000 -vt 0.914938 0.766186 0.000000 -vt 0.913166 0.768591 0.000000 -vt 0.897389 0.766190 0.000000 -vt 0.898867 0.768591 0.000000 -vt 0.925319 0.769950 0.000000 -vt 0.925268 0.771708 0.000000 -vt 0.961534 0.767992 0.000000 -vt 0.962458 0.774076 0.000000 -vt 0.939199 0.766454 0.000000 -vt 0.932597 0.774100 0.000000 -vt 0.961630 0.755984 0.000000 -vt 0.956603 0.759885 0.000000 -vt 0.939137 0.757489 0.000000 -vt 0.940480 0.759885 0.000000 -vt 0.935223 0.761244 0.000000 -vt 0.937942 0.761244 0.000000 -vt 0.935200 0.763002 0.000000 -vt 0.937911 0.763002 0.000000 -vt 0.923490 0.761244 0.000000 -vt 0.931131 0.761244 0.000000 -vt 0.923478 0.763002 0.000000 -vt 0.931135 0.763002 0.000000 -vt 0.990375 0.761244 0.000000 -vt 0.996597 0.761244 0.000000 -vt 0.990362 0.763002 0.000000 -vt 0.996575 0.763002 0.000000 -vt 0.985453 0.761244 0.000000 -vt 0.985443 0.763002 0.000000 -vt 0.968284 0.761244 0.000000 -vt 0.968266 0.763002 0.000000 -vt 0.962118 0.761244 0.000000 -vt 0.962056 0.763002 0.000000 -vt 0.960219 0.761244 0.000000 -vt 0.960157 0.763002 0.000000 -vt 0.953798 0.761244 0.000000 -vt 0.953763 0.763002 0.000000 -vt 0.932665 0.749651 0.000000 -vt 0.935079 0.756950 0.000000 -vt 0.935155 0.766898 0.000000 -vt 0.956511 0.764094 0.000000 -vt 0.940544 0.764094 0.000000 -vt 0.963428 0.767997 0.000000 -vt 0.988624 0.774185 0.000000 -vt 0.988628 0.767881 0.000000 -vt 0.968266 0.764094 0.000000 -vt 0.985443 0.764094 0.000000 -vt 0.962560 0.749919 0.000000 -vt 0.963513 0.755983 0.000000 -vt 0.985453 0.759885 0.000000 -vt 0.968284 0.759885 0.000000 -vt 0.988636 0.756108 0.000000 -vt 0.988680 0.749832 0.000000 -vt 0.964067 0.802347 0.000000 -vt 0.963147 0.798874 0.000000 -vt 0.965000 0.798874 0.000000 -vt 0.963158 0.787013 0.000000 -vt 0.958257 0.790840 0.000000 -vt 0.940454 0.787871 0.000000 -vt 0.944550 0.790840 0.000000 -vt 0.936831 0.792199 0.000000 -vt 0.941876 0.792199 0.000000 -vt 0.936821 0.793957 0.000000 -vt 0.941874 0.793957 0.000000 -vt 0.931912 0.792199 0.000000 -vt 0.931895 0.793957 0.000000 -vt 0.991281 0.792199 0.000000 -vt 0.994895 0.792199 0.000000 -vt 0.991265 0.793957 0.000000 -vt 0.994879 0.793957 0.000000 -vt 0.986476 0.792199 0.000000 -vt 0.986469 0.793957 0.000000 -vt 0.969698 0.792199 0.000000 -vt 0.969694 0.793957 0.000000 -vt 0.963655 0.792199 0.000000 -vt 0.963628 0.793957 0.000000 -vt 0.961795 0.792199 0.000000 -vt 0.961771 0.793957 0.000000 -vt 0.955542 0.792199 0.000000 -vt 0.955533 0.793957 0.000000 -vt 0.940431 0.798021 0.000000 -vt 0.958239 0.795049 0.000000 -vt 0.944527 0.795049 0.000000 -vt 0.969694 0.795049 0.000000 -vt 0.989583 0.798736 0.000000 -vt 0.986469 0.795049 0.000000 -vt 0.989584 0.802369 0.000000 -vt 0.938070 0.802357 0.000000 -vt 0.964077 0.783540 0.000000 -vt 0.965009 0.787012 0.000000 -vt 0.938091 0.783540 0.000000 -vt 0.986476 0.790840 0.000000 -vt 0.969698 0.790840 0.000000 -vt 0.989591 0.787154 0.000000 -vt 0.989592 0.783522 0.000000 -vt 0.968521 0.409102 0.000000 -vt 0.966908 0.409102 0.000000 -vt 0.968521 0.381437 0.000000 -vt 0.966908 0.381437 0.000000 -vt 0.971179 0.409102 0.000000 -vt 0.971179 0.381437 0.000000 -vt 0.972793 0.409102 0.000000 -vt 0.972792 0.381437 0.000000 -vt 0.975452 0.409102 0.000000 -vt 0.975450 0.381437 0.000000 -vt 0.958676 0.409102 0.000000 -vt 0.957063 0.409102 0.000000 -vt 0.958676 0.381437 0.000000 -vt 0.957063 0.381437 0.000000 -vt 0.961334 0.409102 0.000000 -vt 0.961333 0.381437 0.000000 -vt 0.962948 0.409102 0.000000 -vt 0.962946 0.381437 0.000000 -vt 0.965607 0.409102 0.000000 -vt 0.965605 0.381437 0.000000 -vt 0.978370 0.409102 0.000000 -vt 0.976757 0.409102 0.000000 -vt 0.978370 0.381437 0.000000 -vt 0.976757 0.381437 0.000000 -vt 0.981028 0.409102 0.000000 -vt 0.981027 0.381437 0.000000 -vt 0.982641 0.409102 0.000000 -vt 0.982640 0.381437 0.000000 -vt 0.985300 0.409102 0.000000 -vt 0.985298 0.381437 0.000000 -vt 0.914975 0.784495 0.000000 -vt 0.897349 0.784533 0.000000 -vt 0.983755 0.741088 0.000000 -vt 0.966838 0.741088 0.000000 -vt 0.982077 0.725274 0.000000 -vt 0.967878 0.725274 0.000000 -vt 0.897275 0.756816 0.000000 -vt 0.915027 0.756790 0.000000 -vt 0.952001 0.713502 0.000000 -vt 0.935169 0.713502 0.000000 -vt 0.984208 0.686222 0.000000 -vt 0.969872 0.686222 0.000000 -vt 0.968302 0.670193 0.000000 -vt 0.986120 0.670167 0.000000 -vt 0.950331 0.697794 0.000000 -vt 0.936203 0.697794 0.000000 -vt 0.040527 0.149509 0.000000 -vt 0.019687 0.149509 0.000000 -vt 0.011149 0.068807 0.000000 -vt 0.032434 0.068807 0.000000 -vt 0.032434 0.093057 0.000000 -vt 0.011149 0.093057 0.000000 -vt 0.040527 0.156078 0.000000 -vt 0.019687 0.156078 0.000000 -vt 0.051577 0.234120 0.000000 -vt 0.049360 0.223787 0.000000 -vt 0.051577 0.227029 0.000000 -vt 0.051577 0.206884 0.000000 -vt 0.049360 0.217218 0.000000 -vt 0.051577 0.213976 0.000000 -vt 0.037786 0.189293 0.000000 -vt 0.020809 0.189293 0.000000 -vt 0.037836 0.121265 0.000000 -vt 0.019303 0.121265 0.000000 -vt 0.073240 0.084216 0.000000 -vt 0.056129 0.084216 0.000000 -vt 0.054285 0.068805 0.000000 -vt 0.075539 0.068805 0.000000 -vt 0.040086 0.104394 0.000000 -vt 0.017421 0.104394 0.000000 -vt 0.039949 0.172422 0.000000 -vt 0.018964 0.172422 0.000000 -vt 0.964590 0.522158 0.000000 -vt 0.959201 0.521125 0.000000 -vt 0.964590 0.519914 0.000000 -vt 0.967084 0.499552 0.000000 -vt 0.959201 0.488378 0.000000 -vt 0.962516 0.488378 0.000000 -vt 0.976836 0.488902 0.000000 -vt 0.976836 0.481364 0.000000 -vt 0.980227 0.480191 0.000000 -vt 0.973117 0.490470 0.000000 -vt 0.973117 0.494058 0.000000 -vt 0.971682 0.490470 0.000000 -vt 0.971682 0.494058 0.000000 -vt 0.973117 0.481924 0.000000 -vt 0.971682 0.481924 0.000000 -vt 0.973117 0.476970 0.000000 -vt 0.971682 0.476970 0.000000 -vt 0.973117 0.473655 0.000000 -vt 0.971682 0.473655 0.000000 -vt 0.973117 0.552237 0.000000 -vt 0.973117 0.559418 0.000000 -vt 0.971682 0.552237 0.000000 -vt 0.971682 0.559418 0.000000 -vt 0.973117 0.547443 0.000000 -vt 0.971682 0.547443 0.000000 -vt 0.973117 0.533935 0.000000 -vt 0.971682 0.533935 0.000000 -vt 0.973117 0.529924 0.000000 -vt 0.971682 0.529925 0.000000 -vt 0.971682 0.521965 0.000000 -vt 0.973117 0.521964 0.000000 -vt 0.973117 0.519069 0.000000 -vt 0.971682 0.519069 0.000000 -vt 0.973116 0.516825 0.000000 -vt 0.971682 0.516825 0.000000 -vt 0.973117 0.510196 0.000000 -vt 0.971682 0.510196 0.000000 -vt 0.973117 0.501596 0.000000 -vt 0.971682 0.502290 0.000000 -vt 0.984087 0.528982 0.000000 -vt 0.981902 0.538842 0.000000 -vt 0.981902 0.530882 0.000000 -vt 0.973117 0.502986 0.000000 -vt 0.989475 0.509744 0.000000 -vt 0.989475 0.516476 0.000000 -vt 0.978202 0.510935 0.000000 -vt 0.978202 0.516476 0.000000 -vt 0.976836 0.494443 0.000000 -vt 0.988109 0.495633 0.000000 -vt 0.988109 0.488902 0.000000 -vt 0.978658 0.502986 0.000000 -vt 0.978658 0.501596 0.000000 -vt 0.980941 0.506545 0.000000 -vt 0.979575 0.498832 0.000000 -vt 0.983832 0.502986 0.000000 -vt 0.983832 0.501596 0.000000 -vt 0.973359 0.257115 0.000000 -vt 0.975141 0.257115 0.000000 -vt 0.973359 0.269863 0.000000 -vt 0.975141 0.269863 0.000000 -vt 0.973130 0.255269 0.000000 -vt 0.975369 0.255269 0.000000 -vt 0.977001 0.257115 0.000000 -vt 0.977001 0.269863 0.000000 -vt 0.971498 0.269863 0.000000 -vt 0.971498 0.257115 0.000000 -vt 0.985058 0.255305 0.000000 -vt 0.987874 0.255305 0.000000 -vt 0.985058 0.270384 0.000000 -vt 0.987874 0.270384 0.000000 -vt 0.984558 0.253444 0.000000 -vt 0.988374 0.253444 0.000000 -vt 0.989801 0.255305 0.000000 -vt 0.989801 0.270384 0.000000 -vt 0.983131 0.270384 0.000000 -vt 0.983131 0.255305 0.000000 -vt 0.970475 0.508957 0.000000 -vt 0.970475 0.500724 0.000000 -vt 0.970475 0.516864 0.000000 -vt 0.959201 0.508957 0.000000 -vt 0.966712 0.491013 0.000000 -vt 0.966776 0.532018 0.000000 -vt 0.966775 0.524058 0.000000 -vt 0.966383 0.549573 0.000000 -vt 0.970475 0.547074 0.000000 -vt 0.970475 0.533567 0.000000 -vt 0.959201 0.549573 0.000000 -vt 0.989476 0.527949 0.000000 -vt 0.984087 0.526738 0.000000 -vt 0.982294 0.556397 0.000000 -vt 0.978203 0.553899 0.000000 -vt 0.978203 0.540391 0.000000 -vt 0.989476 0.556397 0.000000 -vt 0.978202 0.523688 0.000000 -vt 0.984794 0.469017 0.000000 -vt 0.980599 0.471653 0.000000 -vt 0.988109 0.469017 0.000000 -vt 0.036158 0.564907 0.000000 -vt 0.042931 0.561729 0.000000 -vt 0.039648 0.569603 0.000000 -vt 0.044450 0.567575 0.000000 -vt 0.069579 0.489637 0.000000 -vt 0.075548 0.485887 0.000000 -vt 0.067437 0.496174 0.000000 -vt 0.069496 0.502727 0.000000 -vt 0.081131 0.485167 0.000000 -vt 0.088793 0.488090 0.000000 -vt 0.072957 0.507161 0.000000 -vt 0.079458 0.509815 0.000000 -vt 0.084988 0.508995 0.000000 -vt 0.092504 0.492747 0.000000 -vt 0.094186 0.499592 0.000000 -vt 0.091181 0.505779 0.000000 -vt 0.076508 0.514686 0.000000 -vt 0.071543 0.512667 0.000000 -vt 0.045317 0.556387 0.000000 -vt 0.047907 0.556929 0.000000 -vt 0.045721 0.562095 0.000000 -vt 0.046960 0.549557 0.000000 -vt 0.049534 0.549258 0.000000 -vt 0.044699 0.543388 0.000000 -vt 0.046629 0.541757 0.000000 -vt 0.038629 0.539977 0.000000 -vt 0.039721 0.537682 0.000000 -vt 0.032719 0.538938 0.000000 -vt 0.033766 0.536382 0.000000 -vt 0.028931 0.536033 0.000000 -vt 0.030041 0.533637 0.000000 -vt 0.024622 0.537946 0.000000 -vt 0.027905 0.533605 0.000000 -vt 0.023533 0.535508 0.000000 -vt 0.024653 0.542363 0.000000 -vt 0.021992 0.541551 0.000000 -vt 0.022092 0.537296 0.000000 -vt 0.021569 0.548023 0.000000 -vt 0.018989 0.547382 0.000000 -vt 0.020453 0.555022 0.000000 -vt 0.017968 0.555623 0.000000 -vt 0.023849 0.560665 0.000000 -vt 0.022136 0.562522 0.000000 -vt 0.030293 0.563537 0.000000 -vt 0.029239 0.565854 0.000000 -vt 0.034695 0.567306 0.000000 -vt 0.038059 0.571675 0.000000 -vt 0.040647 0.572067 0.000000 -vt 0.045544 0.569989 0.000000 -vt 0.047061 0.567608 0.000000 -vt 0.084626 0.482086 0.000000 -vt 0.088924 0.483963 0.000000 -vt 0.031381 0.506898 0.000000 -vt 0.038672 0.505332 0.000000 -vt 0.033972 0.512201 0.000000 -vt 0.038858 0.511367 0.000000 -vt 0.074140 0.536886 0.000000 -vt 0.080441 0.533896 0.000000 -vt 0.071230 0.543168 0.000000 -vt 0.072489 0.549916 0.000000 -vt 0.086223 0.533755 0.000000 -vt 0.093390 0.537557 0.000000 -vt 0.075545 0.554628 0.000000 -vt 0.081657 0.557947 0.000000 -vt 0.087194 0.557912 0.000000 -vt 0.096527 0.542635 0.000000 -vt 0.097413 0.549628 0.000000 -vt 0.093716 0.555429 0.000000 -vt 0.077950 0.562333 0.000000 -vt 0.073478 0.559879 0.000000 -vt 0.042277 0.500721 0.000000 -vt 0.041301 0.506293 0.000000 -vt 0.044718 0.501840 0.000000 -vt 0.045476 0.494511 0.000000 -vt 0.047939 0.494865 0.000000 -vt 0.044706 0.487950 0.000000 -vt 0.047050 0.486927 0.000000 -vt 0.039610 0.483193 0.000000 -vt 0.041318 0.481139 0.000000 -vt 0.033907 0.480587 0.000000 -vt 0.035595 0.478360 0.000000 -vt 0.030931 0.476898 0.000000 -vt 0.032608 0.474874 0.000000 -vt 0.026101 0.477905 0.000000 -vt 0.030365 0.474299 0.000000 -vt 0.025472 0.475307 0.000000 -vt 0.025357 0.482314 0.000000 -vt 0.022877 0.481001 0.000000 -vt 0.023709 0.476805 0.000000 -vt 0.021057 0.487188 0.000000 -vt 0.018643 0.486040 0.000000 -vt 0.018321 0.493727 0.000000 -vt 0.015865 0.493695 0.000000 -vt 0.020343 0.499987 0.000000 -vt 0.018137 0.501347 0.000000 -vt 0.025977 0.504320 0.000000 -vt 0.024315 0.506425 0.000000 -vt 0.029485 0.508959 0.000000 -vt 0.032017 0.513939 0.000000 -vt 0.034384 0.514842 0.000000 -vt 0.039384 0.513975 0.000000 -vt 0.041417 0.511910 0.000000 -vt 0.089860 0.530982 0.000000 -vt 0.094114 0.533429 0.000000 -vt 0.551366 0.574813 0.000000 -vt 0.550737 0.581246 0.000000 -vt 0.554314 0.569062 0.000000 -vt 0.559318 0.564972 0.000000 -vt 0.565469 0.562986 0.000000 -vt 0.571901 0.563630 0.000000 -vt 0.577654 0.566578 0.000000 -vt 0.581751 0.571577 0.000000 -vt 0.583728 0.577731 0.000000 -vt 0.583097 0.584164 0.000000 -vt 0.580144 0.589912 0.000000 -vt 0.575141 0.594007 0.000000 -vt 0.568990 0.595992 0.000000 -vt 0.562558 0.595344 0.000000 -vt 0.556800 0.592407 0.000000 -vt 0.092826 0.831401 0.000000 -vt 0.088214 0.835020 0.000000 -vt 0.264916 0.968892 0.000000 -vt 0.282005 0.423679 0.000000 -vt 0.286894 0.420841 0.000000 -vt 0.141035 0.569892 0.000000 -vt 0.247093 0.929289 0.000000 -vt 0.247850 0.938786 0.000000 -vt 0.213061 0.554509 0.000000 -vt 0.247770 0.476953 0.000000 -vt 0.252671 0.914515 0.000000 -vt 0.252588 0.501244 0.000000 -# 2574 texture coords - -g asdf -f 18/1/1 27/2/2 19/3/3 -f 19/3/4 27/2/5 72/4/6 -f 128/5/7 22/6/8 2/7/9 -f 2/7/10 22/6/11 3/8/12 -f 2/7/13 17/9/14 128/5/15 -f 128/5/16 17/9/17 23/10/18 -f 25/11/19 66/12/20 26/13/21 -f 26/13/22 66/12/23 150/14/24 -f 27/2/25 29/15/26 28/16/27 -f 30/17/28 33/18/29 31/19/30 -f 31/19/31 33/18/32 32/20/33 -f 34/21/34 29/15/35 18/1/36 -f 18/1/37 29/15/38 27/2/39 -f 25/11/40 33/18/41 35/22/42 -f 35/22/43 33/18/44 30/17/45 -f 25/11/46 35/22/47 66/12/48 -f 66/12/49 35/22/50 69/23/51 -f 36/24/52 39/25/53 37/26/54 -f 37/26/55 39/25/56 38/27/57 -f 39/25/58 41/28/59 38/27/60 -f 38/27/61 41/28/62 40/29/63 -f 42/30/64 45/31/65 43/32/66 -f 43/32/67 45/31/68 44/33/69 -f 47/34/70 46/35/71 44/33/72 -f 44/33/73 46/35/74 43/32/75 -f 51/36/76 50/37/77 48/38/78 -f 48/38/79 50/37/80 49/39/81 -f 53/40/82 52/41/83 51/36/84 -f 51/36/85 52/41/86 50/37/87 -f 4/42/88 5/43/89 53/40/90 -f 53/40/91 5/43/92 52/41/93 -f 41/28/94 45/31/95 40/29/96 -f 40/29/97 45/31/98 42/30/99 -f 36/24/100 107/44/101 39/25/102 -f 39/25/103 107/44/104 106/45/105 -f 39/25/106 106/45/107 41/28/108 -f 41/28/109 106/45/110 108/46/111 -f 45/31/112 41/28/113 109/47/114 -f 109/47/115 41/28/116 108/46/117 -f 54/48/118 36/24/119 55/49/120 -f 55/49/121 36/24/122 37/26/123 -f 51/36/124 48/38/125 56/50/126 -f 56/50/127 48/38/128 57/51/129 -f 51/36/130 56/50/131 53/40/132 -f 53/40/133 56/50/134 58/52/135 -f 4/42/136 53/40/137 7/53/138 -f 7/53/139 53/40/140 58/52/141 -f 44/33/142 45/31/143 172/54/144 -f 172/54/145 45/31/146 109/47/147 -f 59/55/148 47/34/149 172/54/150 -f 172/54/151 47/34/152 44/33/153 -f 60/56/154 57/51/155 61/57/156 -f 61/57/157 57/51/158 59/55/159 -f 60/56/160 62/58/161 57/51/162 -f 57/51/163 62/58/164 56/50/165 -f 62/58/166 63/59/167 56/50/168 -f 56/50/169 63/59/170 58/52/171 -f 63/59/172 6/60/173 58/52/174 -f 58/52/175 6/60/176 7/53/177 -f 152/61/178 64/62/179 151/63/180 -f 151/63/181 64/62/182 65/64/183 -f 69/23/184 68/65/185 66/12/186 -f 66/12/187 68/65/188 67/66/189 -f 66/12/190 67/66/191 150/14/192 -f 150/14/193 67/66/194 149/67/195 -f 69/23/196 158/68/197 68/65/198 -f 68/65/199 158/68/200 157/69/201 -f 70/70/202 30/17/203 71/71/204 -f 71/71/205 30/17/206 31/19/207 -f 24/72/208 35/22/209 70/70/210 -f 70/70/211 35/22/212 30/17/213 -f 10/73/214 3/8/215 98/74/216 -f 98/74/217 3/8/218 22/6/219 -f 95/75/220 21/76/221 93/77/222 -f 93/77/223 21/76/224 20/78/225 -f 27/2/226 87/79/227 72/4/228 -f 72/4/229 87/79/230 92/80/231 -f 87/79/232 28/16/233 90/81/234 -f 28/16/235 87/79/236 27/2/237 -f 71/71/238 31/19/239 85/82/240 -f 85/82/241 31/19/242 82/83/243 -f 37/26/244 38/27/245 78/84/246 -f 78/84/247 38/27/248 76/85/249 -f 38/27/250 40/29/251 76/85/252 -f 76/85/253 40/29/254 74/86/255 -f 42/30/256 43/32/257 73/87/258 -f 46/35/259 132/88/260 43/32/261 -f 43/32/262 132/88/263 133/89/264 -f 50/37/265 130/90/266 49/39/267 -f 49/39/268 130/90/269 131/91/270 -f 52/41/271 129/92/272 50/37/273 -f 50/37/274 129/92/275 130/90/276 -f 5/43/277 9/93/278 52/41/279 -f 52/41/280 9/93/281 129/92/282 -f 40/29/283 42/30/284 74/86/285 -f 74/86/286 42/30/287 73/87/288 -f 55/49/289 37/26/290 80/94/291 -f 80/94/292 37/26/293 78/84/294 -f 31/19/295 32/20/296 82/83/297 -f 32/20/298 177/95/299 82/83/300 -f 82/83/301 177/95/302 176/96/303 -f 43/32/304 133/89/305 73/87/306 -f 73/87/307 133/89/308 134/97/309 -f 74/86/310 73/87/311 75/98/312 -f 75/98/313 73/87/314 134/97/315 -f 76/85/316 74/86/317 77/99/318 -f 77/99/319 74/86/320 75/98/321 -f 78/84/322 76/85/323 79/100/324 -f 79/100/325 76/85/326 77/99/327 -f 80/94/328 78/84/329 81/101/330 -f 81/101/331 78/84/332 79/100/333 -f 84/102/334 83/103/335 176/96/336 -f 176/96/337 83/103/338 82/83/339 -f 85/82/340 82/83/341 86/104/342 -f 86/104/343 82/83/344 83/103/345 -f 90/81/346 89/105/347 87/79/348 -f 87/79/349 89/105/350 88/106/351 -f 92/80/352 87/79/353 91/107/354 -f 91/107/355 87/79/356 88/106/357 -f 93/77/358 92/80/359 94/108/360 -f 94/108/361 92/80/362 91/107/363 -f 93/77/364 94/108/365 95/75/366 -f 95/75/367 94/108/368 96/109/369 -f 98/74/370 97/110/371 10/73/372 -f 10/73/373 97/110/374 11/111/375 -f 91/107/376 100/112/377 94/108/378 -f 94/108/379 100/112/380 99/113/381 -f 94/108/382 99/113/383 96/109/384 -f 96/109/385 99/113/386 101/114/387 -f 97/110/388 102/115/389 11/111/390 -f 11/111/391 102/115/392 8/116/393 -f 109/47/394 108/46/395 148/117/396 -f 148/117/397 108/46/398 142/118/399 -f 47/34/400 59/55/401 48/38/402 -f 48/38/403 59/55/404 57/51/405 -f 48/38/406 49/39/407 47/34/408 -f 47/34/409 49/39/410 46/35/411 -f 49/39/412 131/91/413 46/35/414 -f 46/35/415 131/91/416 132/88/417 -f 104/119/418 114/120/419 103/121/420 -f 103/121/421 114/120/422 105/122/423 -f 67/123/424 68/124/425 159/125/426 -f 149/126/427 67/123/428 161/127/429 -f 161/127/430 67/123/431 159/125/432 -f 157/128/433 16/129/434 68/124/435 -f 68/124/436 16/129/437 159/125/438 -f 104/119/439 160/130/440 114/120/441 -f 115/131/442 116/132/443 185/133/444 -f 185/133/445 116/132/446 184/134/447 -f 120/135/448 119/136/449 117/137/450 -f 117/137/451 119/136/452 118/138/453 -f 122/139/454 121/140/455 120/135/456 -f 120/135/457 121/140/458 119/136/459 -f 124/141/460 123/142/461 122/139/462 -f 122/139/463 123/142/464 121/140/465 -f 124/141/466 1/143/467 123/142/468 -f 123/142/469 1/143/470 12/144/471 -f 178/145/472 26/13/473 126/146/474 -f 54/48/475 126/146/476 125/147/477 -f 125/147/478 189/148/479 188/149/480 -f 189/148/481 125/147/482 126/146/483 -f 108/46/484 106/45/485 142/118/486 -f 142/118/487 106/45/488 143/150/489 -f 107/44/490 125/147/491 188/149/492 -f 54/48/493 125/147/494 36/24/495 -f 36/24/496 125/147/497 107/44/498 -f 127/151/499 20/78/500 23/10/501 -f 23/10/502 20/78/503 128/5/504 -f 19/3/505 72/4/506 127/151/507 -f 127/151/508 72/4/509 20/78/510 -f 77/99/511 75/98/512 135/152/513 -f 79/100/514 77/99/515 136/153/516 -f 136/153/517 77/99/518 135/152/519 -f 81/101/520 79/100/521 137/154/522 -f 137/154/523 79/100/524 136/153/525 -f 83/103/526 84/102/527 138/155/528 -f 138/155/529 84/102/530 139/156/531 -f 138/155/532 86/104/533 83/103/534 -f 86/104/535 138/155/536 140/157/537 -f 89/105/538 179/158/539 88/106/540 -f 88/106/541 179/158/542 141/159/543 -f 88/106/544 141/159/545 91/107/546 -f 91/107/547 141/159/548 100/112/549 -f 174/160/550 175/161/551 102/115/552 -f 102/115/553 175/161/554 8/116/555 -f 99/113/556 173/162/557 101/114/558 -f 110/163/559 109/47/560 148/117/561 -f 61/57/562 59/55/563 113/164/564 -f 113/164/565 59/55/566 111/165/567 -f 105/122/568 162/166/569 145/167/570 -f 105/168/571 189/148/572 26/13/573 -f 105/168/574 150/14/575 103/169/576 -f 150/14/577 105/168/578 26/13/579 -f 149/67/580 104/170/581 150/14/582 -f 150/14/583 104/170/584 103/169/585 -f 116/132/586 115/131/587 151/63/588 -f 151/63/589 115/131/590 152/171/591 -f 65/64/592 116/132/593 151/63/594 -f 123/172/595 156/173/596 121/174/597 -f 121/174/598 156/173/599 155/175/600 -f 12/176/601 13/177/602 123/172/603 -f 123/172/604 13/177/605 156/173/606 -f 119/179/607 154/180/608 118/181/609 -f 118/181/610 154/180/611 153/182/612 -f 121/174/613 155/175/614 119/179/615 -f 119/179/616 155/175/617 154/180/618 -f 186/185/619 185/186/620 153/182/621 -f 153/182/622 185/186/623 118/181/624 -f 15/188/625 16/129/626 157/189/627 -f 64/62/628 157/69/629 65/64/630 -f 65/64/631 157/69/632 158/68/633 -f 359/190/634 190/191/635 14/192/636 -f 182/193/637 183/194/638 71/71/639 -f 71/71/640 183/194/641 70/70/642 -f 181/195/643 182/193/644 85/82/645 -f 85/82/646 182/193/647 71/71/648 -f 180/196/649 181/195/650 86/104/651 -f 86/104/652 181/195/653 85/82/654 -f 84/102/655 81/101/656 139/156/657 -f 139/156/658 81/101/659 137/154/660 -f 176/96/661 80/94/662 84/102/663 -f 84/102/664 80/94/665 81/101/666 -f 177/95/667 55/49/668 176/96/669 -f 176/96/670 55/49/671 80/94/672 -f 178/145/673 54/48/674 177/95/675 -f 177/95/676 54/48/677 55/49/678 -f 178/145/679 126/146/680 54/48/681 -f 24/72/682 183/194/683 34/21/684 -f 183/194/685 24/72/686 70/70/687 -f 65/64/688 158/68/689 116/132/690 -f 184/134/691 158/68/692 24/72/693 -f 24/72/694 158/68/695 35/22/696 -f 35/22/697 158/68/698 69/23/699 -f 124/141/700 23/10/701 1/143/702 -f 1/143/703 23/10/704 17/9/705 -f 122/139/706 127/151/707 124/141/708 -f 124/141/709 127/151/710 23/10/711 -f 120/135/712 19/3/713 122/139/714 -f 122/139/715 19/3/716 127/151/717 -f 117/137/718 18/1/719 120/135/720 -f 120/135/721 18/1/722 19/3/723 -f 18/1/724 117/137/725 34/21/726 -f 117/137/727 184/134/728 34/21/729 -f 184/134/730 24/72/731 34/21/732 -f 173/162/733 174/160/734 101/114/735 -f 101/114/736 174/160/737 102/115/738 -f 96/109/739 101/114/740 97/110/741 -f 97/110/742 101/114/743 102/115/744 -f 98/74/745 95/75/746 97/110/747 -f 97/110/748 95/75/749 96/109/750 -f 21/76/751 95/75/752 22/6/753 -f 22/6/754 95/75/755 98/74/756 -f 22/6/757 128/5/758 21/76/759 -f 21/76/760 128/5/761 20/78/762 -f 149/126/763 161/127/764 104/119/765 -f 104/119/766 161/127/767 160/130/768 -f 162/166/769 105/122/770 163/197/771 -f 163/197/772 105/122/773 114/120/774 -f 163/197/775 165/198/776 162/166/777 -f 162/166/778 165/198/779 164/199/780 -f 165/198/781 167/200/782 164/199/783 -f 164/199/784 167/200/785 166/201/786 -f 160/130/787 168/202/788 114/120/789 -f 114/120/790 168/202/791 163/197/792 -f 168/202/793 169/203/794 163/197/795 -f 169/203/796 170/204/797 163/197/798 -f 163/197/799 170/204/800 165/198/801 -f 170/204/802 171/205/803 165/198/804 -f 165/198/805 171/205/806 167/200/807 -f 147/206/808 105/168/809 145/207/810 -f 105/168/811 187/208/812 189/148/813 -f 72/4/814 92/80/815 20/78/816 -f 20/78/817 92/80/818 93/77/819 -f 109/47/820 110/163/821 172/54/822 -f 172/54/823 110/163/824 112/209/825 -f 59/55/826 172/54/827 111/165/828 -f 111/165/829 172/54/830 112/209/831 -f 129/210/832 9/211/833 174/212/834 -f 174/212/835 9/211/836 175/213/837 -f 99/214/838 130/215/839 173/216/840 -f 130/215/841 129/210/842 173/216/843 -f 129/210/844 174/212/845 173/216/846 -f 130/215/847 140/217/848 131/218/849 -f 140/217/850 130/215/851 179/219/852 -f 130/215/853 141/220/854 179/219/855 -f 130/215/856 100/221/857 141/220/858 -f 100/221/859 130/215/860 99/214/861 -f 137/222/862 136/223/863 131/218/864 -f 136/223/865 135/224/866 131/218/867 -f 135/224/868 132/225/869 131/218/870 -f 140/217/871 138/226/872 131/218/873 -f 138/226/874 139/227/875 131/218/876 -f 131/218/877 139/227/878 137/222/879 -f 135/224/880 75/228/881 132/225/882 -f 132/225/883 75/228/884 133/229/885 -f 75/228/886 134/230/887 133/229/888 -f 33/18/889 178/145/890 32/20/891 -f 32/20/892 178/145/893 177/95/894 -f 26/13/895 178/145/896 25/11/897 -f 178/145/898 33/18/899 25/11/900 -f 140/157/901 180/196/902 86/104/903 -f 180/196/904 179/158/905 89/105/906 -f 179/158/907 180/196/908 140/157/909 -f 89/105/910 90/81/911 180/196/912 -f 180/196/913 90/81/914 181/195/915 -f 90/81/916 28/16/917 181/195/918 -f 181/195/919 28/16/920 182/193/921 -f 28/16/922 29/15/923 182/193/924 -f 182/193/925 29/15/926 183/194/927 -f 29/15/928 34/21/929 183/194/930 -f 185/133/931 184/134/932 118/138/933 -f 118/138/934 184/134/935 117/137/936 -f 115/231/937 64/232/938 152/233/939 -f 158/68/940 184/134/941 116/132/942 -f 105/168/943 147/206/944 187/208/945 -f 188/149/946 187/208/947 146/234/948 -f 146/234/949 187/208/950 147/206/951 -f 107/44/952 188/149/953 144/235/954 -f 144/235/955 188/149/956 146/234/957 -f 106/45/958 107/44/959 143/150/960 -f 143/150/961 107/44/962 144/235/963 -f 185/186/964 186/185/965 115/231/966 -f 115/231/967 186/185/968 64/232/969 -f 188/149/970 189/148/971 187/208/972 -f 26/13/973 189/148/974 126/146/975 -f 64/236/976 190/191/977 157/189/978 -f 157/189/979 190/191/980 15/188/981 -f 191/237/982 190/238/983 186/185/984 -f 186/185/985 190/238/986 64/232/987 -f 192/239/988 191/237/989 153/182/990 -f 153/182/991 191/237/992 186/185/993 -f 154/180/994 193/240/995 153/182/996 -f 153/182/997 193/240/998 192/239/999 -f 155/175/1000 194/241/1001 154/180/1002 -f 154/180/1003 194/241/1004 193/240/1005 -f 156/173/1006 195/242/1007 155/175/1008 -f 155/175/1009 195/242/1010 194/241/1011 -f 13/177/1012 196/243/1013 156/173/1014 -f 156/173/1015 196/243/1016 195/242/1017 -f 200/244/1018 195/245/1019 197/246/1020 -f 197/246/1021 195/245/1022 196/247/1023 -f 201/248/1024 199/249/1025 193/250/1026 -f 193/250/1027 199/249/1028 192/251/1029 -f 200/244/1030 198/252/1031 195/245/1032 -f 195/245/1033 198/252/1034 194/253/1035 -f 201/248/1036 193/250/1037 198/252/1038 -f 198/252/1039 193/250/1040 194/253/1041 -f 191/256/1042 203/255/1043 202/254/1044 -f 203/255/1045 191/256/1046 192/251/1047 -f 203/255/1048 192/251/1049 199/249/1050 -f 14/257/1051 190/258/1052 204/259/1053 -f 191/256/1054 204/259/1055 190/258/1056 -f 204/259/1057 191/256/1058 202/254/1059 -f 205/260/1060 207/261/1061 206/262/1062 -f 207/261/1063 208/263/1064 206/262/1065 -f 209/264/1066 2/7/1067 210/265/1068 -f 2/7/1069 3/8/1070 210/265/1071 -f 2/7/1072 209/264/1073 17/9/1074 -f 209/264/1075 211/266/1076 17/9/1077 -f 212/267/1078 214/268/1079 213/269/1080 -f 214/268/1081 215/270/1082 213/269/1083 -f 206/262/1084 217/271/1085 216/272/1086 -f 218/273/1087 220/274/1088 219/275/1089 -f 220/274/1090 221/276/1091 219/275/1092 -f 222/277/1093 205/260/1094 216/272/1095 -f 205/260/1096 206/262/1097 216/272/1098 -f 212/267/1099 223/278/1100 219/275/1101 -f 223/278/1102 218/273/1103 219/275/1104 -f 212/267/1105 213/269/1106 223/278/1107 -f 213/269/1108 224/279/1109 223/278/1110 -f 225/280/1111 227/281/1112 226/282/1113 -f 227/281/1114 228/283/1115 226/282/1116 -f 226/282/1117 228/283/1118 229/284/1119 -f 228/283/1120 230/285/1121 229/284/1122 -f 231/286/1123 233/287/1124 232/288/1125 -f 233/287/1126 234/289/1127 232/288/1128 -f 235/290/1129 234/289/1130 236/291/1131 -f 234/289/1132 233/287/1133 236/291/1134 -f 237/292/1135 239/293/1136 238/294/1137 -f 239/293/1138 240/295/1139 238/294/1140 -f 241/296/1141 237/292/1142 242/297/1143 -f 237/292/1144 238/294/1145 242/297/1146 -f 4/42/1147 241/296/1148 5/43/1149 -f 241/296/1150 242/297/1151 5/43/1152 -f 229/284/1153 230/285/1154 232/288/1155 -f 230/285/1156 231/286/1157 232/288/1158 -f 225/280/1159 226/282/1160 243/298/1161 -f 226/282/1162 244/299/1163 243/298/1164 -f 226/282/1165 229/284/1166 244/299/1167 -f 229/284/1168 245/300/1169 244/299/1170 -f 232/288/1171 246/301/1172 229/284/1173 -f 246/301/1174 245/300/1175 229/284/1176 -f 247/302/1177 248/303/1178 225/280/1179 -f 248/303/1180 227/281/1181 225/280/1182 -f 237/292/1183 249/304/1184 239/293/1185 -f 249/304/1186 250/305/1187 239/293/1188 -f 237/292/1189 241/296/1190 249/304/1191 -f 241/296/1192 251/306/1193 249/304/1194 -f 4/42/1195 7/53/1196 241/296/1197 -f 7/53/1198 251/306/1199 241/296/1200 -f 234/289/1201 252/307/1202 232/288/1203 -f 252/307/1204 246/301/1205 232/288/1206 -f 253/308/1207 252/307/1208 235/290/1209 -f 252/307/1210 234/289/1211 235/290/1212 -f 254/309/1213 255/310/1214 250/305/1215 -f 255/310/1216 253/308/1217 250/305/1218 -f 254/309/1219 250/305/1220 256/311/1221 -f 250/305/1222 249/304/1223 256/311/1224 -f 256/311/1225 249/304/1226 257/312/1227 -f 249/304/1228 251/306/1229 257/312/1230 -f 257/312/1231 251/306/1232 6/60/1233 -f 251/306/1234 7/53/1235 6/60/1236 -f 258/313/1237 260/314/1238 259/315/1239 -f 260/314/1240 261/316/1241 259/315/1242 -f 224/279/1243 213/269/1244 262/317/1245 -f 213/269/1246 263/318/1247 262/317/1248 -f 213/269/1249 215/270/1250 263/318/1251 -f 215/270/1252 264/319/1253 263/318/1254 -f 224/279/1255 262/317/1256 265/320/1257 -f 262/317/1258 266/321/1259 265/320/1260 -f 267/322/1261 268/323/1262 218/273/1263 -f 268/323/1264 220/274/1265 218/273/1266 -f 269/324/1267 267/322/1268 223/278/1269 -f 267/322/1270 218/273/1271 223/278/1272 -f 10/73/1273 270/325/1274 3/8/1275 -f 270/325/1276 210/265/1277 3/8/1278 -f 271/326/1279 273/327/1280 272/328/1281 -f 273/327/1282 274/329/1283 272/328/1284 -f 206/262/1285 208/263/1286 275/330/1287 -f 208/263/1288 276/331/1289 275/330/1290 -f 275/330/1291 277/332/1292 217/271/1293 -f 217/271/1294 206/262/1295 275/330/1296 -f 268/323/1297 278/333/1298 220/274/1299 -f 278/333/1300 279/334/1301 220/274/1302 -f 227/281/1303 280/335/1304 228/283/1305 -f 280/335/1306 281/336/1307 228/283/1308 -f 228/283/1309 281/336/1310 230/285/1311 -f 281/336/1312 282/337/1313 230/285/1314 -f 231/286/1315 283/338/1316 233/287/1317 -f 236/291/1318 233/287/1319 284/339/1320 -f 233/287/1321 285/340/1322 284/339/1323 -f 238/294/1324 240/295/1325 286/341/1326 -f 240/295/1327 287/342/1328 286/341/1329 -f 242/297/1330 238/294/1331 288/343/1332 -f 238/294/1333 286/341/1334 288/343/1335 -f 5/43/1336 242/297/1337 9/93/1338 -f 242/297/1339 288/343/1340 9/93/1341 -f 230/285/1342 282/337/1343 231/286/1344 -f 282/337/1345 283/338/1346 231/286/1347 -f 248/303/1348 289/344/1349 227/281/1350 -f 289/344/1351 280/335/1352 227/281/1353 -f 220/274/1354 279/334/1355 221/276/1356 -f 221/276/1357 279/334/1358 290/345/1359 -f 279/334/1360 291/346/1361 290/345/1362 -f 233/287/1363 283/338/1364 285/340/1365 -f 283/338/1366 292/347/1367 285/340/1368 -f 282/337/1369 293/348/1370 283/338/1371 -f 293/348/1372 292/347/1373 283/338/1374 -f 281/336/1375 294/349/1376 282/337/1377 -f 294/349/1378 293/348/1379 282/337/1380 -f 280/335/1381 295/350/1382 281/336/1383 -f 295/350/1384 294/349/1385 281/336/1386 -f 289/344/1387 296/351/1388 280/335/1389 -f 296/351/1390 295/350/1391 280/335/1392 -f 297/352/1393 291/346/1394 298/353/1395 -f 291/346/1396 279/334/1397 298/353/1398 -f 278/333/1399 299/354/1400 279/334/1401 -f 299/354/1402 298/353/1403 279/334/1404 -f 277/332/1405 275/330/1406 300/355/1407 -f 275/330/1408 301/356/1409 300/355/1410 -f 276/331/1411 302/357/1412 275/330/1413 -f 302/357/1414 301/356/1415 275/330/1416 -f 273/327/1417 303/358/1418 276/331/1419 -f 303/358/1420 302/357/1421 276/331/1422 -f 273/327/1423 271/326/1424 303/358/1425 -f 271/326/1426 304/359/1427 303/358/1428 -f 270/325/1429 10/73/1430 305/360/1431 -f 10/73/1432 11/111/1433 305/360/1434 -f 302/357/1435 303/358/1436 306/361/1437 -f 303/358/1438 307/362/1439 306/361/1440 -f 303/358/1441 304/359/1442 307/362/1443 -f 304/359/1444 308/363/1445 307/362/1446 -f 305/360/1447 11/111/1448 309/364/1449 -f 11/111/1450 8/116/1451 309/364/1452 -f 246/301/1453 310/365/1454 245/300/1455 -f 310/365/1456 311/366/1457 245/300/1458 -f 235/290/1459 239/293/1460 253/308/1461 -f 239/293/1462 250/305/1463 253/308/1464 -f 239/293/1465 235/290/1466 240/295/1467 -f 235/290/1468 236/291/1469 240/295/1470 -f 240/295/1471 236/291/1472 287/342/1473 -f 236/291/1474 284/339/1475 287/342/1476 -f 312/367/1477 314/368/1478 313/369/1479 -f 314/368/1480 315/370/1481 313/369/1482 -f 263/371/1483 316/372/1484 262/373/1485 -f 264/374/1486 317/375/1487 263/371/1488 -f 317/375/1489 316/372/1490 263/371/1491 -f 266/376/1492 262/373/1493 318/377/1494 -f 262/373/1495 316/372/1496 318/377/1497 -f 312/367/1498 313/369/1499 319/378/1500 -f 320/379/1501 322/380/1502 321/381/1503 -f 322/380/1504 323/382/1505 321/381/1506 -f 324/383/1507 326/384/1508 325/385/1509 -f 326/384/1510 327/386/1511 325/385/1512 -f 328/387/1513 324/383/1514 329/388/1515 -f 324/383/1516 325/385/1517 329/388/1518 -f 330/389/1519 328/387/1520 331/390/1521 -f 328/387/1522 329/388/1523 331/390/1524 -f 330/389/1525 331/390/1526 1/143/1527 -f 331/390/1528 12/391/1529 1/143/1530 -f 332/392/1531 333/393/1532 214/268/1533 -f 247/302/1534 334/394/1535 333/393/1536 -f 334/394/1537 336/395/1538 335/396/1539 -f 335/396/1540 333/393/1541 334/394/1542 -f 245/300/1543 311/366/1544 244/299/1545 -f 311/366/1546 337/397/1547 244/299/1548 -f 243/298/1549 336/395/1550 334/394/1551 -f 247/302/1552 225/280/1553 334/394/1554 -f 225/280/1555 243/298/1556 334/394/1557 -f 338/398/1558 211/266/1559 274/329/1560 -f 211/266/1561 209/264/1562 274/329/1563 -f 207/261/1564 338/398/1565 208/263/1566 -f 338/398/1567 274/329/1568 208/263/1569 -f 294/349/1570 339/399/1571 293/348/1572 -f 295/350/1573 340/400/1574 294/349/1575 -f 340/400/1576 339/399/1577 294/349/1578 -f 296/351/1579 341/401/1580 295/350/1581 -f 341/401/1582 340/400/1583 295/350/1584 -f 298/353/1585 342/402/1586 297/352/1587 -f 342/402/1588 343/403/1589 297/352/1590 -f 342/402/1591 298/353/1592 299/354/1593 -f 299/354/1594 344/404/1595 342/402/1596 -f 300/355/1597 301/356/1598 345/405/1599 -f 301/356/1600 346/406/1601 345/405/1602 -f 301/356/1603 302/357/1604 346/406/1605 -f 302/357/1606 306/361/1607 346/406/1608 -f 347/407/1609 309/364/1610 175/161/1611 -f 309/364/1612 8/116/1613 175/161/1614 -f 307/362/1615 308/363/1616 348/409/1617 -f 349/410/1618 310/365/1619 246/301/1620 -f 255/310/1621 350/411/1622 253/308/1623 -f 350/411/1624 351/412/1625 253/308/1626 -f 315/370/1627 353/413/1628 352/414/1629 -f 315/415/1630 214/268/1631 335/396/1632 -f 315/415/1633 314/416/1634 215/270/1635 -f 215/270/1636 214/268/1637 315/415/1638 -f 264/319/1639 215/270/1640 312/417/1641 -f 215/270/1642 314/416/1643 312/417/1644 -f 321/381/1645 260/314/1646 320/379/1647 -f 260/314/1648 258/418/1649 320/379/1650 -f 261/316/1651 260/314/1652 321/381/1653 -f 331/419/1654 329/420/1655 354/421/1656 -f 329/420/1657 355/422/1658 354/421/1659 -f 12/176/1660 331/419/1661 13/177/1662 -f 331/419/1663 354/421/1664 13/177/1665 -f 325/425/1666 327/426/1667 356/427/1668 -f 327/426/1669 357/428/1670 356/427/1671 -f 329/420/1672 325/425/1673 355/422/1674 -f 325/425/1675 356/427/1676 355/422/1677 -f 358/431/1678 357/428/1679 322/432/1680 -f 357/428/1681 327/426/1682 322/432/1683 -f 318/377/1684 15/188/1685 266/434/1686 -f 15/188/1687 318/377/1688 16/129/1689 -f 259/315/1690 261/316/1691 266/321/1692 -f 261/316/1693 265/320/1694 266/321/1695 -f 190/191/1696 359/190/1697 15/188/1698 -f 360/435/1699 268/323/1700 361/436/1701 -f 268/323/1702 267/322/1703 361/436/1704 -f 362/437/1705 278/333/1706 360/435/1707 -f 278/333/1708 268/323/1709 360/435/1710 -f 363/438/1711 299/354/1712 362/437/1713 -f 299/354/1714 278/333/1715 362/437/1716 -f 297/352/1717 343/403/1718 296/351/1719 -f 343/403/1720 341/401/1721 296/351/1722 -f 291/346/1723 297/352/1724 289/344/1725 -f 297/352/1726 296/351/1727 289/344/1728 -f 290/345/1729 291/346/1730 248/303/1731 -f 291/346/1732 289/344/1733 248/303/1734 -f 332/392/1735 290/345/1736 247/302/1737 -f 290/345/1738 248/303/1739 247/302/1740 -f 332/392/1741 247/302/1742 333/393/1743 -f 269/324/1744 222/277/1745 361/436/1746 -f 361/436/1747 267/322/1748 269/324/1749 -f 261/316/1750 321/381/1751 265/320/1752 -f 323/382/1753 269/324/1754 265/320/1755 -f 269/324/1756 223/278/1757 265/320/1758 -f 223/278/1759 224/279/1760 265/320/1761 -f 330/389/1762 1/143/1763 211/266/1764 -f 1/143/1765 17/9/1766 211/266/1767 -f 328/387/1768 330/389/1769 338/398/1770 -f 330/389/1771 211/266/1772 338/398/1773 -f 324/383/1774 328/387/1775 207/261/1776 -f 328/387/1777 338/398/1778 207/261/1779 -f 326/384/1780 324/383/1781 205/260/1782 -f 324/383/1783 207/261/1784 205/260/1785 -f 205/260/1786 222/277/1787 326/384/1788 -f 326/384/1789 222/277/1790 323/382/1791 -f 323/382/1792 222/277/1793 269/324/1794 -f 348/409/1795 308/363/1796 347/407/1797 -f 308/363/1798 309/364/1799 347/407/1800 -f 304/359/1801 305/360/1802 308/363/1803 -f 305/360/1804 309/364/1805 308/363/1806 -f 270/325/1807 305/360/1808 271/326/1809 -f 305/360/1810 304/359/1811 271/326/1812 -f 272/328/1813 210/265/1814 271/326/1815 -f 210/265/1816 270/325/1817 271/326/1818 -f 210/265/1819 272/328/1820 209/264/1821 -f 272/328/1822 274/329/1823 209/264/1824 -f 264/374/1825 312/367/1826 317/375/1827 -f 312/367/1828 319/378/1829 317/375/1830 -f 352/414/1831 364/439/1832 315/370/1833 -f 364/439/1834 313/369/1835 315/370/1836 -f 364/439/1837 352/414/1838 366/440/1839 -f 352/414/1840 365/441/1841 366/440/1842 -f 366/440/1843 365/441/1844 368/442/1845 -f 365/441/1846 367/443/1847 368/442/1848 -f 319/378/1849 313/369/1850 369/444/1851 -f 313/369/1852 364/439/1853 369/444/1854 -f 369/444/1855 364/439/1856 370/445/1857 -f 370/445/1858 364/439/1859 371/446/1860 -f 364/439/1861 366/440/1862 371/446/1863 -f 371/446/1864 366/440/1865 372/447/1866 -f 366/440/1867 368/442/1868 372/447/1869 -f 16/129/1870 318/377/1871 159/125/1872 -f 318/377/1873 316/372/1874 159/125/1875 -f 161/127/1876 317/375/1877 160/130/1878 -f 317/375/1879 319/378/1880 160/130/1881 -f 159/125/1882 316/372/1883 161/127/1884 -f 316/372/1885 317/375/1886 161/127/1887 -f 160/130/1888 319/378/1889 168/202/1890 -f 319/378/1891 369/444/1892 168/202/1893 -f 373/448/1894 353/449/1895 315/415/1896 -f 315/415/1897 335/396/1898 374/450/1899 -f 208/263/1900 274/329/1901 276/331/1902 -f 274/329/1903 273/327/1904 276/331/1905 -f 246/301/1906 252/307/1907 349/410/1908 -f 252/307/1909 375/451/1910 349/410/1911 -f 253/308/1912 351/412/1913 252/307/1914 -f 351/412/1915 375/451/1916 252/307/1917 -f 288/452/1918 347/453/1919 9/211/1920 -f 347/453/1921 175/213/1922 9/211/1923 -f 307/454/1924 348/455/1925 286/456/1926 -f 286/456/1927 348/455/1928 288/452/1929 -f 288/452/1930 348/455/1931 347/453/1932 -f 286/456/1933 287/457/1934 344/458/1935 -f 344/458/1936 345/459/1937 286/456/1938 -f 286/456/1939 345/459/1940 346/460/1941 -f 286/456/1942 346/460/1943 306/461/1944 -f 306/461/1945 307/454/1946 286/456/1947 -f 341/462/1948 287/457/1949 340/463/1950 -f 340/463/1951 287/457/1952 339/464/1953 -f 339/464/1954 287/457/1955 284/465/1956 -f 344/458/1957 287/457/1958 342/466/1959 -f 342/466/1960 287/457/1961 343/467/1962 -f 287/457/1963 341/462/1964 343/467/1965 -f 339/464/1966 284/465/1967 293/468/1968 -f 284/465/1969 285/469/1970 293/468/1971 -f 293/468/1972 285/469/1973 292/470/1974 -f 219/275/1975 221/276/1976 332/392/1977 -f 221/276/1978 290/345/1979 332/392/1980 -f 214/268/1981 212/267/1982 332/392/1983 -f 332/392/1984 212/267/1985 219/275/1986 -f 344/404/1987 299/354/1988 363/438/1989 -f 363/438/1990 300/355/1991 345/405/1992 -f 345/405/1993 344/404/1994 363/438/1995 -f 300/355/1996 363/438/1997 277/332/1998 -f 363/438/1999 362/437/2000 277/332/2001 -f 277/332/2002 362/437/2003 217/271/2004 -f 362/437/2005 360/435/2006 217/271/2007 -f 217/271/2008 360/435/2009 216/272/2010 -f 360/435/2011 361/436/2012 216/272/2013 -f 216/272/2014 361/436/2015 222/277/2016 -f 322/380/2017 327/386/2018 323/382/2019 -f 327/386/2020 326/384/2021 323/382/2022 -f 320/471/2023 258/472/2024 259/473/2025 -f 265/320/2026 321/381/2027 323/382/2028 -f 315/415/2029 374/450/2030 373/448/2031 -f 336/395/2032 376/474/2033 374/450/2034 -f 376/474/2035 373/448/2036 374/450/2037 -f 243/298/2038 377/475/2039 336/395/2040 -f 377/475/2041 376/474/2042 336/395/2043 -f 244/299/2044 337/397/2045 243/298/2046 -f 337/397/2047 377/475/2048 243/298/2049 -f 322/432/2050 320/471/2051 358/431/2052 -f 320/471/2053 259/473/2054 358/431/2055 -f 336/395/2056 374/450/2057 335/396/2058 -f 214/268/2059 333/393/2060 335/396/2061 -f 259/476/2062 266/434/2063 359/190/2064 -f 266/434/2065 15/188/2066 359/190/2067 -f 378/477/2068 358/431/2069 359/478/2070 -f 358/431/2071 259/473/2072 359/478/2073 -f 379/479/2074 357/428/2075 378/477/2076 -f 357/428/2077 358/431/2078 378/477/2079 -f 356/427/2080 357/428/2081 380/480/2082 -f 357/428/2083 379/479/2084 380/480/2085 -f 355/422/2086 356/427/2087 381/481/2088 -f 356/427/2089 380/480/2090 381/481/2091 -f 354/421/2092 355/422/2093 382/482/2094 -f 355/422/2095 381/481/2096 382/482/2097 -f 13/177/2098 354/421/2099 196/243/2100 -f 354/421/2101 382/482/2102 196/243/2103 -f 383/483/2104 197/246/2105 382/484/2106 -f 197/246/2107 196/247/2108 382/484/2109 -f 384/485/2110 380/486/2111 385/487/2112 -f 380/486/2113 379/488/2114 385/487/2115 -f 383/483/2116 382/484/2117 386/489/2118 -f 382/484/2119 381/490/2120 386/489/2121 -f 384/485/2122 386/489/2123 380/486/2124 -f 386/489/2125 381/490/2126 380/486/2127 -f 14/192/2128 387/423/2129 359/190/2130 -f 388/424/2131 387/178/2132 204/259/2133 -f 387/178/2134 14/257/2135 204/259/2136 -f 201/248/2137 384/485/2138 199/249/2139 -f 384/485/2140 385/487/2141 199/249/2142 -f 200/244/2143 383/483/2144 198/252/2145 -f 383/483/2146 386/489/2147 198/252/2148 -f 378/430/2149 390/184/2150 379/488/2151 -f 202/187/2152 389/429/2153 204/259/2154 -f 389/429/2155 388/424/2156 204/259/2157 -f 389/429/2158 202/187/2159 390/184/2160 -f 202/187/2161 203/255/2162 390/184/2163 -f 385/487/2164 390/184/2165 199/249/2166 -f 390/184/2167 203/255/2168 199/249/2169 -f 198/252/2170 386/489/2171 201/248/2172 -f 386/489/2173 384/485/2174 201/248/2175 -f 390/184/2176 378/430/2177 389/183/2178 -f 390/184/2179 385/487/2180 379/488/2181 -f 387/178/2182 388/424/2183 359/433/2184 -f 378/430/2185 388/424/2186 389/183/2187 -f 197/246/2188 383/483/2189 200/244/2190 -f 388/424/2191 378/430/2192 359/433/2193 -f 465/491/2194 466/492/2195 467/493/2196 -f 469/494/2197 564/495/2198 550/496/2199 -f 424/497/2200 425/498/2201 391/499/2202 -f 391/499/2203 425/498/2204 401/500/2205 -f 391/499/2206 401/500/2207 393/501/2208 -f 393/501/2209 401/500/2210 403/502/2211 -f 403/502/2212 410/503/2213 393/501/2214 -f 393/501/2215 410/503/2216 394/504/2217 -f 396/505/2218 395/506/2219 406/507/2220 -f 406/507/2221 395/506/2222 405/508/2223 -f 397/509/2224 396/505/2225 407/510/2226 -f 407/510/2227 396/505/2228 406/507/2229 -f 394/504/2230 404/511/2231 398/512/2232 -f 398/512/2233 404/511/2234 399/513/2235 -f 399/513/2236 404/511/2237 408/514/2238 -f 558/515/2239 400/516/2240 557/517/2241 -f 557/517/2242 400/516/2243 409/518/2244 -f 426/519/2245 427/520/2246 400/516/2247 -f 400/516/2248 427/520/2249 409/518/2250 -f 392/521/2251 436/522/2252 402/523/2253 -f 402/523/2254 436/522/2255 437/524/2256 -f 429/525/2257 401/500/2258 425/498/2259 -f 403/502/2260 401/500/2261 430/526/2262 -f 430/526/2263 401/500/2264 429/525/2265 -f 430/526/2266 431/527/2267 403/502/2268 -f 403/502/2269 431/527/2270 410/503/2271 -f 406/507/2272 405/508/2273 445/528/2274 -f 445/528/2275 405/508/2276 444/529/2277 -f 407/510/2278 406/507/2279 446/530/2280 -f 446/530/2281 406/507/2282 445/528/2283 -f 408/514/2284 404/511/2285 433/531/2286 -f 433/531/2287 404/511/2288 432/532/2289 -f 557/517/2290 409/518/2291 556/533/2292 -f 556/533/2293 409/518/2294 435/534/2295 -f 409/518/2296 427/520/2297 435/534/2298 -f 435/534/2299 427/520/2300 434/535/2301 -f 496/536/2302 410/503/2303 495/537/2304 -f 495/537/2305 410/503/2306 431/527/2307 -f 447/538/2308 448/539/2309 424/497/2310 -f 424/497/2311 448/539/2312 425/498/2313 -f 399/513/2314 408/514/2315 426/519/2316 -f 426/519/2317 408/514/2318 427/520/2319 -f 427/520/2320 408/514/2321 434/535/2322 -f 434/535/2323 408/514/2324 433/531/2325 -f 472/540/2326 473/541/2327 474/542/2328 -f 474/542/2329 473/541/2330 465/491/2331 -f 473/541/2332 472/540/2333 476/543/2334 -f 476/543/2335 472/540/2336 475/544/2337 -f 563/545/2338 477/546/2339 479/547/2340 -f 477/546/2341 480/548/2342 479/547/2343 -f 480/548/2344 481/549/2345 479/547/2346 -f 476/543/2347 475/544/2348 483/550/2349 -f 483/550/2350 475/544/2351 482/551/2352 -f 484/552/2353 485/553/2354 487/554/2355 -f 487/554/2356 485/553/2357 486/555/2358 -f 488/556/2359 489/557/2360 484/552/2361 -f 484/552/2362 489/557/2363 485/553/2364 -f 567/558/2365 489/557/2366 488/556/2367 -f 489/557/2368 567/558/2369 469/494/2370 -f 488/556/2371 468/559/2372 567/558/2373 -f 435/534/2374 434/535/2375 442/560/2376 -f 529/561/2377 530/562/2378 528/563/2379 -f 528/563/2380 530/562/2381 527/564/2382 -f 532/565/2383 531/566/2384 529/561/2385 -f 529/561/2386 531/566/2387 530/562/2388 -f 500/567/2389 501/568/2390 549/569/2391 -f 501/568/2392 502/570/2393 549/569/2394 -f 486/555/2395 485/553/2396 503/571/2397 -f 502/570/2398 485/553/2399 549/569/2400 -f 476/543/2401 483/550/2402 505/572/2403 -f 505/572/2404 483/550/2405 504/573/2406 -f 473/541/2407 476/543/2408 506/574/2409 -f 506/574/2410 476/543/2411 505/572/2412 -f 465/491/2413 473/541/2414 507/575/2415 -f 507/575/2416 473/541/2417 506/574/2418 -f 466/492/2419 465/491/2420 508/576/2421 -f 508/576/2422 465/491/2423 507/575/2424 -f 412/577/2425 437/524/2426 411/578/2427 -f 411/578/2428 437/524/2429 436/522/2430 -f 413/579/2431 429/525/2432 412/577/2433 -f 412/577/2434 429/525/2435 437/524/2436 -f 414/580/2437 430/526/2438 413/579/2439 -f 413/579/2440 430/526/2441 429/525/2442 -f 415/581/2443 431/527/2444 414/580/2445 -f 414/580/2446 431/527/2447 430/526/2448 -f 431/527/2449 415/581/2450 495/537/2451 -f 495/537/2452 415/581/2453 494/582/2454 -f 420/583/2455 439/584/2456 432/532/2457 -f 562/585/2458 444/529/2459 417/586/2460 -f 417/586/2461 444/529/2462 416/587/2463 -f 416/587/2464 444/529/2465 441/588/2466 -f 418/589/2467 445/528/2468 562/585/2469 -f 419/590/2470 446/530/2471 418/589/2472 -f 418/589/2473 446/530/2474 445/528/2475 -f 447/591/2476 392/521/2477 448/539/2478 -f 448/539/2479 392/521/2480 402/523/2481 -f 402/523/2482 437/524/2483 429/525/2484 -f 474/542/2485 465/491/2486 492/592/2487 -f 483/550/2488 482/551/2489 486/555/2490 -f 486/555/2491 482/551/2492 487/554/2493 -f 483/550/2494 486/555/2495 504/573/2496 -f 504/573/2497 486/555/2498 503/571/2499 -f 394/504/2500 410/503/2501 496/536/2502 -f 451/593/2503 436/522/2504 452/594/2505 -f 452/594/2506 436/522/2507 392/521/2508 -f 452/594/2509 392/521/2510 450/595/2511 -f 450/595/2512 392/521/2513 447/591/2514 -f 558/515/2515 559/596/2516 400/516/2517 -f 400/516/2518 559/596/2519 453/597/2520 -f 455/598/2521 456/599/2522 393/501/2523 -f 393/501/2524 456/599/2525 391/499/2526 -f 393/501/2527 394/504/2528 455/598/2529 -f 455/598/2530 394/504/2531 457/600/2532 -f 454/601/2533 395/506/2534 458/602/2535 -f 458/602/2536 395/506/2537 396/505/2538 -f 459/603/2539 458/602/2540 397/509/2541 -f 397/509/2542 458/602/2543 396/505/2544 -f 460/604/2545 461/605/2546 399/513/2547 -f 399/513/2548 461/605/2549 398/512/2550 -f 460/604/2551 399/513/2552 462/606/2553 -f 462/606/2554 399/513/2555 426/519/2556 -f 462/606/2557 426/519/2558 453/597/2559 -f 453/597/2560 426/519/2561 400/516/2562 -f 451/593/2563 509/607/2564 436/522/2565 -f 436/522/2566 509/607/2567 411/578/2568 -f 463/608/2569 450/609/2570 424/497/2571 -f 424/497/2572 450/609/2573 447/538/2574 -f 456/599/2575 463/608/2576 391/499/2577 -f 391/499/2578 463/608/2579 424/497/2580 -f 457/600/2581 394/504/2582 461/605/2583 -f 461/605/2584 394/504/2585 398/512/2586 -f 452/610/2587 467/493/2588 451/611/2589 -f 451/611/2590 467/493/2591 466/492/2592 -f 450/612/2593 464/613/2594 452/610/2595 -f 452/610/2596 464/613/2597 467/493/2598 -f 559/614/2599 560/615/2600 453/616/2601 -f 453/616/2602 560/615/2603 468/559/2604 -f 472/540/2605 474/542/2606 455/617/2607 -f 455/617/2608 474/542/2609 456/618/2610 -f 472/540/2611 455/617/2612 475/544/2613 -f 475/544/2614 455/617/2615 457/619/2616 -f 458/620/2617 477/546/2618 454/621/2619 -f 454/621/2620 477/546/2621 470/622/2622 -f 480/548/2623 477/546/2624 459/623/2625 -f 459/623/2626 477/546/2627 458/620/2628 -f 482/551/2629 475/544/2630 457/619/2631 -f 460/624/2632 484/552/2633 461/625/2634 -f 461/625/2635 484/552/2636 487/554/2637 -f 462/626/2638 488/556/2639 460/624/2640 -f 460/624/2641 488/556/2642 484/552/2643 -f 488/556/2644 462/626/2645 468/559/2646 -f 468/559/2647 462/626/2648 453/616/2649 -f 466/492/2650 508/576/2651 451/611/2652 -f 451/611/2653 508/576/2654 509/627/2655 -f 492/592/2656 464/613/2657 463/628/2658 -f 463/628/2659 464/613/2660 450/629/2661 -f 474/542/2662 492/592/2663 456/618/2664 -f 456/618/2665 492/592/2666 463/628/2667 -f 487/554/2668 482/551/2669 461/625/2670 -f 461/625/2671 482/551/2672 457/619/2673 -f 567/558/2674 468/559/2675 561/630/2676 -f 561/630/2677 468/559/2678 560/615/2679 -f 420/583/2680 432/532/2681 494/582/2682 -f 494/582/2683 432/532/2684 495/537/2685 -f 404/511/2686 496/536/2687 432/532/2688 -f 432/532/2689 496/536/2690 495/537/2691 -f 394/504/2692 496/536/2693 404/511/2694 -f 425/498/2695 448/539/2696 429/525/2697 -f 448/539/2698 402/523/2699 429/525/2700 -f 465/491/2701 467/493/2702 464/613/2703 -f 465/491/2704 464/613/2705 492/592/2706 -f 414/580/2707 413/579/2708 521/631/2709 -f 521/631/2710 413/579/2711 523/632/2712 -f 413/579/2713 412/577/2714 523/632/2715 -f 523/632/2716 412/577/2717 411/633/2718 -f 421/634/2719 517/635/2720 422/636/2721 -f 422/636/2722 517/635/2723 515/637/2724 -f 422/636/2725 515/637/2726 428/638/2727 -f 428/638/2728 515/637/2729 513/639/2730 -f 421/634/2731 420/583/2732 517/635/2733 -f 517/635/2734 420/583/2735 518/640/2736 -f 518/640/2737 415/581/2738 521/631/2739 -f 521/631/2740 415/581/2741 414/580/2742 -f 494/582/2743 415/581/2744 518/640/2745 -f 420/583/2746 494/582/2747 518/640/2748 -f 428/638/2749 513/639/2750 423/641/2751 -f 423/641/2752 513/639/2753 512/642/2754 -f 481/643/2755 419/590/2756 479/644/2757 -f 479/644/2758 419/590/2759 418/589/2760 -f 562/585/2761 563/645/2762 418/589/2763 -f 418/589/2764 563/645/2765 479/644/2766 -f 416/587/2767 471/646/2768 417/586/2769 -f 417/586/2770 471/646/2771 478/647/2772 -f 471/646/2773 416/587/2774 490/648/2775 -f 490/648/2776 416/587/2777 497/649/2778 -f 546/650/2779 547/651/2780 441/588/2781 -f 441/588/2782 547/651/2783 497/649/2784 -f 563/545/2785 478/652/2786 493/653/2787 -f 564/495/2788 478/652/2789 471/654/2790 -f 547/651/2791 548/655/2792 497/649/2793 -f 497/649/2794 548/655/2795 490/648/2796 -f 441/588/2797 497/649/2798 416/587/2799 -f 491/656/2800 499/657/2801 532/565/2802 -f 532/565/2803 499/657/2804 531/566/2805 -f 511/658/2806 510/659/2807 513/639/2808 -f 513/639/2809 510/659/2810 512/642/2811 -f 514/660/2812 511/658/2813 515/637/2814 -f 515/637/2815 511/658/2816 513/639/2817 -f 516/661/2818 514/660/2819 517/635/2820 -f 517/635/2821 514/660/2822 515/637/2823 -f 517/635/2824 518/640/2825 516/661/2826 -f 516/661/2827 518/640/2828 519/662/2829 -f 518/640/2830 521/631/2831 519/662/2832 -f 519/662/2833 521/631/2834 520/663/2835 -f 522/664/2836 520/663/2837 523/632/2838 -f 523/632/2839 520/663/2840 521/631/2841 -f 501/568/2842 500/567/2843 511/665/2844 -f 511/665/2845 500/567/2846 510/666/2847 -f 502/570/2848 501/568/2849 514/667/2850 -f 514/667/2851 501/568/2852 511/665/2853 -f 503/571/2854 502/570/2855 516/668/2856 -f 516/668/2857 502/570/2858 514/667/2859 -f 519/669/2860 504/573/2861 516/668/2862 -f 516/668/2863 504/573/2864 503/571/2865 -f 519/669/2866 505/572/2867 504/573/2868 -f 506/574/2869 505/572/2870 520/670/2871 -f 520/670/2872 505/572/2873 519/669/2874 -f 522/671/2875 507/575/2876 520/670/2877 -f 520/670/2878 507/575/2879 506/574/2880 -f 507/575/2881 522/671/2882 508/576/2883 -f 508/576/2884 522/671/2885 509/672/2886 -f 510/659/2887 528/563/2888 512/642/2889 -f 512/642/2890 528/563/2891 527/564/2892 -f 525/673/2893 524/674/2894 528/675/2895 -f 528/675/2896 524/674/2897 529/676/2898 -f 438/677/2899 527/564/2900 449/678/2901 -f 449/678/2902 527/564/2903 530/562/2904 -f 449/678/2905 530/562/2906 443/679/2907 -f 443/679/2908 530/562/2909 531/566/2910 -f 524/674/2911 526/680/2912 529/676/2913 -f 529/676/2914 526/680/2915 532/681/2916 -f 491/682/2917 532/681/2918 526/680/2919 -f 443/679/2920 531/566/2921 498/683/2922 -f 498/683/2923 531/566/2924 499/657/2925 -f 500/567/2926 525/673/2927 510/666/2928 -f 510/666/2929 525/673/2930 528/675/2931 -f 423/641/2932 512/642/2933 438/677/2934 -f 438/677/2935 512/642/2936 527/564/2937 -f 568/684/2938 569/685/2939 549/569/2940 -f 490/686/2941 548/687/2942 550/496/2943 -f 564/495/2944 469/494/2945 561/630/2946 -f 411/633/2947 509/688/2948 523/632/2949 -f 523/632/2950 509/688/2951 522/664/2952 -f 534/689/2953 535/690/2954 554/691/2955 -f 535/690/2956 423/641/2957 554/691/2958 -f 423/641/2959 438/677/2960 554/691/2961 -f 449/678/2962 554/691/2963 438/677/2964 -f 533/692/2965 534/689/2966 552/693/2967 -f 552/693/2968 534/689/2969 551/694/2970 -f 538/695/2971 553/696/2972 442/560/2973 -f 442/560/2974 553/696/2975 555/697/2976 -f 439/584/2977 440/698/2978 433/531/2979 -f 440/698/2980 539/699/2981 433/531/2982 -f 433/531/2983 539/699/2984 434/535/2985 -f 428/638/2986 536/700/2987 422/636/2988 -f 439/584/2989 422/636/2990 440/698/2991 -f 422/636/2992 536/700/2993 440/698/2994 -f 423/641/2995 535/690/2996 428/638/2997 -f 428/638/2998 535/690/2999 536/700/3000 -f 440/698/3001 536/700/3002 540/701/3003 -f 540/701/3004 536/700/3005 541/702/3006 -f 533/692/3007 542/703/3008 534/689/3009 -f 534/689/3010 542/703/3011 543/704/3012 -f 535/690/3013 534/689/3014 543/704/3015 -f 536/700/3016 535/690/3017 541/702/3018 -f 537/705/3019 539/699/3020 544/706/3021 -f 538/695/3022 537/705/3023 545/707/3024 -f 533/692/3025 538/695/3026 542/703/3027 -f 542/703/3028 538/695/3029 545/707/3030 -f 440/698/3031 540/701/3032 539/699/3033 -f 539/699/3034 540/701/3035 544/706/3036 -f 553/696/3037 538/695/3038 552/693/3039 -f 552/693/3040 538/695/3041 533/692/3042 -f 498/683/3043 499/657/3044 546/650/3045 -f 546/650/3046 499/657/3047 547/651/3048 -f 491/656/3049 548/655/3050 499/657/3051 -f 499/657/3052 548/655/3053 547/651/3054 -f 539/699/3055 537/705/3056 434/535/3057 -f 538/695/3058 442/560/3059 537/705/3060 -f 442/560/3061 434/535/3062 537/705/3063 -f 422/636/3064 439/584/3065 421/634/3066 -f 439/584/3067 420/583/3068 421/634/3069 -f 439/584/3070 433/531/3071 432/532/3072 -f 485/553/3073 502/570/3074 503/571/3075 -f 489/557/3076 568/684/3077 549/569/3078 -f 568/684/3079 489/557/3080 469/494/3081 -f 485/553/3082 489/557/3083 549/569/3084 -f 544/706/3085 540/701/3086 537/705/3087 -f 535/690/3088 540/701/3089 541/702/3090 -f 542/703/3091 540/701/3092 543/704/3093 -f 543/704/3094 540/701/3095 535/690/3096 -f 537/705/3097 540/701/3098 545/707/3099 -f 545/707/3100 540/701/3101 542/703/3102 -f 552/693/3103 551/694/3104 498/683/3105 -f 498/683/3106 551/694/3107 443/679/3108 -f 546/650/3109 553/696/3110 498/683/3111 -f 498/683/3112 553/696/3113 552/693/3114 -f 551/694/3115 534/689/3116 554/691/3117 -f 449/678/3118 551/694/3119 554/691/3120 -f 551/694/3121 449/678/3122 443/679/3123 -f 441/588/3124 555/697/3125 546/650/3126 -f 546/650/3127 555/697/3128 553/696/3129 -f 556/533/3130 435/534/3131 555/697/3132 -f 555/697/3133 435/534/3134 442/560/3135 -f 405/508/3136 557/517/3137 444/529/3138 -f 444/529/3139 557/517/3140 556/533/3141 -f 395/506/3142 558/515/3143 405/508/3144 -f 405/508/3145 558/515/3146 557/517/3147 -f 395/506/3148 454/601/3149 558/515/3150 -f 558/515/3151 454/601/3152 559/596/3153 -f 454/621/3154 470/622/3155 559/614/3156 -f 559/614/3157 470/622/3158 560/615/3159 -f 470/622/3160 493/653/3161 560/615/3162 -f 560/615/3163 493/653/3164 561/630/3165 -f 444/529/3166 556/533/3167 441/588/3168 -f 441/588/3169 556/533/3170 555/697/3171 -f 478/652/3172 564/495/3173 493/653/3174 -f 444/529/3175 562/585/3176 445/528/3177 -f 563/645/3178 562/585/3179 478/647/3180 -f 478/647/3181 562/585/3182 417/586/3183 -f 563/545/3184 493/653/3185 477/546/3186 -f 477/546/3187 493/653/3188 470/622/3189 -f 493/653/3190 564/495/3191 561/630/3192 -f 490/686/3193 564/495/3194 471/654/3195 -f 564/495/3196 490/686/3197 550/496/3198 -f 550/496/3199 548/687/3200 565/708/3201 -f 566/709/3202 548/687/3203 491/682/3204 -f 548/687/3205 566/709/3206 565/708/3207 -f 491/682/3208 526/680/3209 566/709/3210 -f 469/494/3211 567/558/3212 561/630/3213 -f 550/496/3214 568/684/3215 469/494/3216 -f 568/684/3217 550/496/3218 565/708/3219 -f 565/708/3220 566/709/3221 568/684/3222 -f 566/709/3223 569/685/3224 568/684/3225 -f 526/680/3226 569/685/3227 566/709/3228 -f 569/685/3229 526/680/3230 524/674/3231 -f 525/673/3232 569/685/3233 524/674/3234 -f 500/567/3235 569/685/3236 525/673/3237 -f 549/569/3238 569/685/3239 500/567/3240 -f 570/710/3241 572/711/3242 571/712/3243 -f 573/713/3244 575/714/3245 574/715/3246 -f 576/716/3247 578/717/3248 577/718/3249 -f 578/717/3250 579/719/3251 577/718/3252 -f 578/717/3253 580/720/3254 579/719/3255 -f 580/720/3256 581/721/3257 579/719/3258 -f 581/721/3259 580/720/3260 582/722/3261 -f 580/720/3262 583/723/3263 582/722/3264 -f 584/724/3265 586/725/3266 585/726/3267 -f 586/725/3268 587/727/3269 585/726/3270 -f 397/509/3271 407/510/3272 584/724/3273 -f 407/510/3274 586/725/3275 584/724/3276 -f 583/723/3277 589/728/3278 588/729/3279 -f 589/728/3280 590/730/3281 588/729/3282 -f 590/730/3283 591/731/3284 588/729/3285 -f 592/732/3286 594/733/3287 593/734/3288 -f 594/733/3289 595/735/3290 593/734/3291 -f 596/736/3292 593/734/3293 597/737/3294 -f 593/734/3295 595/735/3296 597/737/3297 -f 598/738/3298 600/739/3299 599/740/3300 -f 600/739/3301 601/741/3302 599/740/3303 -f 602/742/3304 577/718/3305 579/719/3306 -f 581/721/3307 603/743/3308 579/719/3309 -f 603/743/3310 602/742/3311 579/719/3312 -f 603/743/3313 581/721/3314 604/744/3315 -f 581/721/3316 582/722/3317 604/744/3318 -f 586/725/3319 605/745/3320 587/727/3321 -f 605/745/3322 606/746/3323 587/727/3324 -f 407/510/3325 446/530/3326 586/725/3327 -f 446/530/3328 605/745/3329 586/725/3330 -f 591/731/3331 607/747/3332 588/729/3333 -f 607/747/3334 608/748/3335 588/729/3336 -f 594/733/3337 609/749/3338 595/735/3339 -f 609/749/3340 610/750/3341 595/735/3342 -f 595/735/3343 610/750/3344 597/737/3345 -f 610/750/3346 611/751/3347 597/737/3348 -f 612/752/3349 613/753/3350 582/722/3351 -f 613/753/3352 604/744/3353 582/722/3354 -f 614/754/3355 576/716/3356 615/755/3357 -f 576/716/3358 577/718/3359 615/755/3360 -f 590/730/3361 596/736/3362 591/731/3363 -f 596/736/3364 597/737/3365 591/731/3366 -f 597/737/3367 611/751/3368 591/731/3369 -f 611/751/3370 607/747/3371 591/731/3372 -f 616/756/3373 618/757/3374 617/758/3375 -f 618/757/3376 570/710/3377 617/758/3378 -f 617/758/3379 619/759/3380 616/756/3381 -f 619/759/3382 620/760/3383 616/756/3384 -f 621/761/3385 623/762/3386 622/763/3387 -f 622/763/3388 623/762/3389 480/548/3390 -f 480/548/3391 623/762/3392 481/549/3393 -f 619/759/3394 624/764/3395 620/760/3396 -f 624/764/3397 625/765/3398 620/760/3399 -f 626/766/3400 628/767/3401 627/768/3402 -f 628/767/3403 629/769/3404 627/768/3405 -f 630/770/3406 626/766/3407 631/771/3408 -f 626/766/3409 627/768/3410 631/771/3411 -f 632/772/3412 630/770/3413 631/771/3414 -f 631/771/3415 573/713/3416 632/772/3417 -f 630/770/3418 632/772/3419 633/773/3420 -f 610/750/3421 634/774/3422 611/751/3423 -f 635/775/3424 637/776/3425 636/777/3426 -f 637/776/3427 638/778/3428 636/777/3429 -f 639/779/3430 635/775/3431 640/780/3432 -f 635/775/3433 636/777/3434 640/780/3435 -f 641/781/3436 643/782/3437 642/783/3438 -f 642/783/3439 643/782/3440 644/784/3441 -f 629/769/3442 645/785/3443 627/768/3444 -f 644/784/3445 643/782/3446 627/768/3447 -f 619/759/3448 646/786/3449 624/764/3450 -f 646/786/3451 647/787/3452 624/764/3453 -f 617/758/3454 648/788/3455 619/759/3456 -f 648/788/3457 646/786/3458 619/759/3459 -f 570/710/3460 649/789/3461 617/758/3462 -f 649/789/3463 648/788/3464 617/758/3465 -f 571/712/3466 650/790/3467 570/710/3468 -f 650/790/3469 649/789/3470 570/710/3471 -f 651/791/3472 652/792/3473 601/741/3474 -f 652/792/3475 599/740/3476 601/741/3477 -f 653/793/3478 651/791/3479 602/742/3480 -f 651/791/3481 601/741/3482 602/742/3483 -f 654/794/3484 653/793/3485 603/743/3486 -f 653/793/3487 602/742/3488 603/743/3489 -f 655/795/3490 654/794/3491 604/744/3492 -f 654/794/3493 603/743/3494 604/744/3495 -f 604/744/3496 613/753/3497 655/795/3498 -f 613/753/3499 656/796/3500 655/795/3501 -f 657/797/3502 608/748/3503 658/798/3504 -f 659/799/3505 660/800/3506 606/746/3507 -f 660/800/3508 661/801/3509 606/746/3510 -f 661/801/3511 662/802/3512 606/746/3513 -f 663/803/3514 659/799/3515 605/745/3516 -f 419/590/3517 663/803/3518 446/530/3519 -f 663/803/3520 605/745/3521 446/530/3522 -f 614/804/3523 615/755/3524 598/738/3525 -f 615/755/3526 600/739/3527 598/738/3528 -f 600/739/3529 602/742/3530 601/741/3531 -f 618/757/3532 664/805/3533 570/710/3534 -f 624/764/3535 629/769/3536 625/765/3537 -f 629/769/3538 628/767/3539 625/765/3540 -f 624/764/3541 647/787/3542 629/769/3543 -f 647/787/3544 645/785/3545 629/769/3546 -f 583/723/3547 612/752/3548 582/722/3549 -f 665/806/3550 666/807/3551 599/740/3552 -f 666/807/3553 598/738/3554 599/740/3555 -f 666/807/3556 667/808/3557 598/738/3558 -f 667/808/3559 614/804/3560 598/738/3561 -f 592/732/3562 593/734/3563 668/809/3564 -f 593/734/3565 669/810/3566 668/809/3567 -f 670/811/3568 580/720/3569 671/812/3570 -f 580/720/3571 578/717/3572 671/812/3573 -f 580/720/3574 670/811/3575 583/723/3576 -f 670/811/3577 672/813/3578 583/723/3579 -f 673/814/3580 674/815/3581 585/726/3582 -f 674/815/3583 584/724/3584 585/726/3585 -f 459/603/3586 397/509/3587 674/815/3588 -f 397/509/3589 584/724/3590 674/815/3591 -f 675/816/3592 590/730/3593 676/817/3594 -f 590/730/3595 589/728/3596 676/817/3597 -f 675/816/3598 677/818/3599 590/730/3600 -f 677/818/3601 596/736/3602 590/730/3603 -f 677/818/3604 669/810/3605 596/736/3606 -f 669/810/3607 593/734/3608 596/736/3609 -f 665/806/3610 599/740/3611 678/819/3612 -f 599/740/3613 652/792/3614 678/819/3615 -f 679/820/3616 576/716/3617 667/821/3618 -f 576/716/3619 614/754/3620 667/821/3621 -f 671/812/3622 578/717/3623 679/820/3624 -f 578/717/3625 576/716/3626 679/820/3627 -f 672/813/3628 676/817/3629 583/723/3630 -f 676/817/3631 589/728/3632 583/723/3633 -f 666/822/3634 665/823/3635 572/711/3636 -f 665/823/3637 571/712/3638 572/711/3639 -f 667/824/3640 666/822/3641 680/825/3642 -f 666/822/3643 572/711/3644 680/825/3645 -f 668/826/3646 669/827/3647 681/828/3648 -f 669/827/3649 633/773/3650 681/828/3651 -f 616/756/3652 670/829/3653 618/757/3654 -f 670/829/3655 671/830/3656 618/757/3657 -f 616/756/3658 620/760/3659 670/829/3660 -f 620/760/3661 672/831/3662 670/829/3663 -f 674/832/3664 673/833/3665 622/763/3666 -f 673/833/3667 682/834/3668 622/763/3669 -f 480/548/3670 459/623/3671 622/763/3672 -f 459/623/3673 674/832/3674 622/763/3675 -f 625/765/3676 672/831/3677 620/760/3678 -f 675/835/3679 676/836/3680 626/766/3681 -f 676/836/3682 628/767/3683 626/766/3684 -f 677/837/3685 675/835/3686 630/770/3687 -f 675/835/3688 626/766/3689 630/770/3690 -f 630/770/3691 633/773/3692 677/837/3693 -f 633/773/3694 669/827/3695 677/837/3696 -f 571/712/3697 665/823/3698 650/790/3699 -f 665/823/3700 678/838/3701 650/790/3702 -f 664/805/3703 679/839/3704 680/825/3705 -f 679/839/3706 667/840/3707 680/825/3708 -f 618/757/3709 671/830/3710 664/805/3711 -f 671/830/3712 679/839/3713 664/805/3714 -f 628/767/3715 676/836/3716 625/765/3717 -f 676/836/3718 672/831/3719 625/765/3720 -f 632/772/3721 683/841/3722 633/773/3723 -f 683/841/3724 681/828/3725 633/773/3726 -f 657/797/3727 656/796/3728 608/748/3729 -f 656/796/3730 613/753/3731 608/748/3732 -f 588/729/3733 608/748/3734 612/752/3735 -f 608/748/3736 613/753/3737 612/752/3738 -f 583/723/3739 588/729/3740 612/752/3741 -f 577/718/3742 602/742/3743 615/755/3744 -f 615/755/3745 602/742/3746 600/739/3747 -f 570/710/3748 680/825/3749 572/711/3750 -f 570/710/3751 664/805/3752 680/825/3753 -f 654/794/3754 684/842/3755 653/793/3756 -f 684/842/3757 685/843/3758 653/793/3759 -f 653/793/3760 685/843/3761 651/791/3762 -f 685/843/3763 652/844/3764 651/791/3765 -f 686/845/3766 688/846/3767 687/847/3768 -f 688/846/3769 689/848/3770 687/847/3771 -f 688/846/3772 690/849/3773 689/848/3774 -f 690/849/3775 691/850/3776 689/848/3777 -f 686/845/3778 687/847/3779 657/797/3780 -f 687/847/3781 692/851/3782 657/797/3783 -f 692/851/3784 684/842/3785 655/795/3786 -f 684/842/3787 654/794/3788 655/795/3789 -f 656/796/3790 692/851/3791 655/795/3792 -f 657/797/3793 692/851/3794 656/796/3795 -f 690/849/3796 693/852/3797 691/850/3798 -f 693/852/3799 694/853/3800 691/850/3801 -f 481/643/3802 623/854/3803 419/590/3804 -f 623/854/3805 663/803/3806 419/590/3807 -f 659/799/3808 663/803/3809 621/855/3810 -f 663/803/3811 623/854/3812 621/855/3813 -f 661/801/3814 660/800/3815 695/856/3816 -f 660/800/3817 696/857/3818 695/856/3819 -f 695/856/3820 697/858/3821 661/801/3822 -f 697/858/3823 698/859/3824 661/801/3825 -f 699/860/3826 662/802/3827 700/861/3828 -f 662/802/3829 698/859/3830 700/861/3831 -f 621/761/3832 701/862/3833 696/863/3834 -f 574/715/3835 695/864/3836 696/863/3837 -f 700/861/3838 698/859/3839 702/865/3840 -f 698/859/3841 697/858/3842 702/865/3843 -f 662/802/3844 661/801/3845 698/859/3846 -f 703/866/3847 639/779/3848 704/867/3849 -f 639/779/3850 640/780/3851 704/867/3852 -f 705/868/3853 691/850/3854 706/869/3855 -f 691/850/3856 694/853/3857 706/869/3858 -f 707/870/3859 689/848/3860 705/868/3861 -f 689/848/3862 691/850/3863 705/868/3864 -f 708/871/3865 687/847/3866 707/870/3867 -f 687/847/3868 689/848/3869 707/870/3870 -f 687/847/3871 708/871/3872 692/851/3873 -f 708/871/3874 709/872/3875 692/851/3876 -f 692/851/3877 709/872/3878 684/842/3879 -f 709/872/3880 710/873/3881 684/842/3882 -f 711/874/3883 685/843/3884 710/873/3885 -f 685/843/3886 684/842/3887 710/873/3888 -f 642/783/3889 705/875/3890 641/781/3891 -f 705/875/3892 706/876/3893 641/781/3894 -f 644/784/3895 707/877/3896 642/783/3897 -f 707/877/3898 705/875/3899 642/783/3900 -f 645/785/3901 708/878/3902 644/784/3903 -f 708/878/3904 707/877/3905 644/784/3906 -f 709/879/3907 708/878/3908 647/787/3909 -f 708/878/3910 645/785/3911 647/787/3912 -f 709/879/3913 647/787/3914 646/786/3915 -f 648/788/3916 710/880/3917 646/786/3918 -f 710/880/3919 709/879/3920 646/786/3921 -f 711/881/3922 710/880/3923 649/789/3924 -f 710/880/3925 648/788/3926 649/789/3927 -f 649/789/3928 650/790/3929 711/881/3930 -f 650/790/3931 678/882/3932 711/881/3933 -f 706/869/3934 694/853/3935 637/776/3936 -f 694/853/3937 638/778/3938 637/776/3939 -f 712/883/3940 637/884/3941 713/885/3942 -f 637/884/3943 635/886/3944 713/885/3945 -f 714/887/3946 715/888/3947 638/778/3948 -f 715/888/3949 636/777/3950 638/778/3951 -f 715/888/3952 716/889/3953 636/777/3954 -f 716/889/3955 640/780/3956 636/777/3957 -f 713/885/3958 635/886/3959 717/890/3960 -f 635/886/3961 639/891/3962 717/890/3963 -f 703/892/3964 717/890/3965 639/891/3966 -f 716/889/3967 718/893/3968 640/780/3969 -f 718/893/3970 704/867/3971 640/780/3972 -f 641/781/3973 706/876/3974 712/883/3975 -f 706/876/3976 637/884/3977 712/883/3978 -f 693/852/3979 714/887/3980 694/853/3981 -f 714/887/3982 638/778/3983 694/853/3984 -f 719/894/3985 643/782/3986 720/895/3987 -f 697/896/3988 575/714/3989 702/897/3990 -f 574/715/3991 683/841/3992 573/713/3993 -f 652/844/3994 685/843/3995 678/898/3996 -f 685/843/3997 711/874/3998 678/898/3999 -f 721/899/4000 723/900/4001 722/901/4002 -f 722/901/4003 723/900/4004 693/852/4005 -f 693/852/4006 723/900/4007 714/887/4008 -f 715/888/4009 714/887/4010 723/900/4011 -f 724/902/4012 725/903/4013 721/899/4014 -f 725/903/4015 726/904/4016 721/899/4017 -f 727/905/4018 634/774/4019 728/906/4020 -f 634/774/4021 729/907/4022 728/906/4023 -f 658/798/4024 607/747/4025 730/908/4026 -f 730/908/4027 607/747/4028 731/909/4029 -f 607/747/4030 611/751/4031 731/909/4032 -f 690/849/4033 688/846/4034 732/910/4035 -f 658/798/4036 730/908/4037 688/846/4038 -f 688/846/4039 730/908/4040 732/910/4041 -f 693/852/4042 690/849/4043 722/901/4044 -f 690/849/4045 732/910/4046 722/901/4047 -f 730/908/4048 733/911/4049 732/910/4050 -f 733/911/4051 734/912/4052 732/910/4053 -f 724/902/4054 721/899/4055 735/913/4056 -f 721/899/4057 736/914/4058 735/913/4059 -f 722/901/4060 736/914/4061 721/899/4062 -f 732/910/4063 734/912/4064 722/901/4065 -f 737/915/4066 738/916/4067 731/909/4068 -f 727/905/4069 739/917/4070 737/915/4071 -f 724/902/4072 735/913/4073 727/905/4074 -f 735/913/4075 739/917/4076 727/905/4077 -f 730/908/4078 731/909/4079 733/911/4080 -f 731/909/4081 738/916/4082 733/911/4083 -f 728/906/4084 725/903/4085 727/905/4086 -f 725/903/4087 724/902/4088 727/905/4089 -f 718/893/4090 699/860/4091 704/867/4092 -f 699/860/4093 700/861/4094 704/867/4095 -f 703/866/4096 704/867/4097 702/865/4098 -f 704/867/4099 700/861/4100 702/865/4101 -f 731/909/4102 611/751/4103 737/915/4104 -f 727/905/4105 737/915/4106 634/774/4107 -f 634/774/4108 737/915/4109 611/751/4110 -f 688/846/4111 686/845/4112 658/798/4113 -f 658/798/4114 686/845/4115 657/797/4116 -f 658/798/4117 608/748/4118 607/747/4119 -f 627/768/4120 645/785/4121 644/784/4122 -f 631/771/4123 643/782/4124 719/894/4125 -f 719/894/4126 573/713/4127 631/771/4128 -f 627/768/4129 643/782/4130 631/771/4131 -f 738/916/4132 737/915/4133 733/911/4134 -f 722/901/4135 734/912/4136 733/911/4137 -f 735/913/4138 736/914/4139 733/911/4140 -f 736/914/4141 722/901/4142 733/911/4143 -f 737/915/4144 739/917/4145 733/911/4146 -f 739/917/4147 735/913/4148 733/911/4149 -f 725/903/4150 718/893/4151 726/904/4152 -f 718/893/4153 716/889/4154 726/904/4155 -f 699/860/4156 718/893/4157 728/906/4158 -f 718/893/4159 725/903/4160 728/906/4161 -f 726/904/4162 723/900/4163 721/899/4164 -f 715/888/4165 723/900/4166 726/904/4167 -f 726/904/4168 716/889/4169 715/888/4170 -f 662/802/4171 699/860/4172 729/907/4173 -f 699/860/4174 728/906/4175 729/907/4176 -f 609/749/4177 729/907/4178 610/750/4179 -f 729/907/4180 634/774/4181 610/750/4182 -f 587/727/4183 606/746/4184 594/733/4185 -f 606/746/4186 609/749/4187 594/733/4188 -f 585/726/4189 587/727/4190 592/732/4191 -f 587/727/4192 594/733/4193 592/732/4194 -f 585/726/4195 592/732/4196 673/814/4197 -f 592/732/4198 668/809/4199 673/814/4200 -f 673/833/4201 668/826/4202 682/834/4203 -f 668/826/4204 681/828/4205 682/834/4206 -f 682/834/4207 681/828/4208 701/862/4209 -f 681/828/4210 683/841/4211 701/862/4212 -f 606/746/4213 662/802/4214 609/749/4215 -f 662/802/4216 729/907/4217 609/749/4218 -f 696/863/4219 701/862/4220 574/715/4221 -f 606/746/4222 605/745/4223 659/799/4224 -f 621/855/4225 696/857/4226 659/799/4227 -f 696/857/4228 660/800/4229 659/799/4230 -f 621/761/4231 622/763/4232 701/862/4233 -f 622/763/4234 682/834/4235 701/862/4236 -f 701/862/4237 683/841/4238 574/715/4239 -f 697/896/4240 695/864/4241 574/715/4242 -f 574/715/4243 575/714/4244 697/896/4245 -f 575/714/4246 740/918/4247 702/897/4248 -f 741/919/4249 703/892/4250 702/897/4251 -f 702/897/4252 740/918/4253 741/919/4254 -f 703/892/4255 741/919/4256 717/890/4257 -f 573/713/4258 683/841/4259 632/772/4260 -f 575/714/4261 573/713/4262 719/894/4263 -f 719/894/4264 740/918/4265 575/714/4266 -f 740/918/4267 719/894/4268 741/919/4269 -f 741/919/4270 719/894/4271 720/895/4272 -f 717/890/4273 741/919/4274 720/895/4275 -f 720/895/4276 713/885/4277 717/890/4278 -f 712/883/4279 713/885/4280 720/895/4281 -f 641/781/4282 712/883/4283 720/895/4284 -f 643/782/4285 641/781/4286 720/895/4287 -f 772/920/4288 845/921/4289 940/922/4290 -f 940/922/4291 845/921/4292 939/923/4293 -f 774/924/4294 773/925/4295 942/926/4296 -f 942/926/4297 773/925/4298 941/927/4299 -f 775/928/4300 774/924/4301 943/929/4302 -f 943/929/4303 774/924/4304 942/926/4305 -f 776/930/4306 775/928/4307 944/931/4308 -f 944/931/4309 775/928/4310 943/929/4311 -f 778/932/4312 777/933/4313 946/934/4314 -f 946/934/4315 777/933/4316 945/935/4317 -f 743/936/4318 778/932/4319 769/937/4320 -f 769/937/4321 778/932/4322 946/934/4323 -f 773/925/4324 774/924/4325 779/938/4326 -f 779/938/4327 774/924/4328 780/939/4329 -f 774/924/4330 775/928/4331 780/939/4332 -f 780/939/4333 775/928/4334 781/940/4335 -f 775/928/4336 776/930/4337 781/940/4338 -f 781/940/4339 776/930/4340 782/941/4341 -f 783/942/4342 777/933/4343 784/943/4344 -f 784/943/4345 777/933/4346 778/932/4347 -f 743/936/4348 754/944/4349 778/932/4350 -f 778/932/4351 754/944/4352 784/943/4353 -f 786/945/4354 787/946/4355 785/947/4356 -f 785/947/4357 787/946/4358 788/948/4359 -f 787/946/4360 790/949/4361 788/948/4362 -f 788/948/4363 790/949/4364 789/950/4365 -f 790/949/4366 792/951/4367 789/950/4368 -f 789/950/4369 792/951/4370 791/952/4371 -f 792/951/4372 794/953/4373 791/952/4374 -f 791/952/4375 794/953/4376 793/954/4377 -f 796/955/4378 795/956/4379 797/957/4380 -f 797/957/4381 795/956/4382 798/958/4383 -f 744/959/4384 745/960/4385 795/956/4386 -f 795/956/4387 745/960/4388 798/958/4389 -f 785/947/4390 788/948/4391 799/961/4392 -f 799/961/4393 788/948/4394 800/962/4395 -f 788/948/4396 789/950/4397 800/962/4398 -f 800/962/4399 789/950/4400 801/963/4401 -f 789/950/4402 791/952/4403 801/963/4404 -f 801/963/4405 791/952/4406 802/964/4407 -f 791/952/4408 793/954/4409 802/964/4410 -f 802/964/4411 793/954/4412 803/965/4413 -f 797/957/4414 798/958/4415 804/966/4416 -f 804/966/4417 798/958/4418 805/967/4419 -f 745/960/4420 768/968/4421 798/958/4422 -f 798/958/4423 768/968/4424 805/967/4425 -f 806/969/4426 807/970/4427 809/971/4428 -f 809/971/4429 807/970/4430 808/972/4431 -f 811/973/4432 810/974/4433 808/972/4434 -f 808/972/4435 810/974/4436 809/971/4437 -f 811/973/4438 813/975/4439 810/974/4440 -f 810/974/4441 813/975/4442 812/976/4443 -f 816/977/4444 746/978/4445 817/979/4446 -f 817/979/4447 746/978/4448 747/980/4449 -f 819/981/4450 809/971/4451 820/982/4452 -f 820/982/4453 809/971/4454 810/974/4455 -f 820/982/4456 810/974/4457 821/983/4458 -f 821/983/4459 810/974/4460 812/976/4461 -f 962/984/4462 963/985/4463 935/986/4464 -f 935/986/4465 963/985/4466 814/987/4467 -f 814/987/4468 817/979/4469 935/986/4470 -f 935/986/4471 817/979/4472 824/988/4473 -f 817/979/4474 747/980/4475 824/988/4476 -f 824/988/4477 747/980/4478 748/989/4479 -f 932/990/4480 933/991/4481 819/981/4482 -f 1019/992/4483 933/991/4484 818/993/4485 -f 819/981/4486 820/982/4487 932/990/4488 -f 932/990/4489 820/982/4490 930/994/4491 -f 820/982/4492 821/983/4493 930/994/4494 -f 930/994/4495 821/983/4496 931/995/4497 -f 965/996/4498 822/997/4499 966/998/4500 -f 966/998/4501 822/997/4502 929/999/4503 -f 823/1000/4504 928/1001/4505 822/997/4506 -f 822/997/4507 928/1001/4508 929/999/4509 -f 748/989/4510 767/1002/4511 824/988/4512 -f 824/988/4513 767/1002/4514 927/1003/4515 -f 825/1004/4516 827/1005/4517 826/1006/4518 -f 826/1006/4519 827/1005/4520 828/1007/4521 -f 827/1005/4522 830/1008/4523 828/1007/4524 -f 828/1007/4525 830/1008/4526 829/1009/4527 -f 830/1008/4528 832/1010/4529 829/1009/4530 -f 829/1009/4531 832/1010/4532 831/1011/4533 -f 833/1012/4534 826/1006/4535 834/1013/4536 -f 834/1013/4537 826/1006/4538 828/1007/4539 -f 829/1009/4540 835/1014/4541 828/1007/4542 -f 828/1007/4543 835/1014/4544 834/1013/4545 -f 831/1011/4546 836/1015/4547 829/1009/4548 -f 829/1009/4549 836/1015/4550 835/1014/4551 -f 831/1011/4552 838/1016/4553 836/1015/4554 -f 836/1015/4555 838/1016/4556 837/1017/4557 -f 838/1016/4558 840/1018/4559 837/1017/4560 -f 837/1017/4561 840/1018/4562 839/1019/4563 -f 841/1020/4564 750/1021/4565 842/1022/4566 -f 842/1022/4567 750/1021/4568 751/1023/4569 -f 920/1024/4570 833/1012/4571 863/1025/4572 -f 863/1025/4573 833/1012/4574 834/1013/4575 -f 835/1014/4576 864/1026/4577 834/1013/4578 -f 834/1013/4579 864/1026/4580 863/1025/4581 -f 836/1015/4582 865/1027/4583 835/1014/4584 -f 835/1014/4585 865/1027/4586 864/1026/4587 -f 837/1017/4588 866/1028/4589 836/1015/4590 -f 836/1015/4591 866/1028/4592 865/1027/4593 -f 837/1017/4594 839/1019/4595 866/1028/4596 -f 866/1028/4597 839/1019/4598 867/1029/4599 -f 842/1022/4600 751/1023/4601 868/1030/4602 -f 868/1030/4603 751/1023/4604 752/1031/4605 -f 904/1032/4606 818/993/4607 934/1033/4608 -f 934/1033/4609 818/993/4610 933/991/4611 -f 825/1004/4612 826/1006/4613 900/1034/4614 -f 900/1034/4615 826/1006/4616 901/1035/4617 -f 833/1012/4618 902/1036/4619 903/2571/4620 -f 843/1038/4621 845/921/4622 844/1039/4623 -f 904/1032/4624 905/1040/4625 861/1041/4626 -f 861/1041/4627 905/1040/4628 862/1042/4629 -f 905/1040/4630 906/1043/4631 862/1042/4632 -f 904/1032/4633 846/1044/4634 818/993/4635 -f 847/1045/4636 753/1046/4637 816/977/4638 -f 816/977/4639 753/1046/4640 746/978/4641 -f 948/1047/4642 947/1048/4643 964/1049/4644 -f 964/1049/4645 947/1048/4646 815/1050/4647 -f 848/1051/4648 849/1052/4649 811/973/4650 -f 811/973/4651 849/1052/4652 813/975/4653 -f 850/1053/4654 848/1051/4655 808/972/4656 -f 808/972/4657 848/1051/4658 811/973/4659 -f 851/1054/4660 850/1053/4661 807/970/4662 -f 807/970/4663 850/1053/4664 808/972/4665 -f 844/1039/4666 854/1055/4667 852/1056/4668 -f 852/1056/4669 854/1055/4670 853/1057/4671 -f 856/1058/4672 786/945/4673 785/947/4674 -f 786/945/4675 856/1058/4676 855/1059/4677 -f 785/947/4678 799/961/4679 856/1058/4680 -f 856/1058/4681 799/961/4682 857/1060/4683 -f 807/970/4684 859/1061/4685 858/1062/4686 -f 859/1061/4687 807/970/4688 806/969/4689 -f 860/1063/4690 807/970/4691 858/1062/4692 -f 807/970/4693 860/1063/4694 851/1054/4695 -f 784/943/4696 754/944/4697 795/956/4698 -f 795/956/4699 754/944/4700 744/959/4701 -f 783/942/4702 784/943/4703 796/955/4704 -f 796/955/4705 784/943/4706 795/956/4707 -f 781/940/4708 782/941/4709 792/951/4710 -f 792/951/4711 782/941/4712 794/953/4713 -f 780/939/4714 781/940/4715 790/949/4716 -f 790/949/4717 781/940/4718 792/951/4719 -f 779/938/4720 780/939/4721 787/946/4722 -f 787/946/4723 780/939/4724 790/949/4725 -f 854/1055/4726 779/938/4727 786/945/4728 -f 786/945/4729 779/938/4730 787/946/4731 -f 854/1055/4732 786/945/4733 853/1057/4734 -f 853/1057/4735 786/945/4736 855/1059/4737 -f 862/1064/4738 950/1065/4739 861/1066/4740 -f 861/1066/4741 950/1065/4742 949/1067/4743 -f 852/1068/4744 853/1069/4745 1020/1070/4746 -f 951/1071/4747 853/1069/4748 952/1072/4749 -f 855/1073/4750 856/1074/4751 953/1075/4752 -f 953/1075/4753 856/1074/4754 954/1076/4755 -f 856/1074/4756 857/1077/4757 954/1076/4758 -f 954/1076/4759 857/1077/4760 955/1078/4761 -f 859/1079/4762 957/1080/4763 858/1081/4764 -f 858/1081/4765 957/1080/4766 956/1082/4767 -f 861/1083/4768 949/1084/4769 859/1079/4770 -f 859/1079/4771 949/1084/4772 957/1080/4773 -f 858/1081/4774 956/1082/4775 860/1085/4776 -f 860/1085/4777 956/1082/4778 958/1086/4779 -f 853/1069/4780 855/1073/4781 952/1072/4782 -f 952/1072/4783 855/1073/4784 953/1075/4785 -f 861/1041/4786 846/1044/4787 904/1032/4788 -f 846/1044/4789 859/1061/4790 806/969/4791 -f 859/1061/4792 846/1044/4793 861/1041/4794 -f 862/1042/4795 906/1043/4796 926/1087/4797 -f 926/1087/4798 906/1043/4799 925/1088/4800 -f 950/1065/4801 862/1064/4802 959/1089/4803 -f 959/1089/4804 862/1064/4805 926/1090/4806 -f 843/1038/4807 844/1039/4808 852/1056/4809 -f 854/1055/4810 844/1039/4811 772/920/4812 -f 772/920/4813 844/1039/4814 845/921/4815 -f 773/925/4816 772/920/4817 941/927/4818 -f 941/927/4819 772/920/4820 940/922/4821 -f 863/1025/4822 864/1026/4823 869/1091/4824 -f 865/1027/4825 872/1092/4826 864/1026/4827 -f 864/1026/4828 872/1092/4829 869/1091/4830 -f 866/1028/4831 876/1093/4832 865/1027/4833 -f 865/1027/4834 876/1093/4835 872/1092/4836 -f 866/1028/4837 867/1029/4838 876/1093/4839 -f 876/1093/4840 867/1029/4841 878/1094/4842 -f 868/1030/4843 752/1031/4844 879/1095/4845 -f 879/1095/4846 752/1031/4847 755/1096/4848 -f 871/1097/4849 870/1098/4850 872/1092/4851 -f 872/1092/4852 870/1098/4853 869/1091/4854 -f 873/1099/4855 874/1100/4856 757/1101/4857 -f 757/1101/4858 874/1100/4859 758/1102/4860 -f 874/1100/4861 875/1103/4862 758/1102/4863 -f 758/1102/4864 875/1103/4865 759/1104/4866 -f 877/1105/4867 871/1097/4868 876/1093/4869 -f 876/1093/4870 871/1097/4871 872/1092/4872 -f 878/1094/4873 877/1105/4874 876/1093/4875 -f 755/1096/4876 759/1104/4877 879/1095/4878 -f 879/1095/4879 759/1104/4880 875/1103/4881 -f 877/1105/4882 880/1106/4883 871/1097/4884 -f 880/1106/4885 881/1107/4886 871/1097/4887 -f 871/1097/4888 881/1107/4889 870/1098/4890 -f 882/1108/4891 885/1109/4892 883/1110/4893 -f 883/1110/4894 885/1109/4895 884/1111/4896 -f 886/1112/4897 760/1113/4898 887/1114/4899 -f 887/1114/4900 760/1113/4901 761/1115/4902 -f 885/1109/4903 889/1116/4904 884/1111/4905 -f 884/1111/4906 889/1116/4907 888/1117/4908 -f 890/1118/4909 893/1119/4910 891/1120/4911 -f 891/1120/4912 893/1119/4913 892/1121/4914 -f 894/1122/4915 895/1123/4916 891/1120/4917 -f 891/1120/4918 895/1123/4919 890/1118/4920 -f 764/1124/4921 897/1125/4922 765/1126/4923 -f 765/1126/4924 897/1125/4925 896/1127/4926 -f 898/1128/4927 762/1129/4928 896/1127/4929 -f 896/1127/4930 762/1129/4931 765/1126/4932 -f 894/1122/4933 891/1120/4934 899/1130/4935 -f 899/1130/4936 891/1120/4937 892/1121/4938 -f 901/2574/4939 907/1131/4940 900/1034/4941 -f 903/1037/4942 907/1131/4943 901/2574/4944 -f 902/2572/4945 907/1131/4946 903/1037/4947 -f 907/1131/4948 902/2572/4949 909/1132/4950 -f 934/1033/4951 1017/1133/4952 904/1032/4953 -f 904/1032/4954 1017/1133/4955 905/1040/4956 -f 911/2566/4957 1002/1135/4958 909/1132/4959 -f 909/1132/4960 1002/1135/4961 907/1131/4962 -f 909/2568/4963 908/1136/4964 911/1134/4965 -f 910/1137/4966 908/1136/4967 909/2568/4968 -f 913/1138/4969 912/1139/4970 916/1140/4971 -f 916/1140/4972 912/1139/4973 917/1141/4974 -f 913/1138/4975 916/1140/4976 914/1142/4977 -f 914/1142/4978 916/1140/4979 918/1143/4980 -f 763/1144/4981 766/1145/4982 919/1146/4983 -f 919/1146/4984 766/1145/4985 915/1147/4986 -f 882/1108/4987 883/1110/4988 910/1137/4989 -f 910/1137/4990 883/1110/4991 908/1136/4992 -f 917/1141/4993 893/1119/4994 916/1140/4995 -f 916/1140/4996 893/1119/4997 890/1118/4998 -f 895/1123/4999 918/1143/5000 890/1118/5001 -f 890/1118/5002 918/1143/5003 916/1140/5004 -f 919/1146/5005 897/1125/5006 763/1144/5007 -f 763/1144/5008 897/1125/5009 764/1124/5010 -f 921/1148/5011 756/1149/5012 886/1112/5013 -f 886/1112/5014 756/1149/5015 760/1113/5016 -f 889/1116/5017 885/1109/5018 922/1150/5019 -f 922/1150/5020 885/1109/5021 923/1151/5022 -f 923/1151/5023 885/1109/5024 924/1152/5025 -f 924/1152/5026 885/1109/5027 882/1108/5028 -f 920/1024/5029 924/1152/5030 910/1137/5031 -f 910/1137/5032 924/1152/5033 882/1108/5034 -f 1019/992/5035 806/969/5036 809/971/5037 -f 846/1044/5038 1019/992/5039 818/993/5040 -f 924/1152/5041 869/1091/5042 923/1151/5043 -f 923/1151/5044 869/1091/5045 870/1098/5046 -f 923/1151/5047 870/1098/5048 922/1150/5049 -f 922/1150/5050 870/1098/5051 881/1107/5052 -f 757/1101/5053 756/1149/5054 873/1099/5055 -f 873/1099/5056 756/1149/5057 921/1148/5058 -f 826/1006/5059 833/1012/5060 901/1035/5061 -f 901/1035/5062 833/1012/5063 903/2571/5064 -f 902/1036/5065 833/1012/5066 920/1024/5067 -f 869/1091/5068 924/1152/5069 863/1025/5070 -f 863/1025/5071 924/1152/5072 920/1024/5073 -f 854/1055/5074 772/920/5075 779/938/5076 -f 779/938/5077 772/920/5078 773/925/5079 -f 925/1088/5080 976/1153/5081 843/1038/5082 -f 843/1038/5083 976/1153/5084 971/1154/5085 -f 926/1087/5086 925/1088/5087 852/1056/5088 -f 852/1056/5089 925/1088/5090 843/1038/5091 -f 852/1155/5092 1020/1156/5093 926/1090/5094 -f 926/1090/5095 951/1157/5096 959/1089/5097 -f 1017/1133/5098 934/1033/5099 907/1131/5100 -f 767/1002/5101 749/1158/5102 927/1003/5103 -f 927/1003/5104 749/1158/5105 936/1159/5106 -f 938/1160/5107 929/999/5108 937/1161/5109 -f 937/1161/5110 929/999/5111 928/1001/5112 -f 938/1160/5113 968/1162/5114 929/999/5115 -f 929/999/5116 968/1162/5117 966/998/5118 -f 930/994/5119 931/995/5120 830/1008/5121 -f 830/1008/5122 931/995/5123 832/1010/5124 -f 932/990/5125 930/994/5126 827/1005/5127 -f 827/1005/5128 930/994/5129 830/1008/5130 -f 969/1163/5131 1018/1164/5132 983/1165/5133 -f 843/1038/5134 969/1163/5135 939/923/5136 -f 939/923/5137 969/1163/5138 987/1166/5139 -f 987/1166/5140 993/1167/5141 939/923/5142 -f 939/923/5143 993/1167/5144 940/922/5145 -f 941/927/5146 940/922/5147 992/1168/5148 -f 992/1168/5149 940/922/5150 993/1167/5151 -f 942/926/5152 941/927/5153 989/1169/5154 -f 989/1169/5155 941/927/5156 992/1168/5157 -f 943/929/5158 942/926/5159 988/1170/5160 -f 988/1170/5161 942/926/5162 989/1169/5163 -f 944/931/5164 943/929/5165 990/1171/5166 -f 990/1171/5167 943/929/5168 988/1170/5169 -f 946/934/5170 945/935/5171 991/1172/5172 -f 991/1172/5173 945/935/5174 994/1173/5175 -f 769/937/5176 946/934/5177 742/1174/5178 -f 742/1174/5179 946/934/5180 991/1172/5181 -f 768/968/5182 753/1046/5183 805/967/5184 -f 805/967/5185 753/1046/5186 847/1045/5187 -f 804/966/5188 805/967/5189 947/1048/5190 -f 947/1048/5191 805/967/5192 847/1045/5193 -f 802/964/5194 803/965/5195 849/1052/5196 -f 849/1052/5197 803/965/5198 948/1047/5199 -f 801/963/5200 802/964/5201 848/1051/5202 -f 848/1051/5203 802/964/5204 849/1052/5205 -f 800/962/5206 801/963/5207 850/1053/5208 -f 850/1053/5209 801/963/5210 848/1051/5211 -f 799/961/5212 800/962/5213 851/1054/5214 -f 851/1054/5215 800/962/5216 850/1053/5217 -f 851/1054/5218 860/1063/5219 799/961/5220 -f 799/961/5221 860/1063/5222 857/1060/5223 -f 857/1077/5224 860/1085/5225 955/1078/5226 -f 955/1078/5227 860/1085/5228 958/1086/5229 -f 976/1153/5230 925/1088/5231 974/1175/5232 -f 974/1175/5233 925/1088/5234 906/1043/5235 -f 909/2568/5236 902/1036/5237 910/1137/5238 -f 910/1137/5239 902/1036/5240 920/1024/5241 -f 960/1176/5242 832/1010/5243 961/1177/5244 -f 961/1177/5245 832/1010/5246 931/995/5247 -f 821/983/5248 962/984/5249 931/995/5250 -f 931/995/5251 962/984/5252 961/1177/5253 -f 812/976/5254 963/985/5255 821/983/5256 -f 821/983/5257 963/985/5258 962/984/5259 -f 813/975/5260 964/1049/5261 812/976/5262 -f 812/976/5263 964/1049/5264 963/985/5265 -f 849/1052/5266 948/1047/5267 813/975/5268 -f 813/975/5269 948/1047/5270 964/1049/5271 -f 822/997/5272 965/996/5273 935/986/5274 -f 935/986/5275 965/996/5276 962/984/5277 -f 824/988/5278 823/1000/5279 935/986/5280 -f 935/986/5281 823/1000/5282 822/997/5283 -f 824/988/5284 927/1003/5285 823/1000/5286 -f 823/1000/5287 927/1003/5288 928/1001/5289 -f 966/998/5290 961/1177/5291 965/996/5292 -f 965/996/5293 961/1177/5294 962/984/5295 -f 936/1159/5296 937/1161/5297 927/1003/5298 -f 927/1003/5299 937/1161/5300 928/1001/5301 -f 936/1159/5302 967/1178/5303 937/1161/5304 -f 937/1161/5305 967/1178/5306 938/1160/5307 -f 938/1160/5308 967/1178/5309 968/1162/5310 -f 968/1162/5311 967/1178/5312 960/1176/5313 -f 960/1176/5314 961/1177/5315 968/1162/5316 -f 968/1162/5317 961/1177/5318 966/998/5319 -f 803/965/5320 804/966/5321 948/1047/5322 -f 948/1047/5323 804/966/5324 947/1048/5325 -f 793/954/5326 797/957/5327 803/965/5328 -f 803/965/5329 797/957/5330 804/966/5331 -f 794/953/5332 796/955/5333 793/954/5334 -f 793/954/5335 796/955/5336 797/957/5337 -f 782/941/5338 783/942/5339 794/953/5340 -f 794/953/5341 783/942/5342 796/955/5343 -f 776/930/5344 777/933/5345 782/941/5346 -f 782/941/5347 777/933/5348 783/942/5349 -f 777/933/5350 776/930/5351 945/935/5352 -f 945/935/5353 776/930/5354 944/931/5355 -f 945/935/5356 944/931/5357 994/1173/5358 -f 994/1173/5359 944/931/5360 990/1171/5361 -f 947/1048/5362 847/1045/5363 815/1050/5364 -f 815/1050/5365 847/1045/5366 816/977/5367 -f 840/1018/5368 841/1020/5369 839/1019/5370 -f 839/1019/5371 841/1020/5372 842/1022/5373 -f 839/1019/5374 842/1022/5375 867/1029/5376 -f 867/1029/5377 842/1022/5378 868/1030/5379 -f 867/1029/5380 868/1030/5381 878/1094/5382 -f 878/1094/5383 868/1030/5384 879/1095/5385 -f 879/1095/5386 875/1103/5387 878/1094/5388 -f 878/1094/5389 875/1103/5390 877/1105/5391 -f 875/1103/5392 874/1100/5393 877/1105/5394 -f 877/1105/5395 874/1100/5396 880/1106/5397 -f 874/1100/5398 873/1099/5399 880/1106/5400 -f 880/1106/5401 873/1099/5402 881/1107/5403 -f 873/1099/5404 921/1148/5405 881/1107/5406 -f 881/1107/5407 921/1148/5408 922/1150/5409 -f 886/1112/5410 889/1116/5411 921/1148/5412 -f 921/1148/5413 889/1116/5414 922/1150/5415 -f 889/1116/5416 886/1112/5417 888/1117/5418 -f 888/1117/5419 886/1112/5420 887/1114/5421 -f 896/1127/5422 894/1122/5423 898/1128/5424 -f 898/1128/5425 894/1122/5426 899/1130/5427 -f 897/1125/5428 895/1123/5429 896/1127/5430 -f 896/1127/5431 895/1123/5432 894/1122/5433 -f 897/1125/5434 919/1146/5435 895/1123/5436 -f 895/1123/5437 919/1146/5438 918/1143/5439 -f 914/1142/5440 918/1143/5441 915/1147/5442 -f 915/1147/5443 918/1143/5444 919/1146/5445 -f 841/1020/5446 840/1018/5447 936/1159/5448 -f 936/1159/5449 840/1018/5450 967/1178/5451 -f 750/1021/5452 841/1020/5453 749/1158/5454 -f 749/1158/5455 841/1020/5456 936/1159/5457 -f 840/1018/5458 838/1016/5459 967/1178/5460 -f 967/1178/5461 838/1016/5462 960/1176/5463 -f 832/1010/5464 960/1176/5465 831/1011/5466 -f 831/1011/5467 960/1176/5468 838/1016/5469 -f 932/990/5470 827/1005/5471 933/991/5472 -f 827/1005/5473 825/1004/5474 933/991/5475 -f 934/1033/5476 933/991/5477 900/1034/5478 -f 900/1034/5479 933/991/5480 825/1004/5481 -f 900/1034/5482 907/1131/5483 934/1033/5484 -f 1018/1164/5485 971/1154/5486 977/1179/5487 -f 939/923/5488 845/921/5489 843/1038/5490 -f 1017/1133/5491 907/1131/5492 1016/1180/5493 -f 1016/1180/5494 907/1131/5495 1002/1135/5496 -f 905/1040/5497 982/1181/5498 906/1043/5499 -f 906/1043/5500 982/1181/5501 974/1175/5502 -f 982/1182/5503 905/1040/5504 1003/1183/5505 -f 1018/1164/5506 977/1179/5507 979/1184/5508 -f 984/1185/5509 970/1186/5510 983/1165/5511 -f 983/1165/5512 970/1186/5513 969/1163/5514 -f 976/1153/5515 975/1187/5516 971/1154/5517 -f 971/1154/5518 975/1187/5519 972/1188/5520 -f 978/1189/5521 977/1179/5522 972/1188/5523 -f 972/1188/5524 977/1179/5525 971/1154/5526 -f 975/1187/5527 976/1153/5528 973/1190/5529 -f 973/1190/5530 976/1153/5531 974/1175/5532 -f 977/1179/5533 978/1189/5534 979/1184/5535 -f 979/1184/5536 978/1189/5537 980/1191/5538 -f 982/1181/5539 981/1192/5540 974/1175/5541 -f 974/1175/5542 981/1192/5543 973/1190/5544 -f 981/1193/5545 982/1182/5546 1004/1194/5547 -f 1004/1194/5548 982/1182/5549 1003/1183/5550 -f 983/1165/5551 986/1195/5552 984/1185/5553 -f 984/1185/5554 986/1195/5555 985/1196/5556 -f 988/1170/5557 989/1169/5558 995/1197/5559 -f 995/1197/5560 989/1169/5561 996/1198/5562 -f 990/1171/5563 988/1170/5564 997/1199/5565 -f 997/1199/5566 988/1170/5567 995/1197/5568 -f 742/1174/5569 991/1172/5570 770/1200/5571 -f 770/1200/5572 991/1172/5573 998/1201/5574 -f 989/1169/5575 992/1168/5576 996/1198/5577 -f 996/1198/5578 992/1168/5579 999/1202/5580 -f 992/1168/5581 993/1167/5582 999/1202/5583 -f 999/1202/5584 993/1167/5585 1000/1203/5586 -f 1000/1203/5587 993/1167/5588 970/1186/5589 -f 970/1186/5590 993/1167/5591 987/1166/5592 -f 970/1186/5593 987/1166/5594 969/1163/5595 -f 994/1173/5596 990/1171/5597 1001/1204/5598 -f 1001/1204/5599 990/1171/5600 997/1199/5601 -f 991/1172/5602 994/1173/5603 998/1201/5604 -f 998/1201/5605 994/1173/5606 1001/1204/5607 -f 908/1136/5608 917/1141/5609 911/1134/5610 -f 911/1134/5611 917/1141/5612 912/1139/5613 -f 887/1114/5614 761/1115/5615 898/1128/5616 -f 898/1128/5617 761/1115/5618 762/1129/5619 -f 888/1117/5620 887/1114/5621 899/1130/5622 -f 899/1130/5623 887/1114/5624 898/1128/5625 -f 884/1111/5626 888/1117/5627 892/1121/5628 -f 892/1121/5629 888/1117/5630 899/1130/5631 -f 883/1110/5632 884/1111/5633 893/1119/5634 -f 893/1119/5635 884/1111/5636 892/1121/5637 -f 883/1110/5638 893/1119/5639 908/1136/5640 -f 908/1136/5641 893/1119/5642 917/1141/5643 -f 986/1195/5644 983/1165/5645 1018/1164/5646 -f 986/1195/5647 979/1184/5648 985/1196/5649 -f 985/1196/5650 979/1184/5651 980/1191/5652 -f 986/1195/5653 1018/1164/5654 979/1184/5655 -f 1006/1205/5656 1005/1206/5657 912/1139/5658 -f 912/1139/5659 1005/1206/5660 911/1134/5661 -f 1007/1207/5662 1006/1205/5663 913/1138/5664 -f 913/1138/5665 1006/1205/5666 912/1139/5667 -f 1008/1208/5668 1007/1207/5669 914/1142/5670 -f 914/1142/5671 1007/1207/5672 913/1138/5673 -f 915/1147/5674 1009/1209/5675 914/1142/5676 -f 914/1142/5677 1009/1209/5678 1008/1208/5679 -f 766/1145/5680 771/1210/5681 915/1147/5682 -f 915/1147/5683 771/1210/5684 1009/1209/5685 -f 1015/1211/5686 1016/1180/5687 1010/1212/5688 -f 1010/1212/5689 1016/1180/5690 1002/1135/5691 -f 1010/1212/5692 1002/1135/5693 1005/2567/5694 -f 1005/2567/5695 1002/1135/5696 911/2566/5697 -f 815/1050/5698 814/987/5699 964/1049/5700 -f 964/1049/5701 814/987/5702 963/985/5703 -f 817/979/5704 814/987/5705 816/977/5706 -f 816/977/5707 814/987/5708 815/1050/5709 -f 1044/1213/5710 1045/1214/5711 970/1215/5712 -f 996/1216/5713 1023/1217/5714 995/1218/5715 -f 995/1218/5716 1023/1217/5717 1024/1219/5718 -f 997/1220/5719 995/1218/5720 1025/1221/5721 -f 1025/1221/5722 995/1218/5723 1024/1219/5724 -f 1027/1222/5725 1028/1223/5726 998/1224/5727 -f 998/1224/5728 1028/1223/5729 770/1225/5730 -f 1023/1217/5731 996/1216/5732 1022/1226/5733 -f 1022/1226/5734 996/1216/5735 999/1227/5736 -f 1022/1226/5737 1000/1228/5738 1021/1229/5739 -f 1000/1228/5740 1022/1226/5741 999/1227/5742 -f 972/1230/5743 1021/1229/5744 1045/1214/5745 -f 1045/1214/5746 1021/1229/5747 970/1215/5748 -f 970/1215/5749 1021/1229/5750 1000/1228/5751 -f 997/1220/5752 1025/1221/5753 1001/1231/5754 -f 1001/1231/5755 1025/1221/5756 1026/1232/5757 -f 1001/1231/5758 1026/1232/5759 998/1224/5760 -f 998/1224/5761 1026/1232/5762 1027/1222/5763 -f 1021/1229/5764 972/1230/5765 1012/1233/5766 -f 1012/1234/5767 972/1235/5768 1014/1236/5769 -f 955/1237/5770 959/1089/5771 954/1238/5772 -f 959/1089/5773 955/1237/5774 950/1065/5775 -f 955/1237/5776 958/1239/5777 950/1065/5778 -f 954/1238/5779 959/1089/5780 953/1240/5781 -f 953/1240/5782 959/1089/5783 952/1241/5784 -f 952/1241/5785 959/1089/5786 951/1157/5787 -f 958/1239/5788 956/1242/5789 950/1065/5790 -f 956/1242/5791 957/1243/5792 950/1065/5793 -f 950/1065/5794 957/1243/5795 949/1067/5796 -f 1011/1244/5797 1003/1183/5798 1015/1211/5799 -f 1015/1211/5800 1003/1183/5801 1016/1180/5802 -f 905/1040/5803 1017/1133/5804 1003/1183/5805 -f 1003/1183/5806 1017/1133/5807 1016/1180/5808 -f 1043/1245/5809 1044/1213/5810 984/1246/5811 -f 984/1246/5812 1044/1213/5813 970/1215/5814 -f 985/1247/5815 1043/1245/5816 984/1246/5817 -f 985/1247/5818 980/1248/5819 1043/1245/5820 -f 978/1249/5821 1046/1250/5822 980/1248/5823 -f 980/1248/5824 1046/1250/5825 1043/1245/5826 -f 1046/1250/5827 978/1249/5828 972/1230/5829 -f 969/1163/5830 843/1038/5831 1018/1164/5832 -f 843/1038/5833 971/1154/5834 1018/1164/5835 -f 806/969/5836 1019/992/5837 846/1044/5838 -f 1019/992/5839 809/971/5840 819/981/5841 -f 819/981/5842 933/991/5843 1019/992/5844 -f 1020/1070/5845 853/1069/5846 951/1071/5847 -f 926/1090/5848 1020/1156/5849 951/1157/5850 -f 1037/1251/5851 1013/1252/5852 1042/1253/5853 -f 1042/1253/5854 1013/1252/5855 1034/1254/5856 -f 1036/1255/5857 1014/1256/5858 1037/1251/5859 -f 1037/1251/5860 1014/1256/5861 1013/1252/5862 -f 1038/1257/5863 1030/1258/5864 1035/1259/5865 -f 1035/1259/5866 1030/1258/5867 1029/1260/5868 -f 1039/1261/5869 1031/1262/5870 1038/1257/5871 -f 1038/1257/5872 1031/1262/5873 1030/1258/5874 -f 1040/1263/5875 1032/1264/5876 1039/1261/5877 -f 1039/1261/5878 1032/1264/5879 1031/1262/5880 -f 1041/1265/5881 1033/1266/5882 1040/1263/5883 -f 1040/1263/5884 1033/1266/5885 1032/1264/5886 -f 1042/1253/5887 1034/1254/5888 1041/1265/5889 -f 1041/1265/5890 1034/1254/5891 1033/1266/5892 -f 1021/1229/5893 1012/1233/5894 1036/1255/5895 -f 1036/1255/5896 1012/1233/5897 1014/1256/5898 -f 1021/1229/5899 1036/1255/5900 1022/1226/5901 -f 1022/1226/5902 1036/1255/5903 1037/1251/5904 -f 1023/1217/5905 1022/1226/5906 1042/1253/5907 -f 1042/1253/5908 1022/1226/5909 1037/1251/5910 -f 1024/1219/5911 1023/1217/5912 1041/1265/5913 -f 1041/1265/5914 1023/1217/5915 1042/1253/5916 -f 1025/1221/5917 1024/1219/5918 1040/1263/5919 -f 1040/1263/5920 1024/1219/5921 1041/1265/5922 -f 1025/1221/5923 1040/1263/5924 1026/1232/5925 -f 1026/1232/5926 1040/1263/5927 1039/1261/5928 -f 1038/1257/5929 1027/1222/5930 1039/1261/5931 -f 1039/1261/5932 1027/1222/5933 1026/1232/5934 -f 1027/1222/5935 1038/1257/5936 1028/1223/5937 -f 1028/1223/5938 1038/1257/5939 1035/1259/5940 -f 972/1230/5941 1045/1214/5942 1046/1250/5943 -f 1046/1250/5944 1045/1214/5945 1047/1267/5946 -f 1047/1267/5947 1045/1214/5948 1048/1268/5949 -f 1049/1269/5950 1047/1267/5951 1050/1270/5952 -f 1050/1270/5953 1047/1267/5954 1048/1268/5955 -f 1049/1269/5956 1050/1270/5957 1043/1245/5958 -f 1043/1245/5959 1050/1270/5960 1044/1213/5961 -f 1050/1270/5962 1048/1268/5963 1044/1213/5964 -f 1044/1213/5965 1048/1268/5966 1045/1214/5967 -f 1043/1245/5968 1046/1250/5969 1049/1269/5970 -f 1049/1269/5971 1046/1250/5972 1047/1267/5973 -f 1051/1271/5974 1053/1272/5975 1052/1273/5976 -f 1053/1272/5977 1054/1274/5978 1052/1273/5979 -f 1055/1275/5980 1057/1276/5981 1056/1277/5982 -f 1057/1276/5983 1058/1278/5984 1056/1277/5985 -f 1059/1279/5986 1060/1280/5987 1055/1275/5988 -f 1060/1280/5989 1057/1276/5990 1055/1275/5991 -f 1061/1281/5992 1062/1282/5993 1059/1279/5994 -f 1062/1282/5995 1060/1280/5996 1059/1279/5997 -f 1063/1283/5998 1065/1284/5999 1064/1285/6000 -f 1065/1284/6001 1066/1286/6002 1064/1285/6003 -f 743/936/6004 769/937/6005 1063/1283/6006 -f 769/937/6007 1065/1284/6008 1063/1283/6009 -f 1056/1277/6010 1067/1287/6011 1055/1275/6012 -f 1067/1287/6013 1068/1288/6014 1055/1275/6015 -f 1055/1275/6016 1068/1288/6017 1059/1279/6018 -f 1068/1288/6019 1069/1289/6020 1059/1279/6021 -f 1059/1279/6022 1069/1289/6023 1061/1281/6024 -f 1069/1289/6025 1070/1290/6026 1061/1281/6027 -f 1071/1291/6028 1072/1292/6029 1064/1285/6030 -f 1072/1292/6031 1063/1283/6032 1064/1285/6033 -f 743/936/6034 1063/1283/6035 754/944/6036 -f 1063/1283/6037 1072/1292/6038 754/944/6039 -f 1073/1293/6040 1075/1294/6041 1074/1295/6042 -f 1075/1294/6043 1076/1296/6044 1074/1295/6045 -f 1074/1295/6046 1076/1296/6047 1077/1297/6048 -f 1076/1296/6049 1078/1298/6050 1077/1297/6051 -f 1077/1297/6052 1078/1298/6053 1079/1299/6054 -f 1078/1298/6055 1080/1300/6056 1079/1299/6057 -f 1079/1299/6058 1080/1300/6059 1081/1301/6060 -f 1080/1300/6061 1082/1302/6062 1081/1301/6063 -f 1083/1303/6064 1085/1304/6065 1084/1305/6066 -f 1085/1304/6067 1086/1306/6068 1084/1305/6069 -f 744/959/6070 1084/1305/6071 745/960/6072 -f 1084/1305/6073 1086/1306/6074 745/960/6075 -f 1075/1294/6076 1087/1307/6077 1076/1296/6078 -f 1087/1307/6079 1088/1308/6080 1076/1296/6081 -f 1076/1296/6082 1088/1308/6083 1078/1298/6084 -f 1088/1308/6085 1089/1309/6086 1078/1298/6087 -f 1078/1298/6088 1089/1309/6089 1080/1300/6090 -f 1089/1309/6091 1090/1310/6092 1080/1300/6093 -f 1080/1300/6094 1090/1310/6095 1082/1302/6096 -f 1090/1310/6097 1091/1311/6098 1082/1302/6099 -f 1085/1304/6100 1092/1312/6101 1086/1306/6102 -f 1092/1312/6103 1093/1313/6104 1086/1306/6105 -f 745/960/6106 1086/1306/6107 768/968/6108 -f 1086/1306/6109 1093/1313/6110 768/968/6111 -f 1094/1314/6112 1096/1315/6113 1095/1316/6114 -f 1096/1315/6115 1097/1317/6116 1095/1316/6117 -f 1098/1318/6118 1097/1317/6119 1099/1319/6120 -f 1097/1317/6121 1096/1315/6122 1099/1319/6123 -f 1098/1318/6124 1099/1319/6125 1100/1320/6126 -f 1099/1319/6127 1101/1321/6128 1100/1320/6129 -f 1102/1322/6130 1103/1323/6131 746/978/6132 -f 1103/1323/6133 747/980/6134 746/978/6135 -f 1104/1324/6136 1105/1325/6137 1096/1315/6138 -f 1105/1325/6139 1099/1319/6140 1096/1315/6141 -f 1105/1325/6142 1106/1326/6143 1099/1319/6144 -f 1106/1326/6145 1101/1321/6146 1099/1319/6147 -f 1107/1327/6148 1109/1328/6149 1108/1329/6150 -f 1109/1328/6151 1110/1330/6152 1108/1329/6153 -f 1110/1330/6154 1109/1328/6155 1103/1323/6156 -f 1109/1328/6157 1111/1331/6158 1103/1323/6159 -f 1103/1323/6160 1111/1331/6161 747/980/6162 -f 1111/1331/6163 748/989/6164 747/980/6165 -f 1112/1332/6166 1104/1324/6167 1113/1333/6168 -f 1114/1334/6169 1115/1335/6170 1113/1333/6171 -f 1104/1324/6172 1112/1332/6173 1105/1325/6174 -f 1112/1332/6175 1116/1336/6176 1105/1325/6177 -f 1105/1325/6178 1116/1336/6179 1106/1326/6180 -f 1116/1336/6181 1117/1337/6182 1106/1326/6183 -f 1118/1338/6184 1120/1339/6185 1119/1340/6186 -f 1120/1339/6187 1121/1341/6188 1119/1340/6189 -f 1122/1342/6190 1119/1340/6191 1123/1343/6192 -f 1119/1340/6193 1121/1341/6194 1123/1343/6195 -f 748/989/6196 1111/1331/6197 767/1002/6198 -f 1111/1331/6199 1124/1344/6200 767/1002/6201 -f 1125/1345/6202 1127/1346/6203 1126/1347/6204 -f 1127/1346/6205 1128/1348/6206 1126/1347/6207 -f 1126/1347/6208 1128/1348/6209 1129/1349/6210 -f 1128/1348/6211 1130/1350/6212 1129/1349/6213 -f 1129/1349/6214 1130/1350/6215 1131/1351/6216 -f 1130/1350/6217 1132/1352/6218 1131/1351/6219 -f 1133/1353/6220 1134/1354/6221 1127/1346/6222 -f 1134/1354/6223 1128/1348/6224 1127/1346/6225 -f 1130/1350/6226 1128/1348/6227 1135/1355/6228 -f 1128/1348/6229 1134/1354/6230 1135/1355/6231 -f 1132/1352/6232 1130/1350/6233 1136/1356/6234 -f 1130/1350/6235 1135/1355/6236 1136/1356/6237 -f 1132/1352/6238 1136/1356/6239 1137/1357/6240 -f 1136/1356/6241 1138/1358/6242 1137/1357/6243 -f 1137/1357/6244 1138/1358/6245 1139/1359/6246 -f 1138/1358/6247 1140/1360/6248 1139/1359/6249 -f 1141/1361/6250 1142/1362/6251 750/1021/6252 -f 1142/1362/6253 751/1023/6254 750/1021/6255 -f 1143/1363/6256 1144/1364/6257 1133/1353/6258 -f 1144/1364/6259 1134/1354/6260 1133/1353/6261 -f 1135/1355/6262 1134/1354/6263 1145/1365/6264 -f 1134/1354/6265 1144/1364/6266 1145/1365/6267 -f 1136/1356/6268 1135/1355/6269 1146/1366/6270 -f 1135/1355/6271 1145/1365/6272 1146/1366/6273 -f 1138/1358/6274 1136/1356/6275 1147/1367/6276 -f 1136/1356/6277 1146/1366/6278 1147/1367/6279 -f 1138/1358/6280 1147/1367/6281 1140/1360/6282 -f 1147/1367/6283 1148/1368/6284 1140/1360/6285 -f 1142/1362/6286 1149/1369/6287 751/1023/6288 -f 1149/1369/6289 752/1031/6290 751/1023/6291 -f 1150/1370/6292 1151/1371/6293 1115/1335/6294 -f 1151/1371/6295 1113/1333/6296 1115/1335/6297 -f 1125/1345/6298 1152/1372/6299 1127/1346/6300 -f 1152/1372/6301 1153/1373/6302 1127/1346/6303 -f 1133/1353/6304 1155/1374/6305 1154/1375/6306 -f 1156/1376/6307 1157/1377/6308 1052/1273/6309 -f 1150/1370/6310 1159/1378/6311 1158/1379/6312 -f 1159/1378/6313 1160/1380/6314 1158/1379/6315 -f 1158/1379/6316 1160/1380/6317 1161/1381/6318 -f 1150/1370/6319 1115/1335/6320 1162/1382/6321 -f 1163/1383/6322 1102/1322/6323 753/1046/6324 -f 1102/1322/6325 746/978/6326 753/1046/6327 -f 1164/1384/6328 1166/1385/6329 1165/1386/6330 -f 1166/1385/6331 1167/1387/6332 1165/1386/6333 -f 1168/1388/6334 1098/1318/6335 1169/1389/6336 -f 1098/1318/6337 1100/1320/6338 1169/1389/6339 -f 1170/1390/6340 1097/1317/6341 1168/1388/6342 -f 1097/1317/6343 1098/1318/6344 1168/1388/6345 -f 1171/1391/6346 1095/1316/6347 1170/1390/6348 -f 1095/1316/6349 1097/1317/6350 1170/1390/6351 -f 1157/1377/6352 1173/1392/6353 1172/1393/6354 -f 1173/1392/6355 1174/1394/6356 1172/1393/6357 -f 1175/1395/6358 1075/1294/6359 1073/1293/6360 -f 1073/1293/6361 1176/1396/6362 1175/1395/6363 -f 1075/1294/6364 1175/1395/6365 1087/1307/6366 -f 1175/1395/6367 1177/1397/6368 1087/1307/6369 -f 1095/1316/6370 1179/1398/6371 1178/1399/6372 -f 1178/1399/6373 1094/1314/6374 1095/1316/6375 -f 1180/1400/6376 1179/1398/6377 1095/1316/6378 -f 1095/1316/6379 1171/1391/6380 1180/1400/6381 -f 1072/1292/6382 1084/1305/6383 754/944/6384 -f 1084/1305/6385 744/959/6386 754/944/6387 -f 1071/1291/6388 1083/1303/6389 1072/1292/6390 -f 1083/1303/6391 1084/1305/6392 1072/1292/6393 -f 1069/1289/6394 1079/1299/6395 1070/1290/6396 -f 1079/1299/6397 1081/1301/6398 1070/1290/6399 -f 1068/1288/6400 1077/1297/6401 1069/1289/6402 -f 1077/1297/6403 1079/1299/6404 1069/1289/6405 -f 1067/1287/6406 1074/1295/6407 1068/1288/6408 -f 1074/1295/6409 1077/1297/6410 1068/1288/6411 -f 1172/1393/6412 1073/1293/6413 1067/1287/6414 -f 1073/1293/6415 1074/1295/6416 1067/1287/6417 -f 1172/1393/6418 1174/1394/6419 1073/1293/6420 -f 1174/1394/6421 1176/1396/6422 1073/1293/6423 -f 1160/1401/6424 1159/1402/6425 1181/1403/6426 -f 1159/1402/6427 1182/1404/6428 1181/1403/6429 -f 1173/1405/6430 1183/1406/6431 1174/1407/6432 -f 1184/1408/6433 1185/1409/6434 1174/1407/6435 -f 1176/1410/6436 1186/1411/6437 1175/1412/6438 -f 1186/1411/6439 1187/1413/6440 1175/1412/6441 -f 1175/1412/6442 1187/1413/6443 1177/1414/6444 -f 1187/1413/6445 1188/1415/6446 1177/1414/6447 -f 1178/1416/6448 1179/1417/6449 1189/1418/6450 -f 1179/1417/6451 1190/1419/6452 1189/1418/6453 -f 1159/1420/6454 1178/1416/6455 1182/1421/6456 -f 1178/1416/6457 1189/1418/6458 1182/1421/6459 -f 1179/1417/6460 1180/1422/6461 1190/1419/6462 -f 1180/1422/6463 1191/1423/6464 1190/1419/6465 -f 1174/1407/6466 1185/1409/6467 1176/1410/6468 -f 1185/1409/6469 1186/1411/6470 1176/1410/6471 -f 1159/1378/6472 1150/1370/6473 1162/1382/6474 -f 1162/1382/6475 1094/1314/6476 1178/1399/6477 -f 1178/1399/6478 1159/1378/6479 1162/1382/6480 -f 1160/1380/6481 1192/1424/6482 1161/1381/6483 -f 1192/1424/6484 1193/1425/6485 1161/1381/6486 -f 1181/1403/6487 1194/1426/6488 1160/1401/6489 -f 1194/1426/6490 1192/1427/6491 1160/1401/6492 -f 1156/1376/6493 1173/1392/6494 1157/1377/6495 -f 1172/1393/6496 1051/1271/6497 1157/1377/6498 -f 1051/1271/6499 1052/1273/6500 1157/1377/6501 -f 1056/1277/6502 1058/1278/6503 1051/1271/6504 -f 1058/1278/6505 1053/1272/6506 1051/1271/6507 -f 1144/1364/6508 1195/1428/6509 1145/1365/6510 -f 1146/1366/6511 1145/1365/6512 1196/1429/6513 -f 1145/1365/6514 1195/1428/6515 1196/1429/6516 -f 1147/1367/6517 1146/1366/6518 1197/1430/6519 -f 1146/1366/6520 1196/1429/6521 1197/1430/6522 -f 1147/1367/6523 1197/1430/6524 1148/1368/6525 -f 1197/1430/6526 1198/1431/6527 1148/1368/6528 -f 1149/1369/6529 1199/1432/6530 752/1031/6531 -f 1199/1432/6532 755/1096/6533 752/1031/6534 -f 1200/1433/6535 1196/1429/6536 1201/1434/6537 -f 1196/1429/6538 1195/1428/6539 1201/1434/6540 -f 1202/1435/6541 757/1101/6542 1203/1436/6543 -f 757/1101/6544 758/1102/6545 1203/1436/6546 -f 1203/1436/6547 758/1102/6548 1204/1437/6549 -f 758/1102/6550 759/1104/6551 1204/1437/6552 -f 1205/1438/6553 1197/1430/6554 1200/1433/6555 -f 1197/1430/6556 1196/1429/6557 1200/1433/6558 -f 1198/1431/6559 1197/1430/6560 1205/1438/6561 -f 755/1096/6562 1199/1432/6563 759/1104/6564 -f 1199/1432/6565 1204/1437/6566 759/1104/6567 -f 1205/1438/6568 1200/1433/6569 1206/1439/6570 -f 1206/1439/6571 1200/1433/6572 1207/1440/6573 -f 1200/1433/6574 1201/1434/6575 1207/1440/6576 -f 1208/1441/6577 1210/1442/6578 1209/1443/6579 -f 1210/1442/6580 1211/1444/6581 1209/1443/6582 -f 1212/1445/6583 1213/1446/6584 760/1113/6585 -f 1213/1446/6586 761/1115/6587 760/1113/6588 -f 1209/1443/6589 1211/1444/6590 1214/1447/6591 -f 1211/1444/6592 1215/1448/6593 1214/1447/6594 -f 1216/1449/6595 1218/1450/6596 1217/1451/6597 -f 1218/1450/6598 1219/1452/6599 1217/1451/6600 -f 1220/1453/6601 1218/1450/6602 1221/1454/6603 -f 1218/1450/6604 1216/1449/6605 1221/1454/6606 -f 764/1124/6607 765/1126/6608 1222/1455/6609 -f 765/1126/6610 1223/1456/6611 1222/1455/6612 -f 1224/1457/6613 1223/1456/6614 762/1129/6615 -f 1223/1456/6616 765/1126/6617 762/1129/6618 -f 1220/1453/6619 1225/1458/6620 1218/1450/6621 -f 1225/1458/6622 1219/1452/6623 1218/1450/6624 -f 1153/2573/6625 1152/1372/6626 1226/1459/6627 -f 1155/2569/6628 1153/2573/6629 1226/1459/6630 -f 1154/2570/6631 1155/2569/6632 1226/1459/6633 -f 1226/1459/6634 1227/2565/6635 1154/2570/6636 -f 1151/1371/6637 1150/1370/6638 1228/1461/6639 -f 1150/1370/6640 1158/1379/6641 1228/1461/6642 -f 1229/1462/6643 1227/2565/6644 1230/1463/6645 -f 1227/2565/6646 1226/1459/6647 1230/1463/6648 -f 1227/1460/6649 1229/2563/6650 1231/1464/6651 -f 1232/1465/6652 1227/1460/6653 1231/1464/6654 -f 1233/1466/6655 1235/1467/6656 1234/1468/6657 -f 1235/1467/6658 1236/1469/6659 1234/1468/6660 -f 1233/1466/6661 1237/1470/6662 1235/1467/6663 -f 1237/1470/6664 1238/1471/6665 1235/1467/6666 -f 763/1144/6667 1239/1472/6668 766/1145/6669 -f 1239/1472/6670 1240/1473/6671 766/1145/6672 -f 1208/1441/6673 1232/1465/6674 1210/1442/6675 -f 1232/1465/6676 1231/1464/6677 1210/1442/6678 -f 1236/1469/6679 1235/1467/6680 1217/1451/6681 -f 1235/1467/6682 1216/1449/6683 1217/1451/6684 -f 1221/1454/6685 1216/1449/6686 1238/1471/6687 -f 1216/1449/6688 1235/1467/6689 1238/1471/6690 -f 1239/1472/6691 763/1144/6692 1222/1455/6693 -f 763/1144/6694 764/1124/6695 1222/1455/6696 -f 1241/1474/6697 1212/1445/6698 756/1149/6699 -f 1212/1445/6700 760/1113/6701 756/1149/6702 -f 1214/1447/6703 1242/1475/6704 1209/1443/6705 -f 1242/1475/6706 1243/1476/6707 1209/1443/6708 -f 1243/1476/6709 1244/1477/6710 1209/1443/6711 -f 1244/1477/6712 1208/1441/6713 1209/1443/6714 -f 1143/1363/6715 1232/1465/6716 1244/1477/6717 -f 1232/1465/6718 1208/1441/6719 1244/1477/6720 -f 1114/1334/6721 1096/1315/6722 1094/1314/6723 -f 1162/1382/6724 1115/1335/6725 1114/1334/6726 -f 1244/1477/6727 1243/1476/6728 1195/1428/6729 -f 1243/1476/6730 1201/1434/6731 1195/1428/6732 -f 1243/1476/6733 1242/1475/6734 1201/1434/6735 -f 1242/1475/6736 1207/1440/6737 1201/1434/6738 -f 757/1101/6739 1202/1435/6740 756/1149/6741 -f 1202/1435/6742 1241/1474/6743 756/1149/6744 -f 1127/1346/6745 1153/1373/6746 1133/1353/6747 -f 1153/1373/6748 1155/1374/6749 1133/1353/6750 -f 1154/1375/6751 1143/1363/6752 1133/1353/6753 -f 1195/1428/6754 1144/1364/6755 1244/1477/6756 -f 1144/1364/6757 1143/1363/6758 1244/1477/6759 -f 1172/1393/6760 1067/1287/6761 1051/1271/6762 -f 1067/1287/6763 1056/1277/6764 1051/1271/6765 -f 1193/1425/6766 1156/1376/6767 1245/1478/6768 -f 1156/1376/6769 1246/1479/6770 1245/1478/6771 -f 1192/1424/6772 1173/1392/6773 1193/1425/6774 -f 1173/1392/6775 1156/1376/6776 1193/1425/6777 -f 1173/1480/6778 1192/1427/6779 1183/1481/6780 -f 1192/1427/6781 1194/1426/6782 1184/1482/6783 -f 1228/1461/6784 1226/1459/6785 1151/1371/6786 -f 767/1002/6787 1124/1344/6788 749/1158/6789 -f 1124/1344/6790 1247/1483/6791 749/1158/6792 -f 1248/1484/6793 1249/1485/6794 1121/1341/6795 -f 1249/1485/6796 1123/1343/6797 1121/1341/6798 -f 1248/1484/6799 1121/1341/6800 1250/1486/6801 -f 1121/1341/6802 1120/1339/6803 1250/1486/6804 -f 1116/1336/6805 1129/1349/6806 1117/1337/6807 -f 1129/1349/6808 1131/1351/6809 1117/1337/6810 -f 1112/1332/6811 1126/1347/6812 1116/1336/6813 -f 1126/1347/6814 1129/1349/6815 1116/1336/6816 -f 1251/1487/6817 1253/1488/6818 1252/1489/6819 -f 1156/1376/6820 1054/1274/6821 1251/1487/6822 -f 1054/1274/6823 1254/1490/6824 1251/1487/6825 -f 1254/1490/6826 1054/1274/6827 1255/1491/6828 -f 1054/1274/6829 1053/1272/6830 1255/1491/6831 -f 1058/1278/6832 1256/1492/6833 1053/1272/6834 -f 1256/1492/6835 1255/1491/6836 1053/1272/6837 -f 1057/1276/6838 1257/1493/6839 1058/1278/6840 -f 1257/1493/6841 1256/1492/6842 1058/1278/6843 -f 1060/1280/6844 1258/1494/6845 1057/1276/6846 -f 1258/1494/6847 1257/1493/6848 1057/1276/6849 -f 1062/1282/6850 1259/1495/6851 1060/1280/6852 -f 1259/1495/6853 1258/1494/6854 1060/1280/6855 -f 1065/1284/6856 1260/1496/6857 1066/1286/6858 -f 1260/1496/6859 1261/1497/6860 1066/1286/6861 -f 769/937/6862 742/1174/6863 1065/1284/6864 -f 742/1174/6865 1260/1496/6866 1065/1284/6867 -f 768/968/6868 1093/1313/6869 753/1046/6870 -f 1093/1313/6871 1163/1383/6872 753/1046/6873 -f 1092/1312/6874 1165/1386/6875 1093/1313/6876 -f 1165/1386/6877 1163/1383/6878 1093/1313/6879 -f 1090/1310/6880 1169/1389/6881 1091/1311/6882 -f 1169/1389/6883 1164/1384/6884 1091/1311/6885 -f 1089/1309/6886 1168/1388/6887 1090/1310/6888 -f 1168/1388/6889 1169/1389/6890 1090/1310/6891 -f 1088/1308/6892 1170/1390/6893 1089/1309/6894 -f 1170/1390/6895 1168/1388/6896 1089/1309/6897 -f 1087/1307/6898 1171/1391/6899 1088/1308/6900 -f 1171/1391/6901 1170/1390/6902 1088/1308/6903 -f 1171/1391/6904 1087/1307/6905 1180/1400/6906 -f 1087/1307/6907 1177/1397/6908 1180/1400/6909 -f 1177/1414/6910 1188/1415/6911 1180/1422/6912 -f 1188/1415/6913 1191/1423/6914 1180/1422/6915 -f 1245/1478/6916 1262/1498/6917 1193/1425/6918 -f 1262/1498/6919 1161/1381/6920 1193/1425/6921 -f 1227/1460/6922 1232/1465/6923 1154/1375/6924 -f 1232/1465/6925 1143/1363/6926 1154/1375/6927 -f 1263/1499/6928 1264/1500/6929 1131/1351/6930 -f 1264/1500/6931 1117/1337/6932 1131/1351/6933 -f 1106/1326/6934 1117/1337/6935 1107/1327/6936 -f 1117/1337/6937 1264/1500/6938 1107/1327/6939 -f 1101/1321/6940 1106/1326/6941 1108/1329/6942 -f 1106/1326/6943 1107/1327/6944 1108/1329/6945 -f 1100/1320/6946 1101/1321/6947 1166/1385/6948 -f 1101/1321/6949 1108/1329/6950 1166/1385/6951 -f 1169/1389/6952 1100/1320/6953 1164/1384/6954 -f 1100/1320/6955 1166/1385/6956 1164/1384/6957 -f 1119/1340/6958 1109/1328/6959 1118/1338/6960 -f 1109/1328/6961 1107/1327/6962 1118/1338/6963 -f 1111/1331/6964 1109/1328/6965 1122/1342/6966 -f 1109/1328/6967 1119/1340/6968 1122/1342/6969 -f 1111/1331/6970 1122/1342/6971 1124/1344/6972 -f 1122/1342/6973 1123/1343/6974 1124/1344/6975 -f 1120/1339/6976 1118/1338/6977 1264/1500/6978 -f 1118/1338/6979 1107/1327/6980 1264/1500/6981 -f 1247/1483/6982 1124/1344/6983 1249/1485/6984 -f 1124/1344/6985 1123/1343/6986 1249/1485/6987 -f 1247/1483/6988 1249/1485/6989 1265/1501/6990 -f 1249/1485/6991 1248/1484/6992 1265/1501/6993 -f 1248/1484/6994 1250/1486/6995 1265/1501/6996 -f 1250/1486/6997 1263/1499/6998 1265/1501/6999 -f 1263/1499/7000 1250/1486/7001 1264/1500/7002 -f 1250/1486/7003 1120/1339/7004 1264/1500/7005 -f 1091/1311/7006 1164/1384/7007 1092/1312/7008 -f 1164/1384/7009 1165/1386/7010 1092/1312/7011 -f 1082/1302/7012 1091/1311/7013 1085/1304/7014 -f 1091/1311/7015 1092/1312/7016 1085/1304/7017 -f 1081/1301/7018 1082/1302/7019 1083/1303/7020 -f 1082/1302/7021 1085/1304/7022 1083/1303/7023 -f 1070/1290/7024 1081/1301/7025 1071/1291/7026 -f 1081/1301/7027 1083/1303/7028 1071/1291/7029 -f 1061/1281/7030 1070/1290/7031 1064/1285/7032 -f 1070/1290/7033 1071/1291/7034 1064/1285/7035 -f 1064/1285/7036 1066/1286/7037 1061/1281/7038 -f 1066/1286/7039 1062/1282/7040 1061/1281/7041 -f 1066/1286/7042 1261/1497/7043 1062/1282/7044 -f 1261/1497/7045 1259/1495/7046 1062/1282/7047 -f 1165/1386/7048 1167/1387/7049 1163/1383/7050 -f 1167/1387/7051 1102/1322/7052 1163/1383/7053 -f 1139/1359/7054 1140/1360/7055 1141/1361/7056 -f 1140/1360/7057 1142/1362/7058 1141/1361/7059 -f 1140/1360/7060 1148/1368/7061 1142/1362/7062 -f 1148/1368/7063 1149/1369/7064 1142/1362/7065 -f 1148/1368/7066 1198/1431/7067 1149/1369/7068 -f 1198/1431/7069 1199/1432/7070 1149/1369/7071 -f 1199/1432/7072 1198/1431/7073 1204/1437/7074 -f 1198/1431/7075 1205/1438/7076 1204/1437/7077 -f 1204/1437/7078 1205/1438/7079 1203/1436/7080 -f 1205/1438/7081 1206/1439/7082 1203/1436/7083 -f 1203/1436/7084 1206/1439/7085 1202/1435/7086 -f 1206/1439/7087 1207/1440/7088 1202/1435/7089 -f 1202/1435/7090 1207/1440/7091 1241/1474/7092 -f 1207/1440/7093 1242/1475/7094 1241/1474/7095 -f 1212/1445/7096 1241/1474/7097 1214/1447/7098 -f 1241/1474/7099 1242/1475/7100 1214/1447/7101 -f 1214/1447/7102 1215/1448/7103 1212/1445/7104 -f 1215/1448/7105 1213/1446/7106 1212/1445/7107 -f 1223/1456/7108 1224/1457/7109 1220/1453/7110 -f 1224/1457/7111 1225/1458/7112 1220/1453/7113 -f 1222/1455/7114 1223/1456/7115 1221/1454/7116 -f 1223/1456/7117 1220/1453/7118 1221/1454/7119 -f 1222/1455/7120 1221/1454/7121 1239/1472/7122 -f 1221/1454/7123 1238/1471/7124 1239/1472/7125 -f 1237/1470/7126 1240/1473/7127 1238/1471/7128 -f 1240/1473/7129 1239/1472/7130 1238/1471/7131 -f 1141/1361/7132 1247/1483/7133 1139/1359/7134 -f 1247/1483/7135 1265/1501/7136 1139/1359/7137 -f 750/1021/7138 749/1158/7139 1141/1361/7140 -f 749/1158/7141 1247/1483/7142 1141/1361/7143 -f 1139/1359/7144 1265/1501/7145 1137/1357/7146 -f 1265/1501/7147 1263/1499/7148 1137/1357/7149 -f 1131/1351/7150 1132/1352/7151 1263/1499/7152 -f 1132/1352/7153 1137/1357/7154 1263/1499/7155 -f 1112/1332/7156 1113/1333/7157 1126/1347/7158 -f 1126/1347/7159 1113/1333/7160 1125/1345/7161 -f 1151/1371/7162 1152/1372/7163 1113/1333/7164 -f 1152/1372/7165 1125/1345/7166 1113/1333/7167 -f 1152/1372/7168 1151/1371/7169 1226/1459/7170 -f 1252/1489/7171 1266/1502/7172 1246/1479/7173 -f 1054/1274/7174 1156/1376/7175 1052/1273/7176 -f 1228/1461/7177 1267/1503/7178 1226/1459/7179 -f 1267/1503/7180 1230/1463/7181 1226/1459/7182 -f 1158/1379/7183 1161/1381/7184 1268/1504/7185 -f 1161/1381/7186 1262/1498/7187 1268/1504/7188 -f 1268/1505/7189 1269/1506/7190 1158/1379/7191 -f 1252/1489/7192 1270/1507/7193 1266/1502/7194 -f 1271/1508/7195 1253/1488/7196 1272/1509/7197 -f 1253/1488/7198 1251/1487/7199 1272/1509/7200 -f 1245/1478/7201 1246/1479/7202 1273/1510/7203 -f 1246/1479/7204 1274/1511/7205 1273/1510/7206 -f 1275/1512/7207 1274/1511/7208 1266/1502/7209 -f 1274/1511/7210 1246/1479/7211 1266/1502/7212 -f 1273/1510/7213 1276/1513/7214 1245/1478/7215 -f 1276/1513/7216 1262/1498/7217 1245/1478/7218 -f 1266/1502/7219 1270/1507/7220 1275/1512/7221 -f 1270/1507/7222 1277/1514/7223 1275/1512/7224 -f 1268/1504/7225 1262/1498/7226 1278/1515/7227 -f 1262/1498/7228 1276/1513/7229 1278/1515/7230 -f 1278/1516/7231 1279/1517/7232 1268/1505/7233 -f 1279/1517/7234 1269/1506/7235 1268/1505/7236 -f 1253/1488/7237 1271/1508/7238 1280/1518/7239 -f 1271/1508/7240 1281/1519/7241 1280/1518/7242 -f 1258/1494/7243 1282/1520/7244 1257/1493/7245 -f 1282/1520/7246 1283/1521/7247 1257/1493/7248 -f 1259/1495/7249 1284/1522/7250 1258/1494/7251 -f 1284/1522/7252 1282/1520/7253 1258/1494/7254 -f 742/1174/7255 770/1200/7256 1260/1496/7257 -f 770/1200/7258 1285/1523/7259 1260/1496/7260 -f 1257/1493/7261 1283/1521/7262 1256/1492/7263 -f 1283/1521/7264 1286/1524/7265 1256/1492/7266 -f 1256/1492/7267 1286/1524/7268 1255/1491/7269 -f 1286/1524/7270 1287/1525/7271 1255/1491/7272 -f 1287/1525/7273 1272/1509/7274 1255/1491/7275 -f 1272/1509/7276 1254/1490/7277 1255/1491/7278 -f 1272/1509/7279 1251/1487/7280 1254/1490/7281 -f 1261/1497/7282 1288/1526/7283 1259/1495/7284 -f 1288/1526/7285 1284/1522/7286 1259/1495/7287 -f 1260/1496/7288 1285/1523/7289 1261/1497/7290 -f 1285/1523/7291 1288/1526/7292 1261/1497/7293 -f 1231/1464/7294 1229/2563/7295 1236/1469/7296 -f 1229/2563/7297 1234/1468/7298 1236/1469/7299 -f 1213/1446/7300 1224/1457/7301 761/1115/7302 -f 1224/1457/7303 762/1129/7304 761/1115/7305 -f 1215/1448/7306 1225/1458/7307 1213/1446/7308 -f 1225/1458/7309 1224/1457/7310 1213/1446/7311 -f 1211/1444/7312 1219/1452/7313 1215/1448/7314 -f 1219/1452/7315 1225/1458/7316 1215/1448/7317 -f 1210/1442/7318 1217/1451/7319 1211/1444/7320 -f 1217/1451/7321 1219/1452/7322 1211/1444/7323 -f 1210/1442/7324 1231/1464/7325 1217/1451/7326 -f 1231/1464/7327 1236/1469/7328 1217/1451/7329 -f 1280/1518/7330 1252/1489/7331 1253/1488/7332 -f 1280/1518/7333 1281/1519/7334 1270/1507/7335 -f 1281/1519/7336 1277/1514/7337 1270/1507/7338 -f 1280/1518/7339 1270/1507/7340 1252/1489/7341 -f 1289/1527/7342 1234/1468/7343 1290/2564/7344 -f 1234/1468/7345 1229/2563/7346 1290/2564/7347 -f 1291/1529/7348 1233/1466/7349 1289/1527/7350 -f 1233/1466/7351 1234/1468/7352 1289/1527/7353 -f 1292/1530/7354 1237/1470/7355 1291/1529/7356 -f 1237/1470/7357 1233/1466/7358 1291/1529/7359 -f 1240/1473/7360 1237/1470/7361 1293/1531/7362 -f 1237/1470/7363 1292/1530/7364 1293/1531/7365 -f 766/1145/7366 1240/1473/7367 771/1210/7368 -f 1240/1473/7369 1293/1531/7370 771/1210/7371 -f 1294/1532/7372 1295/1533/7373 1267/1503/7374 -f 1295/1533/7375 1230/1463/7376 1267/1503/7377 -f 1295/1533/7378 1290/1528/7379 1230/1463/7380 -f 1290/1528/7381 1229/1462/7382 1230/1463/7383 -f 1167/1387/7384 1166/1385/7385 1110/1330/7386 -f 1166/1385/7387 1108/1329/7388 1110/1330/7389 -f 1103/1323/7390 1102/1322/7391 1110/1330/7392 -f 1102/1322/7393 1167/1387/7394 1110/1330/7395 -f 1296/1534/7396 1272/1535/7397 1297/1536/7398 -f 1283/1537/7399 1282/1538/7400 1298/1539/7401 -f 1282/1538/7402 1299/1540/7403 1298/1539/7404 -f 1284/1541/7405 1300/1542/7406 1282/1538/7407 -f 1300/1542/7408 1299/1540/7409 1282/1538/7410 -f 1301/1543/7411 1285/1544/7412 1028/1223/7413 -f 1285/1544/7414 770/1225/7415 1028/1223/7416 -f 1298/1539/7417 1302/1545/7418 1283/1537/7419 -f 1302/1545/7420 1286/1546/7421 1283/1537/7422 -f 1302/1545/7423 1303/1547/7424 1287/1548/7425 -f 1287/1548/7426 1286/1546/7427 1302/1545/7428 -f 1274/1549/7429 1297/1536/7430 1303/1547/7431 -f 1297/1536/7432 1272/1535/7433 1303/1547/7434 -f 1272/1535/7435 1287/1548/7436 1303/1547/7437 -f 1284/1541/7438 1288/1550/7439 1300/1542/7440 -f 1288/1550/7441 1304/1551/7442 1300/1542/7443 -f 1288/1550/7444 1285/1544/7445 1304/1551/7446 -f 1285/1544/7447 1301/1543/7448 1304/1551/7449 -f 1303/1547/7450 1305/1552/7451 1274/1549/7452 -f 1305/1553/7453 1306/1554/7454 1274/1555/7455 -f 1188/1556/7456 1187/1557/7457 1194/1426/7458 -f 1194/1426/7459 1181/1403/7460 1188/1556/7461 -f 1188/1556/7462 1181/1403/7463 1191/1558/7464 -f 1187/1557/7465 1186/1559/7466 1194/1426/7467 -f 1186/1559/7468 1185/1560/7469 1194/1426/7470 -f 1185/1560/7471 1184/1482/7472 1194/1426/7473 -f 1191/1558/7474 1181/1403/7475 1190/1561/7476 -f 1190/1561/7477 1181/1403/7478 1189/1562/7479 -f 1181/1403/7480 1182/1404/7481 1189/1562/7482 -f 1307/1563/7483 1294/1532/7484 1269/1506/7485 -f 1294/1532/7486 1267/1503/7487 1269/1506/7488 -f 1158/1379/7489 1269/1506/7490 1228/1461/7491 -f 1269/1506/7492 1267/1503/7493 1228/1461/7494 -f 1308/1564/7495 1271/1565/7496 1296/1534/7497 -f 1271/1565/7498 1272/1535/7499 1296/1534/7500 -f 1281/1566/7501 1271/1565/7502 1308/1564/7503 -f 1281/1566/7504 1308/1564/7505 1277/1567/7506 -f 1275/1568/7507 1277/1567/7508 1309/1569/7509 -f 1277/1567/7510 1308/1564/7511 1309/1569/7512 -f 1309/1569/7513 1274/1549/7514 1275/1568/7515 -f 1251/1487/7516 1252/1489/7517 1156/1376/7518 -f 1156/1376/7519 1252/1489/7520 1246/1479/7521 -f 1094/1314/7522 1162/1382/7523 1114/1334/7524 -f 1114/1334/7525 1104/1324/7526 1096/1315/7527 -f 1104/1324/7528 1114/1334/7529 1113/1333/7530 -f 1183/1406/7531 1184/1408/7532 1174/1407/7533 -f 1192/1427/7534 1184/1482/7535 1183/1481/7536 -f 1310/1570/7537 1312/1571/7538 1311/1572/7539 -f 1312/1571/7540 1313/1573/7541 1311/1572/7542 -f 1314/1574/7543 1310/1570/7544 1306/1575/7545 -f 1310/1570/7546 1311/1572/7547 1306/1575/7548 -f 1315/1576/7549 1035/1259/7550 1316/1577/7551 -f 1035/1259/7552 1029/1260/7553 1316/1577/7554 -f 1317/1578/7555 1315/1576/7556 1318/1579/7557 -f 1315/1576/7558 1316/1577/7559 1318/1579/7560 -f 1319/1580/7561 1317/1578/7562 1320/1581/7563 -f 1317/1578/7564 1318/1579/7565 1320/1581/7566 -f 1321/1582/7567 1319/1580/7568 1322/1583/7569 -f 1319/1580/7570 1320/1581/7571 1322/1583/7572 -f 1312/1571/7573 1321/1582/7574 1313/1573/7575 -f 1321/1582/7576 1322/1583/7577 1313/1573/7578 -f 1303/1547/7579 1314/1574/7580 1305/1552/7581 -f 1314/1574/7582 1306/1575/7583 1305/1552/7584 -f 1303/1547/7585 1302/1545/7586 1314/1574/7587 -f 1302/1545/7588 1310/1570/7589 1314/1574/7590 -f 1298/1539/7591 1312/1571/7592 1302/1545/7593 -f 1312/1571/7594 1310/1570/7595 1302/1545/7596 -f 1299/1540/7597 1321/1582/7598 1298/1539/7599 -f 1321/1582/7600 1312/1571/7601 1298/1539/7602 -f 1300/1542/7603 1319/1580/7604 1299/1540/7605 -f 1319/1580/7606 1321/1582/7607 1299/1540/7608 -f 1300/1542/7609 1304/1551/7610 1319/1580/7611 -f 1304/1551/7612 1317/1578/7613 1319/1580/7614 -f 1315/1576/7615 1317/1578/7616 1301/1543/7617 -f 1317/1578/7618 1304/1551/7619 1301/1543/7620 -f 1301/1543/7621 1028/1223/7622 1315/1576/7623 -f 1028/1223/7624 1035/1259/7625 1315/1576/7626 -f 1274/1549/7627 1309/1569/7628 1297/1536/7629 -f 1309/1569/7630 1323/1584/7631 1297/1536/7632 -f 1323/1584/7633 1324/1585/7634 1297/1536/7635 -f 1325/1586/7636 1326/1587/7637 1323/1584/7638 -f 1326/1587/7639 1324/1585/7640 1323/1584/7641 -f 1325/1586/7642 1308/1564/7643 1326/1587/7644 -f 1308/1564/7645 1296/1534/7646 1326/1587/7647 -f 1326/1587/7648 1296/1534/7649 1324/1585/7650 -f 1296/1534/7651 1297/1536/7652 1324/1585/7653 -f 1308/1564/7654 1325/1586/7655 1309/1569/7656 -f 1325/1586/7657 1323/1584/7658 1309/1569/7659 -f 1013/1588/7660 1029/1589/7661 1034/1590/7662 -f 1274/1555/7663 1306/1554/7664 1014/1236/7665 -f 1014/1236/7666 972/1235/7667 1274/1555/7668 -f 1311/1591/7669 1013/1588/7670 1306/1554/7671 -f 1013/1588/7672 1014/1236/7673 1306/1554/7674 -f 1313/1592/7675 1316/1593/7676 1029/1589/7677 -f 1311/1591/7678 1029/1589/7679 1013/1588/7680 -f 1034/1590/7681 1030/1594/7682 1033/1595/7683 -f 1034/1590/7684 1029/1589/7685 1030/1594/7686 -f 1033/1595/7687 1031/1596/7688 1032/1597/7689 -f 1033/1595/7690 1030/1594/7691 1031/1596/7692 -f 1313/1592/7693 1029/1589/7694 1311/1591/7695 -f 1322/1598/7696 1318/1599/7697 1316/1593/7698 -f 1322/1598/7699 1316/1593/7700 1313/1592/7701 -f 1320/1600/7702 1318/1599/7703 1322/1598/7704 -f 1327/1601/7705 1343/1602/7706 1335/1603/7707 -f 1335/1603/7708 1343/1602/7709 1351/1604/7710 -f 1328/1605/7711 1344/1606/7712 1336/1607/7713 -f 1336/1607/7714 1344/1606/7715 1352/1608/7716 -f 1329/1609/7717 1345/1610/7718 1337/1611/7719 -f 1337/1611/7720 1345/1610/7721 1353/1612/7722 -f 1330/1613/7723 1346/1614/7724 1338/1615/7725 -f 1338/1615/7726 1346/1614/7727 1354/1616/7728 -f 1331/1617/7729 1347/1618/7730 1339/1619/7731 -f 1339/1619/7732 1347/1618/7733 1355/1620/7734 -f 1332/1621/7735 1348/1622/7736 1340/1623/7737 -f 1340/1623/7738 1348/1622/7739 1356/1624/7740 -f 1333/1625/7741 1349/1626/7742 1341/1627/7743 -f 1341/1627/7744 1349/1626/7745 1357/1628/7746 -f 1334/1629/7747 1350/1630/7748 1342/1631/7749 -f 1342/1631/7750 1350/1630/7751 1358/1632/7752 -f 1328/1605/7753 1343/1602/7754 1381/1633/7755 -f 1381/1633/7756 1343/1602/7757 1380/1634/7758 -f 1329/1609/7759 1344/1606/7760 1383/1635/7761 -f 1383/1635/7762 1344/1606/7763 1382/1636/7764 -f 1330/1613/7765 1345/1610/7766 1369/1637/7767 -f 1369/1637/7768 1345/1610/7769 1368/1638/7770 -f 1331/1617/7771 1346/1614/7772 1371/1639/7773 -f 1371/1639/7774 1346/1614/7775 1370/1640/7776 -f 1332/1641/7777 1347/1618/7778 1373/1642/7779 -f 1373/1642/7780 1347/1618/7781 1372/1643/7782 -f 1333/1625/7783 1348/1622/7784 1375/1644/7785 -f 1375/1644/7786 1348/1622/7787 1374/1645/7788 -f 1334/1629/7789 1349/1626/7790 1377/1646/7791 -f 1377/1646/7792 1349/1626/7793 1376/1647/7794 -f 1379/1648/7795 1327/1601/7796 1378/1649/7797 -f 1378/1649/7798 1327/1601/7799 1350/1630/7800 -f 1379/1648/7801 1380/1634/7802 1327/1601/7803 -f 1327/1601/7804 1380/1634/7805 1343/1602/7806 -f 1328/1605/7807 1381/1633/7808 1344/1606/7809 -f 1344/1606/7810 1381/1633/7811 1382/1636/7812 -f 1329/1609/7813 1383/1635/7814 1345/1610/7815 -f 1345/1610/7816 1383/1635/7817 1368/1638/7818 -f 1330/1613/7819 1369/1637/7820 1346/1614/7821 -f 1346/1614/7822 1369/1637/7823 1370/1640/7824 -f 1333/1625/7825 1375/1644/7826 1349/1626/7827 -f 1349/1626/7828 1375/1644/7829 1376/1647/7830 -f 1334/1629/7831 1377/1646/7832 1350/1630/7833 -f 1350/1630/7834 1377/1646/7835 1378/1649/7836 -f 1358/1632/7837 1350/1630/7838 1335/1603/7839 -f 1335/1603/7840 1350/1630/7841 1327/1601/7842 -f 1334/1629/7843 1342/1631/7844 1349/1626/7845 -f 1349/1626/7846 1342/1631/7847 1357/1628/7848 -f 1333/1625/7849 1341/1627/7850 1348/1622/7851 -f 1348/1622/7852 1341/1627/7853 1356/1624/7854 -f 1332/1641/7855 1340/1650/7856 1347/1618/7857 -f 1347/1618/7858 1340/1650/7859 1355/1620/7860 -f 1331/1617/7861 1339/1619/7862 1346/1614/7863 -f 1346/1614/7864 1339/1619/7865 1354/1616/7866 -f 1330/1613/7867 1338/1615/7868 1345/1610/7869 -f 1345/1610/7870 1338/1615/7871 1353/1612/7872 -f 1329/1609/7873 1337/1611/7874 1344/1606/7875 -f 1344/1606/7876 1337/1611/7877 1352/1608/7878 -f 1328/1605/7879 1336/1607/7880 1343/1602/7881 -f 1343/1602/7882 1336/1607/7883 1351/1604/7884 -f 1336/1651/7885 1871/1652/7886 1351/1653/7887 -f 1351/1653/7888 1871/1652/7889 1886/1654/7890 -f 1335/1655/7891 1351/1653/7892 1885/1656/7893 -f 1885/1656/7894 1351/1653/7895 1886/1654/7896 -f 1337/1657/7897 1873/1658/7898 1352/1659/7899 -f 1352/1659/7900 1873/1658/7901 1872/1660/7902 -f 1336/1651/7903 1352/1659/7904 1871/1652/7905 -f 1871/1652/7906 1352/1659/7907 1872/1660/7908 -f 1338/1661/7909 1875/1662/7910 1353/1663/7911 -f 1353/1663/7912 1875/1662/7913 1874/1664/7914 -f 1337/1657/7915 1353/1663/7916 1873/1658/7917 -f 1873/1658/7918 1353/1663/7919 1874/1664/7920 -f 1339/1665/7921 1877/1666/7922 1354/1667/7923 -f 1354/1667/7924 1877/1666/7925 1876/1668/7926 -f 1338/1661/7927 1354/1667/7928 1875/1662/7929 -f 1875/1662/7930 1354/1667/7931 1876/1668/7932 -f 1340/1669/7933 1879/1670/7934 1355/1671/7935 -f 1355/1671/7936 1879/1670/7937 1878/1672/7938 -f 1339/1665/7939 1355/1671/7940 1877/1666/7941 -f 1877/1666/7942 1355/1671/7943 1878/1672/7944 -f 1341/1673/7945 1881/1674/7946 1356/1675/7947 -f 1356/1675/7948 1881/1674/7949 1880/1676/7950 -f 1340/1669/7951 1356/1675/7952 1879/1670/7953 -f 1879/1670/7954 1356/1675/7955 1880/1676/7956 -f 1342/1677/7957 1883/1678/7958 1357/1679/7959 -f 1357/1679/7960 1883/1678/7961 1882/1680/7962 -f 1341/1673/7963 1357/1679/7964 1881/1674/7965 -f 1881/1674/7966 1357/1679/7967 1882/1680/7968 -f 1335/1655/7969 1885/1656/7970 1358/1681/7971 -f 1358/1681/7972 1885/1656/7973 1884/1682/7974 -f 1342/1677/7975 1358/1681/7976 1883/1678/7977 -f 1883/1678/7978 1358/1681/7979 1884/1682/7980 -f 1360/1683/7981 1359/1684/7982 1361/1685/7983 -f 1361/1685/7984 1359/1684/7985 1362/1686/7986 -f 1362/1686/7987 1359/1684/7988 1363/1687/7989 -f 1363/1687/7990 1359/1684/7991 1364/1688/7992 -f 1364/1688/7993 1359/1684/7994 1365/1689/7995 -f 1365/1689/7996 1359/1684/7997 1366/1690/7998 -f 1366/1690/7999 1359/1684/8000 1367/1691/8001 -f 1367/1691/8002 1359/1684/8003 1360/1683/8004 -f 1331/1617/8005 1371/1639/8006 1347/1618/8007 -f 1347/1618/8008 1371/1639/8009 1372/1643/8010 -f 1332/1621/8011 1373/1692/8012 1348/1622/8013 -f 1348/1622/8014 1373/1692/8015 1374/1645/8016 -f 1385/1693/8017 1401/1694/8018 1384/1695/8019 -f 1384/1695/8020 1401/1694/8021 1396/1696/8022 -f 1386/1697/8023 1400/1698/8024 1385/1693/8025 -f 1385/1693/8026 1400/1698/8027 1401/1694/8028 -f 1387/1699/8029 1399/1700/8030 1386/1697/8031 -f 1386/1697/8032 1399/1700/8033 1400/1698/8034 -f 1387/1701/8035 1388/1702/8036 1399/1703/8037 -f 1399/1703/8038 1388/1702/8039 1398/1704/8040 -f 1388/1702/8041 1389/1705/8042 1398/1704/8043 -f 1398/1704/8044 1389/1705/8045 1397/1706/8046 -f 1389/1705/8047 1384/1695/8048 1397/1706/8049 -f 1397/1706/8050 1384/1695/8051 1396/1696/8052 -f 1396/1696/8053 1390/1707/8054 1397/1706/8055 -f 1397/1706/8056 1390/1707/8057 1395/1708/8058 -f 1397/1706/8059 1395/1708/8060 1398/1704/8061 -f 1398/1704/8062 1395/1708/8063 1394/1709/8064 -f 1398/1704/8065 1394/1709/8066 1399/1703/8067 -f 1399/1703/8068 1394/1709/8069 1393/1710/8070 -f 1400/1698/8071 1399/1700/8072 1392/1711/8073 -f 1392/1711/8074 1399/1700/8075 1393/1712/8076 -f 1401/1694/8077 1400/1698/8078 1391/1713/8079 -f 1391/1713/8080 1400/1698/8081 1392/1711/8082 -f 1396/1696/8083 1401/1694/8084 1390/1707/8085 -f 1390/1707/8086 1401/1694/8087 1391/1713/8088 -f 1403/1714/8089 1419/1715/8090 1402/1716/8091 -f 1402/1716/8092 1419/1715/8093 1414/1717/8094 -f 1404/1718/8095 1418/1719/8096 1403/1714/8097 -f 1403/1714/8098 1418/1719/8099 1419/1715/8100 -f 1405/1720/8101 1417/1721/8102 1404/1718/8103 -f 1404/1718/8104 1417/1721/8105 1418/1719/8106 -f 1405/1722/8107 1406/1723/8108 1417/1724/8109 -f 1417/1724/8110 1406/1723/8111 1416/1725/8112 -f 1406/1723/8113 1407/1726/8114 1416/1725/8115 -f 1416/1725/8116 1407/1726/8117 1415/1727/8118 -f 1407/1726/8119 1402/1716/8120 1415/1727/8121 -f 1415/1727/8122 1402/1716/8123 1414/1717/8124 -f 1414/1717/8125 1408/1728/8126 1415/1727/8127 -f 1415/1727/8128 1408/1728/8129 1413/1729/8130 -f 1415/1727/8131 1413/1729/8132 1416/1725/8133 -f 1416/1725/8134 1413/1729/8135 1412/1730/8136 -f 1416/1725/8137 1412/1730/8138 1417/1724/8139 -f 1417/1724/8140 1412/1730/8141 1411/1731/8142 -f 1418/1719/8143 1417/1721/8144 1410/1732/8145 -f 1410/1732/8146 1417/1721/8147 1411/1733/8148 -f 1419/1715/8149 1418/1719/8150 1409/1734/8151 -f 1409/1734/8152 1418/1719/8153 1410/1732/8154 -f 1414/1717/8155 1419/1715/8156 1408/1728/8157 -f 1408/1728/8158 1419/1715/8159 1409/1734/8160 -f 1439/1735/8161 1485/1736/8162 1429/1737/8163 -f 1429/1737/8164 1485/1736/8165 1428/1738/8166 -f 1429/1739/8167 1432/1740/8168 1439/1741/8169 -f 1439/1741/8170 1432/1740/8171 1438/1742/8172 -f 1438/1742/8173 1432/1740/8174 1430/1743/8175 -f 1486/1744/8176 1437/1745/8177 1438/1746/8178 -f 1427/1747/8179 1426/1748/8180 1424/1749/8181 -f 1424/1749/8182 1426/1748/8183 1425/1750/8184 -f 1423/1751/8185 1422/1752/8186 1428/1738/8187 -f 1428/1738/8188 1422/1752/8189 1429/1737/8190 -f 1432/1740/8191 1433/1753/8192 1430/1743/8193 -f 1430/1743/8194 1433/1753/8195 1420/1754/8196 -f 1421/1755/8197 1431/1756/8198 1420/1757/8199 -f 1420/1757/8200 1431/1756/8201 1430/1758/8202 -f 1422/1759/8203 1423/1760/8204 1425/1750/8205 -f 1425/1750/8206 1423/1760/8207 1424/1749/8208 -f 1420/1754/8209 1433/1753/8210 1426/1748/8211 -f 1426/1748/8212 1433/1753/8213 1425/1750/8214 -f 1427/1747/8215 1421/1761/8216 1426/1748/8217 -f 1426/1748/8218 1421/1761/8219 1420/1754/8220 -f 1422/1752/8221 1435/1762/8222 1429/1737/8223 -f 1434/1763/8224 1436/1764/8225 1432/1740/8226 -f 1432/1740/8227 1436/1764/8228 1433/1753/8229 -f 1435/1765/8230 1434/1763/8231 1429/1739/8232 -f 1429/1739/8233 1434/1763/8234 1432/1740/8235 -f 1435/1765/8236 1422/1759/8237 1434/1763/8238 -f 1434/1763/8239 1422/1759/8240 1436/1764/8241 -f 1422/1759/8242 1425/1750/8243 1436/1764/8244 -f 1436/1764/8245 1425/1750/8246 1433/1753/8247 -f 1442/1766/8248 1439/1741/8249 1441/1767/8250 -f 1441/1767/8251 1439/1741/8252 1438/1742/8253 -f 1444/1768/8254 1442/1766/8255 1443/1769/8256 -f 1443/1769/8257 1442/1766/8258 1441/1767/8259 -f 1437/1770/8260 1440/1771/8261 1443/1769/8262 -f 1443/1769/8263 1440/1771/8264 1444/1768/8265 -f 1441/1772/8266 1438/1746/8267 1443/1773/8268 -f 1443/1773/8269 1438/1746/8270 1437/1745/8271 -f 1440/1774/8272 1439/1735/8273 1444/1775/8274 -f 1444/1775/8275 1439/1735/8276 1442/1776/8277 -f 1454/1777/8278 1456/1778/8279 1453/1779/8280 -f 1453/1779/8281 1456/1778/8282 1452/1780/8283 -f 1445/1781/8284 1455/1782/8285 1446/1783/8286 -f 1446/1783/8287 1455/1782/8288 1447/1784/8289 -f 1449/1785/8290 1448/1786/8291 1455/1782/8292 -f 1455/1782/8293 1448/1786/8294 1447/1784/8295 -f 1451/1787/8296 1450/1788/8297 1446/1789/8298 -f 1446/1789/8299 1450/1788/8300 1445/1790/8301 -f 1452/1791/8302 1451/1787/8303 1447/1792/8304 -f 1447/1792/8305 1451/1787/8306 1446/1789/8307 -f 1453/1793/8308 1452/1791/8309 1448/1794/8310 -f 1448/1794/8311 1452/1791/8312 1447/1792/8313 -f 1449/1795/8314 1454/1796/8315 1448/1794/8316 -f 1448/1794/8317 1454/1796/8318 1453/1793/8319 -f 1450/1797/8320 1451/1798/8321 1456/1778/8322 -f 1456/1778/8323 1451/1798/8324 1452/1780/8325 -f 1467/1799/8326 1468/1800/8327 1466/1801/8328 -f 1466/1801/8329 1468/1800/8330 1470/1802/8331 -f 1469/1803/8332 1459/1804/8333 1457/1805/8334 -f 1457/1805/8335 1459/1804/8336 1458/1806/8337 -f 1459/1804/8338 1469/1803/8339 1460/1807/8340 -f 1465/1808/8341 1466/1801/8342 1470/1802/8343 -f 1469/1803/8344 1462/1809/8345 1460/1807/8346 -f 1460/1807/8347 1462/1809/8348 1461/1810/8349 -f 1464/1811/8350 1463/1812/8351 1458/1813/8352 -f 1458/1813/8353 1463/1812/8354 1457/1814/8355 -f 1464/1811/8356 1458/1813/8357 1465/1815/8358 -f 1465/1815/8359 1458/1813/8360 1459/1816/8361 -f 1466/1817/8362 1465/1815/8363 1460/1818/8364 -f 1460/1818/8365 1465/1815/8366 1459/1816/8367 -f 1467/1819/8368 1466/1817/8369 1461/1820/8370 -f 1461/1820/8371 1466/1817/8372 1460/1818/8373 -f 1462/1821/8374 1468/1822/8375 1461/1820/8376 -f 1461/1820/8377 1468/1822/8378 1467/1819/8379 -f 1470/1802/8380 1463/1823/8381 1465/1808/8382 -f 1465/1808/8383 1463/1823/8384 1464/1824/8385 -f 1482/1825/8386 1484/1826/8387 1481/1827/8388 -f 1481/1827/8389 1484/1826/8390 1480/1828/8391 -f 1471/1829/8392 1483/1830/8393 1472/1831/8394 -f 1483/1830/8395 1473/1832/8396 1472/1831/8397 -f 1473/1832/8398 1483/1830/8399 1474/1833/8400 -f 1479/1834/8401 1480/1828/8402 1484/1826/8403 -f 1476/1835/8404 1475/1836/8405 1483/1830/8406 -f 1483/1830/8407 1475/1836/8408 1474/1833/8409 -f 1478/1837/8410 1477/1838/8411 1472/1839/8412 -f 1472/1839/8413 1477/1838/8414 1471/1840/8415 -f 1478/1837/8416 1472/1839/8417 1479/1841/8418 -f 1479/1841/8419 1472/1839/8420 1473/1842/8421 -f 1480/1843/8422 1479/1841/8423 1474/1844/8424 -f 1474/1844/8425 1479/1841/8426 1473/1842/8427 -f 1481/1845/8428 1480/1843/8429 1475/1846/8430 -f 1475/1846/8431 1480/1843/8432 1474/1844/8433 -f 1476/1847/8434 1482/1848/8435 1475/1846/8436 -f 1475/1846/8437 1482/1848/8438 1481/1845/8439 -f 1477/1849/8440 1478/1850/8441 1484/1826/8442 -f 1484/1826/8443 1478/1850/8444 1479/1834/8445 -f 1439/1735/8446 1440/1774/8447 1485/1736/8448 -f 1431/1756/8449 1486/1744/8450 1430/1758/8451 -f 1430/1758/8452 1486/1744/8453 1438/1746/8454 -f 1491/1851/8455 1492/1852/8456 1494/1853/8457 -f 1494/1853/8458 1492/1852/8459 1493/1854/8460 -f 1492/1855/8461 1491/1856/8462 1488/1857/8463 -f 1488/1857/8464 1491/1856/8465 1487/1858/8466 -f 1493/1859/8467 1492/1855/8468 1489/1860/8469 -f 1489/1860/8470 1492/1855/8471 1488/1857/8472 -f 1494/1861/8473 1493/1859/8474 1490/1862/8475 -f 1490/1862/8476 1493/1859/8477 1489/1860/8478 -f 1494/1861/8479 1490/1862/8480 1497/1863/8481 -f 1497/1863/8482 1490/1862/8483 1495/1864/8484 -f 1487/1865/8485 1490/1866/8486 1488/1867/8487 -f 1488/1867/8488 1490/1866/8489 1489/1868/8490 -f 1491/1856/8491 1498/1869/8492 1487/1858/8493 -f 1487/1858/8494 1498/1869/8495 1496/1870/8496 -f 1503/1871/8497 1504/1872/8498 1506/1873/8499 -f 1506/1873/8500 1504/1872/8501 1505/1874/8502 -f 1504/1875/8503 1503/1876/8504 1500/1877/8505 -f 1500/1877/8506 1503/1876/8507 1499/1878/8508 -f 1505/1879/8509 1504/1875/8510 1501/1880/8511 -f 1501/1880/8512 1504/1875/8513 1500/1877/8514 -f 1506/1881/8515 1505/1879/8516 1502/1882/8517 -f 1502/1882/8518 1505/1879/8519 1501/1880/8520 -f 1506/1881/8521 1502/1882/8522 1509/1883/8523 -f 1509/1883/8524 1502/1882/8525 1507/1884/8526 -f 1508/1885/8527 1507/1886/8528 1499/1887/8529 -f 1499/1887/8530 1507/1886/8531 1502/1888/8532 -f 1503/1876/8533 1510/1889/8534 1499/1878/8535 -f 1499/1878/8536 1510/1889/8537 1508/1890/8538 -f 1515/1891/8539 1516/1892/8540 1518/1893/8541 -f 1518/1893/8542 1516/1892/8543 1517/1894/8544 -f 1516/1895/8545 1515/1896/8546 1512/1897/8547 -f 1512/1897/8548 1515/1896/8549 1511/1898/8550 -f 1517/1899/8551 1516/1895/8552 1513/1900/8553 -f 1513/1900/8554 1516/1895/8555 1512/1897/8556 -f 1518/1901/8557 1517/1899/8558 1514/1902/8559 -f 1514/1902/8560 1517/1899/8561 1513/1900/8562 -f 1518/1901/8563 1514/1902/8564 1521/1903/8565 -f 1521/1903/8566 1514/1902/8567 1519/1904/8568 -f 1520/1905/8569 1519/1906/8570 1511/1907/8571 -f 1511/1907/8572 1519/1906/8573 1514/1908/8574 -f 1515/1896/8575 1522/1909/8576 1511/1898/8577 -f 1511/1898/8578 1522/1909/8579 1520/1910/8580 -f 1527/1911/8581 1528/1912/8582 1530/1913/8583 -f 1530/1913/8584 1528/1912/8585 1529/1914/8586 -f 1528/1915/8587 1527/1916/8588 1524/1917/8589 -f 1524/1917/8590 1527/1916/8591 1523/1918/8592 -f 1529/1919/8593 1528/1915/8594 1525/1920/8595 -f 1525/1920/8596 1528/1915/8597 1524/1917/8598 -f 1530/1921/8599 1529/1919/8600 1526/1922/8601 -f 1526/1922/8602 1529/1919/8603 1525/1920/8604 -f 1530/1921/8605 1526/1922/8606 1533/1923/8607 -f 1533/1923/8608 1526/1922/8609 1531/1924/8610 -f 1532/1925/8611 1531/1926/8612 1523/1927/8613 -f 1523/1927/8614 1531/1926/8615 1526/1928/8616 -f 1527/1916/8617 1534/1929/8618 1523/1918/8619 -f 1523/1918/8620 1534/1929/8621 1532/1930/8622 -f 1545/1931/8623 1541/1932/8624 1542/1933/8625 -f 1540/1934/8626 1539/1935/8627 1536/1936/8628 -f 1536/1936/8629 1539/1935/8630 1535/1937/8631 -f 1541/1938/8632 1540/1934/8633 1537/1939/8634 -f 1537/1939/8635 1540/1934/8636 1536/1936/8637 -f 1542/1940/8638 1541/1938/8639 1538/1941/8640 -f 1538/1941/8641 1541/1938/8642 1537/1939/8643 -f 1542/1940/8644 1538/1941/8645 1545/1942/8646 -f 1545/1942/8647 1538/1941/8648 1543/1943/8649 -f 1537/1944/8650 1543/1945/8651 1538/1946/8652 -f 1539/1935/8653 1546/1947/8654 1535/1937/8655 -f 1535/1937/8656 1546/1947/8657 1544/1948/8658 -f 1551/1949/8659 1554/1950/8660 1558/1951/8661 -f 1558/1951/8662 1554/1950/8663 1557/1952/8664 -f 1552/1953/8665 1551/1954/8666 1548/1955/8667 -f 1548/1955/8668 1551/1954/8669 1547/1956/8670 -f 1553/1957/8671 1552/1953/8672 1549/1958/8673 -f 1549/1958/8674 1552/1953/8675 1548/1955/8676 -f 1554/1959/8677 1553/1957/8678 1550/1960/8679 -f 1550/1960/8680 1553/1957/8681 1549/1958/8682 -f 1554/1959/8683 1550/1960/8684 1557/1961/8685 -f 1557/1961/8686 1550/1960/8687 1555/1962/8688 -f 1556/1963/8689 1555/1964/8690 1547/1965/8691 -f 1547/1965/8692 1555/1964/8693 1550/1966/8694 -f 1551/1954/8695 1558/1967/8696 1547/1956/8697 -f 1547/1956/8698 1558/1967/8699 1556/1968/8700 -f 1564/1969/8701 1581/1970/8702 1562/1971/8703 -f 1562/1971/8704 1581/1970/8705 1559/1972/8706 -f 1574/1973/8707 1577/1974/8708 1572/1975/8709 -f 1572/1975/8710 1577/1974/8711 1571/1976/8712 -f 1572/1977/8713 1571/1978/8714 1562/1979/8715 -f 1562/1979/8716 1571/1978/8717 1561/1980/8718 -f 1569/1981/8719 1579/1982/8720 1559/1983/8721 -f 1559/1983/8722 1579/1982/8723 1580/1984/8724 -f 1573/1985/8725 1570/1986/8726 1563/1987/8727 -f 1563/1987/8728 1570/1986/8729 1560/1988/8730 -f 1576/1989/8731 1573/1985/8732 1566/1990/8733 -f 1566/1990/8734 1573/1985/8735 1563/1987/8736 -f 1578/1991/8737 1576/1989/8738 1568/1992/8739 -f 1568/1992/8740 1576/1989/8741 1566/1990/8742 -f 1575/1993/8743 1578/1991/8744 1565/1994/8745 -f 1565/1994/8746 1578/1991/8747 1568/1992/8748 -f 1574/1995/8749 1575/1993/8750 1564/1996/8751 -f 1564/1996/8752 1575/1993/8753 1565/1994/8754 -f 1574/1995/8755 1564/1996/8756 1577/1997/8757 -f 1577/1997/8758 1564/1996/8759 1567/1998/8760 -f 1571/1978/8761 1577/1997/8762 1561/1980/8763 -f 1561/1980/8764 1577/1997/8765 1567/1998/8766 -f 1569/1999/8767 1572/1975/8768 1579/2000/8769 -f 1572/1977/8770 1562/1979/8771 1579/1982/8772 -f 1579/1982/8773 1562/1979/8774 1580/1984/8775 -f 1562/1971/8776 1559/1972/8777 1580/2001/8778 -f 1564/1969/8779 1562/1971/8780 1567/2002/8781 -f 1567/2002/8782 1562/1971/8783 1561/2003/8784 -f 1581/1970/8785 1565/2004/8786 1560/2005/8787 -f 1560/2005/8788 1565/2004/8789 1563/2006/8790 -f 1581/1970/8791 1564/1969/8792 1565/2004/8793 -f 1565/2004/8794 1568/2007/8795 1563/2006/8796 -f 1563/2006/8797 1568/2007/8798 1566/2008/8799 -f 1582/2009/8800 1575/2010/8801 1574/1973/8802 -f 1574/1973/8803 1572/1975/8804 1582/2009/8805 -f 1582/2009/8806 1572/1975/8807 1569/1999/8808 -f 1576/2011/8809 1578/2012/8810 1573/2013/8811 -f 1573/2013/8812 1578/2012/8813 1575/2010/8814 -f 1573/2013/8815 1575/2010/8816 1570/2014/8817 -f 1570/2014/8818 1575/2010/8819 1582/2009/8820 -f 1588/2015/8821 1605/2016/8822 1586/2017/8823 -f 1586/2017/8824 1605/2016/8825 1583/2018/8826 -f 1598/2019/8827 1601/2020/8828 1596/2021/8829 -f 1596/2021/8830 1601/2020/8831 1595/2022/8832 -f 1596/2023/8833 1595/2024/8834 1586/2025/8835 -f 1586/2025/8836 1595/2024/8837 1585/2026/8838 -f 1593/2027/8839 1603/2028/8840 1583/2029/8841 -f 1583/2029/8842 1603/2028/8843 1604/2030/8844 -f 1597/2031/8845 1594/2032/8846 1587/2033/8847 -f 1587/2033/8848 1594/2032/8849 1584/2034/8850 -f 1600/2035/8851 1597/2031/8852 1590/2036/8853 -f 1590/2036/8854 1597/2031/8855 1587/2033/8856 -f 1602/2037/8857 1600/2035/8858 1592/2038/8859 -f 1592/2038/8860 1600/2035/8861 1590/2036/8862 -f 1599/2039/8863 1602/2037/8864 1589/2040/8865 -f 1589/2040/8866 1602/2037/8867 1592/2038/8868 -f 1598/2041/8869 1599/2039/8870 1588/2042/8871 -f 1588/2042/8872 1599/2039/8873 1589/2040/8874 -f 1598/2041/8875 1588/2042/8876 1601/2043/8877 -f 1601/2043/8878 1588/2042/8879 1591/2044/8880 -f 1595/2024/8881 1601/2043/8882 1585/2026/8883 -f 1585/2026/8884 1601/2043/8885 1591/2044/8886 -f 1593/2045/8887 1596/2021/8888 1603/2046/8889 -f 1596/2023/8890 1586/2025/8891 1603/2028/8892 -f 1603/2028/8893 1586/2025/8894 1604/2030/8895 -f 1586/2017/8896 1583/2018/8897 1604/2047/8898 -f 1588/2015/8899 1586/2017/8900 1591/2048/8901 -f 1591/2048/8902 1586/2017/8903 1585/2049/8904 -f 1605/2016/8905 1589/2050/8906 1584/2051/8907 -f 1584/2051/8908 1589/2050/8909 1587/2052/8910 -f 1605/2016/8911 1588/2015/8912 1589/2050/8913 -f 1589/2050/8914 1592/2053/8915 1587/2052/8916 -f 1587/2052/8917 1592/2053/8918 1590/2054/8919 -f 1606/2055/8920 1599/2056/8921 1598/2019/8922 -f 1598/2019/8923 1596/2021/8924 1606/2055/8925 -f 1606/2055/8926 1596/2021/8927 1593/2045/8928 -f 1600/2057/8929 1602/2058/8930 1597/2059/8931 -f 1597/2059/8932 1602/2058/8933 1599/2056/8934 -f 1597/2059/8935 1599/2056/8936 1594/2060/8937 -f 1594/2060/8938 1599/2056/8939 1606/2055/8940 -f 1616/2061/8941 1615/2062/8942 1608/2063/8943 -f 1608/2063/8944 1615/2062/8945 1607/2064/8946 -f 1618/2065/8947 1617/2066/8948 1610/2067/8949 -f 1610/2067/8950 1617/2066/8951 1609/2068/8952 -f 1621/2069/8953 1618/2065/8954 1613/2070/8955 -f 1613/2070/8956 1618/2065/8957 1610/2067/8958 -f 1622/2071/8959 1621/2069/8960 1614/2072/8961 -f 1614/2072/8962 1621/2069/8963 1613/2070/8964 -f 1619/2073/8965 1620/2074/8966 1611/2075/8967 -f 1611/2075/8968 1620/2074/8969 1612/2076/8970 -f 1615/2062/8971 1619/2073/8972 1607/2064/8973 -f 1607/2064/8974 1619/2073/8975 1611/2075/8976 -f 1616/2061/8977 1608/2063/8978 1624/2077/8979 -f 1624/2077/8980 1608/2063/8981 1623/2078/8982 -f 1612/2079/8983 1608/2080/8984 1611/2081/8985 -f 1611/2081/8986 1608/2080/8987 1607/2082/8988 -f 1624/2083/8989 1626/2084/8990 1616/2085/8991 -f 1616/2085/8992 1626/2084/8993 1620/2086/8994 -f 1620/2074/8995 1626/2087/8996 1612/2076/8997 -f 1612/2076/8998 1626/2087/8999 1625/2088/9000 -f 1622/2071/9001 1614/2072/9002 1629/2089/9003 -f 1629/2089/9004 1614/2072/9005 1627/2090/9006 -f 1628/2091/9007 1627/2092/9008 1609/2093/9009 -f 1609/2093/9010 1627/2092/9011 1614/2094/9012 -f 1617/2095/9013 1618/2096/9014 1622/2097/9015 -f 1622/2097/9016 1618/2096/9017 1621/2098/9018 -f 1617/2066/9019 1630/2099/9020 1609/2068/9021 -f 1609/2068/9022 1630/2099/9023 1628/2100/9024 -f 1636/2101/9025 1653/2102/9026 1634/2103/9027 -f 1634/2103/9028 1653/2102/9029 1631/2104/9030 -f 1646/2105/9031 1649/2106/9032 1644/2107/9033 -f 1644/2107/9034 1649/2106/9035 1643/2108/9036 -f 1644/2109/9037 1643/2110/9038 1634/2111/9039 -f 1634/2111/9040 1643/2110/9041 1633/2112/9042 -f 1641/2113/9043 1651/2114/9044 1631/2115/9045 -f 1631/2115/9046 1651/2114/9047 1652/2116/9048 -f 1645/2117/9049 1642/2118/9050 1635/2119/9051 -f 1635/2119/9052 1642/2118/9053 1632/2120/9054 -f 1648/2121/9055 1645/2117/9056 1638/2122/9057 -f 1638/2122/9058 1645/2117/9059 1635/2119/9060 -f 1650/2123/9061 1648/2121/9062 1640/2124/9063 -f 1640/2124/9064 1648/2121/9065 1638/2122/9066 -f 1647/2125/9067 1650/2123/9068 1637/2126/9069 -f 1637/2126/9070 1650/2123/9071 1640/2124/9072 -f 1646/2127/9073 1647/2125/9074 1636/2128/9075 -f 1636/2128/9076 1647/2125/9077 1637/2126/9078 -f 1646/2127/9079 1636/2128/9080 1649/2129/9081 -f 1649/2129/9082 1636/2128/9083 1639/2130/9084 -f 1643/2110/9085 1649/2129/9086 1633/2112/9087 -f 1633/2112/9088 1649/2129/9089 1639/2130/9090 -f 1641/2131/9091 1644/2107/9092 1651/2132/9093 -f 1644/2109/9094 1634/2111/9095 1651/2114/9096 -f 1651/2114/9097 1634/2111/9098 1652/2116/9099 -f 1634/2103/9100 1631/2104/9101 1652/2133/9102 -f 1636/2101/9103 1634/2103/9104 1639/2134/9105 -f 1639/2134/9106 1634/2103/9107 1633/2135/9108 -f 1653/2102/9109 1637/2136/9110 1632/2137/9111 -f 1632/2137/9112 1637/2136/9113 1635/2138/9114 -f 1653/2102/9115 1636/2101/9116 1637/2136/9117 -f 1637/2136/9118 1640/2139/9119 1635/2138/9120 -f 1635/2138/9121 1640/2139/9122 1638/2140/9123 -f 1654/2141/9124 1647/2142/9125 1646/2105/9126 -f 1646/2105/9127 1644/2107/9128 1654/2141/9129 -f 1654/2141/9130 1644/2107/9131 1641/2131/9132 -f 1648/2143/9133 1650/2144/9134 1645/2145/9135 -f 1645/2145/9136 1650/2144/9137 1647/2142/9138 -f 1645/2145/9139 1647/2142/9140 1642/2146/9141 -f 1642/2146/9142 1647/2142/9143 1654/2141/9144 -f 1664/2147/9145 1663/2148/9146 1656/2149/9147 -f 1656/2149/9148 1663/2148/9149 1655/2150/9150 -f 1666/2151/9151 1665/2152/9152 1658/2153/9153 -f 1658/2153/9154 1665/2152/9155 1657/2154/9156 -f 1669/2155/9157 1666/2151/9158 1661/2156/9159 -f 1661/2156/9160 1666/2151/9161 1658/2153/9162 -f 1670/2157/9163 1669/2155/9164 1662/2158/9165 -f 1662/2158/9166 1669/2155/9167 1661/2156/9168 -f 1667/2159/9169 1668/2160/9170 1659/2161/9171 -f 1659/2161/9172 1668/2160/9173 1660/2162/9174 -f 1663/2148/9175 1667/2159/9176 1655/2150/9177 -f 1655/2150/9178 1667/2159/9179 1659/2161/9180 -f 1664/2147/9181 1656/2149/9182 1672/2163/9183 -f 1672/2163/9184 1656/2149/9185 1671/2164/9186 -f 1660/2165/9187 1656/2166/9188 1659/2167/9189 -f 1659/2167/9190 1656/2166/9191 1655/2168/9192 -f 1672/2169/9193 1674/2170/9194 1664/2171/9195 -f 1664/2171/9196 1674/2170/9197 1668/2172/9198 -f 1668/2160/9199 1674/2173/9200 1660/2162/9201 -f 1660/2162/9202 1674/2173/9203 1673/2174/9204 -f 1670/2157/9205 1662/2158/9206 1677/2175/9207 -f 1677/2175/9208 1662/2158/9209 1675/2176/9210 -f 1657/2177/9211 1662/2178/9212 1658/2179/9213 -f 1658/2179/9214 1662/2178/9215 1661/2180/9216 -f 1665/2181/9217 1666/2182/9218 1670/2183/9219 -f 1670/2183/9220 1666/2182/9221 1669/2184/9222 -f 1665/2152/9223 1678/2185/9224 1657/2154/9225 -f 1657/2154/9226 1678/2185/9227 1676/2186/9228 -f 1684/2187/9229 1701/2188/9230 1682/2189/9231 -f 1682/2189/9232 1701/2188/9233 1679/2190/9234 -f 1694/2191/9235 1697/2192/9236 1692/2193/9237 -f 1692/2193/9238 1697/2192/9239 1691/2194/9240 -f 1692/2195/9241 1691/2196/9242 1682/2197/9243 -f 1682/2197/9244 1691/2196/9245 1681/2198/9246 -f 1689/2199/9247 1699/2200/9248 1679/2201/9249 -f 1679/2201/9250 1699/2200/9251 1700/2202/9252 -f 1693/2203/9253 1690/2204/9254 1683/2205/9255 -f 1683/2205/9256 1690/2204/9257 1680/2206/9258 -f 1696/2207/9259 1693/2203/9260 1686/2208/9261 -f 1686/2208/9262 1693/2203/9263 1683/2205/9264 -f 1698/2209/9265 1696/2207/9266 1688/2210/9267 -f 1688/2210/9268 1696/2207/9269 1686/2208/9270 -f 1695/2211/9271 1698/2209/9272 1685/2212/9273 -f 1685/2212/9274 1698/2209/9275 1688/2210/9276 -f 1694/2213/9277 1695/2211/9278 1684/2214/9279 -f 1684/2214/9280 1695/2211/9281 1685/2212/9282 -f 1694/2213/9283 1684/2214/9284 1697/2215/9285 -f 1697/2215/9286 1684/2214/9287 1687/2216/9288 -f 1691/2196/9289 1697/2215/9290 1681/2198/9291 -f 1681/2198/9292 1697/2215/9293 1687/2216/9294 -f 1689/2217/9295 1692/2193/9296 1699/2218/9297 -f 1692/2195/9298 1682/2197/9299 1699/2200/9300 -f 1699/2200/9301 1682/2197/9302 1700/2202/9303 -f 1682/2189/9304 1679/2190/9305 1700/2219/9306 -f 1684/2187/9307 1682/2189/9308 1687/2220/9309 -f 1687/2220/9310 1682/2189/9311 1681/2221/9312 -f 1701/2188/9313 1685/2222/9314 1680/2223/9315 -f 1680/2223/9316 1685/2222/9317 1683/2224/9318 -f 1701/2188/9319 1684/2187/9320 1685/2222/9321 -f 1685/2222/9322 1688/2225/9323 1683/2224/9324 -f 1683/2224/9325 1688/2225/9326 1686/2226/9327 -f 1702/2227/9328 1695/2228/9329 1694/2191/9330 -f 1694/2191/9331 1692/2193/9332 1702/2227/9333 -f 1702/2227/9334 1692/2193/9335 1689/2217/9336 -f 1696/2229/9337 1698/2230/9338 1693/2231/9339 -f 1693/2231/9340 1698/2230/9341 1695/2228/9342 -f 1693/2231/9343 1695/2228/9344 1690/2232/9345 -f 1690/2232/9346 1695/2228/9347 1702/2227/9348 -f 1723/2233/9349 1708/2234/9350 1709/2235/9351 -f 1718/2236/9352 1721/2237/9353 1716/2238/9354 -f 1716/2238/9355 1721/2237/9356 1715/2239/9357 -f 1716/2240/9358 1715/2241/9359 1706/2242/9360 -f 1706/2242/9361 1715/2241/9362 1705/2243/9363 -f 1713/2244/9364 1716/2240/9365 1703/2245/9366 -f 1703/2245/9367 1716/2240/9368 1706/2242/9369 -f 1717/2246/9370 1714/2247/9371 1707/2248/9372 -f 1707/2248/9373 1714/2247/9374 1704/2249/9375 -f 1720/2250/9376 1717/2246/9377 1710/2251/9378 -f 1710/2251/9379 1717/2246/9380 1707/2248/9381 -f 1722/2252/9382 1720/2250/9383 1712/2253/9384 -f 1712/2253/9385 1720/2250/9386 1710/2251/9387 -f 1719/2254/9388 1722/2252/9389 1709/2255/9390 -f 1709/2255/9391 1722/2252/9392 1712/2253/9393 -f 1718/2256/9394 1719/2254/9395 1708/2257/9396 -f 1708/2257/9397 1719/2254/9398 1709/2255/9399 -f 1718/2256/9400 1708/2257/9401 1721/2258/9402 -f 1721/2258/9403 1708/2257/9404 1711/2259/9405 -f 1715/2241/9406 1721/2258/9407 1705/2243/9408 -f 1705/2243/9409 1721/2258/9410 1711/2259/9411 -f 1708/2234/9412 1706/2260/9413 1711/2261/9414 -f 1711/2261/9415 1706/2260/9416 1705/2262/9417 -f 1709/2235/9418 1712/2263/9419 1707/2264/9420 -f 1707/2264/9421 1712/2263/9422 1710/2265/9423 -f 1723/2233/9424 1709/2235/9425 1704/2266/9426 -f 1704/2266/9427 1709/2235/9428 1707/2264/9429 -f 1708/2234/9430 1723/2233/9431 1706/2260/9432 -f 1706/2260/9433 1723/2233/9434 1703/2267/9435 -f 1724/2268/9436 1719/2269/9437 1718/2236/9438 -f 1718/2236/9439 1716/2238/9440 1724/2268/9441 -f 1724/2268/9442 1716/2238/9443 1713/2270/9444 -f 1720/2271/9445 1722/2272/9446 1717/2273/9447 -f 1717/2273/9448 1722/2272/9449 1719/2269/9450 -f 1717/2273/9451 1719/2269/9452 1714/2274/9453 -f 1714/2274/9454 1719/2269/9455 1724/2268/9456 -f 1730/2275/9457 1729/2276/9458 1726/2277/9459 -f 1726/2277/9460 1729/2276/9461 1725/2278/9462 -f 1731/2279/9463 1730/2275/9464 1727/2280/9465 -f 1727/2280/9466 1730/2275/9467 1726/2277/9468 -f 1732/2281/9469 1731/2279/9470 1728/2282/9471 -f 1728/2282/9472 1731/2279/9473 1727/2280/9474 -f 1729/2283/9475 1732/2281/9476 1725/2284/9477 -f 1725/2284/9478 1732/2281/9479 1728/2282/9480 -f 1738/2285/9481 1737/2286/9482 1734/2287/9483 -f 1734/2287/9484 1737/2286/9485 1733/2288/9486 -f 1739/2289/9487 1738/2285/9488 1735/2290/9489 -f 1735/2290/9490 1738/2285/9491 1734/2287/9492 -f 1740/2291/9493 1739/2289/9494 1736/2292/9495 -f 1736/2292/9496 1739/2289/9497 1735/2290/9498 -f 1737/2293/9499 1740/2291/9500 1733/2294/9501 -f 1733/2294/9502 1740/2291/9503 1736/2292/9504 -f 1746/2295/9505 1745/2296/9506 1742/2297/9507 -f 1742/2297/9508 1745/2296/9509 1741/2298/9510 -f 1747/2299/9511 1746/2295/9512 1743/2300/9513 -f 1743/2300/9514 1746/2295/9515 1742/2297/9516 -f 1748/2301/9517 1747/2299/9518 1744/2302/9519 -f 1744/2302/9520 1747/2299/9521 1743/2300/9522 -f 1745/2303/9523 1748/2301/9524 1741/2304/9525 -f 1741/2304/9526 1748/2301/9527 1744/2302/9528 -f 1676/2305/9529 1675/2306/9530 1657/2177/9531 -f 1657/2177/9532 1675/2306/9533 1662/2178/9534 -f 1673/2307/9535 1671/2308/9536 1660/2165/9537 -f 1660/2165/9538 1671/2308/9539 1656/2166/9540 -f 1668/2172/9541 1667/2309/9542 1664/2171/9543 -f 1664/2171/9544 1667/2309/9545 1663/2310/9546 -f 1677/2311/9547 1678/2312/9548 1670/2183/9549 -f 1670/2183/9550 1678/2312/9551 1665/2181/9552 -f 1625/2313/9553 1623/2314/9554 1612/2079/9555 -f 1612/2079/9556 1623/2314/9557 1608/2080/9558 -f 1609/2093/9559 1614/2094/9560 1610/2315/9561 -f 1610/2315/9562 1614/2094/9563 1613/2316/9564 -f 1629/2317/9565 1630/2318/9566 1622/2097/9567 -f 1622/2097/9568 1630/2318/9569 1617/2095/9570 -f 1620/2086/9571 1619/2319/9572 1616/2085/9573 -f 1616/2085/9574 1619/2319/9575 1615/2320/9576 -f 1551/1949/9577 1552/2321/9578 1554/1950/9579 -f 1554/1950/9580 1552/2321/9581 1553/2322/9582 -f 1494/1853/9583 1497/2323/9584 1491/1851/9585 -f 1491/1851/9586 1497/2323/9587 1498/2324/9588 -f 1496/2325/9589 1495/2326/9590 1487/1865/9591 -f 1487/1865/9592 1495/2326/9593 1490/1866/9594 -f 1547/1965/9595 1550/1966/9596 1548/2327/9597 -f 1548/2327/9598 1550/1966/9599 1549/2328/9600 -f 1544/2329/9601 1536/2330/9602 1535/2331/9603 -f 1544/2329/9604 1543/1945/9605 1537/1944/9606 -f 1544/2329/9607 1537/1944/9608 1536/2330/9609 -f 1546/2332/9610 1540/2333/9611 1541/1932/9612 -f 1546/2332/9613 1541/1932/9614 1545/1931/9615 -f 1539/2334/9616 1540/2333/9617 1546/2332/9618 -f 1523/1927/9619 1526/1928/9620 1524/2335/9621 -f 1524/2335/9622 1526/1928/9623 1525/2336/9624 -f 1511/1907/9625 1514/1908/9626 1512/2337/9627 -f 1512/2337/9628 1514/1908/9629 1513/2338/9630 -f 1499/1887/9631 1502/1888/9632 1500/2339/9633 -f 1500/2339/9634 1502/1888/9635 1501/2340/9636 -f 1506/1873/9637 1509/2341/9638 1503/1871/9639 -f 1503/1871/9640 1509/2341/9641 1510/2342/9642 -f 1515/1891/9643 1518/1893/9644 1522/2343/9645 -f 1522/2343/9646 1518/1893/9647 1521/2344/9648 -f 1527/1911/9649 1530/1913/9650 1534/2345/9651 -f 1534/2345/9652 1530/1913/9653 1533/2346/9654 -f 1758/2347/9655 1805/2348/9656 1756/2349/9657 -f 1752/2350/9658 1749/2351/9659 1755/2352/9660 -f 1782/2353/9661 1765/2354/9662 1766/2355/9663 -f 1766/2356/9664 1765/2357/9665 1752/2358/9666 -f 1752/2358/9667 1765/2357/9668 1751/2359/9669 -f 1767/2360/9670 1766/2356/9671 1753/2361/9672 -f 1753/2361/9673 1766/2356/9674 1752/2358/9675 -f 1769/2362/9676 1767/2360/9677 1755/2363/9678 -f 1755/2363/9679 1767/2360/9680 1753/2361/9681 -f 1763/2364/9682 1769/2362/9683 1749/2365/9684 -f 1749/2365/9685 1769/2362/9686 1755/2363/9687 -f 1768/2366/9688 1764/2367/9689 1754/2368/9690 -f 1754/2368/9691 1764/2367/9692 1750/2369/9693 -f 1773/2370/9694 1768/2366/9695 1759/2371/9696 -f 1759/2371/9697 1768/2366/9698 1754/2368/9699 -f 1775/2372/9700 1773/2370/9701 1761/2373/9702 -f 1761/2373/9703 1773/2370/9704 1759/2371/9705 -f 1776/2374/9706 1775/2372/9707 1762/2375/9708 -f 1762/2375/9709 1775/2372/9710 1761/2373/9711 -f 1762/2375/9712 1757/2376/9713 1776/2374/9714 -f 1776/2374/9715 1757/2376/9716 1771/2377/9717 -f 1772/2378/9718 1771/2377/9719 1758/2379/9720 -f 1758/2379/9721 1771/2377/9722 1757/2376/9723 -f 1770/2380/9724 1772/2378/9725 1756/2381/9726 -f 1756/2381/9727 1772/2378/9728 1758/2379/9729 -f 1774/2382/9730 1770/2380/9731 1760/2383/9732 -f 1760/2383/9733 1770/2380/9734 1756/2381/9735 -f 1765/2357/9736 1782/2384/9737 1751/2359/9738 -f 1751/2359/9739 1782/2384/9740 1779/2385/9741 -f 1772/2386/9742 1776/2387/9743 1771/2388/9744 -f 1779/2385/9745 1778/2389/9746 1760/2383/9747 -f 1760/2383/9748 1778/2389/9749 1774/2382/9750 -f 1779/2385/9751 1782/2384/9752 1778/2389/9753 -f 1784/2390/9754 1777/2391/9755 1786/2392/9756 -f 1786/2392/9757 1777/2391/9758 1778/2393/9759 -f 1785/2394/9760 1782/2353/9761 1783/2395/9762 -f 1783/2395/9763 1782/2353/9764 1781/2396/9765 -f 1778/2389/9766 1782/2384/9767 1786/2397/9768 -f 1786/2397/9769 1782/2384/9770 1785/2398/9771 -f 1788/2399/9772 1784/2390/9773 1786/2392/9774 -f 1783/2395/9775 1787/2400/9776 1785/2394/9777 -f 1786/2397/9778 1785/2398/9779 1788/2401/9780 -f 1788/2401/9781 1785/2398/9782 1787/2402/9783 -f 1789/2403/9784 1790/2404/9785 1791/2405/9786 -f 1791/2405/9787 1790/2404/9788 1792/2406/9789 -f 1795/2407/9790 1796/2408/9791 1789/2403/9792 -f 1789/2403/9793 1796/2408/9794 1790/2404/9795 -f 1790/2404/9796 1796/2409/9797 1792/2406/9798 -f 1792/2406/9799 1796/2409/9800 1794/2410/9801 -f 1793/2411/9802 1795/2412/9803 1791/2405/9804 -f 1791/2405/9805 1795/2412/9806 1789/2403/9807 -f 1797/2413/9808 1798/2414/9809 1799/2415/9810 -f 1799/2415/9811 1798/2414/9812 1800/2416/9813 -f 1803/2417/9814 1804/2418/9815 1797/2413/9816 -f 1797/2413/9817 1804/2418/9818 1798/2414/9819 -f 1798/2414/9820 1804/2419/9821 1800/2416/9822 -f 1800/2416/9823 1804/2419/9824 1802/2420/9825 -f 1801/2421/9826 1803/2422/9827 1799/2415/9828 -f 1799/2415/9829 1803/2422/9830 1797/2413/9831 -f 1779/2423/9832 1752/2350/9833 1751/2424/9834 -f 1756/2349/9835 1779/2423/9836 1760/2425/9837 -f 1779/2423/9838 1780/2426/9839 1752/2350/9840 -f 1752/2350/9841 1780/2426/9842 1749/2351/9843 -f 1752/2350/9844 1755/2352/9845 1753/2427/9846 -f 1762/2428/9847 1758/2347/9848 1757/2429/9849 -f 1754/2430/9850 1762/2428/9851 1759/2431/9852 -f 1759/2431/9853 1762/2428/9854 1761/2432/9855 -f 1754/2430/9856 1750/2433/9857 1762/2428/9858 -f 1750/2433/9859 1805/2348/9860 1762/2428/9861 -f 1762/2428/9862 1805/2348/9863 1758/2347/9864 -f 1805/2348/9865 1780/2426/9866 1756/2349/9867 -f 1756/2349/9868 1780/2426/9869 1779/2423/9870 -f 1806/2434/9871 1770/2435/9872 1777/2391/9873 -f 1777/2391/9874 1770/2435/9875 1778/2393/9876 -f 1770/2435/9877 1806/2434/9878 1772/2386/9879 -f 1768/2436/9880 1773/2437/9881 1776/2387/9882 -f 1776/2387/9883 1773/2437/9884 1775/2438/9885 -f 1806/2434/9886 1764/2439/9887 1772/2386/9888 -f 1772/2386/9889 1764/2439/9890 1776/2387/9891 -f 1764/2439/9892 1768/2436/9893 1776/2387/9894 -f 1778/2393/9895 1770/2435/9896 1774/2440/9897 -f 1782/2353/9898 1766/2355/9899 1781/2396/9900 -f 1769/2441/9901 1766/2355/9902 1767/2442/9903 -f 1763/2443/9904 1766/2355/9905 1769/2441/9906 -f 1781/2396/9907 1766/2355/9908 1763/2443/9909 -f 1809/2444/9910 1808/2445/9911 1818/2446/9912 -f 1818/2446/9913 1808/2445/9914 1819/2447/9915 -f 1832/2448/9916 1831/2449/9917 1833/2450/9918 -f 1833/2450/9919 1831/2449/9920 1823/2451/9921 -f 1831/2449/9922 1830/2452/9923 1823/2451/9924 -f 1830/2452/9925 1838/2453/9926 1823/2451/9927 -f 1823/2451/9928 1838/2453/9929 1824/2454/9930 -f 1824/2454/9931 1838/2453/9932 1825/2455/9933 -f 1825/2455/9934 1838/2453/9935 1826/2456/9936 -f 1838/2453/9937 1829/2457/9938 1826/2456/9939 -f 1829/2457/9940 1828/2458/9941 1826/2456/9942 -f 1828/2458/9943 1827/2459/9944 1826/2456/9945 -f 1825/2455/9946 1834/2460/9947 1824/2454/9948 -f 1824/2454/9949 1834/2460/9950 1835/2461/9951 -f 1807/2462/9952 1823/2463/9953 1808/2445/9954 -f 1808/2445/9955 1823/2463/9956 1824/2464/9957 -f 1807/2462/9958 1817/2465/9959 1823/2463/9960 -f 1823/2463/9961 1817/2465/9962 1833/2466/9963 -f 1817/2465/9964 1816/2467/9965 1833/2466/9966 -f 1833/2466/9967 1816/2467/9968 1832/2468/9969 -f 1816/2467/9970 1815/2469/9971 1832/2468/9972 -f 1832/2468/9973 1815/2469/9974 1831/2470/9975 -f 1814/2471/9976 1830/2472/9977 1815/2469/9978 -f 1815/2469/9979 1830/2472/9980 1831/2470/9981 -f 1814/2471/9982 1820/2473/9983 1830/2472/9984 -f 1830/2472/9985 1820/2473/9986 1836/2474/9987 -f 1820/2473/9988 1821/2475/9989 1836/2476/9990 -f 1836/2476/9991 1821/2475/9992 1837/2477/9993 -f 1822/2478/9994 1838/2479/9995 1821/2475/9996 -f 1821/2475/9997 1838/2479/9998 1837/2480/9999 -f 1813/2481/10000 1829/2482/10001 1822/2478/10002 -f 1822/2478/10003 1829/2482/10004 1838/2479/10005 -f 1813/2481/10006 1812/2483/10007 1829/2482/10008 -f 1829/2482/10009 1812/2483/10010 1828/2484/10011 -f 1812/2483/10012 1811/2485/10013 1828/2484/10014 -f 1828/2484/10015 1811/2485/10016 1827/2486/10017 -f 1811/2485/10018 1810/2487/10019 1827/2486/10020 -f 1827/2486/10021 1810/2487/10022 1826/2488/10023 -f 1810/2487/10024 1809/2444/10025 1826/2488/10026 -f 1826/2488/10027 1809/2444/10028 1825/2489/10029 -f 1809/2444/10030 1818/2446/10031 1825/2489/10032 -f 1825/2489/10033 1818/2446/10034 1834/2490/10035 -f 1818/2446/10036 1819/2447/10037 1834/2491/10038 -f 1834/2491/10039 1819/2447/10040 1835/2492/10041 -f 1835/2493/10042 1819/2447/10043 1824/2464/10044 -f 1824/2464/10045 1819/2447/10046 1808/2445/10047 -f 1814/2471/10048 1822/2478/10049 1820/2473/10050 -f 1820/2473/10051 1822/2478/10052 1821/2475/10053 -f 1816/2467/10054 1817/2465/10055 1815/2469/10056 -f 1817/2465/10057 1807/2462/10058 1815/2469/10059 -f 1815/2469/10060 1807/2462/10061 1814/2471/10062 -f 1814/2471/10063 1807/2462/10064 1822/2478/10065 -f 1807/2462/10066 1808/2445/10067 1822/2478/10068 -f 1808/2445/10069 1809/2444/10070 1822/2478/10071 -f 1809/2444/10072 1810/2487/10073 1822/2478/10074 -f 1822/2478/10075 1810/2487/10076 1813/2481/10077 -f 1810/2487/10078 1811/2485/10079 1813/2481/10080 -f 1811/2485/10081 1812/2483/10082 1813/2481/10083 -f 1830/2452/10084 1836/2494/10085 1838/2453/10086 -f 1838/2453/10087 1836/2494/10088 1837/2495/10089 -f 1841/2496/10090 1840/2497/10091 1850/2498/10092 -f 1850/2498/10093 1840/2497/10094 1851/2499/10095 -f 1864/2500/10096 1863/2501/10097 1865/2502/10098 -f 1865/2502/10099 1863/2501/10100 1855/2503/10101 -f 1863/2501/10102 1862/2504/10103 1855/2503/10104 -f 1862/2504/10105 1870/2505/10106 1855/2503/10107 -f 1855/2503/10108 1870/2505/10109 1856/2506/10110 -f 1856/2506/10111 1870/2505/10112 1857/2507/10113 -f 1857/2507/10114 1870/2505/10115 1858/2508/10116 -f 1870/2505/10117 1861/2509/10118 1858/2508/10119 -f 1861/2509/10120 1860/2510/10121 1858/2508/10122 -f 1860/2510/10123 1859/2511/10124 1858/2508/10125 -f 1857/2507/10126 1866/2512/10127 1856/2506/10128 -f 1856/2506/10129 1866/2512/10130 1867/2513/10131 -f 1840/2497/10132 1839/2514/10133 1856/2515/10134 -f 1856/2515/10135 1839/2514/10136 1855/2516/10137 -f 1839/2514/10138 1849/2517/10139 1855/2516/10140 -f 1855/2516/10141 1849/2517/10142 1865/2518/10143 -f 1848/2519/10144 1864/2520/10145 1849/2517/10146 -f 1849/2517/10147 1864/2520/10148 1865/2518/10149 -f 1847/2521/10150 1863/2522/10151 1848/2519/10152 -f 1848/2519/10153 1863/2522/10154 1864/2520/10155 -f 1846/2523/10156 1862/2524/10157 1847/2521/10158 -f 1847/2521/10159 1862/2524/10160 1863/2522/10161 -f 1846/2523/10162 1852/2525/10163 1862/2524/10164 -f 1862/2524/10165 1852/2525/10166 1868/2526/10167 -f 1852/2525/10168 1853/2527/10169 1868/2528/10170 -f 1868/2528/10171 1853/2527/10172 1869/2529/10173 -f 1854/2530/10174 1870/2531/10175 1853/2527/10176 -f 1853/2527/10177 1870/2531/10178 1869/2532/10179 -f 1854/2530/10180 1845/2533/10181 1870/2531/10182 -f 1870/2531/10183 1845/2533/10184 1861/2534/10185 -f 1845/2533/10186 1844/2535/10187 1861/2534/10188 -f 1861/2534/10189 1844/2535/10190 1860/2536/10191 -f 1843/2537/10192 1859/2538/10193 1844/2535/10194 -f 1844/2535/10195 1859/2538/10196 1860/2536/10197 -f 1842/2539/10198 1858/2540/10199 1843/2537/10200 -f 1843/2537/10201 1858/2540/10202 1859/2538/10203 -f 1858/2540/10204 1842/2539/10205 1857/2541/10206 -f 1857/2541/10207 1842/2539/10208 1841/2496/10209 -f 1841/2496/10210 1850/2498/10211 1857/2541/10212 -f 1857/2541/10213 1850/2498/10214 1866/2542/10215 -f 1850/2498/10216 1851/2499/10217 1866/2543/10218 -f 1866/2543/10219 1851/2499/10220 1867/2544/10221 -f 1867/2545/10222 1851/2499/10223 1856/2515/10224 -f 1856/2515/10225 1851/2499/10226 1840/2497/10227 -f 1846/2523/10228 1854/2530/10229 1852/2525/10230 -f 1852/2525/10231 1854/2530/10232 1853/2527/10233 -f 1848/2519/10234 1849/2517/10235 1847/2521/10236 -f 1849/2517/10237 1839/2514/10238 1847/2521/10239 -f 1847/2521/10240 1839/2514/10241 1846/2523/10242 -f 1846/2523/10243 1839/2514/10244 1854/2530/10245 -f 1839/2514/10246 1840/2497/10247 1854/2530/10248 -f 1840/2497/10249 1841/2496/10250 1854/2530/10251 -f 1841/2496/10252 1842/2539/10253 1854/2530/10254 -f 1854/2530/10255 1842/2539/10256 1845/2533/10257 -f 1842/2539/10258 1843/2537/10259 1845/2533/10260 -f 1843/2537/10261 1844/2535/10262 1845/2533/10263 -f 1862/2504/10264 1868/2546/10265 1870/2505/10266 -f 1870/2505/10267 1868/2546/10268 1869/2547/10269 -f 1871/1652/10270 1872/1660/10271 1888/2548/10272 -f 1888/2548/10273 1887/2549/10274 1871/1652/10275 -f 1872/1660/10276 1873/1658/10277 1889/2550/10278 -f 1889/2550/10279 1888/2548/10280 1872/1660/10281 -f 1873/1658/10282 1874/1664/10283 1890/2551/10284 -f 1890/2551/10285 1889/2550/10286 1873/1658/10287 -f 1874/1664/10288 1875/1662/10289 1891/2552/10290 -f 1891/2552/10291 1890/2551/10292 1874/1664/10293 -f 1875/1662/10294 1876/1668/10295 1892/2553/10296 -f 1892/2553/10297 1891/2552/10298 1875/1662/10299 -f 1876/1668/10300 1877/1666/10301 1893/2554/10302 -f 1893/2554/10303 1892/2553/10304 1876/1668/10305 -f 1877/1666/10306 1878/1672/10307 1894/2555/10308 -f 1894/2555/10309 1893/2554/10310 1877/1666/10311 -f 1878/1672/10312 1879/1670/10313 1895/2556/10314 -f 1895/2556/10315 1894/2555/10316 1878/1672/10317 -f 1879/1670/10318 1880/1676/10319 1896/2557/10320 -f 1896/2557/10321 1895/2556/10322 1879/1670/10323 -f 1880/1676/10324 1881/1674/10325 1897/2558/10326 -f 1897/2558/10327 1896/2557/10328 1880/1676/10329 -f 1881/1674/10330 1882/1680/10331 1898/2559/10332 -f 1898/2559/10333 1897/2558/10334 1881/1674/10335 -f 1882/1680/10336 1883/1678/10337 1899/2560/10338 -f 1899/2560/10339 1898/2559/10340 1882/1680/10341 -f 1883/1678/10342 1884/1682/10343 1900/2561/10344 -f 1900/2561/10345 1899/2560/10346 1883/1678/10347 -f 1884/1682/10348 1885/1656/10349 1901/2562/10350 -f 1901/2562/10351 1900/2561/10352 1884/1682/10353 -f 1885/1656/10354 1886/1654/10355 1902/408/10356 -f 1902/408/10357 1901/2562/10358 1885/1656/10359 -f 1886/1654/10360 1871/1652/10361 1887/2549/10362 -f 1887/2549/10363 1902/408/10364 1886/1654/10365 -# 3455 faces - diff --git a/examples/models/resources/pbr/trooper_albedo.png b/examples/models/resources/pbr/trooper_albedo.png deleted file mode 100644 index 9ba0f5a61..000000000 Binary files a/examples/models/resources/pbr/trooper_albedo.png and /dev/null differ diff --git a/examples/models/resources/pbr/trooper_ao.png b/examples/models/resources/pbr/trooper_ao.png deleted file mode 100644 index 442dd7fb7..000000000 Binary files a/examples/models/resources/pbr/trooper_ao.png and /dev/null differ diff --git a/examples/models/resources/pbr/trooper_metalness.png b/examples/models/resources/pbr/trooper_metalness.png deleted file mode 100644 index 6c212a000..000000000 Binary files a/examples/models/resources/pbr/trooper_metalness.png and /dev/null differ diff --git a/examples/models/resources/pbr/trooper_normals.png b/examples/models/resources/pbr/trooper_normals.png deleted file mode 100644 index e04be8830..000000000 Binary files a/examples/models/resources/pbr/trooper_normals.png and /dev/null differ diff --git a/examples/models/resources/pbr/trooper_roughness.png b/examples/models/resources/pbr/trooper_roughness.png deleted file mode 100644 index 29f418f7d..000000000 Binary files a/examples/models/resources/pbr/trooper_roughness.png and /dev/null differ diff --git a/examples/models/resources/shaders/glsl330/brdf.fs b/examples/models/resources/shaders/glsl330/brdf.fs deleted file mode 100644 index 5f44bfe5f..000000000 --- a/examples/models/resources/shaders/glsl330/brdf.fs +++ /dev/null @@ -1,124 +0,0 @@ -#version 330 - -// Input vertex attributes (from vertex shader) -in vec2 fragTexCoord; - -// Constant values -const float PI = 3.14159265359; -const uint MAX_SAMPLES = 1024u; - -// Output fragment color -out vec4 finalColor; - -vec2 Hammersley(uint i, uint N); -float RadicalInverseVdC(uint bits); -float GeometrySchlickGGX(float NdotV, float roughness); -float GeometrySmith(vec3 N, vec3 V, vec3 L, float roughness); -vec3 ImportanceSampleGGX(vec2 Xi, vec3 N, float roughness); -vec2 IntegrateBRDF(float NdotV, float roughness); - -float RadicalInverseVdC(uint bits) -{ - bits = (bits << 16u) | (bits >> 16u); - bits = ((bits & 0x55555555u) << 1u) | ((bits & 0xAAAAAAAAu) >> 1u); - bits = ((bits & 0x33333333u) << 2u) | ((bits & 0xCCCCCCCCu) >> 2u); - bits = ((bits & 0x0F0F0F0Fu) << 4u) | ((bits & 0xF0F0F0F0u) >> 4u); - bits = ((bits & 0x00FF00FFu) << 8u) | ((bits & 0xFF00FF00u) >> 8u); - return float(bits) * 2.3283064365386963e-10; // / 0x100000000 -} - -// Compute Hammersley coordinates -vec2 Hammersley(uint i, uint N) -{ - return vec2(float(i)/float(N), RadicalInverseVdC(i)); -} - -// Integrate number of importance samples for (roughness and NoV) -vec3 ImportanceSampleGGX(vec2 Xi, vec3 N, float roughness) -{ - float a = roughness*roughness; - float phi = 2.0 * PI * Xi.x; - float cosTheta = sqrt((1.0 - Xi.y)/(1.0 + (a*a - 1.0)*Xi.y)); - float sinTheta = sqrt(1.0 - cosTheta*cosTheta); - - // Transform from spherical coordinates to cartesian coordinates (halfway vector) - vec3 H = vec3(cos(phi)*sinTheta, sin(phi)*sinTheta, cosTheta); - - // Transform from tangent space H vector to world space sample vector - vec3 up = ((abs(N.z) < 0.999) ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0)); - vec3 tangent = normalize(cross(up, N)); - vec3 bitangent = cross(N, tangent); - vec3 sampleVec = tangent*H.x + bitangent*H.y + N*H.z; - - return normalize(sampleVec); -} - -float GeometrySchlickGGX(float NdotV, float roughness) -{ - // For IBL k is calculated different - float k = (roughness*roughness)/2.0; - - float nom = NdotV; - float denom = NdotV*(1.0 - k) + k; - - return nom/denom; -} - -// Compute the geometry term for the BRDF given roughness squared, NoV, NoL -float GeometrySmith(vec3 N, vec3 V, vec3 L, float roughness) -{ - float NdotV = max(dot(N, V), 0.0); - float NdotL = max(dot(N, L), 0.0); - float ggx2 = GeometrySchlickGGX(NdotV, roughness); - float ggx1 = GeometrySchlickGGX(NdotL, roughness); - - return ggx1*ggx2; -} - -// Bidirectional reflectance distribution function -// Ref: https://github.com/HectorMF/BRDFGenerator -vec2 IntegrateBRDF(float NdotV, float roughness) -{ - float A = 0.0; - float B = 0.0; - vec3 V = vec3(sqrt(1.0 - NdotV*NdotV), 0.0, NdotV); - vec3 N = vec3(0.0, 0.0, 1.0); - - for (uint i = 0u; i < MAX_SAMPLES; i++) - { - // Generate a sample vector that's biased towards the preferred alignment direction (importance sampling) - - vec2 Xi = Hammersley(i, MAX_SAMPLES); // Compute a Hammersely coordinate - vec3 H = ImportanceSampleGGX(Xi, N, roughness); // Integrate number of importance samples for (roughness and NoV) - vec3 L = normalize(2.0*dot(V, H)*H - V); // Compute reflection vector L - - float NdotL = max(L.z, 0.0); // Compute normal dot light - float NdotH = max(H.z, 0.0); // Compute normal dot half - float VdotH = max(dot(V, H), 0.0); // Compute view dot half - - if (NdotL > 0.0) - { - float G = GeometrySmith(N, V, L, roughness); // Compute the geometry term for the BRDF given roughness squared, NoV, NoL - float GVis = (G*VdotH)/(NdotH*NdotV); // Compute the visibility term given G, VoH, NoH, NoV, NoL - float Fc = pow(1.0 - VdotH, 5.0); // Compute the fresnel term given VoH - - A += (1.0 - Fc)*GVis; // Sum the result given fresnel, geometry, visibility - B += Fc*GVis; - } - } - - // Calculate brdf average sample - A /= float(MAX_SAMPLES); - B /= float(MAX_SAMPLES); - - return vec2(A, B); -} - -void main() -{ - // Calculate brdf based on texture coordinates - vec2 brdf = IntegrateBRDF(fragTexCoord.x, fragTexCoord.y); - - // Calculate final fragment color - finalColor = vec4(brdf.r, brdf.g, 0.0, 1.0); -} diff --git a/examples/models/resources/shaders/glsl330/brdf.vs b/examples/models/resources/shaders/glsl330/brdf.vs deleted file mode 100644 index c93cfd0ea..000000000 --- a/examples/models/resources/shaders/glsl330/brdf.vs +++ /dev/null @@ -1,17 +0,0 @@ -#version 330 - -// Input vertex attributes -in vec3 vertexPosition; -in vec2 vertexTexCoord; - -// Output vertex attributes (to fragment shader) -out vec2 fragTexCoord; - -void main() -{ - // Calculate fragment position based on model transformations - fragTexCoord = vertexTexCoord; - - // Calculate final vertex position - gl_Position = vec4(vertexPosition, 1.0); -} \ No newline at end of file diff --git a/examples/models/resources/shaders/glsl330/irradiance.fs b/examples/models/resources/shaders/glsl330/irradiance.fs deleted file mode 100644 index 4b74916d9..000000000 --- a/examples/models/resources/shaders/glsl330/irradiance.fs +++ /dev/null @@ -1,50 +0,0 @@ -#version 330 - -// Input vertex attributes (from vertex shader) -in vec3 fragPosition; - -// Input uniform values -uniform samplerCube environmentMap; - -// Constant values -const float PI = 3.14159265359; - -// Output fragment color -out vec4 finalColor; - -void main() -{ - // The sample direction equals the hemisphere's orientation - vec3 normal = normalize(fragPosition); - - vec3 irradiance = vec3(0.0); - - vec3 up = vec3(0.0, 1.0, 0.0); - vec3 right = cross(up, normal); - up = cross(normal, right); - - float sampleDelta = 0.025; - float nrSamples = 0.0; - - for (float phi = 0.0; phi < 2.0*PI; phi += sampleDelta) - { - for (float theta = 0.0; theta < 0.5*PI; theta += sampleDelta) - { - // Spherical to cartesian (in tangent space) - vec3 tangentSample = vec3(sin(theta)*cos(phi), sin(theta)*sin(phi), cos(theta)); - - // tangent space to world - vec3 sampleVec = tangentSample.x*right + tangentSample.y*up + tangentSample.z*normal; - - // Fetch color from environment cubemap - irradiance += texture(environmentMap, sampleVec).rgb*cos(theta)*sin(theta); - nrSamples++; - } - } - - // Calculate irradiance average value from samples - irradiance = PI*irradiance*(1.0/float(nrSamples)); - - // Calculate final fragment color - finalColor = vec4(irradiance, 1.0); -} diff --git a/examples/models/resources/shaders/glsl330/pbr.fs b/examples/models/resources/shaders/glsl330/pbr.fs deleted file mode 100644 index 72779a185..000000000 --- a/examples/models/resources/shaders/glsl330/pbr.fs +++ /dev/null @@ -1,292 +0,0 @@ -#version 330 - -#define MAX_REFLECTION_LOD 4.0 -#define MAX_DEPTH_LAYER 20 -#define MIN_DEPTH_LAYER 10 - -#define MAX_LIGHTS 4 -#define LIGHT_DIRECTIONAL 0 -#define LIGHT_POINT 1 - -struct MaterialProperty { - vec3 color; - int useSampler; - sampler2D sampler; -}; - -struct Light { - int enabled; - int type; - vec3 position; - vec3 target; - vec4 color; -}; - -// Input vertex attributes (from vertex shader) -in vec3 fragPosition; -in vec2 fragTexCoord; -in vec3 fragNormal; -in vec3 fragTangent; -in vec3 fragBinormal; - -// Input material values -uniform MaterialProperty albedo; -uniform MaterialProperty normals; -uniform MaterialProperty metalness; -uniform MaterialProperty roughness; -uniform MaterialProperty occlusion; -uniform MaterialProperty emission; -uniform MaterialProperty height; - -// Input uniform values -uniform samplerCube irradianceMap; -uniform samplerCube prefilterMap; -uniform sampler2D brdfLUT; - -// Input lighting values -uniform Light lights[MAX_LIGHTS]; - -// Other uniform values -uniform int renderMode; -uniform vec3 viewPos; -vec2 texCoord; - -// Constant values -const float PI = 3.14159265359; - -// Output fragment color -out vec4 finalColor; - -vec3 ComputeMaterialProperty(MaterialProperty property); -float DistributionGGX(vec3 N, vec3 H, float roughness); -float GeometrySchlickGGX(float NdotV, float roughness); -float GeometrySmith(vec3 N, vec3 V, vec3 L, float roughness); -vec3 fresnelSchlick(float cosTheta, vec3 F0); -vec3 fresnelSchlickRoughness(float cosTheta, vec3 F0, float roughness); -vec2 ParallaxMapping(vec2 texCoords, vec3 viewDir); - -// WARNING: There is some weird behaviour with this function, always returns black! -// Yes, I even tried: return texture(property.sampler, texCoord).rgb; -vec3 ComputeMaterialProperty(MaterialProperty property) -{ - vec3 result = vec3(0.0, 0.0, 0.0); - - if (property.useSampler == 1) result = texture(property.sampler, texCoord).rgb; - else result = property.color; - - return result; -} - -float DistributionGGX(vec3 N, vec3 H, float roughness) -{ - float a = roughness*roughness; - float a2 = a*a; - float NdotH = max(dot(N, H), 0.0); - float NdotH2 = NdotH*NdotH; - - float nom = a2; - float denom = (NdotH2*(a2 - 1.0) + 1.0); - denom = PI*denom*denom; - - return nom/denom; -} - -float GeometrySchlickGGX(float NdotV, float roughness) -{ - float r = (roughness + 1.0); - float k = r*r/8.0; - - float nom = NdotV; - float denom = NdotV*(1.0 - k) + k; - - return nom/denom; -} -float GeometrySmith(vec3 N, vec3 V, vec3 L, float roughness) -{ - float NdotV = max(dot(N, V), 0.0); - float NdotL = max(dot(N, L), 0.0); - float ggx2 = GeometrySchlickGGX(NdotV, roughness); - float ggx1 = GeometrySchlickGGX(NdotL, roughness); - - return ggx1*ggx2; -} - -vec3 fresnelSchlick(float cosTheta, vec3 F0) -{ - return F0 + (1.0 - F0)*pow(1.0 - cosTheta, 5.0); -} - -vec3 fresnelSchlickRoughness(float cosTheta, vec3 F0, float roughness) -{ - return F0 + (max(vec3(1.0 - roughness), F0) - F0)*pow(1.0 - cosTheta, 5.0); -} - -vec2 ParallaxMapping(vec2 texCoords, vec3 viewDir) -{ - // Calculate the number of depth layers and calculate the size of each layer - float numLayers = mix(MAX_DEPTH_LAYER, MIN_DEPTH_LAYER, abs(dot(vec3(0.0, 0.0, 1.0), viewDir))); - float layerDepth = 1.0/numLayers; - - // Calculate depth of current layer - float currentLayerDepth = 0.0; - - // Calculate the amount to shift the texture coordinates per layer (from vector P) - // Note: height amount is stored in height material attribute color R channel (sampler use is independent) - vec2 P = viewDir.xy*height.color.r; - vec2 deltaTexCoords = P/numLayers; - - // Store initial texture coordinates and depth values - vec2 currentTexCoords = texCoords; - float currentDepthMapValue = texture(height.sampler, currentTexCoords).r; - - while (currentLayerDepth < currentDepthMapValue) - { - // Shift texture coordinates along direction of P - currentTexCoords -= deltaTexCoords; - - // Get depth map value at current texture coordinates - currentDepthMapValue = texture(height.sampler, currentTexCoords).r; - - // Get depth of next layer - currentLayerDepth += layerDepth; - } - - // Get texture coordinates before collision (reverse operations) - vec2 prevTexCoords = currentTexCoords + deltaTexCoords; - - // Get depth after and before collision for linear interpolation - float afterDepth = currentDepthMapValue - currentLayerDepth; - float beforeDepth = texture(height.sampler, prevTexCoords).r - currentLayerDepth + layerDepth; - - // Interpolation of texture coordinates - float weight = afterDepth/(afterDepth - beforeDepth); - vec2 finalTexCoords = prevTexCoords*weight + currentTexCoords*(1.0 - weight); - - return finalTexCoords; -} - -void main() -{ - // Calculate TBN and RM matrices - mat3 TBN = transpose(mat3(fragTangent, fragBinormal, fragNormal)); - - // Calculate lighting required attributes - vec3 normal = normalize(fragNormal); - vec3 view = normalize(viewPos - fragPosition); - vec3 refl = reflect(-view, normal); - - // Check if parallax mapping is enabled and calculate texture coordinates to use based on height map - // NOTE: remember that 'texCoord' variable must be assigned before calling any ComputeMaterialProperty() function - if (height.useSampler == 1) texCoord = ParallaxMapping(fragTexCoord, view); - else texCoord = fragTexCoord; // Use default texture coordinates - - // Fetch material values from texture sampler or color attributes - vec3 color = texture(albedo.sampler, texCoord).rgb; //ComputeMaterialProperty(albedo); - vec3 metal = texture(metalness.sampler, texCoord).rgb; //ComputeMaterialProperty(metalness); - vec3 rough = texture(roughness.sampler, texCoord).rgb; //ComputeMaterialProperty(roughness); - vec3 emiss = texture(emission.sampler, texCoord).rgb; //ComputeMaterialProperty(emission); - vec3 ao = texture(occlusion.sampler, texCoord).rgb; //ComputeMaterialProperty(occlusion); - - // Check if normal mapping is enabled - if (normals.useSampler == 1) - { - // Fetch normal map color and transform lighting values to tangent space - normal = texture(normals.sampler, texCoord).rgb; //ComputeMaterialProperty(normals); - normal = normalize(normal*2.0 - 1.0); - normal = normalize(normal*TBN); - - // Convert tangent space normal to world space due to cubemap reflection calculations - refl = normalize(reflect(-view, normal)); - } - - // Calculate reflectance at normal incidence - vec3 F0 = vec3(0.04); - F0 = mix(F0, color, metal.r); - - // Calculate lighting for all lights - vec3 Lo = vec3(0.0); - vec3 lightDot = vec3(0.0); - - for (int i = 0; i < MAX_LIGHTS; i++) - { - if (lights[i].enabled == 1) - { - // Calculate per-light radiance - vec3 light = vec3(0.0); - vec3 radiance = lights[i].color.rgb; - if (lights[i].type == LIGHT_DIRECTIONAL) light = -normalize(lights[i].target - lights[i].position); - else if (lights[i].type == LIGHT_POINT) - { - light = normalize(lights[i].position - fragPosition); - float distance = length(lights[i].position - fragPosition); - float attenuation = 1.0/(distance*distance); - radiance *= attenuation; - } - - // Cook-torrance BRDF - vec3 high = normalize(view + light); - float NDF = DistributionGGX(normal, high, rough.r); - float G = GeometrySmith(normal, view, light, rough.r); - vec3 F = fresnelSchlick(max(dot(high, view), 0.0), F0); - vec3 nominator = NDF*G*F; - float denominator = 4*max(dot(normal, view), 0.0)*max(dot(normal, light), 0.0) + 0.001; - vec3 brdf = nominator/denominator; - - // Store to kS the fresnel value and calculate energy conservation - vec3 kS = F; - vec3 kD = vec3(1.0) - kS; - - // Multiply kD by the inverse metalness such that only non-metals have diffuse lighting - kD *= 1.0 - metal.r; - - // Scale light by dot product between normal and light direction - float NdotL = max(dot(normal, light), 0.0); - - // Add to outgoing radiance Lo - // Note: BRDF is already multiplied by the Fresnel so it doesn't need to be multiplied again - Lo += (kD*color/PI + brdf)*radiance*NdotL*lights[i].color.a; - lightDot += radiance*NdotL + brdf*lights[i].color.a; - } - } - - // Calculate ambient lighting using IBL - vec3 F = fresnelSchlickRoughness(max(dot(normal, view), 0.0), F0, rough.r); - vec3 kS = F; - vec3 kD = 1.0 - kS; - kD *= 1.0 - metal.r; - - // Calculate indirect diffuse - vec3 irradiance = texture(irradianceMap, fragNormal).rgb; - vec3 diffuse = color*irradiance; - - // Sample both the prefilter map and the BRDF lut and combine them together as per the Split-Sum approximation - vec3 prefilterColor = textureLod(prefilterMap, refl, rough.r*MAX_REFLECTION_LOD).rgb; - vec2 brdf = texture(brdfLUT, vec2(max(dot(normal, view), 0.0), rough.r)).rg; - vec3 reflection = prefilterColor*(F*brdf.x + brdf.y); - - // Calculate final lighting - vec3 ambient = (kD*diffuse + reflection)*ao; - - // Calculate fragment color based on render mode - vec3 fragmentColor = ambient + Lo + emiss; // Physically Based Rendering - - if (renderMode == 1) fragmentColor = color; // Albedo - else if (renderMode == 2) fragmentColor = normal; // Normals - else if (renderMode == 3) fragmentColor = metal; // Metalness - else if (renderMode == 4) fragmentColor = rough; // Roughness - else if (renderMode == 5) fragmentColor = ao; // Ambient Occlusion - else if (renderMode == 6) fragmentColor = emiss; // Emission - else if (renderMode == 7) fragmentColor = lightDot; // Lighting - else if (renderMode == 8) fragmentColor = kS; // Fresnel - else if (renderMode == 9) fragmentColor = irradiance; // Irradiance - else if (renderMode == 10) fragmentColor = reflection; // Reflection - - // Apply HDR tonemapping - fragmentColor = fragmentColor/(fragmentColor + vec3(1.0)); - - // Apply gamma correction - fragmentColor = pow(fragmentColor, vec3(1.0/2.2)); - - // Calculate final fragment color - finalColor = vec4(fragmentColor, 1.0); -} diff --git a/examples/models/resources/shaders/glsl330/pbr.vs b/examples/models/resources/shaders/glsl330/pbr.vs deleted file mode 100644 index 4729b0141..000000000 --- a/examples/models/resources/shaders/glsl330/pbr.vs +++ /dev/null @@ -1,41 +0,0 @@ -#version 330 - -// Input vertex attributes -in vec3 vertexPosition; -in vec2 vertexTexCoord; -in vec3 vertexNormal; -in vec4 vertexTangent; - -// Input uniform values -uniform mat4 mvp; -uniform mat4 matModel; - -// Output vertex attributes (to fragment shader) -out vec3 fragPosition; -out vec2 fragTexCoord; -out vec3 fragNormal; -out vec3 fragTangent; -out vec3 fragBinormal; - -void main() -{ - // Calculate binormal from vertex normal and tangent - vec3 vertexBinormal = cross(vertexNormal, vec3(vertexTangent)); - - // Calculate fragment normal based on normal transformations - mat3 normalMatrix = transpose(inverse(mat3(matModel))); - - // Calculate fragment position based on model transformations - fragPosition = vec3(matModel*vec4(vertexPosition, 1.0)); - - // Send vertex attributes to fragment shader - fragTexCoord = vertexTexCoord; - fragNormal = normalize(normalMatrix*vertexNormal); - fragTangent = normalize(normalMatrix*vec3(vertexTangent)); - fragTangent = normalize(fragTangent - dot(fragTangent, fragNormal)*fragNormal); - fragBinormal = normalize(normalMatrix*vertexBinormal); - fragBinormal = cross(fragNormal, fragTangent); - - // Calculate final vertex position - gl_Position = mvp*vec4(vertexPosition, 1.0); -} \ No newline at end of file diff --git a/examples/models/resources/shaders/glsl330/prefilter.fs b/examples/models/resources/shaders/glsl330/prefilter.fs deleted file mode 100644 index 3ea694f95..000000000 --- a/examples/models/resources/shaders/glsl330/prefilter.fs +++ /dev/null @@ -1,113 +0,0 @@ -#version 330 - -#define MAX_SAMPLES 1024u -#define CUBEMAP_RESOLUTION 1024.0 - -// Input vertex attributes (from vertex shader) -in vec3 fragPosition; - -// Input uniform values -uniform samplerCube environmentMap; -uniform float roughness; - -// Constant values -const float PI = 3.14159265359; - -// Output fragment color -out vec4 finalColor; - -float DistributionGGX(vec3 N, vec3 H, float roughness); -float RadicalInverse_VdC(uint bits); -vec2 Hammersley(uint i, uint N); -vec3 ImportanceSampleGGX(vec2 Xi, vec3 N, float roughness); - -float DistributionGGX(vec3 N, vec3 H, float roughness) -{ - float a = roughness*roughness; - float a2 = a*a; - float NdotH = max(dot(N, H), 0.0); - float NdotH2 = NdotH*NdotH; - - float nom = a2; - float denom = (NdotH2*(a2 - 1.0) + 1.0); - denom = PI*denom*denom; - - return nom/denom; -} - -float RadicalInverse_VdC(uint bits) -{ - bits = (bits << 16u) | (bits >> 16u); - bits = ((bits & 0x55555555u) << 1u) | ((bits & 0xAAAAAAAAu) >> 1u); - bits = ((bits & 0x33333333u) << 2u) | ((bits & 0xCCCCCCCCu) >> 2u); - bits = ((bits & 0x0F0F0F0Fu) << 4u) | ((bits & 0xF0F0F0F0u) >> 4u); - bits = ((bits & 0x00FF00FFu) << 8u) | ((bits & 0xFF00FF00u) >> 8u); - return float(bits)*2.3283064365386963e-10; // / 0x100000000 -} - -vec2 Hammersley(uint i, uint N) -{ - return vec2(float(i)/float(N), RadicalInverse_VdC(i)); -} - -vec3 ImportanceSampleGGX(vec2 Xi, vec3 N, float roughness) -{ - float a = roughness*roughness; - float phi = 2.0*PI*Xi.x; - float cosTheta = sqrt((1.0 - Xi.y)/(1.0 + (a*a - 1.0)*Xi.y)); - float sinTheta = sqrt(1.0 - cosTheta*cosTheta); - - // Transform from spherical coordinates to cartesian coordinates (halfway vector) - vec3 H = vec3(cos(phi)*sinTheta, sin(phi)*sinTheta, cosTheta); - - // Transform from tangent space H vector to world space sample vector - vec3 up = ((abs(N.z) < 0.999) ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0)); - vec3 tangent = normalize(cross(up, N)); - vec3 bitangent = cross(N, tangent); - vec3 sampleVec = tangent*H.x + bitangent*H.y + N*H.z; - - return normalize(sampleVec); -} - -void main() -{ - // Make the simplyfying assumption that V equals R equals the normal - vec3 N = normalize(fragPosition); - vec3 R = N; - vec3 V = R; - - vec3 prefilteredColor = vec3(0.0); - float totalWeight = 0.0; - - for (uint i = 0u; i < MAX_SAMPLES; i++) - { - // Generate a sample vector that's biased towards the preferred alignment direction (importance sampling) - vec2 Xi = Hammersley(i, MAX_SAMPLES); - vec3 H = ImportanceSampleGGX(Xi, N, roughness); - vec3 L = normalize(2.0*dot(V, H)*H - V); - - float NdotL = max(dot(N, L), 0.0); - if(NdotL > 0.0) - { - // Sample from the environment's mip level based on roughness/pdf - float D = DistributionGGX(N, H, roughness); - float NdotH = max(dot(N, H), 0.0); - float HdotV = max(dot(H, V), 0.0); - float pdf = D*NdotH/(4.0*HdotV) + 0.0001; - - float resolution = CUBEMAP_RESOLUTION; - float saTexel = 4.0*PI/(6.0*resolution*resolution); - float saSample = 1.0/(float(MAX_SAMPLES)*pdf + 0.0001); - float mipLevel = ((roughness == 0.0) ? 0.0 : 0.5*log2(saSample/saTexel)); - - prefilteredColor += textureLod(environmentMap, L, mipLevel).rgb*NdotL; - totalWeight += NdotL; - } - } - - // Calculate prefilter average color - prefilteredColor = prefilteredColor/totalWeight; - - // Calculate final fragment color - finalColor = vec4(prefilteredColor, 1.0); -} diff --git a/examples/others/raylib_opengl_interop.c b/examples/others/raylib_opengl_interop.c index 2ecc637d5..695910839 100644 --- a/examples/others/raylib_opengl_interop.c +++ b/examples/others/raylib_opengl_interop.c @@ -24,8 +24,14 @@ ********************************************************************************************/ #include "raylib.h" + #include "rlgl.h" // Required for: rlDrawRenderBatchActive(), rlGetMatrixModelview(), rlGetMatrixProjection() -#include "glad.h" // Required for: OpenGL functionality +#if defined(__APPLE__) + #include // OpenGL 3 library for OSX + #include // OpenGL 3 extensions library for OSX +#else + #include "glad.h" // Required for: OpenGL functionality +#endif #include "raymath.h" // Required for: MatrixMultiply(), MatrixToFloat() #if defined(PLATFORM_DESKTOP) diff --git a/examples/shaders/resources/LICENSE.md b/examples/shaders/resources/LICENSE.md index b08a555ab..96458eca5 100644 --- a/examples/shaders/resources/LICENSE.md +++ b/examples/shaders/resources/LICENSE.md @@ -9,5 +9,3 @@ | raysan.png | [@raysan5](https://github.com/raysan5) | [CC0](https://creativecommons.org/publicdomain/zero/1.0/) | - | | space.png | ❔ | ❔ | - | | texel_checker.png | [@raysan5](https://github.com/raysan5) | [CC0](https://creativecommons.org/publicdomain/zero/1.0/) | Made with [UV Checker Map Maker](http://uvchecker.byvalle.com/) | -| egg.png | [@GoldenThumbs](https://github.com/GoldenThumbs) | -| torus.png | [@GoldenThumbs](https://github.com/GoldenThumbs) | diff --git a/examples/shaders/resources/egg.png b/examples/shaders/resources/egg.png deleted file mode 100644 index c85249523..000000000 Binary files a/examples/shaders/resources/egg.png and /dev/null differ diff --git a/examples/shaders/resources/shaders/glsl100/outline.fs b/examples/shaders/resources/shaders/glsl100/outline.fs index 67410b3a7..51b1f322a 100644 --- a/examples/shaders/resources/shaders/glsl100/outline.fs +++ b/examples/shaders/resources/shaders/glsl100/outline.fs @@ -9,27 +9,29 @@ varying vec4 fragColor; // Input uniform values uniform sampler2D texture0; uniform vec4 colDiffuse; -uniform vec2 texScale; -// Function for drawing outlines on alpha-blended textures -vec4 DrawOutline(sampler2D tex, vec2 uv, vec2 lineScale, vec3 lineCol) -{ - vec2 texelScale = 1.0 / lineScale; - vec4 center = texture2D(tex, uv); // We sample the center texel, (with all color data) - // Next we sample four corner texels, but only for the alpha channel (this is for the outline) - vec4 corners; - corners.x = texture2D(tex, uv+vec2( texelScale.x, texelScale.y)).a; - corners.y = texture2D(tex, uv+vec2( texelScale.x,-texelScale.y)).a; - corners.z = texture2D(tex, uv+vec2(-texelScale.x, texelScale.y)).a; - corners.w = texture2D(tex, uv+vec2(-texelScale.x,-texelScale.y)).a; - - float outline = min(dot(corners, vec4(1.0)), 1.0); - vec4 col = mix(vec4(0.0), vec4(lineCol, 1.0), outline); - col = mix(col, center, center.a); - return col; -} +uniform vec2 textureSize; +uniform float outlineSize; +uniform vec4 outlineColor; + +// Output fragment color +out vec4 finalColor; void main() { - gl_FragColor = DrawOutline(texture0, fragTexCoord, texScale, vec3(0.0)); + vec4 texel = texture2D(texture0, fragTexCoord); // Get texel color + vec2 texelScale = vec2(0.0); + texelScale.x = outlineSize/textureSize.x; + texelScale.y = outlineSize/textureSize.y; + + // We sample four corner texels, but only for the alpha channel (this is for the outline) + vec4 corners = vec4(0.0); + corners.x = texture2D(texture0, fragTexCoord + vec2(texelScale.x, texelScale.y)).a; + corners.y = texture2D(texture0, fragTexCoord + vec2(texelScale.x, -texelScale.y)).a; + corners.z = texture2D(texture0, fragTexCoord + vec2(-texelScale.x, texelScale.y)).a; + corners.w = texture2D(texture0, fragTexCoord + vec2(-texelScale.x, -texelScale.y)).a; + + float outline = min(dot(corners, vec4(1.0)), 1.0); + vec4 color = mix(vec4(0.0), outlineColor, outline); + gl_FragColor = mix(color, texel, texel.a); } \ No newline at end of file diff --git a/examples/shaders/resources/shaders/glsl330/outline.fs b/examples/shaders/resources/shaders/glsl330/outline.fs index c1be1b5de..804a1a597 100644 --- a/examples/shaders/resources/shaders/glsl330/outline.fs +++ b/examples/shaders/resources/shaders/glsl330/outline.fs @@ -7,30 +7,29 @@ in vec4 fragColor; // Input uniform values uniform sampler2D texture0; uniform vec4 colDiffuse; -uniform vec2 texScale; + +uniform vec2 textureSize; +uniform float outlineSize; +uniform vec4 outlineColor; // Output fragment color out vec4 finalColor; -// Function for drawing outlines on alpha-blended textures -vec4 DrawOutline(sampler2D tex, vec2 uv, vec2 lineScale, vec3 lineCol) -{ - vec2 texelScale = 1.0 / lineScale; - vec4 center = texture(tex, uv); // We sample the center texel, (with all color data) - // Next we sample four corner texels, but only for the alpha channel (this is for the outline) - vec4 corners; - corners.x = texture(tex, uv+vec2( texelScale.x, texelScale.y)).a; - corners.y = texture(tex, uv+vec2( texelScale.x,-texelScale.y)).a; - corners.z = texture(tex, uv+vec2(-texelScale.x, texelScale.y)).a; - corners.w = texture(tex, uv+vec2(-texelScale.x,-texelScale.y)).a; - - float outline = min(dot(corners, vec4(1.0)), 1.0); - vec4 col = mix(vec4(0.0), vec4(lineCol, 1.0), outline); - col = mix(col, center, center.a); - return col; -} - void main() { - finalColor = DrawOutline(texture0, fragTexCoord, texScale, vec3(0.0)); + vec4 texel = texture(texture0, fragTexCoord); // Get texel color + vec2 texelScale = vec2(0.0); + texelScale.x = outlineSize/textureSize.x; + texelScale.y = outlineSize/textureSize.y; + + // We sample four corner texels, but only for the alpha channel (this is for the outline) + vec4 corners = vec4(0.0); + corners.x = texture(texture0, fragTexCoord + vec2(texelScale.x, texelScale.y)).a; + corners.y = texture(texture0, fragTexCoord + vec2(texelScale.x, -texelScale.y)).a; + corners.z = texture(texture0, fragTexCoord + vec2(-texelScale.x, texelScale.y)).a; + corners.w = texture(texture0, fragTexCoord + vec2(-texelScale.x, -texelScale.y)).a; + + float outline = min(dot(corners, vec4(1.0)), 1.0); + vec4 color = mix(vec4(0.0), outlineColor, outline); + finalColor = mix(color, texel, texel.a); } \ No newline at end of file diff --git a/examples/shaders/resources/torus.png b/examples/shaders/resources/torus.png deleted file mode 100644 index 399d78257..000000000 Binary files a/examples/shaders/resources/torus.png and /dev/null differ diff --git a/examples/shaders/shaders_fog.png b/examples/shaders/shaders_fog.png index 52008e8a1..1be65217d 100644 Binary files a/examples/shaders/shaders_fog.png and b/examples/shaders/shaders_fog.png differ diff --git a/examples/shaders/shaders_shapes_outline.c b/examples/shaders/shaders_texture_outline.c similarity index 63% rename from examples/shaders/shaders_shapes_outline.c rename to examples/shaders/shaders_texture_outline.c index 30194c4b7..c40abf950 100644 --- a/examples/shaders/shaders_shapes_outline.c +++ b/examples/shaders/shaders_texture_outline.c @@ -5,12 +5,10 @@ * NOTE: This example requires raylib OpenGL 3.3 or ES2 versions for shaders support, * OpenGL 1.1 does not support shaders, recompile raylib to OpenGL 3.3 version. * -* NOTE: Shaders used in this example are #version 330 (OpenGL 3.3). -* * This example has been created using raylib 3.8 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * -* Example contributed by Samuel Skiff (@GoldenThumbs) +* Example contributed by Samuel Skiff (@GoldenThumbs) and reviewed by Ramon Santamaria (@raysan5) * * Copyright (c) 2021 Samuel SKiff (@GoldenThumbs) and Ramon Santamaria (@raysan5) * @@ -33,13 +31,23 @@ int main(void) InitWindow(screenWidth, screenHeight, "raylib [shaders] example - Apply an outline to a texture"); - Texture2D egg = LoadTexture("resources/egg.png"); - Texture2D torus = LoadTexture("resources/torus.png"); + Texture2D texture = LoadTexture("resources/fudesumi.png"); + Shader shdrOutline = LoadShader(0, TextFormat("resources/shaders/glsl%i/outline.fs", GLSL_VERSION)); - float outlineScale = 16.0f; - float textureScale[2] = { 16.0f*4, 16.0f*4 }; - SetShaderValue(shdrOutline, GetShaderLocation(shdrOutline, "texScale"), textureScale, SHADER_UNIFORM_VEC2); + float outlineSize = 2.0f; + float outlineColor[4] = { 1.0f, 0.0f, 0.0f, 1.0f }; // Normalized RED color + float textureSize[2] = { (float)texture.width, (float)texture.height }; + + // Get shader locations + int outlineSizeLoc = GetShaderLocation(shdrOutline, "outlineSize"); + int outlineColorLoc = GetShaderLocation(shdrOutline, "outlineColor"); + int textureSizeLoc = GetShaderLocation(shdrOutline, "textureSize"); + + // Set shader values (they can be changed later) + SetShaderValue(shdrOutline, outlineSizeLoc, &outlineSize, SHADER_UNIFORM_FLOAT); + SetShaderValue(shdrOutline, outlineColorLoc, outlineColor, SHADER_UNIFORM_VEC4); + SetShaderValue(shdrOutline, textureSizeLoc, textureSize, SHADER_UNIFORM_VEC2); SetTargetFPS(60); // Set our game to run at 60 frames-per-second //-------------------------------------------------------------------------------------- @@ -49,7 +57,10 @@ int main(void) { // Update //---------------------------------------------------------------------------------- - // TODO: Update your variables here + outlineSize += GetMouseWheelMove(); + if (outlineSize < 1.0f) outlineSize = 1.0f; + + SetShaderValue(shdrOutline, outlineSizeLoc, &outlineSize, SHADER_UNIFORM_FLOAT); //---------------------------------------------------------------------------------- // Draw @@ -59,11 +70,14 @@ int main(void) ClearBackground(RAYWHITE); BeginShaderMode(shdrOutline); - DrawTextureEx(egg, (Vector2){ 0, 230 }, 0.0, outlineScale, WHITE); - DrawTextureEx(torus, (Vector2){ 544, 230 }, 0.0, outlineScale, WHITE); + + DrawTexture(texture, GetScreenWidth()/2 - texture.width/2, -30, WHITE); + EndShaderMode(); - DrawText("Shader-based outlines for textures", 190, 200, 20, LIGHTGRAY); + DrawText("Shader-based\ntexture\noutline", 10, 10, 20, GRAY); + + DrawText(TextFormat("Outline size: %i px", (int)outlineSize), 10, 120, 20, MAROON); DrawFPS(710, 10); @@ -73,8 +87,7 @@ int main(void) // De-Initialization //-------------------------------------------------------------------------------------- - UnloadTexture(egg); - UnloadTexture(torus); + UnloadTexture(texture); UnloadShader(shdrOutline); CloseWindow(); // Close window and OpenGL context diff --git a/examples/shaders/shaders_texture_outline.png b/examples/shaders/shaders_texture_outline.png new file mode 100644 index 000000000..85c69b180 Binary files /dev/null and b/examples/shaders/shaders_texture_outline.png differ diff --git a/examples/text/resources/shaders/glsl100/alpha_discard.fs b/examples/text/resources/shaders/glsl100/alpha_discard.fs new file mode 100644 index 000000000..a6b1e20cf --- /dev/null +++ b/examples/text/resources/shaders/glsl100/alpha_discard.fs @@ -0,0 +1,20 @@ +#version 100 + +precision mediump float; + +// Input vertex attributes (from vertex shader) +varying vec2 fragTexCoord; +varying vec4 fragColor; + +// Input uniform values +uniform sampler2D texture0; +uniform vec4 colDiffuse; + +void main() +{ + vec4 texelColor = texture2D(texture0, fragTexCoord); + + if (texelColor.a == 0.0) discard; + + gl_FragColor = texelColor*fragColor*colDiffuse; +} diff --git a/examples/text/resources/shaders/glsl100/sdf.fs b/examples/text/resources/shaders/glsl100/sdf.fs index b4214d92c..31323d96b 100644 --- a/examples/text/resources/shaders/glsl100/sdf.fs +++ b/examples/text/resources/shaders/glsl100/sdf.fs @@ -1,5 +1,7 @@ #version 100 +precision mediump float; + // Input vertex attributes (from vertex shader) varying vec2 fragTexCoord; varying vec4 fragColor; diff --git a/examples/textures/textures_poly.c b/examples/textures/textures_polygon.c similarity index 82% rename from examples/textures/textures_poly.c rename to examples/textures/textures_polygon.c index a2423a4bb..9d26505e2 100644 --- a/examples/textures/textures_poly.c +++ b/examples/textures/textures_polygon.c @@ -15,7 +15,7 @@ #include "raylib.h" #include "raymath.h" -#define MAX_POINTS 11 // 10 points and back to the start +#define MAX_POINTS 11 // 10 points and back to the start int main(void) { @@ -23,7 +23,10 @@ int main(void) //-------------------------------------------------------------------------------------- const int screenWidth = 800; const int screenHeight = 450; + + InitWindow(screenWidth, screenHeight, "raylib [textures] example - textured polygon"); + // Define texture coordinates to map our texture to poly Vector2 texcoords[MAX_POINTS] = { (Vector2){ 0.75f, 0.0f }, (Vector2){ 0.25f, 0.0f }, @@ -38,22 +41,24 @@ int main(void) (Vector2){ 0.75f, 0.0f} // Close the poly }; + // Define the base poly vertices from the UV's + // NOTE: They can be specified in any other way Vector2 points[MAX_POINTS] = { 0 }; - - // Create the poly coords from the UV's - // you don't have to do this you can specify - // them however you want for (int i = 0; i < MAX_POINTS; i++) { points[i].x = (texcoords[i].x - 0.5f)*256.0f; points[i].y = (texcoords[i].y - 0.5f)*256.0f; } + + // Define the vertices drawing position + // NOTE: Initially same as points but updated every frame + Vector2 positions[MAX_POINTS] = { 0 }; + for (int i = 0; i < MAX_POINTS; i++) positions[i] = points[i]; - InitWindow(screenWidth, screenHeight, "raylib [textures] example - textured polygon"); - + // Load texture to be mapped to poly Texture texture = LoadTexture("resources/cat.png"); - float angle = 0.0f; + float angle = 0.0f; // Rotation angle (in degrees) SetTargetFPS(60); // Set our game to run at 60 frames-per-second //-------------------------------------------------------------------------------------- @@ -63,10 +68,9 @@ int main(void) { // Update //---------------------------------------------------------------------------------- + // Update points rotation with an angle transform + // NOTE: Base points position are not modified angle++; - - Vector2 positions[MAX_POINTS] = { 0 }; - for (int i = 0; i < MAX_POINTS; i++) positions[i] = Vector2Rotate(points[i], angle*DEG2RAD); //---------------------------------------------------------------------------------- diff --git a/examples/textures/textures_poly.png b/examples/textures/textures_polygon.png similarity index 100% rename from examples/textures/textures_poly.png rename to examples/textures/textures_polygon.png diff --git a/projects/VS2019/examples/models_mesh_magicavoxel_loading.vcxproj b/projects/VS2019/examples/models_loading_vox.vcxproj similarity index 99% rename from projects/VS2019/examples/models_mesh_magicavoxel_loading.vcxproj rename to projects/VS2019/examples/models_loading_vox.vcxproj index f2e86c8a6..420e952ab 100644 --- a/projects/VS2019/examples/models_mesh_magicavoxel_loading.vcxproj +++ b/projects/VS2019/examples/models_loading_vox.vcxproj @@ -39,7 +39,7 @@ Win32Proj models_mesh_magicavoxel_loading 10.0 - models_mesh_magicavoxel_loading + models_loading_vox @@ -379,7 +379,7 @@ - + diff --git a/projects/VS2019/raylib.sln b/projects/VS2019/raylib.sln index f5a4180f2..696d66159 100644 --- a/projects/VS2019/raylib.sln +++ b/projects/VS2019/raylib.sln @@ -93,16 +93,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_first_person_maze", EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_geometric_shapes", "examples\models_geometric_shapes.vcxproj", "{14BA7F98-02CC-4648-9236-676BFF9458AF}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_gltf_animation", "examples\models_gltf_animation.vcxproj", "{FADC31C3-09AA-4DB4-A289-153482D10C09}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_gltf_model", "examples\models_gltf_model.vcxproj", "{F5FC9279-DE63-4EF3-B31F-CFCEF9B11F71}" -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_heightmap", "examples\models_heightmap.vcxproj", "{0859A973-E4FE-4688-8D16-0253163FDE24}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_loading", "examples\models_loading.vcxproj", "{F3412853-2B6A-4334-8CF2-B796CDAE0850}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_material_pbr", "examples\models_material_pbr.vcxproj", "{3A6C48C6-80AB-456F-A3A5-969930958971}" -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_mesh_generation", "examples\models_mesh_generation.vcxproj", "{BE097E8F-B6F3-45DC-8A27-E0EBC31AB912}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_mesh_picking", "examples\models_mesh_picking.vcxproj", "{D03F2C82-9553-4AFA-8F49-9234009122B6}" @@ -275,7 +269,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rlgl_standalone", "examples EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "core_split_screen", "examples\core_split_screen.vcxproj", "{946A1700-C7AA-46F0-AEF2-67C98B5722AC}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_mesh_magicavoxel_loading", "examples\models_mesh_magicavoxel_loading.vcxproj", "{2F1B955B-275E-4D8E-8864-06FEC44D7912}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "models_loading_vox", "examples\models_loading_vox.vcxproj", "{2F1B955B-275E-4D8E-8864-06FEC44D7912}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -895,38 +889,6 @@ Global {14BA7F98-02CC-4648-9236-676BFF9458AF}.Release|x64.Build.0 = Release|x64 {14BA7F98-02CC-4648-9236-676BFF9458AF}.Release|x86.ActiveCfg = Release|Win32 {14BA7F98-02CC-4648-9236-676BFF9458AF}.Release|x86.Build.0 = Release|Win32 - {FADC31C3-09AA-4DB4-A289-153482D10C09}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64 - {FADC31C3-09AA-4DB4-A289-153482D10C09}.Debug.DLL|x64.Build.0 = Debug.DLL|x64 - {FADC31C3-09AA-4DB4-A289-153482D10C09}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32 - {FADC31C3-09AA-4DB4-A289-153482D10C09}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32 - {FADC31C3-09AA-4DB4-A289-153482D10C09}.Debug|x64.ActiveCfg = Debug|x64 - {FADC31C3-09AA-4DB4-A289-153482D10C09}.Debug|x64.Build.0 = Debug|x64 - {FADC31C3-09AA-4DB4-A289-153482D10C09}.Debug|x86.ActiveCfg = Debug|Win32 - {FADC31C3-09AA-4DB4-A289-153482D10C09}.Debug|x86.Build.0 = Debug|Win32 - {FADC31C3-09AA-4DB4-A289-153482D10C09}.Release.DLL|x64.ActiveCfg = Release.DLL|x64 - {FADC31C3-09AA-4DB4-A289-153482D10C09}.Release.DLL|x64.Build.0 = Release.DLL|x64 - {FADC31C3-09AA-4DB4-A289-153482D10C09}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32 - {FADC31C3-09AA-4DB4-A289-153482D10C09}.Release.DLL|x86.Build.0 = Release.DLL|Win32 - {FADC31C3-09AA-4DB4-A289-153482D10C09}.Release|x64.ActiveCfg = Release|x64 - {FADC31C3-09AA-4DB4-A289-153482D10C09}.Release|x64.Build.0 = Release|x64 - {FADC31C3-09AA-4DB4-A289-153482D10C09}.Release|x86.ActiveCfg = Release|Win32 - {FADC31C3-09AA-4DB4-A289-153482D10C09}.Release|x86.Build.0 = Release|Win32 - {F5FC9279-DE63-4EF3-B31F-CFCEF9B11F71}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64 - {F5FC9279-DE63-4EF3-B31F-CFCEF9B11F71}.Debug.DLL|x64.Build.0 = Debug.DLL|x64 - {F5FC9279-DE63-4EF3-B31F-CFCEF9B11F71}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32 - {F5FC9279-DE63-4EF3-B31F-CFCEF9B11F71}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32 - {F5FC9279-DE63-4EF3-B31F-CFCEF9B11F71}.Debug|x64.ActiveCfg = Debug|x64 - {F5FC9279-DE63-4EF3-B31F-CFCEF9B11F71}.Debug|x64.Build.0 = Debug|x64 - {F5FC9279-DE63-4EF3-B31F-CFCEF9B11F71}.Debug|x86.ActiveCfg = Debug|Win32 - {F5FC9279-DE63-4EF3-B31F-CFCEF9B11F71}.Debug|x86.Build.0 = Debug|Win32 - {F5FC9279-DE63-4EF3-B31F-CFCEF9B11F71}.Release.DLL|x64.ActiveCfg = Release.DLL|x64 - {F5FC9279-DE63-4EF3-B31F-CFCEF9B11F71}.Release.DLL|x64.Build.0 = Release.DLL|x64 - {F5FC9279-DE63-4EF3-B31F-CFCEF9B11F71}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32 - {F5FC9279-DE63-4EF3-B31F-CFCEF9B11F71}.Release.DLL|x86.Build.0 = Release.DLL|Win32 - {F5FC9279-DE63-4EF3-B31F-CFCEF9B11F71}.Release|x64.ActiveCfg = Release|x64 - {F5FC9279-DE63-4EF3-B31F-CFCEF9B11F71}.Release|x64.Build.0 = Release|x64 - {F5FC9279-DE63-4EF3-B31F-CFCEF9B11F71}.Release|x86.ActiveCfg = Release|Win32 - {F5FC9279-DE63-4EF3-B31F-CFCEF9B11F71}.Release|x86.Build.0 = Release|Win32 {0859A973-E4FE-4688-8D16-0253163FDE24}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64 {0859A973-E4FE-4688-8D16-0253163FDE24}.Debug.DLL|x64.Build.0 = Debug.DLL|x64 {0859A973-E4FE-4688-8D16-0253163FDE24}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32 @@ -959,22 +921,6 @@ Global {F3412853-2B6A-4334-8CF2-B796CDAE0850}.Release|x64.Build.0 = Release|x64 {F3412853-2B6A-4334-8CF2-B796CDAE0850}.Release|x86.ActiveCfg = Release|Win32 {F3412853-2B6A-4334-8CF2-B796CDAE0850}.Release|x86.Build.0 = Release|Win32 - {3A6C48C6-80AB-456F-A3A5-969930958971}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64 - {3A6C48C6-80AB-456F-A3A5-969930958971}.Debug.DLL|x64.Build.0 = Debug.DLL|x64 - {3A6C48C6-80AB-456F-A3A5-969930958971}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32 - {3A6C48C6-80AB-456F-A3A5-969930958971}.Debug.DLL|x86.Build.0 = Debug.DLL|Win32 - {3A6C48C6-80AB-456F-A3A5-969930958971}.Debug|x64.ActiveCfg = Debug|x64 - {3A6C48C6-80AB-456F-A3A5-969930958971}.Debug|x64.Build.0 = Debug|x64 - {3A6C48C6-80AB-456F-A3A5-969930958971}.Debug|x86.ActiveCfg = Debug|Win32 - {3A6C48C6-80AB-456F-A3A5-969930958971}.Debug|x86.Build.0 = Debug|Win32 - {3A6C48C6-80AB-456F-A3A5-969930958971}.Release.DLL|x64.ActiveCfg = Release.DLL|x64 - {3A6C48C6-80AB-456F-A3A5-969930958971}.Release.DLL|x64.Build.0 = Release.DLL|x64 - {3A6C48C6-80AB-456F-A3A5-969930958971}.Release.DLL|x86.ActiveCfg = Release.DLL|Win32 - {3A6C48C6-80AB-456F-A3A5-969930958971}.Release.DLL|x86.Build.0 = Release.DLL|Win32 - {3A6C48C6-80AB-456F-A3A5-969930958971}.Release|x64.ActiveCfg = Release|x64 - {3A6C48C6-80AB-456F-A3A5-969930958971}.Release|x64.Build.0 = Release|x64 - {3A6C48C6-80AB-456F-A3A5-969930958971}.Release|x86.ActiveCfg = Release|Win32 - {3A6C48C6-80AB-456F-A3A5-969930958971}.Release|x86.Build.0 = Release|Win32 {BE097E8F-B6F3-45DC-8A27-E0EBC31AB912}.Debug.DLL|x64.ActiveCfg = Debug.DLL|x64 {BE097E8F-B6F3-45DC-8A27-E0EBC31AB912}.Debug.DLL|x64.Build.0 = Debug.DLL|x64 {BE097E8F-B6F3-45DC-8A27-E0EBC31AB912}.Debug.DLL|x86.ActiveCfg = Debug.DLL|Win32 @@ -2349,11 +2295,8 @@ Global {5317807F-61D4-4E0F-B6DC-2D9F12621ED9} = {8716DC0F-4FDE-4F57-8E25-5F78DFB80FE1} {CBD6C0F8-8200-4E9A-9D7C-6505A2AA4A62} = {AF5BEC5C-1F2B-4DA8-B12D-D09FE569237C} {14BA7F98-02CC-4648-9236-676BFF9458AF} = {AF5BEC5C-1F2B-4DA8-B12D-D09FE569237C} - {FADC31C3-09AA-4DB4-A289-153482D10C09} = {AF5BEC5C-1F2B-4DA8-B12D-D09FE569237C} - {F5FC9279-DE63-4EF3-B31F-CFCEF9B11F71} = {AF5BEC5C-1F2B-4DA8-B12D-D09FE569237C} {0859A973-E4FE-4688-8D16-0253163FDE24} = {AF5BEC5C-1F2B-4DA8-B12D-D09FE569237C} {F3412853-2B6A-4334-8CF2-B796CDAE0850} = {AF5BEC5C-1F2B-4DA8-B12D-D09FE569237C} - {3A6C48C6-80AB-456F-A3A5-969930958971} = {AF5BEC5C-1F2B-4DA8-B12D-D09FE569237C} {BE097E8F-B6F3-45DC-8A27-E0EBC31AB912} = {AF5BEC5C-1F2B-4DA8-B12D-D09FE569237C} {D03F2C82-9553-4AFA-8F49-9234009122B6} = {AF5BEC5C-1F2B-4DA8-B12D-D09FE569237C} {FE232CA5-6C0D-4ADF-9A21-775D4DC048D3} = {AF5BEC5C-1F2B-4DA8-B12D-D09FE569237C} diff --git a/projects/VSCode/.vscode/tasks.json b/projects/VSCode/.vscode/tasks.json index 989e13b0d..a610a248a 100644 --- a/projects/VSCode/.vscode/tasks.json +++ b/projects/VSCode/.vscode/tasks.json @@ -9,7 +9,9 @@ "command": "make", "args": [ "PLATFORM=PLATFORM_DESKTOP", - "BUILD_MODE=DEBUG" + "BUILD_MODE=DEBUG", + "PROJECT_NAME=${fileBasenameNoExtension}", + "OBJS=${fileBasenameNoExtension}.c" ], "windows": { "command": "C:/raylib/mingw/bin/mingw32-make.exe", @@ -42,6 +44,8 @@ "command": "make", "args": [ "PLATFORM=PLATFORM_DESKTOP", + "PROJECT_NAME=${fileBasenameNoExtension}", + "OBJS=${fileBasenameNoExtension}.c" ], "windows": { "command": "C:/raylib/mingw/bin/mingw32-make.exe", @@ -64,4 +68,4 @@ ] } ] -} +} \ No newline at end of file diff --git a/src/Makefile b/src/Makefile index 40ebfee0c..62b392abf 100644 --- a/src/Makefile +++ b/src/Makefile @@ -43,8 +43,8 @@ .PHONY: all clean install uninstall # Define required raylib variables -RAYLIB_VERSION = 3.8.1 -RAYLIB_API_VERSION = 381 +RAYLIB_VERSION = 4.0.0 +RAYLIB_API_VERSION = 400 # Define raylib source code path RAYLIB_SRC_PATH ?= ../src diff --git a/src/build.zig b/src/build.zig index 2c304a523..6bdae0f96 100644 --- a/src/build.zig +++ b/src/build.zig @@ -25,14 +25,16 @@ pub fn build(b: *std.build.Builder) void { raylib.addIncludeDir("external/glfw/include"); - raylib.addCSourceFile("rcore.c", raylib_flags); - raylib.addCSourceFile("rmodels.c", raylib_flags); - raylib.addCSourceFile("raudio.c", raylib_flags); - raylib.addCSourceFile("rshapes.c", raylib_flags); - raylib.addCSourceFile("rtext.c", raylib_flags); - raylib.addCSourceFile("rtextures.c", raylib_flags); - raylib.addCSourceFile("utils.c", raylib_flags); - raylib.addCSourceFile("rglfw.c", raylib_flags); + raylib.addCSourceFiles(&.{ + "raudio.c", + "rcore.c", + "rglfw.c", + "rmodels.c", + "rshapes.c", + "rtext.c", + "rtextures.c", + "utils.c", + }, raylib_flags); switch (raylib.target.toTarget().os.tag) { .windows => { diff --git a/src/config.h b/src/config.h index 931fdf5bb..aea7df783 100644 --- a/src/config.h +++ b/src/config.h @@ -84,8 +84,12 @@ //------------------------------------------------------------------------------------ // Module: rlgl - Configuration values //------------------------------------------------------------------------------------ + +// Enable OpenGL Debug Context (only available on OpenGL 4.3) +//#define RLGL_ENABLE_OPENGL_DEBUG_CONTEXT 1 + // Show OpenGL extensions and capabilities detailed logs on init -//#define RLGL_SHOW_GL_DETAILS_INFO 1 +//#define RLGL_SHOW_GL_DETAILS_INFO 1 //#define RL_DEFAULT_BATCH_BUFFER_ELEMENTS 4096 // Default internal render batch elements limits #define RL_DEFAULT_BATCH_BUFFERS 1 // Default number of batch buffers (multi-buffering) diff --git a/src/external/glad.h b/src/external/glad.h index c92e1845f..5ca3ead32 100644 --- a/src/external/glad.h +++ b/src/external/glad.h @@ -1,621 +1,301 @@ -/* +/** + * Loader generated by glad 2.0.0-beta on Sun Oct 17 18:39:09 2021 + * + * Generator: C/C++ + * Specification: gl + * Extensions: 110 + * + * APIs: + * - gl:core=4.3 + * + * Options: + * - ALIAS = False + * - DEBUG = False + * - HEADER_ONLY = True + * - LOADER = True + * - MX = False + * - MX_GLOBAL = False + * - ON_DEMAND = False + * + * Commandline: + * --api='gl:core=4.3' --extensions='GL_ARB_ES2_compatibility,GL_ARB_ES3_1_compatibility,GL_ARB_ES3_2_compatibility,GL_ARB_ES3_compatibility,GL_ARB_blend_func_extended,GL_ARB_buffer_storage,GL_ARB_clear_buffer_object,GL_ARB_clear_texture,GL_ARB_color_buffer_float,GL_ARB_compatibility,GL_ARB_compressed_texture_pixel_storage,GL_ARB_compute_shader,GL_ARB_compute_variable_group_size,GL_ARB_copy_buffer,GL_ARB_copy_image,GL_ARB_debug_output,GL_ARB_depth_buffer_float,GL_ARB_depth_clamp,GL_ARB_depth_texture,GL_ARB_direct_state_access,GL_ARB_draw_buffers,GL_ARB_draw_buffers_blend,GL_ARB_draw_elements_base_vertex,GL_ARB_draw_indirect,GL_ARB_draw_instanced,GL_ARB_enhanced_layouts,GL_ARB_explicit_attrib_location,GL_ARB_explicit_uniform_location,GL_ARB_fragment_coord_conventions,GL_ARB_fragment_layer_viewport,GL_ARB_fragment_program,GL_ARB_fragment_program_shadow,GL_ARB_fragment_shader,GL_ARB_fragment_shader_interlock,GL_ARB_framebuffer_no_attachments,GL_ARB_framebuffer_object,GL_ARB_framebuffer_sRGB,GL_ARB_geometry_shader4,GL_ARB_get_program_binary,GL_ARB_get_texture_sub_image,GL_ARB_gl_spirv,GL_ARB_gpu_shader5,GL_ARB_gpu_shader_fp64,GL_ARB_gpu_shader_int64,GL_ARB_half_float_pixel,GL_ARB_half_float_vertex,GL_ARB_instanced_arrays,GL_ARB_internalformat_query,GL_ARB_internalformat_query2,GL_ARB_map_buffer_range,GL_ARB_multi_bind,GL_ARB_multi_draw_indirect,GL_ARB_multisample,GL_ARB_multitexture,GL_ARB_occlusion_query,GL_ARB_occlusion_query2,GL_ARB_pipeline_statistics_query,GL_ARB_query_buffer_object,GL_ARB_sample_locations,GL_ARB_sample_shading,GL_ARB_seamless_cube_map,GL_ARB_seamless_cubemap_per_texture,GL_ARB_shader_atomic_counter_ops,GL_ARB_shader_atomic_counters,GL_ARB_shader_bit_encoding,GL_ARB_shader_clock,GL_ARB_shader_image_load_store,GL_ARB_shader_image_size,GL_ARB_shader_objects,GL_ARB_shader_storage_buffer_object,GL_ARB_shader_texture_lod,GL_ARB_shading_language_100,GL_ARB_shading_language_420pack,GL_ARB_shading_language_include,GL_ARB_shading_language_packing,GL_ARB_spirv_extensions,GL_ARB_tessellation_shader,GL_ARB_texture_border_clamp,GL_ARB_texture_buffer_object_rgb32,GL_ARB_texture_compression,GL_ARB_texture_cube_map,GL_ARB_texture_cube_map_array,GL_ARB_texture_env_add,GL_ARB_texture_filter_anisotropic,GL_ARB_texture_filter_minmax,GL_ARB_texture_float,GL_ARB_texture_mirror_clamp_to_edge,GL_ARB_texture_mirrored_repeat,GL_ARB_texture_multisample,GL_ARB_texture_non_power_of_two,GL_ARB_texture_rg,GL_ARB_texture_storage,GL_ARB_texture_swizzle,GL_ARB_texture_view,GL_ARB_timer_query,GL_ARB_transpose_matrix,GL_ARB_uniform_buffer_object,GL_ARB_vertex_array_bgra,GL_ARB_vertex_array_object,GL_ARB_vertex_attrib_binding,GL_ARB_vertex_buffer_object,GL_ARB_vertex_program,GL_ARB_vertex_shader,GL_EXT_fog_coord,GL_EXT_framebuffer_blit,GL_EXT_framebuffer_multisample,GL_EXT_framebuffer_object,GL_EXT_framebuffer_sRGB,GL_OES_compressed_paletted_texture,GL_OES_fixed_point' c --header-only --loader + * + * Online: + * http://glad.sh/#api=gl%3Acore%3D4.3&generator=c&options=HEADER_ONLY%2CLOADER + * + */ - OpenGL loader generated by glad 0.1.10a0 on Fri Jun 10 12:54:12 2016. - - Language/Generator: C/C++ - Specification: gl - APIs: gl=3.3 - Profile: core - Extensions: - GL_AMD_debug_output, GL_AMD_query_buffer_object, GL_ARB_ES2_compatibility, GL_ARB_ES3_compatibility, GL_ARB_buffer_storage, GL_ARB_compatibility, GL_ARB_compressed_texture_pixel_storage, GL_ARB_debug_output, GL_ARB_depth_buffer_float, GL_ARB_depth_clamp, GL_ARB_depth_texture, GL_ARB_draw_buffers, GL_ARB_draw_buffers_blend, GL_ARB_explicit_attrib_location, GL_ARB_explicit_uniform_location, GL_ARB_fragment_program, GL_ARB_fragment_shader, GL_ARB_framebuffer_object, GL_ARB_framebuffer_sRGB, GL_ARB_multisample, GL_ARB_sample_locations, GL_ARB_texture_compression, GL_ARB_texture_float, GL_ARB_texture_multisample, GL_ARB_texture_non_power_of_two, GL_ARB_texture_rg, GL_ARB_texture_swizzle, GL_ARB_uniform_buffer_object, GL_ARB_vertex_array_object, GL_ARB_vertex_attrib_binding, GL_ARB_vertex_buffer_object, GL_ARB_vertex_program, GL_ARB_vertex_shader, GL_ATI_element_array, GL_ATI_fragment_shader, GL_ATI_vertex_array_object, GL_EXT_blend_color, GL_EXT_blend_equation_separate, GL_EXT_blend_func_separate, GL_EXT_framebuffer_blit, GL_EXT_framebuffer_multisample, GL_EXT_framebuffer_multisample_blit_scaled, GL_EXT_framebuffer_object, GL_EXT_framebuffer_sRGB, GL_EXT_index_array_formats, GL_EXT_texture, GL_EXT_texture_compression_s3tc, GL_EXT_texture_sRGB, GL_EXT_texture_swizzle, GL_EXT_vertex_array, GL_EXT_vertex_shader - Loader: No - - Commandline: - --profile="core" --api="gl=3.3" --generator="c" --spec="gl" --no-loader --extensions="GL_AMD_debug_output,GL_AMD_query_buffer_object,GL_ARB_ES2_compatibility,GL_ARB_ES3_compatibility,GL_ARB_buffer_storage,GL_ARB_compatibility,GL_ARB_compressed_texture_pixel_storage,GL_ARB_debug_output,GL_ARB_depth_buffer_float,GL_ARB_depth_clamp,GL_ARB_depth_texture,GL_ARB_draw_buffers,GL_ARB_draw_buffers_blend,GL_ARB_explicit_attrib_location,GL_ARB_explicit_uniform_location,GL_ARB_fragment_program,GL_ARB_fragment_shader,GL_ARB_framebuffer_object,GL_ARB_framebuffer_sRGB,GL_ARB_multisample,GL_ARB_sample_locations,GL_ARB_texture_compression,GL_ARB_texture_float,GL_ARB_texture_multisample,GL_ARB_texture_non_power_of_two,GL_ARB_texture_rg,GL_ARB_texture_swizzle,GL_ARB_uniform_buffer_object,GL_ARB_vertex_array_object,GL_ARB_vertex_attrib_binding,GL_ARB_vertex_buffer_object,GL_ARB_vertex_program,GL_ARB_vertex_shader,GL_ATI_element_array,GL_ATI_fragment_shader,GL_ATI_vertex_array_object,GL_EXT_blend_color,GL_EXT_blend_equation_separate,GL_EXT_blend_func_separate,GL_EXT_framebuffer_blit,GL_EXT_framebuffer_multisample,GL_EXT_framebuffer_multisample_blit_scaled,GL_EXT_framebuffer_object,GL_EXT_framebuffer_sRGB,GL_EXT_index_array_formats,GL_EXT_texture,GL_EXT_texture_compression_s3tc,GL_EXT_texture_sRGB,GL_EXT_texture_swizzle,GL_EXT_vertex_array,GL_EXT_vertex_shader" - Online: - http://glad.dav1d.de/#profile=core&language=c&specification=gl&api=gl%3D3.3&extensions=GL_AMD_debug_output&extensions=GL_AMD_query_buffer_object&extensions=GL_ARB_ES2_compatibility&extensions=GL_ARB_ES3_compatibility&extensions=GL_ARB_buffer_storage&extensions=GL_ARB_compatibility&extensions=GL_ARB_compressed_texture_pixel_storage&extensions=GL_ARB_debug_output&extensions=GL_ARB_depth_buffer_float&extensions=GL_ARB_depth_clamp&extensions=GL_ARB_depth_texture&extensions=GL_ARB_draw_buffers&extensions=GL_ARB_draw_buffers_blend&extensions=GL_ARB_explicit_attrib_location&extensions=GL_ARB_explicit_uniform_location&extensions=GL_ARB_fragment_program&extensions=GL_ARB_fragment_shader&extensions=GL_ARB_framebuffer_object&extensions=GL_ARB_framebuffer_sRGB&extensions=GL_ARB_multisample&extensions=GL_ARB_sample_locations&extensions=GL_ARB_texture_compression&extensions=GL_ARB_texture_float&extensions=GL_ARB_texture_multisample&extensions=GL_ARB_texture_non_power_of_two&extensions=GL_ARB_texture_rg&extensions=GL_ARB_texture_swizzle&extensions=GL_ARB_uniform_buffer_object&extensions=GL_ARB_vertex_array_object&extensions=GL_ARB_vertex_attrib_binding&extensions=GL_ARB_vertex_buffer_object&extensions=GL_ARB_vertex_program&extensions=GL_ARB_vertex_shader&extensions=GL_ATI_element_array&extensions=GL_ATI_fragment_shader&extensions=GL_ATI_vertex_array_object&extensions=GL_EXT_blend_color&extensions=GL_EXT_blend_equation_separate&extensions=GL_EXT_blend_func_separate&extensions=GL_EXT_framebuffer_blit&extensions=GL_EXT_framebuffer_multisample&extensions=GL_EXT_framebuffer_multisample_blit_scaled&extensions=GL_EXT_framebuffer_object&extensions=GL_EXT_framebuffer_sRGB&extensions=GL_EXT_index_array_formats&extensions=GL_EXT_texture&extensions=GL_EXT_texture_compression_s3tc&extensions=GL_EXT_texture_sRGB&extensions=GL_EXT_texture_swizzle&extensions=GL_EXT_vertex_array&extensions=GL_EXT_vertex_shader -*/ - - -#ifndef __glad_h_ -#define __glad_h_ +#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 header already included, remove this include, glad already provides it + #error OpenGL (gl.h) header already included (API: gl), remove previous include! #endif -#define __gl_h_ - -#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN 1 +#define __gl_h_ 1 +#ifdef __gl3_h_ + #error OpenGL (gl3.h) header already included (API: gl), remove previous include! #endif -//#include -#define APIENTRY __stdcall // RAY: Added +#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 -#ifndef APIENTRY -#define APIENTRY -#endif -#ifndef APIENTRYP -#define APIENTRYP APIENTRY * -#endif - -// RAY: Added -#ifndef GLAD_REALLOC - #define GLAD_REALLOC(n,sz) realloc(n,sz) -#endif -#ifndef GLAD_FREE - #define GLAD_FREE(p) free(p) -#endif +#define GLAD_GL +#define GLAD_OPTION_GL_HEADER_ONLY +#define GLAD_OPTION_GL_LOADER #ifdef __cplusplus extern "C" { #endif -struct gladGLversionStruct { - int major; - int minor; -}; +#ifndef GLAD_PLATFORM_H_ +#define GLAD_PLATFORM_H_ -typedef void* (* GLADloadproc)(const char *name); +#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 -# if defined(GLAD_GLAPI_EXPORT) -# if defined(WIN32) || defined(__CYGWIN__) -# if defined(GLAD_GLAPI_EXPORT_BUILD) -# if defined(__GNUC__) -# define GLAPI __attribute__ ((dllexport)) extern -# else -# define GLAPI __declspec(dllexport) extern -# endif -# else -# if defined(__GNUC__) -# define GLAPI __attribute__ ((dllimport)) extern -# else -# define GLAPI __declspec(dllimport) extern -# endif -# endif -# elif defined(__GNUC__) && defined(GLAD_GLAPI_EXPORT_BUILD) -# define GLAPI __attribute__ ((visibility ("default"))) extern -# else -# define GLAPI extern -# endif -# else -# define GLAPI extern -# endif +#define GLAPI GLAD_API_CALL #endif -GLAPI struct gladGLversionStruct GLVersion; -GLAPI int gladLoadGLLoader(GLADloadproc); +#ifndef GLAPIENTRY +#define GLAPIENTRY GLAD_API_PTR +#endif -#include -//#include // RAY: Not required -#ifndef GLEXT_64_TYPES_DEFINED -/* This code block is duplicated in glxext.h, so must be protected */ -#define GLEXT_64_TYPES_DEFINED -/* Define int32_t, int64_t, and uint64_t types for UST/MSC */ -/* (as used in the GL_EXT_timer_query extension). */ -#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L -#include -#elif defined(__sun__) || defined(__digital__) -#include -#if defined(__STDC__) -#if defined(__arch64__) || defined(_LP64) -typedef long int int64_t; -typedef unsigned long int uint64_t; -#else -typedef long long int int64_t; -typedef unsigned long long int uint64_t; -#endif /* __arch64__ */ -#endif /* __STDC__ */ -#elif defined( __VMS ) || defined(__sgi) -#include -#elif defined(__SCO__) || defined(__USLC__) -#include -#elif defined(__UNIXOS2__) || defined(__SOL64__) -typedef long int int32_t; -typedef long long int int64_t; -typedef unsigned long long int uint64_t; -#elif defined(_WIN32) && defined(__GNUC__) -#include -#elif defined(_WIN32) -typedef __int32 int32_t; -typedef __int64 int64_t; -typedef unsigned __int64 uint64_t; -#else -/* Fallback if nothing above works */ -#include -#endif -#endif -typedef unsigned int GLenum; -typedef unsigned char GLboolean; -typedef unsigned int GLbitfield; -typedef void GLvoid; -typedef signed char GLbyte; -typedef short GLshort; -typedef int GLint; -typedef int GLclampx; -typedef unsigned char GLubyte; -typedef unsigned short GLushort; -typedef unsigned int GLuint; -typedef int GLsizei; -typedef float GLfloat; -typedef float GLclampf; -typedef double GLdouble; -typedef double GLclampd; -typedef void *GLeglImageOES; -typedef char GLchar; -typedef char GLcharARB; -#ifdef __APPLE__ -typedef void *GLhandleARB; -#else -typedef unsigned int GLhandleARB; -#endif -typedef unsigned short GLhalfARB; -typedef unsigned short GLhalf; -typedef GLint GLfixed; -typedef ptrdiff_t GLintptr; -typedef ptrdiff_t GLsizeiptr; -typedef int64_t GLint64; -typedef uint64_t GLuint64; -typedef ptrdiff_t GLintptrARB; -typedef ptrdiff_t GLsizeiptrARB; -typedef int64_t GLint64EXT; -typedef uint64_t GLuint64EXT; -typedef struct __GLsync *GLsync; -struct _cl_context; -struct _cl_event; -typedef void (APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); -typedef void (APIENTRY *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); -typedef void (APIENTRY *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam); -typedef void (APIENTRY *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,void *userParam); -typedef unsigned short GLhalfNV; -typedef GLintptr GLvdpauSurfaceNV; -#define GL_DEPTH_BUFFER_BIT 0x00000100 -#define GL_STENCIL_BUFFER_BIT 0x00000400 -#define GL_COLOR_BUFFER_BIT 0x00004000 -#define GL_FALSE 0 -#define GL_TRUE 1 -#define GL_POINTS 0x0000 -#define GL_LINES 0x0001 -#define GL_LINE_LOOP 0x0002 -#define GL_LINE_STRIP 0x0003 -#define GL_TRIANGLES 0x0004 -#define GL_TRIANGLE_STRIP 0x0005 -#define GL_TRIANGLE_FAN 0x0006 -#define GL_NEVER 0x0200 -#define GL_LESS 0x0201 -#define GL_EQUAL 0x0202 -#define GL_LEQUAL 0x0203 -#define GL_GREATER 0x0204 -#define GL_NOTEQUAL 0x0205 -#define GL_GEQUAL 0x0206 -#define GL_ALWAYS 0x0207 -#define GL_ZERO 0 -#define GL_ONE 1 -#define GL_SRC_COLOR 0x0300 -#define GL_ONE_MINUS_SRC_COLOR 0x0301 -#define GL_SRC_ALPHA 0x0302 -#define GL_ONE_MINUS_SRC_ALPHA 0x0303 -#define GL_DST_ALPHA 0x0304 -#define GL_ONE_MINUS_DST_ALPHA 0x0305 -#define GL_DST_COLOR 0x0306 -#define GL_ONE_MINUS_DST_COLOR 0x0307 -#define GL_SRC_ALPHA_SATURATE 0x0308 -#define GL_NONE 0 -#define GL_FRONT_LEFT 0x0400 -#define GL_FRONT_RIGHT 0x0401 -#define GL_BACK_LEFT 0x0402 -#define GL_BACK_RIGHT 0x0403 -#define GL_FRONT 0x0404 -#define GL_BACK 0x0405 -#define GL_LEFT 0x0406 -#define GL_RIGHT 0x0407 -#define GL_FRONT_AND_BACK 0x0408 -#define GL_NO_ERROR 0 -#define GL_INVALID_ENUM 0x0500 -#define GL_INVALID_VALUE 0x0501 -#define GL_INVALID_OPERATION 0x0502 -#define GL_OUT_OF_MEMORY 0x0505 -#define GL_CW 0x0900 -#define GL_CCW 0x0901 -#define GL_POINT_SIZE 0x0B11 -#define GL_POINT_SIZE_RANGE 0x0B12 -#define GL_POINT_SIZE_GRANULARITY 0x0B13 -#define GL_LINE_SMOOTH 0x0B20 -#define GL_LINE_WIDTH 0x0B21 -#define GL_LINE_WIDTH_RANGE 0x0B22 -#define GL_LINE_WIDTH_GRANULARITY 0x0B23 -#define GL_POLYGON_MODE 0x0B40 -#define GL_POLYGON_SMOOTH 0x0B41 -#define GL_CULL_FACE 0x0B44 -#define GL_CULL_FACE_MODE 0x0B45 -#define GL_FRONT_FACE 0x0B46 -#define GL_DEPTH_RANGE 0x0B70 -#define GL_DEPTH_TEST 0x0B71 -#define GL_DEPTH_WRITEMASK 0x0B72 -#define GL_DEPTH_CLEAR_VALUE 0x0B73 -#define GL_DEPTH_FUNC 0x0B74 -#define GL_STENCIL_TEST 0x0B90 -#define GL_STENCIL_CLEAR_VALUE 0x0B91 -#define GL_STENCIL_FUNC 0x0B92 -#define GL_STENCIL_VALUE_MASK 0x0B93 -#define GL_STENCIL_FAIL 0x0B94 -#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 -#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 -#define GL_STENCIL_REF 0x0B97 -#define GL_STENCIL_WRITEMASK 0x0B98 -#define GL_VIEWPORT 0x0BA2 -#define GL_DITHER 0x0BD0 -#define GL_BLEND_DST 0x0BE0 -#define GL_BLEND_SRC 0x0BE1 -#define GL_BLEND 0x0BE2 -#define GL_LOGIC_OP_MODE 0x0BF0 -#define GL_COLOR_LOGIC_OP 0x0BF2 -#define GL_DRAW_BUFFER 0x0C01 -#define GL_READ_BUFFER 0x0C02 -#define GL_SCISSOR_BOX 0x0C10 -#define GL_SCISSOR_TEST 0x0C11 -#define GL_COLOR_CLEAR_VALUE 0x0C22 -#define GL_COLOR_WRITEMASK 0x0C23 -#define GL_DOUBLEBUFFER 0x0C32 -#define GL_STEREO 0x0C33 -#define GL_LINE_SMOOTH_HINT 0x0C52 -#define GL_POLYGON_SMOOTH_HINT 0x0C53 -#define GL_UNPACK_SWAP_BYTES 0x0CF0 -#define GL_UNPACK_LSB_FIRST 0x0CF1 -#define GL_UNPACK_ROW_LENGTH 0x0CF2 -#define GL_UNPACK_SKIP_ROWS 0x0CF3 -#define GL_UNPACK_SKIP_PIXELS 0x0CF4 -#define GL_UNPACK_ALIGNMENT 0x0CF5 -#define GL_PACK_SWAP_BYTES 0x0D00 -#define GL_PACK_LSB_FIRST 0x0D01 -#define GL_PACK_ROW_LENGTH 0x0D02 -#define GL_PACK_SKIP_ROWS 0x0D03 -#define GL_PACK_SKIP_PIXELS 0x0D04 -#define GL_PACK_ALIGNMENT 0x0D05 -#define GL_MAX_TEXTURE_SIZE 0x0D33 -#define GL_MAX_VIEWPORT_DIMS 0x0D3A -#define GL_SUBPIXEL_BITS 0x0D50 -#define GL_TEXTURE_1D 0x0DE0 -#define GL_TEXTURE_2D 0x0DE1 -#define GL_POLYGON_OFFSET_UNITS 0x2A00 -#define GL_POLYGON_OFFSET_POINT 0x2A01 -#define GL_POLYGON_OFFSET_LINE 0x2A02 -#define GL_POLYGON_OFFSET_FILL 0x8037 -#define GL_POLYGON_OFFSET_FACTOR 0x8038 -#define GL_TEXTURE_BINDING_1D 0x8068 -#define GL_TEXTURE_BINDING_2D 0x8069 -#define GL_TEXTURE_WIDTH 0x1000 -#define GL_TEXTURE_HEIGHT 0x1001 -#define GL_TEXTURE_INTERNAL_FORMAT 0x1003 -#define GL_TEXTURE_BORDER_COLOR 0x1004 -#define GL_TEXTURE_RED_SIZE 0x805C -#define GL_TEXTURE_GREEN_SIZE 0x805D -#define GL_TEXTURE_BLUE_SIZE 0x805E -#define GL_TEXTURE_ALPHA_SIZE 0x805F -#define GL_DONT_CARE 0x1100 -#define GL_FASTEST 0x1101 -#define GL_NICEST 0x1102 -#define GL_BYTE 0x1400 -#define GL_UNSIGNED_BYTE 0x1401 -#define GL_SHORT 0x1402 -#define GL_UNSIGNED_SHORT 0x1403 -#define GL_INT 0x1404 -#define GL_UNSIGNED_INT 0x1405 -#define GL_FLOAT 0x1406 -#define GL_DOUBLE 0x140A -#define GL_CLEAR 0x1500 -#define GL_AND 0x1501 -#define GL_AND_REVERSE 0x1502 -#define GL_COPY 0x1503 -#define GL_AND_INVERTED 0x1504 -#define GL_NOOP 0x1505 -#define GL_XOR 0x1506 -#define GL_OR 0x1507 -#define GL_NOR 0x1508 -#define GL_EQUIV 0x1509 -#define GL_INVERT 0x150A -#define GL_OR_REVERSE 0x150B -#define GL_COPY_INVERTED 0x150C -#define GL_OR_INVERTED 0x150D -#define GL_NAND 0x150E -#define GL_SET 0x150F -#define GL_TEXTURE 0x1702 -#define GL_COLOR 0x1800 -#define GL_DEPTH 0x1801 -#define GL_STENCIL 0x1802 -#define GL_STENCIL_INDEX 0x1901 -#define GL_DEPTH_COMPONENT 0x1902 -#define GL_RED 0x1903 -#define GL_GREEN 0x1904 -#define GL_BLUE 0x1905 -#define GL_ALPHA 0x1906 -#define GL_RGB 0x1907 -#define GL_RGBA 0x1908 -#define GL_POINT 0x1B00 -#define GL_LINE 0x1B01 -#define GL_FILL 0x1B02 -#define GL_KEEP 0x1E00 -#define GL_REPLACE 0x1E01 -#define GL_INCR 0x1E02 -#define GL_DECR 0x1E03 -#define GL_VENDOR 0x1F00 -#define GL_RENDERER 0x1F01 -#define GL_VERSION 0x1F02 -#define GL_EXTENSIONS 0x1F03 -#define GL_NEAREST 0x2600 -#define GL_LINEAR 0x2601 -#define GL_NEAREST_MIPMAP_NEAREST 0x2700 -#define GL_LINEAR_MIPMAP_NEAREST 0x2701 -#define GL_NEAREST_MIPMAP_LINEAR 0x2702 -#define GL_LINEAR_MIPMAP_LINEAR 0x2703 -#define GL_TEXTURE_MAG_FILTER 0x2800 -#define GL_TEXTURE_MIN_FILTER 0x2801 -#define GL_TEXTURE_WRAP_S 0x2802 -#define GL_TEXTURE_WRAP_T 0x2803 -#define GL_PROXY_TEXTURE_1D 0x8063 -#define GL_PROXY_TEXTURE_2D 0x8064 -#define GL_REPEAT 0x2901 -#define GL_R3_G3_B2 0x2A10 -#define GL_RGB4 0x804F -#define GL_RGB5 0x8050 -#define GL_RGB8 0x8051 -#define GL_RGB10 0x8052 -#define GL_RGB12 0x8053 -#define GL_RGB16 0x8054 -#define GL_RGBA2 0x8055 -#define GL_RGBA4 0x8056 -#define GL_RGB5_A1 0x8057 -#define GL_RGBA8 0x8058 -#define GL_RGB10_A2 0x8059 -#define GL_RGBA12 0x805A -#define GL_RGBA16 0x805B -#define GL_UNSIGNED_BYTE_3_3_2 0x8032 -#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 -#define GL_UNSIGNED_INT_8_8_8_8 0x8035 -#define GL_UNSIGNED_INT_10_10_10_2 0x8036 -#define GL_TEXTURE_BINDING_3D 0x806A -#define GL_PACK_SKIP_IMAGES 0x806B -#define GL_PACK_IMAGE_HEIGHT 0x806C -#define GL_UNPACK_SKIP_IMAGES 0x806D -#define GL_UNPACK_IMAGE_HEIGHT 0x806E -#define GL_TEXTURE_3D 0x806F -#define GL_PROXY_TEXTURE_3D 0x8070 -#define GL_TEXTURE_DEPTH 0x8071 -#define GL_TEXTURE_WRAP_R 0x8072 -#define GL_MAX_3D_TEXTURE_SIZE 0x8073 -#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 -#define GL_UNSIGNED_SHORT_5_6_5 0x8363 -#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 -#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 -#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 -#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 -#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 -#define GL_BGR 0x80E0 -#define GL_BGRA 0x80E1 -#define GL_MAX_ELEMENTS_VERTICES 0x80E8 -#define GL_MAX_ELEMENTS_INDICES 0x80E9 -#define GL_CLAMP_TO_EDGE 0x812F -#define GL_TEXTURE_MIN_LOD 0x813A -#define GL_TEXTURE_MAX_LOD 0x813B -#define GL_TEXTURE_BASE_LEVEL 0x813C -#define GL_TEXTURE_MAX_LEVEL 0x813D -#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 -#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 -#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 -#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 -#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E -#define GL_TEXTURE0 0x84C0 -#define GL_TEXTURE1 0x84C1 -#define GL_TEXTURE2 0x84C2 -#define GL_TEXTURE3 0x84C3 -#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_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_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_TEXTURE30 0x84DE -#define GL_TEXTURE31 0x84DF -#define GL_ACTIVE_TEXTURE 0x84E0 -#define GL_MULTISAMPLE 0x809D -#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE 0x809F -#define GL_SAMPLE_COVERAGE 0x80A0 -#define GL_SAMPLE_BUFFERS 0x80A8 -#define GL_SAMPLES 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT 0x80AB -#define GL_TEXTURE_CUBE_MAP 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A -#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C -#define GL_COMPRESSED_RGB 0x84ED -#define GL_COMPRESSED_RGBA 0x84EE -#define GL_TEXTURE_COMPRESSION_HINT 0x84EF -#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 -#define GL_TEXTURE_COMPRESSED 0x86A1 -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 -#define GL_CLAMP_TO_BORDER 0x812D -#define GL_BLEND_DST_RGB 0x80C8 -#define GL_BLEND_SRC_RGB 0x80C9 -#define GL_BLEND_DST_ALPHA 0x80CA -#define GL_BLEND_SRC_ALPHA 0x80CB -#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128 -#define GL_DEPTH_COMPONENT16 0x81A5 -#define GL_DEPTH_COMPONENT24 0x81A6 -#define GL_DEPTH_COMPONENT32 0x81A7 -#define GL_MIRRORED_REPEAT 0x8370 -#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD -#define GL_TEXTURE_LOD_BIAS 0x8501 -#define GL_INCR_WRAP 0x8507 -#define GL_DECR_WRAP 0x8508 -#define GL_TEXTURE_DEPTH_SIZE 0x884A -#define GL_TEXTURE_COMPARE_MODE 0x884C -#define GL_TEXTURE_COMPARE_FUNC 0x884D -#define GL_FUNC_ADD 0x8006 -#define GL_FUNC_SUBTRACT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT 0x800B -#define GL_MIN 0x8007 -#define GL_MAX 0x8008 -#define GL_CONSTANT_COLOR 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 -#define GL_CONSTANT_ALPHA 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 -#define GL_BUFFER_SIZE 0x8764 -#define GL_BUFFER_USAGE 0x8765 -#define GL_QUERY_COUNTER_BITS 0x8864 -#define GL_CURRENT_QUERY 0x8865 -#define GL_QUERY_RESULT 0x8866 -#define GL_QUERY_RESULT_AVAILABLE 0x8867 -#define GL_ARRAY_BUFFER 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER 0x8893 -#define GL_ARRAY_BUFFER_BINDING 0x8894 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 -#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F -#define GL_READ_ONLY 0x88B8 -#define GL_WRITE_ONLY 0x88B9 -#define GL_READ_WRITE 0x88BA -#define GL_BUFFER_ACCESS 0x88BB -#define GL_BUFFER_MAPPED 0x88BC -#define GL_BUFFER_MAP_POINTER 0x88BD -#define GL_STREAM_DRAW 0x88E0 -#define GL_STREAM_READ 0x88E1 -#define GL_STREAM_COPY 0x88E2 -#define GL_STATIC_DRAW 0x88E4 -#define GL_STATIC_READ 0x88E5 -#define GL_STATIC_COPY 0x88E6 -#define GL_DYNAMIC_DRAW 0x88E8 -#define GL_DYNAMIC_READ 0x88E9 -#define GL_DYNAMIC_COPY 0x88EA -#define GL_SAMPLES_PASSED 0x8914 -#define GL_SRC1_ALPHA 0x8589 -#define GL_BLEND_EQUATION_RGB 0x8009 -#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 -#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 -#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 -#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 -#define GL_CURRENT_VERTEX_ATTRIB 0x8626 -#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642 -#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 -#define GL_STENCIL_BACK_FUNC 0x8800 -#define GL_STENCIL_BACK_FAIL 0x8801 -#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 -#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 -#define GL_MAX_DRAW_BUFFERS 0x8824 -#define GL_DRAW_BUFFER0 0x8825 -#define GL_DRAW_BUFFER1 0x8826 -#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_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_BLEND_EQUATION_ALPHA 0x883D -#define GL_MAX_VERTEX_ATTRIBS 0x8869 -#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A -#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 -#define GL_FRAGMENT_SHADER 0x8B30 -#define GL_VERTEX_SHADER 0x8B31 -#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 -#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A -#define GL_MAX_VARYING_FLOATS 0x8B4B -#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C -#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D -#define GL_SHADER_TYPE 0x8B4F -#define GL_FLOAT_VEC2 0x8B50 -#define GL_FLOAT_VEC3 0x8B51 -#define GL_FLOAT_VEC4 0x8B52 -#define GL_INT_VEC2 0x8B53 -#define GL_INT_VEC3 0x8B54 -#define GL_INT_VEC4 0x8B55 -#define GL_BOOL 0x8B56 -#define GL_BOOL_VEC2 0x8B57 -#define GL_BOOL_VEC3 0x8B58 -#define GL_BOOL_VEC4 0x8B59 -#define GL_FLOAT_MAT2 0x8B5A -#define GL_FLOAT_MAT3 0x8B5B -#define GL_FLOAT_MAT4 0x8B5C -#define GL_SAMPLER_1D 0x8B5D -#define GL_SAMPLER_2D 0x8B5E -#define GL_SAMPLER_3D 0x8B5F -#define GL_SAMPLER_CUBE 0x8B60 -#define GL_SAMPLER_1D_SHADOW 0x8B61 -#define GL_SAMPLER_2D_SHADOW 0x8B62 -#define GL_DELETE_STATUS 0x8B80 -#define GL_COMPILE_STATUS 0x8B81 -#define GL_LINK_STATUS 0x8B82 -#define GL_VALIDATE_STATUS 0x8B83 -#define GL_INFO_LOG_LENGTH 0x8B84 -#define GL_ATTACHED_SHADERS 0x8B85 -#define GL_ACTIVE_UNIFORMS 0x8B86 -#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 -#define GL_SHADER_SOURCE_LENGTH 0x8B88 +#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_ACTIVE_ATOMIC_COUNTER_BUFFERS 0x92D9 #define GL_ACTIVE_ATTRIBUTES 0x8B89 #define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A -#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B -#define GL_SHADING_LANGUAGE_VERSION 0x8B8C -#define GL_CURRENT_PROGRAM 0x8B8D -#define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0 -#define GL_LOWER_LEFT 0x8CA1 -#define GL_UPPER_LEFT 0x8CA2 -#define GL_STENCIL_BACK_REF 0x8CA3 -#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 -#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 -#define GL_PIXEL_PACK_BUFFER 0x88EB -#define GL_PIXEL_UNPACK_BUFFER 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF -#define GL_FLOAT_MAT2x3 0x8B65 -#define GL_FLOAT_MAT2x4 0x8B66 -#define GL_FLOAT_MAT3x2 0x8B67 -#define GL_FLOAT_MAT3x4 0x8B68 -#define GL_FLOAT_MAT4x2 0x8B69 -#define GL_FLOAT_MAT4x3 0x8B6A -#define GL_SRGB 0x8C40 -#define GL_SRGB8 0x8C41 -#define GL_SRGB_ALPHA 0x8C42 -#define GL_SRGB8_ALPHA8 0x8C43 -#define GL_COMPRESSED_SRGB 0x8C48 -#define GL_COMPRESSED_SRGB_ALPHA 0x8C49 -#define GL_COMPARE_REF_TO_TEXTURE 0x884E +#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_TEXTURE_ARB 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_ALIASED_LINE_WIDTH_RANGE 0x846E +#define GL_ALL_BARRIER_BITS 0xFFFFFFFF +#define GL_ALL_SHADER_BITS 0xFFFFFFFF +#define GL_ALPHA 0x1906 +#define GL_ALPHA16F_ARB 0x881C +#define GL_ALPHA32F_ARB 0x8816 +#define GL_ALREADY_SIGNALED 0x911A +#define GL_ALWAYS 0x0207 +#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_ARB 0x8892 +#define GL_ARRAY_BUFFER_BINDING 0x8894 +#define GL_ARRAY_BUFFER_BINDING_ARB 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_AUTO_GENERATE_MIPMAP 0x8295 +#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_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_INTEGER 0x8D96 +#define GL_BOOL 0x8B56 +#define GL_BOOL_ARB 0x8B56 +#define GL_BOOL_VEC2 0x8B57 +#define GL_BOOL_VEC2_ARB 0x8B57 +#define GL_BOOL_VEC3 0x8B58 +#define GL_BOOL_VEC3_ARB 0x8B58 +#define GL_BOOL_VEC4 0x8B59 +#define GL_BOOL_VEC4_ARB 0x8B59 +#define GL_BUFFER 0x82E0 +#define GL_BUFFER_ACCESS 0x88BB +#define GL_BUFFER_ACCESS_ARB 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_MAPPED_ARB 0x88BC +#define GL_BUFFER_MAP_LENGTH 0x9120 +#define GL_BUFFER_MAP_OFFSET 0x9121 +#define GL_BUFFER_MAP_POINTER 0x88BD +#define GL_BUFFER_MAP_POINTER_ARB 0x88BD +#define GL_BUFFER_SIZE 0x8764 +#define GL_BUFFER_SIZE_ARB 0x8764 +#define GL_BUFFER_STORAGE_FLAGS 0x8220 +#define GL_BUFFER_UPDATE_BARRIER_BIT 0x00000200 +#define GL_BUFFER_USAGE 0x8765 +#define GL_BUFFER_USAGE_ARB 0x8765 +#define GL_BUFFER_VARIABLE 0x92E5 +#define GL_BYTE 0x1400 +#define GL_CAVEAT_SUPPORT 0x82B8 +#define GL_CCW 0x0901 +#define GL_CLAMP_FRAGMENT_COLOR_ARB 0x891B +#define GL_CLAMP_READ_COLOR 0x891C +#define GL_CLAMP_READ_COLOR_ARB 0x891C +#define GL_CLAMP_TO_BORDER 0x812D +#define GL_CLAMP_TO_BORDER_ARB 0x812D +#define GL_CLAMP_TO_EDGE 0x812F +#define GL_CLAMP_VERTEX_COLOR_ARB 0x891A +#define GL_CLEAR 0x1500 +#define GL_CLEAR_BUFFER 0x82B4 +#define GL_CLEAR_TEXTURE 0x9365 +#define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1 +#define GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT 0x00004000 +#define GL_CLIENT_STORAGE_BIT 0x0200 +#define GL_CLIPPING_INPUT_PRIMITIVES 0x82F6 +#define GL_CLIPPING_INPUT_PRIMITIVES_ARB 0x82F6 +#define GL_CLIPPING_OUTPUT_PRIMITIVES 0x82F7 +#define GL_CLIPPING_OUTPUT_PRIMITIVES_ARB 0x82F7 #define GL_CLIP_DISTANCE0 0x3000 #define GL_CLIP_DISTANCE1 0x3001 #define GL_CLIP_DISTANCE2 0x3002 @@ -624,162 +304,29 @@ typedef GLintptr GLvdpauSurfaceNV; #define GL_CLIP_DISTANCE5 0x3005 #define GL_CLIP_DISTANCE6 0x3006 #define GL_CLIP_DISTANCE7 0x3007 -#define GL_MAX_CLIP_DISTANCES 0x0D32 -#define GL_MAJOR_VERSION 0x821B -#define GL_MINOR_VERSION 0x821C -#define GL_NUM_EXTENSIONS 0x821D -#define GL_CONTEXT_FLAGS 0x821E -#define GL_COMPRESSED_RED 0x8225 -#define GL_COMPRESSED_RG 0x8226 -#define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x00000001 -#define GL_RGBA32F 0x8814 -#define GL_RGB32F 0x8815 -#define GL_RGBA16F 0x881A -#define GL_RGB16F 0x881B -#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD -#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF -#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 -#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 -#define GL_CLAMP_READ_COLOR 0x891C -#define GL_FIXED_ONLY 0x891D -#define GL_MAX_VARYING_COMPONENTS 0x8B4B -#define GL_TEXTURE_1D_ARRAY 0x8C18 -#define GL_PROXY_TEXTURE_1D_ARRAY 0x8C19 -#define GL_TEXTURE_2D_ARRAY 0x8C1A -#define GL_PROXY_TEXTURE_2D_ARRAY 0x8C1B -#define GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C -#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D -#define GL_R11F_G11F_B10F 0x8C3A -#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B -#define GL_RGB9_E5 0x8C3D -#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E -#define GL_TEXTURE_SHARED_SIZE 0x8C3F -#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 -#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 -#define GL_PRIMITIVES_GENERATED 0x8C87 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 -#define GL_RASTERIZER_DISCARD 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B -#define GL_INTERLEAVED_ATTRIBS 0x8C8C -#define GL_SEPARATE_ATTRIBS 0x8C8D -#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F -#define GL_RGBA32UI 0x8D70 -#define GL_RGB32UI 0x8D71 -#define GL_RGBA16UI 0x8D76 -#define GL_RGB16UI 0x8D77 -#define GL_RGBA8UI 0x8D7C -#define GL_RGB8UI 0x8D7D -#define GL_RGBA32I 0x8D82 -#define GL_RGB32I 0x8D83 -#define GL_RGBA16I 0x8D88 -#define GL_RGB16I 0x8D89 -#define GL_RGBA8I 0x8D8E -#define GL_RGB8I 0x8D8F -#define GL_RED_INTEGER 0x8D94 -#define GL_GREEN_INTEGER 0x8D95 -#define GL_BLUE_INTEGER 0x8D96 -#define GL_RGB_INTEGER 0x8D98 -#define GL_RGBA_INTEGER 0x8D99 -#define GL_BGR_INTEGER 0x8D9A -#define GL_BGRA_INTEGER 0x8D9B -#define GL_SAMPLER_1D_ARRAY 0x8DC0 -#define GL_SAMPLER_2D_ARRAY 0x8DC1 -#define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3 -#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 -#define GL_SAMPLER_CUBE_SHADOW 0x8DC5 -#define GL_UNSIGNED_INT_VEC2 0x8DC6 -#define GL_UNSIGNED_INT_VEC3 0x8DC7 -#define GL_UNSIGNED_INT_VEC4 0x8DC8 -#define GL_INT_SAMPLER_1D 0x8DC9 -#define GL_INT_SAMPLER_2D 0x8DCA -#define GL_INT_SAMPLER_3D 0x8DCB -#define GL_INT_SAMPLER_CUBE 0x8DCC -#define GL_INT_SAMPLER_1D_ARRAY 0x8DCE -#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF -#define GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1 -#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 -#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 -#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 -#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6 -#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 -#define GL_QUERY_WAIT 0x8E13 -#define GL_QUERY_NO_WAIT 0x8E14 -#define GL_QUERY_BY_REGION_WAIT 0x8E15 -#define GL_QUERY_BY_REGION_NO_WAIT 0x8E16 -#define GL_BUFFER_ACCESS_FLAGS 0x911F -#define GL_BUFFER_MAP_LENGTH 0x9120 -#define GL_BUFFER_MAP_OFFSET 0x9121 -#define GL_DEPTH_COMPONENT32F 0x8CAC -#define GL_DEPTH32F_STENCIL8 0x8CAD -#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD -#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 -#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 -#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 -#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 -#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 -#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 -#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 -#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 -#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 -#define GL_FRAMEBUFFER_DEFAULT 0x8218 -#define GL_FRAMEBUFFER_UNDEFINED 0x8219 -#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A -#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 -#define GL_DEPTH_STENCIL 0x84F9 -#define GL_UNSIGNED_INT_24_8 0x84FA -#define GL_DEPTH24_STENCIL8 0x88F0 -#define GL_TEXTURE_STENCIL_SIZE 0x88F1 -#define GL_TEXTURE_RED_TYPE 0x8C10 -#define GL_TEXTURE_GREEN_TYPE 0x8C11 -#define GL_TEXTURE_BLUE_TYPE 0x8C12 -#define GL_TEXTURE_ALPHA_TYPE 0x8C13 -#define GL_TEXTURE_DEPTH_TYPE 0x8C16 -#define GL_UNSIGNED_NORMALIZED 0x8C17 -#define GL_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_RENDERBUFFER_BINDING 0x8CA7 -#define GL_READ_FRAMEBUFFER 0x8CA8 -#define GL_DRAW_FRAMEBUFFER 0x8CA9 -#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA -#define GL_RENDERBUFFER_SAMPLES 0x8CAB -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 -#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 -#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 -#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 -#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB -#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC -#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD -#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF +#define GL_COLOR 0x1800 +#define GL_COLOR_ARRAY_BUFFER_BINDING_ARB 0x8898 #define GL_COLOR_ATTACHMENT0 0x8CE0 +#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0 #define GL_COLOR_ATTACHMENT1 0x8CE1 -#define GL_COLOR_ATTACHMENT2 0x8CE2 -#define GL_COLOR_ATTACHMENT3 0x8CE3 -#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_ATTACHMENT10 0x8CEA +#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA #define GL_COLOR_ATTACHMENT11 0x8CEB +#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB #define GL_COLOR_ATTACHMENT12 0x8CEC +#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC #define GL_COLOR_ATTACHMENT13 0x8CED +#define GL_COLOR_ATTACHMENT13_EXT 0x8CED #define GL_COLOR_ATTACHMENT14 0x8CEE +#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE #define GL_COLOR_ATTACHMENT15 0x8CEF +#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF #define GL_COLOR_ATTACHMENT16 0x8CF0 #define GL_COLOR_ATTACHMENT17 0x8CF1 #define GL_COLOR_ATTACHMENT18 0x8CF2 #define GL_COLOR_ATTACHMENT19 0x8CF3 +#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1 +#define GL_COLOR_ATTACHMENT2 0x8CE2 #define GL_COLOR_ATTACHMENT20 0x8CF4 #define GL_COLOR_ATTACHMENT21 0x8CF5 #define GL_COLOR_ATTACHMENT22 0x8CF6 @@ -790,1536 +337,548 @@ typedef GLintptr GLvdpauSurfaceNV; #define GL_COLOR_ATTACHMENT27 0x8CFB #define GL_COLOR_ATTACHMENT28 0x8CFC #define GL_COLOR_ATTACHMENT29 0x8CFD +#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2 +#define GL_COLOR_ATTACHMENT3 0x8CE3 #define GL_COLOR_ATTACHMENT30 0x8CFE #define GL_COLOR_ATTACHMENT31 0x8CFF -#define GL_DEPTH_ATTACHMENT 0x8D00 -#define GL_STENCIL_ATTACHMENT 0x8D20 -#define GL_FRAMEBUFFER 0x8D40 -#define GL_RENDERBUFFER 0x8D41 -#define GL_RENDERBUFFER_WIDTH 0x8D42 -#define GL_RENDERBUFFER_HEIGHT 0x8D43 -#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 -#define GL_STENCIL_INDEX1 0x8D46 -#define GL_STENCIL_INDEX4 0x8D47 -#define GL_STENCIL_INDEX8 0x8D48 -#define GL_STENCIL_INDEX16 0x8D49 -#define GL_RENDERBUFFER_RED_SIZE 0x8D50 -#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 -#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 -#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 -#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 -#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 -#define GL_MAX_SAMPLES 0x8D57 -#define GL_INDEX 0x8222 -#define GL_FRAMEBUFFER_SRGB 0x8DB9 -#define GL_HALF_FLOAT 0x140B -#define GL_MAP_READ_BIT 0x0001 -#define GL_MAP_WRITE_BIT 0x0002 -#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 -#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 -#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 -#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 -#define GL_COMPRESSED_RED_RGTC1 0x8DBB -#define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC -#define GL_COMPRESSED_RG_RGTC2 0x8DBD -#define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE -#define GL_RG 0x8227 -#define GL_RG_INTEGER 0x8228 -#define GL_R8 0x8229 -#define GL_R16 0x822A -#define GL_RG8 0x822B -#define GL_RG16 0x822C -#define GL_R16F 0x822D -#define GL_R32F 0x822E -#define GL_RG16F 0x822F -#define GL_RG32F 0x8230 -#define GL_R8I 0x8231 -#define GL_R8UI 0x8232 -#define GL_R16I 0x8233 -#define GL_R16UI 0x8234 -#define GL_R32I 0x8235 -#define GL_R32UI 0x8236 -#define GL_RG8I 0x8237 -#define GL_RG8UI 0x8238 -#define GL_RG16I 0x8239 -#define GL_RG16UI 0x823A -#define GL_RG32I 0x823B -#define GL_RG32UI 0x823C -#define GL_VERTEX_ARRAY_BINDING 0x85B5 -#define GL_SAMPLER_2D_RECT 0x8B63 -#define GL_SAMPLER_2D_RECT_SHADOW 0x8B64 -#define GL_SAMPLER_BUFFER 0x8DC2 -#define GL_INT_SAMPLER_2D_RECT 0x8DCD -#define GL_INT_SAMPLER_BUFFER 0x8DD0 -#define GL_UNSIGNED_INT_SAMPLER_2D_RECT 0x8DD5 -#define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8 -#define GL_TEXTURE_BUFFER 0x8C2A -#define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B -#define GL_TEXTURE_BINDING_BUFFER 0x8C2C -#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D -#define GL_TEXTURE_RECTANGLE 0x84F5 -#define GL_TEXTURE_BINDING_RECTANGLE 0x84F6 -#define GL_PROXY_TEXTURE_RECTANGLE 0x84F7 -#define GL_MAX_RECTANGLE_TEXTURE_SIZE 0x84F8 -#define GL_R8_SNORM 0x8F94 -#define GL_RG8_SNORM 0x8F95 -#define GL_RGB8_SNORM 0x8F96 -#define GL_RGBA8_SNORM 0x8F97 -#define GL_R16_SNORM 0x8F98 -#define GL_RG16_SNORM 0x8F99 -#define GL_RGB16_SNORM 0x8F9A -#define GL_RGBA16_SNORM 0x8F9B -#define GL_SIGNED_NORMALIZED 0x8F9C -#define GL_PRIMITIVE_RESTART 0x8F9D -#define GL_PRIMITIVE_RESTART_INDEX 0x8F9E -#define GL_COPY_READ_BUFFER 0x8F36 -#define GL_COPY_WRITE_BUFFER 0x8F37 -#define GL_UNIFORM_BUFFER 0x8A11 -#define GL_UNIFORM_BUFFER_BINDING 0x8A28 -#define GL_UNIFORM_BUFFER_START 0x8A29 -#define GL_UNIFORM_BUFFER_SIZE 0x8A2A -#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B -#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C -#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D -#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E -#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F -#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 -#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31 -#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32 -#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33 -#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34 -#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35 -#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36 -#define GL_UNIFORM_TYPE 0x8A37 -#define GL_UNIFORM_SIZE 0x8A38 -#define GL_UNIFORM_NAME_LENGTH 0x8A39 -#define GL_UNIFORM_BLOCK_INDEX 0x8A3A -#define GL_UNIFORM_OFFSET 0x8A3B -#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C -#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D -#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E -#define GL_UNIFORM_BLOCK_BINDING 0x8A3F -#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40 -#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8A45 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 -#define GL_INVALID_INDEX 0xFFFFFFFF -#define GL_CONTEXT_CORE_PROFILE_BIT 0x00000001 -#define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002 -#define GL_LINES_ADJACENCY 0x000A -#define GL_LINE_STRIP_ADJACENCY 0x000B -#define GL_TRIANGLES_ADJACENCY 0x000C -#define GL_TRIANGLE_STRIP_ADJACENCY 0x000D -#define GL_PROGRAM_POINT_SIZE 0x8642 -#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29 -#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8 -#define GL_GEOMETRY_SHADER 0x8DD9 -#define GL_GEOMETRY_VERTICES_OUT 0x8916 -#define GL_GEOMETRY_INPUT_TYPE 0x8917 -#define GL_GEOMETRY_OUTPUT_TYPE 0x8918 -#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF -#define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0 -#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1 -#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122 -#define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123 -#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124 -#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125 -#define GL_CONTEXT_PROFILE_MASK 0x9126 -#define GL_DEPTH_CLAMP 0x864F -#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION 0x8E4C -#define GL_FIRST_VERTEX_CONVENTION 0x8E4D -#define GL_LAST_VERTEX_CONVENTION 0x8E4E -#define GL_PROVOKING_VERTEX 0x8E4F -#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F -#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 -#define GL_OBJECT_TYPE 0x9112 -#define GL_SYNC_CONDITION 0x9113 -#define GL_SYNC_STATUS 0x9114 -#define GL_SYNC_FLAGS 0x9115 -#define GL_SYNC_FENCE 0x9116 -#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 -#define GL_UNSIGNALED 0x9118 -#define GL_SIGNALED 0x9119 -#define GL_ALREADY_SIGNALED 0x911A -#define GL_TIMEOUT_EXPIRED 0x911B -#define GL_CONDITION_SATISFIED 0x911C -#define GL_WAIT_FAILED 0x911D -#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFF -#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 -#define GL_SAMPLE_POSITION 0x8E50 -#define GL_SAMPLE_MASK 0x8E51 -#define GL_SAMPLE_MASK_VALUE 0x8E52 -#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59 -#define GL_TEXTURE_2D_MULTISAMPLE 0x9100 -#define GL_PROXY_TEXTURE_2D_MULTISAMPLE 0x9101 -#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102 -#define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9103 -#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104 -#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105 -#define GL_TEXTURE_SAMPLES 0x9106 -#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107 -#define GL_SAMPLER_2D_MULTISAMPLE 0x9108 -#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109 -#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A -#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B -#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C -#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D -#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E -#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F -#define GL_MAX_INTEGER_SAMPLES 0x9110 -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE -#define GL_SRC1_COLOR 0x88F9 -#define GL_ONE_MINUS_SRC1_COLOR 0x88FA -#define GL_ONE_MINUS_SRC1_ALPHA 0x88FB -#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS 0x88FC -#define GL_ANY_SAMPLES_PASSED 0x8C2F -#define GL_SAMPLER_BINDING 0x8919 -#define GL_RGB10_A2UI 0x906F -#define GL_TEXTURE_SWIZZLE_R 0x8E42 -#define GL_TEXTURE_SWIZZLE_G 0x8E43 -#define GL_TEXTURE_SWIZZLE_B 0x8E44 -#define GL_TEXTURE_SWIZZLE_A 0x8E45 -#define GL_TEXTURE_SWIZZLE_RGBA 0x8E46 -#define GL_TIME_ELAPSED 0x88BF -#define GL_TIMESTAMP 0x8E28 -#define GL_INT_2_10_10_10_REV 0x8D9F -#ifndef GL_VERSION_1_0 -#define GL_VERSION_1_0 1 -GLAPI int GLAD_GL_VERSION_1_0; -typedef void (APIENTRYP PFNGLCULLFACEPROC)(GLenum mode); -GLAPI PFNGLCULLFACEPROC glad_glCullFace; -#define glCullFace glad_glCullFace -typedef void (APIENTRYP PFNGLFRONTFACEPROC)(GLenum mode); -GLAPI PFNGLFRONTFACEPROC glad_glFrontFace; -#define glFrontFace glad_glFrontFace -typedef void (APIENTRYP PFNGLHINTPROC)(GLenum target, GLenum mode); -GLAPI PFNGLHINTPROC glad_glHint; -#define glHint glad_glHint -typedef void (APIENTRYP PFNGLLINEWIDTHPROC)(GLfloat width); -GLAPI PFNGLLINEWIDTHPROC glad_glLineWidth; -#define glLineWidth glad_glLineWidth -typedef void (APIENTRYP PFNGLPOINTSIZEPROC)(GLfloat size); -GLAPI PFNGLPOINTSIZEPROC glad_glPointSize; -#define glPointSize glad_glPointSize -typedef void (APIENTRYP PFNGLPOLYGONMODEPROC)(GLenum face, GLenum mode); -GLAPI PFNGLPOLYGONMODEPROC glad_glPolygonMode; -#define glPolygonMode glad_glPolygonMode -typedef void (APIENTRYP PFNGLSCISSORPROC)(GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI PFNGLSCISSORPROC glad_glScissor; -#define glScissor glad_glScissor -typedef void (APIENTRYP PFNGLTEXPARAMETERFPROC)(GLenum target, GLenum pname, GLfloat param); -GLAPI PFNGLTEXPARAMETERFPROC glad_glTexParameterf; -#define glTexParameterf glad_glTexParameterf -typedef void (APIENTRYP PFNGLTEXPARAMETERFVPROC)(GLenum target, GLenum pname, const GLfloat* params); -GLAPI PFNGLTEXPARAMETERFVPROC glad_glTexParameterfv; -#define glTexParameterfv glad_glTexParameterfv -typedef void (APIENTRYP PFNGLTEXPARAMETERIPROC)(GLenum target, GLenum pname, GLint param); -GLAPI PFNGLTEXPARAMETERIPROC glad_glTexParameteri; -#define glTexParameteri glad_glTexParameteri -typedef void (APIENTRYP PFNGLTEXPARAMETERIVPROC)(GLenum target, GLenum pname, const GLint* params); -GLAPI PFNGLTEXPARAMETERIVPROC glad_glTexParameteriv; -#define glTexParameteriv glad_glTexParameteriv -typedef void (APIENTRYP PFNGLTEXIMAGE1DPROC)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void* pixels); -GLAPI PFNGLTEXIMAGE1DPROC glad_glTexImage1D; -#define glTexImage1D glad_glTexImage1D -typedef void (APIENTRYP PFNGLTEXIMAGE2DPROC)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void* pixels); -GLAPI PFNGLTEXIMAGE2DPROC glad_glTexImage2D; -#define glTexImage2D glad_glTexImage2D -typedef void (APIENTRYP PFNGLDRAWBUFFERPROC)(GLenum buf); -GLAPI PFNGLDRAWBUFFERPROC glad_glDrawBuffer; -#define glDrawBuffer glad_glDrawBuffer -typedef void (APIENTRYP PFNGLCLEARPROC)(GLbitfield mask); -GLAPI PFNGLCLEARPROC glad_glClear; -#define glClear glad_glClear -typedef void (APIENTRYP PFNGLCLEARCOLORPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GLAPI PFNGLCLEARCOLORPROC glad_glClearColor; -#define glClearColor glad_glClearColor -typedef void (APIENTRYP PFNGLCLEARSTENCILPROC)(GLint s); -GLAPI PFNGLCLEARSTENCILPROC glad_glClearStencil; -#define glClearStencil glad_glClearStencil -typedef void (APIENTRYP PFNGLCLEARDEPTHPROC)(GLdouble depth); -GLAPI PFNGLCLEARDEPTHPROC glad_glClearDepth; -#define glClearDepth glad_glClearDepth -typedef void (APIENTRYP PFNGLSTENCILMASKPROC)(GLuint mask); -GLAPI PFNGLSTENCILMASKPROC glad_glStencilMask; -#define glStencilMask glad_glStencilMask -typedef void (APIENTRYP PFNGLCOLORMASKPROC)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -GLAPI PFNGLCOLORMASKPROC glad_glColorMask; -#define glColorMask glad_glColorMask -typedef void (APIENTRYP PFNGLDEPTHMASKPROC)(GLboolean flag); -GLAPI PFNGLDEPTHMASKPROC glad_glDepthMask; -#define glDepthMask glad_glDepthMask -typedef void (APIENTRYP PFNGLDISABLEPROC)(GLenum cap); -GLAPI PFNGLDISABLEPROC glad_glDisable; -#define glDisable glad_glDisable -typedef void (APIENTRYP PFNGLENABLEPROC)(GLenum cap); -GLAPI PFNGLENABLEPROC glad_glEnable; -#define glEnable glad_glEnable -typedef void (APIENTRYP PFNGLFINISHPROC)(); -GLAPI PFNGLFINISHPROC glad_glFinish; -#define glFinish glad_glFinish -typedef void (APIENTRYP PFNGLFLUSHPROC)(); -GLAPI PFNGLFLUSHPROC glad_glFlush; -#define glFlush glad_glFlush -typedef void (APIENTRYP PFNGLBLENDFUNCPROC)(GLenum sfactor, GLenum dfactor); -GLAPI PFNGLBLENDFUNCPROC glad_glBlendFunc; -#define glBlendFunc glad_glBlendFunc -typedef void (APIENTRYP PFNGLLOGICOPPROC)(GLenum opcode); -GLAPI PFNGLLOGICOPPROC glad_glLogicOp; -#define glLogicOp glad_glLogicOp -typedef void (APIENTRYP PFNGLSTENCILFUNCPROC)(GLenum func, GLint ref, GLuint mask); -GLAPI PFNGLSTENCILFUNCPROC glad_glStencilFunc; -#define glStencilFunc glad_glStencilFunc -typedef void (APIENTRYP PFNGLSTENCILOPPROC)(GLenum fail, GLenum zfail, GLenum zpass); -GLAPI PFNGLSTENCILOPPROC glad_glStencilOp; -#define glStencilOp glad_glStencilOp -typedef void (APIENTRYP PFNGLDEPTHFUNCPROC)(GLenum func); -GLAPI PFNGLDEPTHFUNCPROC glad_glDepthFunc; -#define glDepthFunc glad_glDepthFunc -typedef void (APIENTRYP PFNGLPIXELSTOREFPROC)(GLenum pname, GLfloat param); -GLAPI PFNGLPIXELSTOREFPROC glad_glPixelStoref; -#define glPixelStoref glad_glPixelStoref -typedef void (APIENTRYP PFNGLPIXELSTOREIPROC)(GLenum pname, GLint param); -GLAPI PFNGLPIXELSTOREIPROC glad_glPixelStorei; -#define glPixelStorei glad_glPixelStorei -typedef void (APIENTRYP PFNGLREADBUFFERPROC)(GLenum src); -GLAPI PFNGLREADBUFFERPROC glad_glReadBuffer; -#define glReadBuffer glad_glReadBuffer -typedef void (APIENTRYP PFNGLREADPIXELSPROC)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void* pixels); -GLAPI PFNGLREADPIXELSPROC glad_glReadPixels; -#define glReadPixels glad_glReadPixels -typedef void (APIENTRYP PFNGLGETBOOLEANVPROC)(GLenum pname, GLboolean* data); -GLAPI PFNGLGETBOOLEANVPROC glad_glGetBooleanv; -#define glGetBooleanv glad_glGetBooleanv -typedef void (APIENTRYP PFNGLGETDOUBLEVPROC)(GLenum pname, GLdouble* data); -GLAPI PFNGLGETDOUBLEVPROC glad_glGetDoublev; -#define glGetDoublev glad_glGetDoublev -typedef GLenum (APIENTRYP PFNGLGETERRORPROC)(); -GLAPI PFNGLGETERRORPROC glad_glGetError; -#define glGetError glad_glGetError -typedef void (APIENTRYP PFNGLGETFLOATVPROC)(GLenum pname, GLfloat* data); -GLAPI PFNGLGETFLOATVPROC glad_glGetFloatv; -#define glGetFloatv glad_glGetFloatv -typedef void (APIENTRYP PFNGLGETINTEGERVPROC)(GLenum pname, GLint* data); -GLAPI PFNGLGETINTEGERVPROC glad_glGetIntegerv; -#define glGetIntegerv glad_glGetIntegerv -typedef const GLubyte* (APIENTRYP PFNGLGETSTRINGPROC)(GLenum name); -GLAPI PFNGLGETSTRINGPROC glad_glGetString; -#define glGetString glad_glGetString -typedef void (APIENTRYP PFNGLGETTEXIMAGEPROC)(GLenum target, GLint level, GLenum format, GLenum type, void* pixels); -GLAPI PFNGLGETTEXIMAGEPROC glad_glGetTexImage; -#define glGetTexImage glad_glGetTexImage -typedef void (APIENTRYP PFNGLGETTEXPARAMETERFVPROC)(GLenum target, GLenum pname, GLfloat* params); -GLAPI PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv; -#define glGetTexParameterfv glad_glGetTexParameterfv -typedef void (APIENTRYP PFNGLGETTEXPARAMETERIVPROC)(GLenum target, GLenum pname, GLint* params); -GLAPI PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv; -#define glGetTexParameteriv glad_glGetTexParameteriv -typedef void (APIENTRYP PFNGLGETTEXLEVELPARAMETERFVPROC)(GLenum target, GLint level, GLenum pname, GLfloat* params); -GLAPI PFNGLGETTEXLEVELPARAMETERFVPROC glad_glGetTexLevelParameterfv; -#define glGetTexLevelParameterfv glad_glGetTexLevelParameterfv -typedef void (APIENTRYP PFNGLGETTEXLEVELPARAMETERIVPROC)(GLenum target, GLint level, GLenum pname, GLint* params); -GLAPI PFNGLGETTEXLEVELPARAMETERIVPROC glad_glGetTexLevelParameteriv; -#define glGetTexLevelParameteriv glad_glGetTexLevelParameteriv -typedef GLboolean (APIENTRYP PFNGLISENABLEDPROC)(GLenum cap); -GLAPI PFNGLISENABLEDPROC glad_glIsEnabled; -#define glIsEnabled glad_glIsEnabled -typedef void (APIENTRYP PFNGLDEPTHRANGEPROC)(GLdouble near, GLdouble far); -GLAPI PFNGLDEPTHRANGEPROC glad_glDepthRange; -#define glDepthRange glad_glDepthRange -typedef void (APIENTRYP PFNGLVIEWPORTPROC)(GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI PFNGLVIEWPORTPROC glad_glViewport; -#define glViewport glad_glViewport -#endif -#ifndef GL_VERSION_1_1 -#define GL_VERSION_1_1 1 -GLAPI int GLAD_GL_VERSION_1_1; -typedef void (APIENTRYP PFNGLDRAWARRAYSPROC)(GLenum mode, GLint first, GLsizei count); -GLAPI PFNGLDRAWARRAYSPROC glad_glDrawArrays; -#define glDrawArrays glad_glDrawArrays -typedef void (APIENTRYP PFNGLDRAWELEMENTSPROC)(GLenum mode, GLsizei count, GLenum type, const void* indices); -GLAPI PFNGLDRAWELEMENTSPROC glad_glDrawElements; -#define glDrawElements glad_glDrawElements -typedef void (APIENTRYP PFNGLPOLYGONOFFSETPROC)(GLfloat factor, GLfloat units); -GLAPI PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset; -#define glPolygonOffset glad_glPolygonOffset -typedef void (APIENTRYP PFNGLCOPYTEXIMAGE1DPROC)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -GLAPI PFNGLCOPYTEXIMAGE1DPROC glad_glCopyTexImage1D; -#define glCopyTexImage1D glad_glCopyTexImage1D -typedef void (APIENTRYP PFNGLCOPYTEXIMAGE2DPROC)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -GLAPI PFNGLCOPYTEXIMAGE2DPROC glad_glCopyTexImage2D; -#define glCopyTexImage2D glad_glCopyTexImage2D -typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -GLAPI PFNGLCOPYTEXSUBIMAGE1DPROC glad_glCopyTexSubImage1D; -#define glCopyTexSubImage1D glad_glCopyTexSubImage1D -typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI PFNGLCOPYTEXSUBIMAGE2DPROC glad_glCopyTexSubImage2D; -#define glCopyTexSubImage2D glad_glCopyTexSubImage2D -typedef void (APIENTRYP PFNGLTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void* pixels); -GLAPI PFNGLTEXSUBIMAGE1DPROC glad_glTexSubImage1D; -#define glTexSubImage1D glad_glTexSubImage1D -typedef void (APIENTRYP PFNGLTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* pixels); -GLAPI PFNGLTEXSUBIMAGE2DPROC glad_glTexSubImage2D; -#define glTexSubImage2D glad_glTexSubImage2D -typedef void (APIENTRYP PFNGLBINDTEXTUREPROC)(GLenum target, GLuint texture); -GLAPI PFNGLBINDTEXTUREPROC glad_glBindTexture; -#define glBindTexture glad_glBindTexture -typedef void (APIENTRYP PFNGLDELETETEXTURESPROC)(GLsizei n, const GLuint* textures); -GLAPI PFNGLDELETETEXTURESPROC glad_glDeleteTextures; -#define glDeleteTextures glad_glDeleteTextures -typedef void (APIENTRYP PFNGLGENTEXTURESPROC)(GLsizei n, GLuint* textures); -GLAPI PFNGLGENTEXTURESPROC glad_glGenTextures; -#define glGenTextures glad_glGenTextures -typedef GLboolean (APIENTRYP PFNGLISTEXTUREPROC)(GLuint texture); -GLAPI PFNGLISTEXTUREPROC glad_glIsTexture; -#define glIsTexture glad_glIsTexture -#endif -#ifndef GL_VERSION_1_2 -#define GL_VERSION_1_2 1 -GLAPI int GLAD_GL_VERSION_1_2; -typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSPROC)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void* indices); -GLAPI PFNGLDRAWRANGEELEMENTSPROC glad_glDrawRangeElements; -#define glDrawRangeElements glad_glDrawRangeElements -typedef void (APIENTRYP PFNGLTEXIMAGE3DPROC)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void* pixels); -GLAPI PFNGLTEXIMAGE3DPROC glad_glTexImage3D; -#define glTexImage3D glad_glTexImage3D -typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void* pixels); -GLAPI PFNGLTEXSUBIMAGE3DPROC glad_glTexSubImage3D; -#define glTexSubImage3D glad_glTexSubImage3D -typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI PFNGLCOPYTEXSUBIMAGE3DPROC glad_glCopyTexSubImage3D; -#define glCopyTexSubImage3D glad_glCopyTexSubImage3D -#endif -#ifndef GL_VERSION_1_3 -#define GL_VERSION_1_3 1 -GLAPI int GLAD_GL_VERSION_1_3; -typedef void (APIENTRYP PFNGLACTIVETEXTUREPROC)(GLenum texture); -GLAPI PFNGLACTIVETEXTUREPROC glad_glActiveTexture; -#define glActiveTexture glad_glActiveTexture -typedef void (APIENTRYP PFNGLSAMPLECOVERAGEPROC)(GLfloat value, GLboolean invert); -GLAPI PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage; -#define glSampleCoverage glad_glSampleCoverage -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void* data); -GLAPI PFNGLCOMPRESSEDTEXIMAGE3DPROC glad_glCompressedTexImage3D; -#define glCompressedTexImage3D glad_glCompressedTexImage3D -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data); -GLAPI PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_glCompressedTexImage2D; -#define glCompressedTexImage2D glad_glCompressedTexImage2D -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void* data); -GLAPI PFNGLCOMPRESSEDTEXIMAGE1DPROC glad_glCompressedTexImage1D; -#define glCompressedTexImage1D glad_glCompressedTexImage1D -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void* data); -GLAPI PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glad_glCompressedTexSubImage3D; -#define glCompressedTexSubImage3D glad_glCompressedTexSubImage3D -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data); -GLAPI PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_glCompressedTexSubImage2D; -#define glCompressedTexSubImage2D glad_glCompressedTexSubImage2D -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void* data); -GLAPI PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glad_glCompressedTexSubImage1D; -#define glCompressedTexSubImage1D glad_glCompressedTexSubImage1D -typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEPROC)(GLenum target, GLint level, void* img); -GLAPI PFNGLGETCOMPRESSEDTEXIMAGEPROC glad_glGetCompressedTexImage; -#define glGetCompressedTexImage glad_glGetCompressedTexImage -#endif -#ifndef GL_VERSION_1_4 -#define GL_VERSION_1_4 1 -GLAPI int GLAD_GL_VERSION_1_4; -typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEPROC)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -GLAPI PFNGLBLENDFUNCSEPARATEPROC glad_glBlendFuncSeparate; -#define glBlendFuncSeparate glad_glBlendFuncSeparate -typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSPROC)(GLenum mode, const GLint* first, const GLsizei* count, GLsizei drawcount); -GLAPI PFNGLMULTIDRAWARRAYSPROC glad_glMultiDrawArrays; -#define glMultiDrawArrays glad_glMultiDrawArrays -typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSPROC)(GLenum mode, const GLsizei* count, GLenum type, const void** indices, GLsizei drawcount); -GLAPI PFNGLMULTIDRAWELEMENTSPROC glad_glMultiDrawElements; -#define glMultiDrawElements glad_glMultiDrawElements -typedef void (APIENTRYP PFNGLPOINTPARAMETERFPROC)(GLenum pname, GLfloat param); -GLAPI PFNGLPOINTPARAMETERFPROC glad_glPointParameterf; -#define glPointParameterf glad_glPointParameterf -typedef void (APIENTRYP PFNGLPOINTPARAMETERFVPROC)(GLenum pname, const GLfloat* params); -GLAPI PFNGLPOINTPARAMETERFVPROC glad_glPointParameterfv; -#define glPointParameterfv glad_glPointParameterfv -typedef void (APIENTRYP PFNGLPOINTPARAMETERIPROC)(GLenum pname, GLint param); -GLAPI PFNGLPOINTPARAMETERIPROC glad_glPointParameteri; -#define glPointParameteri glad_glPointParameteri -typedef void (APIENTRYP PFNGLPOINTPARAMETERIVPROC)(GLenum pname, const GLint* params); -GLAPI PFNGLPOINTPARAMETERIVPROC glad_glPointParameteriv; -#define glPointParameteriv glad_glPointParameteriv -typedef void (APIENTRYP PFNGLBLENDCOLORPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GLAPI PFNGLBLENDCOLORPROC glad_glBlendColor; -#define glBlendColor glad_glBlendColor -typedef void (APIENTRYP PFNGLBLENDEQUATIONPROC)(GLenum mode); -GLAPI PFNGLBLENDEQUATIONPROC glad_glBlendEquation; -#define glBlendEquation glad_glBlendEquation -#endif -#ifndef GL_VERSION_1_5 -#define GL_VERSION_1_5 1 -GLAPI int GLAD_GL_VERSION_1_5; -typedef void (APIENTRYP PFNGLGENQUERIESPROC)(GLsizei n, GLuint* ids); -GLAPI PFNGLGENQUERIESPROC glad_glGenQueries; -#define glGenQueries glad_glGenQueries -typedef void (APIENTRYP PFNGLDELETEQUERIESPROC)(GLsizei n, const GLuint* ids); -GLAPI PFNGLDELETEQUERIESPROC glad_glDeleteQueries; -#define glDeleteQueries glad_glDeleteQueries -typedef GLboolean (APIENTRYP PFNGLISQUERYPROC)(GLuint id); -GLAPI PFNGLISQUERYPROC glad_glIsQuery; -#define glIsQuery glad_glIsQuery -typedef void (APIENTRYP PFNGLBEGINQUERYPROC)(GLenum target, GLuint id); -GLAPI PFNGLBEGINQUERYPROC glad_glBeginQuery; -#define glBeginQuery glad_glBeginQuery -typedef void (APIENTRYP PFNGLENDQUERYPROC)(GLenum target); -GLAPI PFNGLENDQUERYPROC glad_glEndQuery; -#define glEndQuery glad_glEndQuery -typedef void (APIENTRYP PFNGLGETQUERYIVPROC)(GLenum target, GLenum pname, GLint* params); -GLAPI PFNGLGETQUERYIVPROC glad_glGetQueryiv; -#define glGetQueryiv glad_glGetQueryiv -typedef void (APIENTRYP PFNGLGETQUERYOBJECTIVPROC)(GLuint id, GLenum pname, GLint* params); -GLAPI PFNGLGETQUERYOBJECTIVPROC glad_glGetQueryObjectiv; -#define glGetQueryObjectiv glad_glGetQueryObjectiv -typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVPROC)(GLuint id, GLenum pname, GLuint* params); -GLAPI PFNGLGETQUERYOBJECTUIVPROC glad_glGetQueryObjectuiv; -#define glGetQueryObjectuiv glad_glGetQueryObjectuiv -typedef void (APIENTRYP PFNGLBINDBUFFERPROC)(GLenum target, GLuint buffer); -GLAPI PFNGLBINDBUFFERPROC glad_glBindBuffer; -#define glBindBuffer glad_glBindBuffer -typedef void (APIENTRYP PFNGLDELETEBUFFERSPROC)(GLsizei n, const GLuint* buffers); -GLAPI PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers; -#define glDeleteBuffers glad_glDeleteBuffers -typedef void (APIENTRYP PFNGLGENBUFFERSPROC)(GLsizei n, GLuint* buffers); -GLAPI PFNGLGENBUFFERSPROC glad_glGenBuffers; -#define glGenBuffers glad_glGenBuffers -typedef GLboolean (APIENTRYP PFNGLISBUFFERPROC)(GLuint buffer); -GLAPI PFNGLISBUFFERPROC glad_glIsBuffer; -#define glIsBuffer glad_glIsBuffer -typedef void (APIENTRYP PFNGLBUFFERDATAPROC)(GLenum target, GLsizeiptr size, const void* data, GLenum usage); -GLAPI PFNGLBUFFERDATAPROC glad_glBufferData; -#define glBufferData glad_glBufferData -typedef void (APIENTRYP PFNGLBUFFERSUBDATAPROC)(GLenum target, GLintptr offset, GLsizeiptr size, const void* data); -GLAPI PFNGLBUFFERSUBDATAPROC glad_glBufferSubData; -#define glBufferSubData glad_glBufferSubData -typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAPROC)(GLenum target, GLintptr offset, GLsizeiptr size, void* data); -GLAPI PFNGLGETBUFFERSUBDATAPROC glad_glGetBufferSubData; -#define glGetBufferSubData glad_glGetBufferSubData -typedef void* (APIENTRYP PFNGLMAPBUFFERPROC)(GLenum target, GLenum access); -GLAPI PFNGLMAPBUFFERPROC glad_glMapBuffer; -#define glMapBuffer glad_glMapBuffer -typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERPROC)(GLenum target); -GLAPI PFNGLUNMAPBUFFERPROC glad_glUnmapBuffer; -#define glUnmapBuffer glad_glUnmapBuffer -typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint* params); -GLAPI PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv; -#define glGetBufferParameteriv glad_glGetBufferParameteriv -typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVPROC)(GLenum target, GLenum pname, void** params); -GLAPI PFNGLGETBUFFERPOINTERVPROC glad_glGetBufferPointerv; -#define glGetBufferPointerv glad_glGetBufferPointerv -#endif -#ifndef GL_VERSION_2_0 -#define GL_VERSION_2_0 1 -GLAPI int GLAD_GL_VERSION_2_0; -typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC)(GLenum modeRGB, GLenum modeAlpha); -GLAPI PFNGLBLENDEQUATIONSEPARATEPROC glad_glBlendEquationSeparate; -#define glBlendEquationSeparate glad_glBlendEquationSeparate -typedef void (APIENTRYP PFNGLDRAWBUFFERSPROC)(GLsizei n, const GLenum* bufs); -GLAPI PFNGLDRAWBUFFERSPROC glad_glDrawBuffers; -#define glDrawBuffers glad_glDrawBuffers -typedef void (APIENTRYP PFNGLSTENCILOPSEPARATEPROC)(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -GLAPI PFNGLSTENCILOPSEPARATEPROC glad_glStencilOpSeparate; -#define glStencilOpSeparate glad_glStencilOpSeparate -typedef void (APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC)(GLenum face, GLenum func, GLint ref, GLuint mask); -GLAPI PFNGLSTENCILFUNCSEPARATEPROC glad_glStencilFuncSeparate; -#define glStencilFuncSeparate glad_glStencilFuncSeparate -typedef void (APIENTRYP PFNGLSTENCILMASKSEPARATEPROC)(GLenum face, GLuint mask); -GLAPI PFNGLSTENCILMASKSEPARATEPROC glad_glStencilMaskSeparate; -#define glStencilMaskSeparate glad_glStencilMaskSeparate -typedef void (APIENTRYP PFNGLATTACHSHADERPROC)(GLuint program, GLuint shader); -GLAPI PFNGLATTACHSHADERPROC glad_glAttachShader; -#define glAttachShader glad_glAttachShader -typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONPROC)(GLuint program, GLuint index, const GLchar* name); -GLAPI PFNGLBINDATTRIBLOCATIONPROC glad_glBindAttribLocation; -#define glBindAttribLocation glad_glBindAttribLocation -typedef void (APIENTRYP PFNGLCOMPILESHADERPROC)(GLuint shader); -GLAPI PFNGLCOMPILESHADERPROC glad_glCompileShader; -#define glCompileShader glad_glCompileShader -typedef GLuint (APIENTRYP PFNGLCREATEPROGRAMPROC)(); -GLAPI PFNGLCREATEPROGRAMPROC glad_glCreateProgram; -#define glCreateProgram glad_glCreateProgram -typedef GLuint (APIENTRYP PFNGLCREATESHADERPROC)(GLenum type); -GLAPI PFNGLCREATESHADERPROC glad_glCreateShader; -#define glCreateShader glad_glCreateShader -typedef void (APIENTRYP PFNGLDELETEPROGRAMPROC)(GLuint program); -GLAPI PFNGLDELETEPROGRAMPROC glad_glDeleteProgram; -#define glDeleteProgram glad_glDeleteProgram -typedef void (APIENTRYP PFNGLDELETESHADERPROC)(GLuint shader); -GLAPI PFNGLDELETESHADERPROC glad_glDeleteShader; -#define glDeleteShader glad_glDeleteShader -typedef void (APIENTRYP PFNGLDETACHSHADERPROC)(GLuint program, GLuint shader); -GLAPI PFNGLDETACHSHADERPROC glad_glDetachShader; -#define glDetachShader glad_glDetachShader -typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC)(GLuint index); -GLAPI PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_glDisableVertexAttribArray; -#define glDisableVertexAttribArray glad_glDisableVertexAttribArray -typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC)(GLuint index); -GLAPI PFNGLENABLEVERTEXATTRIBARRAYPROC glad_glEnableVertexAttribArray; -#define glEnableVertexAttribArray glad_glEnableVertexAttribArray -typedef void (APIENTRYP PFNGLGETACTIVEATTRIBPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* type, GLchar* name); -GLAPI PFNGLGETACTIVEATTRIBPROC glad_glGetActiveAttrib; -#define glGetActiveAttrib glad_glGetActiveAttrib -typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLint* size, GLenum* type, GLchar* name); -GLAPI PFNGLGETACTIVEUNIFORMPROC glad_glGetActiveUniform; -#define glGetActiveUniform glad_glGetActiveUniform -typedef void (APIENTRYP PFNGLGETATTACHEDSHADERSPROC)(GLuint program, GLsizei maxCount, GLsizei* count, GLuint* shaders); -GLAPI PFNGLGETATTACHEDSHADERSPROC glad_glGetAttachedShaders; -#define glGetAttachedShaders glad_glGetAttachedShaders -typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONPROC)(GLuint program, const GLchar* name); -GLAPI PFNGLGETATTRIBLOCATIONPROC glad_glGetAttribLocation; -#define glGetAttribLocation glad_glGetAttribLocation -typedef void (APIENTRYP PFNGLGETPROGRAMIVPROC)(GLuint program, GLenum pname, GLint* params); -GLAPI PFNGLGETPROGRAMIVPROC glad_glGetProgramiv; -#define glGetProgramiv glad_glGetProgramiv -typedef void (APIENTRYP PFNGLGETPROGRAMINFOLOGPROC)(GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog); -GLAPI PFNGLGETPROGRAMINFOLOGPROC glad_glGetProgramInfoLog; -#define glGetProgramInfoLog glad_glGetProgramInfoLog -typedef void (APIENTRYP PFNGLGETSHADERIVPROC)(GLuint shader, GLenum pname, GLint* params); -GLAPI PFNGLGETSHADERIVPROC glad_glGetShaderiv; -#define glGetShaderiv glad_glGetShaderiv -typedef void (APIENTRYP PFNGLGETSHADERINFOLOGPROC)(GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog); -GLAPI PFNGLGETSHADERINFOLOGPROC glad_glGetShaderInfoLog; -#define glGetShaderInfoLog glad_glGetShaderInfoLog -typedef void (APIENTRYP PFNGLGETSHADERSOURCEPROC)(GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* source); -GLAPI PFNGLGETSHADERSOURCEPROC glad_glGetShaderSource; -#define glGetShaderSource glad_glGetShaderSource -typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONPROC)(GLuint program, const GLchar* name); -GLAPI PFNGLGETUNIFORMLOCATIONPROC glad_glGetUniformLocation; -#define glGetUniformLocation glad_glGetUniformLocation -typedef void (APIENTRYP PFNGLGETUNIFORMFVPROC)(GLuint program, GLint location, GLfloat* params); -GLAPI PFNGLGETUNIFORMFVPROC glad_glGetUniformfv; -#define glGetUniformfv glad_glGetUniformfv -typedef void (APIENTRYP PFNGLGETUNIFORMIVPROC)(GLuint program, GLint location, GLint* params); -GLAPI PFNGLGETUNIFORMIVPROC glad_glGetUniformiv; -#define glGetUniformiv glad_glGetUniformiv -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVPROC)(GLuint index, GLenum pname, GLdouble* params); -GLAPI PFNGLGETVERTEXATTRIBDVPROC glad_glGetVertexAttribdv; -#define glGetVertexAttribdv glad_glGetVertexAttribdv -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVPROC)(GLuint index, GLenum pname, GLfloat* params); -GLAPI PFNGLGETVERTEXATTRIBFVPROC glad_glGetVertexAttribfv; -#define glGetVertexAttribfv glad_glGetVertexAttribfv -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVPROC)(GLuint index, GLenum pname, GLint* params); -GLAPI PFNGLGETVERTEXATTRIBIVPROC glad_glGetVertexAttribiv; -#define glGetVertexAttribiv glad_glGetVertexAttribiv -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC)(GLuint index, GLenum pname, void** pointer); -GLAPI PFNGLGETVERTEXATTRIBPOINTERVPROC glad_glGetVertexAttribPointerv; -#define glGetVertexAttribPointerv glad_glGetVertexAttribPointerv -typedef GLboolean (APIENTRYP PFNGLISPROGRAMPROC)(GLuint program); -GLAPI PFNGLISPROGRAMPROC glad_glIsProgram; -#define glIsProgram glad_glIsProgram -typedef GLboolean (APIENTRYP PFNGLISSHADERPROC)(GLuint shader); -GLAPI PFNGLISSHADERPROC glad_glIsShader; -#define glIsShader glad_glIsShader -typedef void (APIENTRYP PFNGLLINKPROGRAMPROC)(GLuint program); -GLAPI PFNGLLINKPROGRAMPROC glad_glLinkProgram; -#define glLinkProgram glad_glLinkProgram -typedef void (APIENTRYP PFNGLSHADERSOURCEPROC)(GLuint shader, GLsizei count, const GLchar** string, const GLint* length); -GLAPI PFNGLSHADERSOURCEPROC glad_glShaderSource; -#define glShaderSource glad_glShaderSource -typedef void (APIENTRYP PFNGLUSEPROGRAMPROC)(GLuint program); -GLAPI PFNGLUSEPROGRAMPROC glad_glUseProgram; -#define glUseProgram glad_glUseProgram -typedef void (APIENTRYP PFNGLUNIFORM1FPROC)(GLint location, GLfloat v0); -GLAPI PFNGLUNIFORM1FPROC glad_glUniform1f; -#define glUniform1f glad_glUniform1f -typedef void (APIENTRYP PFNGLUNIFORM2FPROC)(GLint location, GLfloat v0, GLfloat v1); -GLAPI PFNGLUNIFORM2FPROC glad_glUniform2f; -#define glUniform2f glad_glUniform2f -typedef void (APIENTRYP PFNGLUNIFORM3FPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GLAPI PFNGLUNIFORM3FPROC glad_glUniform3f; -#define glUniform3f glad_glUniform3f -typedef void (APIENTRYP PFNGLUNIFORM4FPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GLAPI PFNGLUNIFORM4FPROC glad_glUniform4f; -#define glUniform4f glad_glUniform4f -typedef void (APIENTRYP PFNGLUNIFORM1IPROC)(GLint location, GLint v0); -GLAPI PFNGLUNIFORM1IPROC glad_glUniform1i; -#define glUniform1i glad_glUniform1i -typedef void (APIENTRYP PFNGLUNIFORM2IPROC)(GLint location, GLint v0, GLint v1); -GLAPI PFNGLUNIFORM2IPROC glad_glUniform2i; -#define glUniform2i glad_glUniform2i -typedef void (APIENTRYP PFNGLUNIFORM3IPROC)(GLint location, GLint v0, GLint v1, GLint v2); -GLAPI PFNGLUNIFORM3IPROC glad_glUniform3i; -#define glUniform3i glad_glUniform3i -typedef void (APIENTRYP PFNGLUNIFORM4IPROC)(GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GLAPI PFNGLUNIFORM4IPROC glad_glUniform4i; -#define glUniform4i glad_glUniform4i -typedef void (APIENTRYP PFNGLUNIFORM1FVPROC)(GLint location, GLsizei count, const GLfloat* value); -GLAPI PFNGLUNIFORM1FVPROC glad_glUniform1fv; -#define glUniform1fv glad_glUniform1fv -typedef void (APIENTRYP PFNGLUNIFORM2FVPROC)(GLint location, GLsizei count, const GLfloat* value); -GLAPI PFNGLUNIFORM2FVPROC glad_glUniform2fv; -#define glUniform2fv glad_glUniform2fv -typedef void (APIENTRYP PFNGLUNIFORM3FVPROC)(GLint location, GLsizei count, const GLfloat* value); -GLAPI PFNGLUNIFORM3FVPROC glad_glUniform3fv; -#define glUniform3fv glad_glUniform3fv -typedef void (APIENTRYP PFNGLUNIFORM4FVPROC)(GLint location, GLsizei count, const GLfloat* value); -GLAPI PFNGLUNIFORM4FVPROC glad_glUniform4fv; -#define glUniform4fv glad_glUniform4fv -typedef void (APIENTRYP PFNGLUNIFORM1IVPROC)(GLint location, GLsizei count, const GLint* value); -GLAPI PFNGLUNIFORM1IVPROC glad_glUniform1iv; -#define glUniform1iv glad_glUniform1iv -typedef void (APIENTRYP PFNGLUNIFORM2IVPROC)(GLint location, GLsizei count, const GLint* value); -GLAPI PFNGLUNIFORM2IVPROC glad_glUniform2iv; -#define glUniform2iv glad_glUniform2iv -typedef void (APIENTRYP PFNGLUNIFORM3IVPROC)(GLint location, GLsizei count, const GLint* value); -GLAPI PFNGLUNIFORM3IVPROC glad_glUniform3iv; -#define glUniform3iv glad_glUniform3iv -typedef void (APIENTRYP PFNGLUNIFORM4IVPROC)(GLint location, GLsizei count, const GLint* value); -GLAPI PFNGLUNIFORM4IVPROC glad_glUniform4iv; -#define glUniform4iv glad_glUniform4iv -typedef void (APIENTRYP PFNGLUNIFORMMATRIX2FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -GLAPI PFNGLUNIFORMMATRIX2FVPROC glad_glUniformMatrix2fv; -#define glUniformMatrix2fv glad_glUniformMatrix2fv -typedef void (APIENTRYP PFNGLUNIFORMMATRIX3FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -GLAPI PFNGLUNIFORMMATRIX3FVPROC glad_glUniformMatrix3fv; -#define glUniformMatrix3fv glad_glUniformMatrix3fv -typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -GLAPI PFNGLUNIFORMMATRIX4FVPROC glad_glUniformMatrix4fv; -#define glUniformMatrix4fv glad_glUniformMatrix4fv -typedef void (APIENTRYP PFNGLVALIDATEPROGRAMPROC)(GLuint program); -GLAPI PFNGLVALIDATEPROGRAMPROC glad_glValidateProgram; -#define glValidateProgram glad_glValidateProgram -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DPROC)(GLuint index, GLdouble x); -GLAPI PFNGLVERTEXATTRIB1DPROC glad_glVertexAttrib1d; -#define glVertexAttrib1d glad_glVertexAttrib1d -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVPROC)(GLuint index, const GLdouble* v); -GLAPI PFNGLVERTEXATTRIB1DVPROC glad_glVertexAttrib1dv; -#define glVertexAttrib1dv glad_glVertexAttrib1dv -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FPROC)(GLuint index, GLfloat x); -GLAPI PFNGLVERTEXATTRIB1FPROC glad_glVertexAttrib1f; -#define glVertexAttrib1f glad_glVertexAttrib1f -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVPROC)(GLuint index, const GLfloat* v); -GLAPI PFNGLVERTEXATTRIB1FVPROC glad_glVertexAttrib1fv; -#define glVertexAttrib1fv glad_glVertexAttrib1fv -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SPROC)(GLuint index, GLshort x); -GLAPI PFNGLVERTEXATTRIB1SPROC glad_glVertexAttrib1s; -#define glVertexAttrib1s glad_glVertexAttrib1s -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVPROC)(GLuint index, const GLshort* v); -GLAPI PFNGLVERTEXATTRIB1SVPROC glad_glVertexAttrib1sv; -#define glVertexAttrib1sv glad_glVertexAttrib1sv -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DPROC)(GLuint index, GLdouble x, GLdouble y); -GLAPI PFNGLVERTEXATTRIB2DPROC glad_glVertexAttrib2d; -#define glVertexAttrib2d glad_glVertexAttrib2d -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVPROC)(GLuint index, const GLdouble* v); -GLAPI PFNGLVERTEXATTRIB2DVPROC glad_glVertexAttrib2dv; -#define glVertexAttrib2dv glad_glVertexAttrib2dv -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FPROC)(GLuint index, GLfloat x, GLfloat y); -GLAPI PFNGLVERTEXATTRIB2FPROC glad_glVertexAttrib2f; -#define glVertexAttrib2f glad_glVertexAttrib2f -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVPROC)(GLuint index, const GLfloat* v); -GLAPI PFNGLVERTEXATTRIB2FVPROC glad_glVertexAttrib2fv; -#define glVertexAttrib2fv glad_glVertexAttrib2fv -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SPROC)(GLuint index, GLshort x, GLshort y); -GLAPI PFNGLVERTEXATTRIB2SPROC glad_glVertexAttrib2s; -#define glVertexAttrib2s glad_glVertexAttrib2s -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVPROC)(GLuint index, const GLshort* v); -GLAPI PFNGLVERTEXATTRIB2SVPROC glad_glVertexAttrib2sv; -#define glVertexAttrib2sv glad_glVertexAttrib2sv -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z); -GLAPI PFNGLVERTEXATTRIB3DPROC glad_glVertexAttrib3d; -#define glVertexAttrib3d glad_glVertexAttrib3d -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVPROC)(GLuint index, const GLdouble* v); -GLAPI PFNGLVERTEXATTRIB3DVPROC glad_glVertexAttrib3dv; -#define glVertexAttrib3dv glad_glVertexAttrib3dv -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z); -GLAPI PFNGLVERTEXATTRIB3FPROC glad_glVertexAttrib3f; -#define glVertexAttrib3f glad_glVertexAttrib3f -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVPROC)(GLuint index, const GLfloat* v); -GLAPI PFNGLVERTEXATTRIB3FVPROC glad_glVertexAttrib3fv; -#define glVertexAttrib3fv glad_glVertexAttrib3fv -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SPROC)(GLuint index, GLshort x, GLshort y, GLshort z); -GLAPI PFNGLVERTEXATTRIB3SPROC glad_glVertexAttrib3s; -#define glVertexAttrib3s glad_glVertexAttrib3s -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVPROC)(GLuint index, const GLshort* v); -GLAPI PFNGLVERTEXATTRIB3SVPROC glad_glVertexAttrib3sv; -#define glVertexAttrib3sv glad_glVertexAttrib3sv -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVPROC)(GLuint index, const GLbyte* v); -GLAPI PFNGLVERTEXATTRIB4NBVPROC glad_glVertexAttrib4Nbv; -#define glVertexAttrib4Nbv glad_glVertexAttrib4Nbv -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVPROC)(GLuint index, const GLint* v); -GLAPI PFNGLVERTEXATTRIB4NIVPROC glad_glVertexAttrib4Niv; -#define glVertexAttrib4Niv glad_glVertexAttrib4Niv -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVPROC)(GLuint index, const GLshort* v); -GLAPI PFNGLVERTEXATTRIB4NSVPROC glad_glVertexAttrib4Nsv; -#define glVertexAttrib4Nsv glad_glVertexAttrib4Nsv -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBPROC)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -GLAPI PFNGLVERTEXATTRIB4NUBPROC glad_glVertexAttrib4Nub; -#define glVertexAttrib4Nub glad_glVertexAttrib4Nub -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVPROC)(GLuint index, const GLubyte* v); -GLAPI PFNGLVERTEXATTRIB4NUBVPROC glad_glVertexAttrib4Nubv; -#define glVertexAttrib4Nubv glad_glVertexAttrib4Nubv -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVPROC)(GLuint index, const GLuint* v); -GLAPI PFNGLVERTEXATTRIB4NUIVPROC glad_glVertexAttrib4Nuiv; -#define glVertexAttrib4Nuiv glad_glVertexAttrib4Nuiv -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVPROC)(GLuint index, const GLushort* v); -GLAPI PFNGLVERTEXATTRIB4NUSVPROC glad_glVertexAttrib4Nusv; -#define glVertexAttrib4Nusv glad_glVertexAttrib4Nusv -typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVPROC)(GLuint index, const GLbyte* v); -GLAPI PFNGLVERTEXATTRIB4BVPROC glad_glVertexAttrib4bv; -#define glVertexAttrib4bv glad_glVertexAttrib4bv -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI PFNGLVERTEXATTRIB4DPROC glad_glVertexAttrib4d; -#define glVertexAttrib4d glad_glVertexAttrib4d -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVPROC)(GLuint index, const GLdouble* v); -GLAPI PFNGLVERTEXATTRIB4DVPROC glad_glVertexAttrib4dv; -#define glVertexAttrib4dv glad_glVertexAttrib4dv -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI PFNGLVERTEXATTRIB4FPROC glad_glVertexAttrib4f; -#define glVertexAttrib4f glad_glVertexAttrib4f -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVPROC)(GLuint index, const GLfloat* v); -GLAPI PFNGLVERTEXATTRIB4FVPROC glad_glVertexAttrib4fv; -#define glVertexAttrib4fv glad_glVertexAttrib4fv -typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVPROC)(GLuint index, const GLint* v); -GLAPI PFNGLVERTEXATTRIB4IVPROC glad_glVertexAttrib4iv; -#define glVertexAttrib4iv glad_glVertexAttrib4iv -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SPROC)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -GLAPI PFNGLVERTEXATTRIB4SPROC glad_glVertexAttrib4s; -#define glVertexAttrib4s glad_glVertexAttrib4s -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVPROC)(GLuint index, const GLshort* v); -GLAPI PFNGLVERTEXATTRIB4SVPROC glad_glVertexAttrib4sv; -#define glVertexAttrib4sv glad_glVertexAttrib4sv -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVPROC)(GLuint index, const GLubyte* v); -GLAPI PFNGLVERTEXATTRIB4UBVPROC glad_glVertexAttrib4ubv; -#define glVertexAttrib4ubv glad_glVertexAttrib4ubv -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVPROC)(GLuint index, const GLuint* v); -GLAPI PFNGLVERTEXATTRIB4UIVPROC glad_glVertexAttrib4uiv; -#define glVertexAttrib4uiv glad_glVertexAttrib4uiv -typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVPROC)(GLuint index, const GLushort* v); -GLAPI PFNGLVERTEXATTRIB4USVPROC glad_glVertexAttrib4usv; -#define glVertexAttrib4usv glad_glVertexAttrib4usv -typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* pointer); -GLAPI PFNGLVERTEXATTRIBPOINTERPROC glad_glVertexAttribPointer; -#define glVertexAttribPointer glad_glVertexAttribPointer -#endif -#ifndef GL_VERSION_2_1 -#define GL_VERSION_2_1 1 -GLAPI int GLAD_GL_VERSION_2_1; -typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -GLAPI PFNGLUNIFORMMATRIX2X3FVPROC glad_glUniformMatrix2x3fv; -#define glUniformMatrix2x3fv glad_glUniformMatrix2x3fv -typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -GLAPI PFNGLUNIFORMMATRIX3X2FVPROC glad_glUniformMatrix3x2fv; -#define glUniformMatrix3x2fv glad_glUniformMatrix3x2fv -typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -GLAPI PFNGLUNIFORMMATRIX2X4FVPROC glad_glUniformMatrix2x4fv; -#define glUniformMatrix2x4fv glad_glUniformMatrix2x4fv -typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -GLAPI PFNGLUNIFORMMATRIX4X2FVPROC glad_glUniformMatrix4x2fv; -#define glUniformMatrix4x2fv glad_glUniformMatrix4x2fv -typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -GLAPI PFNGLUNIFORMMATRIX3X4FVPROC glad_glUniformMatrix3x4fv; -#define glUniformMatrix3x4fv glad_glUniformMatrix3x4fv -typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); -GLAPI PFNGLUNIFORMMATRIX4X3FVPROC glad_glUniformMatrix4x3fv; -#define glUniformMatrix4x3fv glad_glUniformMatrix4x3fv -#endif -#ifndef GL_VERSION_3_0 -#define GL_VERSION_3_0 1 -GLAPI int GLAD_GL_VERSION_3_0; -typedef void (APIENTRYP PFNGLCOLORMASKIPROC)(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -GLAPI PFNGLCOLORMASKIPROC glad_glColorMaski; -#define glColorMaski glad_glColorMaski -typedef void (APIENTRYP PFNGLGETBOOLEANI_VPROC)(GLenum target, GLuint index, GLboolean* data); -GLAPI PFNGLGETBOOLEANI_VPROC glad_glGetBooleani_v; -#define glGetBooleani_v glad_glGetBooleani_v -typedef void (APIENTRYP PFNGLGETINTEGERI_VPROC)(GLenum target, GLuint index, GLint* data); -GLAPI PFNGLGETINTEGERI_VPROC glad_glGetIntegeri_v; -#define glGetIntegeri_v glad_glGetIntegeri_v -typedef void (APIENTRYP PFNGLENABLEIPROC)(GLenum target, GLuint index); -GLAPI PFNGLENABLEIPROC glad_glEnablei; -#define glEnablei glad_glEnablei -typedef void (APIENTRYP PFNGLDISABLEIPROC)(GLenum target, GLuint index); -GLAPI PFNGLDISABLEIPROC glad_glDisablei; -#define glDisablei glad_glDisablei -typedef GLboolean (APIENTRYP PFNGLISENABLEDIPROC)(GLenum target, GLuint index); -GLAPI PFNGLISENABLEDIPROC glad_glIsEnabledi; -#define glIsEnabledi glad_glIsEnabledi -typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKPROC)(GLenum primitiveMode); -GLAPI PFNGLBEGINTRANSFORMFEEDBACKPROC glad_glBeginTransformFeedback; -#define glBeginTransformFeedback glad_glBeginTransformFeedback -typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC)(); -GLAPI PFNGLENDTRANSFORMFEEDBACKPROC glad_glEndTransformFeedback; -#define glEndTransformFeedback glad_glEndTransformFeedback -typedef void (APIENTRYP PFNGLBINDBUFFERRANGEPROC)(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -GLAPI PFNGLBINDBUFFERRANGEPROC glad_glBindBufferRange; -#define glBindBufferRange glad_glBindBufferRange -typedef void (APIENTRYP PFNGLBINDBUFFERBASEPROC)(GLenum target, GLuint index, GLuint buffer); -GLAPI PFNGLBINDBUFFERBASEPROC glad_glBindBufferBase; -#define glBindBufferBase glad_glBindBufferBase -typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSPROC)(GLuint program, GLsizei count, const GLchar** varyings, GLenum bufferMode); -GLAPI PFNGLTRANSFORMFEEDBACKVARYINGSPROC glad_glTransformFeedbackVaryings; -#define glTransformFeedbackVaryings glad_glTransformFeedbackVaryings -typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* type, GLchar* name); -GLAPI PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glad_glGetTransformFeedbackVarying; -#define glGetTransformFeedbackVarying glad_glGetTransformFeedbackVarying -typedef void (APIENTRYP PFNGLCLAMPCOLORPROC)(GLenum target, GLenum clamp); -GLAPI PFNGLCLAMPCOLORPROC glad_glClampColor; -#define glClampColor glad_glClampColor -typedef void (APIENTRYP PFNGLBEGINCONDITIONALRENDERPROC)(GLuint id, GLenum mode); -GLAPI PFNGLBEGINCONDITIONALRENDERPROC glad_glBeginConditionalRender; -#define glBeginConditionalRender glad_glBeginConditionalRender -typedef void (APIENTRYP PFNGLENDCONDITIONALRENDERPROC)(); -GLAPI PFNGLENDCONDITIONALRENDERPROC glad_glEndConditionalRender; -#define glEndConditionalRender glad_glEndConditionalRender -typedef void (APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC)(GLuint index, GLint size, GLenum type, GLsizei stride, const void* pointer); -GLAPI PFNGLVERTEXATTRIBIPOINTERPROC glad_glVertexAttribIPointer; -#define glVertexAttribIPointer glad_glVertexAttribIPointer -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIIVPROC)(GLuint index, GLenum pname, GLint* params); -GLAPI PFNGLGETVERTEXATTRIBIIVPROC glad_glGetVertexAttribIiv; -#define glGetVertexAttribIiv glad_glGetVertexAttribIiv -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIUIVPROC)(GLuint index, GLenum pname, GLuint* params); -GLAPI PFNGLGETVERTEXATTRIBIUIVPROC glad_glGetVertexAttribIuiv; -#define glGetVertexAttribIuiv glad_glGetVertexAttribIuiv -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IPROC)(GLuint index, GLint x); -GLAPI PFNGLVERTEXATTRIBI1IPROC glad_glVertexAttribI1i; -#define glVertexAttribI1i glad_glVertexAttribI1i -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IPROC)(GLuint index, GLint x, GLint y); -GLAPI PFNGLVERTEXATTRIBI2IPROC glad_glVertexAttribI2i; -#define glVertexAttribI2i glad_glVertexAttribI2i -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IPROC)(GLuint index, GLint x, GLint y, GLint z); -GLAPI PFNGLVERTEXATTRIBI3IPROC glad_glVertexAttribI3i; -#define glVertexAttribI3i glad_glVertexAttribI3i -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IPROC)(GLuint index, GLint x, GLint y, GLint z, GLint w); -GLAPI PFNGLVERTEXATTRIBI4IPROC glad_glVertexAttribI4i; -#define glVertexAttribI4i glad_glVertexAttribI4i -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIPROC)(GLuint index, GLuint x); -GLAPI PFNGLVERTEXATTRIBI1UIPROC glad_glVertexAttribI1ui; -#define glVertexAttribI1ui glad_glVertexAttribI1ui -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIPROC)(GLuint index, GLuint x, GLuint y); -GLAPI PFNGLVERTEXATTRIBI2UIPROC glad_glVertexAttribI2ui; -#define glVertexAttribI2ui glad_glVertexAttribI2ui -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIPROC)(GLuint index, GLuint x, GLuint y, GLuint z); -GLAPI PFNGLVERTEXATTRIBI3UIPROC glad_glVertexAttribI3ui; -#define glVertexAttribI3ui glad_glVertexAttribI3ui -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIPROC)(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -GLAPI PFNGLVERTEXATTRIBI4UIPROC glad_glVertexAttribI4ui; -#define glVertexAttribI4ui glad_glVertexAttribI4ui -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IVPROC)(GLuint index, const GLint* v); -GLAPI PFNGLVERTEXATTRIBI1IVPROC glad_glVertexAttribI1iv; -#define glVertexAttribI1iv glad_glVertexAttribI1iv -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IVPROC)(GLuint index, const GLint* v); -GLAPI PFNGLVERTEXATTRIBI2IVPROC glad_glVertexAttribI2iv; -#define glVertexAttribI2iv glad_glVertexAttribI2iv -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IVPROC)(GLuint index, const GLint* v); -GLAPI PFNGLVERTEXATTRIBI3IVPROC glad_glVertexAttribI3iv; -#define glVertexAttribI3iv glad_glVertexAttribI3iv -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IVPROC)(GLuint index, const GLint* v); -GLAPI PFNGLVERTEXATTRIBI4IVPROC glad_glVertexAttribI4iv; -#define glVertexAttribI4iv glad_glVertexAttribI4iv -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIVPROC)(GLuint index, const GLuint* v); -GLAPI PFNGLVERTEXATTRIBI1UIVPROC glad_glVertexAttribI1uiv; -#define glVertexAttribI1uiv glad_glVertexAttribI1uiv -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIVPROC)(GLuint index, const GLuint* v); -GLAPI PFNGLVERTEXATTRIBI2UIVPROC glad_glVertexAttribI2uiv; -#define glVertexAttribI2uiv glad_glVertexAttribI2uiv -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIVPROC)(GLuint index, const GLuint* v); -GLAPI PFNGLVERTEXATTRIBI3UIVPROC glad_glVertexAttribI3uiv; -#define glVertexAttribI3uiv glad_glVertexAttribI3uiv -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIVPROC)(GLuint index, const GLuint* v); -GLAPI PFNGLVERTEXATTRIBI4UIVPROC glad_glVertexAttribI4uiv; -#define glVertexAttribI4uiv glad_glVertexAttribI4uiv -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4BVPROC)(GLuint index, const GLbyte* v); -GLAPI PFNGLVERTEXATTRIBI4BVPROC glad_glVertexAttribI4bv; -#define glVertexAttribI4bv glad_glVertexAttribI4bv -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4SVPROC)(GLuint index, const GLshort* v); -GLAPI PFNGLVERTEXATTRIBI4SVPROC glad_glVertexAttribI4sv; -#define glVertexAttribI4sv glad_glVertexAttribI4sv -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UBVPROC)(GLuint index, const GLubyte* v); -GLAPI PFNGLVERTEXATTRIBI4UBVPROC glad_glVertexAttribI4ubv; -#define glVertexAttribI4ubv glad_glVertexAttribI4ubv -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4USVPROC)(GLuint index, const GLushort* v); -GLAPI PFNGLVERTEXATTRIBI4USVPROC glad_glVertexAttribI4usv; -#define glVertexAttribI4usv glad_glVertexAttribI4usv -typedef void (APIENTRYP PFNGLGETUNIFORMUIVPROC)(GLuint program, GLint location, GLuint* params); -GLAPI PFNGLGETUNIFORMUIVPROC glad_glGetUniformuiv; -#define glGetUniformuiv glad_glGetUniformuiv -typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONPROC)(GLuint program, GLuint color, const GLchar* name); -GLAPI PFNGLBINDFRAGDATALOCATIONPROC glad_glBindFragDataLocation; -#define glBindFragDataLocation glad_glBindFragDataLocation -typedef GLint (APIENTRYP PFNGLGETFRAGDATALOCATIONPROC)(GLuint program, const GLchar* name); -GLAPI PFNGLGETFRAGDATALOCATIONPROC glad_glGetFragDataLocation; -#define glGetFragDataLocation glad_glGetFragDataLocation -typedef void (APIENTRYP PFNGLUNIFORM1UIPROC)(GLint location, GLuint v0); -GLAPI PFNGLUNIFORM1UIPROC glad_glUniform1ui; -#define glUniform1ui glad_glUniform1ui -typedef void (APIENTRYP PFNGLUNIFORM2UIPROC)(GLint location, GLuint v0, GLuint v1); -GLAPI PFNGLUNIFORM2UIPROC glad_glUniform2ui; -#define glUniform2ui glad_glUniform2ui -typedef void (APIENTRYP PFNGLUNIFORM3UIPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2); -GLAPI PFNGLUNIFORM3UIPROC glad_glUniform3ui; -#define glUniform3ui glad_glUniform3ui -typedef void (APIENTRYP PFNGLUNIFORM4UIPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GLAPI PFNGLUNIFORM4UIPROC glad_glUniform4ui; -#define glUniform4ui glad_glUniform4ui -typedef void (APIENTRYP PFNGLUNIFORM1UIVPROC)(GLint location, GLsizei count, const GLuint* value); -GLAPI PFNGLUNIFORM1UIVPROC glad_glUniform1uiv; -#define glUniform1uiv glad_glUniform1uiv -typedef void (APIENTRYP PFNGLUNIFORM2UIVPROC)(GLint location, GLsizei count, const GLuint* value); -GLAPI PFNGLUNIFORM2UIVPROC glad_glUniform2uiv; -#define glUniform2uiv glad_glUniform2uiv -typedef void (APIENTRYP PFNGLUNIFORM3UIVPROC)(GLint location, GLsizei count, const GLuint* value); -GLAPI PFNGLUNIFORM3UIVPROC glad_glUniform3uiv; -#define glUniform3uiv glad_glUniform3uiv -typedef void (APIENTRYP PFNGLUNIFORM4UIVPROC)(GLint location, GLsizei count, const GLuint* value); -GLAPI PFNGLUNIFORM4UIVPROC glad_glUniform4uiv; -#define glUniform4uiv glad_glUniform4uiv -typedef void (APIENTRYP PFNGLTEXPARAMETERIIVPROC)(GLenum target, GLenum pname, const GLint* params); -GLAPI PFNGLTEXPARAMETERIIVPROC glad_glTexParameterIiv; -#define glTexParameterIiv glad_glTexParameterIiv -typedef void (APIENTRYP PFNGLTEXPARAMETERIUIVPROC)(GLenum target, GLenum pname, const GLuint* params); -GLAPI PFNGLTEXPARAMETERIUIVPROC glad_glTexParameterIuiv; -#define glTexParameterIuiv glad_glTexParameterIuiv -typedef void (APIENTRYP PFNGLGETTEXPARAMETERIIVPROC)(GLenum target, GLenum pname, GLint* params); -GLAPI PFNGLGETTEXPARAMETERIIVPROC glad_glGetTexParameterIiv; -#define glGetTexParameterIiv glad_glGetTexParameterIiv -typedef void (APIENTRYP PFNGLGETTEXPARAMETERIUIVPROC)(GLenum target, GLenum pname, GLuint* params); -GLAPI PFNGLGETTEXPARAMETERIUIVPROC glad_glGetTexParameterIuiv; -#define glGetTexParameterIuiv glad_glGetTexParameterIuiv -typedef void (APIENTRYP PFNGLCLEARBUFFERIVPROC)(GLenum buffer, GLint drawbuffer, const GLint* value); -GLAPI PFNGLCLEARBUFFERIVPROC glad_glClearBufferiv; -#define glClearBufferiv glad_glClearBufferiv -typedef void (APIENTRYP PFNGLCLEARBUFFERUIVPROC)(GLenum buffer, GLint drawbuffer, const GLuint* value); -GLAPI PFNGLCLEARBUFFERUIVPROC glad_glClearBufferuiv; -#define glClearBufferuiv glad_glClearBufferuiv -typedef void (APIENTRYP PFNGLCLEARBUFFERFVPROC)(GLenum buffer, GLint drawbuffer, const GLfloat* value); -GLAPI PFNGLCLEARBUFFERFVPROC glad_glClearBufferfv; -#define glClearBufferfv glad_glClearBufferfv -typedef void (APIENTRYP PFNGLCLEARBUFFERFIPROC)(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); -GLAPI PFNGLCLEARBUFFERFIPROC glad_glClearBufferfi; -#define glClearBufferfi glad_glClearBufferfi -typedef const GLubyte* (APIENTRYP PFNGLGETSTRINGIPROC)(GLenum name, GLuint index); -GLAPI PFNGLGETSTRINGIPROC glad_glGetStringi; -#define glGetStringi glad_glGetStringi -typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFERPROC)(GLuint renderbuffer); -GLAPI PFNGLISRENDERBUFFERPROC glad_glIsRenderbuffer; -#define glIsRenderbuffer glad_glIsRenderbuffer -typedef void (APIENTRYP PFNGLBINDRENDERBUFFERPROC)(GLenum target, GLuint renderbuffer); -GLAPI PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer; -#define glBindRenderbuffer glad_glBindRenderbuffer -typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSPROC)(GLsizei n, const GLuint* renderbuffers); -GLAPI PFNGLDELETERENDERBUFFERSPROC glad_glDeleteRenderbuffers; -#define glDeleteRenderbuffers glad_glDeleteRenderbuffers -typedef void (APIENTRYP PFNGLGENRENDERBUFFERSPROC)(GLsizei n, GLuint* renderbuffers); -GLAPI PFNGLGENRENDERBUFFERSPROC glad_glGenRenderbuffers; -#define glGenRenderbuffers glad_glGenRenderbuffers -typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI PFNGLRENDERBUFFERSTORAGEPROC glad_glRenderbufferStorage; -#define glRenderbufferStorage glad_glRenderbufferStorage -typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint* params); -GLAPI PFNGLGETRENDERBUFFERPARAMETERIVPROC glad_glGetRenderbufferParameteriv; -#define glGetRenderbufferParameteriv glad_glGetRenderbufferParameteriv -typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFERPROC)(GLuint framebuffer); -GLAPI PFNGLISFRAMEBUFFERPROC glad_glIsFramebuffer; -#define glIsFramebuffer glad_glIsFramebuffer -typedef void (APIENTRYP PFNGLBINDFRAMEBUFFERPROC)(GLenum target, GLuint framebuffer); -GLAPI PFNGLBINDFRAMEBUFFERPROC glad_glBindFramebuffer; -#define glBindFramebuffer glad_glBindFramebuffer -typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC)(GLsizei n, const GLuint* framebuffers); -GLAPI PFNGLDELETEFRAMEBUFFERSPROC glad_glDeleteFramebuffers; -#define glDeleteFramebuffers glad_glDeleteFramebuffers -typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSPROC)(GLsizei n, GLuint* framebuffers); -GLAPI PFNGLGENFRAMEBUFFERSPROC glad_glGenFramebuffers; -#define glGenFramebuffers glad_glGenFramebuffers -typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC)(GLenum target); -GLAPI PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_glCheckFramebufferStatus; -#define glCheckFramebufferStatus glad_glCheckFramebufferStatus -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GLAPI PFNGLFRAMEBUFFERTEXTURE1DPROC glad_glFramebufferTexture1D; -#define glFramebufferTexture1D glad_glFramebufferTexture1D -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GLAPI PFNGLFRAMEBUFFERTEXTURE2DPROC glad_glFramebufferTexture2D; -#define glFramebufferTexture2D glad_glFramebufferTexture2D -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -GLAPI PFNGLFRAMEBUFFERTEXTURE3DPROC glad_glFramebufferTexture3D; -#define glFramebufferTexture3D glad_glFramebufferTexture3D -typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -GLAPI PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_glFramebufferRenderbuffer; -#define glFramebufferRenderbuffer glad_glFramebufferRenderbuffer -typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)(GLenum target, GLenum attachment, GLenum pname, GLint* params); -GLAPI PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetFramebufferAttachmentParameteriv; -#define glGetFramebufferAttachmentParameteriv glad_glGetFramebufferAttachmentParameteriv -typedef void (APIENTRYP PFNGLGENERATEMIPMAPPROC)(GLenum target); -GLAPI PFNGLGENERATEMIPMAPPROC glad_glGenerateMipmap; -#define glGenerateMipmap glad_glGenerateMipmap -typedef void (APIENTRYP PFNGLBLITFRAMEBUFFERPROC)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -GLAPI PFNGLBLITFRAMEBUFFERPROC glad_glBlitFramebuffer; -#define glBlitFramebuffer glad_glBlitFramebuffer -typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glRenderbufferStorageMultisample; -#define glRenderbufferStorageMultisample glad_glRenderbufferStorageMultisample -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -GLAPI PFNGLFRAMEBUFFERTEXTURELAYERPROC glad_glFramebufferTextureLayer; -#define glFramebufferTextureLayer glad_glFramebufferTextureLayer -typedef void* (APIENTRYP PFNGLMAPBUFFERRANGEPROC)(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -GLAPI PFNGLMAPBUFFERRANGEPROC glad_glMapBufferRange; -#define glMapBufferRange glad_glMapBufferRange -typedef void (APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEPROC)(GLenum target, GLintptr offset, GLsizeiptr length); -GLAPI PFNGLFLUSHMAPPEDBUFFERRANGEPROC glad_glFlushMappedBufferRange; -#define glFlushMappedBufferRange glad_glFlushMappedBufferRange -typedef void (APIENTRYP PFNGLBINDVERTEXARRAYPROC)(GLuint array); -GLAPI PFNGLBINDVERTEXARRAYPROC glad_glBindVertexArray; -#define glBindVertexArray glad_glBindVertexArray -typedef void (APIENTRYP PFNGLDELETEVERTEXARRAYSPROC)(GLsizei n, const GLuint* arrays); -GLAPI PFNGLDELETEVERTEXARRAYSPROC glad_glDeleteVertexArrays; -#define glDeleteVertexArrays glad_glDeleteVertexArrays -typedef void (APIENTRYP PFNGLGENVERTEXARRAYSPROC)(GLsizei n, GLuint* arrays); -GLAPI PFNGLGENVERTEXARRAYSPROC glad_glGenVertexArrays; -#define glGenVertexArrays glad_glGenVertexArrays -typedef GLboolean (APIENTRYP PFNGLISVERTEXARRAYPROC)(GLuint array); -GLAPI PFNGLISVERTEXARRAYPROC glad_glIsVertexArray; -#define glIsVertexArray glad_glIsVertexArray -#endif -#ifndef GL_VERSION_3_1 -#define GL_VERSION_3_1 1 -GLAPI int GLAD_GL_VERSION_3_1; -typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDPROC)(GLenum mode, GLint first, GLsizei count, GLsizei instancecount); -GLAPI PFNGLDRAWARRAYSINSTANCEDPROC glad_glDrawArraysInstanced; -#define glDrawArraysInstanced glad_glDrawArraysInstanced -typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDPROC)(GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei instancecount); -GLAPI PFNGLDRAWELEMENTSINSTANCEDPROC glad_glDrawElementsInstanced; -#define glDrawElementsInstanced glad_glDrawElementsInstanced -typedef void (APIENTRYP PFNGLTEXBUFFERPROC)(GLenum target, GLenum internalformat, GLuint buffer); -GLAPI PFNGLTEXBUFFERPROC glad_glTexBuffer; -#define glTexBuffer glad_glTexBuffer -typedef void (APIENTRYP PFNGLPRIMITIVERESTARTINDEXPROC)(GLuint index); -GLAPI PFNGLPRIMITIVERESTARTINDEXPROC glad_glPrimitiveRestartIndex; -#define glPrimitiveRestartIndex glad_glPrimitiveRestartIndex -typedef void (APIENTRYP PFNGLCOPYBUFFERSUBDATAPROC)(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -GLAPI PFNGLCOPYBUFFERSUBDATAPROC glad_glCopyBufferSubData; -#define glCopyBufferSubData glad_glCopyBufferSubData -typedef void (APIENTRYP PFNGLGETUNIFORMINDICESPROC)(GLuint program, GLsizei uniformCount, const GLchar** uniformNames, GLuint* uniformIndices); -GLAPI PFNGLGETUNIFORMINDICESPROC glad_glGetUniformIndices; -#define glGetUniformIndices glad_glGetUniformIndices -typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMSIVPROC)(GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params); -GLAPI PFNGLGETACTIVEUNIFORMSIVPROC glad_glGetActiveUniformsiv; -#define glGetActiveUniformsiv glad_glGetActiveUniformsiv -typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMNAMEPROC)(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName); -GLAPI PFNGLGETACTIVEUNIFORMNAMEPROC glad_glGetActiveUniformName; -#define glGetActiveUniformName glad_glGetActiveUniformName -typedef GLuint (APIENTRYP PFNGLGETUNIFORMBLOCKINDEXPROC)(GLuint program, const GLchar* uniformBlockName); -GLAPI PFNGLGETUNIFORMBLOCKINDEXPROC glad_glGetUniformBlockIndex; -#define glGetUniformBlockIndex glad_glGetUniformBlockIndex -typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVPROC)(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params); -GLAPI PFNGLGETACTIVEUNIFORMBLOCKIVPROC glad_glGetActiveUniformBlockiv; -#define glGetActiveUniformBlockiv glad_glGetActiveUniformBlockiv -typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC)(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName); -GLAPI PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glad_glGetActiveUniformBlockName; -#define glGetActiveUniformBlockName glad_glGetActiveUniformBlockName -typedef void (APIENTRYP PFNGLUNIFORMBLOCKBINDINGPROC)(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); -GLAPI PFNGLUNIFORMBLOCKBINDINGPROC glad_glUniformBlockBinding; -#define glUniformBlockBinding glad_glUniformBlockBinding -#endif -#ifndef GL_VERSION_3_2 -#define GL_VERSION_3_2 1 -GLAPI int GLAD_GL_VERSION_3_2; -typedef void (APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXPROC)(GLenum mode, GLsizei count, GLenum type, const void* indices, GLint basevertex); -GLAPI PFNGLDRAWELEMENTSBASEVERTEXPROC glad_glDrawElementsBaseVertex; -#define glDrawElementsBaseVertex glad_glDrawElementsBaseVertex -typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void* indices, GLint basevertex); -GLAPI PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glad_glDrawRangeElementsBaseVertex; -#define glDrawRangeElementsBaseVertex glad_glDrawRangeElementsBaseVertex -typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC)(GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei instancecount, GLint basevertex); -GLAPI PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glad_glDrawElementsInstancedBaseVertex; -#define glDrawElementsInstancedBaseVertex glad_glDrawElementsInstancedBaseVertex -typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC)(GLenum mode, const GLsizei* count, GLenum type, const void** indices, GLsizei drawcount, const GLint* basevertex); -GLAPI PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glad_glMultiDrawElementsBaseVertex; -#define glMultiDrawElementsBaseVertex glad_glMultiDrawElementsBaseVertex -typedef void (APIENTRYP PFNGLPROVOKINGVERTEXPROC)(GLenum mode); -GLAPI PFNGLPROVOKINGVERTEXPROC glad_glProvokingVertex; -#define glProvokingVertex glad_glProvokingVertex -typedef GLsync (APIENTRYP PFNGLFENCESYNCPROC)(GLenum condition, GLbitfield flags); -GLAPI PFNGLFENCESYNCPROC glad_glFenceSync; -#define glFenceSync glad_glFenceSync -typedef GLboolean (APIENTRYP PFNGLISSYNCPROC)(GLsync sync); -GLAPI PFNGLISSYNCPROC glad_glIsSync; -#define glIsSync glad_glIsSync -typedef void (APIENTRYP PFNGLDELETESYNCPROC)(GLsync sync); -GLAPI PFNGLDELETESYNCPROC glad_glDeleteSync; -#define glDeleteSync glad_glDeleteSync -typedef GLenum (APIENTRYP PFNGLCLIENTWAITSYNCPROC)(GLsync sync, GLbitfield flags, GLuint64 timeout); -GLAPI PFNGLCLIENTWAITSYNCPROC glad_glClientWaitSync; -#define glClientWaitSync glad_glClientWaitSync -typedef void (APIENTRYP PFNGLWAITSYNCPROC)(GLsync sync, GLbitfield flags, GLuint64 timeout); -GLAPI PFNGLWAITSYNCPROC glad_glWaitSync; -#define glWaitSync glad_glWaitSync -typedef void (APIENTRYP PFNGLGETINTEGER64VPROC)(GLenum pname, GLint64* data); -GLAPI PFNGLGETINTEGER64VPROC glad_glGetInteger64v; -#define glGetInteger64v glad_glGetInteger64v -typedef void (APIENTRYP PFNGLGETSYNCIVPROC)(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values); -GLAPI PFNGLGETSYNCIVPROC glad_glGetSynciv; -#define glGetSynciv glad_glGetSynciv -typedef void (APIENTRYP PFNGLGETINTEGER64I_VPROC)(GLenum target, GLuint index, GLint64* data); -GLAPI PFNGLGETINTEGER64I_VPROC glad_glGetInteger64i_v; -#define glGetInteger64i_v glad_glGetInteger64i_v -typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERI64VPROC)(GLenum target, GLenum pname, GLint64* params); -GLAPI PFNGLGETBUFFERPARAMETERI64VPROC glad_glGetBufferParameteri64v; -#define glGetBufferParameteri64v glad_glGetBufferParameteri64v -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level); -GLAPI PFNGLFRAMEBUFFERTEXTUREPROC glad_glFramebufferTexture; -#define glFramebufferTexture glad_glFramebufferTexture -typedef void (APIENTRYP PFNGLTEXIMAGE2DMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -GLAPI PFNGLTEXIMAGE2DMULTISAMPLEPROC glad_glTexImage2DMultisample; -#define glTexImage2DMultisample glad_glTexImage2DMultisample -typedef void (APIENTRYP PFNGLTEXIMAGE3DMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -GLAPI PFNGLTEXIMAGE3DMULTISAMPLEPROC glad_glTexImage3DMultisample; -#define glTexImage3DMultisample glad_glTexImage3DMultisample -typedef void (APIENTRYP PFNGLGETMULTISAMPLEFVPROC)(GLenum pname, GLuint index, GLfloat* val); -GLAPI PFNGLGETMULTISAMPLEFVPROC glad_glGetMultisamplefv; -#define glGetMultisamplefv glad_glGetMultisamplefv -typedef void (APIENTRYP PFNGLSAMPLEMASKIPROC)(GLuint maskNumber, GLbitfield mask); -GLAPI PFNGLSAMPLEMASKIPROC glad_glSampleMaski; -#define glSampleMaski glad_glSampleMaski -#endif -#ifndef GL_VERSION_3_3 -#define GL_VERSION_3_3 1 -GLAPI int GLAD_GL_VERSION_3_3; -typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONINDEXEDPROC)(GLuint program, GLuint colorNumber, GLuint index, const GLchar* name); -GLAPI PFNGLBINDFRAGDATALOCATIONINDEXEDPROC glad_glBindFragDataLocationIndexed; -#define glBindFragDataLocationIndexed glad_glBindFragDataLocationIndexed -typedef GLint (APIENTRYP PFNGLGETFRAGDATAINDEXPROC)(GLuint program, const GLchar* name); -GLAPI PFNGLGETFRAGDATAINDEXPROC glad_glGetFragDataIndex; -#define glGetFragDataIndex glad_glGetFragDataIndex -typedef void (APIENTRYP PFNGLGENSAMPLERSPROC)(GLsizei count, GLuint* samplers); -GLAPI PFNGLGENSAMPLERSPROC glad_glGenSamplers; -#define glGenSamplers glad_glGenSamplers -typedef void (APIENTRYP PFNGLDELETESAMPLERSPROC)(GLsizei count, const GLuint* samplers); -GLAPI PFNGLDELETESAMPLERSPROC glad_glDeleteSamplers; -#define glDeleteSamplers glad_glDeleteSamplers -typedef GLboolean (APIENTRYP PFNGLISSAMPLERPROC)(GLuint sampler); -GLAPI PFNGLISSAMPLERPROC glad_glIsSampler; -#define glIsSampler glad_glIsSampler -typedef void (APIENTRYP PFNGLBINDSAMPLERPROC)(GLuint unit, GLuint sampler); -GLAPI PFNGLBINDSAMPLERPROC glad_glBindSampler; -#define glBindSampler glad_glBindSampler -typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIPROC)(GLuint sampler, GLenum pname, GLint param); -GLAPI PFNGLSAMPLERPARAMETERIPROC glad_glSamplerParameteri; -#define glSamplerParameteri glad_glSamplerParameteri -typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIVPROC)(GLuint sampler, GLenum pname, const GLint* param); -GLAPI PFNGLSAMPLERPARAMETERIVPROC glad_glSamplerParameteriv; -#define glSamplerParameteriv glad_glSamplerParameteriv -typedef void (APIENTRYP PFNGLSAMPLERPARAMETERFPROC)(GLuint sampler, GLenum pname, GLfloat param); -GLAPI PFNGLSAMPLERPARAMETERFPROC glad_glSamplerParameterf; -#define glSamplerParameterf glad_glSamplerParameterf -typedef void (APIENTRYP PFNGLSAMPLERPARAMETERFVPROC)(GLuint sampler, GLenum pname, const GLfloat* param); -GLAPI PFNGLSAMPLERPARAMETERFVPROC glad_glSamplerParameterfv; -#define glSamplerParameterfv glad_glSamplerParameterfv -typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIIVPROC)(GLuint sampler, GLenum pname, const GLint* param); -GLAPI PFNGLSAMPLERPARAMETERIIVPROC glad_glSamplerParameterIiv; -#define glSamplerParameterIiv glad_glSamplerParameterIiv -typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIUIVPROC)(GLuint sampler, GLenum pname, const GLuint* param); -GLAPI PFNGLSAMPLERPARAMETERIUIVPROC glad_glSamplerParameterIuiv; -#define glSamplerParameterIuiv glad_glSamplerParameterIuiv -typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIVPROC)(GLuint sampler, GLenum pname, GLint* params); -GLAPI PFNGLGETSAMPLERPARAMETERIVPROC glad_glGetSamplerParameteriv; -#define glGetSamplerParameteriv glad_glGetSamplerParameteriv -typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIIVPROC)(GLuint sampler, GLenum pname, GLint* params); -GLAPI PFNGLGETSAMPLERPARAMETERIIVPROC glad_glGetSamplerParameterIiv; -#define glGetSamplerParameterIiv glad_glGetSamplerParameterIiv -typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERFVPROC)(GLuint sampler, GLenum pname, GLfloat* params); -GLAPI PFNGLGETSAMPLERPARAMETERFVPROC glad_glGetSamplerParameterfv; -#define glGetSamplerParameterfv glad_glGetSamplerParameterfv -typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIUIVPROC)(GLuint sampler, GLenum pname, GLuint* params); -GLAPI PFNGLGETSAMPLERPARAMETERIUIVPROC glad_glGetSamplerParameterIuiv; -#define glGetSamplerParameterIuiv glad_glGetSamplerParameterIuiv -typedef void (APIENTRYP PFNGLQUERYCOUNTERPROC)(GLuint id, GLenum target); -GLAPI PFNGLQUERYCOUNTERPROC glad_glQueryCounter; -#define glQueryCounter glad_glQueryCounter -typedef void (APIENTRYP PFNGLGETQUERYOBJECTI64VPROC)(GLuint id, GLenum pname, GLint64* params); -GLAPI PFNGLGETQUERYOBJECTI64VPROC glad_glGetQueryObjecti64v; -#define glGetQueryObjecti64v glad_glGetQueryObjecti64v -typedef void (APIENTRYP PFNGLGETQUERYOBJECTUI64VPROC)(GLuint id, GLenum pname, GLuint64* params); -GLAPI PFNGLGETQUERYOBJECTUI64VPROC glad_glGetQueryObjectui64v; -#define glGetQueryObjectui64v glad_glGetQueryObjectui64v -typedef void (APIENTRYP PFNGLVERTEXATTRIBDIVISORPROC)(GLuint index, GLuint divisor); -GLAPI PFNGLVERTEXATTRIBDIVISORPROC glad_glVertexAttribDivisor; -#define glVertexAttribDivisor glad_glVertexAttribDivisor -typedef void (APIENTRYP PFNGLVERTEXATTRIBP1UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value); -GLAPI PFNGLVERTEXATTRIBP1UIPROC glad_glVertexAttribP1ui; -#define glVertexAttribP1ui glad_glVertexAttribP1ui -typedef void (APIENTRYP PFNGLVERTEXATTRIBP1UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint* value); -GLAPI PFNGLVERTEXATTRIBP1UIVPROC glad_glVertexAttribP1uiv; -#define glVertexAttribP1uiv glad_glVertexAttribP1uiv -typedef void (APIENTRYP PFNGLVERTEXATTRIBP2UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value); -GLAPI PFNGLVERTEXATTRIBP2UIPROC glad_glVertexAttribP2ui; -#define glVertexAttribP2ui glad_glVertexAttribP2ui -typedef void (APIENTRYP PFNGLVERTEXATTRIBP2UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint* value); -GLAPI PFNGLVERTEXATTRIBP2UIVPROC glad_glVertexAttribP2uiv; -#define glVertexAttribP2uiv glad_glVertexAttribP2uiv -typedef void (APIENTRYP PFNGLVERTEXATTRIBP3UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value); -GLAPI PFNGLVERTEXATTRIBP3UIPROC glad_glVertexAttribP3ui; -#define glVertexAttribP3ui glad_glVertexAttribP3ui -typedef void (APIENTRYP PFNGLVERTEXATTRIBP3UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint* value); -GLAPI PFNGLVERTEXATTRIBP3UIVPROC glad_glVertexAttribP3uiv; -#define glVertexAttribP3uiv glad_glVertexAttribP3uiv -typedef void (APIENTRYP PFNGLVERTEXATTRIBP4UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value); -GLAPI PFNGLVERTEXATTRIBP4UIPROC glad_glVertexAttribP4ui; -#define glVertexAttribP4ui glad_glVertexAttribP4ui -typedef void (APIENTRYP PFNGLVERTEXATTRIBP4UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint* value); -GLAPI PFNGLVERTEXATTRIBP4UIVPROC glad_glVertexAttribP4uiv; -#define glVertexAttribP4uiv glad_glVertexAttribP4uiv -typedef void (APIENTRYP PFNGLVERTEXP2UIPROC)(GLenum type, GLuint value); -GLAPI PFNGLVERTEXP2UIPROC glad_glVertexP2ui; -#define glVertexP2ui glad_glVertexP2ui -typedef void (APIENTRYP PFNGLVERTEXP2UIVPROC)(GLenum type, const GLuint* value); -GLAPI PFNGLVERTEXP2UIVPROC glad_glVertexP2uiv; -#define glVertexP2uiv glad_glVertexP2uiv -typedef void (APIENTRYP PFNGLVERTEXP3UIPROC)(GLenum type, GLuint value); -GLAPI PFNGLVERTEXP3UIPROC glad_glVertexP3ui; -#define glVertexP3ui glad_glVertexP3ui -typedef void (APIENTRYP PFNGLVERTEXP3UIVPROC)(GLenum type, const GLuint* value); -GLAPI PFNGLVERTEXP3UIVPROC glad_glVertexP3uiv; -#define glVertexP3uiv glad_glVertexP3uiv -typedef void (APIENTRYP PFNGLVERTEXP4UIPROC)(GLenum type, GLuint value); -GLAPI PFNGLVERTEXP4UIPROC glad_glVertexP4ui; -#define glVertexP4ui glad_glVertexP4ui -typedef void (APIENTRYP PFNGLVERTEXP4UIVPROC)(GLenum type, const GLuint* value); -GLAPI PFNGLVERTEXP4UIVPROC glad_glVertexP4uiv; -#define glVertexP4uiv glad_glVertexP4uiv -typedef void (APIENTRYP PFNGLTEXCOORDP1UIPROC)(GLenum type, GLuint coords); -GLAPI PFNGLTEXCOORDP1UIPROC glad_glTexCoordP1ui; -#define glTexCoordP1ui glad_glTexCoordP1ui -typedef void (APIENTRYP PFNGLTEXCOORDP1UIVPROC)(GLenum type, const GLuint* coords); -GLAPI PFNGLTEXCOORDP1UIVPROC glad_glTexCoordP1uiv; -#define glTexCoordP1uiv glad_glTexCoordP1uiv -typedef void (APIENTRYP PFNGLTEXCOORDP2UIPROC)(GLenum type, GLuint coords); -GLAPI PFNGLTEXCOORDP2UIPROC glad_glTexCoordP2ui; -#define glTexCoordP2ui glad_glTexCoordP2ui -typedef void (APIENTRYP PFNGLTEXCOORDP2UIVPROC)(GLenum type, const GLuint* coords); -GLAPI PFNGLTEXCOORDP2UIVPROC glad_glTexCoordP2uiv; -#define glTexCoordP2uiv glad_glTexCoordP2uiv -typedef void (APIENTRYP PFNGLTEXCOORDP3UIPROC)(GLenum type, GLuint coords); -GLAPI PFNGLTEXCOORDP3UIPROC glad_glTexCoordP3ui; -#define glTexCoordP3ui glad_glTexCoordP3ui -typedef void (APIENTRYP PFNGLTEXCOORDP3UIVPROC)(GLenum type, const GLuint* coords); -GLAPI PFNGLTEXCOORDP3UIVPROC glad_glTexCoordP3uiv; -#define glTexCoordP3uiv glad_glTexCoordP3uiv -typedef void (APIENTRYP PFNGLTEXCOORDP4UIPROC)(GLenum type, GLuint coords); -GLAPI PFNGLTEXCOORDP4UIPROC glad_glTexCoordP4ui; -#define glTexCoordP4ui glad_glTexCoordP4ui -typedef void (APIENTRYP PFNGLTEXCOORDP4UIVPROC)(GLenum type, const GLuint* coords); -GLAPI PFNGLTEXCOORDP4UIVPROC glad_glTexCoordP4uiv; -#define glTexCoordP4uiv glad_glTexCoordP4uiv -typedef void (APIENTRYP PFNGLMULTITEXCOORDP1UIPROC)(GLenum texture, GLenum type, GLuint coords); -GLAPI PFNGLMULTITEXCOORDP1UIPROC glad_glMultiTexCoordP1ui; -#define glMultiTexCoordP1ui glad_glMultiTexCoordP1ui -typedef void (APIENTRYP PFNGLMULTITEXCOORDP1UIVPROC)(GLenum texture, GLenum type, const GLuint* coords); -GLAPI PFNGLMULTITEXCOORDP1UIVPROC glad_glMultiTexCoordP1uiv; -#define glMultiTexCoordP1uiv glad_glMultiTexCoordP1uiv -typedef void (APIENTRYP PFNGLMULTITEXCOORDP2UIPROC)(GLenum texture, GLenum type, GLuint coords); -GLAPI PFNGLMULTITEXCOORDP2UIPROC glad_glMultiTexCoordP2ui; -#define glMultiTexCoordP2ui glad_glMultiTexCoordP2ui -typedef void (APIENTRYP PFNGLMULTITEXCOORDP2UIVPROC)(GLenum texture, GLenum type, const GLuint* coords); -GLAPI PFNGLMULTITEXCOORDP2UIVPROC glad_glMultiTexCoordP2uiv; -#define glMultiTexCoordP2uiv glad_glMultiTexCoordP2uiv -typedef void (APIENTRYP PFNGLMULTITEXCOORDP3UIPROC)(GLenum texture, GLenum type, GLuint coords); -GLAPI PFNGLMULTITEXCOORDP3UIPROC glad_glMultiTexCoordP3ui; -#define glMultiTexCoordP3ui glad_glMultiTexCoordP3ui -typedef void (APIENTRYP PFNGLMULTITEXCOORDP3UIVPROC)(GLenum texture, GLenum type, const GLuint* coords); -GLAPI PFNGLMULTITEXCOORDP3UIVPROC glad_glMultiTexCoordP3uiv; -#define glMultiTexCoordP3uiv glad_glMultiTexCoordP3uiv -typedef void (APIENTRYP PFNGLMULTITEXCOORDP4UIPROC)(GLenum texture, GLenum type, GLuint coords); -GLAPI PFNGLMULTITEXCOORDP4UIPROC glad_glMultiTexCoordP4ui; -#define glMultiTexCoordP4ui glad_glMultiTexCoordP4ui -typedef void (APIENTRYP PFNGLMULTITEXCOORDP4UIVPROC)(GLenum texture, GLenum type, const GLuint* coords); -GLAPI PFNGLMULTITEXCOORDP4UIVPROC glad_glMultiTexCoordP4uiv; -#define glMultiTexCoordP4uiv glad_glMultiTexCoordP4uiv -typedef void (APIENTRYP PFNGLNORMALP3UIPROC)(GLenum type, GLuint coords); -GLAPI PFNGLNORMALP3UIPROC glad_glNormalP3ui; -#define glNormalP3ui glad_glNormalP3ui -typedef void (APIENTRYP PFNGLNORMALP3UIVPROC)(GLenum type, const GLuint* coords); -GLAPI PFNGLNORMALP3UIVPROC glad_glNormalP3uiv; -#define glNormalP3uiv glad_glNormalP3uiv -typedef void (APIENTRYP PFNGLCOLORP3UIPROC)(GLenum type, GLuint color); -GLAPI PFNGLCOLORP3UIPROC glad_glColorP3ui; -#define glColorP3ui glad_glColorP3ui -typedef void (APIENTRYP PFNGLCOLORP3UIVPROC)(GLenum type, const GLuint* color); -GLAPI PFNGLCOLORP3UIVPROC glad_glColorP3uiv; -#define glColorP3uiv glad_glColorP3uiv -typedef void (APIENTRYP PFNGLCOLORP4UIPROC)(GLenum type, GLuint color); -GLAPI PFNGLCOLORP4UIPROC glad_glColorP4ui; -#define glColorP4ui glad_glColorP4ui -typedef void (APIENTRYP PFNGLCOLORP4UIVPROC)(GLenum type, const GLuint* color); -GLAPI PFNGLCOLORP4UIVPROC glad_glColorP4uiv; -#define glColorP4uiv glad_glColorP4uiv -typedef void (APIENTRYP PFNGLSECONDARYCOLORP3UIPROC)(GLenum type, GLuint color); -GLAPI PFNGLSECONDARYCOLORP3UIPROC glad_glSecondaryColorP3ui; -#define glSecondaryColorP3ui glad_glSecondaryColorP3ui -typedef void (APIENTRYP PFNGLSECONDARYCOLORP3UIVPROC)(GLenum type, const GLuint* color); -GLAPI PFNGLSECONDARYCOLORP3UIVPROC glad_glSecondaryColorP3uiv; -#define glSecondaryColorP3uiv glad_glSecondaryColorP3uiv -#endif -#define GL_MAX_DEBUG_MESSAGE_LENGTH_AMD 0x9143 -#define GL_MAX_DEBUG_LOGGED_MESSAGES_AMD 0x9144 -#define GL_DEBUG_LOGGED_MESSAGES_AMD 0x9145 -#define GL_DEBUG_SEVERITY_HIGH_AMD 0x9146 -#define GL_DEBUG_SEVERITY_MEDIUM_AMD 0x9147 -#define GL_DEBUG_SEVERITY_LOW_AMD 0x9148 -#define GL_DEBUG_CATEGORY_API_ERROR_AMD 0x9149 -#define GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD 0x914A -#define GL_DEBUG_CATEGORY_DEPRECATION_AMD 0x914B -#define GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD 0x914C -#define GL_DEBUG_CATEGORY_PERFORMANCE_AMD 0x914D -#define GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD 0x914E -#define GL_DEBUG_CATEGORY_APPLICATION_AMD 0x914F -#define GL_DEBUG_CATEGORY_OTHER_AMD 0x9150 -#define GL_QUERY_BUFFER_AMD 0x9192 -#define GL_QUERY_BUFFER_BINDING_AMD 0x9193 -#define GL_QUERY_RESULT_NO_WAIT_AMD 0x9194 -#define GL_FIXED 0x140C -#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A -#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B -#define GL_LOW_FLOAT 0x8DF0 -#define GL_MEDIUM_FLOAT 0x8DF1 -#define GL_HIGH_FLOAT 0x8DF2 -#define GL_LOW_INT 0x8DF3 -#define GL_MEDIUM_INT 0x8DF4 -#define GL_HIGH_INT 0x8DF5 -#define GL_SHADER_COMPILER 0x8DFA -#define GL_SHADER_BINARY_FORMATS 0x8DF8 -#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 -#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB -#define GL_MAX_VARYING_VECTORS 0x8DFC -#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD -#define GL_RGB565 0x8D62 -#define GL_COMPRESSED_RGB8_ETC2 0x9274 -#define GL_COMPRESSED_SRGB8_ETC2 0x9275 -#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9276 -#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277 -#define GL_COMPRESSED_RGBA8_ETC2_EAC 0x9278 -#define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC 0x9279 +#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3 +#define GL_COLOR_ATTACHMENT4 0x8CE4 +#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4 +#define GL_COLOR_ATTACHMENT5 0x8CE5 +#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5 +#define GL_COLOR_ATTACHMENT6 0x8CE6 +#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6 +#define GL_COLOR_ATTACHMENT7 0x8CE7 +#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7 +#define GL_COLOR_ATTACHMENT8 0x8CE8 +#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8 +#define GL_COLOR_ATTACHMENT9 0x8CE9 +#define GL_COLOR_ATTACHMENT9_EXT 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_LOGIC_OP 0x0BF2 +#define GL_COLOR_RENDERABLE 0x8286 +#define GL_COLOR_SUM_ARB 0x8458 +#define GL_COLOR_WRITEMASK 0x0C23 +#define GL_COMMAND_BARRIER_BIT 0x00000040 +#define GL_COMPARE_REF_TO_TEXTURE 0x884E +#define GL_COMPATIBLE_SUBROUTINES 0x8E4B +#define GL_COMPILE_STATUS 0x8B81 +#define GL_COMPRESSED_ALPHA_ARB 0x84E9 +#define GL_COMPRESSED_INTENSITY_ARB 0x84EC +#define GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB +#define GL_COMPRESSED_LUMINANCE_ARB 0x84EA #define GL_COMPRESSED_R11_EAC 0x9270 -#define GL_COMPRESSED_SIGNED_R11_EAC 0x9271 +#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_ARB 0x84EE +#define GL_COMPRESSED_RGBA_BPTC_UNORM 0x8E8C +#define GL_COMPRESSED_RGB_ARB 0x84ED +#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 +#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 +#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 +#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT 0x8E8E +#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT 0x8E8F +#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 +#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_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69 -#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE 0x8D6A -#define GL_MAX_ELEMENT_INDEX 0x8D6B -#define GL_MAP_PERSISTENT_BIT 0x0040 -#define GL_MAP_COHERENT_BIT 0x0080 -#define GL_DYNAMIC_STORAGE_BIT 0x0100 -#define GL_CLIENT_STORAGE_BIT 0x0200 -#define GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT 0x00004000 -#define GL_BUFFER_IMMUTABLE_STORAGE 0x821F -#define GL_BUFFER_STORAGE_FLAGS 0x8220 -#define GL_UNPACK_COMPRESSED_BLOCK_WIDTH 0x9127 -#define GL_UNPACK_COMPRESSED_BLOCK_HEIGHT 0x9128 -#define GL_UNPACK_COMPRESSED_BLOCK_DEPTH 0x9129 -#define GL_UNPACK_COMPRESSED_BLOCK_SIZE 0x912A -#define GL_PACK_COMPRESSED_BLOCK_WIDTH 0x912B -#define GL_PACK_COMPRESSED_BLOCK_HEIGHT 0x912C -#define GL_PACK_COMPRESSED_BLOCK_DEPTH 0x912D -#define GL_PACK_COMPRESSED_BLOCK_SIZE 0x912E -#define GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB 0x8242 -#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB 0x8243 -#define GL_DEBUG_CALLBACK_FUNCTION_ARB 0x8244 -#define GL_DEBUG_CALLBACK_USER_PARAM_ARB 0x8245 -#define GL_DEBUG_SOURCE_API_ARB 0x8246 -#define GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB 0x8247 -#define GL_DEBUG_SOURCE_SHADER_COMPILER_ARB 0x8248 -#define GL_DEBUG_SOURCE_THIRD_PARTY_ARB 0x8249 -#define GL_DEBUG_SOURCE_APPLICATION_ARB 0x824A -#define GL_DEBUG_SOURCE_OTHER_ARB 0x824B -#define GL_DEBUG_TYPE_ERROR_ARB 0x824C -#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB 0x824D -#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB 0x824E -#define GL_DEBUG_TYPE_PORTABILITY_ARB 0x824F -#define GL_DEBUG_TYPE_PERFORMANCE_ARB 0x8250 -#define GL_DEBUG_TYPE_OTHER_ARB 0x8251 -#define GL_MAX_DEBUG_MESSAGE_LENGTH_ARB 0x9143 -#define GL_MAX_DEBUG_LOGGED_MESSAGES_ARB 0x9144 -#define GL_DEBUG_LOGGED_MESSAGES_ARB 0x9145 -#define GL_DEBUG_SEVERITY_HIGH_ARB 0x9146 -#define GL_DEBUG_SEVERITY_MEDIUM_ARB 0x9147 -#define GL_DEBUG_SEVERITY_LOW_ARB 0x9148 -#define GL_DEPTH_COMPONENT16_ARB 0x81A5 -#define GL_DEPTH_COMPONENT24_ARB 0x81A6 -#define GL_DEPTH_COMPONENT32_ARB 0x81A7 -#define GL_TEXTURE_DEPTH_SIZE_ARB 0x884A -#define GL_DEPTH_TEXTURE_MODE_ARB 0x884B -#define GL_MAX_DRAW_BUFFERS_ARB 0x8824 -#define GL_DRAW_BUFFER0_ARB 0x8825 -#define GL_DRAW_BUFFER1_ARB 0x8826 -#define GL_DRAW_BUFFER2_ARB 0x8827 -#define GL_DRAW_BUFFER3_ARB 0x8828 -#define GL_DRAW_BUFFER4_ARB 0x8829 -#define GL_DRAW_BUFFER5_ARB 0x882A -#define GL_DRAW_BUFFER6_ARB 0x882B -#define GL_DRAW_BUFFER7_ARB 0x882C -#define GL_DRAW_BUFFER8_ARB 0x882D -#define GL_DRAW_BUFFER9_ARB 0x882E -#define GL_DRAW_BUFFER10_ARB 0x882F -#define GL_DRAW_BUFFER11_ARB 0x8830 -#define GL_DRAW_BUFFER12_ARB 0x8831 -#define GL_DRAW_BUFFER13_ARB 0x8832 -#define GL_DRAW_BUFFER14_ARB 0x8833 -#define GL_DRAW_BUFFER15_ARB 0x8834 -#define GL_MAX_UNIFORM_LOCATIONS 0x826E -#define GL_FRAGMENT_PROGRAM_ARB 0x8804 -#define GL_PROGRAM_FORMAT_ASCII_ARB 0x8875 -#define GL_PROGRAM_LENGTH_ARB 0x8627 -#define GL_PROGRAM_FORMAT_ARB 0x8876 -#define GL_PROGRAM_BINDING_ARB 0x8677 -#define GL_PROGRAM_INSTRUCTIONS_ARB 0x88A0 -#define GL_MAX_PROGRAM_INSTRUCTIONS_ARB 0x88A1 -#define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A2 -#define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A3 -#define GL_PROGRAM_TEMPORARIES_ARB 0x88A4 -#define GL_MAX_PROGRAM_TEMPORARIES_ARB 0x88A5 -#define GL_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A6 -#define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A7 -#define GL_PROGRAM_PARAMETERS_ARB 0x88A8 -#define GL_MAX_PROGRAM_PARAMETERS_ARB 0x88A9 -#define GL_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AA -#define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AB -#define GL_PROGRAM_ATTRIBS_ARB 0x88AC -#define GL_MAX_PROGRAM_ATTRIBS_ARB 0x88AD -#define GL_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AE -#define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AF -#define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4 -#define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5 -#define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6 -#define GL_PROGRAM_ALU_INSTRUCTIONS_ARB 0x8805 -#define GL_PROGRAM_TEX_INSTRUCTIONS_ARB 0x8806 -#define GL_PROGRAM_TEX_INDIRECTIONS_ARB 0x8807 -#define GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x8808 -#define GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x8809 -#define GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x880A -#define GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB 0x880B -#define GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB 0x880C -#define GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB 0x880D -#define GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x880E -#define GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x880F -#define GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x8810 -#define GL_PROGRAM_STRING_ARB 0x8628 -#define GL_PROGRAM_ERROR_POSITION_ARB 0x864B +#define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE +#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_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3 +#define GL_COMPUTE_SHADER 0x91B9 +#define GL_COMPUTE_SHADER_BIT 0x00000020 +#define GL_COMPUTE_SHADER_INVOCATIONS 0x82F5 +#define GL_COMPUTE_SHADER_INVOCATIONS_ARB 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_ALPHA 0x8003 +#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_PROFILE_MASK 0x9126 +#define GL_COPY 0x1503 +#define GL_COPY_INVERTED 0x150C +#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_FOG_COORDINATE_EXT 0x8453 #define GL_CURRENT_MATRIX_ARB 0x8641 -#define GL_TRANSPOSE_CURRENT_MATRIX_ARB 0x88B7 #define GL_CURRENT_MATRIX_STACK_DEPTH_ARB 0x8640 -#define GL_MAX_PROGRAM_MATRICES_ARB 0x862F -#define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E -#define GL_MAX_TEXTURE_COORDS_ARB 0x8871 -#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872 -#define GL_PROGRAM_ERROR_STRING_ARB 0x8874 +#define GL_CURRENT_PROGRAM 0x8B8D +#define GL_CURRENT_QUERY 0x8865 +#define GL_CURRENT_QUERY_ARB 0x8865 +#define GL_CURRENT_VERTEX_ATTRIB 0x8626 +#define GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626 +#define GL_CW 0x0900 +#define GL_DEBUG_CALLBACK_FUNCTION 0x8244 +#define GL_DEBUG_CALLBACK_FUNCTION_ARB 0x8244 +#define GL_DEBUG_CALLBACK_USER_PARAM 0x8245 +#define GL_DEBUG_CALLBACK_USER_PARAM_ARB 0x8245 +#define GL_DEBUG_GROUP_STACK_DEPTH 0x826D +#define GL_DEBUG_LOGGED_MESSAGES 0x9145 +#define GL_DEBUG_LOGGED_MESSAGES_ARB 0x9145 +#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH 0x8243 +#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB 0x8243 +#define GL_DEBUG_OUTPUT 0x92E0 +#define GL_DEBUG_OUTPUT_SYNCHRONOUS 0x8242 +#define GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB 0x8242 +#define GL_DEBUG_SEVERITY_HIGH 0x9146 +#define GL_DEBUG_SEVERITY_HIGH_ARB 0x9146 +#define GL_DEBUG_SEVERITY_LOW 0x9148 +#define GL_DEBUG_SEVERITY_LOW_ARB 0x9148 +#define GL_DEBUG_SEVERITY_MEDIUM 0x9147 +#define GL_DEBUG_SEVERITY_MEDIUM_ARB 0x9147 +#define GL_DEBUG_SEVERITY_NOTIFICATION 0x826B +#define GL_DEBUG_SOURCE_API 0x8246 +#define GL_DEBUG_SOURCE_API_ARB 0x8246 +#define GL_DEBUG_SOURCE_APPLICATION 0x824A +#define GL_DEBUG_SOURCE_APPLICATION_ARB 0x824A +#define GL_DEBUG_SOURCE_OTHER 0x824B +#define GL_DEBUG_SOURCE_OTHER_ARB 0x824B +#define GL_DEBUG_SOURCE_SHADER_COMPILER 0x8248 +#define GL_DEBUG_SOURCE_SHADER_COMPILER_ARB 0x8248 +#define GL_DEBUG_SOURCE_THIRD_PARTY 0x8249 +#define GL_DEBUG_SOURCE_THIRD_PARTY_ARB 0x8249 +#define GL_DEBUG_SOURCE_WINDOW_SYSTEM 0x8247 +#define GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB 0x8247 +#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR 0x824D +#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB 0x824D +#define GL_DEBUG_TYPE_ERROR 0x824C +#define GL_DEBUG_TYPE_ERROR_ARB 0x824C +#define GL_DEBUG_TYPE_MARKER 0x8268 +#define GL_DEBUG_TYPE_OTHER 0x8251 +#define GL_DEBUG_TYPE_OTHER_ARB 0x8251 +#define GL_DEBUG_TYPE_PERFORMANCE 0x8250 +#define GL_DEBUG_TYPE_PERFORMANCE_ARB 0x8250 +#define GL_DEBUG_TYPE_POP_GROUP 0x826A +#define GL_DEBUG_TYPE_PORTABILITY 0x824F +#define GL_DEBUG_TYPE_PORTABILITY_ARB 0x824F +#define GL_DEBUG_TYPE_PUSH_GROUP 0x8269 +#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR 0x824E +#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB 0x824E +#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_ATTACHMENT_EXT 0x8D00 +#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_COMPONENT16_ARB 0x81A5 +#define GL_DEPTH_COMPONENT24 0x81A6 +#define GL_DEPTH_COMPONENT24_ARB 0x81A6 +#define GL_DEPTH_COMPONENT32 0x81A7 +#define GL_DEPTH_COMPONENT32F 0x8CAC +#define GL_DEPTH_COMPONENT32_ARB 0x81A7 +#define GL_DEPTH_COMPONENTS 0x8284 +#define GL_DEPTH_FUNC 0x0B74 +#define GL_DEPTH_RANGE 0x0B70 +#define GL_DEPTH_RENDERABLE 0x8287 +#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_ARB 0x884B +#define GL_DEPTH_WRITEMASK 0x0B72 +#define GL_DISPATCH_INDIRECT_BUFFER 0x90EE +#define GL_DISPATCH_INDIRECT_BUFFER_BINDING 0x90EF +#define GL_DITHER 0x0BD0 +#define GL_DONT_CARE 0x1100 +#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_BUFFER0_ARB 0x8825 +#define GL_DRAW_BUFFER1 0x8826 +#define GL_DRAW_BUFFER10 0x882F +#define GL_DRAW_BUFFER10_ARB 0x882F +#define GL_DRAW_BUFFER11 0x8830 +#define GL_DRAW_BUFFER11_ARB 0x8830 +#define GL_DRAW_BUFFER12 0x8831 +#define GL_DRAW_BUFFER12_ARB 0x8831 +#define GL_DRAW_BUFFER13 0x8832 +#define GL_DRAW_BUFFER13_ARB 0x8832 +#define GL_DRAW_BUFFER14 0x8833 +#define GL_DRAW_BUFFER14_ARB 0x8833 +#define GL_DRAW_BUFFER15 0x8834 +#define GL_DRAW_BUFFER15_ARB 0x8834 +#define GL_DRAW_BUFFER1_ARB 0x8826 +#define GL_DRAW_BUFFER2 0x8827 +#define GL_DRAW_BUFFER2_ARB 0x8827 +#define GL_DRAW_BUFFER3 0x8828 +#define GL_DRAW_BUFFER3_ARB 0x8828 +#define GL_DRAW_BUFFER4 0x8829 +#define GL_DRAW_BUFFER4_ARB 0x8829 +#define GL_DRAW_BUFFER5 0x882A +#define GL_DRAW_BUFFER5_ARB 0x882A +#define GL_DRAW_BUFFER6 0x882B +#define GL_DRAW_BUFFER6_ARB 0x882B +#define GL_DRAW_BUFFER7 0x882C +#define GL_DRAW_BUFFER7_ARB 0x882C +#define GL_DRAW_BUFFER8 0x882D +#define GL_DRAW_BUFFER8_ARB 0x882D +#define GL_DRAW_BUFFER9 0x882E +#define GL_DRAW_BUFFER9_ARB 0x882E +#define GL_DRAW_FRAMEBUFFER 0x8CA9 +#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6 +#define GL_DRAW_FRAMEBUFFER_BINDING_EXT 0x8CA6 +#define GL_DRAW_FRAMEBUFFER_EXT 0x8CA9 +#define GL_DRAW_INDIRECT_BUFFER 0x8F3F +#define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43 +#define GL_DST_ALPHA 0x0304 +#define GL_DST_COLOR 0x0306 +#define GL_DYNAMIC_COPY 0x88EA +#define GL_DYNAMIC_COPY_ARB 0x88EA +#define GL_DYNAMIC_DRAW 0x88E8 +#define GL_DYNAMIC_DRAW_ARB 0x88E8 +#define GL_DYNAMIC_READ 0x88E9 +#define GL_DYNAMIC_READ_ARB 0x88E9 +#define GL_DYNAMIC_STORAGE_BIT 0x0100 +#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB 0x889B +#define GL_ELEMENT_ARRAY_BARRIER_BIT 0x00000002 +#define GL_ELEMENT_ARRAY_BUFFER 0x8893 +#define GL_ELEMENT_ARRAY_BUFFER_ARB 0x8893 +#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 +#define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB 0x8895 +#define GL_EQUAL 0x0202 +#define GL_EQUIV 0x1509 +#define GL_EXTENSIONS 0x1F03 +#define GL_FALSE 0 +#define GL_FASTEST 0x1101 +#define GL_FILL 0x1B02 +#define GL_FILTER 0x829A +#define GL_FIRST_VERTEX_CONVENTION 0x8E4D +#define GL_FIXED 0x140C +#define GL_FIXED_OES 0x140C +#define GL_FIXED_ONLY 0x891D +#define GL_FIXED_ONLY_ARB 0x891D +#define GL_FLOAT 0x1406 +#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD +#define GL_FLOAT_MAT2 0x8B5A +#define GL_FLOAT_MAT2_ARB 0x8B5A +#define GL_FLOAT_MAT2x3 0x8B65 +#define GL_FLOAT_MAT2x4 0x8B66 +#define GL_FLOAT_MAT3 0x8B5B +#define GL_FLOAT_MAT3_ARB 0x8B5B +#define GL_FLOAT_MAT3x2 0x8B67 +#define GL_FLOAT_MAT3x4 0x8B68 +#define GL_FLOAT_MAT4 0x8B5C +#define GL_FLOAT_MAT4_ARB 0x8B5C +#define GL_FLOAT_MAT4x2 0x8B69 +#define GL_FLOAT_MAT4x3 0x8B6A +#define GL_FLOAT_VEC2 0x8B50 +#define GL_FLOAT_VEC2_ARB 0x8B50 +#define GL_FLOAT_VEC3 0x8B51 +#define GL_FLOAT_VEC3_ARB 0x8B51 +#define GL_FLOAT_VEC4 0x8B52 +#define GL_FLOAT_VEC4_ARB 0x8B52 +#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB 0x889D +#define GL_FOG_COORDINATE_ARRAY_EXT 0x8457 +#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456 +#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455 +#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454 +#define GL_FOG_COORDINATE_EXT 0x8451 +#define GL_FOG_COORDINATE_SOURCE_EXT 0x8450 +#define GL_FRACTIONAL_EVEN 0x8E7C +#define GL_FRACTIONAL_ODD 0x8E7B +#define GL_FRAGMENT_DEPTH_EXT 0x8452 +#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8E5D +#define GL_FRAGMENT_PROGRAM_ARB 0x8804 +#define GL_FRAGMENT_SHADER 0x8B30 +#define GL_FRAGMENT_SHADER_ARB 0x8B30 +#define GL_FRAGMENT_SHADER_BIT 0x00000002 +#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B +#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB 0x8B8B +#define GL_FRAGMENT_SHADER_INVOCATIONS 0x82F4 +#define GL_FRAGMENT_SHADER_INVOCATIONS_ARB 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_LAYERED_ARB 0x8DA7 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT 0x8CD1 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT 0x8CD0 +#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 +#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT 0x8CD4 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT 0x8CD3 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT 0x8CD2 +#define GL_FRAMEBUFFER_BARRIER_BIT 0x00000400 +#define GL_FRAMEBUFFER_BINDING 0x8CA6 +#define GL_FRAMEBUFFER_BINDING_EXT 0x8CA6 +#define GL_FRAMEBUFFER_BLEND 0x828B +#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 +#define GL_FRAMEBUFFER_COMPLETE_EXT 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_EXT 0x8D40 +#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 +#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT 0x8CD6 +#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT 0x8CD9 +#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB +#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT 0x8CDB +#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT 0x8CDA +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB 0x8DA9 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB 0x8DA8 +#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 +#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT 0x8CD7 +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56 +#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC +#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT 0x8CDC +#define GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_ARB 0x9342 +#define GL_FRAMEBUFFER_RENDERABLE 0x8289 +#define GL_FRAMEBUFFER_RENDERABLE_LAYERED 0x828A +#define GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_ARB 0x9343 +#define GL_FRAMEBUFFER_SRGB 0x8DB9 +#define GL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x8DBA +#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9 +#define GL_FRAMEBUFFER_UNDEFINED 0x8219 +#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD +#define GL_FRAMEBUFFER_UNSUPPORTED_EXT 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_GEOMETRY_INPUT_TYPE 0x8917 +#define GL_GEOMETRY_INPUT_TYPE_ARB 0x8DDB +#define GL_GEOMETRY_OUTPUT_TYPE 0x8918 +#define GL_GEOMETRY_OUTPUT_TYPE_ARB 0x8DDC +#define GL_GEOMETRY_SHADER 0x8DD9 +#define GL_GEOMETRY_SHADER_ARB 0x8DD9 +#define GL_GEOMETRY_SHADER_BIT 0x00000004 +#define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F +#define GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED 0x82F3 +#define GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB 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_GEOMETRY_VERTICES_OUT_ARB 0x8DDA +#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_INTEGER 0x8D95 +#define GL_HALF_FLOAT 0x140B +#define GL_HALF_FLOAT_ARB 0x140B +#define GL_HIGH_FLOAT 0x8DF2 +#define GL_HIGH_INT 0x8DF5 +#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_ARRAY_BUFFER_BINDING_ARB 0x8899 +#define GL_INFO_LOG_LENGTH 0x8B84 +#define GL_INT 0x1404 +#define GL_INT64_ARB 0x140E +#define GL_INT64_VEC2_ARB 0x8FE9 +#define GL_INT64_VEC3_ARB 0x8FEA +#define GL_INT64_VEC4_ARB 0x8FEB +#define GL_INTENSITY16F_ARB 0x881D +#define GL_INTENSITY32F_ARB 0x8817 +#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_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_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900E +#define GL_INT_VEC2 0x8B53 +#define GL_INT_VEC2_ARB 0x8B53 +#define GL_INT_VEC3 0x8B54 +#define GL_INT_VEC3_ARB 0x8B54 +#define GL_INT_VEC4 0x8B55 +#define GL_INT_VEC4_ARB 0x8B55 +#define GL_INVALID_ENUM 0x0500 +#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 +#define GL_INVALID_FRAMEBUFFER_OPERATION_EXT 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_LINE 0x1B01 +#define GL_LINEAR 0x2601 +#define GL_LINEAR_MIPMAP_LINEAR 0x2703 +#define GL_LINEAR_MIPMAP_NEAREST 0x2701 +#define GL_LINES 0x0001 +#define GL_LINES_ADJACENCY 0x000A +#define GL_LINES_ADJACENCY_ARB 0x000A +#define GL_LINE_LOOP 0x0002 +#define GL_LINE_SMOOTH 0x0B20 +#define GL_LINE_SMOOTH_HINT 0x0C52 +#define GL_LINE_STRIP 0x0003 +#define GL_LINE_STRIP_ADJACENCY 0x000B +#define GL_LINE_STRIP_ADJACENCY_ARB 0x000B +#define GL_LINE_WIDTH 0x0B21 +#define GL_LINE_WIDTH_GRANULARITY 0x0B23 +#define GL_LINE_WIDTH_RANGE 0x0B22 +#define GL_LINK_STATUS 0x8B82 +#define GL_LOCATION 0x930E +#define GL_LOCATION_COMPONENT 0x934A +#define GL_LOCATION_INDEX 0x930F +#define GL_LOGIC_OP_MODE 0x0BF0 +#define GL_LOWER_LEFT 0x8CA1 +#define GL_LOW_FLOAT 0x8DF0 +#define GL_LOW_INT 0x8DF3 +#define GL_LUMINANCE16F_ARB 0x881E +#define GL_LUMINANCE32F_ARB 0x8818 +#define GL_LUMINANCE_ALPHA16F_ARB 0x881F +#define GL_LUMINANCE_ALPHA32F_ARB 0x8819 +#define GL_MAJOR_VERSION 0x821B +#define GL_MANUAL_GENERATE_MIPMAP 0x8294 +#define GL_MAP_COHERENT_BIT 0x0080 +#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_UNSYNCHRONIZED_BIT 0x0020 +#define GL_MAP_WRITE_BIT 0x0002 #define GL_MATRIX0_ARB 0x88C0 -#define GL_MATRIX1_ARB 0x88C1 -#define GL_MATRIX2_ARB 0x88C2 -#define GL_MATRIX3_ARB 0x88C3 -#define GL_MATRIX4_ARB 0x88C4 -#define GL_MATRIX5_ARB 0x88C5 -#define GL_MATRIX6_ARB 0x88C6 -#define GL_MATRIX7_ARB 0x88C7 -#define GL_MATRIX8_ARB 0x88C8 -#define GL_MATRIX9_ARB 0x88C9 #define GL_MATRIX10_ARB 0x88CA #define GL_MATRIX11_ARB 0x88CB #define GL_MATRIX12_ARB 0x88CC @@ -2330,6 +889,7 @@ GLAPI PFNGLSECONDARYCOLORP3UIVPROC glad_glSecondaryColorP3uiv; #define GL_MATRIX17_ARB 0x88D1 #define GL_MATRIX18_ARB 0x88D2 #define GL_MATRIX19_ARB 0x88D3 +#define GL_MATRIX1_ARB 0x88C1 #define GL_MATRIX20_ARB 0x88D4 #define GL_MATRIX21_ARB 0x88D5 #define GL_MATRIX22_ARB 0x88D6 @@ -2340,1460 +900,7436 @@ GLAPI PFNGLSECONDARYCOLORP3UIVPROC glad_glSecondaryColorP3uiv; #define GL_MATRIX27_ARB 0x88DB #define GL_MATRIX28_ARB 0x88DC #define GL_MATRIX29_ARB 0x88DD +#define GL_MATRIX2_ARB 0x88C2 #define GL_MATRIX30_ARB 0x88DE #define GL_MATRIX31_ARB 0x88DF -#define GL_FRAGMENT_SHADER_ARB 0x8B30 +#define GL_MATRIX3_ARB 0x88C3 +#define GL_MATRIX4_ARB 0x88C4 +#define GL_MATRIX5_ARB 0x88C5 +#define GL_MATRIX6_ARB 0x88C6 +#define GL_MATRIX7_ARB 0x88C7 +#define GL_MATRIX8_ARB 0x88C8 +#define GL_MATRIX9_ARB 0x88C9 +#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_CLIP_DISTANCES 0x0D32 +#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF +#define GL_MAX_COLOR_ATTACHMENTS_EXT 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_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_TEXTURE_IMAGE_UNITS_ARB 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_FIXED_GROUP_INVOCATIONS_ARB 0x90EB +#define GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB 0x91BF +#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_VARIABLE_GROUP_INVOCATIONS_ARB 0x9344 +#define GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB 0x9345 +#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_CUBE_MAP_TEXTURE_SIZE_ARB 0x851C +#define GL_MAX_DEBUG_GROUP_STACK_DEPTH 0x826C +#define GL_MAX_DEBUG_LOGGED_MESSAGES 0x9144 +#define GL_MAX_DEBUG_LOGGED_MESSAGES_ARB 0x9144 +#define GL_MAX_DEBUG_MESSAGE_LENGTH 0x9143 +#define GL_MAX_DEBUG_MESSAGE_LENGTH_ARB 0x9143 +#define GL_MAX_DEPTH 0x8280 +#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F +#define GL_MAX_DRAW_BUFFERS 0x8824 +#define GL_MAX_DRAW_BUFFERS_ARB 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_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_COMPONENTS_ARB 0x8B49 -#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB 0x8B8B +#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_OUTPUT_VERTICES_ARB 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_TEXTURE_IMAGE_UNITS_ARB 0x8C29 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB 0x8DE1 +#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB 0x8DDF +#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB 0x8DDD +#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_NAME_LENGTH 0x92F6 +#define GL_MAX_NUM_ACTIVE_VARIABLES 0x92F7 +#define GL_MAX_NUM_COMPATIBLE_SUBROUTINES 0x92F8 +#define GL_MAX_PATCH_VERTICES 0x8E7D +#define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B1 +#define GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB 0x880B +#define GL_MAX_PROGRAM_ATTRIBS_ARB 0x88AD +#define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5 +#define GL_MAX_PROGRAM_INSTRUCTIONS_ARB 0x88A1 +#define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4 +#define GL_MAX_PROGRAM_MATRICES_ARB 0x862F +#define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E +#define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B3 +#define GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x880E +#define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AF +#define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A3 +#define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AB +#define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A7 +#define GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x8810 +#define GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x880F +#define GL_MAX_PROGRAM_PARAMETERS_ARB 0x88A9 +#define GL_MAX_PROGRAM_TEMPORARIES_ARB 0x88A5 +#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 +#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F +#define GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB 0x880D +#define GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB 0x880C +#define GL_MAX_RECTANGLE_TEXTURE_SIZE 0x84F8 +#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 +#define GL_MAX_RENDERBUFFER_SIZE_EXT 0x84E8 +#define GL_MAX_SAMPLES 0x8D57 +#define GL_MAX_SAMPLES_EXT 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_ARB 0x8871 +#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 +#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 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_UNITS_ARB 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_FLOATS_ARB 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_ATTRIBS_ARB 0x8869 +#define GL_MAX_VERTEX_ATTRIB_BINDINGS 0x82DA +#define GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D9 +#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_TEXTURE_IMAGE_UNITS_ARB 0x8B4C +#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B +#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A +#define GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB 0x8B4A +#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB +#define GL_MAX_VERTEX_VARYING_COMPONENTS_ARB 0x8DDE +#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_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_MIN_SAMPLE_SHADING_VALUE_ARB 0x8C37 +#define GL_MIPMAP 0x8293 +#define GL_MIRRORED_REPEAT 0x8370 +#define GL_MIRRORED_REPEAT_ARB 0x8370 +#define GL_MIRROR_CLAMP_TO_EDGE 0x8743 +#define GL_MULTISAMPLE 0x809D #define GL_MULTISAMPLE_ARB 0x809D -#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE_ARB 0x809F -#define GL_SAMPLE_COVERAGE_ARB 0x80A0 -#define GL_SAMPLE_BUFFERS_ARB 0x80A8 -#define GL_SAMPLES_ARB 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE_ARB 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB #define GL_MULTISAMPLE_BIT_ARB 0x20000000 -#define GL_SAMPLE_LOCATION_SUBPIXEL_BITS_ARB 0x933D -#define GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_ARB 0x933E -#define GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_ARB 0x933F -#define GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_ARB 0x9340 -#define GL_SAMPLE_LOCATION_ARB 0x8E50 -#define GL_PROGRAMMABLE_SAMPLE_LOCATION_ARB 0x9341 -#define GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_ARB 0x9342 -#define GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_ARB 0x9343 -#define GL_COMPRESSED_ALPHA_ARB 0x84E9 -#define GL_COMPRESSED_LUMINANCE_ARB 0x84EA -#define GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB -#define GL_COMPRESSED_INTENSITY_ARB 0x84EC -#define GL_COMPRESSED_RGB_ARB 0x84ED -#define GL_COMPRESSED_RGBA_ARB 0x84EE -#define GL_TEXTURE_COMPRESSION_HINT_ARB 0x84EF -#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB 0x86A0 -#define GL_TEXTURE_COMPRESSED_ARB 0x86A1 +#define GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY_ARB 0x9382 +#define GL_MULTISAMPLE_LINE_WIDTH_RANGE_ARB 0x9381 +#define GL_NAMED_STRING_LENGTH_ARB 0x8DE9 +#define GL_NAMED_STRING_TYPE_ARB 0x8DEA +#define GL_NAME_LENGTH 0x92F9 +#define GL_NAND 0x150E +#define GL_NEAREST 0x2600 +#define GL_NEAREST_MIPMAP_LINEAR 0x2702 +#define GL_NEAREST_MIPMAP_NEAREST 0x2700 +#define GL_NEVER 0x0200 +#define GL_NICEST 0x1102 +#define GL_NONE 0 +#define GL_NOOP 0x1505 +#define GL_NOR 0x1508 +#define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB 0x8897 +#define GL_NORMAL_MAP_ARB 0x8511 +#define GL_NOTEQUAL 0x0205 +#define GL_NO_ERROR 0 +#define GL_NUM_ACTIVE_VARIABLES 0x9304 +#define GL_NUM_COMPATIBLE_SUBROUTINES 0x8E4A +#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 #define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3 -#define GL_TEXTURE_RED_TYPE_ARB 0x8C10 -#define GL_TEXTURE_GREEN_TYPE_ARB 0x8C11 -#define GL_TEXTURE_BLUE_TYPE_ARB 0x8C12 -#define GL_TEXTURE_ALPHA_TYPE_ARB 0x8C13 -#define GL_TEXTURE_LUMINANCE_TYPE_ARB 0x8C14 -#define GL_TEXTURE_INTENSITY_TYPE_ARB 0x8C15 -#define GL_TEXTURE_DEPTH_TYPE_ARB 0x8C16 -#define GL_UNSIGNED_NORMALIZED_ARB 0x8C17 -#define GL_RGBA32F_ARB 0x8814 -#define GL_RGB32F_ARB 0x8815 -#define GL_ALPHA32F_ARB 0x8816 -#define GL_INTENSITY32F_ARB 0x8817 -#define GL_LUMINANCE32F_ARB 0x8818 -#define GL_LUMINANCE_ALPHA32F_ARB 0x8819 -#define GL_RGBA16F_ARB 0x881A +#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_ACTIVE_ATTRIBUTES_ARB 0x8B89 +#define GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB 0x8B8A +#define GL_OBJECT_ACTIVE_UNIFORMS_ARB 0x8B86 +#define GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB 0x8B87 +#define GL_OBJECT_ATTACHED_OBJECTS_ARB 0x8B85 +#define GL_OBJECT_COMPILE_STATUS_ARB 0x8B81 +#define GL_OBJECT_DELETE_STATUS_ARB 0x8B80 +#define GL_OBJECT_INFO_LOG_LENGTH_ARB 0x8B84 +#define GL_OBJECT_LINK_STATUS_ARB 0x8B82 +#define GL_OBJECT_SHADER_SOURCE_LENGTH_ARB 0x8B88 +#define GL_OBJECT_SUBTYPE_ARB 0x8B4F +#define GL_OBJECT_TYPE 0x9112 +#define GL_OBJECT_TYPE_ARB 0x8B4E +#define GL_OBJECT_VALIDATE_STATUS_ARB 0x8B83 +#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_OR 0x1507 +#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_PALETTE4_R5_G6_B5_OES 0x8B92 +#define GL_PALETTE4_RGB5_A1_OES 0x8B94 +#define GL_PALETTE4_RGB8_OES 0x8B90 +#define GL_PALETTE4_RGBA4_OES 0x8B93 +#define GL_PALETTE4_RGBA8_OES 0x8B91 +#define GL_PALETTE8_R5_G6_B5_OES 0x8B97 +#define GL_PALETTE8_RGB5_A1_OES 0x8B99 +#define GL_PALETTE8_RGB8_OES 0x8B95 +#define GL_PALETTE8_RGBA4_OES 0x8B98 +#define GL_PALETTE8_RGBA8_OES 0x8B96 +#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_PIXEL_BUFFER_BARRIER_BIT 0x00000080 +#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_FADE_THRESHOLD_SIZE 0x8128 +#define GL_POINT_SIZE 0x0B11 +#define GL_POINT_SIZE_GRANULARITY 0x0B13 +#define GL_POINT_SIZE_RANGE 0x0B12 +#define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0 +#define GL_POLYGON_MODE 0x0B40 +#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_PRIMITIVES_GENERATED 0x8C87 +#define GL_PRIMITIVES_SUBMITTED 0x82EF +#define GL_PRIMITIVES_SUBMITTED_ARB 0x82EF +#define GL_PRIMITIVE_BOUNDING_BOX_ARB 0x92BE +#define GL_PRIMITIVE_RESTART 0x8F9D +#define GL_PRIMITIVE_RESTART_FIXED_INDEX 0x8D69 +#define GL_PRIMITIVE_RESTART_INDEX 0x8F9E +#define GL_PROGRAM 0x82E2 +#define GL_PROGRAMMABLE_SAMPLE_LOCATION_ARB 0x9341 +#define GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_ARB 0x9340 +#define GL_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B0 +#define GL_PROGRAM_ALU_INSTRUCTIONS_ARB 0x8805 +#define GL_PROGRAM_ATTRIBS_ARB 0x88AC +#define GL_PROGRAM_BINARY_FORMATS 0x87FF +#define GL_PROGRAM_BINARY_LENGTH 0x8741 +#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257 +#define GL_PROGRAM_BINDING_ARB 0x8677 +#define GL_PROGRAM_ERROR_POSITION_ARB 0x864B +#define GL_PROGRAM_ERROR_STRING_ARB 0x8874 +#define GL_PROGRAM_FORMAT_ARB 0x8876 +#define GL_PROGRAM_FORMAT_ASCII_ARB 0x8875 +#define GL_PROGRAM_INPUT 0x92E3 +#define GL_PROGRAM_INSTRUCTIONS_ARB 0x88A0 +#define GL_PROGRAM_LENGTH_ARB 0x8627 +#define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B2 +#define GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x8808 +#define GL_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AE +#define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A2 +#define GL_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AA +#define GL_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A6 +#define GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x880A +#define GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x8809 +#define GL_PROGRAM_OBJECT_ARB 0x8B40 +#define GL_PROGRAM_OUTPUT 0x92E4 +#define GL_PROGRAM_PARAMETERS_ARB 0x88A8 +#define GL_PROGRAM_PIPELINE 0x82E4 +#define GL_PROGRAM_PIPELINE_BINDING 0x825A +#define GL_PROGRAM_POINT_SIZE 0x8642 +#define GL_PROGRAM_POINT_SIZE_ARB 0x8642 +#define GL_PROGRAM_SEPARABLE 0x8258 +#define GL_PROGRAM_STRING_ARB 0x8628 +#define GL_PROGRAM_TEMPORARIES_ARB 0x88A4 +#define GL_PROGRAM_TEX_INDIRECTIONS_ARB 0x8807 +#define GL_PROGRAM_TEX_INSTRUCTIONS_ARB 0x8806 +#define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6 +#define GL_PROVOKING_VERTEX 0x8E4F +#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_ARB 0x851B +#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY 0x900B +#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB 0x900B +#define GL_PROXY_TEXTURE_RECTANGLE 0x84F7 +#define GL_QUADS 0x0007 +#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION 0x8E4C +#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_WAIT 0x8E15 +#define GL_QUERY_COUNTER_BITS 0x8864 +#define GL_QUERY_COUNTER_BITS_ARB 0x8864 +#define GL_QUERY_NO_WAIT 0x8E14 +#define GL_QUERY_RESULT 0x8866 +#define GL_QUERY_RESULT_ARB 0x8866 +#define GL_QUERY_RESULT_AVAILABLE 0x8867 +#define GL_QUERY_RESULT_AVAILABLE_ARB 0x8867 +#define GL_QUERY_RESULT_NO_WAIT 0x9194 +#define GL_QUERY_TARGET 0x82EA +#define GL_QUERY_WAIT 0x8E13 +#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_FRAMEBUFFER_BINDING_EXT 0x8CAA +#define GL_READ_FRAMEBUFFER_EXT 0x8CA8 +#define GL_READ_ONLY 0x88B8 +#define GL_READ_ONLY_ARB 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_READ_WRITE_ARB 0x88BA +#define GL_RED 0x1903 +#define GL_RED_INTEGER 0x8D94 +#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_ARB 0x8512 +#define GL_RENDERBUFFER 0x8D41 +#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 +#define GL_RENDERBUFFER_ALPHA_SIZE_EXT 0x8D53 +#define GL_RENDERBUFFER_BINDING 0x8CA7 +#define GL_RENDERBUFFER_BINDING_EXT 0x8CA7 +#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 +#define GL_RENDERBUFFER_BLUE_SIZE_EXT 0x8D52 +#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 +#define GL_RENDERBUFFER_DEPTH_SIZE_EXT 0x8D54 +#define GL_RENDERBUFFER_EXT 0x8D41 +#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 +#define GL_RENDERBUFFER_GREEN_SIZE_EXT 0x8D51 +#define GL_RENDERBUFFER_HEIGHT 0x8D43 +#define GL_RENDERBUFFER_HEIGHT_EXT 0x8D43 +#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 +#define GL_RENDERBUFFER_INTERNAL_FORMAT_EXT 0x8D44 +#define GL_RENDERBUFFER_RED_SIZE 0x8D50 +#define GL_RENDERBUFFER_RED_SIZE_EXT 0x8D50 +#define GL_RENDERBUFFER_SAMPLES 0x8CAB +#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB +#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 +#define GL_RENDERBUFFER_STENCIL_SIZE_EXT 0x8D55 +#define GL_RENDERBUFFER_WIDTH 0x8D42 +#define GL_RENDERBUFFER_WIDTH_EXT 0x8D42 +#define GL_RENDERER 0x1F01 +#define GL_REPEAT 0x2901 +#define GL_REPLACE 0x1E01 +#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_RGB16F_ARB 0x881B -#define GL_ALPHA16F_ARB 0x881C -#define GL_INTENSITY16F_ARB 0x881D -#define GL_LUMINANCE16F_ARB 0x881E -#define GL_LUMINANCE_ALPHA16F_ARB 0x881F +#define GL_RGB16I 0x8D89 +#define GL_RGB16UI 0x8D77 +#define GL_RGB16_SNORM 0x8F9A +#define GL_RGB32F 0x8815 +#define GL_RGB32F_ARB 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_RGBA16F_ARB 0x881A +#define GL_RGBA16I 0x8D88 +#define GL_RGBA16UI 0x8D76 +#define GL_RGBA16_SNORM 0x8F9B +#define GL_RGBA2 0x8055 +#define GL_RGBA32F 0x8814 +#define GL_RGBA32F_ARB 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_FLOAT_MODE_ARB 0x8820 +#define GL_RGBA_INTEGER 0x8D99 +#define GL_RGB_INTEGER 0x8D98 +#define GL_RG_INTEGER 0x8228 +#define GL_RIGHT 0x0407 +#define GL_SAMPLER 0x82E6 +#define GL_SAMPLER_1D 0x8B5D +#define GL_SAMPLER_1D_ARB 0x8B5D +#define GL_SAMPLER_1D_ARRAY 0x8DC0 +#define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3 +#define GL_SAMPLER_1D_SHADOW 0x8B61 +#define GL_SAMPLER_1D_SHADOW_ARB 0x8B61 +#define GL_SAMPLER_2D 0x8B5E +#define GL_SAMPLER_2D_ARB 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_ARB 0x8B63 +#define GL_SAMPLER_2D_RECT_SHADOW 0x8B64 +#define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64 +#define GL_SAMPLER_2D_SHADOW 0x8B62 +#define GL_SAMPLER_2D_SHADOW_ARB 0x8B62 +#define GL_SAMPLER_3D 0x8B5F +#define GL_SAMPLER_3D_ARB 0x8B5F +#define GL_SAMPLER_BINDING 0x8919 +#define GL_SAMPLER_BUFFER 0x8DC2 +#define GL_SAMPLER_CUBE 0x8B60 +#define GL_SAMPLER_CUBE_ARB 0x8B60 +#define GL_SAMPLER_CUBE_MAP_ARRAY 0x900C +#define GL_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900C +#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D +#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB 0x900D +#define GL_SAMPLER_CUBE_SHADOW 0x8DC5 +#define GL_SAMPLES 0x80A9 +#define GL_SAMPLES_ARB 0x80A9 +#define GL_SAMPLES_PASSED 0x8914 +#define GL_SAMPLES_PASSED_ARB 0x8914 +#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E +#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE 0x809F +#define GL_SAMPLE_ALPHA_TO_ONE_ARB 0x809F +#define GL_SAMPLE_BUFFERS 0x80A8 +#define GL_SAMPLE_BUFFERS_ARB 0x80A8 +#define GL_SAMPLE_COVERAGE 0x80A0 +#define GL_SAMPLE_COVERAGE_ARB 0x80A0 +#define GL_SAMPLE_COVERAGE_INVERT 0x80AB +#define GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB +#define GL_SAMPLE_COVERAGE_VALUE 0x80AA +#define GL_SAMPLE_COVERAGE_VALUE_ARB 0x80AA +#define GL_SAMPLE_LOCATION_ARB 0x8E50 +#define GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_ARB 0x933F +#define GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_ARB 0x933E +#define GL_SAMPLE_LOCATION_SUBPIXEL_BITS_ARB 0x933D +#define GL_SAMPLE_MASK 0x8E51 +#define GL_SAMPLE_MASK_VALUE 0x8E52 +#define GL_SAMPLE_POSITION 0x8E50 +#define GL_SAMPLE_SHADING 0x8C36 +#define GL_SAMPLE_SHADING_ARB 0x8C36 +#define GL_SCISSOR_BOX 0x0C10 +#define GL_SCISSOR_TEST 0x0C11 +#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889C +#define GL_SEPARATE_ATTRIBS 0x8C8D +#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_BINARY_FORMAT_SPIR_V_ARB 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_INCLUDE_ARB 0x8DAE +#define GL_SHADER_OBJECT_ARB 0x8B48 +#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_SHADING_LANGUAGE_VERSION 0x8B8C +#define GL_SHADING_LANGUAGE_VERSION_ARB 0x8B8C +#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_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_SOURCE1_ALPHA 0x8589 +#define GL_SPIR_V_BINARY 0x9552 +#define GL_SPIR_V_BINARY_ARB 0x9552 +#define GL_SPIR_V_EXTENSIONS 0x9553 +#define GL_SRC1_ALPHA 0x8589 +#define GL_SRC1_COLOR 0x88F9 +#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_DECODE_ARB 0x8299 +#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_COPY_ARB 0x88E6 +#define GL_STATIC_DRAW 0x88E4 +#define GL_STATIC_DRAW_ARB 0x88E4 +#define GL_STATIC_READ 0x88E5 +#define GL_STATIC_READ_ARB 0x88E5 +#define GL_STENCIL 0x1802 +#define GL_STENCIL_ATTACHMENT 0x8D20 +#define GL_STENCIL_ATTACHMENT_EXT 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_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_INDEX16_EXT 0x8D49 +#define GL_STENCIL_INDEX1_EXT 0x8D46 +#define GL_STENCIL_INDEX4 0x8D47 +#define GL_STENCIL_INDEX4_EXT 0x8D47 +#define GL_STENCIL_INDEX8 0x8D48 +#define GL_STENCIL_INDEX8_EXT 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_COPY_ARB 0x88E2 +#define GL_STREAM_DRAW 0x88E0 +#define GL_STREAM_DRAW_ARB 0x88E0 +#define GL_STREAM_READ 0x88E1 +#define GL_STREAM_READ_ARB 0x88E1 +#define GL_SUBPIXEL_BITS 0x0D50 +#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_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_SHADER_PATCHES_ARB 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_SHADER_INVOCATIONS_ARB 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_TEXTURE0_ARB 0x84C0 +#define GL_TEXTURE1 0x84C1 +#define GL_TEXTURE10 0x84CA +#define GL_TEXTURE10_ARB 0x84CA +#define GL_TEXTURE11 0x84CB +#define GL_TEXTURE11_ARB 0x84CB +#define GL_TEXTURE12 0x84CC +#define GL_TEXTURE12_ARB 0x84CC +#define GL_TEXTURE13 0x84CD +#define GL_TEXTURE13_ARB 0x84CD +#define GL_TEXTURE14 0x84CE +#define GL_TEXTURE14_ARB 0x84CE +#define GL_TEXTURE15 0x84CF +#define GL_TEXTURE15_ARB 0x84CF +#define GL_TEXTURE16 0x84D0 +#define GL_TEXTURE16_ARB 0x84D0 +#define GL_TEXTURE17 0x84D1 +#define GL_TEXTURE17_ARB 0x84D1 +#define GL_TEXTURE18 0x84D2 +#define GL_TEXTURE18_ARB 0x84D2 +#define GL_TEXTURE19 0x84D3 +#define GL_TEXTURE19_ARB 0x84D3 +#define GL_TEXTURE1_ARB 0x84C1 +#define GL_TEXTURE2 0x84C2 +#define GL_TEXTURE20 0x84D4 +#define GL_TEXTURE20_ARB 0x84D4 +#define GL_TEXTURE21 0x84D5 +#define GL_TEXTURE21_ARB 0x84D5 +#define GL_TEXTURE22 0x84D6 +#define GL_TEXTURE22_ARB 0x84D6 +#define GL_TEXTURE23 0x84D7 +#define GL_TEXTURE23_ARB 0x84D7 +#define GL_TEXTURE24 0x84D8 +#define GL_TEXTURE24_ARB 0x84D8 +#define GL_TEXTURE25 0x84D9 +#define GL_TEXTURE25_ARB 0x84D9 +#define GL_TEXTURE26 0x84DA +#define GL_TEXTURE26_ARB 0x84DA +#define GL_TEXTURE27 0x84DB +#define GL_TEXTURE27_ARB 0x84DB +#define GL_TEXTURE28 0x84DC +#define GL_TEXTURE28_ARB 0x84DC +#define GL_TEXTURE29 0x84DD +#define GL_TEXTURE29_ARB 0x84DD +#define GL_TEXTURE2_ARB 0x84C2 +#define GL_TEXTURE3 0x84C3 +#define GL_TEXTURE30 0x84DE +#define GL_TEXTURE30_ARB 0x84DE +#define GL_TEXTURE31 0x84DF +#define GL_TEXTURE31_ARB 0x84DF +#define GL_TEXTURE3_ARB 0x84C3 +#define GL_TEXTURE4 0x84C4 +#define GL_TEXTURE4_ARB 0x84C4 +#define GL_TEXTURE5 0x84C5 +#define GL_TEXTURE5_ARB 0x84C5 +#define GL_TEXTURE6 0x84C6 +#define GL_TEXTURE6_ARB 0x84C6 +#define GL_TEXTURE7 0x84C7 +#define GL_TEXTURE7_ARB 0x84C7 +#define GL_TEXTURE8 0x84C8 +#define GL_TEXTURE8_ARB 0x84C8 +#define GL_TEXTURE9 0x84C9 +#define GL_TEXTURE9_ARB 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_ALPHA_TYPE_ARB 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_ARB 0x8514 +#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A +#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB 0x900A +#define GL_TEXTURE_BINDING_RECTANGLE 0x84F6 +#define GL_TEXTURE_BLUE_SIZE 0x805E +#define GL_TEXTURE_BLUE_TYPE 0x8C12 +#define GL_TEXTURE_BLUE_TYPE_ARB 0x8C12 +#define GL_TEXTURE_BORDER_COLOR 0x1004 +#define GL_TEXTURE_BUFFER 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_COMPRESSED 0x86A1 +#define GL_TEXTURE_COMPRESSED_ARB 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_COMPRESSED_IMAGE_SIZE_ARB 0x86A0 +#define GL_TEXTURE_COMPRESSION_HINT 0x84EF +#define GL_TEXTURE_COMPRESSION_HINT_ARB 0x84EF +#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB 0x889A +#define GL_TEXTURE_CUBE_MAP 0x8513 +#define GL_TEXTURE_CUBE_MAP_ARB 0x8513 +#define GL_TEXTURE_CUBE_MAP_ARRAY 0x9009 +#define GL_TEXTURE_CUBE_MAP_ARRAY_ARB 0x9009 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851A +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519 +#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F +#define GL_TEXTURE_DEPTH 0x8071 +#define GL_TEXTURE_DEPTH_SIZE 0x884A +#define GL_TEXTURE_DEPTH_SIZE_ARB 0x884A +#define GL_TEXTURE_DEPTH_TYPE 0x8C16 +#define GL_TEXTURE_DEPTH_TYPE_ARB 0x8C16 +#define GL_TEXTURE_FETCH_BARRIER_BIT 0x00000008 +#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107 +#define GL_TEXTURE_GATHER 0x82A2 +#define GL_TEXTURE_GATHER_SHADOW 0x82A3 +#define GL_TEXTURE_GREEN_SIZE 0x805D +#define GL_TEXTURE_GREEN_TYPE 0x8C11 +#define GL_TEXTURE_GREEN_TYPE_ARB 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_TYPE_ARB 0x8C15 +#define GL_TEXTURE_INTERNAL_FORMAT 0x1003 +#define GL_TEXTURE_LOD_BIAS 0x8501 +#define GL_TEXTURE_LUMINANCE_TYPE_ARB 0x8C14 +#define GL_TEXTURE_MAG_FILTER 0x2800 +#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_RECTANGLE 0x84F5 +#define GL_TEXTURE_REDUCTION_MODE_ARB 0x9366 +#define GL_TEXTURE_RED_SIZE 0x805C +#define GL_TEXTURE_RED_TYPE 0x8C10 +#define GL_TEXTURE_RED_TYPE_ARB 0x8C10 +#define GL_TEXTURE_SAMPLES 0x9106 +#define GL_TEXTURE_SHADOW 0x82A1 +#define GL_TEXTURE_SHARED_SIZE 0x8C3F +#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_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_PAUSED 0x8E23 +#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 +#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_ARB 0x84E6 +#define GL_TRANSPOSE_CURRENT_MATRIX_ARB 0x88B7 +#define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3 +#define GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84E4 +#define GL_TRANSPOSE_TEXTURE_MATRIX_ARB 0x84E5 +#define GL_TRIANGLES 0x0004 +#define GL_TRIANGLES_ADJACENCY 0x000C +#define GL_TRIANGLES_ADJACENCY_ARB 0x000C +#define GL_TRIANGLE_FAN 0x0006 +#define GL_TRIANGLE_STRIP 0x0005 +#define GL_TRIANGLE_STRIP_ADJACENCY 0x000D +#define GL_TRIANGLE_STRIP_ADJACENCY_ARB 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_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_INT64_ARB 0x140F +#define GL_UNSIGNED_INT64_VEC2_ARB 0x8FF5 +#define GL_UNSIGNED_INT64_VEC3_ARB 0x8FF6 +#define GL_UNSIGNED_INT64_VEC4_ARB 0x8FF7 +#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_SAMPLER_CUBE_MAP_ARRAY_ARB 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_NORMALIZED_ARB 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_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_ARB 0x8896 +#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT 0x00000001 +#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F +#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB 0x889F +#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE +#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB 0x88FE +#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 +#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 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_NORMALIZED_ARB 0x886A +#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 +#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645 +#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 +#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623 +#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 +#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624 +#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 +#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 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_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82D9 -#define GL_MAX_VERTEX_ATTRIB_BINDINGS 0x82DA -#define GL_BUFFER_SIZE_ARB 0x8764 -#define GL_BUFFER_USAGE_ARB 0x8765 -#define GL_ARRAY_BUFFER_ARB 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER_ARB 0x8893 -#define GL_ARRAY_BUFFER_BINDING_ARB 0x8894 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB 0x8895 -#define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB 0x8896 -#define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB 0x8897 -#define GL_COLOR_ARRAY_BUFFER_BINDING_ARB 0x8898 -#define GL_INDEX_ARRAY_BUFFER_BINDING_ARB 0x8899 -#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB 0x889A -#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB 0x889B -#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889C -#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB 0x889D -#define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB 0x889E -#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB 0x889F -#define GL_READ_ONLY_ARB 0x88B8 -#define GL_WRITE_ONLY_ARB 0x88B9 -#define GL_READ_WRITE_ARB 0x88BA -#define GL_BUFFER_ACCESS_ARB 0x88BB -#define GL_BUFFER_MAPPED_ARB 0x88BC -#define GL_BUFFER_MAP_POINTER_ARB 0x88BD -#define GL_STREAM_DRAW_ARB 0x88E0 -#define GL_STREAM_READ_ARB 0x88E1 -#define GL_STREAM_COPY_ARB 0x88E2 -#define GL_STATIC_DRAW_ARB 0x88E4 -#define GL_STATIC_READ_ARB 0x88E5 -#define GL_STATIC_COPY_ARB 0x88E6 -#define GL_DYNAMIC_DRAW_ARB 0x88E8 -#define GL_DYNAMIC_READ_ARB 0x88E9 -#define GL_DYNAMIC_COPY_ARB 0x88EA -#define GL_COLOR_SUM_ARB 0x8458 #define GL_VERTEX_PROGRAM_ARB 0x8620 -#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622 -#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623 -#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624 -#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 0x8625 -#define GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626 +#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642 #define GL_VERTEX_PROGRAM_POINT_SIZE_ARB 0x8642 #define GL_VERTEX_PROGRAM_TWO_SIDE_ARB 0x8643 -#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645 -#define GL_MAX_VERTEX_ATTRIBS_ARB 0x8869 -#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A -#define GL_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B0 -#define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B1 -#define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B2 -#define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B3 +#define GL_VERTEX_SHADER 0x8B31 #define GL_VERTEX_SHADER_ARB 0x8B31 -#define GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB 0x8B4A -#define GL_MAX_VARYING_FLOATS_ARB 0x8B4B -#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C -#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB 0x8B4D -#define GL_OBJECT_ACTIVE_ATTRIBUTES_ARB 0x8B89 -#define GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB 0x8B8A -#define GL_FLOAT_VEC2_ARB 0x8B50 -#define GL_FLOAT_VEC3_ARB 0x8B51 -#define GL_FLOAT_VEC4_ARB 0x8B52 -#define GL_FLOAT_MAT2_ARB 0x8B5A -#define GL_FLOAT_MAT3_ARB 0x8B5B -#define GL_FLOAT_MAT4_ARB 0x8B5C -#define GL_ELEMENT_ARRAY_ATI 0x8768 -#define GL_ELEMENT_ARRAY_TYPE_ATI 0x8769 -#define GL_ELEMENT_ARRAY_POINTER_ATI 0x876A -#define GL_FRAGMENT_SHADER_ATI 0x8920 -#define GL_REG_0_ATI 0x8921 -#define GL_REG_1_ATI 0x8922 -#define GL_REG_2_ATI 0x8923 -#define GL_REG_3_ATI 0x8924 -#define GL_REG_4_ATI 0x8925 -#define GL_REG_5_ATI 0x8926 -#define GL_REG_6_ATI 0x8927 -#define GL_REG_7_ATI 0x8928 -#define GL_REG_8_ATI 0x8929 -#define GL_REG_9_ATI 0x892A -#define GL_REG_10_ATI 0x892B -#define GL_REG_11_ATI 0x892C -#define GL_REG_12_ATI 0x892D -#define GL_REG_13_ATI 0x892E -#define GL_REG_14_ATI 0x892F -#define GL_REG_15_ATI 0x8930 -#define GL_REG_16_ATI 0x8931 -#define GL_REG_17_ATI 0x8932 -#define GL_REG_18_ATI 0x8933 -#define GL_REG_19_ATI 0x8934 -#define GL_REG_20_ATI 0x8935 -#define GL_REG_21_ATI 0x8936 -#define GL_REG_22_ATI 0x8937 -#define GL_REG_23_ATI 0x8938 -#define GL_REG_24_ATI 0x8939 -#define GL_REG_25_ATI 0x893A -#define GL_REG_26_ATI 0x893B -#define GL_REG_27_ATI 0x893C -#define GL_REG_28_ATI 0x893D -#define GL_REG_29_ATI 0x893E -#define GL_REG_30_ATI 0x893F -#define GL_REG_31_ATI 0x8940 -#define GL_CON_0_ATI 0x8941 -#define GL_CON_1_ATI 0x8942 -#define GL_CON_2_ATI 0x8943 -#define GL_CON_3_ATI 0x8944 -#define GL_CON_4_ATI 0x8945 -#define GL_CON_5_ATI 0x8946 -#define GL_CON_6_ATI 0x8947 -#define GL_CON_7_ATI 0x8948 -#define GL_CON_8_ATI 0x8949 -#define GL_CON_9_ATI 0x894A -#define GL_CON_10_ATI 0x894B -#define GL_CON_11_ATI 0x894C -#define GL_CON_12_ATI 0x894D -#define GL_CON_13_ATI 0x894E -#define GL_CON_14_ATI 0x894F -#define GL_CON_15_ATI 0x8950 -#define GL_CON_16_ATI 0x8951 -#define GL_CON_17_ATI 0x8952 -#define GL_CON_18_ATI 0x8953 -#define GL_CON_19_ATI 0x8954 -#define GL_CON_20_ATI 0x8955 -#define GL_CON_21_ATI 0x8956 -#define GL_CON_22_ATI 0x8957 -#define GL_CON_23_ATI 0x8958 -#define GL_CON_24_ATI 0x8959 -#define GL_CON_25_ATI 0x895A -#define GL_CON_26_ATI 0x895B -#define GL_CON_27_ATI 0x895C -#define GL_CON_28_ATI 0x895D -#define GL_CON_29_ATI 0x895E -#define GL_CON_30_ATI 0x895F -#define GL_CON_31_ATI 0x8960 -#define GL_MOV_ATI 0x8961 -#define GL_ADD_ATI 0x8963 -#define GL_MUL_ATI 0x8964 -#define GL_SUB_ATI 0x8965 -#define GL_DOT3_ATI 0x8966 -#define GL_DOT4_ATI 0x8967 -#define GL_MAD_ATI 0x8968 -#define GL_LERP_ATI 0x8969 -#define GL_CND_ATI 0x896A -#define GL_CND0_ATI 0x896B -#define GL_DOT2_ADD_ATI 0x896C -#define GL_SECONDARY_INTERPOLATOR_ATI 0x896D -#define GL_NUM_FRAGMENT_REGISTERS_ATI 0x896E -#define GL_NUM_FRAGMENT_CONSTANTS_ATI 0x896F -#define GL_NUM_PASSES_ATI 0x8970 -#define GL_NUM_INSTRUCTIONS_PER_PASS_ATI 0x8971 -#define GL_NUM_INSTRUCTIONS_TOTAL_ATI 0x8972 -#define GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI 0x8973 -#define GL_NUM_LOOPBACK_COMPONENTS_ATI 0x8974 -#define GL_COLOR_ALPHA_PAIRING_ATI 0x8975 -#define GL_SWIZZLE_STR_ATI 0x8976 -#define GL_SWIZZLE_STQ_ATI 0x8977 -#define GL_SWIZZLE_STR_DR_ATI 0x8978 -#define GL_SWIZZLE_STQ_DQ_ATI 0x8979 -#define GL_SWIZZLE_STRQ_ATI 0x897A -#define GL_SWIZZLE_STRQ_DQ_ATI 0x897B -#define GL_RED_BIT_ATI 0x00000001 -#define GL_GREEN_BIT_ATI 0x00000002 -#define GL_BLUE_BIT_ATI 0x00000004 -#define GL_2X_BIT_ATI 0x00000001 -#define GL_4X_BIT_ATI 0x00000002 -#define GL_8X_BIT_ATI 0x00000004 -#define GL_HALF_BIT_ATI 0x00000008 -#define GL_QUARTER_BIT_ATI 0x00000010 -#define GL_EIGHTH_BIT_ATI 0x00000020 -#define GL_SATURATE_BIT_ATI 0x00000040 -#define GL_COMP_BIT_ATI 0x00000002 -#define GL_NEGATE_BIT_ATI 0x00000004 -#define GL_BIAS_BIT_ATI 0x00000008 -#define GL_STATIC_ATI 0x8760 -#define GL_DYNAMIC_ATI 0x8761 -#define GL_PRESERVE_ATI 0x8762 -#define GL_DISCARD_ATI 0x8763 -#define GL_OBJECT_BUFFER_SIZE_ATI 0x8764 -#define GL_OBJECT_BUFFER_USAGE_ATI 0x8765 -#define GL_ARRAY_OBJECT_BUFFER_ATI 0x8766 -#define GL_ARRAY_OBJECT_OFFSET_ATI 0x8767 -#define GL_CONSTANT_COLOR_EXT 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR_EXT 0x8002 -#define GL_CONSTANT_ALPHA_EXT 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA_EXT 0x8004 -#define GL_BLEND_COLOR_EXT 0x8005 -#define GL_BLEND_EQUATION_RGB_EXT 0x8009 -#define GL_BLEND_EQUATION_ALPHA_EXT 0x883D -#define GL_BLEND_DST_RGB_EXT 0x80C8 -#define GL_BLEND_SRC_RGB_EXT 0x80C9 -#define GL_BLEND_DST_ALPHA_EXT 0x80CA -#define GL_BLEND_SRC_ALPHA_EXT 0x80CB -#define GL_READ_FRAMEBUFFER_EXT 0x8CA8 -#define GL_DRAW_FRAMEBUFFER_EXT 0x8CA9 -#define GL_DRAW_FRAMEBUFFER_BINDING_EXT 0x8CA6 -#define GL_READ_FRAMEBUFFER_BINDING_EXT 0x8CAA -#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56 -#define GL_MAX_SAMPLES_EXT 0x8D57 -#define GL_SCALED_RESOLVE_FASTEST_EXT 0x90BA -#define GL_SCALED_RESOLVE_NICEST_EXT 0x90BB -#define GL_INVALID_FRAMEBUFFER_OPERATION_EXT 0x0506 -#define GL_MAX_RENDERBUFFER_SIZE_EXT 0x84E8 -#define GL_FRAMEBUFFER_BINDING_EXT 0x8CA6 -#define GL_RENDERBUFFER_BINDING_EXT 0x8CA7 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT 0x8CD0 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT 0x8CD1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT 0x8CD2 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT 0x8CD3 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT 0x8CD4 -#define GL_FRAMEBUFFER_COMPLETE_EXT 0x8CD5 -#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT 0x8CD6 -#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT 0x8CD7 -#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT 0x8CD9 -#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT 0x8CDA -#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT 0x8CDB -#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT 0x8CDC -#define GL_FRAMEBUFFER_UNSUPPORTED_EXT 0x8CDD -#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF -#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0 -#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1 -#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2 -#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3 -#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4 -#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5 -#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6 -#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7 -#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8 -#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9 -#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA -#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB -#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC -#define GL_COLOR_ATTACHMENT13_EXT 0x8CED -#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE -#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF -#define GL_DEPTH_ATTACHMENT_EXT 0x8D00 -#define GL_STENCIL_ATTACHMENT_EXT 0x8D20 -#define GL_FRAMEBUFFER_EXT 0x8D40 -#define GL_RENDERBUFFER_EXT 0x8D41 -#define GL_RENDERBUFFER_WIDTH_EXT 0x8D42 -#define GL_RENDERBUFFER_HEIGHT_EXT 0x8D43 -#define GL_RENDERBUFFER_INTERNAL_FORMAT_EXT 0x8D44 -#define GL_STENCIL_INDEX1_EXT 0x8D46 -#define GL_STENCIL_INDEX4_EXT 0x8D47 -#define GL_STENCIL_INDEX8_EXT 0x8D48 -#define GL_STENCIL_INDEX16_EXT 0x8D49 -#define GL_RENDERBUFFER_RED_SIZE_EXT 0x8D50 -#define GL_RENDERBUFFER_GREEN_SIZE_EXT 0x8D51 -#define GL_RENDERBUFFER_BLUE_SIZE_EXT 0x8D52 -#define GL_RENDERBUFFER_ALPHA_SIZE_EXT 0x8D53 -#define GL_RENDERBUFFER_DEPTH_SIZE_EXT 0x8D54 -#define GL_RENDERBUFFER_STENCIL_SIZE_EXT 0x8D55 -#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9 -#define GL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x8DBA -#define GL_IUI_V2F_EXT 0x81AD -#define GL_IUI_V3F_EXT 0x81AE -#define GL_IUI_N3F_V2F_EXT 0x81AF -#define GL_IUI_N3F_V3F_EXT 0x81B0 -#define GL_T2F_IUI_V2F_EXT 0x81B1 -#define GL_T2F_IUI_V3F_EXT 0x81B2 -#define GL_T2F_IUI_N3F_V2F_EXT 0x81B3 -#define GL_T2F_IUI_N3F_V3F_EXT 0x81B4 -#define GL_ALPHA4_EXT 0x803B -#define GL_ALPHA8_EXT 0x803C -#define GL_ALPHA12_EXT 0x803D -#define GL_ALPHA16_EXT 0x803E -#define GL_LUMINANCE4_EXT 0x803F -#define GL_LUMINANCE8_EXT 0x8040 -#define GL_LUMINANCE12_EXT 0x8041 -#define GL_LUMINANCE16_EXT 0x8042 -#define GL_LUMINANCE4_ALPHA4_EXT 0x8043 -#define GL_LUMINANCE6_ALPHA2_EXT 0x8044 -#define GL_LUMINANCE8_ALPHA8_EXT 0x8045 -#define GL_LUMINANCE12_ALPHA4_EXT 0x8046 -#define GL_LUMINANCE12_ALPHA12_EXT 0x8047 -#define GL_LUMINANCE16_ALPHA16_EXT 0x8048 -#define GL_INTENSITY_EXT 0x8049 -#define GL_INTENSITY4_EXT 0x804A -#define GL_INTENSITY8_EXT 0x804B -#define GL_INTENSITY12_EXT 0x804C -#define GL_INTENSITY16_EXT 0x804D -#define GL_RGB2_EXT 0x804E -#define GL_RGB4_EXT 0x804F -#define GL_RGB5_EXT 0x8050 -#define GL_RGB8_EXT 0x8051 -#define GL_RGB10_EXT 0x8052 -#define GL_RGB12_EXT 0x8053 -#define GL_RGB16_EXT 0x8054 -#define GL_RGBA2_EXT 0x8055 -#define GL_RGBA4_EXT 0x8056 -#define GL_RGB5_A1_EXT 0x8057 -#define GL_RGBA8_EXT 0x8058 -#define GL_RGB10_A2_EXT 0x8059 -#define GL_RGBA12_EXT 0x805A -#define GL_RGBA16_EXT 0x805B -#define GL_TEXTURE_RED_SIZE_EXT 0x805C -#define GL_TEXTURE_GREEN_SIZE_EXT 0x805D -#define GL_TEXTURE_BLUE_SIZE_EXT 0x805E -#define GL_TEXTURE_ALPHA_SIZE_EXT 0x805F -#define GL_TEXTURE_LUMINANCE_SIZE_EXT 0x8060 -#define GL_TEXTURE_INTENSITY_SIZE_EXT 0x8061 -#define GL_REPLACE_EXT 0x8062 -#define GL_PROXY_TEXTURE_1D_EXT 0x8063 -#define GL_PROXY_TEXTURE_2D_EXT 0x8064 -#define GL_TEXTURE_TOO_LARGE_EXT 0x8065 -#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 -#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 -#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 -#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 -#define GL_SRGB_EXT 0x8C40 -#define GL_SRGB8_EXT 0x8C41 -#define GL_SRGB_ALPHA_EXT 0x8C42 -#define GL_SRGB8_ALPHA8_EXT 0x8C43 -#define GL_SLUMINANCE_ALPHA_EXT 0x8C44 -#define GL_SLUMINANCE8_ALPHA8_EXT 0x8C45 -#define GL_SLUMINANCE_EXT 0x8C46 -#define GL_SLUMINANCE8_EXT 0x8C47 -#define GL_COMPRESSED_SRGB_EXT 0x8C48 -#define GL_COMPRESSED_SRGB_ALPHA_EXT 0x8C49 -#define GL_COMPRESSED_SLUMINANCE_EXT 0x8C4A -#define GL_COMPRESSED_SLUMINANCE_ALPHA_EXT 0x8C4B -#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F -#define GL_TEXTURE_SWIZZLE_R_EXT 0x8E42 -#define GL_TEXTURE_SWIZZLE_G_EXT 0x8E43 -#define GL_TEXTURE_SWIZZLE_B_EXT 0x8E44 -#define GL_TEXTURE_SWIZZLE_A_EXT 0x8E45 -#define GL_TEXTURE_SWIZZLE_RGBA_EXT 0x8E46 -#define GL_VERTEX_ARRAY_EXT 0x8074 -#define GL_NORMAL_ARRAY_EXT 0x8075 -#define GL_COLOR_ARRAY_EXT 0x8076 -#define GL_INDEX_ARRAY_EXT 0x8077 -#define GL_TEXTURE_COORD_ARRAY_EXT 0x8078 -#define GL_EDGE_FLAG_ARRAY_EXT 0x8079 -#define GL_VERTEX_ARRAY_SIZE_EXT 0x807A -#define GL_VERTEX_ARRAY_TYPE_EXT 0x807B -#define GL_VERTEX_ARRAY_STRIDE_EXT 0x807C -#define GL_VERTEX_ARRAY_COUNT_EXT 0x807D -#define GL_NORMAL_ARRAY_TYPE_EXT 0x807E -#define GL_NORMAL_ARRAY_STRIDE_EXT 0x807F -#define GL_NORMAL_ARRAY_COUNT_EXT 0x8080 -#define GL_COLOR_ARRAY_SIZE_EXT 0x8081 -#define GL_COLOR_ARRAY_TYPE_EXT 0x8082 -#define GL_COLOR_ARRAY_STRIDE_EXT 0x8083 -#define GL_COLOR_ARRAY_COUNT_EXT 0x8084 -#define GL_INDEX_ARRAY_TYPE_EXT 0x8085 -#define GL_INDEX_ARRAY_STRIDE_EXT 0x8086 -#define GL_INDEX_ARRAY_COUNT_EXT 0x8087 -#define GL_TEXTURE_COORD_ARRAY_SIZE_EXT 0x8088 -#define GL_TEXTURE_COORD_ARRAY_TYPE_EXT 0x8089 -#define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A -#define GL_TEXTURE_COORD_ARRAY_COUNT_EXT 0x808B -#define GL_EDGE_FLAG_ARRAY_STRIDE_EXT 0x808C -#define GL_EDGE_FLAG_ARRAY_COUNT_EXT 0x808D -#define GL_VERTEX_ARRAY_POINTER_EXT 0x808E -#define GL_NORMAL_ARRAY_POINTER_EXT 0x808F -#define GL_COLOR_ARRAY_POINTER_EXT 0x8090 -#define GL_INDEX_ARRAY_POINTER_EXT 0x8091 -#define GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092 -#define GL_EDGE_FLAG_ARRAY_POINTER_EXT 0x8093 -#define GL_VERTEX_SHADER_EXT 0x8780 -#define GL_VERTEX_SHADER_BINDING_EXT 0x8781 -#define GL_OP_INDEX_EXT 0x8782 -#define GL_OP_NEGATE_EXT 0x8783 -#define GL_OP_DOT3_EXT 0x8784 -#define GL_OP_DOT4_EXT 0x8785 -#define GL_OP_MUL_EXT 0x8786 -#define GL_OP_ADD_EXT 0x8787 -#define GL_OP_MADD_EXT 0x8788 -#define GL_OP_FRAC_EXT 0x8789 -#define GL_OP_MAX_EXT 0x878A -#define GL_OP_MIN_EXT 0x878B -#define GL_OP_SET_GE_EXT 0x878C -#define GL_OP_SET_LT_EXT 0x878D -#define GL_OP_CLAMP_EXT 0x878E -#define GL_OP_FLOOR_EXT 0x878F -#define GL_OP_ROUND_EXT 0x8790 -#define GL_OP_EXP_BASE_2_EXT 0x8791 -#define GL_OP_LOG_BASE_2_EXT 0x8792 -#define GL_OP_POWER_EXT 0x8793 -#define GL_OP_RECIP_EXT 0x8794 -#define GL_OP_RECIP_SQRT_EXT 0x8795 -#define GL_OP_SUB_EXT 0x8796 -#define GL_OP_CROSS_PRODUCT_EXT 0x8797 -#define GL_OP_MULTIPLY_MATRIX_EXT 0x8798 -#define GL_OP_MOV_EXT 0x8799 -#define GL_OUTPUT_VERTEX_EXT 0x879A -#define GL_OUTPUT_COLOR0_EXT 0x879B -#define GL_OUTPUT_COLOR1_EXT 0x879C -#define GL_OUTPUT_TEXTURE_COORD0_EXT 0x879D -#define GL_OUTPUT_TEXTURE_COORD1_EXT 0x879E -#define GL_OUTPUT_TEXTURE_COORD2_EXT 0x879F -#define GL_OUTPUT_TEXTURE_COORD3_EXT 0x87A0 -#define GL_OUTPUT_TEXTURE_COORD4_EXT 0x87A1 -#define GL_OUTPUT_TEXTURE_COORD5_EXT 0x87A2 -#define GL_OUTPUT_TEXTURE_COORD6_EXT 0x87A3 -#define GL_OUTPUT_TEXTURE_COORD7_EXT 0x87A4 -#define GL_OUTPUT_TEXTURE_COORD8_EXT 0x87A5 -#define GL_OUTPUT_TEXTURE_COORD9_EXT 0x87A6 -#define GL_OUTPUT_TEXTURE_COORD10_EXT 0x87A7 -#define GL_OUTPUT_TEXTURE_COORD11_EXT 0x87A8 -#define GL_OUTPUT_TEXTURE_COORD12_EXT 0x87A9 -#define GL_OUTPUT_TEXTURE_COORD13_EXT 0x87AA -#define GL_OUTPUT_TEXTURE_COORD14_EXT 0x87AB -#define GL_OUTPUT_TEXTURE_COORD15_EXT 0x87AC -#define GL_OUTPUT_TEXTURE_COORD16_EXT 0x87AD -#define GL_OUTPUT_TEXTURE_COORD17_EXT 0x87AE -#define GL_OUTPUT_TEXTURE_COORD18_EXT 0x87AF -#define GL_OUTPUT_TEXTURE_COORD19_EXT 0x87B0 -#define GL_OUTPUT_TEXTURE_COORD20_EXT 0x87B1 -#define GL_OUTPUT_TEXTURE_COORD21_EXT 0x87B2 -#define GL_OUTPUT_TEXTURE_COORD22_EXT 0x87B3 -#define GL_OUTPUT_TEXTURE_COORD23_EXT 0x87B4 -#define GL_OUTPUT_TEXTURE_COORD24_EXT 0x87B5 -#define GL_OUTPUT_TEXTURE_COORD25_EXT 0x87B6 -#define GL_OUTPUT_TEXTURE_COORD26_EXT 0x87B7 -#define GL_OUTPUT_TEXTURE_COORD27_EXT 0x87B8 -#define GL_OUTPUT_TEXTURE_COORD28_EXT 0x87B9 -#define GL_OUTPUT_TEXTURE_COORD29_EXT 0x87BA -#define GL_OUTPUT_TEXTURE_COORD30_EXT 0x87BB -#define GL_OUTPUT_TEXTURE_COORD31_EXT 0x87BC -#define GL_OUTPUT_FOG_EXT 0x87BD -#define GL_SCALAR_EXT 0x87BE -#define GL_VECTOR_EXT 0x87BF -#define GL_MATRIX_EXT 0x87C0 -#define GL_VARIANT_EXT 0x87C1 -#define GL_INVARIANT_EXT 0x87C2 -#define GL_LOCAL_CONSTANT_EXT 0x87C3 -#define GL_LOCAL_EXT 0x87C4 -#define GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87C5 -#define GL_MAX_VERTEX_SHADER_VARIANTS_EXT 0x87C6 -#define GL_MAX_VERTEX_SHADER_INVARIANTS_EXT 0x87C7 -#define GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87C8 -#define GL_MAX_VERTEX_SHADER_LOCALS_EXT 0x87C9 -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CA -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT 0x87CB -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87CC -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT 0x87CD -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT 0x87CE -#define GL_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CF -#define GL_VERTEX_SHADER_VARIANTS_EXT 0x87D0 -#define GL_VERTEX_SHADER_INVARIANTS_EXT 0x87D1 -#define GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87D2 -#define GL_VERTEX_SHADER_LOCALS_EXT 0x87D3 -#define GL_VERTEX_SHADER_OPTIMIZED_EXT 0x87D4 -#define GL_X_EXT 0x87D5 -#define GL_Y_EXT 0x87D6 -#define GL_Z_EXT 0x87D7 -#define GL_W_EXT 0x87D8 -#define GL_NEGATIVE_X_EXT 0x87D9 -#define GL_NEGATIVE_Y_EXT 0x87DA -#define GL_NEGATIVE_Z_EXT 0x87DB -#define GL_NEGATIVE_W_EXT 0x87DC -#define GL_ZERO_EXT 0x87DD -#define GL_ONE_EXT 0x87DE -#define GL_NEGATIVE_ONE_EXT 0x87DF -#define GL_NORMALIZED_RANGE_EXT 0x87E0 -#define GL_FULL_RANGE_EXT 0x87E1 -#define GL_CURRENT_VERTEX_EXT 0x87E2 -#define GL_MVP_MATRIX_EXT 0x87E3 -#define GL_VARIANT_VALUE_EXT 0x87E4 -#define GL_VARIANT_DATATYPE_EXT 0x87E5 -#define GL_VARIANT_ARRAY_STRIDE_EXT 0x87E6 -#define GL_VARIANT_ARRAY_TYPE_EXT 0x87E7 -#define GL_VARIANT_ARRAY_EXT 0x87E8 -#define GL_VARIANT_ARRAY_POINTER_EXT 0x87E9 -#define GL_INVARIANT_VALUE_EXT 0x87EA -#define GL_INVARIANT_DATATYPE_EXT 0x87EB -#define GL_LOCAL_CONSTANT_VALUE_EXT 0x87EC -#define GL_LOCAL_CONSTANT_DATATYPE_EXT 0x87ED -#ifndef GL_AMD_debug_output -#define GL_AMD_debug_output 1 -GLAPI int GLAD_GL_AMD_debug_output; -typedef void (APIENTRYP PFNGLDEBUGMESSAGEENABLEAMDPROC)(GLenum category, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled); -GLAPI PFNGLDEBUGMESSAGEENABLEAMDPROC glad_glDebugMessageEnableAMD; -#define glDebugMessageEnableAMD glad_glDebugMessageEnableAMD -typedef void (APIENTRYP PFNGLDEBUGMESSAGEINSERTAMDPROC)(GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar* buf); -GLAPI PFNGLDEBUGMESSAGEINSERTAMDPROC glad_glDebugMessageInsertAMD; -#define glDebugMessageInsertAMD glad_glDebugMessageInsertAMD -typedef void (APIENTRYP PFNGLDEBUGMESSAGECALLBACKAMDPROC)(GLDEBUGPROCAMD callback, void* userParam); -GLAPI PFNGLDEBUGMESSAGECALLBACKAMDPROC glad_glDebugMessageCallbackAMD; -#define glDebugMessageCallbackAMD glad_glDebugMessageCallbackAMD -typedef GLuint (APIENTRYP PFNGLGETDEBUGMESSAGELOGAMDPROC)(GLuint count, GLsizei bufsize, GLenum* categories, GLuint* severities, GLuint* ids, GLsizei* lengths, GLchar* message); -GLAPI PFNGLGETDEBUGMESSAGELOGAMDPROC glad_glGetDebugMessageLogAMD; -#define glGetDebugMessageLogAMD glad_glGetDebugMessageLogAMD +#define GL_VERTEX_SHADER_BIT 0x00000001 +#define GL_VERTEX_SHADER_INVOCATIONS 0x82F0 +#define GL_VERTEX_SHADER_INVOCATIONS_ARB 0x82F0 +#define GL_VERTEX_SUBROUTINE 0x92E8 +#define GL_VERTEX_SUBROUTINE_UNIFORM 0x92EE +#define GL_VERTEX_TEXTURE 0x829B +#define GL_VERTICES_SUBMITTED 0x82EE +#define GL_VERTICES_SUBMITTED_ARB 0x82EE +#define GL_VIEWPORT 0x0BA2 +#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_ASTC_10x10_RGBA 0x9393 +#define GL_VIEW_CLASS_ASTC_10x5_RGBA 0x9390 +#define GL_VIEW_CLASS_ASTC_10x6_RGBA 0x9391 +#define GL_VIEW_CLASS_ASTC_10x8_RGBA 0x9392 +#define GL_VIEW_CLASS_ASTC_12x10_RGBA 0x9394 +#define GL_VIEW_CLASS_ASTC_12x12_RGBA 0x9395 +#define GL_VIEW_CLASS_ASTC_4x4_RGBA 0x9388 +#define GL_VIEW_CLASS_ASTC_5x4_RGBA 0x9389 +#define GL_VIEW_CLASS_ASTC_5x5_RGBA 0x938A +#define GL_VIEW_CLASS_ASTC_6x5_RGBA 0x938B +#define GL_VIEW_CLASS_ASTC_6x6_RGBA 0x938C +#define GL_VIEW_CLASS_ASTC_8x5_RGBA 0x938D +#define GL_VIEW_CLASS_ASTC_8x6_RGBA 0x938E +#define GL_VIEW_CLASS_ASTC_8x8_RGBA 0x938F +#define GL_VIEW_CLASS_BPTC_FLOAT 0x82D3 +#define GL_VIEW_CLASS_BPTC_UNORM 0x82D2 +#define GL_VIEW_CLASS_EAC_R11 0x9383 +#define GL_VIEW_CLASS_EAC_RG11 0x9384 +#define GL_VIEW_CLASS_ETC2_EAC_RGBA 0x9387 +#define GL_VIEW_CLASS_ETC2_RGB 0x9385 +#define GL_VIEW_CLASS_ETC2_RGBA 0x9386 +#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_WEIGHTED_AVERAGE_ARB 0x9367 +#define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB 0x889E +#define GL_WRITE_ONLY 0x88B9 +#define GL_WRITE_ONLY_ARB 0x88B9 +#define GL_XOR 0x1506 +#define GL_ZERO 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_GLAD_API_PTR + * KHRONOS_APIATTRIBUTES + * + * These may be used in function prototypes as: + * + * KHRONOS_APICALL void KHRONOS_GLAD_API_PTR funcname( + * int arg1, + * int arg2) KHRONOS_APIATTRIBUTES; + */ + +#if defined(__SCITECH_SNAP__) && !defined(KHRONOS_STATIC) +# define KHRONOS_STATIC 1 #endif -#ifndef GL_AMD_query_buffer_object -#define GL_AMD_query_buffer_object 1 -GLAPI int GLAD_GL_AMD_query_buffer_object; + +/*------------------------------------------------------------------------- + * 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 -#ifndef GL_ARB_ES2_compatibility + +/*------------------------------------------------------------------------- + * Definition of KHRONOS_GLAD_API_PTR + *------------------------------------------------------------------------- + * 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_GLAD_API_PTR __stdcall +#else +# define KHRONOS_GLAD_API_PTR +#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_ */ + +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 +GLAD_API_CALL int GLAD_GL_VERSION_1_0; +#define GL_VERSION_1_1 1 +GLAD_API_CALL int GLAD_GL_VERSION_1_1; +#define GL_VERSION_1_2 1 +GLAD_API_CALL int GLAD_GL_VERSION_1_2; +#define GL_VERSION_1_3 1 +GLAD_API_CALL int GLAD_GL_VERSION_1_3; +#define GL_VERSION_1_4 1 +GLAD_API_CALL int GLAD_GL_VERSION_1_4; +#define GL_VERSION_1_5 1 +GLAD_API_CALL int GLAD_GL_VERSION_1_5; +#define GL_VERSION_2_0 1 +GLAD_API_CALL int GLAD_GL_VERSION_2_0; +#define GL_VERSION_2_1 1 +GLAD_API_CALL int GLAD_GL_VERSION_2_1; +#define GL_VERSION_3_0 1 +GLAD_API_CALL int GLAD_GL_VERSION_3_0; +#define GL_VERSION_3_1 1 +GLAD_API_CALL int GLAD_GL_VERSION_3_1; +#define GL_VERSION_3_2 1 +GLAD_API_CALL int GLAD_GL_VERSION_3_2; +#define GL_VERSION_3_3 1 +GLAD_API_CALL int GLAD_GL_VERSION_3_3; +#define GL_VERSION_4_0 1 +GLAD_API_CALL int GLAD_GL_VERSION_4_0; +#define GL_VERSION_4_1 1 +GLAD_API_CALL int GLAD_GL_VERSION_4_1; +#define GL_VERSION_4_2 1 +GLAD_API_CALL int GLAD_GL_VERSION_4_2; +#define GL_VERSION_4_3 1 +GLAD_API_CALL int GLAD_GL_VERSION_4_3; #define GL_ARB_ES2_compatibility 1 -GLAPI int GLAD_GL_ARB_ES2_compatibility; -typedef void (APIENTRYP PFNGLRELEASESHADERCOMPILERPROC)(); -GLAPI PFNGLRELEASESHADERCOMPILERPROC glad_glReleaseShaderCompiler; -#define glReleaseShaderCompiler glad_glReleaseShaderCompiler -typedef void (APIENTRYP PFNGLSHADERBINARYPROC)(GLsizei count, const GLuint* shaders, GLenum binaryformat, const void* binary, GLsizei length); -GLAPI PFNGLSHADERBINARYPROC glad_glShaderBinary; -#define glShaderBinary glad_glShaderBinary -typedef void (APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC)(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision); -GLAPI PFNGLGETSHADERPRECISIONFORMATPROC glad_glGetShaderPrecisionFormat; -#define glGetShaderPrecisionFormat glad_glGetShaderPrecisionFormat -typedef void (APIENTRYP PFNGLDEPTHRANGEFPROC)(GLfloat n, GLfloat f); -GLAPI PFNGLDEPTHRANGEFPROC glad_glDepthRangef; -#define glDepthRangef glad_glDepthRangef -typedef void (APIENTRYP PFNGLCLEARDEPTHFPROC)(GLfloat d); -GLAPI PFNGLCLEARDEPTHFPROC glad_glClearDepthf; -#define glClearDepthf glad_glClearDepthf -#endif -#ifndef GL_ARB_ES3_compatibility +GLAD_API_CALL int GLAD_GL_ARB_ES2_compatibility; +#define GL_ARB_ES3_1_compatibility 1 +GLAD_API_CALL int GLAD_GL_ARB_ES3_1_compatibility; +#define GL_ARB_ES3_2_compatibility 1 +GLAD_API_CALL int GLAD_GL_ARB_ES3_2_compatibility; #define GL_ARB_ES3_compatibility 1 -GLAPI int GLAD_GL_ARB_ES3_compatibility; -#endif -#ifndef GL_ARB_buffer_storage +GLAD_API_CALL int GLAD_GL_ARB_ES3_compatibility; +#define GL_ARB_blend_func_extended 1 +GLAD_API_CALL int GLAD_GL_ARB_blend_func_extended; #define GL_ARB_buffer_storage 1 -GLAPI int GLAD_GL_ARB_buffer_storage; -typedef void (APIENTRYP PFNGLBUFFERSTORAGEPROC)(GLenum target, GLsizeiptr size, const void* data, GLbitfield flags); -GLAPI PFNGLBUFFERSTORAGEPROC glad_glBufferStorage; -#define glBufferStorage glad_glBufferStorage -#endif -#ifndef GL_ARB_compatibility +GLAD_API_CALL int GLAD_GL_ARB_buffer_storage; +#define GL_ARB_clear_buffer_object 1 +GLAD_API_CALL int GLAD_GL_ARB_clear_buffer_object; +#define GL_ARB_clear_texture 1 +GLAD_API_CALL int GLAD_GL_ARB_clear_texture; +#define GL_ARB_color_buffer_float 1 +GLAD_API_CALL int GLAD_GL_ARB_color_buffer_float; #define GL_ARB_compatibility 1 -GLAPI int GLAD_GL_ARB_compatibility; -#endif -#ifndef GL_ARB_compressed_texture_pixel_storage +GLAD_API_CALL int GLAD_GL_ARB_compatibility; #define GL_ARB_compressed_texture_pixel_storage 1 -GLAPI int GLAD_GL_ARB_compressed_texture_pixel_storage; -#endif -#ifndef GL_ARB_debug_output +GLAD_API_CALL int GLAD_GL_ARB_compressed_texture_pixel_storage; +#define GL_ARB_compute_shader 1 +GLAD_API_CALL int GLAD_GL_ARB_compute_shader; +#define GL_ARB_compute_variable_group_size 1 +GLAD_API_CALL int GLAD_GL_ARB_compute_variable_group_size; +#define GL_ARB_copy_buffer 1 +GLAD_API_CALL int GLAD_GL_ARB_copy_buffer; +#define GL_ARB_copy_image 1 +GLAD_API_CALL int GLAD_GL_ARB_copy_image; #define GL_ARB_debug_output 1 -GLAPI int GLAD_GL_ARB_debug_output; -typedef void (APIENTRYP PFNGLDEBUGMESSAGECONTROLARBPROC)(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled); -GLAPI PFNGLDEBUGMESSAGECONTROLARBPROC glad_glDebugMessageControlARB; -#define glDebugMessageControlARB glad_glDebugMessageControlARB -typedef void (APIENTRYP PFNGLDEBUGMESSAGEINSERTARBPROC)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* buf); -GLAPI PFNGLDEBUGMESSAGEINSERTARBPROC glad_glDebugMessageInsertARB; -#define glDebugMessageInsertARB glad_glDebugMessageInsertARB -typedef void (APIENTRYP PFNGLDEBUGMESSAGECALLBACKARBPROC)(GLDEBUGPROCARB callback, const void* userParam); -GLAPI PFNGLDEBUGMESSAGECALLBACKARBPROC glad_glDebugMessageCallbackARB; -#define glDebugMessageCallbackARB glad_glDebugMessageCallbackARB -typedef GLuint (APIENTRYP PFNGLGETDEBUGMESSAGELOGARBPROC)(GLuint count, GLsizei bufSize, GLenum* sources, GLenum* types, GLuint* ids, GLenum* severities, GLsizei* lengths, GLchar* messageLog); -GLAPI PFNGLGETDEBUGMESSAGELOGARBPROC glad_glGetDebugMessageLogARB; -#define glGetDebugMessageLogARB glad_glGetDebugMessageLogARB -#endif -#ifndef GL_ARB_depth_buffer_float +GLAD_API_CALL int GLAD_GL_ARB_debug_output; #define GL_ARB_depth_buffer_float 1 -GLAPI int GLAD_GL_ARB_depth_buffer_float; -#endif -#ifndef GL_ARB_depth_clamp +GLAD_API_CALL int GLAD_GL_ARB_depth_buffer_float; #define GL_ARB_depth_clamp 1 -GLAPI int GLAD_GL_ARB_depth_clamp; -#endif -#ifndef GL_ARB_depth_texture +GLAD_API_CALL int GLAD_GL_ARB_depth_clamp; #define GL_ARB_depth_texture 1 -GLAPI int GLAD_GL_ARB_depth_texture; -#endif -#ifndef GL_ARB_draw_buffers +GLAD_API_CALL int GLAD_GL_ARB_depth_texture; +#define GL_ARB_direct_state_access 1 +GLAD_API_CALL int GLAD_GL_ARB_direct_state_access; #define GL_ARB_draw_buffers 1 -GLAPI int GLAD_GL_ARB_draw_buffers; -typedef void (APIENTRYP PFNGLDRAWBUFFERSARBPROC)(GLsizei n, const GLenum* bufs); -GLAPI PFNGLDRAWBUFFERSARBPROC glad_glDrawBuffersARB; -#define glDrawBuffersARB glad_glDrawBuffersARB -#endif -#ifndef GL_ARB_draw_buffers_blend +GLAD_API_CALL int GLAD_GL_ARB_draw_buffers; #define GL_ARB_draw_buffers_blend 1 -GLAPI int GLAD_GL_ARB_draw_buffers_blend; -typedef void (APIENTRYP PFNGLBLENDEQUATIONIARBPROC)(GLuint buf, GLenum mode); -GLAPI PFNGLBLENDEQUATIONIARBPROC glad_glBlendEquationiARB; -#define glBlendEquationiARB glad_glBlendEquationiARB -typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEIARBPROC)(GLuint buf, GLenum modeRGB, GLenum modeAlpha); -GLAPI PFNGLBLENDEQUATIONSEPARATEIARBPROC glad_glBlendEquationSeparateiARB; -#define glBlendEquationSeparateiARB glad_glBlendEquationSeparateiARB -typedef void (APIENTRYP PFNGLBLENDFUNCIARBPROC)(GLuint buf, GLenum src, GLenum dst); -GLAPI PFNGLBLENDFUNCIARBPROC glad_glBlendFunciARB; -#define glBlendFunciARB glad_glBlendFunciARB -typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEIARBPROC)(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -GLAPI PFNGLBLENDFUNCSEPARATEIARBPROC glad_glBlendFuncSeparateiARB; -#define glBlendFuncSeparateiARB glad_glBlendFuncSeparateiARB -#endif -#ifndef GL_ARB_explicit_attrib_location +GLAD_API_CALL int GLAD_GL_ARB_draw_buffers_blend; +#define GL_ARB_draw_elements_base_vertex 1 +GLAD_API_CALL int GLAD_GL_ARB_draw_elements_base_vertex; +#define GL_ARB_draw_indirect 1 +GLAD_API_CALL int GLAD_GL_ARB_draw_indirect; +#define GL_ARB_draw_instanced 1 +GLAD_API_CALL int GLAD_GL_ARB_draw_instanced; +#define GL_ARB_enhanced_layouts 1 +GLAD_API_CALL int GLAD_GL_ARB_enhanced_layouts; #define GL_ARB_explicit_attrib_location 1 -GLAPI int GLAD_GL_ARB_explicit_attrib_location; -#endif -#ifndef GL_ARB_explicit_uniform_location +GLAD_API_CALL int GLAD_GL_ARB_explicit_attrib_location; #define GL_ARB_explicit_uniform_location 1 -GLAPI int GLAD_GL_ARB_explicit_uniform_location; -#endif -#ifndef GL_ARB_fragment_program +GLAD_API_CALL int GLAD_GL_ARB_explicit_uniform_location; +#define GL_ARB_fragment_coord_conventions 1 +GLAD_API_CALL int GLAD_GL_ARB_fragment_coord_conventions; +#define GL_ARB_fragment_layer_viewport 1 +GLAD_API_CALL int GLAD_GL_ARB_fragment_layer_viewport; #define GL_ARB_fragment_program 1 -GLAPI int GLAD_GL_ARB_fragment_program; -typedef void (APIENTRYP PFNGLPROGRAMSTRINGARBPROC)(GLenum target, GLenum format, GLsizei len, const void* string); -GLAPI PFNGLPROGRAMSTRINGARBPROC glad_glProgramStringARB; -#define glProgramStringARB glad_glProgramStringARB -typedef void (APIENTRYP PFNGLBINDPROGRAMARBPROC)(GLenum target, GLuint program); -GLAPI PFNGLBINDPROGRAMARBPROC glad_glBindProgramARB; -#define glBindProgramARB glad_glBindProgramARB -typedef void (APIENTRYP PFNGLDELETEPROGRAMSARBPROC)(GLsizei n, const GLuint* programs); -GLAPI PFNGLDELETEPROGRAMSARBPROC glad_glDeleteProgramsARB; -#define glDeleteProgramsARB glad_glDeleteProgramsARB -typedef void (APIENTRYP PFNGLGENPROGRAMSARBPROC)(GLsizei n, GLuint* programs); -GLAPI PFNGLGENPROGRAMSARBPROC glad_glGenProgramsARB; -#define glGenProgramsARB glad_glGenProgramsARB -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4DARBPROC)(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI PFNGLPROGRAMENVPARAMETER4DARBPROC glad_glProgramEnvParameter4dARB; -#define glProgramEnvParameter4dARB glad_glProgramEnvParameter4dARB -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4DVARBPROC)(GLenum target, GLuint index, const GLdouble* params); -GLAPI PFNGLPROGRAMENVPARAMETER4DVARBPROC glad_glProgramEnvParameter4dvARB; -#define glProgramEnvParameter4dvARB glad_glProgramEnvParameter4dvARB -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4FARBPROC)(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI PFNGLPROGRAMENVPARAMETER4FARBPROC glad_glProgramEnvParameter4fARB; -#define glProgramEnvParameter4fARB glad_glProgramEnvParameter4fARB -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4FVARBPROC)(GLenum target, GLuint index, const GLfloat* params); -GLAPI PFNGLPROGRAMENVPARAMETER4FVARBPROC glad_glProgramEnvParameter4fvARB; -#define glProgramEnvParameter4fvARB glad_glProgramEnvParameter4fvARB -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4DARBPROC)(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI PFNGLPROGRAMLOCALPARAMETER4DARBPROC glad_glProgramLocalParameter4dARB; -#define glProgramLocalParameter4dARB glad_glProgramLocalParameter4dARB -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4DVARBPROC)(GLenum target, GLuint index, const GLdouble* params); -GLAPI PFNGLPROGRAMLOCALPARAMETER4DVARBPROC glad_glProgramLocalParameter4dvARB; -#define glProgramLocalParameter4dvARB glad_glProgramLocalParameter4dvARB -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FARBPROC)(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI PFNGLPROGRAMLOCALPARAMETER4FARBPROC glad_glProgramLocalParameter4fARB; -#define glProgramLocalParameter4fARB glad_glProgramLocalParameter4fARB -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FVARBPROC)(GLenum target, GLuint index, const GLfloat* params); -GLAPI PFNGLPROGRAMLOCALPARAMETER4FVARBPROC glad_glProgramLocalParameter4fvARB; -#define glProgramLocalParameter4fvARB glad_glProgramLocalParameter4fvARB -typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERDVARBPROC)(GLenum target, GLuint index, GLdouble* params); -GLAPI PFNGLGETPROGRAMENVPARAMETERDVARBPROC glad_glGetProgramEnvParameterdvARB; -#define glGetProgramEnvParameterdvARB glad_glGetProgramEnvParameterdvARB -typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERFVARBPROC)(GLenum target, GLuint index, GLfloat* params); -GLAPI PFNGLGETPROGRAMENVPARAMETERFVARBPROC glad_glGetProgramEnvParameterfvARB; -#define glGetProgramEnvParameterfvARB glad_glGetProgramEnvParameterfvARB -typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC)(GLenum target, GLuint index, GLdouble* params); -GLAPI PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC glad_glGetProgramLocalParameterdvARB; -#define glGetProgramLocalParameterdvARB glad_glGetProgramLocalParameterdvARB -typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC)(GLenum target, GLuint index, GLfloat* params); -GLAPI PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC glad_glGetProgramLocalParameterfvARB; -#define glGetProgramLocalParameterfvARB glad_glGetProgramLocalParameterfvARB -typedef void (APIENTRYP PFNGLGETPROGRAMIVARBPROC)(GLenum target, GLenum pname, GLint* params); -GLAPI PFNGLGETPROGRAMIVARBPROC glad_glGetProgramivARB; -#define glGetProgramivARB glad_glGetProgramivARB -typedef void (APIENTRYP PFNGLGETPROGRAMSTRINGARBPROC)(GLenum target, GLenum pname, void* string); -GLAPI PFNGLGETPROGRAMSTRINGARBPROC glad_glGetProgramStringARB; -#define glGetProgramStringARB glad_glGetProgramStringARB -typedef GLboolean (APIENTRYP PFNGLISPROGRAMARBPROC)(GLuint program); -GLAPI PFNGLISPROGRAMARBPROC glad_glIsProgramARB; -#define glIsProgramARB glad_glIsProgramARB -#endif -#ifndef GL_ARB_fragment_shader +GLAD_API_CALL int GLAD_GL_ARB_fragment_program; +#define GL_ARB_fragment_program_shadow 1 +GLAD_API_CALL int GLAD_GL_ARB_fragment_program_shadow; #define GL_ARB_fragment_shader 1 -GLAPI int GLAD_GL_ARB_fragment_shader; -#endif -#ifndef GL_ARB_framebuffer_object +GLAD_API_CALL int GLAD_GL_ARB_fragment_shader; +#define GL_ARB_fragment_shader_interlock 1 +GLAD_API_CALL int GLAD_GL_ARB_fragment_shader_interlock; +#define GL_ARB_framebuffer_no_attachments 1 +GLAD_API_CALL int GLAD_GL_ARB_framebuffer_no_attachments; #define GL_ARB_framebuffer_object 1 -GLAPI int GLAD_GL_ARB_framebuffer_object; -#endif -#ifndef GL_ARB_framebuffer_sRGB +GLAD_API_CALL int GLAD_GL_ARB_framebuffer_object; #define GL_ARB_framebuffer_sRGB 1 -GLAPI int GLAD_GL_ARB_framebuffer_sRGB; -#endif -#ifndef GL_ARB_multisample +GLAD_API_CALL int GLAD_GL_ARB_framebuffer_sRGB; +#define GL_ARB_geometry_shader4 1 +GLAD_API_CALL int GLAD_GL_ARB_geometry_shader4; +#define GL_ARB_get_program_binary 1 +GLAD_API_CALL int GLAD_GL_ARB_get_program_binary; +#define GL_ARB_get_texture_sub_image 1 +GLAD_API_CALL int GLAD_GL_ARB_get_texture_sub_image; +#define GL_ARB_gl_spirv 1 +GLAD_API_CALL int GLAD_GL_ARB_gl_spirv; +#define GL_ARB_gpu_shader5 1 +GLAD_API_CALL int GLAD_GL_ARB_gpu_shader5; +#define GL_ARB_gpu_shader_fp64 1 +GLAD_API_CALL int GLAD_GL_ARB_gpu_shader_fp64; +#define GL_ARB_gpu_shader_int64 1 +GLAD_API_CALL int GLAD_GL_ARB_gpu_shader_int64; +#define GL_ARB_half_float_pixel 1 +GLAD_API_CALL int GLAD_GL_ARB_half_float_pixel; +#define GL_ARB_half_float_vertex 1 +GLAD_API_CALL int GLAD_GL_ARB_half_float_vertex; +#define GL_ARB_instanced_arrays 1 +GLAD_API_CALL int GLAD_GL_ARB_instanced_arrays; +#define GL_ARB_internalformat_query 1 +GLAD_API_CALL int GLAD_GL_ARB_internalformat_query; +#define GL_ARB_internalformat_query2 1 +GLAD_API_CALL int GLAD_GL_ARB_internalformat_query2; +#define GL_ARB_map_buffer_range 1 +GLAD_API_CALL int GLAD_GL_ARB_map_buffer_range; +#define GL_ARB_multi_bind 1 +GLAD_API_CALL int GLAD_GL_ARB_multi_bind; +#define GL_ARB_multi_draw_indirect 1 +GLAD_API_CALL int GLAD_GL_ARB_multi_draw_indirect; #define GL_ARB_multisample 1 -GLAPI int GLAD_GL_ARB_multisample; -typedef void (APIENTRYP PFNGLSAMPLECOVERAGEARBPROC)(GLfloat value, GLboolean invert); -GLAPI PFNGLSAMPLECOVERAGEARBPROC glad_glSampleCoverageARB; -#define glSampleCoverageARB glad_glSampleCoverageARB -#endif -#ifndef GL_ARB_sample_locations +GLAD_API_CALL int GLAD_GL_ARB_multisample; +#define GL_ARB_multitexture 1 +GLAD_API_CALL int GLAD_GL_ARB_multitexture; +#define GL_ARB_occlusion_query 1 +GLAD_API_CALL int GLAD_GL_ARB_occlusion_query; +#define GL_ARB_occlusion_query2 1 +GLAD_API_CALL int GLAD_GL_ARB_occlusion_query2; +#define GL_ARB_pipeline_statistics_query 1 +GLAD_API_CALL int GLAD_GL_ARB_pipeline_statistics_query; +#define GL_ARB_query_buffer_object 1 +GLAD_API_CALL int GLAD_GL_ARB_query_buffer_object; #define GL_ARB_sample_locations 1 -GLAPI int GLAD_GL_ARB_sample_locations; -typedef void (APIENTRYP PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC)(GLenum target, GLuint start, GLsizei count, const GLfloat* v); -GLAPI PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC glad_glFramebufferSampleLocationsfvARB; -#define glFramebufferSampleLocationsfvARB glad_glFramebufferSampleLocationsfvARB -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC)(GLuint framebuffer, GLuint start, GLsizei count, const GLfloat* v); -GLAPI PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC glad_glNamedFramebufferSampleLocationsfvARB; -#define glNamedFramebufferSampleLocationsfvARB glad_glNamedFramebufferSampleLocationsfvARB -typedef void (APIENTRYP PFNGLEVALUATEDEPTHVALUESARBPROC)(); -GLAPI PFNGLEVALUATEDEPTHVALUESARBPROC glad_glEvaluateDepthValuesARB; -#define glEvaluateDepthValuesARB glad_glEvaluateDepthValuesARB -#endif -#ifndef GL_ARB_texture_compression +GLAD_API_CALL int GLAD_GL_ARB_sample_locations; +#define GL_ARB_sample_shading 1 +GLAD_API_CALL int GLAD_GL_ARB_sample_shading; +#define GL_ARB_seamless_cube_map 1 +GLAD_API_CALL int GLAD_GL_ARB_seamless_cube_map; +#define GL_ARB_seamless_cubemap_per_texture 1 +GLAD_API_CALL int GLAD_GL_ARB_seamless_cubemap_per_texture; +#define GL_ARB_shader_atomic_counter_ops 1 +GLAD_API_CALL int GLAD_GL_ARB_shader_atomic_counter_ops; +#define GL_ARB_shader_atomic_counters 1 +GLAD_API_CALL int GLAD_GL_ARB_shader_atomic_counters; +#define GL_ARB_shader_bit_encoding 1 +GLAD_API_CALL int GLAD_GL_ARB_shader_bit_encoding; +#define GL_ARB_shader_clock 1 +GLAD_API_CALL int GLAD_GL_ARB_shader_clock; +#define GL_ARB_shader_image_load_store 1 +GLAD_API_CALL int GLAD_GL_ARB_shader_image_load_store; +#define GL_ARB_shader_image_size 1 +GLAD_API_CALL int GLAD_GL_ARB_shader_image_size; +#define GL_ARB_shader_objects 1 +GLAD_API_CALL int GLAD_GL_ARB_shader_objects; +#define GL_ARB_shader_storage_buffer_object 1 +GLAD_API_CALL int GLAD_GL_ARB_shader_storage_buffer_object; +#define GL_ARB_shader_texture_lod 1 +GLAD_API_CALL int GLAD_GL_ARB_shader_texture_lod; +#define GL_ARB_shading_language_100 1 +GLAD_API_CALL int GLAD_GL_ARB_shading_language_100; +#define GL_ARB_shading_language_420pack 1 +GLAD_API_CALL int GLAD_GL_ARB_shading_language_420pack; +#define GL_ARB_shading_language_include 1 +GLAD_API_CALL int GLAD_GL_ARB_shading_language_include; +#define GL_ARB_shading_language_packing 1 +GLAD_API_CALL int GLAD_GL_ARB_shading_language_packing; +#define GL_ARB_spirv_extensions 1 +GLAD_API_CALL int GLAD_GL_ARB_spirv_extensions; +#define GL_ARB_tessellation_shader 1 +GLAD_API_CALL int GLAD_GL_ARB_tessellation_shader; +#define GL_ARB_texture_border_clamp 1 +GLAD_API_CALL int GLAD_GL_ARB_texture_border_clamp; +#define GL_ARB_texture_buffer_object_rgb32 1 +GLAD_API_CALL int GLAD_GL_ARB_texture_buffer_object_rgb32; #define GL_ARB_texture_compression 1 -GLAPI int GLAD_GL_ARB_texture_compression; -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DARBPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void* data); -GLAPI PFNGLCOMPRESSEDTEXIMAGE3DARBPROC glad_glCompressedTexImage3DARB; -#define glCompressedTexImage3DARB glad_glCompressedTexImage3DARB -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DARBPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data); -GLAPI PFNGLCOMPRESSEDTEXIMAGE2DARBPROC glad_glCompressedTexImage2DARB; -#define glCompressedTexImage2DARB glad_glCompressedTexImage2DARB -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DARBPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void* data); -GLAPI PFNGLCOMPRESSEDTEXIMAGE1DARBPROC glad_glCompressedTexImage1DARB; -#define glCompressedTexImage1DARB glad_glCompressedTexImage1DARB -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void* data); -GLAPI PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC glad_glCompressedTexSubImage3DARB; -#define glCompressedTexSubImage3DARB glad_glCompressedTexSubImage3DARB -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data); -GLAPI PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC glad_glCompressedTexSubImage2DARB; -#define glCompressedTexSubImage2DARB glad_glCompressedTexSubImage2DARB -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void* data); -GLAPI PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC glad_glCompressedTexSubImage1DARB; -#define glCompressedTexSubImage1DARB glad_glCompressedTexSubImage1DARB -typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEARBPROC)(GLenum target, GLint level, void* img); -GLAPI PFNGLGETCOMPRESSEDTEXIMAGEARBPROC glad_glGetCompressedTexImageARB; -#define glGetCompressedTexImageARB glad_glGetCompressedTexImageARB -#endif -#ifndef GL_ARB_texture_float -#define GL_ARB_texture_float 1 -GLAPI int GLAD_GL_ARB_texture_float; -#endif -#ifndef GL_ARB_texture_multisample -#define GL_ARB_texture_multisample 1 -GLAPI int GLAD_GL_ARB_texture_multisample; -#endif -#ifndef GL_ARB_texture_non_power_of_two -#define GL_ARB_texture_non_power_of_two 1 -GLAPI int GLAD_GL_ARB_texture_non_power_of_two; -#endif -#ifndef GL_ARB_texture_rg -#define GL_ARB_texture_rg 1 -GLAPI int GLAD_GL_ARB_texture_rg; -#endif -#ifndef GL_ARB_texture_swizzle -#define GL_ARB_texture_swizzle 1 -GLAPI int GLAD_GL_ARB_texture_swizzle; -#endif -#ifndef GL_ARB_uniform_buffer_object -#define GL_ARB_uniform_buffer_object 1 -GLAPI int GLAD_GL_ARB_uniform_buffer_object; -#endif -#ifndef GL_ARB_vertex_array_object -#define GL_ARB_vertex_array_object 1 -GLAPI int GLAD_GL_ARB_vertex_array_object; -#endif -#ifndef GL_ARB_vertex_attrib_binding -#define GL_ARB_vertex_attrib_binding 1 -GLAPI int GLAD_GL_ARB_vertex_attrib_binding; -typedef void (APIENTRYP PFNGLBINDVERTEXBUFFERPROC)(GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride); -GLAPI PFNGLBINDVERTEXBUFFERPROC glad_glBindVertexBuffer; -#define glBindVertexBuffer glad_glBindVertexBuffer -typedef void (APIENTRYP PFNGLVERTEXATTRIBFORMATPROC)(GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset); -GLAPI PFNGLVERTEXATTRIBFORMATPROC glad_glVertexAttribFormat; -#define glVertexAttribFormat glad_glVertexAttribFormat -typedef void (APIENTRYP PFNGLVERTEXATTRIBIFORMATPROC)(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -GLAPI PFNGLVERTEXATTRIBIFORMATPROC glad_glVertexAttribIFormat; -#define glVertexAttribIFormat glad_glVertexAttribIFormat -typedef void (APIENTRYP PFNGLVERTEXATTRIBLFORMATPROC)(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset); -GLAPI PFNGLVERTEXATTRIBLFORMATPROC glad_glVertexAttribLFormat; -#define glVertexAttribLFormat glad_glVertexAttribLFormat -typedef void (APIENTRYP PFNGLVERTEXATTRIBBINDINGPROC)(GLuint attribindex, GLuint bindingindex); -GLAPI PFNGLVERTEXATTRIBBINDINGPROC glad_glVertexAttribBinding; -#define glVertexAttribBinding glad_glVertexAttribBinding -typedef void (APIENTRYP PFNGLVERTEXBINDINGDIVISORPROC)(GLuint bindingindex, GLuint divisor); -GLAPI PFNGLVERTEXBINDINGDIVISORPROC glad_glVertexBindingDivisor; -#define glVertexBindingDivisor glad_glVertexBindingDivisor -#endif -#ifndef GL_ARB_vertex_buffer_object -#define GL_ARB_vertex_buffer_object 1 -GLAPI int GLAD_GL_ARB_vertex_buffer_object; -typedef void (APIENTRYP PFNGLBINDBUFFERARBPROC)(GLenum target, GLuint buffer); -GLAPI PFNGLBINDBUFFERARBPROC glad_glBindBufferARB; -#define glBindBufferARB glad_glBindBufferARB -typedef void (APIENTRYP PFNGLDELETEBUFFERSARBPROC)(GLsizei n, const GLuint* buffers); -GLAPI PFNGLDELETEBUFFERSARBPROC glad_glDeleteBuffersARB; -#define glDeleteBuffersARB glad_glDeleteBuffersARB -typedef void (APIENTRYP PFNGLGENBUFFERSARBPROC)(GLsizei n, GLuint* buffers); -GLAPI PFNGLGENBUFFERSARBPROC glad_glGenBuffersARB; -#define glGenBuffersARB glad_glGenBuffersARB -typedef GLboolean (APIENTRYP PFNGLISBUFFERARBPROC)(GLuint buffer); -GLAPI PFNGLISBUFFERARBPROC glad_glIsBufferARB; -#define glIsBufferARB glad_glIsBufferARB -typedef void (APIENTRYP PFNGLBUFFERDATAARBPROC)(GLenum target, GLsizeiptrARB size, const void* data, GLenum usage); -GLAPI PFNGLBUFFERDATAARBPROC glad_glBufferDataARB; -#define glBufferDataARB glad_glBufferDataARB -typedef void (APIENTRYP PFNGLBUFFERSUBDATAARBPROC)(GLenum target, GLintptrARB offset, GLsizeiptrARB size, const void* data); -GLAPI PFNGLBUFFERSUBDATAARBPROC glad_glBufferSubDataARB; -#define glBufferSubDataARB glad_glBufferSubDataARB -typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAARBPROC)(GLenum target, GLintptrARB offset, GLsizeiptrARB size, void* data); -GLAPI PFNGLGETBUFFERSUBDATAARBPROC glad_glGetBufferSubDataARB; -#define glGetBufferSubDataARB glad_glGetBufferSubDataARB -typedef void* (APIENTRYP PFNGLMAPBUFFERARBPROC)(GLenum target, GLenum access); -GLAPI PFNGLMAPBUFFERARBPROC glad_glMapBufferARB; -#define glMapBufferARB glad_glMapBufferARB -typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERARBPROC)(GLenum target); -GLAPI PFNGLUNMAPBUFFERARBPROC glad_glUnmapBufferARB; -#define glUnmapBufferARB glad_glUnmapBufferARB -typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVARBPROC)(GLenum target, GLenum pname, GLint* params); -GLAPI PFNGLGETBUFFERPARAMETERIVARBPROC glad_glGetBufferParameterivARB; -#define glGetBufferParameterivARB glad_glGetBufferParameterivARB -typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVARBPROC)(GLenum target, GLenum pname, void** params); -GLAPI PFNGLGETBUFFERPOINTERVARBPROC glad_glGetBufferPointervARB; -#define glGetBufferPointervARB glad_glGetBufferPointervARB -#endif -#ifndef GL_ARB_vertex_program -#define GL_ARB_vertex_program 1 -GLAPI int GLAD_GL_ARB_vertex_program; -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DARBPROC)(GLuint index, GLdouble x); -GLAPI PFNGLVERTEXATTRIB1DARBPROC glad_glVertexAttrib1dARB; -#define glVertexAttrib1dARB glad_glVertexAttrib1dARB -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVARBPROC)(GLuint index, const GLdouble* v); -GLAPI PFNGLVERTEXATTRIB1DVARBPROC glad_glVertexAttrib1dvARB; -#define glVertexAttrib1dvARB glad_glVertexAttrib1dvARB -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FARBPROC)(GLuint index, GLfloat x); -GLAPI PFNGLVERTEXATTRIB1FARBPROC glad_glVertexAttrib1fARB; -#define glVertexAttrib1fARB glad_glVertexAttrib1fARB -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVARBPROC)(GLuint index, const GLfloat* v); -GLAPI PFNGLVERTEXATTRIB1FVARBPROC glad_glVertexAttrib1fvARB; -#define glVertexAttrib1fvARB glad_glVertexAttrib1fvARB -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SARBPROC)(GLuint index, GLshort x); -GLAPI PFNGLVERTEXATTRIB1SARBPROC glad_glVertexAttrib1sARB; -#define glVertexAttrib1sARB glad_glVertexAttrib1sARB -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVARBPROC)(GLuint index, const GLshort* v); -GLAPI PFNGLVERTEXATTRIB1SVARBPROC glad_glVertexAttrib1svARB; -#define glVertexAttrib1svARB glad_glVertexAttrib1svARB -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DARBPROC)(GLuint index, GLdouble x, GLdouble y); -GLAPI PFNGLVERTEXATTRIB2DARBPROC glad_glVertexAttrib2dARB; -#define glVertexAttrib2dARB glad_glVertexAttrib2dARB -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVARBPROC)(GLuint index, const GLdouble* v); -GLAPI PFNGLVERTEXATTRIB2DVARBPROC glad_glVertexAttrib2dvARB; -#define glVertexAttrib2dvARB glad_glVertexAttrib2dvARB -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FARBPROC)(GLuint index, GLfloat x, GLfloat y); -GLAPI PFNGLVERTEXATTRIB2FARBPROC glad_glVertexAttrib2fARB; -#define glVertexAttrib2fARB glad_glVertexAttrib2fARB -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVARBPROC)(GLuint index, const GLfloat* v); -GLAPI PFNGLVERTEXATTRIB2FVARBPROC glad_glVertexAttrib2fvARB; -#define glVertexAttrib2fvARB glad_glVertexAttrib2fvARB -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SARBPROC)(GLuint index, GLshort x, GLshort y); -GLAPI PFNGLVERTEXATTRIB2SARBPROC glad_glVertexAttrib2sARB; -#define glVertexAttrib2sARB glad_glVertexAttrib2sARB -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVARBPROC)(GLuint index, const GLshort* v); -GLAPI PFNGLVERTEXATTRIB2SVARBPROC glad_glVertexAttrib2svARB; -#define glVertexAttrib2svARB glad_glVertexAttrib2svARB -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DARBPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z); -GLAPI PFNGLVERTEXATTRIB3DARBPROC glad_glVertexAttrib3dARB; -#define glVertexAttrib3dARB glad_glVertexAttrib3dARB -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVARBPROC)(GLuint index, const GLdouble* v); -GLAPI PFNGLVERTEXATTRIB3DVARBPROC glad_glVertexAttrib3dvARB; -#define glVertexAttrib3dvARB glad_glVertexAttrib3dvARB -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FARBPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z); -GLAPI PFNGLVERTEXATTRIB3FARBPROC glad_glVertexAttrib3fARB; -#define glVertexAttrib3fARB glad_glVertexAttrib3fARB -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVARBPROC)(GLuint index, const GLfloat* v); -GLAPI PFNGLVERTEXATTRIB3FVARBPROC glad_glVertexAttrib3fvARB; -#define glVertexAttrib3fvARB glad_glVertexAttrib3fvARB -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SARBPROC)(GLuint index, GLshort x, GLshort y, GLshort z); -GLAPI PFNGLVERTEXATTRIB3SARBPROC glad_glVertexAttrib3sARB; -#define glVertexAttrib3sARB glad_glVertexAttrib3sARB -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVARBPROC)(GLuint index, const GLshort* v); -GLAPI PFNGLVERTEXATTRIB3SVARBPROC glad_glVertexAttrib3svARB; -#define glVertexAttrib3svARB glad_glVertexAttrib3svARB -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVARBPROC)(GLuint index, const GLbyte* v); -GLAPI PFNGLVERTEXATTRIB4NBVARBPROC glad_glVertexAttrib4NbvARB; -#define glVertexAttrib4NbvARB glad_glVertexAttrib4NbvARB -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVARBPROC)(GLuint index, const GLint* v); -GLAPI PFNGLVERTEXATTRIB4NIVARBPROC glad_glVertexAttrib4NivARB; -#define glVertexAttrib4NivARB glad_glVertexAttrib4NivARB -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVARBPROC)(GLuint index, const GLshort* v); -GLAPI PFNGLVERTEXATTRIB4NSVARBPROC glad_glVertexAttrib4NsvARB; -#define glVertexAttrib4NsvARB glad_glVertexAttrib4NsvARB -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBARBPROC)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -GLAPI PFNGLVERTEXATTRIB4NUBARBPROC glad_glVertexAttrib4NubARB; -#define glVertexAttrib4NubARB glad_glVertexAttrib4NubARB -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVARBPROC)(GLuint index, const GLubyte* v); -GLAPI PFNGLVERTEXATTRIB4NUBVARBPROC glad_glVertexAttrib4NubvARB; -#define glVertexAttrib4NubvARB glad_glVertexAttrib4NubvARB -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVARBPROC)(GLuint index, const GLuint* v); -GLAPI PFNGLVERTEXATTRIB4NUIVARBPROC glad_glVertexAttrib4NuivARB; -#define glVertexAttrib4NuivARB glad_glVertexAttrib4NuivARB -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVARBPROC)(GLuint index, const GLushort* v); -GLAPI PFNGLVERTEXATTRIB4NUSVARBPROC glad_glVertexAttrib4NusvARB; -#define glVertexAttrib4NusvARB glad_glVertexAttrib4NusvARB -typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVARBPROC)(GLuint index, const GLbyte* v); -GLAPI PFNGLVERTEXATTRIB4BVARBPROC glad_glVertexAttrib4bvARB; -#define glVertexAttrib4bvARB glad_glVertexAttrib4bvARB -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DARBPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI PFNGLVERTEXATTRIB4DARBPROC glad_glVertexAttrib4dARB; -#define glVertexAttrib4dARB glad_glVertexAttrib4dARB -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVARBPROC)(GLuint index, const GLdouble* v); -GLAPI PFNGLVERTEXATTRIB4DVARBPROC glad_glVertexAttrib4dvARB; -#define glVertexAttrib4dvARB glad_glVertexAttrib4dvARB -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FARBPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI PFNGLVERTEXATTRIB4FARBPROC glad_glVertexAttrib4fARB; -#define glVertexAttrib4fARB glad_glVertexAttrib4fARB -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVARBPROC)(GLuint index, const GLfloat* v); -GLAPI PFNGLVERTEXATTRIB4FVARBPROC glad_glVertexAttrib4fvARB; -#define glVertexAttrib4fvARB glad_glVertexAttrib4fvARB -typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVARBPROC)(GLuint index, const GLint* v); -GLAPI PFNGLVERTEXATTRIB4IVARBPROC glad_glVertexAttrib4ivARB; -#define glVertexAttrib4ivARB glad_glVertexAttrib4ivARB -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SARBPROC)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -GLAPI PFNGLVERTEXATTRIB4SARBPROC glad_glVertexAttrib4sARB; -#define glVertexAttrib4sARB glad_glVertexAttrib4sARB -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVARBPROC)(GLuint index, const GLshort* v); -GLAPI PFNGLVERTEXATTRIB4SVARBPROC glad_glVertexAttrib4svARB; -#define glVertexAttrib4svARB glad_glVertexAttrib4svARB -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVARBPROC)(GLuint index, const GLubyte* v); -GLAPI PFNGLVERTEXATTRIB4UBVARBPROC glad_glVertexAttrib4ubvARB; -#define glVertexAttrib4ubvARB glad_glVertexAttrib4ubvARB -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVARBPROC)(GLuint index, const GLuint* v); -GLAPI PFNGLVERTEXATTRIB4UIVARBPROC glad_glVertexAttrib4uivARB; -#define glVertexAttrib4uivARB glad_glVertexAttrib4uivARB -typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVARBPROC)(GLuint index, const GLushort* v); -GLAPI PFNGLVERTEXATTRIB4USVARBPROC glad_glVertexAttrib4usvARB; -#define glVertexAttrib4usvARB glad_glVertexAttrib4usvARB -typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERARBPROC)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* pointer); -GLAPI PFNGLVERTEXATTRIBPOINTERARBPROC glad_glVertexAttribPointerARB; -#define glVertexAttribPointerARB glad_glVertexAttribPointerARB -typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYARBPROC)(GLuint index); -GLAPI PFNGLENABLEVERTEXATTRIBARRAYARBPROC glad_glEnableVertexAttribArrayARB; -#define glEnableVertexAttribArrayARB glad_glEnableVertexAttribArrayARB -typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYARBPROC)(GLuint index); -GLAPI PFNGLDISABLEVERTEXATTRIBARRAYARBPROC glad_glDisableVertexAttribArrayARB; -#define glDisableVertexAttribArrayARB glad_glDisableVertexAttribArrayARB -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVARBPROC)(GLuint index, GLenum pname, GLdouble* params); -GLAPI PFNGLGETVERTEXATTRIBDVARBPROC glad_glGetVertexAttribdvARB; -#define glGetVertexAttribdvARB glad_glGetVertexAttribdvARB -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVARBPROC)(GLuint index, GLenum pname, GLfloat* params); -GLAPI PFNGLGETVERTEXATTRIBFVARBPROC glad_glGetVertexAttribfvARB; -#define glGetVertexAttribfvARB glad_glGetVertexAttribfvARB -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVARBPROC)(GLuint index, GLenum pname, GLint* params); -GLAPI PFNGLGETVERTEXATTRIBIVARBPROC glad_glGetVertexAttribivARB; -#define glGetVertexAttribivARB glad_glGetVertexAttribivARB -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVARBPROC)(GLuint index, GLenum pname, void** pointer); -GLAPI PFNGLGETVERTEXATTRIBPOINTERVARBPROC glad_glGetVertexAttribPointervARB; -#define glGetVertexAttribPointervARB glad_glGetVertexAttribPointervARB -#endif -#ifndef GL_ARB_vertex_shader -#define GL_ARB_vertex_shader 1 -GLAPI int GLAD_GL_ARB_vertex_shader; -typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONARBPROC)(GLhandleARB programObj, GLuint index, const GLcharARB* name); -GLAPI PFNGLBINDATTRIBLOCATIONARBPROC glad_glBindAttribLocationARB; -#define glBindAttribLocationARB glad_glBindAttribLocationARB -typedef void (APIENTRYP PFNGLGETACTIVEATTRIBARBPROC)(GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei* length, GLint* size, GLenum* type, GLcharARB* name); -GLAPI PFNGLGETACTIVEATTRIBARBPROC glad_glGetActiveAttribARB; -#define glGetActiveAttribARB glad_glGetActiveAttribARB -typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONARBPROC)(GLhandleARB programObj, const GLcharARB* name); -GLAPI PFNGLGETATTRIBLOCATIONARBPROC glad_glGetAttribLocationARB; -#define glGetAttribLocationARB glad_glGetAttribLocationARB -#endif -#ifndef GL_ATI_element_array -#define GL_ATI_element_array 1 -GLAPI int GLAD_GL_ATI_element_array; -typedef void (APIENTRYP PFNGLELEMENTPOINTERATIPROC)(GLenum type, const void* pointer); -GLAPI PFNGLELEMENTPOINTERATIPROC glad_glElementPointerATI; -#define glElementPointerATI glad_glElementPointerATI -typedef void (APIENTRYP PFNGLDRAWELEMENTARRAYATIPROC)(GLenum mode, GLsizei count); -GLAPI PFNGLDRAWELEMENTARRAYATIPROC glad_glDrawElementArrayATI; -#define glDrawElementArrayATI glad_glDrawElementArrayATI -typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTARRAYATIPROC)(GLenum mode, GLuint start, GLuint end, GLsizei count); -GLAPI PFNGLDRAWRANGEELEMENTARRAYATIPROC glad_glDrawRangeElementArrayATI; -#define glDrawRangeElementArrayATI glad_glDrawRangeElementArrayATI -#endif -#ifndef GL_ATI_fragment_shader -#define GL_ATI_fragment_shader 1 -GLAPI int GLAD_GL_ATI_fragment_shader; -typedef GLuint (APIENTRYP PFNGLGENFRAGMENTSHADERSATIPROC)(GLuint range); -GLAPI PFNGLGENFRAGMENTSHADERSATIPROC glad_glGenFragmentShadersATI; -#define glGenFragmentShadersATI glad_glGenFragmentShadersATI -typedef void (APIENTRYP PFNGLBINDFRAGMENTSHADERATIPROC)(GLuint id); -GLAPI PFNGLBINDFRAGMENTSHADERATIPROC glad_glBindFragmentShaderATI; -#define glBindFragmentShaderATI glad_glBindFragmentShaderATI -typedef void (APIENTRYP PFNGLDELETEFRAGMENTSHADERATIPROC)(GLuint id); -GLAPI PFNGLDELETEFRAGMENTSHADERATIPROC glad_glDeleteFragmentShaderATI; -#define glDeleteFragmentShaderATI glad_glDeleteFragmentShaderATI -typedef void (APIENTRYP PFNGLBEGINFRAGMENTSHADERATIPROC)(); -GLAPI PFNGLBEGINFRAGMENTSHADERATIPROC glad_glBeginFragmentShaderATI; -#define glBeginFragmentShaderATI glad_glBeginFragmentShaderATI -typedef void (APIENTRYP PFNGLENDFRAGMENTSHADERATIPROC)(); -GLAPI PFNGLENDFRAGMENTSHADERATIPROC glad_glEndFragmentShaderATI; -#define glEndFragmentShaderATI glad_glEndFragmentShaderATI -typedef void (APIENTRYP PFNGLPASSTEXCOORDATIPROC)(GLuint dst, GLuint coord, GLenum swizzle); -GLAPI PFNGLPASSTEXCOORDATIPROC glad_glPassTexCoordATI; -#define glPassTexCoordATI glad_glPassTexCoordATI -typedef void (APIENTRYP PFNGLSAMPLEMAPATIPROC)(GLuint dst, GLuint interp, GLenum swizzle); -GLAPI PFNGLSAMPLEMAPATIPROC glad_glSampleMapATI; -#define glSampleMapATI glad_glSampleMapATI -typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP1ATIPROC)(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); -GLAPI PFNGLCOLORFRAGMENTOP1ATIPROC glad_glColorFragmentOp1ATI; -#define glColorFragmentOp1ATI glad_glColorFragmentOp1ATI -typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP2ATIPROC)(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); -GLAPI PFNGLCOLORFRAGMENTOP2ATIPROC glad_glColorFragmentOp2ATI; -#define glColorFragmentOp2ATI glad_glColorFragmentOp2ATI -typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP3ATIPROC)(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); -GLAPI PFNGLCOLORFRAGMENTOP3ATIPROC glad_glColorFragmentOp3ATI; -#define glColorFragmentOp3ATI glad_glColorFragmentOp3ATI -typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP1ATIPROC)(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); -GLAPI PFNGLALPHAFRAGMENTOP1ATIPROC glad_glAlphaFragmentOp1ATI; -#define glAlphaFragmentOp1ATI glad_glAlphaFragmentOp1ATI -typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP2ATIPROC)(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); -GLAPI PFNGLALPHAFRAGMENTOP2ATIPROC glad_glAlphaFragmentOp2ATI; -#define glAlphaFragmentOp2ATI glad_glAlphaFragmentOp2ATI -typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP3ATIPROC)(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); -GLAPI PFNGLALPHAFRAGMENTOP3ATIPROC glad_glAlphaFragmentOp3ATI; -#define glAlphaFragmentOp3ATI glad_glAlphaFragmentOp3ATI -typedef void (APIENTRYP PFNGLSETFRAGMENTSHADERCONSTANTATIPROC)(GLuint dst, const GLfloat* value); -GLAPI PFNGLSETFRAGMENTSHADERCONSTANTATIPROC glad_glSetFragmentShaderConstantATI; -#define glSetFragmentShaderConstantATI glad_glSetFragmentShaderConstantATI -#endif -#ifndef GL_ATI_vertex_array_object -#define GL_ATI_vertex_array_object 1 -GLAPI int GLAD_GL_ATI_vertex_array_object; -typedef GLuint (APIENTRYP PFNGLNEWOBJECTBUFFERATIPROC)(GLsizei size, const void* pointer, GLenum usage); -GLAPI PFNGLNEWOBJECTBUFFERATIPROC glad_glNewObjectBufferATI; -#define glNewObjectBufferATI glad_glNewObjectBufferATI -typedef GLboolean (APIENTRYP PFNGLISOBJECTBUFFERATIPROC)(GLuint buffer); -GLAPI PFNGLISOBJECTBUFFERATIPROC glad_glIsObjectBufferATI; -#define glIsObjectBufferATI glad_glIsObjectBufferATI -typedef void (APIENTRYP PFNGLUPDATEOBJECTBUFFERATIPROC)(GLuint buffer, GLuint offset, GLsizei size, const void* pointer, GLenum preserve); -GLAPI PFNGLUPDATEOBJECTBUFFERATIPROC glad_glUpdateObjectBufferATI; -#define glUpdateObjectBufferATI glad_glUpdateObjectBufferATI -typedef void (APIENTRYP PFNGLGETOBJECTBUFFERFVATIPROC)(GLuint buffer, GLenum pname, GLfloat* params); -GLAPI PFNGLGETOBJECTBUFFERFVATIPROC glad_glGetObjectBufferfvATI; -#define glGetObjectBufferfvATI glad_glGetObjectBufferfvATI -typedef void (APIENTRYP PFNGLGETOBJECTBUFFERIVATIPROC)(GLuint buffer, GLenum pname, GLint* params); -GLAPI PFNGLGETOBJECTBUFFERIVATIPROC glad_glGetObjectBufferivATI; -#define glGetObjectBufferivATI glad_glGetObjectBufferivATI -typedef void (APIENTRYP PFNGLFREEOBJECTBUFFERATIPROC)(GLuint buffer); -GLAPI PFNGLFREEOBJECTBUFFERATIPROC glad_glFreeObjectBufferATI; -#define glFreeObjectBufferATI glad_glFreeObjectBufferATI -typedef void (APIENTRYP PFNGLARRAYOBJECTATIPROC)(GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); -GLAPI PFNGLARRAYOBJECTATIPROC glad_glArrayObjectATI; -#define glArrayObjectATI glad_glArrayObjectATI -typedef void (APIENTRYP PFNGLGETARRAYOBJECTFVATIPROC)(GLenum array, GLenum pname, GLfloat* params); -GLAPI PFNGLGETARRAYOBJECTFVATIPROC glad_glGetArrayObjectfvATI; -#define glGetArrayObjectfvATI glad_glGetArrayObjectfvATI -typedef void (APIENTRYP PFNGLGETARRAYOBJECTIVATIPROC)(GLenum array, GLenum pname, GLint* params); -GLAPI PFNGLGETARRAYOBJECTIVATIPROC glad_glGetArrayObjectivATI; -#define glGetArrayObjectivATI glad_glGetArrayObjectivATI -typedef void (APIENTRYP PFNGLVARIANTARRAYOBJECTATIPROC)(GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); -GLAPI PFNGLVARIANTARRAYOBJECTATIPROC glad_glVariantArrayObjectATI; -#define glVariantArrayObjectATI glad_glVariantArrayObjectATI -typedef void (APIENTRYP PFNGLGETVARIANTARRAYOBJECTFVATIPROC)(GLuint id, GLenum pname, GLfloat* params); -GLAPI PFNGLGETVARIANTARRAYOBJECTFVATIPROC glad_glGetVariantArrayObjectfvATI; -#define glGetVariantArrayObjectfvATI glad_glGetVariantArrayObjectfvATI -typedef void (APIENTRYP PFNGLGETVARIANTARRAYOBJECTIVATIPROC)(GLuint id, GLenum pname, GLint* params); -GLAPI PFNGLGETVARIANTARRAYOBJECTIVATIPROC glad_glGetVariantArrayObjectivATI; -#define glGetVariantArrayObjectivATI glad_glGetVariantArrayObjectivATI -#endif -#ifndef GL_EXT_blend_color -#define GL_EXT_blend_color 1 -GLAPI int GLAD_GL_EXT_blend_color; -typedef void (APIENTRYP PFNGLBLENDCOLOREXTPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -GLAPI PFNGLBLENDCOLOREXTPROC glad_glBlendColorEXT; -#define glBlendColorEXT glad_glBlendColorEXT -#endif -#ifndef GL_EXT_blend_equation_separate -#define GL_EXT_blend_equation_separate 1 -GLAPI int GLAD_GL_EXT_blend_equation_separate; -typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEEXTPROC)(GLenum modeRGB, GLenum modeAlpha); -GLAPI PFNGLBLENDEQUATIONSEPARATEEXTPROC glad_glBlendEquationSeparateEXT; -#define glBlendEquationSeparateEXT glad_glBlendEquationSeparateEXT -#endif -#ifndef GL_EXT_blend_func_separate -#define GL_EXT_blend_func_separate 1 -GLAPI int GLAD_GL_EXT_blend_func_separate; -typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEEXTPROC)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -GLAPI PFNGLBLENDFUNCSEPARATEEXTPROC glad_glBlendFuncSeparateEXT; -#define glBlendFuncSeparateEXT glad_glBlendFuncSeparateEXT -#endif -#ifndef GL_EXT_debug_marker -#define GL_EXT_debug_marker 1 -GLAPI int GLAD_GL_EXT_debug_marker; -typedef void (APIENTRYP PFNGLINSERTEVENTMARKEREXTPROC)(GLsizei length, const GLchar *marker); -GLAPI PFNGLINSERTEVENTMARKEREXTPROC glad_glInsertEventMarkerEXT; -#define glInsertEventMarkerEXT glad_glInsertEventMarkerEXT -typedef void (APIENTRYP PFNGLPUSHGROUPMARKEREXTPROC)(GLsizei length, const GLchar *marker); -GLAPI PFNGLPUSHGROUPMARKEREXTPROC glad_glPushGroupMarkerEXT; -#define glPushGroupMarkerEXT glad_glPushGroupMarkerEXT -typedef void (APIENTRYP PFNGLPOPGROUPMARKEREXTPROC)(void); -GLAPI PFNGLPOPGROUPMARKEREXTPROC glad_glPopGroupMarkerEXT; -#define glPopGroupMarkerEXT glad_glPopGroupMarkerEXT -#endif -#ifndef GL_EXT_framebuffer_blit -#define GL_EXT_framebuffer_blit 1 -GLAPI int GLAD_GL_EXT_framebuffer_blit; -typedef void (APIENTRYP PFNGLBLITFRAMEBUFFEREXTPROC)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -GLAPI PFNGLBLITFRAMEBUFFEREXTPROC glad_glBlitFramebufferEXT; -#define glBlitFramebufferEXT glad_glBlitFramebufferEXT -#endif -#ifndef GL_EXT_framebuffer_multisample -#define GL_EXT_framebuffer_multisample 1 -GLAPI int GLAD_GL_EXT_framebuffer_multisample; -typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC glad_glRenderbufferStorageMultisampleEXT; -#define glRenderbufferStorageMultisampleEXT glad_glRenderbufferStorageMultisampleEXT -#endif -#ifndef GL_EXT_framebuffer_multisample_blit_scaled -#define GL_EXT_framebuffer_multisample_blit_scaled 1 -GLAPI int GLAD_GL_EXT_framebuffer_multisample_blit_scaled; -#endif -#ifndef GL_EXT_framebuffer_object -#define GL_EXT_framebuffer_object 1 -GLAPI int GLAD_GL_EXT_framebuffer_object; -typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFEREXTPROC)(GLuint renderbuffer); -GLAPI PFNGLISRENDERBUFFEREXTPROC glad_glIsRenderbufferEXT; -#define glIsRenderbufferEXT glad_glIsRenderbufferEXT -typedef void (APIENTRYP PFNGLBINDRENDERBUFFEREXTPROC)(GLenum target, GLuint renderbuffer); -GLAPI PFNGLBINDRENDERBUFFEREXTPROC glad_glBindRenderbufferEXT; -#define glBindRenderbufferEXT glad_glBindRenderbufferEXT -typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSEXTPROC)(GLsizei n, const GLuint* renderbuffers); -GLAPI PFNGLDELETERENDERBUFFERSEXTPROC glad_glDeleteRenderbuffersEXT; -#define glDeleteRenderbuffersEXT glad_glDeleteRenderbuffersEXT -typedef void (APIENTRYP PFNGLGENRENDERBUFFERSEXTPROC)(GLsizei n, GLuint* renderbuffers); -GLAPI PFNGLGENRENDERBUFFERSEXTPROC glad_glGenRenderbuffersEXT; -#define glGenRenderbuffersEXT glad_glGenRenderbuffersEXT -typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEEXTPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI PFNGLRENDERBUFFERSTORAGEEXTPROC glad_glRenderbufferStorageEXT; -#define glRenderbufferStorageEXT glad_glRenderbufferStorageEXT -typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC)(GLenum target, GLenum pname, GLint* params); -GLAPI PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC glad_glGetRenderbufferParameterivEXT; -#define glGetRenderbufferParameterivEXT glad_glGetRenderbufferParameterivEXT -typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFEREXTPROC)(GLuint framebuffer); -GLAPI PFNGLISFRAMEBUFFEREXTPROC glad_glIsFramebufferEXT; -#define glIsFramebufferEXT glad_glIsFramebufferEXT -typedef void (APIENTRYP PFNGLBINDFRAMEBUFFEREXTPROC)(GLenum target, GLuint framebuffer); -GLAPI PFNGLBINDFRAMEBUFFEREXTPROC glad_glBindFramebufferEXT; -#define glBindFramebufferEXT glad_glBindFramebufferEXT -typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSEXTPROC)(GLsizei n, const GLuint* framebuffers); -GLAPI PFNGLDELETEFRAMEBUFFERSEXTPROC glad_glDeleteFramebuffersEXT; -#define glDeleteFramebuffersEXT glad_glDeleteFramebuffersEXT -typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSEXTPROC)(GLsizei n, GLuint* framebuffers); -GLAPI PFNGLGENFRAMEBUFFERSEXTPROC glad_glGenFramebuffersEXT; -#define glGenFramebuffersEXT glad_glGenFramebuffersEXT -typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC)(GLenum target); -GLAPI PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC glad_glCheckFramebufferStatusEXT; -#define glCheckFramebufferStatusEXT glad_glCheckFramebufferStatusEXT -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DEXTPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GLAPI PFNGLFRAMEBUFFERTEXTURE1DEXTPROC glad_glFramebufferTexture1DEXT; -#define glFramebufferTexture1DEXT glad_glFramebufferTexture1DEXT -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DEXTPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GLAPI PFNGLFRAMEBUFFERTEXTURE2DEXTPROC glad_glFramebufferTexture2DEXT; -#define glFramebufferTexture2DEXT glad_glFramebufferTexture2DEXT -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DEXTPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -GLAPI PFNGLFRAMEBUFFERTEXTURE3DEXTPROC glad_glFramebufferTexture3DEXT; -#define glFramebufferTexture3DEXT glad_glFramebufferTexture3DEXT -typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -GLAPI PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC glad_glFramebufferRenderbufferEXT; -#define glFramebufferRenderbufferEXT glad_glFramebufferRenderbufferEXT -typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC)(GLenum target, GLenum attachment, GLenum pname, GLint* params); -GLAPI PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC glad_glGetFramebufferAttachmentParameterivEXT; -#define glGetFramebufferAttachmentParameterivEXT glad_glGetFramebufferAttachmentParameterivEXT -typedef void (APIENTRYP PFNGLGENERATEMIPMAPEXTPROC)(GLenum target); -GLAPI PFNGLGENERATEMIPMAPEXTPROC glad_glGenerateMipmapEXT; -#define glGenerateMipmapEXT glad_glGenerateMipmapEXT -#endif -#ifndef GL_EXT_framebuffer_sRGB -#define GL_EXT_framebuffer_sRGB 1 -GLAPI int GLAD_GL_EXT_framebuffer_sRGB; -#endif -#ifndef GL_EXT_index_array_formats -#define GL_EXT_index_array_formats 1 -GLAPI int GLAD_GL_EXT_index_array_formats; -#endif -#ifndef GL_EXT_texture -#define GL_EXT_texture 1 -GLAPI int GLAD_GL_EXT_texture; -#endif -#ifndef GL_EXT_texture_compression_s3tc +GLAD_API_CALL int GLAD_GL_ARB_texture_compression; #define GL_EXT_texture_compression_s3tc 1 -GLAPI int GLAD_GL_EXT_texture_compression_s3tc; -#endif -#ifndef GL_EXT_texture_sRGB -#define GL_EXT_texture_sRGB 1 -GLAPI int GLAD_GL_EXT_texture_sRGB; -#endif -#ifndef GL_EXT_texture_swizzle -#define GL_EXT_texture_swizzle 1 -GLAPI int GLAD_GL_EXT_texture_swizzle; -#endif -#ifndef GL_EXT_vertex_array -#define GL_EXT_vertex_array 1 -GLAPI int GLAD_GL_EXT_vertex_array; -typedef void (APIENTRYP PFNGLARRAYELEMENTEXTPROC)(GLint i); -GLAPI PFNGLARRAYELEMENTEXTPROC glad_glArrayElementEXT; -#define glArrayElementEXT glad_glArrayElementEXT -typedef void (APIENTRYP PFNGLCOLORPOINTEREXTPROC)(GLint size, GLenum type, GLsizei stride, GLsizei count, const void* pointer); -GLAPI PFNGLCOLORPOINTEREXTPROC glad_glColorPointerEXT; -#define glColorPointerEXT glad_glColorPointerEXT -typedef void (APIENTRYP PFNGLDRAWARRAYSEXTPROC)(GLenum mode, GLint first, GLsizei count); -GLAPI PFNGLDRAWARRAYSEXTPROC glad_glDrawArraysEXT; -#define glDrawArraysEXT glad_glDrawArraysEXT -typedef void (APIENTRYP PFNGLEDGEFLAGPOINTEREXTPROC)(GLsizei stride, GLsizei count, const GLboolean* pointer); -GLAPI PFNGLEDGEFLAGPOINTEREXTPROC glad_glEdgeFlagPointerEXT; -#define glEdgeFlagPointerEXT glad_glEdgeFlagPointerEXT -typedef void (APIENTRYP PFNGLGETPOINTERVEXTPROC)(GLenum pname, void** params); -GLAPI PFNGLGETPOINTERVEXTPROC glad_glGetPointervEXT; -#define glGetPointervEXT glad_glGetPointervEXT -typedef void (APIENTRYP PFNGLINDEXPOINTEREXTPROC)(GLenum type, GLsizei stride, GLsizei count, const void* pointer); -GLAPI PFNGLINDEXPOINTEREXTPROC glad_glIndexPointerEXT; -#define glIndexPointerEXT glad_glIndexPointerEXT -typedef void (APIENTRYP PFNGLNORMALPOINTEREXTPROC)(GLenum type, GLsizei stride, GLsizei count, const void* pointer); -GLAPI PFNGLNORMALPOINTEREXTPROC glad_glNormalPointerEXT; -#define glNormalPointerEXT glad_glNormalPointerEXT -typedef void (APIENTRYP PFNGLTEXCOORDPOINTEREXTPROC)(GLint size, GLenum type, GLsizei stride, GLsizei count, const void* pointer); -GLAPI PFNGLTEXCOORDPOINTEREXTPROC glad_glTexCoordPointerEXT; -#define glTexCoordPointerEXT glad_glTexCoordPointerEXT -typedef void (APIENTRYP PFNGLVERTEXPOINTEREXTPROC)(GLint size, GLenum type, GLsizei stride, GLsizei count, const void* pointer); -GLAPI PFNGLVERTEXPOINTEREXTPROC glad_glVertexPointerEXT; -#define glVertexPointerEXT glad_glVertexPointerEXT -#endif -#ifndef GL_EXT_vertex_shader -#define GL_EXT_vertex_shader 1 -GLAPI int GLAD_GL_EXT_vertex_shader; -typedef void (APIENTRYP PFNGLBEGINVERTEXSHADEREXTPROC)(); -GLAPI PFNGLBEGINVERTEXSHADEREXTPROC glad_glBeginVertexShaderEXT; -#define glBeginVertexShaderEXT glad_glBeginVertexShaderEXT -typedef void (APIENTRYP PFNGLENDVERTEXSHADEREXTPROC)(); -GLAPI PFNGLENDVERTEXSHADEREXTPROC glad_glEndVertexShaderEXT; -#define glEndVertexShaderEXT glad_glEndVertexShaderEXT -typedef void (APIENTRYP PFNGLBINDVERTEXSHADEREXTPROC)(GLuint id); -GLAPI PFNGLBINDVERTEXSHADEREXTPROC glad_glBindVertexShaderEXT; -#define glBindVertexShaderEXT glad_glBindVertexShaderEXT -typedef GLuint (APIENTRYP PFNGLGENVERTEXSHADERSEXTPROC)(GLuint range); -GLAPI PFNGLGENVERTEXSHADERSEXTPROC glad_glGenVertexShadersEXT; -#define glGenVertexShadersEXT glad_glGenVertexShadersEXT -typedef void (APIENTRYP PFNGLDELETEVERTEXSHADEREXTPROC)(GLuint id); -GLAPI PFNGLDELETEVERTEXSHADEREXTPROC glad_glDeleteVertexShaderEXT; -#define glDeleteVertexShaderEXT glad_glDeleteVertexShaderEXT -typedef void (APIENTRYP PFNGLSHADEROP1EXTPROC)(GLenum op, GLuint res, GLuint arg1); -GLAPI PFNGLSHADEROP1EXTPROC glad_glShaderOp1EXT; -#define glShaderOp1EXT glad_glShaderOp1EXT -typedef void (APIENTRYP PFNGLSHADEROP2EXTPROC)(GLenum op, GLuint res, GLuint arg1, GLuint arg2); -GLAPI PFNGLSHADEROP2EXTPROC glad_glShaderOp2EXT; -#define glShaderOp2EXT glad_glShaderOp2EXT -typedef void (APIENTRYP PFNGLSHADEROP3EXTPROC)(GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3); -GLAPI PFNGLSHADEROP3EXTPROC glad_glShaderOp3EXT; -#define glShaderOp3EXT glad_glShaderOp3EXT -typedef void (APIENTRYP PFNGLSWIZZLEEXTPROC)(GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); -GLAPI PFNGLSWIZZLEEXTPROC glad_glSwizzleEXT; -#define glSwizzleEXT glad_glSwizzleEXT -typedef void (APIENTRYP PFNGLWRITEMASKEXTPROC)(GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); -GLAPI PFNGLWRITEMASKEXTPROC glad_glWriteMaskEXT; -#define glWriteMaskEXT glad_glWriteMaskEXT -typedef void (APIENTRYP PFNGLINSERTCOMPONENTEXTPROC)(GLuint res, GLuint src, GLuint num); -GLAPI PFNGLINSERTCOMPONENTEXTPROC glad_glInsertComponentEXT; -#define glInsertComponentEXT glad_glInsertComponentEXT -typedef void (APIENTRYP PFNGLEXTRACTCOMPONENTEXTPROC)(GLuint res, GLuint src, GLuint num); -GLAPI PFNGLEXTRACTCOMPONENTEXTPROC glad_glExtractComponentEXT; -#define glExtractComponentEXT glad_glExtractComponentEXT -typedef GLuint (APIENTRYP PFNGLGENSYMBOLSEXTPROC)(GLenum datatype, GLenum storagetype, GLenum range, GLuint components); -GLAPI PFNGLGENSYMBOLSEXTPROC glad_glGenSymbolsEXT; -#define glGenSymbolsEXT glad_glGenSymbolsEXT -typedef void (APIENTRYP PFNGLSETINVARIANTEXTPROC)(GLuint id, GLenum type, const void* addr); -GLAPI PFNGLSETINVARIANTEXTPROC glad_glSetInvariantEXT; -#define glSetInvariantEXT glad_glSetInvariantEXT -typedef void (APIENTRYP PFNGLSETLOCALCONSTANTEXTPROC)(GLuint id, GLenum type, const void* addr); -GLAPI PFNGLSETLOCALCONSTANTEXTPROC glad_glSetLocalConstantEXT; -#define glSetLocalConstantEXT glad_glSetLocalConstantEXT -typedef void (APIENTRYP PFNGLVARIANTBVEXTPROC)(GLuint id, const GLbyte* addr); -GLAPI PFNGLVARIANTBVEXTPROC glad_glVariantbvEXT; -#define glVariantbvEXT glad_glVariantbvEXT -typedef void (APIENTRYP PFNGLVARIANTSVEXTPROC)(GLuint id, const GLshort* addr); -GLAPI PFNGLVARIANTSVEXTPROC glad_glVariantsvEXT; -#define glVariantsvEXT glad_glVariantsvEXT -typedef void (APIENTRYP PFNGLVARIANTIVEXTPROC)(GLuint id, const GLint* addr); -GLAPI PFNGLVARIANTIVEXTPROC glad_glVariantivEXT; -#define glVariantivEXT glad_glVariantivEXT -typedef void (APIENTRYP PFNGLVARIANTFVEXTPROC)(GLuint id, const GLfloat* addr); -GLAPI PFNGLVARIANTFVEXTPROC glad_glVariantfvEXT; -#define glVariantfvEXT glad_glVariantfvEXT -typedef void (APIENTRYP PFNGLVARIANTDVEXTPROC)(GLuint id, const GLdouble* addr); -GLAPI PFNGLVARIANTDVEXTPROC glad_glVariantdvEXT; -#define glVariantdvEXT glad_glVariantdvEXT -typedef void (APIENTRYP PFNGLVARIANTUBVEXTPROC)(GLuint id, const GLubyte* addr); -GLAPI PFNGLVARIANTUBVEXTPROC glad_glVariantubvEXT; -#define glVariantubvEXT glad_glVariantubvEXT -typedef void (APIENTRYP PFNGLVARIANTUSVEXTPROC)(GLuint id, const GLushort* addr); -GLAPI PFNGLVARIANTUSVEXTPROC glad_glVariantusvEXT; -#define glVariantusvEXT glad_glVariantusvEXT -typedef void (APIENTRYP PFNGLVARIANTUIVEXTPROC)(GLuint id, const GLuint* addr); -GLAPI PFNGLVARIANTUIVEXTPROC glad_glVariantuivEXT; -#define glVariantuivEXT glad_glVariantuivEXT -typedef void (APIENTRYP PFNGLVARIANTPOINTEREXTPROC)(GLuint id, GLenum type, GLuint stride, const void* addr); -GLAPI PFNGLVARIANTPOINTEREXTPROC glad_glVariantPointerEXT; -#define glVariantPointerEXT glad_glVariantPointerEXT -typedef void (APIENTRYP PFNGLENABLEVARIANTCLIENTSTATEEXTPROC)(GLuint id); -GLAPI PFNGLENABLEVARIANTCLIENTSTATEEXTPROC glad_glEnableVariantClientStateEXT; -#define glEnableVariantClientStateEXT glad_glEnableVariantClientStateEXT -typedef void (APIENTRYP PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC)(GLuint id); -GLAPI PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC glad_glDisableVariantClientStateEXT; -#define glDisableVariantClientStateEXT glad_glDisableVariantClientStateEXT -typedef GLuint (APIENTRYP PFNGLBINDLIGHTPARAMETEREXTPROC)(GLenum light, GLenum value); -GLAPI PFNGLBINDLIGHTPARAMETEREXTPROC glad_glBindLightParameterEXT; -#define glBindLightParameterEXT glad_glBindLightParameterEXT -typedef GLuint (APIENTRYP PFNGLBINDMATERIALPARAMETEREXTPROC)(GLenum face, GLenum value); -GLAPI PFNGLBINDMATERIALPARAMETEREXTPROC glad_glBindMaterialParameterEXT; -#define glBindMaterialParameterEXT glad_glBindMaterialParameterEXT -typedef GLuint (APIENTRYP PFNGLBINDTEXGENPARAMETEREXTPROC)(GLenum unit, GLenum coord, GLenum value); -GLAPI PFNGLBINDTEXGENPARAMETEREXTPROC glad_glBindTexGenParameterEXT; -#define glBindTexGenParameterEXT glad_glBindTexGenParameterEXT -typedef GLuint (APIENTRYP PFNGLBINDTEXTUREUNITPARAMETEREXTPROC)(GLenum unit, GLenum value); -GLAPI PFNGLBINDTEXTUREUNITPARAMETEREXTPROC glad_glBindTextureUnitParameterEXT; -#define glBindTextureUnitParameterEXT glad_glBindTextureUnitParameterEXT -typedef GLuint (APIENTRYP PFNGLBINDPARAMETEREXTPROC)(GLenum value); -GLAPI PFNGLBINDPARAMETEREXTPROC glad_glBindParameterEXT; -#define glBindParameterEXT glad_glBindParameterEXT -typedef GLboolean (APIENTRYP PFNGLISVARIANTENABLEDEXTPROC)(GLuint id, GLenum cap); -GLAPI PFNGLISVARIANTENABLEDEXTPROC glad_glIsVariantEnabledEXT; -#define glIsVariantEnabledEXT glad_glIsVariantEnabledEXT -typedef void (APIENTRYP PFNGLGETVARIANTBOOLEANVEXTPROC)(GLuint id, GLenum value, GLboolean* data); -GLAPI PFNGLGETVARIANTBOOLEANVEXTPROC glad_glGetVariantBooleanvEXT; -#define glGetVariantBooleanvEXT glad_glGetVariantBooleanvEXT -typedef void (APIENTRYP PFNGLGETVARIANTINTEGERVEXTPROC)(GLuint id, GLenum value, GLint* data); -GLAPI PFNGLGETVARIANTINTEGERVEXTPROC glad_glGetVariantIntegervEXT; -#define glGetVariantIntegervEXT glad_glGetVariantIntegervEXT -typedef void (APIENTRYP PFNGLGETVARIANTFLOATVEXTPROC)(GLuint id, GLenum value, GLfloat* data); -GLAPI PFNGLGETVARIANTFLOATVEXTPROC glad_glGetVariantFloatvEXT; -#define glGetVariantFloatvEXT glad_glGetVariantFloatvEXT -typedef void (APIENTRYP PFNGLGETVARIANTPOINTERVEXTPROC)(GLuint id, GLenum value, void** data); -GLAPI PFNGLGETVARIANTPOINTERVEXTPROC glad_glGetVariantPointervEXT; -#define glGetVariantPointervEXT glad_glGetVariantPointervEXT -typedef void (APIENTRYP PFNGLGETINVARIANTBOOLEANVEXTPROC)(GLuint id, GLenum value, GLboolean* data); -GLAPI PFNGLGETINVARIANTBOOLEANVEXTPROC glad_glGetInvariantBooleanvEXT; -#define glGetInvariantBooleanvEXT glad_glGetInvariantBooleanvEXT -typedef void (APIENTRYP PFNGLGETINVARIANTINTEGERVEXTPROC)(GLuint id, GLenum value, GLint* data); -GLAPI PFNGLGETINVARIANTINTEGERVEXTPROC glad_glGetInvariantIntegervEXT; -#define glGetInvariantIntegervEXT glad_glGetInvariantIntegervEXT -typedef void (APIENTRYP PFNGLGETINVARIANTFLOATVEXTPROC)(GLuint id, GLenum value, GLfloat* data); -GLAPI PFNGLGETINVARIANTFLOATVEXTPROC glad_glGetInvariantFloatvEXT; -#define glGetInvariantFloatvEXT glad_glGetInvariantFloatvEXT -typedef void (APIENTRYP PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC)(GLuint id, GLenum value, GLboolean* data); -GLAPI PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC glad_glGetLocalConstantBooleanvEXT; -#define glGetLocalConstantBooleanvEXT glad_glGetLocalConstantBooleanvEXT -typedef void (APIENTRYP PFNGLGETLOCALCONSTANTINTEGERVEXTPROC)(GLuint id, GLenum value, GLint* data); -GLAPI PFNGLGETLOCALCONSTANTINTEGERVEXTPROC glad_glGetLocalConstantIntegervEXT; -#define glGetLocalConstantIntegervEXT glad_glGetLocalConstantIntegervEXT -typedef void (APIENTRYP PFNGLGETLOCALCONSTANTFLOATVEXTPROC)(GLuint id, GLenum value, GLfloat* data); -GLAPI PFNGLGETLOCALCONSTANTFLOATVEXTPROC glad_glGetLocalConstantFloatvEXT; -#define glGetLocalConstantFloatvEXT glad_glGetLocalConstantFloatvEXT +GLAD_API_CALL int GLAD_GL_EXT_texture_compression_s3tc; +#define GL_ARB_texture_cube_map 1 +GLAD_API_CALL int GLAD_GL_ARB_texture_cube_map; +#define GL_ARB_texture_cube_map_array 1 +GLAD_API_CALL int GLAD_GL_ARB_texture_cube_map_array; +#define GL_ARB_texture_env_add 1 +GLAD_API_CALL int GLAD_GL_ARB_texture_env_add; +#define GL_ARB_texture_filter_anisotropic 1 +GLAD_API_CALL int GLAD_GL_ARB_texture_filter_anisotropic; +#define GL_ARB_texture_filter_minmax 1 +GLAD_API_CALL int GLAD_GL_ARB_texture_filter_minmax; +#define GL_ARB_texture_float 1 +GLAD_API_CALL int GLAD_GL_ARB_texture_float; +#define GL_ARB_texture_mirror_clamp_to_edge 1 +GLAD_API_CALL int GLAD_GL_ARB_texture_mirror_clamp_to_edge; +#define GL_ARB_texture_mirrored_repeat 1 +GLAD_API_CALL int GLAD_GL_ARB_texture_mirrored_repeat; +#define GL_ARB_texture_multisample 1 +GLAD_API_CALL int GLAD_GL_ARB_texture_multisample; +#define GL_ARB_texture_non_power_of_two 1 +GLAD_API_CALL int GLAD_GL_ARB_texture_non_power_of_two; +#define GL_ARB_texture_rg 1 +GLAD_API_CALL int GLAD_GL_ARB_texture_rg; +#define GL_ARB_texture_storage 1 +GLAD_API_CALL int GLAD_GL_ARB_texture_storage; +#define GL_ARB_texture_swizzle 1 +GLAD_API_CALL int GLAD_GL_ARB_texture_swizzle; +#define GL_ARB_texture_view 1 +GLAD_API_CALL int GLAD_GL_ARB_texture_view; +#define GL_ARB_timer_query 1 +GLAD_API_CALL int GLAD_GL_ARB_timer_query; +#define GL_ARB_transpose_matrix 1 +GLAD_API_CALL int GLAD_GL_ARB_transpose_matrix; +#define GL_ARB_uniform_buffer_object 1 +GLAD_API_CALL int GLAD_GL_ARB_uniform_buffer_object; +#define GL_ARB_vertex_array_bgra 1 +GLAD_API_CALL int GLAD_GL_ARB_vertex_array_bgra; +#define GL_ARB_vertex_array_object 1 +GLAD_API_CALL int GLAD_GL_ARB_vertex_array_object; +#define GL_ARB_vertex_attrib_binding 1 +GLAD_API_CALL int GLAD_GL_ARB_vertex_attrib_binding; +#define GL_ARB_vertex_buffer_object 1 +GLAD_API_CALL int GLAD_GL_ARB_vertex_buffer_object; +#define GL_ARB_vertex_program 1 +GLAD_API_CALL int GLAD_GL_ARB_vertex_program; +#define GL_ARB_vertex_shader 1 +GLAD_API_CALL int GLAD_GL_ARB_vertex_shader; +#define GL_EXT_fog_coord 1 +GLAD_API_CALL int GLAD_GL_EXT_fog_coord; +#define GL_EXT_framebuffer_blit 1 +GLAD_API_CALL int GLAD_GL_EXT_framebuffer_blit; +#define GL_EXT_framebuffer_multisample 1 +GLAD_API_CALL int GLAD_GL_EXT_framebuffer_multisample; +#define GL_EXT_framebuffer_object 1 +GLAD_API_CALL int GLAD_GL_EXT_framebuffer_object; +#define GL_EXT_framebuffer_sRGB 1 +GLAD_API_CALL int GLAD_GL_EXT_framebuffer_sRGB; +#define GL_OES_compressed_paletted_texture 1 +GLAD_API_CALL int GLAD_GL_OES_compressed_paletted_texture; +#define GL_OES_fixed_point 1 +GLAD_API_CALL int GLAD_GL_OES_fixed_point; + + +typedef void (GLAD_API_PTR *PFNGLACCUMXOESPROC)(GLenum op, GLfixed value); +typedef void (GLAD_API_PTR *PFNGLACTIVESHADERPROGRAMPROC)(GLuint pipeline, GLuint program); +typedef void (GLAD_API_PTR *PFNGLACTIVETEXTUREPROC)(GLenum texture); +typedef void (GLAD_API_PTR *PFNGLACTIVETEXTUREARBPROC)(GLenum texture); +typedef void (GLAD_API_PTR *PFNGLALPHAFUNCXOESPROC)(GLenum func, GLfixed ref); +typedef void (GLAD_API_PTR *PFNGLATTACHOBJECTARBPROC)(GLhandleARB containerObj, GLhandleARB obj); +typedef void (GLAD_API_PTR *PFNGLATTACHSHADERPROC)(GLuint program, GLuint shader); +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 *PFNGLBEGINQUERYARBPROC)(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 *PFNGLBINDATTRIBLOCATIONARBPROC)(GLhandleARB programObj, GLuint index, const GLcharARB * name); +typedef void (GLAD_API_PTR *PFNGLBINDBUFFERPROC)(GLenum target, GLuint buffer); +typedef void (GLAD_API_PTR *PFNGLBINDBUFFERARBPROC)(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 *PFNGLBINDFRAMEBUFFEREXTPROC)(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 *PFNGLBINDPROGRAMARBPROC)(GLenum target, GLuint program); +typedef void (GLAD_API_PTR *PFNGLBINDPROGRAMPIPELINEPROC)(GLuint pipeline); +typedef void (GLAD_API_PTR *PFNGLBINDRENDERBUFFERPROC)(GLenum target, GLuint renderbuffer); +typedef void (GLAD_API_PTR *PFNGLBINDRENDERBUFFEREXTPROC)(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 *PFNGLBITMAPXOESPROC)(GLsizei width, GLsizei height, GLfixed xorig, GLfixed yorig, GLfixed xmove, GLfixed ymove, const GLubyte * bitmap); +typedef void (GLAD_API_PTR *PFNGLBLENDCOLORPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +typedef void (GLAD_API_PTR *PFNGLBLENDCOLORXOESPROC)(GLfixed red, GLfixed green, GLfixed blue, GLfixed 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 *PFNGLBLENDEQUATIONSEPARATEIARBPROC)(GLuint buf, GLenum modeRGB, GLenum modeAlpha); +typedef void (GLAD_API_PTR *PFNGLBLENDEQUATIONIPROC)(GLuint buf, GLenum mode); +typedef void (GLAD_API_PTR *PFNGLBLENDEQUATIONIARBPROC)(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 *PFNGLBLENDFUNCSEPARATEIARBPROC)(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 *PFNGLBLENDFUNCIARBPROC)(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 *PFNGLBLITFRAMEBUFFEREXTPROC)(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 *PFNGLBUFFERDATAARBPROC)(GLenum target, GLsizeiptrARB 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 *PFNGLBUFFERSUBDATAARBPROC)(GLenum target, GLintptrARB offset, GLsizeiptrARB size, const void * data); +typedef GLenum (GLAD_API_PTR *PFNGLCHECKFRAMEBUFFERSTATUSPROC)(GLenum target); +typedef GLenum (GLAD_API_PTR *PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC)(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 *PFNGLCLAMPCOLORARBPROC)(GLenum target, GLenum clamp); +typedef void (GLAD_API_PTR *PFNGLCLEARPROC)(GLbitfield mask); +typedef void (GLAD_API_PTR *PFNGLCLEARACCUMXOESPROC)(GLfixed red, GLfixed green, GLfixed blue, GLfixed 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 *PFNGLCLEARCOLORXOESPROC)(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); +typedef void (GLAD_API_PTR *PFNGLCLEARDEPTHPROC)(GLdouble depth); +typedef void (GLAD_API_PTR *PFNGLCLEARDEPTHFPROC)(GLfloat d); +typedef void (GLAD_API_PTR *PFNGLCLEARDEPTHXOESPROC)(GLfixed depth); +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 *PFNGLCLIENTACTIVETEXTUREARBPROC)(GLenum texture); +typedef GLenum (GLAD_API_PTR *PFNGLCLIENTWAITSYNCPROC)(GLsync sync, GLbitfield flags, GLuint64 timeout); +typedef void (GLAD_API_PTR *PFNGLCLIPPLANEXOESPROC)(GLenum plane, const GLfixed * equation); +typedef void (GLAD_API_PTR *PFNGLCOLOR3XOESPROC)(GLfixed red, GLfixed green, GLfixed blue); +typedef void (GLAD_API_PTR *PFNGLCOLOR3XVOESPROC)(const GLfixed * components); +typedef void (GLAD_API_PTR *PFNGLCOLOR4XOESPROC)(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); +typedef void (GLAD_API_PTR *PFNGLCOLOR4XVOESPROC)(const GLfixed * components); +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 *PFNGLCOMPILESHADERPROC)(GLuint shader); +typedef void (GLAD_API_PTR *PFNGLCOMPILESHADERARBPROC)(GLhandleARB shaderObj); +typedef void (GLAD_API_PTR *PFNGLCOMPILESHADERINCLUDEARBPROC)(GLuint shader, GLsizei count, const GLchar *const* path, const GLint * length); +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 *PFNGLCOMPRESSEDTEXIMAGE1DARBPROC)(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 *PFNGLCOMPRESSEDTEXIMAGE2DARBPROC)(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 *PFNGLCOMPRESSEDTEXIMAGE3DARBPROC)(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 *PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC)(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 *PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC)(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 *PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC)(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 *PFNGLCONVOLUTIONPARAMETERXOESPROC)(GLenum target, GLenum pname, GLfixed param); +typedef void (GLAD_API_PTR *PFNGLCONVOLUTIONPARAMETERXVOESPROC)(GLenum target, GLenum pname, const GLfixed * params); +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 *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 GLhandleARB (GLAD_API_PTR *PFNGLCREATEPROGRAMOBJECTARBPROC)(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 GLhandleARB (GLAD_API_PTR *PFNGLCREATESHADEROBJECTARBPROC)(GLenum shaderType); +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 *PFNGLDEBUGMESSAGECALLBACKARBPROC)(GLDEBUGPROCARB 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 *PFNGLDEBUGMESSAGECONTROLARBPROC)(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 *PFNGLDEBUGMESSAGEINSERTARBPROC)(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 *PFNGLDELETEBUFFERSARBPROC)(GLsizei n, const GLuint * buffers); +typedef void (GLAD_API_PTR *PFNGLDELETEFRAMEBUFFERSPROC)(GLsizei n, const GLuint * framebuffers); +typedef void (GLAD_API_PTR *PFNGLDELETEFRAMEBUFFERSEXTPROC)(GLsizei n, const GLuint * framebuffers); +typedef void (GLAD_API_PTR *PFNGLDELETENAMEDSTRINGARBPROC)(GLint namelen, const GLchar * name); +typedef void (GLAD_API_PTR *PFNGLDELETEOBJECTARBPROC)(GLhandleARB obj); +typedef void (GLAD_API_PTR *PFNGLDELETEPROGRAMPROC)(GLuint program); +typedef void (GLAD_API_PTR *PFNGLDELETEPROGRAMPIPELINESPROC)(GLsizei n, const GLuint * pipelines); +typedef void (GLAD_API_PTR *PFNGLDELETEPROGRAMSARBPROC)(GLsizei n, const GLuint * programs); +typedef void (GLAD_API_PTR *PFNGLDELETEQUERIESPROC)(GLsizei n, const GLuint * ids); +typedef void (GLAD_API_PTR *PFNGLDELETEQUERIESARBPROC)(GLsizei n, const GLuint * ids); +typedef void (GLAD_API_PTR *PFNGLDELETERENDERBUFFERSPROC)(GLsizei n, const GLuint * renderbuffers); +typedef void (GLAD_API_PTR *PFNGLDELETERENDERBUFFERSEXTPROC)(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 *PFNGLDEPTHRANGEXOESPROC)(GLfixed n, GLfixed f); +typedef void (GLAD_API_PTR *PFNGLDETACHOBJECTARBPROC)(GLhandleARB containerObj, GLhandleARB attachedObj); +typedef void (GLAD_API_PTR *PFNGLDETACHSHADERPROC)(GLuint program, GLuint shader); +typedef void (GLAD_API_PTR *PFNGLDISABLEPROC)(GLenum cap); +typedef void (GLAD_API_PTR *PFNGLDISABLEVERTEXARRAYATTRIBPROC)(GLuint vaobj, GLuint index); +typedef void (GLAD_API_PTR *PFNGLDISABLEVERTEXATTRIBARRAYPROC)(GLuint index); +typedef void (GLAD_API_PTR *PFNGLDISABLEVERTEXATTRIBARRAYARBPROC)(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 *PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC)(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z, GLuint group_size_x, GLuint group_size_y, GLuint group_size_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 *PFNGLDRAWARRAYSINSTANCEDARBPROC)(GLenum mode, GLint first, GLsizei count, GLsizei primcount); +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 *PFNGLDRAWBUFFERSARBPROC)(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 *PFNGLDRAWELEMENTSINSTANCEDARBPROC)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei primcount); +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 *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 *PFNGLENABLEPROC)(GLenum cap); +typedef void (GLAD_API_PTR *PFNGLENABLEVERTEXARRAYATTRIBPROC)(GLuint vaobj, GLuint index); +typedef void (GLAD_API_PTR *PFNGLENABLEVERTEXATTRIBARRAYPROC)(GLuint index); +typedef void (GLAD_API_PTR *PFNGLENABLEVERTEXATTRIBARRAYARBPROC)(GLuint index); +typedef void (GLAD_API_PTR *PFNGLENABLEIPROC)(GLenum target, GLuint index); +typedef void (GLAD_API_PTR *PFNGLENDCONDITIONALRENDERPROC)(void); +typedef void (GLAD_API_PTR *PFNGLENDQUERYPROC)(GLenum target); +typedef void (GLAD_API_PTR *PFNGLENDQUERYARBPROC)(GLenum target); +typedef void (GLAD_API_PTR *PFNGLENDQUERYINDEXEDPROC)(GLenum target, GLuint index); +typedef void (GLAD_API_PTR *PFNGLENDTRANSFORMFEEDBACKPROC)(void); +typedef void (GLAD_API_PTR *PFNGLEVALCOORD1XOESPROC)(GLfixed u); +typedef void (GLAD_API_PTR *PFNGLEVALCOORD1XVOESPROC)(const GLfixed * coords); +typedef void (GLAD_API_PTR *PFNGLEVALCOORD2XOESPROC)(GLfixed u, GLfixed v); +typedef void (GLAD_API_PTR *PFNGLEVALCOORD2XVOESPROC)(const GLfixed * coords); +typedef void (GLAD_API_PTR *PFNGLEVALUATEDEPTHVALUESARBPROC)(void); +typedef void (GLAD_API_PTR *PFNGLFEEDBACKBUFFERXOESPROC)(GLsizei n, GLenum type, const GLfixed * 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 *PFNGLFOGCOORDPOINTEREXTPROC)(GLenum type, GLsizei stride, const void * pointer); +typedef void (GLAD_API_PTR *PFNGLFOGCOORDDEXTPROC)(GLdouble coord); +typedef void (GLAD_API_PTR *PFNGLFOGCOORDDVEXTPROC)(const GLdouble * coord); +typedef void (GLAD_API_PTR *PFNGLFOGCOORDFEXTPROC)(GLfloat coord); +typedef void (GLAD_API_PTR *PFNGLFOGCOORDFVEXTPROC)(const GLfloat * coord); +typedef void (GLAD_API_PTR *PFNGLFOGXOESPROC)(GLenum pname, GLfixed param); +typedef void (GLAD_API_PTR *PFNGLFOGXVOESPROC)(GLenum pname, const GLfixed * param); +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 *PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +typedef void (GLAD_API_PTR *PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC)(GLenum target, GLuint start, GLsizei count, const GLfloat * v); +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 *PFNGLFRAMEBUFFERTEXTURE1DEXTPROC)(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 *PFNGLFRAMEBUFFERTEXTURE2DEXTPROC)(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 *PFNGLFRAMEBUFFERTEXTURE3DEXTPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +typedef void (GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTUREARBPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level); +typedef void (GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTUREFACEARBPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); +typedef void (GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTURELAYERPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +typedef void (GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTURELAYERARBPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +typedef void (GLAD_API_PTR *PFNGLFRONTFACEPROC)(GLenum mode); +typedef void (GLAD_API_PTR *PFNGLFRUSTUMXOESPROC)(GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); +typedef void (GLAD_API_PTR *PFNGLGENBUFFERSPROC)(GLsizei n, GLuint * buffers); +typedef void (GLAD_API_PTR *PFNGLGENBUFFERSARBPROC)(GLsizei n, GLuint * buffers); +typedef void (GLAD_API_PTR *PFNGLGENFRAMEBUFFERSPROC)(GLsizei n, GLuint * framebuffers); +typedef void (GLAD_API_PTR *PFNGLGENFRAMEBUFFERSEXTPROC)(GLsizei n, GLuint * framebuffers); +typedef void (GLAD_API_PTR *PFNGLGENPROGRAMPIPELINESPROC)(GLsizei n, GLuint * pipelines); +typedef void (GLAD_API_PTR *PFNGLGENPROGRAMSARBPROC)(GLsizei n, GLuint * programs); +typedef void (GLAD_API_PTR *PFNGLGENQUERIESPROC)(GLsizei n, GLuint * ids); +typedef void (GLAD_API_PTR *PFNGLGENQUERIESARBPROC)(GLsizei n, GLuint * ids); +typedef void (GLAD_API_PTR *PFNGLGENRENDERBUFFERSPROC)(GLsizei n, GLuint * renderbuffers); +typedef void (GLAD_API_PTR *PFNGLGENRENDERBUFFERSEXTPROC)(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 *PFNGLGENERATEMIPMAPEXTPROC)(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 *PFNGLGETACTIVEATTRIBARBPROC)(GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei * length, GLint * size, GLenum * type, GLcharARB * 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 *PFNGLGETACTIVEUNIFORMARBPROC)(GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei * length, GLint * size, GLenum * type, GLcharARB * 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 *PFNGLGETATTACHEDOBJECTSARBPROC)(GLhandleARB containerObj, GLsizei maxCount, GLsizei * count, GLhandleARB * obj); +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 GLint (GLAD_API_PTR *PFNGLGETATTRIBLOCATIONARBPROC)(GLhandleARB programObj, const GLcharARB * 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 *PFNGLGETBUFFERPARAMETERIVARBPROC)(GLenum target, GLenum pname, GLint * params); +typedef void (GLAD_API_PTR *PFNGLGETBUFFERPOINTERVPROC)(GLenum target, GLenum pname, void ** params); +typedef void (GLAD_API_PTR *PFNGLGETBUFFERPOINTERVARBPROC)(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 *PFNGLGETBUFFERSUBDATAARBPROC)(GLenum target, GLintptrARB offset, GLsizeiptrARB size, void * data); +typedef void (GLAD_API_PTR *PFNGLGETCLIPPLANEXOESPROC)(GLenum plane, GLfixed * equation); +typedef void (GLAD_API_PTR *PFNGLGETCOMPRESSEDTEXIMAGEPROC)(GLenum target, GLint level, void * img); +typedef void (GLAD_API_PTR *PFNGLGETCOMPRESSEDTEXIMAGEARBPROC)(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 void (GLAD_API_PTR *PFNGLGETCONVOLUTIONPARAMETERXVOESPROC)(GLenum target, GLenum pname, GLfixed * params); +typedef GLuint (GLAD_API_PTR *PFNGLGETDEBUGMESSAGELOGPROC)(GLuint count, GLsizei bufSize, GLenum * sources, GLenum * types, GLuint * ids, GLenum * severities, GLsizei * lengths, GLchar * messageLog); +typedef GLuint (GLAD_API_PTR *PFNGLGETDEBUGMESSAGELOGARBPROC)(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 *PFNGLGETFIXEDVOESPROC)(GLenum pname, GLfixed * params); +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 *PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC)(GLenum target, GLenum attachment, GLenum pname, GLint * params); +typedef void (GLAD_API_PTR *PFNGLGETFRAMEBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint * params); +typedef GLhandleARB (GLAD_API_PTR *PFNGLGETHANDLEARBPROC)(GLenum pname); +typedef void (GLAD_API_PTR *PFNGLGETHISTOGRAMPARAMETERXVOESPROC)(GLenum target, GLenum pname, GLfixed * params); +typedef void (GLAD_API_PTR *PFNGLGETINFOLOGARBPROC)(GLhandleARB obj, GLsizei maxLength, GLsizei * length, GLcharARB * infoLog); +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 *PFNGLGETLIGHTXOESPROC)(GLenum light, GLenum pname, GLfixed * params); +typedef void (GLAD_API_PTR *PFNGLGETMAPXVOESPROC)(GLenum target, GLenum query, GLfixed * v); +typedef void (GLAD_API_PTR *PFNGLGETMATERIALXOESPROC)(GLenum face, GLenum pname, GLfixed param); +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 *PFNGLGETNAMEDSTRINGARBPROC)(GLint namelen, const GLchar * name, GLsizei bufSize, GLint * stringlen, GLchar * string); +typedef void (GLAD_API_PTR *PFNGLGETNAMEDSTRINGIVARBPROC)(GLint namelen, const GLchar * name, 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 *PFNGLGETOBJECTPARAMETERFVARBPROC)(GLhandleARB obj, GLenum pname, GLfloat * params); +typedef void (GLAD_API_PTR *PFNGLGETOBJECTPARAMETERIVARBPROC)(GLhandleARB obj, GLenum pname, GLint * params); +typedef void (GLAD_API_PTR *PFNGLGETOBJECTPTRLABELPROC)(const void * ptr, GLsizei bufSize, GLsizei * length, GLchar * label); +typedef void (GLAD_API_PTR *PFNGLGETPIXELMAPXVPROC)(GLenum map, GLint size, GLfixed * values); +typedef void (GLAD_API_PTR *PFNGLGETPOINTERVPROC)(GLenum pname, void ** params); +typedef void (GLAD_API_PTR *PFNGLGETPROGRAMBINARYPROC)(GLuint program, GLsizei bufSize, GLsizei * length, GLenum * binaryFormat, void * binary); +typedef void (GLAD_API_PTR *PFNGLGETPROGRAMENVPARAMETERDVARBPROC)(GLenum target, GLuint index, GLdouble * params); +typedef void (GLAD_API_PTR *PFNGLGETPROGRAMENVPARAMETERFVARBPROC)(GLenum target, GLuint index, GLfloat * params); +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 *PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC)(GLenum target, GLuint index, GLdouble * params); +typedef void (GLAD_API_PTR *PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC)(GLenum target, GLuint index, GLfloat * 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 *PFNGLGETPROGRAMSTRINGARBPROC)(GLenum target, GLenum pname, void * string); +typedef void (GLAD_API_PTR *PFNGLGETPROGRAMIVPROC)(GLuint program, GLenum pname, GLint * params); +typedef void (GLAD_API_PTR *PFNGLGETPROGRAMIVARBPROC)(GLenum target, 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 *PFNGLGETQUERYOBJECTIVARBPROC)(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 *PFNGLGETQUERYOBJECTUIVARBPROC)(GLuint id, GLenum pname, GLuint * params); +typedef void (GLAD_API_PTR *PFNGLGETQUERYIVPROC)(GLenum target, GLenum pname, GLint * params); +typedef void (GLAD_API_PTR *PFNGLGETQUERYIVARBPROC)(GLenum target, GLenum pname, GLint * params); +typedef void (GLAD_API_PTR *PFNGLGETRENDERBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint * params); +typedef void (GLAD_API_PTR *PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC)(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 *PFNGLGETSHADERSOURCEARBPROC)(GLhandleARB obj, GLsizei maxLength, GLsizei * length, GLcharARB * 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 *PFNGLGETTEXENVXVOESPROC)(GLenum target, GLenum pname, GLfixed * params); +typedef void (GLAD_API_PTR *PFNGLGETTEXGENXVOESPROC)(GLenum coord, GLenum pname, GLfixed * 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 *PFNGLGETTEXLEVELPARAMETERXVOESPROC)(GLenum target, GLint level, GLenum pname, GLfixed * 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 *PFNGLGETTEXPARAMETERXVOESPROC)(GLenum target, GLenum pname, GLfixed * 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 GLint (GLAD_API_PTR *PFNGLGETUNIFORMLOCATIONARBPROC)(GLhandleARB programObj, const GLcharARB * 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 *PFNGLGETUNIFORMFVARBPROC)(GLhandleARB programObj, GLint location, GLfloat * params); +typedef void (GLAD_API_PTR *PFNGLGETUNIFORMI64VARBPROC)(GLuint program, GLint location, GLint64 * params); +typedef void (GLAD_API_PTR *PFNGLGETUNIFORMIVPROC)(GLuint program, GLint location, GLint * params); +typedef void (GLAD_API_PTR *PFNGLGETUNIFORMIVARBPROC)(GLhandleARB programObj, GLint location, GLint * params); +typedef void (GLAD_API_PTR *PFNGLGETUNIFORMUI64VARBPROC)(GLuint program, GLint location, GLuint64 * 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 *PFNGLGETVERTEXATTRIBPOINTERVARBPROC)(GLuint index, GLenum pname, void ** pointer); +typedef void (GLAD_API_PTR *PFNGLGETVERTEXATTRIBDVPROC)(GLuint index, GLenum pname, GLdouble * params); +typedef void (GLAD_API_PTR *PFNGLGETVERTEXATTRIBDVARBPROC)(GLuint index, GLenum pname, GLdouble * params); +typedef void (GLAD_API_PTR *PFNGLGETVERTEXATTRIBFVPROC)(GLuint index, GLenum pname, GLfloat * params); +typedef void (GLAD_API_PTR *PFNGLGETVERTEXATTRIBFVARBPROC)(GLuint index, GLenum pname, GLfloat * params); +typedef void (GLAD_API_PTR *PFNGLGETVERTEXATTRIBIVPROC)(GLuint index, GLenum pname, GLint * params); +typedef void (GLAD_API_PTR *PFNGLGETVERTEXATTRIBIVARBPROC)(GLuint index, GLenum pname, GLint * params); +typedef void (GLAD_API_PTR *PFNGLGETNUNIFORMI64VARBPROC)(GLuint program, GLint location, GLsizei bufSize, GLint64 * params); +typedef void (GLAD_API_PTR *PFNGLGETNUNIFORMUI64VARBPROC)(GLuint program, GLint location, GLsizei bufSize, GLuint64 * params); +typedef void (GLAD_API_PTR *PFNGLHINTPROC)(GLenum target, GLenum mode); +typedef void (GLAD_API_PTR *PFNGLINDEXXOESPROC)(GLfixed component); +typedef void (GLAD_API_PTR *PFNGLINDEXXVOESPROC)(const GLfixed * component); +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 *PFNGLISBUFFERARBPROC)(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 *PFNGLISFRAMEBUFFEREXTPROC)(GLuint framebuffer); +typedef GLboolean (GLAD_API_PTR *PFNGLISNAMEDSTRINGARBPROC)(GLint namelen, const GLchar * name); +typedef GLboolean (GLAD_API_PTR *PFNGLISPROGRAMPROC)(GLuint program); +typedef GLboolean (GLAD_API_PTR *PFNGLISPROGRAMARBPROC)(GLuint program); +typedef GLboolean (GLAD_API_PTR *PFNGLISPROGRAMPIPELINEPROC)(GLuint pipeline); +typedef GLboolean (GLAD_API_PTR *PFNGLISQUERYPROC)(GLuint id); +typedef GLboolean (GLAD_API_PTR *PFNGLISQUERYARBPROC)(GLuint id); +typedef GLboolean (GLAD_API_PTR *PFNGLISRENDERBUFFERPROC)(GLuint renderbuffer); +typedef GLboolean (GLAD_API_PTR *PFNGLISRENDERBUFFEREXTPROC)(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 *PFNGLLIGHTMODELXOESPROC)(GLenum pname, GLfixed param); +typedef void (GLAD_API_PTR *PFNGLLIGHTMODELXVOESPROC)(GLenum pname, const GLfixed * param); +typedef void (GLAD_API_PTR *PFNGLLIGHTXOESPROC)(GLenum light, GLenum pname, GLfixed param); +typedef void (GLAD_API_PTR *PFNGLLIGHTXVOESPROC)(GLenum light, GLenum pname, const GLfixed * params); +typedef void (GLAD_API_PTR *PFNGLLINEWIDTHPROC)(GLfloat width); +typedef void (GLAD_API_PTR *PFNGLLINEWIDTHXOESPROC)(GLfixed width); +typedef void (GLAD_API_PTR *PFNGLLINKPROGRAMPROC)(GLuint program); +typedef void (GLAD_API_PTR *PFNGLLINKPROGRAMARBPROC)(GLhandleARB programObj); +typedef void (GLAD_API_PTR *PFNGLLOADMATRIXXOESPROC)(const GLfixed * m); +typedef void (GLAD_API_PTR *PFNGLLOADTRANSPOSEMATRIXDARBPROC)(const GLdouble * m); +typedef void (GLAD_API_PTR *PFNGLLOADTRANSPOSEMATRIXFARBPROC)(const GLfloat * m); +typedef void (GLAD_API_PTR *PFNGLLOADTRANSPOSEMATRIXXOESPROC)(const GLfixed * m); +typedef void (GLAD_API_PTR *PFNGLLOGICOPPROC)(GLenum opcode); +typedef void (GLAD_API_PTR *PFNGLMAP1XOESPROC)(GLenum target, GLfixed u1, GLfixed u2, GLint stride, GLint order, GLfixed points); +typedef void (GLAD_API_PTR *PFNGLMAP2XOESPROC)(GLenum target, GLfixed u1, GLfixed u2, GLint ustride, GLint uorder, GLfixed v1, GLfixed v2, GLint vstride, GLint vorder, GLfixed points); +typedef void * (GLAD_API_PTR *PFNGLMAPBUFFERPROC)(GLenum target, GLenum access); +typedef void * (GLAD_API_PTR *PFNGLMAPBUFFERARBPROC)(GLenum target, GLenum access); +typedef void * (GLAD_API_PTR *PFNGLMAPBUFFERRANGEPROC)(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); +typedef void (GLAD_API_PTR *PFNGLMAPGRID1XOESPROC)(GLint n, GLfixed u1, GLfixed u2); +typedef void (GLAD_API_PTR *PFNGLMAPGRID2XOESPROC)(GLint n, GLfixed u1, GLfixed u2, GLfixed v1, GLfixed 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 *PFNGLMATERIALXOESPROC)(GLenum face, GLenum pname, GLfixed param); +typedef void (GLAD_API_PTR *PFNGLMATERIALXVOESPROC)(GLenum face, GLenum pname, const GLfixed * param); +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 *PFNGLMINSAMPLESHADINGARBPROC)(GLfloat value); +typedef void (GLAD_API_PTR *PFNGLMULTMATRIXXOESPROC)(const GLfixed * m); +typedef void (GLAD_API_PTR *PFNGLMULTTRANSPOSEMATRIXDARBPROC)(const GLdouble * m); +typedef void (GLAD_API_PTR *PFNGLMULTTRANSPOSEMATRIXFARBPROC)(const GLfloat * m); +typedef void (GLAD_API_PTR *PFNGLMULTTRANSPOSEMATRIXXOESPROC)(const GLfixed * 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 *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 *PFNGLMULTITEXCOORD1DARBPROC)(GLenum target, GLdouble s); +typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD1DVARBPROC)(GLenum target, const GLdouble * v); +typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD1FARBPROC)(GLenum target, GLfloat s); +typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD1FVARBPROC)(GLenum target, const GLfloat * v); +typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD1IARBPROC)(GLenum target, GLint s); +typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD1IVARBPROC)(GLenum target, const GLint * v); +typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD1SARBPROC)(GLenum target, GLshort s); +typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD1SVARBPROC)(GLenum target, const GLshort * v); +typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD1XOESPROC)(GLenum texture, GLfixed s); +typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD1XVOESPROC)(GLenum texture, const GLfixed * coords); +typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD2DARBPROC)(GLenum target, GLdouble s, GLdouble t); +typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD2DVARBPROC)(GLenum target, const GLdouble * v); +typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD2FARBPROC)(GLenum target, GLfloat s, GLfloat t); +typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD2FVARBPROC)(GLenum target, const GLfloat * v); +typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD2IARBPROC)(GLenum target, GLint s, GLint t); +typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD2IVARBPROC)(GLenum target, const GLint * v); +typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD2SARBPROC)(GLenum target, GLshort s, GLshort t); +typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD2SVARBPROC)(GLenum target, const GLshort * v); +typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD2XOESPROC)(GLenum texture, GLfixed s, GLfixed t); +typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD2XVOESPROC)(GLenum texture, const GLfixed * coords); +typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD3DARBPROC)(GLenum target, GLdouble s, GLdouble t, GLdouble r); +typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD3DVARBPROC)(GLenum target, const GLdouble * v); +typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD3FARBPROC)(GLenum target, GLfloat s, GLfloat t, GLfloat r); +typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD3FVARBPROC)(GLenum target, const GLfloat * v); +typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD3IARBPROC)(GLenum target, GLint s, GLint t, GLint r); +typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD3IVARBPROC)(GLenum target, const GLint * v); +typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD3SARBPROC)(GLenum target, GLshort s, GLshort t, GLshort r); +typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD3SVARBPROC)(GLenum target, const GLshort * v); +typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD3XOESPROC)(GLenum texture, GLfixed s, GLfixed t, GLfixed r); +typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD3XVOESPROC)(GLenum texture, const GLfixed * coords); +typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD4DARBPROC)(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD4DVARBPROC)(GLenum target, const GLdouble * v); +typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD4FARBPROC)(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD4FVARBPROC)(GLenum target, const GLfloat * v); +typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD4IARBPROC)(GLenum target, GLint s, GLint t, GLint r, GLint q); +typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD4IVARBPROC)(GLenum target, const GLint * v); +typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD4SARBPROC)(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD4SVARBPROC)(GLenum target, const GLshort * v); +typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD4XOESPROC)(GLenum texture, GLfixed s, GLfixed t, GLfixed r, GLfixed q); +typedef void (GLAD_API_PTR *PFNGLMULTITEXCOORD4XVOESPROC)(GLenum texture, const GLfixed * 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 *PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC)(GLuint framebuffer, GLuint start, GLsizei count, const GLfloat * v); +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 *PFNGLNAMEDSTRINGARBPROC)(GLenum type, GLint namelen, const GLchar * name, GLint stringlen, const GLchar * string); +typedef void (GLAD_API_PTR *PFNGLNORMAL3XOESPROC)(GLfixed nx, GLfixed ny, GLfixed nz); +typedef void (GLAD_API_PTR *PFNGLNORMAL3XVOESPROC)(const GLfixed * coords); +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 *PFNGLORTHOXOESPROC)(GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f); +typedef void (GLAD_API_PTR *PFNGLPASSTHROUGHXOESPROC)(GLfixed 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 *PFNGLPIXELMAPXPROC)(GLenum map, GLint size, const GLfixed * 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 *PFNGLPIXELSTOREXPROC)(GLenum pname, GLfixed param); +typedef void (GLAD_API_PTR *PFNGLPIXELTRANSFERXOESPROC)(GLenum pname, GLfixed param); +typedef void (GLAD_API_PTR *PFNGLPIXELZOOMXOESPROC)(GLfixed xfactor, GLfixed 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 *PFNGLPOINTPARAMETERXVOESPROC)(GLenum pname, const GLfixed * params); +typedef void (GLAD_API_PTR *PFNGLPOINTSIZEPROC)(GLfloat size); +typedef void (GLAD_API_PTR *PFNGLPOINTSIZEXOESPROC)(GLfixed 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 *PFNGLPOLYGONOFFSETXOESPROC)(GLfixed factor, GLfixed units); +typedef void (GLAD_API_PTR *PFNGLPOPDEBUGGROUPPROC)(void); +typedef void (GLAD_API_PTR *PFNGLPRIMITIVEBOUNDINGBOXARBPROC)(GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW); +typedef void (GLAD_API_PTR *PFNGLPRIMITIVERESTARTINDEXPROC)(GLuint index); +typedef void (GLAD_API_PTR *PFNGLPRIORITIZETEXTURESXOESPROC)(GLsizei n, const GLuint * textures, const GLfixed * priorities); +typedef void (GLAD_API_PTR *PFNGLPROGRAMBINARYPROC)(GLuint program, GLenum binaryFormat, const void * binary, GLsizei length); +typedef void (GLAD_API_PTR *PFNGLPROGRAMENVPARAMETER4DARBPROC)(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (GLAD_API_PTR *PFNGLPROGRAMENVPARAMETER4DVARBPROC)(GLenum target, GLuint index, const GLdouble * params); +typedef void (GLAD_API_PTR *PFNGLPROGRAMENVPARAMETER4FARBPROC)(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (GLAD_API_PTR *PFNGLPROGRAMENVPARAMETER4FVARBPROC)(GLenum target, GLuint index, const GLfloat * params); +typedef void (GLAD_API_PTR *PFNGLPROGRAMLOCALPARAMETER4DARBPROC)(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (GLAD_API_PTR *PFNGLPROGRAMLOCALPARAMETER4DVARBPROC)(GLenum target, GLuint index, const GLdouble * params); +typedef void (GLAD_API_PTR *PFNGLPROGRAMLOCALPARAMETER4FARBPROC)(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (GLAD_API_PTR *PFNGLPROGRAMLOCALPARAMETER4FVARBPROC)(GLenum target, GLuint index, const GLfloat * params); +typedef void (GLAD_API_PTR *PFNGLPROGRAMPARAMETERIPROC)(GLuint program, GLenum pname, GLint value); +typedef void (GLAD_API_PTR *PFNGLPROGRAMPARAMETERIARBPROC)(GLuint program, GLenum pname, GLint value); +typedef void (GLAD_API_PTR *PFNGLPROGRAMSTRINGARBPROC)(GLenum target, GLenum format, GLsizei len, const void * string); +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 *PFNGLPROGRAMUNIFORM1I64ARBPROC)(GLuint program, GLint location, GLint64 x); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM1I64VARBPROC)(GLuint program, GLint location, GLsizei count, const GLint64 * value); +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 *PFNGLPROGRAMUNIFORM1UI64ARBPROC)(GLuint program, GLint location, GLuint64 x); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM1UI64VARBPROC)(GLuint program, GLint location, GLsizei count, const GLuint64 * value); +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 *PFNGLPROGRAMUNIFORM2I64ARBPROC)(GLuint program, GLint location, GLint64 x, GLint64 y); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM2I64VARBPROC)(GLuint program, GLint location, GLsizei count, const GLint64 * value); +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 *PFNGLPROGRAMUNIFORM2UI64ARBPROC)(GLuint program, GLint location, GLuint64 x, GLuint64 y); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM2UI64VARBPROC)(GLuint program, GLint location, GLsizei count, const GLuint64 * value); +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 *PFNGLPROGRAMUNIFORM3I64ARBPROC)(GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM3I64VARBPROC)(GLuint program, GLint location, GLsizei count, const GLint64 * value); +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 *PFNGLPROGRAMUNIFORM3UI64ARBPROC)(GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM3UI64VARBPROC)(GLuint program, GLint location, GLsizei count, const GLuint64 * value); +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 *PFNGLPROGRAMUNIFORM4I64ARBPROC)(GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM4I64VARBPROC)(GLuint program, GLint location, GLsizei count, const GLint64 * value); +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 *PFNGLPROGRAMUNIFORM4UI64ARBPROC)(GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w); +typedef void (GLAD_API_PTR *PFNGLPROGRAMUNIFORM4UI64VARBPROC)(GLuint program, GLint location, GLsizei count, const GLuint64 * value); +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 *PFNGLPUSHDEBUGGROUPPROC)(GLenum source, GLuint id, GLsizei length, const GLchar * message); +typedef void (GLAD_API_PTR *PFNGLQUERYCOUNTERPROC)(GLuint id, GLenum target); +typedef void (GLAD_API_PTR *PFNGLRASTERPOS2XOESPROC)(GLfixed x, GLfixed y); +typedef void (GLAD_API_PTR *PFNGLRASTERPOS2XVOESPROC)(const GLfixed * coords); +typedef void (GLAD_API_PTR *PFNGLRASTERPOS3XOESPROC)(GLfixed x, GLfixed y, GLfixed z); +typedef void (GLAD_API_PTR *PFNGLRASTERPOS3XVOESPROC)(const GLfixed * coords); +typedef void (GLAD_API_PTR *PFNGLRASTERPOS4XOESPROC)(GLfixed x, GLfixed y, GLfixed z, GLfixed w); +typedef void (GLAD_API_PTR *PFNGLRASTERPOS4XVOESPROC)(const GLfixed * coords); +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 *PFNGLRECTXOESPROC)(GLfixed x1, GLfixed y1, GLfixed x2, GLfixed y2); +typedef void (GLAD_API_PTR *PFNGLRECTXVOESPROC)(const GLfixed * v1, const GLfixed * v2); +typedef void (GLAD_API_PTR *PFNGLRELEASESHADERCOMPILERPROC)(void); +typedef void (GLAD_API_PTR *PFNGLRENDERBUFFERSTORAGEPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GLAD_API_PTR *PFNGLRENDERBUFFERSTORAGEEXTPROC)(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 *PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GLAD_API_PTR *PFNGLRESUMETRANSFORMFEEDBACKPROC)(void); +typedef void (GLAD_API_PTR *PFNGLROTATEXOESPROC)(GLfixed angle, GLfixed x, GLfixed y, GLfixed z); +typedef void (GLAD_API_PTR *PFNGLSAMPLECOVERAGEPROC)(GLfloat value, GLboolean invert); +typedef void (GLAD_API_PTR *PFNGLSAMPLECOVERAGEARBPROC)(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 *PFNGLSCALEXOESPROC)(GLfixed x, GLfixed y, GLfixed 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 *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 *PFNGLSHADERSOURCEARBPROC)(GLhandleARB shaderObj, GLsizei count, const GLcharARB ** string, const GLint * length); +typedef void (GLAD_API_PTR *PFNGLSHADERSTORAGEBLOCKBINDINGPROC)(GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding); +typedef void (GLAD_API_PTR *PFNGLSPECIALIZESHADERARBPROC)(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 *PFNGLTEXCOORD1XOESPROC)(GLfixed s); +typedef void (GLAD_API_PTR *PFNGLTEXCOORD1XVOESPROC)(const GLfixed * coords); +typedef void (GLAD_API_PTR *PFNGLTEXCOORD2XOESPROC)(GLfixed s, GLfixed t); +typedef void (GLAD_API_PTR *PFNGLTEXCOORD2XVOESPROC)(const GLfixed * coords); +typedef void (GLAD_API_PTR *PFNGLTEXCOORD3XOESPROC)(GLfixed s, GLfixed t, GLfixed r); +typedef void (GLAD_API_PTR *PFNGLTEXCOORD3XVOESPROC)(const GLfixed * coords); +typedef void (GLAD_API_PTR *PFNGLTEXCOORD4XOESPROC)(GLfixed s, GLfixed t, GLfixed r, GLfixed q); +typedef void (GLAD_API_PTR *PFNGLTEXCOORD4XVOESPROC)(const GLfixed * coords); +typedef void (GLAD_API_PTR *PFNGLTEXENVXOESPROC)(GLenum target, GLenum pname, GLfixed param); +typedef void (GLAD_API_PTR *PFNGLTEXENVXVOESPROC)(GLenum target, GLenum pname, const GLfixed * params); +typedef void (GLAD_API_PTR *PFNGLTEXGENXOESPROC)(GLenum coord, GLenum pname, GLfixed param); +typedef void (GLAD_API_PTR *PFNGLTEXGENXVOESPROC)(GLenum coord, GLenum pname, const GLfixed * 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 *PFNGLTEXPARAMETERXOESPROC)(GLenum target, GLenum pname, GLfixed param); +typedef void (GLAD_API_PTR *PFNGLTEXPARAMETERXVOESPROC)(GLenum target, GLenum pname, const GLfixed * 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 *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 *PFNGLTRANSLATEXOESPROC)(GLfixed x, GLfixed y, GLfixed 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 *PFNGLUNIFORM1FARBPROC)(GLint location, GLfloat v0); +typedef void (GLAD_API_PTR *PFNGLUNIFORM1FVPROC)(GLint location, GLsizei count, const GLfloat * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORM1FVARBPROC)(GLint location, GLsizei count, const GLfloat * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORM1IPROC)(GLint location, GLint v0); +typedef void (GLAD_API_PTR *PFNGLUNIFORM1I64ARBPROC)(GLint location, GLint64 x); +typedef void (GLAD_API_PTR *PFNGLUNIFORM1I64VARBPROC)(GLint location, GLsizei count, const GLint64 * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORM1IARBPROC)(GLint location, GLint v0); +typedef void (GLAD_API_PTR *PFNGLUNIFORM1IVPROC)(GLint location, GLsizei count, const GLint * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORM1IVARBPROC)(GLint location, GLsizei count, const GLint * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORM1UIPROC)(GLint location, GLuint v0); +typedef void (GLAD_API_PTR *PFNGLUNIFORM1UI64ARBPROC)(GLint location, GLuint64 x); +typedef void (GLAD_API_PTR *PFNGLUNIFORM1UI64VARBPROC)(GLint location, GLsizei count, const GLuint64 * value); +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 *PFNGLUNIFORM2FARBPROC)(GLint location, GLfloat v0, GLfloat v1); +typedef void (GLAD_API_PTR *PFNGLUNIFORM2FVPROC)(GLint location, GLsizei count, const GLfloat * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORM2FVARBPROC)(GLint location, GLsizei count, const GLfloat * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORM2IPROC)(GLint location, GLint v0, GLint v1); +typedef void (GLAD_API_PTR *PFNGLUNIFORM2I64ARBPROC)(GLint location, GLint64 x, GLint64 y); +typedef void (GLAD_API_PTR *PFNGLUNIFORM2I64VARBPROC)(GLint location, GLsizei count, const GLint64 * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORM2IARBPROC)(GLint location, GLint v0, GLint v1); +typedef void (GLAD_API_PTR *PFNGLUNIFORM2IVPROC)(GLint location, GLsizei count, const GLint * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORM2IVARBPROC)(GLint location, GLsizei count, const GLint * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORM2UIPROC)(GLint location, GLuint v0, GLuint v1); +typedef void (GLAD_API_PTR *PFNGLUNIFORM2UI64ARBPROC)(GLint location, GLuint64 x, GLuint64 y); +typedef void (GLAD_API_PTR *PFNGLUNIFORM2UI64VARBPROC)(GLint location, GLsizei count, const GLuint64 * value); +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 *PFNGLUNIFORM3FARBPROC)(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 *PFNGLUNIFORM3FVARBPROC)(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 *PFNGLUNIFORM3I64ARBPROC)(GLint location, GLint64 x, GLint64 y, GLint64 z); +typedef void (GLAD_API_PTR *PFNGLUNIFORM3I64VARBPROC)(GLint location, GLsizei count, const GLint64 * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORM3IARBPROC)(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 *PFNGLUNIFORM3IVARBPROC)(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 *PFNGLUNIFORM3UI64ARBPROC)(GLint location, GLuint64 x, GLuint64 y, GLuint64 z); +typedef void (GLAD_API_PTR *PFNGLUNIFORM3UI64VARBPROC)(GLint location, GLsizei count, const GLuint64 * value); +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 *PFNGLUNIFORM4FARBPROC)(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 *PFNGLUNIFORM4FVARBPROC)(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 *PFNGLUNIFORM4I64ARBPROC)(GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w); +typedef void (GLAD_API_PTR *PFNGLUNIFORM4I64VARBPROC)(GLint location, GLsizei count, const GLint64 * value); +typedef void (GLAD_API_PTR *PFNGLUNIFORM4IARBPROC)(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 *PFNGLUNIFORM4IVARBPROC)(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 *PFNGLUNIFORM4UI64ARBPROC)(GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w); +typedef void (GLAD_API_PTR *PFNGLUNIFORM4UI64VARBPROC)(GLint location, GLsizei count, const GLuint64 * value); +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 *PFNGLUNIFORMMATRIX2FVARBPROC)(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 *PFNGLUNIFORMMATRIX3FVARBPROC)(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 *PFNGLUNIFORMMATRIX4FVARBPROC)(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 *PFNGLUNMAPBUFFERARBPROC)(GLenum target); +typedef GLboolean (GLAD_API_PTR *PFNGLUNMAPNAMEDBUFFERPROC)(GLuint buffer); +typedef void (GLAD_API_PTR *PFNGLUSEPROGRAMPROC)(GLuint program); +typedef void (GLAD_API_PTR *PFNGLUSEPROGRAMOBJECTARBPROC)(GLhandleARB programObj); +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 *PFNGLVALIDATEPROGRAMARBPROC)(GLhandleARB programObj); +typedef void (GLAD_API_PTR *PFNGLVALIDATEPROGRAMPIPELINEPROC)(GLuint pipeline); +typedef void (GLAD_API_PTR *PFNGLVERTEX2XOESPROC)(GLfixed x); +typedef void (GLAD_API_PTR *PFNGLVERTEX2XVOESPROC)(const GLfixed * coords); +typedef void (GLAD_API_PTR *PFNGLVERTEX3XOESPROC)(GLfixed x, GLfixed y); +typedef void (GLAD_API_PTR *PFNGLVERTEX3XVOESPROC)(const GLfixed * coords); +typedef void (GLAD_API_PTR *PFNGLVERTEX4XOESPROC)(GLfixed x, GLfixed y, GLfixed z); +typedef void (GLAD_API_PTR *PFNGLVERTEX4XVOESPROC)(const GLfixed * coords); +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 *PFNGLVERTEXATTRIB1DARBPROC)(GLuint index, GLdouble x); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB1DVPROC)(GLuint index, const GLdouble * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB1DVARBPROC)(GLuint index, const GLdouble * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB1FPROC)(GLuint index, GLfloat x); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB1FARBPROC)(GLuint index, GLfloat x); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB1FVPROC)(GLuint index, const GLfloat * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB1FVARBPROC)(GLuint index, const GLfloat * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB1SPROC)(GLuint index, GLshort x); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB1SARBPROC)(GLuint index, GLshort x); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB1SVPROC)(GLuint index, const GLshort * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB1SVARBPROC)(GLuint index, const GLshort * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB2DPROC)(GLuint index, GLdouble x, GLdouble y); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB2DARBPROC)(GLuint index, GLdouble x, GLdouble y); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB2DVPROC)(GLuint index, const GLdouble * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB2DVARBPROC)(GLuint index, const GLdouble * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB2FPROC)(GLuint index, GLfloat x, GLfloat y); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB2FARBPROC)(GLuint index, GLfloat x, GLfloat y); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB2FVPROC)(GLuint index, const GLfloat * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB2FVARBPROC)(GLuint index, const GLfloat * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB2SPROC)(GLuint index, GLshort x, GLshort y); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB2SARBPROC)(GLuint index, GLshort x, GLshort y); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB2SVPROC)(GLuint index, const GLshort * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB2SVARBPROC)(GLuint index, const GLshort * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB3DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB3DARBPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB3DVPROC)(GLuint index, const GLdouble * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB3DVARBPROC)(GLuint index, const GLdouble * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB3FPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB3FARBPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB3FVPROC)(GLuint index, const GLfloat * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB3FVARBPROC)(GLuint index, const GLfloat * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB3SPROC)(GLuint index, GLshort x, GLshort y, GLshort z); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB3SARBPROC)(GLuint index, GLshort x, GLshort y, GLshort z); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB3SVPROC)(GLuint index, const GLshort * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB3SVARBPROC)(GLuint index, const GLshort * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4NBVPROC)(GLuint index, const GLbyte * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4NBVARBPROC)(GLuint index, const GLbyte * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4NIVPROC)(GLuint index, const GLint * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4NIVARBPROC)(GLuint index, const GLint * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4NSVPROC)(GLuint index, const GLshort * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4NSVARBPROC)(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 *PFNGLVERTEXATTRIB4NUBARBPROC)(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 *PFNGLVERTEXATTRIB4NUBVARBPROC)(GLuint index, const GLubyte * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4NUIVPROC)(GLuint index, const GLuint * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4NUIVARBPROC)(GLuint index, const GLuint * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4NUSVPROC)(GLuint index, const GLushort * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4NUSVARBPROC)(GLuint index, const GLushort * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4BVPROC)(GLuint index, const GLbyte * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4BVARBPROC)(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 *PFNGLVERTEXATTRIB4DARBPROC)(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 *PFNGLVERTEXATTRIB4DVARBPROC)(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 *PFNGLVERTEXATTRIB4FARBPROC)(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 *PFNGLVERTEXATTRIB4FVARBPROC)(GLuint index, const GLfloat * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4IVPROC)(GLuint index, const GLint * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4IVARBPROC)(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 *PFNGLVERTEXATTRIB4SARBPROC)(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 *PFNGLVERTEXATTRIB4SVARBPROC)(GLuint index, const GLshort * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4UBVPROC)(GLuint index, const GLubyte * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4UBVARBPROC)(GLuint index, const GLubyte * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4UIVPROC)(GLuint index, const GLuint * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4UIVARBPROC)(GLuint index, const GLuint * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4USVPROC)(GLuint index, const GLushort * v); +typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4USVARBPROC)(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 *PFNGLVERTEXATTRIBDIVISORARBPROC)(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 *PFNGLVERTEXATTRIBPOINTERARBPROC)(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 *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); + +GLAD_API_CALL PFNGLACCUMXOESPROC glad_glAccumxOES; +#define glAccumxOES glad_glAccumxOES +GLAD_API_CALL PFNGLACTIVESHADERPROGRAMPROC glad_glActiveShaderProgram; +#define glActiveShaderProgram glad_glActiveShaderProgram +GLAD_API_CALL PFNGLACTIVETEXTUREPROC glad_glActiveTexture; +#define glActiveTexture glad_glActiveTexture +GLAD_API_CALL PFNGLACTIVETEXTUREARBPROC glad_glActiveTextureARB; +#define glActiveTextureARB glad_glActiveTextureARB +GLAD_API_CALL PFNGLALPHAFUNCXOESPROC glad_glAlphaFuncxOES; +#define glAlphaFuncxOES glad_glAlphaFuncxOES +GLAD_API_CALL PFNGLATTACHOBJECTARBPROC glad_glAttachObjectARB; +#define glAttachObjectARB glad_glAttachObjectARB +GLAD_API_CALL PFNGLATTACHSHADERPROC glad_glAttachShader; +#define glAttachShader glad_glAttachShader +GLAD_API_CALL PFNGLBEGINCONDITIONALRENDERPROC glad_glBeginConditionalRender; +#define glBeginConditionalRender glad_glBeginConditionalRender +GLAD_API_CALL PFNGLBEGINQUERYPROC glad_glBeginQuery; +#define glBeginQuery glad_glBeginQuery +GLAD_API_CALL PFNGLBEGINQUERYARBPROC glad_glBeginQueryARB; +#define glBeginQueryARB glad_glBeginQueryARB +GLAD_API_CALL PFNGLBEGINQUERYINDEXEDPROC glad_glBeginQueryIndexed; +#define glBeginQueryIndexed glad_glBeginQueryIndexed +GLAD_API_CALL PFNGLBEGINTRANSFORMFEEDBACKPROC glad_glBeginTransformFeedback; +#define glBeginTransformFeedback glad_glBeginTransformFeedback +GLAD_API_CALL PFNGLBINDATTRIBLOCATIONPROC glad_glBindAttribLocation; +#define glBindAttribLocation glad_glBindAttribLocation +GLAD_API_CALL PFNGLBINDATTRIBLOCATIONARBPROC glad_glBindAttribLocationARB; +#define glBindAttribLocationARB glad_glBindAttribLocationARB +GLAD_API_CALL PFNGLBINDBUFFERPROC glad_glBindBuffer; +#define glBindBuffer glad_glBindBuffer +GLAD_API_CALL PFNGLBINDBUFFERARBPROC glad_glBindBufferARB; +#define glBindBufferARB glad_glBindBufferARB +GLAD_API_CALL PFNGLBINDBUFFERBASEPROC glad_glBindBufferBase; +#define glBindBufferBase glad_glBindBufferBase +GLAD_API_CALL PFNGLBINDBUFFERRANGEPROC glad_glBindBufferRange; +#define glBindBufferRange glad_glBindBufferRange +GLAD_API_CALL PFNGLBINDBUFFERSBASEPROC glad_glBindBuffersBase; +#define glBindBuffersBase glad_glBindBuffersBase +GLAD_API_CALL PFNGLBINDBUFFERSRANGEPROC glad_glBindBuffersRange; +#define glBindBuffersRange glad_glBindBuffersRange +GLAD_API_CALL PFNGLBINDFRAGDATALOCATIONPROC glad_glBindFragDataLocation; +#define glBindFragDataLocation glad_glBindFragDataLocation +GLAD_API_CALL PFNGLBINDFRAGDATALOCATIONINDEXEDPROC glad_glBindFragDataLocationIndexed; +#define glBindFragDataLocationIndexed glad_glBindFragDataLocationIndexed +GLAD_API_CALL PFNGLBINDFRAMEBUFFERPROC glad_glBindFramebuffer; +#define glBindFramebuffer glad_glBindFramebuffer +GLAD_API_CALL PFNGLBINDFRAMEBUFFEREXTPROC glad_glBindFramebufferEXT; +#define glBindFramebufferEXT glad_glBindFramebufferEXT +GLAD_API_CALL PFNGLBINDIMAGETEXTUREPROC glad_glBindImageTexture; +#define glBindImageTexture glad_glBindImageTexture +GLAD_API_CALL PFNGLBINDIMAGETEXTURESPROC glad_glBindImageTextures; +#define glBindImageTextures glad_glBindImageTextures +GLAD_API_CALL PFNGLBINDPROGRAMARBPROC glad_glBindProgramARB; +#define glBindProgramARB glad_glBindProgramARB +GLAD_API_CALL PFNGLBINDPROGRAMPIPELINEPROC glad_glBindProgramPipeline; +#define glBindProgramPipeline glad_glBindProgramPipeline +GLAD_API_CALL PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer; +#define glBindRenderbuffer glad_glBindRenderbuffer +GLAD_API_CALL PFNGLBINDRENDERBUFFEREXTPROC glad_glBindRenderbufferEXT; +#define glBindRenderbufferEXT glad_glBindRenderbufferEXT +GLAD_API_CALL PFNGLBINDSAMPLERPROC glad_glBindSampler; +#define glBindSampler glad_glBindSampler +GLAD_API_CALL PFNGLBINDSAMPLERSPROC glad_glBindSamplers; +#define glBindSamplers glad_glBindSamplers +GLAD_API_CALL PFNGLBINDTEXTUREPROC glad_glBindTexture; +#define glBindTexture glad_glBindTexture +GLAD_API_CALL PFNGLBINDTEXTUREUNITPROC glad_glBindTextureUnit; +#define glBindTextureUnit glad_glBindTextureUnit +GLAD_API_CALL PFNGLBINDTEXTURESPROC glad_glBindTextures; +#define glBindTextures glad_glBindTextures +GLAD_API_CALL PFNGLBINDTRANSFORMFEEDBACKPROC glad_glBindTransformFeedback; +#define glBindTransformFeedback glad_glBindTransformFeedback +GLAD_API_CALL PFNGLBINDVERTEXARRAYPROC glad_glBindVertexArray; +#define glBindVertexArray glad_glBindVertexArray +GLAD_API_CALL PFNGLBINDVERTEXBUFFERPROC glad_glBindVertexBuffer; +#define glBindVertexBuffer glad_glBindVertexBuffer +GLAD_API_CALL PFNGLBINDVERTEXBUFFERSPROC glad_glBindVertexBuffers; +#define glBindVertexBuffers glad_glBindVertexBuffers +GLAD_API_CALL PFNGLBITMAPXOESPROC glad_glBitmapxOES; +#define glBitmapxOES glad_glBitmapxOES +GLAD_API_CALL PFNGLBLENDCOLORPROC glad_glBlendColor; +#define glBlendColor glad_glBlendColor +GLAD_API_CALL PFNGLBLENDCOLORXOESPROC glad_glBlendColorxOES; +#define glBlendColorxOES glad_glBlendColorxOES +GLAD_API_CALL PFNGLBLENDEQUATIONPROC glad_glBlendEquation; +#define glBlendEquation glad_glBlendEquation +GLAD_API_CALL PFNGLBLENDEQUATIONSEPARATEPROC glad_glBlendEquationSeparate; +#define glBlendEquationSeparate glad_glBlendEquationSeparate +GLAD_API_CALL PFNGLBLENDEQUATIONSEPARATEIPROC glad_glBlendEquationSeparatei; +#define glBlendEquationSeparatei glad_glBlendEquationSeparatei +GLAD_API_CALL PFNGLBLENDEQUATIONSEPARATEIARBPROC glad_glBlendEquationSeparateiARB; +#define glBlendEquationSeparateiARB glad_glBlendEquationSeparateiARB +GLAD_API_CALL PFNGLBLENDEQUATIONIPROC glad_glBlendEquationi; +#define glBlendEquationi glad_glBlendEquationi +GLAD_API_CALL PFNGLBLENDEQUATIONIARBPROC glad_glBlendEquationiARB; +#define glBlendEquationiARB glad_glBlendEquationiARB +GLAD_API_CALL PFNGLBLENDFUNCPROC glad_glBlendFunc; +#define glBlendFunc glad_glBlendFunc +GLAD_API_CALL PFNGLBLENDFUNCSEPARATEPROC glad_glBlendFuncSeparate; +#define glBlendFuncSeparate glad_glBlendFuncSeparate +GLAD_API_CALL PFNGLBLENDFUNCSEPARATEIPROC glad_glBlendFuncSeparatei; +#define glBlendFuncSeparatei glad_glBlendFuncSeparatei +GLAD_API_CALL PFNGLBLENDFUNCSEPARATEIARBPROC glad_glBlendFuncSeparateiARB; +#define glBlendFuncSeparateiARB glad_glBlendFuncSeparateiARB +GLAD_API_CALL PFNGLBLENDFUNCIPROC glad_glBlendFunci; +#define glBlendFunci glad_glBlendFunci +GLAD_API_CALL PFNGLBLENDFUNCIARBPROC glad_glBlendFunciARB; +#define glBlendFunciARB glad_glBlendFunciARB +GLAD_API_CALL PFNGLBLITFRAMEBUFFERPROC glad_glBlitFramebuffer; +#define glBlitFramebuffer glad_glBlitFramebuffer +GLAD_API_CALL PFNGLBLITFRAMEBUFFEREXTPROC glad_glBlitFramebufferEXT; +#define glBlitFramebufferEXT glad_glBlitFramebufferEXT +GLAD_API_CALL PFNGLBLITNAMEDFRAMEBUFFERPROC glad_glBlitNamedFramebuffer; +#define glBlitNamedFramebuffer glad_glBlitNamedFramebuffer +GLAD_API_CALL PFNGLBUFFERDATAPROC glad_glBufferData; +#define glBufferData glad_glBufferData +GLAD_API_CALL PFNGLBUFFERDATAARBPROC glad_glBufferDataARB; +#define glBufferDataARB glad_glBufferDataARB +GLAD_API_CALL PFNGLBUFFERSTORAGEPROC glad_glBufferStorage; +#define glBufferStorage glad_glBufferStorage +GLAD_API_CALL PFNGLBUFFERSUBDATAPROC glad_glBufferSubData; +#define glBufferSubData glad_glBufferSubData +GLAD_API_CALL PFNGLBUFFERSUBDATAARBPROC glad_glBufferSubDataARB; +#define glBufferSubDataARB glad_glBufferSubDataARB +GLAD_API_CALL PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_glCheckFramebufferStatus; +#define glCheckFramebufferStatus glad_glCheckFramebufferStatus +GLAD_API_CALL PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC glad_glCheckFramebufferStatusEXT; +#define glCheckFramebufferStatusEXT glad_glCheckFramebufferStatusEXT +GLAD_API_CALL PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC glad_glCheckNamedFramebufferStatus; +#define glCheckNamedFramebufferStatus glad_glCheckNamedFramebufferStatus +GLAD_API_CALL PFNGLCLAMPCOLORPROC glad_glClampColor; +#define glClampColor glad_glClampColor +GLAD_API_CALL PFNGLCLAMPCOLORARBPROC glad_glClampColorARB; +#define glClampColorARB glad_glClampColorARB +GLAD_API_CALL PFNGLCLEARPROC glad_glClear; +#define glClear glad_glClear +GLAD_API_CALL PFNGLCLEARACCUMXOESPROC glad_glClearAccumxOES; +#define glClearAccumxOES glad_glClearAccumxOES +GLAD_API_CALL PFNGLCLEARBUFFERDATAPROC glad_glClearBufferData; +#define glClearBufferData glad_glClearBufferData +GLAD_API_CALL PFNGLCLEARBUFFERSUBDATAPROC glad_glClearBufferSubData; +#define glClearBufferSubData glad_glClearBufferSubData +GLAD_API_CALL PFNGLCLEARBUFFERFIPROC glad_glClearBufferfi; +#define glClearBufferfi glad_glClearBufferfi +GLAD_API_CALL PFNGLCLEARBUFFERFVPROC glad_glClearBufferfv; +#define glClearBufferfv glad_glClearBufferfv +GLAD_API_CALL PFNGLCLEARBUFFERIVPROC glad_glClearBufferiv; +#define glClearBufferiv glad_glClearBufferiv +GLAD_API_CALL PFNGLCLEARBUFFERUIVPROC glad_glClearBufferuiv; +#define glClearBufferuiv glad_glClearBufferuiv +GLAD_API_CALL PFNGLCLEARCOLORPROC glad_glClearColor; +#define glClearColor glad_glClearColor +GLAD_API_CALL PFNGLCLEARCOLORXOESPROC glad_glClearColorxOES; +#define glClearColorxOES glad_glClearColorxOES +GLAD_API_CALL PFNGLCLEARDEPTHPROC glad_glClearDepth; +#define glClearDepth glad_glClearDepth +GLAD_API_CALL PFNGLCLEARDEPTHFPROC glad_glClearDepthf; +#define glClearDepthf glad_glClearDepthf +GLAD_API_CALL PFNGLCLEARDEPTHXOESPROC glad_glClearDepthxOES; +#define glClearDepthxOES glad_glClearDepthxOES +GLAD_API_CALL PFNGLCLEARNAMEDBUFFERDATAPROC glad_glClearNamedBufferData; +#define glClearNamedBufferData glad_glClearNamedBufferData +GLAD_API_CALL PFNGLCLEARNAMEDBUFFERSUBDATAPROC glad_glClearNamedBufferSubData; +#define glClearNamedBufferSubData glad_glClearNamedBufferSubData +GLAD_API_CALL PFNGLCLEARNAMEDFRAMEBUFFERFIPROC glad_glClearNamedFramebufferfi; +#define glClearNamedFramebufferfi glad_glClearNamedFramebufferfi +GLAD_API_CALL PFNGLCLEARNAMEDFRAMEBUFFERFVPROC glad_glClearNamedFramebufferfv; +#define glClearNamedFramebufferfv glad_glClearNamedFramebufferfv +GLAD_API_CALL PFNGLCLEARNAMEDFRAMEBUFFERIVPROC glad_glClearNamedFramebufferiv; +#define glClearNamedFramebufferiv glad_glClearNamedFramebufferiv +GLAD_API_CALL PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC glad_glClearNamedFramebufferuiv; +#define glClearNamedFramebufferuiv glad_glClearNamedFramebufferuiv +GLAD_API_CALL PFNGLCLEARSTENCILPROC glad_glClearStencil; +#define glClearStencil glad_glClearStencil +GLAD_API_CALL PFNGLCLEARTEXIMAGEPROC glad_glClearTexImage; +#define glClearTexImage glad_glClearTexImage +GLAD_API_CALL PFNGLCLEARTEXSUBIMAGEPROC glad_glClearTexSubImage; +#define glClearTexSubImage glad_glClearTexSubImage +GLAD_API_CALL PFNGLCLIENTACTIVETEXTUREARBPROC glad_glClientActiveTextureARB; +#define glClientActiveTextureARB glad_glClientActiveTextureARB +GLAD_API_CALL PFNGLCLIENTWAITSYNCPROC glad_glClientWaitSync; +#define glClientWaitSync glad_glClientWaitSync +GLAD_API_CALL PFNGLCLIPPLANEXOESPROC glad_glClipPlanexOES; +#define glClipPlanexOES glad_glClipPlanexOES +GLAD_API_CALL PFNGLCOLOR3XOESPROC glad_glColor3xOES; +#define glColor3xOES glad_glColor3xOES +GLAD_API_CALL PFNGLCOLOR3XVOESPROC glad_glColor3xvOES; +#define glColor3xvOES glad_glColor3xvOES +GLAD_API_CALL PFNGLCOLOR4XOESPROC glad_glColor4xOES; +#define glColor4xOES glad_glColor4xOES +GLAD_API_CALL PFNGLCOLOR4XVOESPROC glad_glColor4xvOES; +#define glColor4xvOES glad_glColor4xvOES +GLAD_API_CALL PFNGLCOLORMASKPROC glad_glColorMask; +#define glColorMask glad_glColorMask +GLAD_API_CALL PFNGLCOLORMASKIPROC glad_glColorMaski; +#define glColorMaski glad_glColorMaski +GLAD_API_CALL PFNGLCOMPILESHADERPROC glad_glCompileShader; +#define glCompileShader glad_glCompileShader +GLAD_API_CALL PFNGLCOMPILESHADERARBPROC glad_glCompileShaderARB; +#define glCompileShaderARB glad_glCompileShaderARB +GLAD_API_CALL PFNGLCOMPILESHADERINCLUDEARBPROC glad_glCompileShaderIncludeARB; +#define glCompileShaderIncludeARB glad_glCompileShaderIncludeARB +GLAD_API_CALL PFNGLCOMPRESSEDTEXIMAGE1DPROC glad_glCompressedTexImage1D; +#define glCompressedTexImage1D glad_glCompressedTexImage1D +GLAD_API_CALL PFNGLCOMPRESSEDTEXIMAGE1DARBPROC glad_glCompressedTexImage1DARB; +#define glCompressedTexImage1DARB glad_glCompressedTexImage1DARB +GLAD_API_CALL PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_glCompressedTexImage2D; +#define glCompressedTexImage2D glad_glCompressedTexImage2D +GLAD_API_CALL PFNGLCOMPRESSEDTEXIMAGE2DARBPROC glad_glCompressedTexImage2DARB; +#define glCompressedTexImage2DARB glad_glCompressedTexImage2DARB +GLAD_API_CALL PFNGLCOMPRESSEDTEXIMAGE3DPROC glad_glCompressedTexImage3D; +#define glCompressedTexImage3D glad_glCompressedTexImage3D +GLAD_API_CALL PFNGLCOMPRESSEDTEXIMAGE3DARBPROC glad_glCompressedTexImage3DARB; +#define glCompressedTexImage3DARB glad_glCompressedTexImage3DARB +GLAD_API_CALL PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glad_glCompressedTexSubImage1D; +#define glCompressedTexSubImage1D glad_glCompressedTexSubImage1D +GLAD_API_CALL PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC glad_glCompressedTexSubImage1DARB; +#define glCompressedTexSubImage1DARB glad_glCompressedTexSubImage1DARB +GLAD_API_CALL PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_glCompressedTexSubImage2D; +#define glCompressedTexSubImage2D glad_glCompressedTexSubImage2D +GLAD_API_CALL PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC glad_glCompressedTexSubImage2DARB; +#define glCompressedTexSubImage2DARB glad_glCompressedTexSubImage2DARB +GLAD_API_CALL PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glad_glCompressedTexSubImage3D; +#define glCompressedTexSubImage3D glad_glCompressedTexSubImage3D +GLAD_API_CALL PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC glad_glCompressedTexSubImage3DARB; +#define glCompressedTexSubImage3DARB glad_glCompressedTexSubImage3DARB +GLAD_API_CALL PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC glad_glCompressedTextureSubImage1D; +#define glCompressedTextureSubImage1D glad_glCompressedTextureSubImage1D +GLAD_API_CALL PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC glad_glCompressedTextureSubImage2D; +#define glCompressedTextureSubImage2D glad_glCompressedTextureSubImage2D +GLAD_API_CALL PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC glad_glCompressedTextureSubImage3D; +#define glCompressedTextureSubImage3D glad_glCompressedTextureSubImage3D +GLAD_API_CALL PFNGLCONVOLUTIONPARAMETERXOESPROC glad_glConvolutionParameterxOES; +#define glConvolutionParameterxOES glad_glConvolutionParameterxOES +GLAD_API_CALL PFNGLCONVOLUTIONPARAMETERXVOESPROC glad_glConvolutionParameterxvOES; +#define glConvolutionParameterxvOES glad_glConvolutionParameterxvOES +GLAD_API_CALL PFNGLCOPYBUFFERSUBDATAPROC glad_glCopyBufferSubData; +#define glCopyBufferSubData glad_glCopyBufferSubData +GLAD_API_CALL PFNGLCOPYIMAGESUBDATAPROC glad_glCopyImageSubData; +#define glCopyImageSubData glad_glCopyImageSubData +GLAD_API_CALL PFNGLCOPYNAMEDBUFFERSUBDATAPROC glad_glCopyNamedBufferSubData; +#define glCopyNamedBufferSubData glad_glCopyNamedBufferSubData +GLAD_API_CALL PFNGLCOPYTEXIMAGE1DPROC glad_glCopyTexImage1D; +#define glCopyTexImage1D glad_glCopyTexImage1D +GLAD_API_CALL PFNGLCOPYTEXIMAGE2DPROC glad_glCopyTexImage2D; +#define glCopyTexImage2D glad_glCopyTexImage2D +GLAD_API_CALL PFNGLCOPYTEXSUBIMAGE1DPROC glad_glCopyTexSubImage1D; +#define glCopyTexSubImage1D glad_glCopyTexSubImage1D +GLAD_API_CALL PFNGLCOPYTEXSUBIMAGE2DPROC glad_glCopyTexSubImage2D; +#define glCopyTexSubImage2D glad_glCopyTexSubImage2D +GLAD_API_CALL PFNGLCOPYTEXSUBIMAGE3DPROC glad_glCopyTexSubImage3D; +#define glCopyTexSubImage3D glad_glCopyTexSubImage3D +GLAD_API_CALL PFNGLCOPYTEXTURESUBIMAGE1DPROC glad_glCopyTextureSubImage1D; +#define glCopyTextureSubImage1D glad_glCopyTextureSubImage1D +GLAD_API_CALL PFNGLCOPYTEXTURESUBIMAGE2DPROC glad_glCopyTextureSubImage2D; +#define glCopyTextureSubImage2D glad_glCopyTextureSubImage2D +GLAD_API_CALL PFNGLCOPYTEXTURESUBIMAGE3DPROC glad_glCopyTextureSubImage3D; +#define glCopyTextureSubImage3D glad_glCopyTextureSubImage3D +GLAD_API_CALL PFNGLCREATEBUFFERSPROC glad_glCreateBuffers; +#define glCreateBuffers glad_glCreateBuffers +GLAD_API_CALL PFNGLCREATEFRAMEBUFFERSPROC glad_glCreateFramebuffers; +#define glCreateFramebuffers glad_glCreateFramebuffers +GLAD_API_CALL PFNGLCREATEPROGRAMPROC glad_glCreateProgram; +#define glCreateProgram glad_glCreateProgram +GLAD_API_CALL PFNGLCREATEPROGRAMOBJECTARBPROC glad_glCreateProgramObjectARB; +#define glCreateProgramObjectARB glad_glCreateProgramObjectARB +GLAD_API_CALL PFNGLCREATEPROGRAMPIPELINESPROC glad_glCreateProgramPipelines; +#define glCreateProgramPipelines glad_glCreateProgramPipelines +GLAD_API_CALL PFNGLCREATEQUERIESPROC glad_glCreateQueries; +#define glCreateQueries glad_glCreateQueries +GLAD_API_CALL PFNGLCREATERENDERBUFFERSPROC glad_glCreateRenderbuffers; +#define glCreateRenderbuffers glad_glCreateRenderbuffers +GLAD_API_CALL PFNGLCREATESAMPLERSPROC glad_glCreateSamplers; +#define glCreateSamplers glad_glCreateSamplers +GLAD_API_CALL PFNGLCREATESHADERPROC glad_glCreateShader; +#define glCreateShader glad_glCreateShader +GLAD_API_CALL PFNGLCREATESHADEROBJECTARBPROC glad_glCreateShaderObjectARB; +#define glCreateShaderObjectARB glad_glCreateShaderObjectARB +GLAD_API_CALL PFNGLCREATESHADERPROGRAMVPROC glad_glCreateShaderProgramv; +#define glCreateShaderProgramv glad_glCreateShaderProgramv +GLAD_API_CALL PFNGLCREATETEXTURESPROC glad_glCreateTextures; +#define glCreateTextures glad_glCreateTextures +GLAD_API_CALL PFNGLCREATETRANSFORMFEEDBACKSPROC glad_glCreateTransformFeedbacks; +#define glCreateTransformFeedbacks glad_glCreateTransformFeedbacks +GLAD_API_CALL PFNGLCREATEVERTEXARRAYSPROC glad_glCreateVertexArrays; +#define glCreateVertexArrays glad_glCreateVertexArrays +GLAD_API_CALL PFNGLCULLFACEPROC glad_glCullFace; +#define glCullFace glad_glCullFace +GLAD_API_CALL PFNGLDEBUGMESSAGECALLBACKPROC glad_glDebugMessageCallback; +#define glDebugMessageCallback glad_glDebugMessageCallback +GLAD_API_CALL PFNGLDEBUGMESSAGECALLBACKARBPROC glad_glDebugMessageCallbackARB; +#define glDebugMessageCallbackARB glad_glDebugMessageCallbackARB +GLAD_API_CALL PFNGLDEBUGMESSAGECONTROLPROC glad_glDebugMessageControl; +#define glDebugMessageControl glad_glDebugMessageControl +GLAD_API_CALL PFNGLDEBUGMESSAGECONTROLARBPROC glad_glDebugMessageControlARB; +#define glDebugMessageControlARB glad_glDebugMessageControlARB +GLAD_API_CALL PFNGLDEBUGMESSAGEINSERTPROC glad_glDebugMessageInsert; +#define glDebugMessageInsert glad_glDebugMessageInsert +GLAD_API_CALL PFNGLDEBUGMESSAGEINSERTARBPROC glad_glDebugMessageInsertARB; +#define glDebugMessageInsertARB glad_glDebugMessageInsertARB +GLAD_API_CALL PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers; +#define glDeleteBuffers glad_glDeleteBuffers +GLAD_API_CALL PFNGLDELETEBUFFERSARBPROC glad_glDeleteBuffersARB; +#define glDeleteBuffersARB glad_glDeleteBuffersARB +GLAD_API_CALL PFNGLDELETEFRAMEBUFFERSPROC glad_glDeleteFramebuffers; +#define glDeleteFramebuffers glad_glDeleteFramebuffers +GLAD_API_CALL PFNGLDELETEFRAMEBUFFERSEXTPROC glad_glDeleteFramebuffersEXT; +#define glDeleteFramebuffersEXT glad_glDeleteFramebuffersEXT +GLAD_API_CALL PFNGLDELETENAMEDSTRINGARBPROC glad_glDeleteNamedStringARB; +#define glDeleteNamedStringARB glad_glDeleteNamedStringARB +GLAD_API_CALL PFNGLDELETEOBJECTARBPROC glad_glDeleteObjectARB; +#define glDeleteObjectARB glad_glDeleteObjectARB +GLAD_API_CALL PFNGLDELETEPROGRAMPROC glad_glDeleteProgram; +#define glDeleteProgram glad_glDeleteProgram +GLAD_API_CALL PFNGLDELETEPROGRAMPIPELINESPROC glad_glDeleteProgramPipelines; +#define glDeleteProgramPipelines glad_glDeleteProgramPipelines +GLAD_API_CALL PFNGLDELETEPROGRAMSARBPROC glad_glDeleteProgramsARB; +#define glDeleteProgramsARB glad_glDeleteProgramsARB +GLAD_API_CALL PFNGLDELETEQUERIESPROC glad_glDeleteQueries; +#define glDeleteQueries glad_glDeleteQueries +GLAD_API_CALL PFNGLDELETEQUERIESARBPROC glad_glDeleteQueriesARB; +#define glDeleteQueriesARB glad_glDeleteQueriesARB +GLAD_API_CALL PFNGLDELETERENDERBUFFERSPROC glad_glDeleteRenderbuffers; +#define glDeleteRenderbuffers glad_glDeleteRenderbuffers +GLAD_API_CALL PFNGLDELETERENDERBUFFERSEXTPROC glad_glDeleteRenderbuffersEXT; +#define glDeleteRenderbuffersEXT glad_glDeleteRenderbuffersEXT +GLAD_API_CALL PFNGLDELETESAMPLERSPROC glad_glDeleteSamplers; +#define glDeleteSamplers glad_glDeleteSamplers +GLAD_API_CALL PFNGLDELETESHADERPROC glad_glDeleteShader; +#define glDeleteShader glad_glDeleteShader +GLAD_API_CALL PFNGLDELETESYNCPROC glad_glDeleteSync; +#define glDeleteSync glad_glDeleteSync +GLAD_API_CALL PFNGLDELETETEXTURESPROC glad_glDeleteTextures; +#define glDeleteTextures glad_glDeleteTextures +GLAD_API_CALL PFNGLDELETETRANSFORMFEEDBACKSPROC glad_glDeleteTransformFeedbacks; +#define glDeleteTransformFeedbacks glad_glDeleteTransformFeedbacks +GLAD_API_CALL PFNGLDELETEVERTEXARRAYSPROC glad_glDeleteVertexArrays; +#define glDeleteVertexArrays glad_glDeleteVertexArrays +GLAD_API_CALL PFNGLDEPTHFUNCPROC glad_glDepthFunc; +#define glDepthFunc glad_glDepthFunc +GLAD_API_CALL PFNGLDEPTHMASKPROC glad_glDepthMask; +#define glDepthMask glad_glDepthMask +GLAD_API_CALL PFNGLDEPTHRANGEPROC glad_glDepthRange; +#define glDepthRange glad_glDepthRange +GLAD_API_CALL PFNGLDEPTHRANGEARRAYVPROC glad_glDepthRangeArrayv; +#define glDepthRangeArrayv glad_glDepthRangeArrayv +GLAD_API_CALL PFNGLDEPTHRANGEINDEXEDPROC glad_glDepthRangeIndexed; +#define glDepthRangeIndexed glad_glDepthRangeIndexed +GLAD_API_CALL PFNGLDEPTHRANGEFPROC glad_glDepthRangef; +#define glDepthRangef glad_glDepthRangef +GLAD_API_CALL PFNGLDEPTHRANGEXOESPROC glad_glDepthRangexOES; +#define glDepthRangexOES glad_glDepthRangexOES +GLAD_API_CALL PFNGLDETACHOBJECTARBPROC glad_glDetachObjectARB; +#define glDetachObjectARB glad_glDetachObjectARB +GLAD_API_CALL PFNGLDETACHSHADERPROC glad_glDetachShader; +#define glDetachShader glad_glDetachShader +GLAD_API_CALL PFNGLDISABLEPROC glad_glDisable; +#define glDisable glad_glDisable +GLAD_API_CALL PFNGLDISABLEVERTEXARRAYATTRIBPROC glad_glDisableVertexArrayAttrib; +#define glDisableVertexArrayAttrib glad_glDisableVertexArrayAttrib +GLAD_API_CALL PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_glDisableVertexAttribArray; +#define glDisableVertexAttribArray glad_glDisableVertexAttribArray +GLAD_API_CALL PFNGLDISABLEVERTEXATTRIBARRAYARBPROC glad_glDisableVertexAttribArrayARB; +#define glDisableVertexAttribArrayARB glad_glDisableVertexAttribArrayARB +GLAD_API_CALL PFNGLDISABLEIPROC glad_glDisablei; +#define glDisablei glad_glDisablei +GLAD_API_CALL PFNGLDISPATCHCOMPUTEPROC glad_glDispatchCompute; +#define glDispatchCompute glad_glDispatchCompute +GLAD_API_CALL PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC glad_glDispatchComputeGroupSizeARB; +#define glDispatchComputeGroupSizeARB glad_glDispatchComputeGroupSizeARB +GLAD_API_CALL PFNGLDISPATCHCOMPUTEINDIRECTPROC glad_glDispatchComputeIndirect; +#define glDispatchComputeIndirect glad_glDispatchComputeIndirect +GLAD_API_CALL PFNGLDRAWARRAYSPROC glad_glDrawArrays; +#define glDrawArrays glad_glDrawArrays +GLAD_API_CALL PFNGLDRAWARRAYSINDIRECTPROC glad_glDrawArraysIndirect; +#define glDrawArraysIndirect glad_glDrawArraysIndirect +GLAD_API_CALL PFNGLDRAWARRAYSINSTANCEDPROC glad_glDrawArraysInstanced; +#define glDrawArraysInstanced glad_glDrawArraysInstanced +GLAD_API_CALL PFNGLDRAWARRAYSINSTANCEDARBPROC glad_glDrawArraysInstancedARB; +#define glDrawArraysInstancedARB glad_glDrawArraysInstancedARB +GLAD_API_CALL PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC glad_glDrawArraysInstancedBaseInstance; +#define glDrawArraysInstancedBaseInstance glad_glDrawArraysInstancedBaseInstance +GLAD_API_CALL PFNGLDRAWBUFFERPROC glad_glDrawBuffer; +#define glDrawBuffer glad_glDrawBuffer +GLAD_API_CALL PFNGLDRAWBUFFERSPROC glad_glDrawBuffers; +#define glDrawBuffers glad_glDrawBuffers +GLAD_API_CALL PFNGLDRAWBUFFERSARBPROC glad_glDrawBuffersARB; +#define glDrawBuffersARB glad_glDrawBuffersARB +GLAD_API_CALL PFNGLDRAWELEMENTSPROC glad_glDrawElements; +#define glDrawElements glad_glDrawElements +GLAD_API_CALL PFNGLDRAWELEMENTSBASEVERTEXPROC glad_glDrawElementsBaseVertex; +#define glDrawElementsBaseVertex glad_glDrawElementsBaseVertex +GLAD_API_CALL PFNGLDRAWELEMENTSINDIRECTPROC glad_glDrawElementsIndirect; +#define glDrawElementsIndirect glad_glDrawElementsIndirect +GLAD_API_CALL PFNGLDRAWELEMENTSINSTANCEDPROC glad_glDrawElementsInstanced; +#define glDrawElementsInstanced glad_glDrawElementsInstanced +GLAD_API_CALL PFNGLDRAWELEMENTSINSTANCEDARBPROC glad_glDrawElementsInstancedARB; +#define glDrawElementsInstancedARB glad_glDrawElementsInstancedARB +GLAD_API_CALL PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC glad_glDrawElementsInstancedBaseInstance; +#define glDrawElementsInstancedBaseInstance glad_glDrawElementsInstancedBaseInstance +GLAD_API_CALL PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glad_glDrawElementsInstancedBaseVertex; +#define glDrawElementsInstancedBaseVertex glad_glDrawElementsInstancedBaseVertex +GLAD_API_CALL PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC glad_glDrawElementsInstancedBaseVertexBaseInstance; +#define glDrawElementsInstancedBaseVertexBaseInstance glad_glDrawElementsInstancedBaseVertexBaseInstance +GLAD_API_CALL PFNGLDRAWRANGEELEMENTSPROC glad_glDrawRangeElements; +#define glDrawRangeElements glad_glDrawRangeElements +GLAD_API_CALL PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glad_glDrawRangeElementsBaseVertex; +#define glDrawRangeElementsBaseVertex glad_glDrawRangeElementsBaseVertex +GLAD_API_CALL PFNGLDRAWTRANSFORMFEEDBACKPROC glad_glDrawTransformFeedback; +#define glDrawTransformFeedback glad_glDrawTransformFeedback +GLAD_API_CALL PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC glad_glDrawTransformFeedbackInstanced; +#define glDrawTransformFeedbackInstanced glad_glDrawTransformFeedbackInstanced +GLAD_API_CALL PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC glad_glDrawTransformFeedbackStream; +#define glDrawTransformFeedbackStream glad_glDrawTransformFeedbackStream +GLAD_API_CALL PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC glad_glDrawTransformFeedbackStreamInstanced; +#define glDrawTransformFeedbackStreamInstanced glad_glDrawTransformFeedbackStreamInstanced +GLAD_API_CALL PFNGLENABLEPROC glad_glEnable; +#define glEnable glad_glEnable +GLAD_API_CALL PFNGLENABLEVERTEXARRAYATTRIBPROC glad_glEnableVertexArrayAttrib; +#define glEnableVertexArrayAttrib glad_glEnableVertexArrayAttrib +GLAD_API_CALL PFNGLENABLEVERTEXATTRIBARRAYPROC glad_glEnableVertexAttribArray; +#define glEnableVertexAttribArray glad_glEnableVertexAttribArray +GLAD_API_CALL PFNGLENABLEVERTEXATTRIBARRAYARBPROC glad_glEnableVertexAttribArrayARB; +#define glEnableVertexAttribArrayARB glad_glEnableVertexAttribArrayARB +GLAD_API_CALL PFNGLENABLEIPROC glad_glEnablei; +#define glEnablei glad_glEnablei +GLAD_API_CALL PFNGLENDCONDITIONALRENDERPROC glad_glEndConditionalRender; +#define glEndConditionalRender glad_glEndConditionalRender +GLAD_API_CALL PFNGLENDQUERYPROC glad_glEndQuery; +#define glEndQuery glad_glEndQuery +GLAD_API_CALL PFNGLENDQUERYARBPROC glad_glEndQueryARB; +#define glEndQueryARB glad_glEndQueryARB +GLAD_API_CALL PFNGLENDQUERYINDEXEDPROC glad_glEndQueryIndexed; +#define glEndQueryIndexed glad_glEndQueryIndexed +GLAD_API_CALL PFNGLENDTRANSFORMFEEDBACKPROC glad_glEndTransformFeedback; +#define glEndTransformFeedback glad_glEndTransformFeedback +GLAD_API_CALL PFNGLEVALCOORD1XOESPROC glad_glEvalCoord1xOES; +#define glEvalCoord1xOES glad_glEvalCoord1xOES +GLAD_API_CALL PFNGLEVALCOORD1XVOESPROC glad_glEvalCoord1xvOES; +#define glEvalCoord1xvOES glad_glEvalCoord1xvOES +GLAD_API_CALL PFNGLEVALCOORD2XOESPROC glad_glEvalCoord2xOES; +#define glEvalCoord2xOES glad_glEvalCoord2xOES +GLAD_API_CALL PFNGLEVALCOORD2XVOESPROC glad_glEvalCoord2xvOES; +#define glEvalCoord2xvOES glad_glEvalCoord2xvOES +GLAD_API_CALL PFNGLEVALUATEDEPTHVALUESARBPROC glad_glEvaluateDepthValuesARB; +#define glEvaluateDepthValuesARB glad_glEvaluateDepthValuesARB +GLAD_API_CALL PFNGLFEEDBACKBUFFERXOESPROC glad_glFeedbackBufferxOES; +#define glFeedbackBufferxOES glad_glFeedbackBufferxOES +GLAD_API_CALL PFNGLFENCESYNCPROC glad_glFenceSync; +#define glFenceSync glad_glFenceSync +GLAD_API_CALL PFNGLFINISHPROC glad_glFinish; +#define glFinish glad_glFinish +GLAD_API_CALL PFNGLFLUSHPROC glad_glFlush; +#define glFlush glad_glFlush +GLAD_API_CALL PFNGLFLUSHMAPPEDBUFFERRANGEPROC glad_glFlushMappedBufferRange; +#define glFlushMappedBufferRange glad_glFlushMappedBufferRange +GLAD_API_CALL PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC glad_glFlushMappedNamedBufferRange; +#define glFlushMappedNamedBufferRange glad_glFlushMappedNamedBufferRange +GLAD_API_CALL PFNGLFOGCOORDPOINTEREXTPROC glad_glFogCoordPointerEXT; +#define glFogCoordPointerEXT glad_glFogCoordPointerEXT +GLAD_API_CALL PFNGLFOGCOORDDEXTPROC glad_glFogCoorddEXT; +#define glFogCoorddEXT glad_glFogCoorddEXT +GLAD_API_CALL PFNGLFOGCOORDDVEXTPROC glad_glFogCoorddvEXT; +#define glFogCoorddvEXT glad_glFogCoorddvEXT +GLAD_API_CALL PFNGLFOGCOORDFEXTPROC glad_glFogCoordfEXT; +#define glFogCoordfEXT glad_glFogCoordfEXT +GLAD_API_CALL PFNGLFOGCOORDFVEXTPROC glad_glFogCoordfvEXT; +#define glFogCoordfvEXT glad_glFogCoordfvEXT +GLAD_API_CALL PFNGLFOGXOESPROC glad_glFogxOES; +#define glFogxOES glad_glFogxOES +GLAD_API_CALL PFNGLFOGXVOESPROC glad_glFogxvOES; +#define glFogxvOES glad_glFogxvOES +GLAD_API_CALL PFNGLFRAMEBUFFERPARAMETERIPROC glad_glFramebufferParameteri; +#define glFramebufferParameteri glad_glFramebufferParameteri +GLAD_API_CALL PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_glFramebufferRenderbuffer; +#define glFramebufferRenderbuffer glad_glFramebufferRenderbuffer +GLAD_API_CALL PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC glad_glFramebufferRenderbufferEXT; +#define glFramebufferRenderbufferEXT glad_glFramebufferRenderbufferEXT +GLAD_API_CALL PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC glad_glFramebufferSampleLocationsfvARB; +#define glFramebufferSampleLocationsfvARB glad_glFramebufferSampleLocationsfvARB +GLAD_API_CALL PFNGLFRAMEBUFFERTEXTUREPROC glad_glFramebufferTexture; +#define glFramebufferTexture glad_glFramebufferTexture +GLAD_API_CALL PFNGLFRAMEBUFFERTEXTURE1DPROC glad_glFramebufferTexture1D; +#define glFramebufferTexture1D glad_glFramebufferTexture1D +GLAD_API_CALL PFNGLFRAMEBUFFERTEXTURE1DEXTPROC glad_glFramebufferTexture1DEXT; +#define glFramebufferTexture1DEXT glad_glFramebufferTexture1DEXT +GLAD_API_CALL PFNGLFRAMEBUFFERTEXTURE2DPROC glad_glFramebufferTexture2D; +#define glFramebufferTexture2D glad_glFramebufferTexture2D +GLAD_API_CALL PFNGLFRAMEBUFFERTEXTURE2DEXTPROC glad_glFramebufferTexture2DEXT; +#define glFramebufferTexture2DEXT glad_glFramebufferTexture2DEXT +GLAD_API_CALL PFNGLFRAMEBUFFERTEXTURE3DPROC glad_glFramebufferTexture3D; +#define glFramebufferTexture3D glad_glFramebufferTexture3D +GLAD_API_CALL PFNGLFRAMEBUFFERTEXTURE3DEXTPROC glad_glFramebufferTexture3DEXT; +#define glFramebufferTexture3DEXT glad_glFramebufferTexture3DEXT +GLAD_API_CALL PFNGLFRAMEBUFFERTEXTUREARBPROC glad_glFramebufferTextureARB; +#define glFramebufferTextureARB glad_glFramebufferTextureARB +GLAD_API_CALL PFNGLFRAMEBUFFERTEXTUREFACEARBPROC glad_glFramebufferTextureFaceARB; +#define glFramebufferTextureFaceARB glad_glFramebufferTextureFaceARB +GLAD_API_CALL PFNGLFRAMEBUFFERTEXTURELAYERPROC glad_glFramebufferTextureLayer; +#define glFramebufferTextureLayer glad_glFramebufferTextureLayer +GLAD_API_CALL PFNGLFRAMEBUFFERTEXTURELAYERARBPROC glad_glFramebufferTextureLayerARB; +#define glFramebufferTextureLayerARB glad_glFramebufferTextureLayerARB +GLAD_API_CALL PFNGLFRONTFACEPROC glad_glFrontFace; +#define glFrontFace glad_glFrontFace +GLAD_API_CALL PFNGLFRUSTUMXOESPROC glad_glFrustumxOES; +#define glFrustumxOES glad_glFrustumxOES +GLAD_API_CALL PFNGLGENBUFFERSPROC glad_glGenBuffers; +#define glGenBuffers glad_glGenBuffers +GLAD_API_CALL PFNGLGENBUFFERSARBPROC glad_glGenBuffersARB; +#define glGenBuffersARB glad_glGenBuffersARB +GLAD_API_CALL PFNGLGENFRAMEBUFFERSPROC glad_glGenFramebuffers; +#define glGenFramebuffers glad_glGenFramebuffers +GLAD_API_CALL PFNGLGENFRAMEBUFFERSEXTPROC glad_glGenFramebuffersEXT; +#define glGenFramebuffersEXT glad_glGenFramebuffersEXT +GLAD_API_CALL PFNGLGENPROGRAMPIPELINESPROC glad_glGenProgramPipelines; +#define glGenProgramPipelines glad_glGenProgramPipelines +GLAD_API_CALL PFNGLGENPROGRAMSARBPROC glad_glGenProgramsARB; +#define glGenProgramsARB glad_glGenProgramsARB +GLAD_API_CALL PFNGLGENQUERIESPROC glad_glGenQueries; +#define glGenQueries glad_glGenQueries +GLAD_API_CALL PFNGLGENQUERIESARBPROC glad_glGenQueriesARB; +#define glGenQueriesARB glad_glGenQueriesARB +GLAD_API_CALL PFNGLGENRENDERBUFFERSPROC glad_glGenRenderbuffers; +#define glGenRenderbuffers glad_glGenRenderbuffers +GLAD_API_CALL PFNGLGENRENDERBUFFERSEXTPROC glad_glGenRenderbuffersEXT; +#define glGenRenderbuffersEXT glad_glGenRenderbuffersEXT +GLAD_API_CALL PFNGLGENSAMPLERSPROC glad_glGenSamplers; +#define glGenSamplers glad_glGenSamplers +GLAD_API_CALL PFNGLGENTEXTURESPROC glad_glGenTextures; +#define glGenTextures glad_glGenTextures +GLAD_API_CALL PFNGLGENTRANSFORMFEEDBACKSPROC glad_glGenTransformFeedbacks; +#define glGenTransformFeedbacks glad_glGenTransformFeedbacks +GLAD_API_CALL PFNGLGENVERTEXARRAYSPROC glad_glGenVertexArrays; +#define glGenVertexArrays glad_glGenVertexArrays +GLAD_API_CALL PFNGLGENERATEMIPMAPPROC glad_glGenerateMipmap; +#define glGenerateMipmap glad_glGenerateMipmap +GLAD_API_CALL PFNGLGENERATEMIPMAPEXTPROC glad_glGenerateMipmapEXT; +#define glGenerateMipmapEXT glad_glGenerateMipmapEXT +GLAD_API_CALL PFNGLGENERATETEXTUREMIPMAPPROC glad_glGenerateTextureMipmap; +#define glGenerateTextureMipmap glad_glGenerateTextureMipmap +GLAD_API_CALL PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC glad_glGetActiveAtomicCounterBufferiv; +#define glGetActiveAtomicCounterBufferiv glad_glGetActiveAtomicCounterBufferiv +GLAD_API_CALL PFNGLGETACTIVEATTRIBPROC glad_glGetActiveAttrib; +#define glGetActiveAttrib glad_glGetActiveAttrib +GLAD_API_CALL PFNGLGETACTIVEATTRIBARBPROC glad_glGetActiveAttribARB; +#define glGetActiveAttribARB glad_glGetActiveAttribARB +GLAD_API_CALL PFNGLGETACTIVESUBROUTINENAMEPROC glad_glGetActiveSubroutineName; +#define glGetActiveSubroutineName glad_glGetActiveSubroutineName +GLAD_API_CALL PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC glad_glGetActiveSubroutineUniformName; +#define glGetActiveSubroutineUniformName glad_glGetActiveSubroutineUniformName +GLAD_API_CALL PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC glad_glGetActiveSubroutineUniformiv; +#define glGetActiveSubroutineUniformiv glad_glGetActiveSubroutineUniformiv +GLAD_API_CALL PFNGLGETACTIVEUNIFORMPROC glad_glGetActiveUniform; +#define glGetActiveUniform glad_glGetActiveUniform +GLAD_API_CALL PFNGLGETACTIVEUNIFORMARBPROC glad_glGetActiveUniformARB; +#define glGetActiveUniformARB glad_glGetActiveUniformARB +GLAD_API_CALL PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glad_glGetActiveUniformBlockName; +#define glGetActiveUniformBlockName glad_glGetActiveUniformBlockName +GLAD_API_CALL PFNGLGETACTIVEUNIFORMBLOCKIVPROC glad_glGetActiveUniformBlockiv; +#define glGetActiveUniformBlockiv glad_glGetActiveUniformBlockiv +GLAD_API_CALL PFNGLGETACTIVEUNIFORMNAMEPROC glad_glGetActiveUniformName; +#define glGetActiveUniformName glad_glGetActiveUniformName +GLAD_API_CALL PFNGLGETACTIVEUNIFORMSIVPROC glad_glGetActiveUniformsiv; +#define glGetActiveUniformsiv glad_glGetActiveUniformsiv +GLAD_API_CALL PFNGLGETATTACHEDOBJECTSARBPROC glad_glGetAttachedObjectsARB; +#define glGetAttachedObjectsARB glad_glGetAttachedObjectsARB +GLAD_API_CALL PFNGLGETATTACHEDSHADERSPROC glad_glGetAttachedShaders; +#define glGetAttachedShaders glad_glGetAttachedShaders +GLAD_API_CALL PFNGLGETATTRIBLOCATIONPROC glad_glGetAttribLocation; +#define glGetAttribLocation glad_glGetAttribLocation +GLAD_API_CALL PFNGLGETATTRIBLOCATIONARBPROC glad_glGetAttribLocationARB; +#define glGetAttribLocationARB glad_glGetAttribLocationARB +GLAD_API_CALL PFNGLGETBOOLEANI_VPROC glad_glGetBooleani_v; +#define glGetBooleani_v glad_glGetBooleani_v +GLAD_API_CALL PFNGLGETBOOLEANVPROC glad_glGetBooleanv; +#define glGetBooleanv glad_glGetBooleanv +GLAD_API_CALL PFNGLGETBUFFERPARAMETERI64VPROC glad_glGetBufferParameteri64v; +#define glGetBufferParameteri64v glad_glGetBufferParameteri64v +GLAD_API_CALL PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv; +#define glGetBufferParameteriv glad_glGetBufferParameteriv +GLAD_API_CALL PFNGLGETBUFFERPARAMETERIVARBPROC glad_glGetBufferParameterivARB; +#define glGetBufferParameterivARB glad_glGetBufferParameterivARB +GLAD_API_CALL PFNGLGETBUFFERPOINTERVPROC glad_glGetBufferPointerv; +#define glGetBufferPointerv glad_glGetBufferPointerv +GLAD_API_CALL PFNGLGETBUFFERPOINTERVARBPROC glad_glGetBufferPointervARB; +#define glGetBufferPointervARB glad_glGetBufferPointervARB +GLAD_API_CALL PFNGLGETBUFFERSUBDATAPROC glad_glGetBufferSubData; +#define glGetBufferSubData glad_glGetBufferSubData +GLAD_API_CALL PFNGLGETBUFFERSUBDATAARBPROC glad_glGetBufferSubDataARB; +#define glGetBufferSubDataARB glad_glGetBufferSubDataARB +GLAD_API_CALL PFNGLGETCLIPPLANEXOESPROC glad_glGetClipPlanexOES; +#define glGetClipPlanexOES glad_glGetClipPlanexOES +GLAD_API_CALL PFNGLGETCOMPRESSEDTEXIMAGEPROC glad_glGetCompressedTexImage; +#define glGetCompressedTexImage glad_glGetCompressedTexImage +GLAD_API_CALL PFNGLGETCOMPRESSEDTEXIMAGEARBPROC glad_glGetCompressedTexImageARB; +#define glGetCompressedTexImageARB glad_glGetCompressedTexImageARB +GLAD_API_CALL PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC glad_glGetCompressedTextureImage; +#define glGetCompressedTextureImage glad_glGetCompressedTextureImage +GLAD_API_CALL PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC glad_glGetCompressedTextureSubImage; +#define glGetCompressedTextureSubImage glad_glGetCompressedTextureSubImage +GLAD_API_CALL PFNGLGETCONVOLUTIONPARAMETERXVOESPROC glad_glGetConvolutionParameterxvOES; +#define glGetConvolutionParameterxvOES glad_glGetConvolutionParameterxvOES +GLAD_API_CALL PFNGLGETDEBUGMESSAGELOGPROC glad_glGetDebugMessageLog; +#define glGetDebugMessageLog glad_glGetDebugMessageLog +GLAD_API_CALL PFNGLGETDEBUGMESSAGELOGARBPROC glad_glGetDebugMessageLogARB; +#define glGetDebugMessageLogARB glad_glGetDebugMessageLogARB +GLAD_API_CALL PFNGLGETDOUBLEI_VPROC glad_glGetDoublei_v; +#define glGetDoublei_v glad_glGetDoublei_v +GLAD_API_CALL PFNGLGETDOUBLEVPROC glad_glGetDoublev; +#define glGetDoublev glad_glGetDoublev +GLAD_API_CALL PFNGLGETERRORPROC glad_glGetError; +#define glGetError glad_glGetError +GLAD_API_CALL PFNGLGETFIXEDVOESPROC glad_glGetFixedvOES; +#define glGetFixedvOES glad_glGetFixedvOES +GLAD_API_CALL PFNGLGETFLOATI_VPROC glad_glGetFloati_v; +#define glGetFloati_v glad_glGetFloati_v +GLAD_API_CALL PFNGLGETFLOATVPROC glad_glGetFloatv; +#define glGetFloatv glad_glGetFloatv +GLAD_API_CALL PFNGLGETFRAGDATAINDEXPROC glad_glGetFragDataIndex; +#define glGetFragDataIndex glad_glGetFragDataIndex +GLAD_API_CALL PFNGLGETFRAGDATALOCATIONPROC glad_glGetFragDataLocation; +#define glGetFragDataLocation glad_glGetFragDataLocation +GLAD_API_CALL PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetFramebufferAttachmentParameteriv; +#define glGetFramebufferAttachmentParameteriv glad_glGetFramebufferAttachmentParameteriv +GLAD_API_CALL PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC glad_glGetFramebufferAttachmentParameterivEXT; +#define glGetFramebufferAttachmentParameterivEXT glad_glGetFramebufferAttachmentParameterivEXT +GLAD_API_CALL PFNGLGETFRAMEBUFFERPARAMETERIVPROC glad_glGetFramebufferParameteriv; +#define glGetFramebufferParameteriv glad_glGetFramebufferParameteriv +GLAD_API_CALL PFNGLGETHANDLEARBPROC glad_glGetHandleARB; +#define glGetHandleARB glad_glGetHandleARB +GLAD_API_CALL PFNGLGETHISTOGRAMPARAMETERXVOESPROC glad_glGetHistogramParameterxvOES; +#define glGetHistogramParameterxvOES glad_glGetHistogramParameterxvOES +GLAD_API_CALL PFNGLGETINFOLOGARBPROC glad_glGetInfoLogARB; +#define glGetInfoLogARB glad_glGetInfoLogARB +GLAD_API_CALL PFNGLGETINTEGER64I_VPROC glad_glGetInteger64i_v; +#define glGetInteger64i_v glad_glGetInteger64i_v +GLAD_API_CALL PFNGLGETINTEGER64VPROC glad_glGetInteger64v; +#define glGetInteger64v glad_glGetInteger64v +GLAD_API_CALL PFNGLGETINTEGERI_VPROC glad_glGetIntegeri_v; +#define glGetIntegeri_v glad_glGetIntegeri_v +GLAD_API_CALL PFNGLGETINTEGERVPROC glad_glGetIntegerv; +#define glGetIntegerv glad_glGetIntegerv +GLAD_API_CALL PFNGLGETINTERNALFORMATI64VPROC glad_glGetInternalformati64v; +#define glGetInternalformati64v glad_glGetInternalformati64v +GLAD_API_CALL PFNGLGETINTERNALFORMATIVPROC glad_glGetInternalformativ; +#define glGetInternalformativ glad_glGetInternalformativ +GLAD_API_CALL PFNGLGETLIGHTXOESPROC glad_glGetLightxOES; +#define glGetLightxOES glad_glGetLightxOES +GLAD_API_CALL PFNGLGETMAPXVOESPROC glad_glGetMapxvOES; +#define glGetMapxvOES glad_glGetMapxvOES +GLAD_API_CALL PFNGLGETMATERIALXOESPROC glad_glGetMaterialxOES; +#define glGetMaterialxOES glad_glGetMaterialxOES +GLAD_API_CALL PFNGLGETMULTISAMPLEFVPROC glad_glGetMultisamplefv; +#define glGetMultisamplefv glad_glGetMultisamplefv +GLAD_API_CALL PFNGLGETNAMEDBUFFERPARAMETERI64VPROC glad_glGetNamedBufferParameteri64v; +#define glGetNamedBufferParameteri64v glad_glGetNamedBufferParameteri64v +GLAD_API_CALL PFNGLGETNAMEDBUFFERPARAMETERIVPROC glad_glGetNamedBufferParameteriv; +#define glGetNamedBufferParameteriv glad_glGetNamedBufferParameteriv +GLAD_API_CALL PFNGLGETNAMEDBUFFERPOINTERVPROC glad_glGetNamedBufferPointerv; +#define glGetNamedBufferPointerv glad_glGetNamedBufferPointerv +GLAD_API_CALL PFNGLGETNAMEDBUFFERSUBDATAPROC glad_glGetNamedBufferSubData; +#define glGetNamedBufferSubData glad_glGetNamedBufferSubData +GLAD_API_CALL PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetNamedFramebufferAttachmentParameteriv; +#define glGetNamedFramebufferAttachmentParameteriv glad_glGetNamedFramebufferAttachmentParameteriv +GLAD_API_CALL PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC glad_glGetNamedFramebufferParameteriv; +#define glGetNamedFramebufferParameteriv glad_glGetNamedFramebufferParameteriv +GLAD_API_CALL PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC glad_glGetNamedRenderbufferParameteriv; +#define glGetNamedRenderbufferParameteriv glad_glGetNamedRenderbufferParameteriv +GLAD_API_CALL PFNGLGETNAMEDSTRINGARBPROC glad_glGetNamedStringARB; +#define glGetNamedStringARB glad_glGetNamedStringARB +GLAD_API_CALL PFNGLGETNAMEDSTRINGIVARBPROC glad_glGetNamedStringivARB; +#define glGetNamedStringivARB glad_glGetNamedStringivARB +GLAD_API_CALL PFNGLGETOBJECTLABELPROC glad_glGetObjectLabel; +#define glGetObjectLabel glad_glGetObjectLabel +GLAD_API_CALL PFNGLGETOBJECTPARAMETERFVARBPROC glad_glGetObjectParameterfvARB; +#define glGetObjectParameterfvARB glad_glGetObjectParameterfvARB +GLAD_API_CALL PFNGLGETOBJECTPARAMETERIVARBPROC glad_glGetObjectParameterivARB; +#define glGetObjectParameterivARB glad_glGetObjectParameterivARB +GLAD_API_CALL PFNGLGETOBJECTPTRLABELPROC glad_glGetObjectPtrLabel; +#define glGetObjectPtrLabel glad_glGetObjectPtrLabel +GLAD_API_CALL PFNGLGETPIXELMAPXVPROC glad_glGetPixelMapxv; +#define glGetPixelMapxv glad_glGetPixelMapxv +GLAD_API_CALL PFNGLGETPOINTERVPROC glad_glGetPointerv; +#define glGetPointerv glad_glGetPointerv +GLAD_API_CALL PFNGLGETPROGRAMBINARYPROC glad_glGetProgramBinary; +#define glGetProgramBinary glad_glGetProgramBinary +GLAD_API_CALL PFNGLGETPROGRAMENVPARAMETERDVARBPROC glad_glGetProgramEnvParameterdvARB; +#define glGetProgramEnvParameterdvARB glad_glGetProgramEnvParameterdvARB +GLAD_API_CALL PFNGLGETPROGRAMENVPARAMETERFVARBPROC glad_glGetProgramEnvParameterfvARB; +#define glGetProgramEnvParameterfvARB glad_glGetProgramEnvParameterfvARB +GLAD_API_CALL PFNGLGETPROGRAMINFOLOGPROC glad_glGetProgramInfoLog; +#define glGetProgramInfoLog glad_glGetProgramInfoLog +GLAD_API_CALL PFNGLGETPROGRAMINTERFACEIVPROC glad_glGetProgramInterfaceiv; +#define glGetProgramInterfaceiv glad_glGetProgramInterfaceiv +GLAD_API_CALL PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC glad_glGetProgramLocalParameterdvARB; +#define glGetProgramLocalParameterdvARB glad_glGetProgramLocalParameterdvARB +GLAD_API_CALL PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC glad_glGetProgramLocalParameterfvARB; +#define glGetProgramLocalParameterfvARB glad_glGetProgramLocalParameterfvARB +GLAD_API_CALL PFNGLGETPROGRAMPIPELINEINFOLOGPROC glad_glGetProgramPipelineInfoLog; +#define glGetProgramPipelineInfoLog glad_glGetProgramPipelineInfoLog +GLAD_API_CALL PFNGLGETPROGRAMPIPELINEIVPROC glad_glGetProgramPipelineiv; +#define glGetProgramPipelineiv glad_glGetProgramPipelineiv +GLAD_API_CALL PFNGLGETPROGRAMRESOURCEINDEXPROC glad_glGetProgramResourceIndex; +#define glGetProgramResourceIndex glad_glGetProgramResourceIndex +GLAD_API_CALL PFNGLGETPROGRAMRESOURCELOCATIONPROC glad_glGetProgramResourceLocation; +#define glGetProgramResourceLocation glad_glGetProgramResourceLocation +GLAD_API_CALL PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC glad_glGetProgramResourceLocationIndex; +#define glGetProgramResourceLocationIndex glad_glGetProgramResourceLocationIndex +GLAD_API_CALL PFNGLGETPROGRAMRESOURCENAMEPROC glad_glGetProgramResourceName; +#define glGetProgramResourceName glad_glGetProgramResourceName +GLAD_API_CALL PFNGLGETPROGRAMRESOURCEIVPROC glad_glGetProgramResourceiv; +#define glGetProgramResourceiv glad_glGetProgramResourceiv +GLAD_API_CALL PFNGLGETPROGRAMSTAGEIVPROC glad_glGetProgramStageiv; +#define glGetProgramStageiv glad_glGetProgramStageiv +GLAD_API_CALL PFNGLGETPROGRAMSTRINGARBPROC glad_glGetProgramStringARB; +#define glGetProgramStringARB glad_glGetProgramStringARB +GLAD_API_CALL PFNGLGETPROGRAMIVPROC glad_glGetProgramiv; +#define glGetProgramiv glad_glGetProgramiv +GLAD_API_CALL PFNGLGETPROGRAMIVARBPROC glad_glGetProgramivARB; +#define glGetProgramivARB glad_glGetProgramivARB +GLAD_API_CALL PFNGLGETQUERYBUFFEROBJECTI64VPROC glad_glGetQueryBufferObjecti64v; +#define glGetQueryBufferObjecti64v glad_glGetQueryBufferObjecti64v +GLAD_API_CALL PFNGLGETQUERYBUFFEROBJECTIVPROC glad_glGetQueryBufferObjectiv; +#define glGetQueryBufferObjectiv glad_glGetQueryBufferObjectiv +GLAD_API_CALL PFNGLGETQUERYBUFFEROBJECTUI64VPROC glad_glGetQueryBufferObjectui64v; +#define glGetQueryBufferObjectui64v glad_glGetQueryBufferObjectui64v +GLAD_API_CALL PFNGLGETQUERYBUFFEROBJECTUIVPROC glad_glGetQueryBufferObjectuiv; +#define glGetQueryBufferObjectuiv glad_glGetQueryBufferObjectuiv +GLAD_API_CALL PFNGLGETQUERYINDEXEDIVPROC glad_glGetQueryIndexediv; +#define glGetQueryIndexediv glad_glGetQueryIndexediv +GLAD_API_CALL PFNGLGETQUERYOBJECTI64VPROC glad_glGetQueryObjecti64v; +#define glGetQueryObjecti64v glad_glGetQueryObjecti64v +GLAD_API_CALL PFNGLGETQUERYOBJECTIVPROC glad_glGetQueryObjectiv; +#define glGetQueryObjectiv glad_glGetQueryObjectiv +GLAD_API_CALL PFNGLGETQUERYOBJECTIVARBPROC glad_glGetQueryObjectivARB; +#define glGetQueryObjectivARB glad_glGetQueryObjectivARB +GLAD_API_CALL PFNGLGETQUERYOBJECTUI64VPROC glad_glGetQueryObjectui64v; +#define glGetQueryObjectui64v glad_glGetQueryObjectui64v +GLAD_API_CALL PFNGLGETQUERYOBJECTUIVPROC glad_glGetQueryObjectuiv; +#define glGetQueryObjectuiv glad_glGetQueryObjectuiv +GLAD_API_CALL PFNGLGETQUERYOBJECTUIVARBPROC glad_glGetQueryObjectuivARB; +#define glGetQueryObjectuivARB glad_glGetQueryObjectuivARB +GLAD_API_CALL PFNGLGETQUERYIVPROC glad_glGetQueryiv; +#define glGetQueryiv glad_glGetQueryiv +GLAD_API_CALL PFNGLGETQUERYIVARBPROC glad_glGetQueryivARB; +#define glGetQueryivARB glad_glGetQueryivARB +GLAD_API_CALL PFNGLGETRENDERBUFFERPARAMETERIVPROC glad_glGetRenderbufferParameteriv; +#define glGetRenderbufferParameteriv glad_glGetRenderbufferParameteriv +GLAD_API_CALL PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC glad_glGetRenderbufferParameterivEXT; +#define glGetRenderbufferParameterivEXT glad_glGetRenderbufferParameterivEXT +GLAD_API_CALL PFNGLGETSAMPLERPARAMETERIIVPROC glad_glGetSamplerParameterIiv; +#define glGetSamplerParameterIiv glad_glGetSamplerParameterIiv +GLAD_API_CALL PFNGLGETSAMPLERPARAMETERIUIVPROC glad_glGetSamplerParameterIuiv; +#define glGetSamplerParameterIuiv glad_glGetSamplerParameterIuiv +GLAD_API_CALL PFNGLGETSAMPLERPARAMETERFVPROC glad_glGetSamplerParameterfv; +#define glGetSamplerParameterfv glad_glGetSamplerParameterfv +GLAD_API_CALL PFNGLGETSAMPLERPARAMETERIVPROC glad_glGetSamplerParameteriv; +#define glGetSamplerParameteriv glad_glGetSamplerParameteriv +GLAD_API_CALL PFNGLGETSHADERINFOLOGPROC glad_glGetShaderInfoLog; +#define glGetShaderInfoLog glad_glGetShaderInfoLog +GLAD_API_CALL PFNGLGETSHADERPRECISIONFORMATPROC glad_glGetShaderPrecisionFormat; +#define glGetShaderPrecisionFormat glad_glGetShaderPrecisionFormat +GLAD_API_CALL PFNGLGETSHADERSOURCEPROC glad_glGetShaderSource; +#define glGetShaderSource glad_glGetShaderSource +GLAD_API_CALL PFNGLGETSHADERSOURCEARBPROC glad_glGetShaderSourceARB; +#define glGetShaderSourceARB glad_glGetShaderSourceARB +GLAD_API_CALL PFNGLGETSHADERIVPROC glad_glGetShaderiv; +#define glGetShaderiv glad_glGetShaderiv +GLAD_API_CALL PFNGLGETSTRINGPROC glad_glGetString; +#define glGetString glad_glGetString +GLAD_API_CALL PFNGLGETSTRINGIPROC glad_glGetStringi; +#define glGetStringi glad_glGetStringi +GLAD_API_CALL PFNGLGETSUBROUTINEINDEXPROC glad_glGetSubroutineIndex; +#define glGetSubroutineIndex glad_glGetSubroutineIndex +GLAD_API_CALL PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC glad_glGetSubroutineUniformLocation; +#define glGetSubroutineUniformLocation glad_glGetSubroutineUniformLocation +GLAD_API_CALL PFNGLGETSYNCIVPROC glad_glGetSynciv; +#define glGetSynciv glad_glGetSynciv +GLAD_API_CALL PFNGLGETTEXENVXVOESPROC glad_glGetTexEnvxvOES; +#define glGetTexEnvxvOES glad_glGetTexEnvxvOES +GLAD_API_CALL PFNGLGETTEXGENXVOESPROC glad_glGetTexGenxvOES; +#define glGetTexGenxvOES glad_glGetTexGenxvOES +GLAD_API_CALL PFNGLGETTEXIMAGEPROC glad_glGetTexImage; +#define glGetTexImage glad_glGetTexImage +GLAD_API_CALL PFNGLGETTEXLEVELPARAMETERFVPROC glad_glGetTexLevelParameterfv; +#define glGetTexLevelParameterfv glad_glGetTexLevelParameterfv +GLAD_API_CALL PFNGLGETTEXLEVELPARAMETERIVPROC glad_glGetTexLevelParameteriv; +#define glGetTexLevelParameteriv glad_glGetTexLevelParameteriv +GLAD_API_CALL PFNGLGETTEXLEVELPARAMETERXVOESPROC glad_glGetTexLevelParameterxvOES; +#define glGetTexLevelParameterxvOES glad_glGetTexLevelParameterxvOES +GLAD_API_CALL PFNGLGETTEXPARAMETERIIVPROC glad_glGetTexParameterIiv; +#define glGetTexParameterIiv glad_glGetTexParameterIiv +GLAD_API_CALL PFNGLGETTEXPARAMETERIUIVPROC glad_glGetTexParameterIuiv; +#define glGetTexParameterIuiv glad_glGetTexParameterIuiv +GLAD_API_CALL PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv; +#define glGetTexParameterfv glad_glGetTexParameterfv +GLAD_API_CALL PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv; +#define glGetTexParameteriv glad_glGetTexParameteriv +GLAD_API_CALL PFNGLGETTEXPARAMETERXVOESPROC glad_glGetTexParameterxvOES; +#define glGetTexParameterxvOES glad_glGetTexParameterxvOES +GLAD_API_CALL PFNGLGETTEXTUREIMAGEPROC glad_glGetTextureImage; +#define glGetTextureImage glad_glGetTextureImage +GLAD_API_CALL PFNGLGETTEXTURELEVELPARAMETERFVPROC glad_glGetTextureLevelParameterfv; +#define glGetTextureLevelParameterfv glad_glGetTextureLevelParameterfv +GLAD_API_CALL PFNGLGETTEXTURELEVELPARAMETERIVPROC glad_glGetTextureLevelParameteriv; +#define glGetTextureLevelParameteriv glad_glGetTextureLevelParameteriv +GLAD_API_CALL PFNGLGETTEXTUREPARAMETERIIVPROC glad_glGetTextureParameterIiv; +#define glGetTextureParameterIiv glad_glGetTextureParameterIiv +GLAD_API_CALL PFNGLGETTEXTUREPARAMETERIUIVPROC glad_glGetTextureParameterIuiv; +#define glGetTextureParameterIuiv glad_glGetTextureParameterIuiv +GLAD_API_CALL PFNGLGETTEXTUREPARAMETERFVPROC glad_glGetTextureParameterfv; +#define glGetTextureParameterfv glad_glGetTextureParameterfv +GLAD_API_CALL PFNGLGETTEXTUREPARAMETERIVPROC glad_glGetTextureParameteriv; +#define glGetTextureParameteriv glad_glGetTextureParameteriv +GLAD_API_CALL PFNGLGETTEXTURESUBIMAGEPROC glad_glGetTextureSubImage; +#define glGetTextureSubImage glad_glGetTextureSubImage +GLAD_API_CALL PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glad_glGetTransformFeedbackVarying; +#define glGetTransformFeedbackVarying glad_glGetTransformFeedbackVarying +GLAD_API_CALL PFNGLGETTRANSFORMFEEDBACKI64_VPROC glad_glGetTransformFeedbacki64_v; +#define glGetTransformFeedbacki64_v glad_glGetTransformFeedbacki64_v +GLAD_API_CALL PFNGLGETTRANSFORMFEEDBACKI_VPROC glad_glGetTransformFeedbacki_v; +#define glGetTransformFeedbacki_v glad_glGetTransformFeedbacki_v +GLAD_API_CALL PFNGLGETTRANSFORMFEEDBACKIVPROC glad_glGetTransformFeedbackiv; +#define glGetTransformFeedbackiv glad_glGetTransformFeedbackiv +GLAD_API_CALL PFNGLGETUNIFORMBLOCKINDEXPROC glad_glGetUniformBlockIndex; +#define glGetUniformBlockIndex glad_glGetUniformBlockIndex +GLAD_API_CALL PFNGLGETUNIFORMINDICESPROC glad_glGetUniformIndices; +#define glGetUniformIndices glad_glGetUniformIndices +GLAD_API_CALL PFNGLGETUNIFORMLOCATIONPROC glad_glGetUniformLocation; +#define glGetUniformLocation glad_glGetUniformLocation +GLAD_API_CALL PFNGLGETUNIFORMLOCATIONARBPROC glad_glGetUniformLocationARB; +#define glGetUniformLocationARB glad_glGetUniformLocationARB +GLAD_API_CALL PFNGLGETUNIFORMSUBROUTINEUIVPROC glad_glGetUniformSubroutineuiv; +#define glGetUniformSubroutineuiv glad_glGetUniformSubroutineuiv +GLAD_API_CALL PFNGLGETUNIFORMDVPROC glad_glGetUniformdv; +#define glGetUniformdv glad_glGetUniformdv +GLAD_API_CALL PFNGLGETUNIFORMFVPROC glad_glGetUniformfv; +#define glGetUniformfv glad_glGetUniformfv +GLAD_API_CALL PFNGLGETUNIFORMFVARBPROC glad_glGetUniformfvARB; +#define glGetUniformfvARB glad_glGetUniformfvARB +GLAD_API_CALL PFNGLGETUNIFORMI64VARBPROC glad_glGetUniformi64vARB; +#define glGetUniformi64vARB glad_glGetUniformi64vARB +GLAD_API_CALL PFNGLGETUNIFORMIVPROC glad_glGetUniformiv; +#define glGetUniformiv glad_glGetUniformiv +GLAD_API_CALL PFNGLGETUNIFORMIVARBPROC glad_glGetUniformivARB; +#define glGetUniformivARB glad_glGetUniformivARB +GLAD_API_CALL PFNGLGETUNIFORMUI64VARBPROC glad_glGetUniformui64vARB; +#define glGetUniformui64vARB glad_glGetUniformui64vARB +GLAD_API_CALL PFNGLGETUNIFORMUIVPROC glad_glGetUniformuiv; +#define glGetUniformuiv glad_glGetUniformuiv +GLAD_API_CALL PFNGLGETVERTEXARRAYINDEXED64IVPROC glad_glGetVertexArrayIndexed64iv; +#define glGetVertexArrayIndexed64iv glad_glGetVertexArrayIndexed64iv +GLAD_API_CALL PFNGLGETVERTEXARRAYINDEXEDIVPROC glad_glGetVertexArrayIndexediv; +#define glGetVertexArrayIndexediv glad_glGetVertexArrayIndexediv +GLAD_API_CALL PFNGLGETVERTEXARRAYIVPROC glad_glGetVertexArrayiv; +#define glGetVertexArrayiv glad_glGetVertexArrayiv +GLAD_API_CALL PFNGLGETVERTEXATTRIBIIVPROC glad_glGetVertexAttribIiv; +#define glGetVertexAttribIiv glad_glGetVertexAttribIiv +GLAD_API_CALL PFNGLGETVERTEXATTRIBIUIVPROC glad_glGetVertexAttribIuiv; +#define glGetVertexAttribIuiv glad_glGetVertexAttribIuiv +GLAD_API_CALL PFNGLGETVERTEXATTRIBLDVPROC glad_glGetVertexAttribLdv; +#define glGetVertexAttribLdv glad_glGetVertexAttribLdv +GLAD_API_CALL PFNGLGETVERTEXATTRIBPOINTERVPROC glad_glGetVertexAttribPointerv; +#define glGetVertexAttribPointerv glad_glGetVertexAttribPointerv +GLAD_API_CALL PFNGLGETVERTEXATTRIBPOINTERVARBPROC glad_glGetVertexAttribPointervARB; +#define glGetVertexAttribPointervARB glad_glGetVertexAttribPointervARB +GLAD_API_CALL PFNGLGETVERTEXATTRIBDVPROC glad_glGetVertexAttribdv; +#define glGetVertexAttribdv glad_glGetVertexAttribdv +GLAD_API_CALL PFNGLGETVERTEXATTRIBDVARBPROC glad_glGetVertexAttribdvARB; +#define glGetVertexAttribdvARB glad_glGetVertexAttribdvARB +GLAD_API_CALL PFNGLGETVERTEXATTRIBFVPROC glad_glGetVertexAttribfv; +#define glGetVertexAttribfv glad_glGetVertexAttribfv +GLAD_API_CALL PFNGLGETVERTEXATTRIBFVARBPROC glad_glGetVertexAttribfvARB; +#define glGetVertexAttribfvARB glad_glGetVertexAttribfvARB +GLAD_API_CALL PFNGLGETVERTEXATTRIBIVPROC glad_glGetVertexAttribiv; +#define glGetVertexAttribiv glad_glGetVertexAttribiv +GLAD_API_CALL PFNGLGETVERTEXATTRIBIVARBPROC glad_glGetVertexAttribivARB; +#define glGetVertexAttribivARB glad_glGetVertexAttribivARB +GLAD_API_CALL PFNGLGETNUNIFORMI64VARBPROC glad_glGetnUniformi64vARB; +#define glGetnUniformi64vARB glad_glGetnUniformi64vARB +GLAD_API_CALL PFNGLGETNUNIFORMUI64VARBPROC glad_glGetnUniformui64vARB; +#define glGetnUniformui64vARB glad_glGetnUniformui64vARB +GLAD_API_CALL PFNGLHINTPROC glad_glHint; +#define glHint glad_glHint +GLAD_API_CALL PFNGLINDEXXOESPROC glad_glIndexxOES; +#define glIndexxOES glad_glIndexxOES +GLAD_API_CALL PFNGLINDEXXVOESPROC glad_glIndexxvOES; +#define glIndexxvOES glad_glIndexxvOES +GLAD_API_CALL PFNGLINVALIDATEBUFFERDATAPROC glad_glInvalidateBufferData; +#define glInvalidateBufferData glad_glInvalidateBufferData +GLAD_API_CALL PFNGLINVALIDATEBUFFERSUBDATAPROC glad_glInvalidateBufferSubData; +#define glInvalidateBufferSubData glad_glInvalidateBufferSubData +GLAD_API_CALL PFNGLINVALIDATEFRAMEBUFFERPROC glad_glInvalidateFramebuffer; +#define glInvalidateFramebuffer glad_glInvalidateFramebuffer +GLAD_API_CALL PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC glad_glInvalidateNamedFramebufferData; +#define glInvalidateNamedFramebufferData glad_glInvalidateNamedFramebufferData +GLAD_API_CALL PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC glad_glInvalidateNamedFramebufferSubData; +#define glInvalidateNamedFramebufferSubData glad_glInvalidateNamedFramebufferSubData +GLAD_API_CALL PFNGLINVALIDATESUBFRAMEBUFFERPROC glad_glInvalidateSubFramebuffer; +#define glInvalidateSubFramebuffer glad_glInvalidateSubFramebuffer +GLAD_API_CALL PFNGLINVALIDATETEXIMAGEPROC glad_glInvalidateTexImage; +#define glInvalidateTexImage glad_glInvalidateTexImage +GLAD_API_CALL PFNGLINVALIDATETEXSUBIMAGEPROC glad_glInvalidateTexSubImage; +#define glInvalidateTexSubImage glad_glInvalidateTexSubImage +GLAD_API_CALL PFNGLISBUFFERPROC glad_glIsBuffer; +#define glIsBuffer glad_glIsBuffer +GLAD_API_CALL PFNGLISBUFFERARBPROC glad_glIsBufferARB; +#define glIsBufferARB glad_glIsBufferARB +GLAD_API_CALL PFNGLISENABLEDPROC glad_glIsEnabled; +#define glIsEnabled glad_glIsEnabled +GLAD_API_CALL PFNGLISENABLEDIPROC glad_glIsEnabledi; +#define glIsEnabledi glad_glIsEnabledi +GLAD_API_CALL PFNGLISFRAMEBUFFERPROC glad_glIsFramebuffer; +#define glIsFramebuffer glad_glIsFramebuffer +GLAD_API_CALL PFNGLISFRAMEBUFFEREXTPROC glad_glIsFramebufferEXT; +#define glIsFramebufferEXT glad_glIsFramebufferEXT +GLAD_API_CALL PFNGLISNAMEDSTRINGARBPROC glad_glIsNamedStringARB; +#define glIsNamedStringARB glad_glIsNamedStringARB +GLAD_API_CALL PFNGLISPROGRAMPROC glad_glIsProgram; +#define glIsProgram glad_glIsProgram +GLAD_API_CALL PFNGLISPROGRAMARBPROC glad_glIsProgramARB; +#define glIsProgramARB glad_glIsProgramARB +GLAD_API_CALL PFNGLISPROGRAMPIPELINEPROC glad_glIsProgramPipeline; +#define glIsProgramPipeline glad_glIsProgramPipeline +GLAD_API_CALL PFNGLISQUERYPROC glad_glIsQuery; +#define glIsQuery glad_glIsQuery +GLAD_API_CALL PFNGLISQUERYARBPROC glad_glIsQueryARB; +#define glIsQueryARB glad_glIsQueryARB +GLAD_API_CALL PFNGLISRENDERBUFFERPROC glad_glIsRenderbuffer; +#define glIsRenderbuffer glad_glIsRenderbuffer +GLAD_API_CALL PFNGLISRENDERBUFFEREXTPROC glad_glIsRenderbufferEXT; +#define glIsRenderbufferEXT glad_glIsRenderbufferEXT +GLAD_API_CALL PFNGLISSAMPLERPROC glad_glIsSampler; +#define glIsSampler glad_glIsSampler +GLAD_API_CALL PFNGLISSHADERPROC glad_glIsShader; +#define glIsShader glad_glIsShader +GLAD_API_CALL PFNGLISSYNCPROC glad_glIsSync; +#define glIsSync glad_glIsSync +GLAD_API_CALL PFNGLISTEXTUREPROC glad_glIsTexture; +#define glIsTexture glad_glIsTexture +GLAD_API_CALL PFNGLISTRANSFORMFEEDBACKPROC glad_glIsTransformFeedback; +#define glIsTransformFeedback glad_glIsTransformFeedback +GLAD_API_CALL PFNGLISVERTEXARRAYPROC glad_glIsVertexArray; +#define glIsVertexArray glad_glIsVertexArray +GLAD_API_CALL PFNGLLIGHTMODELXOESPROC glad_glLightModelxOES; +#define glLightModelxOES glad_glLightModelxOES +GLAD_API_CALL PFNGLLIGHTMODELXVOESPROC glad_glLightModelxvOES; +#define glLightModelxvOES glad_glLightModelxvOES +GLAD_API_CALL PFNGLLIGHTXOESPROC glad_glLightxOES; +#define glLightxOES glad_glLightxOES +GLAD_API_CALL PFNGLLIGHTXVOESPROC glad_glLightxvOES; +#define glLightxvOES glad_glLightxvOES +GLAD_API_CALL PFNGLLINEWIDTHPROC glad_glLineWidth; +#define glLineWidth glad_glLineWidth +GLAD_API_CALL PFNGLLINEWIDTHXOESPROC glad_glLineWidthxOES; +#define glLineWidthxOES glad_glLineWidthxOES +GLAD_API_CALL PFNGLLINKPROGRAMPROC glad_glLinkProgram; +#define glLinkProgram glad_glLinkProgram +GLAD_API_CALL PFNGLLINKPROGRAMARBPROC glad_glLinkProgramARB; +#define glLinkProgramARB glad_glLinkProgramARB +GLAD_API_CALL PFNGLLOADMATRIXXOESPROC glad_glLoadMatrixxOES; +#define glLoadMatrixxOES glad_glLoadMatrixxOES +GLAD_API_CALL PFNGLLOADTRANSPOSEMATRIXDARBPROC glad_glLoadTransposeMatrixdARB; +#define glLoadTransposeMatrixdARB glad_glLoadTransposeMatrixdARB +GLAD_API_CALL PFNGLLOADTRANSPOSEMATRIXFARBPROC glad_glLoadTransposeMatrixfARB; +#define glLoadTransposeMatrixfARB glad_glLoadTransposeMatrixfARB +GLAD_API_CALL PFNGLLOADTRANSPOSEMATRIXXOESPROC glad_glLoadTransposeMatrixxOES; +#define glLoadTransposeMatrixxOES glad_glLoadTransposeMatrixxOES +GLAD_API_CALL PFNGLLOGICOPPROC glad_glLogicOp; +#define glLogicOp glad_glLogicOp +GLAD_API_CALL PFNGLMAP1XOESPROC glad_glMap1xOES; +#define glMap1xOES glad_glMap1xOES +GLAD_API_CALL PFNGLMAP2XOESPROC glad_glMap2xOES; +#define glMap2xOES glad_glMap2xOES +GLAD_API_CALL PFNGLMAPBUFFERPROC glad_glMapBuffer; +#define glMapBuffer glad_glMapBuffer +GLAD_API_CALL PFNGLMAPBUFFERARBPROC glad_glMapBufferARB; +#define glMapBufferARB glad_glMapBufferARB +GLAD_API_CALL PFNGLMAPBUFFERRANGEPROC glad_glMapBufferRange; +#define glMapBufferRange glad_glMapBufferRange +GLAD_API_CALL PFNGLMAPGRID1XOESPROC glad_glMapGrid1xOES; +#define glMapGrid1xOES glad_glMapGrid1xOES +GLAD_API_CALL PFNGLMAPGRID2XOESPROC glad_glMapGrid2xOES; +#define glMapGrid2xOES glad_glMapGrid2xOES +GLAD_API_CALL PFNGLMAPNAMEDBUFFERPROC glad_glMapNamedBuffer; +#define glMapNamedBuffer glad_glMapNamedBuffer +GLAD_API_CALL PFNGLMAPNAMEDBUFFERRANGEPROC glad_glMapNamedBufferRange; +#define glMapNamedBufferRange glad_glMapNamedBufferRange +GLAD_API_CALL PFNGLMATERIALXOESPROC glad_glMaterialxOES; +#define glMaterialxOES glad_glMaterialxOES +GLAD_API_CALL PFNGLMATERIALXVOESPROC glad_glMaterialxvOES; +#define glMaterialxvOES glad_glMaterialxvOES +GLAD_API_CALL PFNGLMEMORYBARRIERPROC glad_glMemoryBarrier; +#define glMemoryBarrier glad_glMemoryBarrier +GLAD_API_CALL PFNGLMEMORYBARRIERBYREGIONPROC glad_glMemoryBarrierByRegion; +#define glMemoryBarrierByRegion glad_glMemoryBarrierByRegion +GLAD_API_CALL PFNGLMINSAMPLESHADINGPROC glad_glMinSampleShading; +#define glMinSampleShading glad_glMinSampleShading +GLAD_API_CALL PFNGLMINSAMPLESHADINGARBPROC glad_glMinSampleShadingARB; +#define glMinSampleShadingARB glad_glMinSampleShadingARB +GLAD_API_CALL PFNGLMULTMATRIXXOESPROC glad_glMultMatrixxOES; +#define glMultMatrixxOES glad_glMultMatrixxOES +GLAD_API_CALL PFNGLMULTTRANSPOSEMATRIXDARBPROC glad_glMultTransposeMatrixdARB; +#define glMultTransposeMatrixdARB glad_glMultTransposeMatrixdARB +GLAD_API_CALL PFNGLMULTTRANSPOSEMATRIXFARBPROC glad_glMultTransposeMatrixfARB; +#define glMultTransposeMatrixfARB glad_glMultTransposeMatrixfARB +GLAD_API_CALL PFNGLMULTTRANSPOSEMATRIXXOESPROC glad_glMultTransposeMatrixxOES; +#define glMultTransposeMatrixxOES glad_glMultTransposeMatrixxOES +GLAD_API_CALL PFNGLMULTIDRAWARRAYSPROC glad_glMultiDrawArrays; +#define glMultiDrawArrays glad_glMultiDrawArrays +GLAD_API_CALL PFNGLMULTIDRAWARRAYSINDIRECTPROC glad_glMultiDrawArraysIndirect; +#define glMultiDrawArraysIndirect glad_glMultiDrawArraysIndirect +GLAD_API_CALL PFNGLMULTIDRAWELEMENTSPROC glad_glMultiDrawElements; +#define glMultiDrawElements glad_glMultiDrawElements +GLAD_API_CALL PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glad_glMultiDrawElementsBaseVertex; +#define glMultiDrawElementsBaseVertex glad_glMultiDrawElementsBaseVertex +GLAD_API_CALL PFNGLMULTIDRAWELEMENTSINDIRECTPROC glad_glMultiDrawElementsIndirect; +#define glMultiDrawElementsIndirect glad_glMultiDrawElementsIndirect +GLAD_API_CALL PFNGLMULTITEXCOORD1DARBPROC glad_glMultiTexCoord1dARB; +#define glMultiTexCoord1dARB glad_glMultiTexCoord1dARB +GLAD_API_CALL PFNGLMULTITEXCOORD1DVARBPROC glad_glMultiTexCoord1dvARB; +#define glMultiTexCoord1dvARB glad_glMultiTexCoord1dvARB +GLAD_API_CALL PFNGLMULTITEXCOORD1FARBPROC glad_glMultiTexCoord1fARB; +#define glMultiTexCoord1fARB glad_glMultiTexCoord1fARB +GLAD_API_CALL PFNGLMULTITEXCOORD1FVARBPROC glad_glMultiTexCoord1fvARB; +#define glMultiTexCoord1fvARB glad_glMultiTexCoord1fvARB +GLAD_API_CALL PFNGLMULTITEXCOORD1IARBPROC glad_glMultiTexCoord1iARB; +#define glMultiTexCoord1iARB glad_glMultiTexCoord1iARB +GLAD_API_CALL PFNGLMULTITEXCOORD1IVARBPROC glad_glMultiTexCoord1ivARB; +#define glMultiTexCoord1ivARB glad_glMultiTexCoord1ivARB +GLAD_API_CALL PFNGLMULTITEXCOORD1SARBPROC glad_glMultiTexCoord1sARB; +#define glMultiTexCoord1sARB glad_glMultiTexCoord1sARB +GLAD_API_CALL PFNGLMULTITEXCOORD1SVARBPROC glad_glMultiTexCoord1svARB; +#define glMultiTexCoord1svARB glad_glMultiTexCoord1svARB +GLAD_API_CALL PFNGLMULTITEXCOORD1XOESPROC glad_glMultiTexCoord1xOES; +#define glMultiTexCoord1xOES glad_glMultiTexCoord1xOES +GLAD_API_CALL PFNGLMULTITEXCOORD1XVOESPROC glad_glMultiTexCoord1xvOES; +#define glMultiTexCoord1xvOES glad_glMultiTexCoord1xvOES +GLAD_API_CALL PFNGLMULTITEXCOORD2DARBPROC glad_glMultiTexCoord2dARB; +#define glMultiTexCoord2dARB glad_glMultiTexCoord2dARB +GLAD_API_CALL PFNGLMULTITEXCOORD2DVARBPROC glad_glMultiTexCoord2dvARB; +#define glMultiTexCoord2dvARB glad_glMultiTexCoord2dvARB +GLAD_API_CALL PFNGLMULTITEXCOORD2FARBPROC glad_glMultiTexCoord2fARB; +#define glMultiTexCoord2fARB glad_glMultiTexCoord2fARB +GLAD_API_CALL PFNGLMULTITEXCOORD2FVARBPROC glad_glMultiTexCoord2fvARB; +#define glMultiTexCoord2fvARB glad_glMultiTexCoord2fvARB +GLAD_API_CALL PFNGLMULTITEXCOORD2IARBPROC glad_glMultiTexCoord2iARB; +#define glMultiTexCoord2iARB glad_glMultiTexCoord2iARB +GLAD_API_CALL PFNGLMULTITEXCOORD2IVARBPROC glad_glMultiTexCoord2ivARB; +#define glMultiTexCoord2ivARB glad_glMultiTexCoord2ivARB +GLAD_API_CALL PFNGLMULTITEXCOORD2SARBPROC glad_glMultiTexCoord2sARB; +#define glMultiTexCoord2sARB glad_glMultiTexCoord2sARB +GLAD_API_CALL PFNGLMULTITEXCOORD2SVARBPROC glad_glMultiTexCoord2svARB; +#define glMultiTexCoord2svARB glad_glMultiTexCoord2svARB +GLAD_API_CALL PFNGLMULTITEXCOORD2XOESPROC glad_glMultiTexCoord2xOES; +#define glMultiTexCoord2xOES glad_glMultiTexCoord2xOES +GLAD_API_CALL PFNGLMULTITEXCOORD2XVOESPROC glad_glMultiTexCoord2xvOES; +#define glMultiTexCoord2xvOES glad_glMultiTexCoord2xvOES +GLAD_API_CALL PFNGLMULTITEXCOORD3DARBPROC glad_glMultiTexCoord3dARB; +#define glMultiTexCoord3dARB glad_glMultiTexCoord3dARB +GLAD_API_CALL PFNGLMULTITEXCOORD3DVARBPROC glad_glMultiTexCoord3dvARB; +#define glMultiTexCoord3dvARB glad_glMultiTexCoord3dvARB +GLAD_API_CALL PFNGLMULTITEXCOORD3FARBPROC glad_glMultiTexCoord3fARB; +#define glMultiTexCoord3fARB glad_glMultiTexCoord3fARB +GLAD_API_CALL PFNGLMULTITEXCOORD3FVARBPROC glad_glMultiTexCoord3fvARB; +#define glMultiTexCoord3fvARB glad_glMultiTexCoord3fvARB +GLAD_API_CALL PFNGLMULTITEXCOORD3IARBPROC glad_glMultiTexCoord3iARB; +#define glMultiTexCoord3iARB glad_glMultiTexCoord3iARB +GLAD_API_CALL PFNGLMULTITEXCOORD3IVARBPROC glad_glMultiTexCoord3ivARB; +#define glMultiTexCoord3ivARB glad_glMultiTexCoord3ivARB +GLAD_API_CALL PFNGLMULTITEXCOORD3SARBPROC glad_glMultiTexCoord3sARB; +#define glMultiTexCoord3sARB glad_glMultiTexCoord3sARB +GLAD_API_CALL PFNGLMULTITEXCOORD3SVARBPROC glad_glMultiTexCoord3svARB; +#define glMultiTexCoord3svARB glad_glMultiTexCoord3svARB +GLAD_API_CALL PFNGLMULTITEXCOORD3XOESPROC glad_glMultiTexCoord3xOES; +#define glMultiTexCoord3xOES glad_glMultiTexCoord3xOES +GLAD_API_CALL PFNGLMULTITEXCOORD3XVOESPROC glad_glMultiTexCoord3xvOES; +#define glMultiTexCoord3xvOES glad_glMultiTexCoord3xvOES +GLAD_API_CALL PFNGLMULTITEXCOORD4DARBPROC glad_glMultiTexCoord4dARB; +#define glMultiTexCoord4dARB glad_glMultiTexCoord4dARB +GLAD_API_CALL PFNGLMULTITEXCOORD4DVARBPROC glad_glMultiTexCoord4dvARB; +#define glMultiTexCoord4dvARB glad_glMultiTexCoord4dvARB +GLAD_API_CALL PFNGLMULTITEXCOORD4FARBPROC glad_glMultiTexCoord4fARB; +#define glMultiTexCoord4fARB glad_glMultiTexCoord4fARB +GLAD_API_CALL PFNGLMULTITEXCOORD4FVARBPROC glad_glMultiTexCoord4fvARB; +#define glMultiTexCoord4fvARB glad_glMultiTexCoord4fvARB +GLAD_API_CALL PFNGLMULTITEXCOORD4IARBPROC glad_glMultiTexCoord4iARB; +#define glMultiTexCoord4iARB glad_glMultiTexCoord4iARB +GLAD_API_CALL PFNGLMULTITEXCOORD4IVARBPROC glad_glMultiTexCoord4ivARB; +#define glMultiTexCoord4ivARB glad_glMultiTexCoord4ivARB +GLAD_API_CALL PFNGLMULTITEXCOORD4SARBPROC glad_glMultiTexCoord4sARB; +#define glMultiTexCoord4sARB glad_glMultiTexCoord4sARB +GLAD_API_CALL PFNGLMULTITEXCOORD4SVARBPROC glad_glMultiTexCoord4svARB; +#define glMultiTexCoord4svARB glad_glMultiTexCoord4svARB +GLAD_API_CALL PFNGLMULTITEXCOORD4XOESPROC glad_glMultiTexCoord4xOES; +#define glMultiTexCoord4xOES glad_glMultiTexCoord4xOES +GLAD_API_CALL PFNGLMULTITEXCOORD4XVOESPROC glad_glMultiTexCoord4xvOES; +#define glMultiTexCoord4xvOES glad_glMultiTexCoord4xvOES +GLAD_API_CALL PFNGLNAMEDBUFFERDATAPROC glad_glNamedBufferData; +#define glNamedBufferData glad_glNamedBufferData +GLAD_API_CALL PFNGLNAMEDBUFFERSTORAGEPROC glad_glNamedBufferStorage; +#define glNamedBufferStorage glad_glNamedBufferStorage +GLAD_API_CALL PFNGLNAMEDBUFFERSUBDATAPROC glad_glNamedBufferSubData; +#define glNamedBufferSubData glad_glNamedBufferSubData +GLAD_API_CALL PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC glad_glNamedFramebufferDrawBuffer; +#define glNamedFramebufferDrawBuffer glad_glNamedFramebufferDrawBuffer +GLAD_API_CALL PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC glad_glNamedFramebufferDrawBuffers; +#define glNamedFramebufferDrawBuffers glad_glNamedFramebufferDrawBuffers +GLAD_API_CALL PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC glad_glNamedFramebufferParameteri; +#define glNamedFramebufferParameteri glad_glNamedFramebufferParameteri +GLAD_API_CALL PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC glad_glNamedFramebufferReadBuffer; +#define glNamedFramebufferReadBuffer glad_glNamedFramebufferReadBuffer +GLAD_API_CALL PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC glad_glNamedFramebufferRenderbuffer; +#define glNamedFramebufferRenderbuffer glad_glNamedFramebufferRenderbuffer +GLAD_API_CALL PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC glad_glNamedFramebufferSampleLocationsfvARB; +#define glNamedFramebufferSampleLocationsfvARB glad_glNamedFramebufferSampleLocationsfvARB +GLAD_API_CALL PFNGLNAMEDFRAMEBUFFERTEXTUREPROC glad_glNamedFramebufferTexture; +#define glNamedFramebufferTexture glad_glNamedFramebufferTexture +GLAD_API_CALL PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC glad_glNamedFramebufferTextureLayer; +#define glNamedFramebufferTextureLayer glad_glNamedFramebufferTextureLayer +GLAD_API_CALL PFNGLNAMEDRENDERBUFFERSTORAGEPROC glad_glNamedRenderbufferStorage; +#define glNamedRenderbufferStorage glad_glNamedRenderbufferStorage +GLAD_API_CALL PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glNamedRenderbufferStorageMultisample; +#define glNamedRenderbufferStorageMultisample glad_glNamedRenderbufferStorageMultisample +GLAD_API_CALL PFNGLNAMEDSTRINGARBPROC glad_glNamedStringARB; +#define glNamedStringARB glad_glNamedStringARB +GLAD_API_CALL PFNGLNORMAL3XOESPROC glad_glNormal3xOES; +#define glNormal3xOES glad_glNormal3xOES +GLAD_API_CALL PFNGLNORMAL3XVOESPROC glad_glNormal3xvOES; +#define glNormal3xvOES glad_glNormal3xvOES +GLAD_API_CALL PFNGLOBJECTLABELPROC glad_glObjectLabel; +#define glObjectLabel glad_glObjectLabel +GLAD_API_CALL PFNGLOBJECTPTRLABELPROC glad_glObjectPtrLabel; +#define glObjectPtrLabel glad_glObjectPtrLabel +GLAD_API_CALL PFNGLORTHOXOESPROC glad_glOrthoxOES; +#define glOrthoxOES glad_glOrthoxOES +GLAD_API_CALL PFNGLPASSTHROUGHXOESPROC glad_glPassThroughxOES; +#define glPassThroughxOES glad_glPassThroughxOES +GLAD_API_CALL PFNGLPATCHPARAMETERFVPROC glad_glPatchParameterfv; +#define glPatchParameterfv glad_glPatchParameterfv +GLAD_API_CALL PFNGLPATCHPARAMETERIPROC glad_glPatchParameteri; +#define glPatchParameteri glad_glPatchParameteri +GLAD_API_CALL PFNGLPAUSETRANSFORMFEEDBACKPROC glad_glPauseTransformFeedback; +#define glPauseTransformFeedback glad_glPauseTransformFeedback +GLAD_API_CALL PFNGLPIXELMAPXPROC glad_glPixelMapx; +#define glPixelMapx glad_glPixelMapx +GLAD_API_CALL PFNGLPIXELSTOREFPROC glad_glPixelStoref; +#define glPixelStoref glad_glPixelStoref +GLAD_API_CALL PFNGLPIXELSTOREIPROC glad_glPixelStorei; +#define glPixelStorei glad_glPixelStorei +GLAD_API_CALL PFNGLPIXELSTOREXPROC glad_glPixelStorex; +#define glPixelStorex glad_glPixelStorex +GLAD_API_CALL PFNGLPIXELTRANSFERXOESPROC glad_glPixelTransferxOES; +#define glPixelTransferxOES glad_glPixelTransferxOES +GLAD_API_CALL PFNGLPIXELZOOMXOESPROC glad_glPixelZoomxOES; +#define glPixelZoomxOES glad_glPixelZoomxOES +GLAD_API_CALL PFNGLPOINTPARAMETERFPROC glad_glPointParameterf; +#define glPointParameterf glad_glPointParameterf +GLAD_API_CALL PFNGLPOINTPARAMETERFVPROC glad_glPointParameterfv; +#define glPointParameterfv glad_glPointParameterfv +GLAD_API_CALL PFNGLPOINTPARAMETERIPROC glad_glPointParameteri; +#define glPointParameteri glad_glPointParameteri +GLAD_API_CALL PFNGLPOINTPARAMETERIVPROC glad_glPointParameteriv; +#define glPointParameteriv glad_glPointParameteriv +GLAD_API_CALL PFNGLPOINTPARAMETERXVOESPROC glad_glPointParameterxvOES; +#define glPointParameterxvOES glad_glPointParameterxvOES +GLAD_API_CALL PFNGLPOINTSIZEPROC glad_glPointSize; +#define glPointSize glad_glPointSize +GLAD_API_CALL PFNGLPOINTSIZEXOESPROC glad_glPointSizexOES; +#define glPointSizexOES glad_glPointSizexOES +GLAD_API_CALL PFNGLPOLYGONMODEPROC glad_glPolygonMode; +#define glPolygonMode glad_glPolygonMode +GLAD_API_CALL PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset; +#define glPolygonOffset glad_glPolygonOffset +GLAD_API_CALL PFNGLPOLYGONOFFSETXOESPROC glad_glPolygonOffsetxOES; +#define glPolygonOffsetxOES glad_glPolygonOffsetxOES +GLAD_API_CALL PFNGLPOPDEBUGGROUPPROC glad_glPopDebugGroup; +#define glPopDebugGroup glad_glPopDebugGroup +GLAD_API_CALL PFNGLPRIMITIVEBOUNDINGBOXARBPROC glad_glPrimitiveBoundingBoxARB; +#define glPrimitiveBoundingBoxARB glad_glPrimitiveBoundingBoxARB +GLAD_API_CALL PFNGLPRIMITIVERESTARTINDEXPROC glad_glPrimitiveRestartIndex; +#define glPrimitiveRestartIndex glad_glPrimitiveRestartIndex +GLAD_API_CALL PFNGLPRIORITIZETEXTURESXOESPROC glad_glPrioritizeTexturesxOES; +#define glPrioritizeTexturesxOES glad_glPrioritizeTexturesxOES +GLAD_API_CALL PFNGLPROGRAMBINARYPROC glad_glProgramBinary; +#define glProgramBinary glad_glProgramBinary +GLAD_API_CALL PFNGLPROGRAMENVPARAMETER4DARBPROC glad_glProgramEnvParameter4dARB; +#define glProgramEnvParameter4dARB glad_glProgramEnvParameter4dARB +GLAD_API_CALL PFNGLPROGRAMENVPARAMETER4DVARBPROC glad_glProgramEnvParameter4dvARB; +#define glProgramEnvParameter4dvARB glad_glProgramEnvParameter4dvARB +GLAD_API_CALL PFNGLPROGRAMENVPARAMETER4FARBPROC glad_glProgramEnvParameter4fARB; +#define glProgramEnvParameter4fARB glad_glProgramEnvParameter4fARB +GLAD_API_CALL PFNGLPROGRAMENVPARAMETER4FVARBPROC glad_glProgramEnvParameter4fvARB; +#define glProgramEnvParameter4fvARB glad_glProgramEnvParameter4fvARB +GLAD_API_CALL PFNGLPROGRAMLOCALPARAMETER4DARBPROC glad_glProgramLocalParameter4dARB; +#define glProgramLocalParameter4dARB glad_glProgramLocalParameter4dARB +GLAD_API_CALL PFNGLPROGRAMLOCALPARAMETER4DVARBPROC glad_glProgramLocalParameter4dvARB; +#define glProgramLocalParameter4dvARB glad_glProgramLocalParameter4dvARB +GLAD_API_CALL PFNGLPROGRAMLOCALPARAMETER4FARBPROC glad_glProgramLocalParameter4fARB; +#define glProgramLocalParameter4fARB glad_glProgramLocalParameter4fARB +GLAD_API_CALL PFNGLPROGRAMLOCALPARAMETER4FVARBPROC glad_glProgramLocalParameter4fvARB; +#define glProgramLocalParameter4fvARB glad_glProgramLocalParameter4fvARB +GLAD_API_CALL PFNGLPROGRAMPARAMETERIPROC glad_glProgramParameteri; +#define glProgramParameteri glad_glProgramParameteri +GLAD_API_CALL PFNGLPROGRAMPARAMETERIARBPROC glad_glProgramParameteriARB; +#define glProgramParameteriARB glad_glProgramParameteriARB +GLAD_API_CALL PFNGLPROGRAMSTRINGARBPROC glad_glProgramStringARB; +#define glProgramStringARB glad_glProgramStringARB +GLAD_API_CALL PFNGLPROGRAMUNIFORM1DPROC glad_glProgramUniform1d; +#define glProgramUniform1d glad_glProgramUniform1d +GLAD_API_CALL PFNGLPROGRAMUNIFORM1DVPROC glad_glProgramUniform1dv; +#define glProgramUniform1dv glad_glProgramUniform1dv +GLAD_API_CALL PFNGLPROGRAMUNIFORM1FPROC glad_glProgramUniform1f; +#define glProgramUniform1f glad_glProgramUniform1f +GLAD_API_CALL PFNGLPROGRAMUNIFORM1FVPROC glad_glProgramUniform1fv; +#define glProgramUniform1fv glad_glProgramUniform1fv +GLAD_API_CALL PFNGLPROGRAMUNIFORM1IPROC glad_glProgramUniform1i; +#define glProgramUniform1i glad_glProgramUniform1i +GLAD_API_CALL PFNGLPROGRAMUNIFORM1I64ARBPROC glad_glProgramUniform1i64ARB; +#define glProgramUniform1i64ARB glad_glProgramUniform1i64ARB +GLAD_API_CALL PFNGLPROGRAMUNIFORM1I64VARBPROC glad_glProgramUniform1i64vARB; +#define glProgramUniform1i64vARB glad_glProgramUniform1i64vARB +GLAD_API_CALL PFNGLPROGRAMUNIFORM1IVPROC glad_glProgramUniform1iv; +#define glProgramUniform1iv glad_glProgramUniform1iv +GLAD_API_CALL PFNGLPROGRAMUNIFORM1UIPROC glad_glProgramUniform1ui; +#define glProgramUniform1ui glad_glProgramUniform1ui +GLAD_API_CALL PFNGLPROGRAMUNIFORM1UI64ARBPROC glad_glProgramUniform1ui64ARB; +#define glProgramUniform1ui64ARB glad_glProgramUniform1ui64ARB +GLAD_API_CALL PFNGLPROGRAMUNIFORM1UI64VARBPROC glad_glProgramUniform1ui64vARB; +#define glProgramUniform1ui64vARB glad_glProgramUniform1ui64vARB +GLAD_API_CALL PFNGLPROGRAMUNIFORM1UIVPROC glad_glProgramUniform1uiv; +#define glProgramUniform1uiv glad_glProgramUniform1uiv +GLAD_API_CALL PFNGLPROGRAMUNIFORM2DPROC glad_glProgramUniform2d; +#define glProgramUniform2d glad_glProgramUniform2d +GLAD_API_CALL PFNGLPROGRAMUNIFORM2DVPROC glad_glProgramUniform2dv; +#define glProgramUniform2dv glad_glProgramUniform2dv +GLAD_API_CALL PFNGLPROGRAMUNIFORM2FPROC glad_glProgramUniform2f; +#define glProgramUniform2f glad_glProgramUniform2f +GLAD_API_CALL PFNGLPROGRAMUNIFORM2FVPROC glad_glProgramUniform2fv; +#define glProgramUniform2fv glad_glProgramUniform2fv +GLAD_API_CALL PFNGLPROGRAMUNIFORM2IPROC glad_glProgramUniform2i; +#define glProgramUniform2i glad_glProgramUniform2i +GLAD_API_CALL PFNGLPROGRAMUNIFORM2I64ARBPROC glad_glProgramUniform2i64ARB; +#define glProgramUniform2i64ARB glad_glProgramUniform2i64ARB +GLAD_API_CALL PFNGLPROGRAMUNIFORM2I64VARBPROC glad_glProgramUniform2i64vARB; +#define glProgramUniform2i64vARB glad_glProgramUniform2i64vARB +GLAD_API_CALL PFNGLPROGRAMUNIFORM2IVPROC glad_glProgramUniform2iv; +#define glProgramUniform2iv glad_glProgramUniform2iv +GLAD_API_CALL PFNGLPROGRAMUNIFORM2UIPROC glad_glProgramUniform2ui; +#define glProgramUniform2ui glad_glProgramUniform2ui +GLAD_API_CALL PFNGLPROGRAMUNIFORM2UI64ARBPROC glad_glProgramUniform2ui64ARB; +#define glProgramUniform2ui64ARB glad_glProgramUniform2ui64ARB +GLAD_API_CALL PFNGLPROGRAMUNIFORM2UI64VARBPROC glad_glProgramUniform2ui64vARB; +#define glProgramUniform2ui64vARB glad_glProgramUniform2ui64vARB +GLAD_API_CALL PFNGLPROGRAMUNIFORM2UIVPROC glad_glProgramUniform2uiv; +#define glProgramUniform2uiv glad_glProgramUniform2uiv +GLAD_API_CALL PFNGLPROGRAMUNIFORM3DPROC glad_glProgramUniform3d; +#define glProgramUniform3d glad_glProgramUniform3d +GLAD_API_CALL PFNGLPROGRAMUNIFORM3DVPROC glad_glProgramUniform3dv; +#define glProgramUniform3dv glad_glProgramUniform3dv +GLAD_API_CALL PFNGLPROGRAMUNIFORM3FPROC glad_glProgramUniform3f; +#define glProgramUniform3f glad_glProgramUniform3f +GLAD_API_CALL PFNGLPROGRAMUNIFORM3FVPROC glad_glProgramUniform3fv; +#define glProgramUniform3fv glad_glProgramUniform3fv +GLAD_API_CALL PFNGLPROGRAMUNIFORM3IPROC glad_glProgramUniform3i; +#define glProgramUniform3i glad_glProgramUniform3i +GLAD_API_CALL PFNGLPROGRAMUNIFORM3I64ARBPROC glad_glProgramUniform3i64ARB; +#define glProgramUniform3i64ARB glad_glProgramUniform3i64ARB +GLAD_API_CALL PFNGLPROGRAMUNIFORM3I64VARBPROC glad_glProgramUniform3i64vARB; +#define glProgramUniform3i64vARB glad_glProgramUniform3i64vARB +GLAD_API_CALL PFNGLPROGRAMUNIFORM3IVPROC glad_glProgramUniform3iv; +#define glProgramUniform3iv glad_glProgramUniform3iv +GLAD_API_CALL PFNGLPROGRAMUNIFORM3UIPROC glad_glProgramUniform3ui; +#define glProgramUniform3ui glad_glProgramUniform3ui +GLAD_API_CALL PFNGLPROGRAMUNIFORM3UI64ARBPROC glad_glProgramUniform3ui64ARB; +#define glProgramUniform3ui64ARB glad_glProgramUniform3ui64ARB +GLAD_API_CALL PFNGLPROGRAMUNIFORM3UI64VARBPROC glad_glProgramUniform3ui64vARB; +#define glProgramUniform3ui64vARB glad_glProgramUniform3ui64vARB +GLAD_API_CALL PFNGLPROGRAMUNIFORM3UIVPROC glad_glProgramUniform3uiv; +#define glProgramUniform3uiv glad_glProgramUniform3uiv +GLAD_API_CALL PFNGLPROGRAMUNIFORM4DPROC glad_glProgramUniform4d; +#define glProgramUniform4d glad_glProgramUniform4d +GLAD_API_CALL PFNGLPROGRAMUNIFORM4DVPROC glad_glProgramUniform4dv; +#define glProgramUniform4dv glad_glProgramUniform4dv +GLAD_API_CALL PFNGLPROGRAMUNIFORM4FPROC glad_glProgramUniform4f; +#define glProgramUniform4f glad_glProgramUniform4f +GLAD_API_CALL PFNGLPROGRAMUNIFORM4FVPROC glad_glProgramUniform4fv; +#define glProgramUniform4fv glad_glProgramUniform4fv +GLAD_API_CALL PFNGLPROGRAMUNIFORM4IPROC glad_glProgramUniform4i; +#define glProgramUniform4i glad_glProgramUniform4i +GLAD_API_CALL PFNGLPROGRAMUNIFORM4I64ARBPROC glad_glProgramUniform4i64ARB; +#define glProgramUniform4i64ARB glad_glProgramUniform4i64ARB +GLAD_API_CALL PFNGLPROGRAMUNIFORM4I64VARBPROC glad_glProgramUniform4i64vARB; +#define glProgramUniform4i64vARB glad_glProgramUniform4i64vARB +GLAD_API_CALL PFNGLPROGRAMUNIFORM4IVPROC glad_glProgramUniform4iv; +#define glProgramUniform4iv glad_glProgramUniform4iv +GLAD_API_CALL PFNGLPROGRAMUNIFORM4UIPROC glad_glProgramUniform4ui; +#define glProgramUniform4ui glad_glProgramUniform4ui +GLAD_API_CALL PFNGLPROGRAMUNIFORM4UI64ARBPROC glad_glProgramUniform4ui64ARB; +#define glProgramUniform4ui64ARB glad_glProgramUniform4ui64ARB +GLAD_API_CALL PFNGLPROGRAMUNIFORM4UI64VARBPROC glad_glProgramUniform4ui64vARB; +#define glProgramUniform4ui64vARB glad_glProgramUniform4ui64vARB +GLAD_API_CALL PFNGLPROGRAMUNIFORM4UIVPROC glad_glProgramUniform4uiv; +#define glProgramUniform4uiv glad_glProgramUniform4uiv +GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX2DVPROC glad_glProgramUniformMatrix2dv; +#define glProgramUniformMatrix2dv glad_glProgramUniformMatrix2dv +GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX2FVPROC glad_glProgramUniformMatrix2fv; +#define glProgramUniformMatrix2fv glad_glProgramUniformMatrix2fv +GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC glad_glProgramUniformMatrix2x3dv; +#define glProgramUniformMatrix2x3dv glad_glProgramUniformMatrix2x3dv +GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC glad_glProgramUniformMatrix2x3fv; +#define glProgramUniformMatrix2x3fv glad_glProgramUniformMatrix2x3fv +GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC glad_glProgramUniformMatrix2x4dv; +#define glProgramUniformMatrix2x4dv glad_glProgramUniformMatrix2x4dv +GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC glad_glProgramUniformMatrix2x4fv; +#define glProgramUniformMatrix2x4fv glad_glProgramUniformMatrix2x4fv +GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX3DVPROC glad_glProgramUniformMatrix3dv; +#define glProgramUniformMatrix3dv glad_glProgramUniformMatrix3dv +GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX3FVPROC glad_glProgramUniformMatrix3fv; +#define glProgramUniformMatrix3fv glad_glProgramUniformMatrix3fv +GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC glad_glProgramUniformMatrix3x2dv; +#define glProgramUniformMatrix3x2dv glad_glProgramUniformMatrix3x2dv +GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC glad_glProgramUniformMatrix3x2fv; +#define glProgramUniformMatrix3x2fv glad_glProgramUniformMatrix3x2fv +GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC glad_glProgramUniformMatrix3x4dv; +#define glProgramUniformMatrix3x4dv glad_glProgramUniformMatrix3x4dv +GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC glad_glProgramUniformMatrix3x4fv; +#define glProgramUniformMatrix3x4fv glad_glProgramUniformMatrix3x4fv +GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX4DVPROC glad_glProgramUniformMatrix4dv; +#define glProgramUniformMatrix4dv glad_glProgramUniformMatrix4dv +GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX4FVPROC glad_glProgramUniformMatrix4fv; +#define glProgramUniformMatrix4fv glad_glProgramUniformMatrix4fv +GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC glad_glProgramUniformMatrix4x2dv; +#define glProgramUniformMatrix4x2dv glad_glProgramUniformMatrix4x2dv +GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC glad_glProgramUniformMatrix4x2fv; +#define glProgramUniformMatrix4x2fv glad_glProgramUniformMatrix4x2fv +GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC glad_glProgramUniformMatrix4x3dv; +#define glProgramUniformMatrix4x3dv glad_glProgramUniformMatrix4x3dv +GLAD_API_CALL PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC glad_glProgramUniformMatrix4x3fv; +#define glProgramUniformMatrix4x3fv glad_glProgramUniformMatrix4x3fv +GLAD_API_CALL PFNGLPROVOKINGVERTEXPROC glad_glProvokingVertex; +#define glProvokingVertex glad_glProvokingVertex +GLAD_API_CALL PFNGLPUSHDEBUGGROUPPROC glad_glPushDebugGroup; +#define glPushDebugGroup glad_glPushDebugGroup +GLAD_API_CALL PFNGLQUERYCOUNTERPROC glad_glQueryCounter; +#define glQueryCounter glad_glQueryCounter +GLAD_API_CALL PFNGLRASTERPOS2XOESPROC glad_glRasterPos2xOES; +#define glRasterPos2xOES glad_glRasterPos2xOES +GLAD_API_CALL PFNGLRASTERPOS2XVOESPROC glad_glRasterPos2xvOES; +#define glRasterPos2xvOES glad_glRasterPos2xvOES +GLAD_API_CALL PFNGLRASTERPOS3XOESPROC glad_glRasterPos3xOES; +#define glRasterPos3xOES glad_glRasterPos3xOES +GLAD_API_CALL PFNGLRASTERPOS3XVOESPROC glad_glRasterPos3xvOES; +#define glRasterPos3xvOES glad_glRasterPos3xvOES +GLAD_API_CALL PFNGLRASTERPOS4XOESPROC glad_glRasterPos4xOES; +#define glRasterPos4xOES glad_glRasterPos4xOES +GLAD_API_CALL PFNGLRASTERPOS4XVOESPROC glad_glRasterPos4xvOES; +#define glRasterPos4xvOES glad_glRasterPos4xvOES +GLAD_API_CALL PFNGLREADBUFFERPROC glad_glReadBuffer; +#define glReadBuffer glad_glReadBuffer +GLAD_API_CALL PFNGLREADPIXELSPROC glad_glReadPixels; +#define glReadPixels glad_glReadPixels +GLAD_API_CALL PFNGLRECTXOESPROC glad_glRectxOES; +#define glRectxOES glad_glRectxOES +GLAD_API_CALL PFNGLRECTXVOESPROC glad_glRectxvOES; +#define glRectxvOES glad_glRectxvOES +GLAD_API_CALL PFNGLRELEASESHADERCOMPILERPROC glad_glReleaseShaderCompiler; +#define glReleaseShaderCompiler glad_glReleaseShaderCompiler +GLAD_API_CALL PFNGLRENDERBUFFERSTORAGEPROC glad_glRenderbufferStorage; +#define glRenderbufferStorage glad_glRenderbufferStorage +GLAD_API_CALL PFNGLRENDERBUFFERSTORAGEEXTPROC glad_glRenderbufferStorageEXT; +#define glRenderbufferStorageEXT glad_glRenderbufferStorageEXT +GLAD_API_CALL PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glRenderbufferStorageMultisample; +#define glRenderbufferStorageMultisample glad_glRenderbufferStorageMultisample +GLAD_API_CALL PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC glad_glRenderbufferStorageMultisampleEXT; +#define glRenderbufferStorageMultisampleEXT glad_glRenderbufferStorageMultisampleEXT +GLAD_API_CALL PFNGLRESUMETRANSFORMFEEDBACKPROC glad_glResumeTransformFeedback; +#define glResumeTransformFeedback glad_glResumeTransformFeedback +GLAD_API_CALL PFNGLROTATEXOESPROC glad_glRotatexOES; +#define glRotatexOES glad_glRotatexOES +GLAD_API_CALL PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage; +#define glSampleCoverage glad_glSampleCoverage +GLAD_API_CALL PFNGLSAMPLECOVERAGEARBPROC glad_glSampleCoverageARB; +#define glSampleCoverageARB glad_glSampleCoverageARB +GLAD_API_CALL PFNGLSAMPLEMASKIPROC glad_glSampleMaski; +#define glSampleMaski glad_glSampleMaski +GLAD_API_CALL PFNGLSAMPLERPARAMETERIIVPROC glad_glSamplerParameterIiv; +#define glSamplerParameterIiv glad_glSamplerParameterIiv +GLAD_API_CALL PFNGLSAMPLERPARAMETERIUIVPROC glad_glSamplerParameterIuiv; +#define glSamplerParameterIuiv glad_glSamplerParameterIuiv +GLAD_API_CALL PFNGLSAMPLERPARAMETERFPROC glad_glSamplerParameterf; +#define glSamplerParameterf glad_glSamplerParameterf +GLAD_API_CALL PFNGLSAMPLERPARAMETERFVPROC glad_glSamplerParameterfv; +#define glSamplerParameterfv glad_glSamplerParameterfv +GLAD_API_CALL PFNGLSAMPLERPARAMETERIPROC glad_glSamplerParameteri; +#define glSamplerParameteri glad_glSamplerParameteri +GLAD_API_CALL PFNGLSAMPLERPARAMETERIVPROC glad_glSamplerParameteriv; +#define glSamplerParameteriv glad_glSamplerParameteriv +GLAD_API_CALL PFNGLSCALEXOESPROC glad_glScalexOES; +#define glScalexOES glad_glScalexOES +GLAD_API_CALL PFNGLSCISSORPROC glad_glScissor; +#define glScissor glad_glScissor +GLAD_API_CALL PFNGLSCISSORARRAYVPROC glad_glScissorArrayv; +#define glScissorArrayv glad_glScissorArrayv +GLAD_API_CALL PFNGLSCISSORINDEXEDPROC glad_glScissorIndexed; +#define glScissorIndexed glad_glScissorIndexed +GLAD_API_CALL PFNGLSCISSORINDEXEDVPROC glad_glScissorIndexedv; +#define glScissorIndexedv glad_glScissorIndexedv +GLAD_API_CALL PFNGLSHADERBINARYPROC glad_glShaderBinary; +#define glShaderBinary glad_glShaderBinary +GLAD_API_CALL PFNGLSHADERSOURCEPROC glad_glShaderSource; +#define glShaderSource glad_glShaderSource +GLAD_API_CALL PFNGLSHADERSOURCEARBPROC glad_glShaderSourceARB; +#define glShaderSourceARB glad_glShaderSourceARB +GLAD_API_CALL PFNGLSHADERSTORAGEBLOCKBINDINGPROC glad_glShaderStorageBlockBinding; +#define glShaderStorageBlockBinding glad_glShaderStorageBlockBinding +GLAD_API_CALL PFNGLSPECIALIZESHADERARBPROC glad_glSpecializeShaderARB; +#define glSpecializeShaderARB glad_glSpecializeShaderARB +GLAD_API_CALL PFNGLSTENCILFUNCPROC glad_glStencilFunc; +#define glStencilFunc glad_glStencilFunc +GLAD_API_CALL PFNGLSTENCILFUNCSEPARATEPROC glad_glStencilFuncSeparate; +#define glStencilFuncSeparate glad_glStencilFuncSeparate +GLAD_API_CALL PFNGLSTENCILMASKPROC glad_glStencilMask; +#define glStencilMask glad_glStencilMask +GLAD_API_CALL PFNGLSTENCILMASKSEPARATEPROC glad_glStencilMaskSeparate; +#define glStencilMaskSeparate glad_glStencilMaskSeparate +GLAD_API_CALL PFNGLSTENCILOPPROC glad_glStencilOp; +#define glStencilOp glad_glStencilOp +GLAD_API_CALL PFNGLSTENCILOPSEPARATEPROC glad_glStencilOpSeparate; +#define glStencilOpSeparate glad_glStencilOpSeparate +GLAD_API_CALL PFNGLTEXBUFFERPROC glad_glTexBuffer; +#define glTexBuffer glad_glTexBuffer +GLAD_API_CALL PFNGLTEXBUFFERRANGEPROC glad_glTexBufferRange; +#define glTexBufferRange glad_glTexBufferRange +GLAD_API_CALL PFNGLTEXCOORD1XOESPROC glad_glTexCoord1xOES; +#define glTexCoord1xOES glad_glTexCoord1xOES +GLAD_API_CALL PFNGLTEXCOORD1XVOESPROC glad_glTexCoord1xvOES; +#define glTexCoord1xvOES glad_glTexCoord1xvOES +GLAD_API_CALL PFNGLTEXCOORD2XOESPROC glad_glTexCoord2xOES; +#define glTexCoord2xOES glad_glTexCoord2xOES +GLAD_API_CALL PFNGLTEXCOORD2XVOESPROC glad_glTexCoord2xvOES; +#define glTexCoord2xvOES glad_glTexCoord2xvOES +GLAD_API_CALL PFNGLTEXCOORD3XOESPROC glad_glTexCoord3xOES; +#define glTexCoord3xOES glad_glTexCoord3xOES +GLAD_API_CALL PFNGLTEXCOORD3XVOESPROC glad_glTexCoord3xvOES; +#define glTexCoord3xvOES glad_glTexCoord3xvOES +GLAD_API_CALL PFNGLTEXCOORD4XOESPROC glad_glTexCoord4xOES; +#define glTexCoord4xOES glad_glTexCoord4xOES +GLAD_API_CALL PFNGLTEXCOORD4XVOESPROC glad_glTexCoord4xvOES; +#define glTexCoord4xvOES glad_glTexCoord4xvOES +GLAD_API_CALL PFNGLTEXENVXOESPROC glad_glTexEnvxOES; +#define glTexEnvxOES glad_glTexEnvxOES +GLAD_API_CALL PFNGLTEXENVXVOESPROC glad_glTexEnvxvOES; +#define glTexEnvxvOES glad_glTexEnvxvOES +GLAD_API_CALL PFNGLTEXGENXOESPROC glad_glTexGenxOES; +#define glTexGenxOES glad_glTexGenxOES +GLAD_API_CALL PFNGLTEXGENXVOESPROC glad_glTexGenxvOES; +#define glTexGenxvOES glad_glTexGenxvOES +GLAD_API_CALL PFNGLTEXIMAGE1DPROC glad_glTexImage1D; +#define glTexImage1D glad_glTexImage1D +GLAD_API_CALL PFNGLTEXIMAGE2DPROC glad_glTexImage2D; +#define glTexImage2D glad_glTexImage2D +GLAD_API_CALL PFNGLTEXIMAGE2DMULTISAMPLEPROC glad_glTexImage2DMultisample; +#define glTexImage2DMultisample glad_glTexImage2DMultisample +GLAD_API_CALL PFNGLTEXIMAGE3DPROC glad_glTexImage3D; +#define glTexImage3D glad_glTexImage3D +GLAD_API_CALL PFNGLTEXIMAGE3DMULTISAMPLEPROC glad_glTexImage3DMultisample; +#define glTexImage3DMultisample glad_glTexImage3DMultisample +GLAD_API_CALL PFNGLTEXPARAMETERIIVPROC glad_glTexParameterIiv; +#define glTexParameterIiv glad_glTexParameterIiv +GLAD_API_CALL PFNGLTEXPARAMETERIUIVPROC glad_glTexParameterIuiv; +#define glTexParameterIuiv glad_glTexParameterIuiv +GLAD_API_CALL PFNGLTEXPARAMETERFPROC glad_glTexParameterf; +#define glTexParameterf glad_glTexParameterf +GLAD_API_CALL PFNGLTEXPARAMETERFVPROC glad_glTexParameterfv; +#define glTexParameterfv glad_glTexParameterfv +GLAD_API_CALL PFNGLTEXPARAMETERIPROC glad_glTexParameteri; +#define glTexParameteri glad_glTexParameteri +GLAD_API_CALL PFNGLTEXPARAMETERIVPROC glad_glTexParameteriv; +#define glTexParameteriv glad_glTexParameteriv +GLAD_API_CALL PFNGLTEXPARAMETERXOESPROC glad_glTexParameterxOES; +#define glTexParameterxOES glad_glTexParameterxOES +GLAD_API_CALL PFNGLTEXPARAMETERXVOESPROC glad_glTexParameterxvOES; +#define glTexParameterxvOES glad_glTexParameterxvOES +GLAD_API_CALL PFNGLTEXSTORAGE1DPROC glad_glTexStorage1D; +#define glTexStorage1D glad_glTexStorage1D +GLAD_API_CALL PFNGLTEXSTORAGE2DPROC glad_glTexStorage2D; +#define glTexStorage2D glad_glTexStorage2D +GLAD_API_CALL PFNGLTEXSTORAGE2DMULTISAMPLEPROC glad_glTexStorage2DMultisample; +#define glTexStorage2DMultisample glad_glTexStorage2DMultisample +GLAD_API_CALL PFNGLTEXSTORAGE3DPROC glad_glTexStorage3D; +#define glTexStorage3D glad_glTexStorage3D +GLAD_API_CALL PFNGLTEXSTORAGE3DMULTISAMPLEPROC glad_glTexStorage3DMultisample; +#define glTexStorage3DMultisample glad_glTexStorage3DMultisample +GLAD_API_CALL PFNGLTEXSUBIMAGE1DPROC glad_glTexSubImage1D; +#define glTexSubImage1D glad_glTexSubImage1D +GLAD_API_CALL PFNGLTEXSUBIMAGE2DPROC glad_glTexSubImage2D; +#define glTexSubImage2D glad_glTexSubImage2D +GLAD_API_CALL PFNGLTEXSUBIMAGE3DPROC glad_glTexSubImage3D; +#define glTexSubImage3D glad_glTexSubImage3D +GLAD_API_CALL PFNGLTEXTUREBUFFERPROC glad_glTextureBuffer; +#define glTextureBuffer glad_glTextureBuffer +GLAD_API_CALL PFNGLTEXTUREBUFFERRANGEPROC glad_glTextureBufferRange; +#define glTextureBufferRange glad_glTextureBufferRange +GLAD_API_CALL PFNGLTEXTUREPARAMETERIIVPROC glad_glTextureParameterIiv; +#define glTextureParameterIiv glad_glTextureParameterIiv +GLAD_API_CALL PFNGLTEXTUREPARAMETERIUIVPROC glad_glTextureParameterIuiv; +#define glTextureParameterIuiv glad_glTextureParameterIuiv +GLAD_API_CALL PFNGLTEXTUREPARAMETERFPROC glad_glTextureParameterf; +#define glTextureParameterf glad_glTextureParameterf +GLAD_API_CALL PFNGLTEXTUREPARAMETERFVPROC glad_glTextureParameterfv; +#define glTextureParameterfv glad_glTextureParameterfv +GLAD_API_CALL PFNGLTEXTUREPARAMETERIPROC glad_glTextureParameteri; +#define glTextureParameteri glad_glTextureParameteri +GLAD_API_CALL PFNGLTEXTUREPARAMETERIVPROC glad_glTextureParameteriv; +#define glTextureParameteriv glad_glTextureParameteriv +GLAD_API_CALL PFNGLTEXTURESTORAGE1DPROC glad_glTextureStorage1D; +#define glTextureStorage1D glad_glTextureStorage1D +GLAD_API_CALL PFNGLTEXTURESTORAGE2DPROC glad_glTextureStorage2D; +#define glTextureStorage2D glad_glTextureStorage2D +GLAD_API_CALL PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC glad_glTextureStorage2DMultisample; +#define glTextureStorage2DMultisample glad_glTextureStorage2DMultisample +GLAD_API_CALL PFNGLTEXTURESTORAGE3DPROC glad_glTextureStorage3D; +#define glTextureStorage3D glad_glTextureStorage3D +GLAD_API_CALL PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC glad_glTextureStorage3DMultisample; +#define glTextureStorage3DMultisample glad_glTextureStorage3DMultisample +GLAD_API_CALL PFNGLTEXTURESUBIMAGE1DPROC glad_glTextureSubImage1D; +#define glTextureSubImage1D glad_glTextureSubImage1D +GLAD_API_CALL PFNGLTEXTURESUBIMAGE2DPROC glad_glTextureSubImage2D; +#define glTextureSubImage2D glad_glTextureSubImage2D +GLAD_API_CALL PFNGLTEXTURESUBIMAGE3DPROC glad_glTextureSubImage3D; +#define glTextureSubImage3D glad_glTextureSubImage3D +GLAD_API_CALL PFNGLTEXTUREVIEWPROC glad_glTextureView; +#define glTextureView glad_glTextureView +GLAD_API_CALL PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC glad_glTransformFeedbackBufferBase; +#define glTransformFeedbackBufferBase glad_glTransformFeedbackBufferBase +GLAD_API_CALL PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC glad_glTransformFeedbackBufferRange; +#define glTransformFeedbackBufferRange glad_glTransformFeedbackBufferRange +GLAD_API_CALL PFNGLTRANSFORMFEEDBACKVARYINGSPROC glad_glTransformFeedbackVaryings; +#define glTransformFeedbackVaryings glad_glTransformFeedbackVaryings +GLAD_API_CALL PFNGLTRANSLATEXOESPROC glad_glTranslatexOES; +#define glTranslatexOES glad_glTranslatexOES +GLAD_API_CALL PFNGLUNIFORM1DPROC glad_glUniform1d; +#define glUniform1d glad_glUniform1d +GLAD_API_CALL PFNGLUNIFORM1DVPROC glad_glUniform1dv; +#define glUniform1dv glad_glUniform1dv +GLAD_API_CALL PFNGLUNIFORM1FPROC glad_glUniform1f; +#define glUniform1f glad_glUniform1f +GLAD_API_CALL PFNGLUNIFORM1FARBPROC glad_glUniform1fARB; +#define glUniform1fARB glad_glUniform1fARB +GLAD_API_CALL PFNGLUNIFORM1FVPROC glad_glUniform1fv; +#define glUniform1fv glad_glUniform1fv +GLAD_API_CALL PFNGLUNIFORM1FVARBPROC glad_glUniform1fvARB; +#define glUniform1fvARB glad_glUniform1fvARB +GLAD_API_CALL PFNGLUNIFORM1IPROC glad_glUniform1i; +#define glUniform1i glad_glUniform1i +GLAD_API_CALL PFNGLUNIFORM1I64ARBPROC glad_glUniform1i64ARB; +#define glUniform1i64ARB glad_glUniform1i64ARB +GLAD_API_CALL PFNGLUNIFORM1I64VARBPROC glad_glUniform1i64vARB; +#define glUniform1i64vARB glad_glUniform1i64vARB +GLAD_API_CALL PFNGLUNIFORM1IARBPROC glad_glUniform1iARB; +#define glUniform1iARB glad_glUniform1iARB +GLAD_API_CALL PFNGLUNIFORM1IVPROC glad_glUniform1iv; +#define glUniform1iv glad_glUniform1iv +GLAD_API_CALL PFNGLUNIFORM1IVARBPROC glad_glUniform1ivARB; +#define glUniform1ivARB glad_glUniform1ivARB +GLAD_API_CALL PFNGLUNIFORM1UIPROC glad_glUniform1ui; +#define glUniform1ui glad_glUniform1ui +GLAD_API_CALL PFNGLUNIFORM1UI64ARBPROC glad_glUniform1ui64ARB; +#define glUniform1ui64ARB glad_glUniform1ui64ARB +GLAD_API_CALL PFNGLUNIFORM1UI64VARBPROC glad_glUniform1ui64vARB; +#define glUniform1ui64vARB glad_glUniform1ui64vARB +GLAD_API_CALL PFNGLUNIFORM1UIVPROC glad_glUniform1uiv; +#define glUniform1uiv glad_glUniform1uiv +GLAD_API_CALL PFNGLUNIFORM2DPROC glad_glUniform2d; +#define glUniform2d glad_glUniform2d +GLAD_API_CALL PFNGLUNIFORM2DVPROC glad_glUniform2dv; +#define glUniform2dv glad_glUniform2dv +GLAD_API_CALL PFNGLUNIFORM2FPROC glad_glUniform2f; +#define glUniform2f glad_glUniform2f +GLAD_API_CALL PFNGLUNIFORM2FARBPROC glad_glUniform2fARB; +#define glUniform2fARB glad_glUniform2fARB +GLAD_API_CALL PFNGLUNIFORM2FVPROC glad_glUniform2fv; +#define glUniform2fv glad_glUniform2fv +GLAD_API_CALL PFNGLUNIFORM2FVARBPROC glad_glUniform2fvARB; +#define glUniform2fvARB glad_glUniform2fvARB +GLAD_API_CALL PFNGLUNIFORM2IPROC glad_glUniform2i; +#define glUniform2i glad_glUniform2i +GLAD_API_CALL PFNGLUNIFORM2I64ARBPROC glad_glUniform2i64ARB; +#define glUniform2i64ARB glad_glUniform2i64ARB +GLAD_API_CALL PFNGLUNIFORM2I64VARBPROC glad_glUniform2i64vARB; +#define glUniform2i64vARB glad_glUniform2i64vARB +GLAD_API_CALL PFNGLUNIFORM2IARBPROC glad_glUniform2iARB; +#define glUniform2iARB glad_glUniform2iARB +GLAD_API_CALL PFNGLUNIFORM2IVPROC glad_glUniform2iv; +#define glUniform2iv glad_glUniform2iv +GLAD_API_CALL PFNGLUNIFORM2IVARBPROC glad_glUniform2ivARB; +#define glUniform2ivARB glad_glUniform2ivARB +GLAD_API_CALL PFNGLUNIFORM2UIPROC glad_glUniform2ui; +#define glUniform2ui glad_glUniform2ui +GLAD_API_CALL PFNGLUNIFORM2UI64ARBPROC glad_glUniform2ui64ARB; +#define glUniform2ui64ARB glad_glUniform2ui64ARB +GLAD_API_CALL PFNGLUNIFORM2UI64VARBPROC glad_glUniform2ui64vARB; +#define glUniform2ui64vARB glad_glUniform2ui64vARB +GLAD_API_CALL PFNGLUNIFORM2UIVPROC glad_glUniform2uiv; +#define glUniform2uiv glad_glUniform2uiv +GLAD_API_CALL PFNGLUNIFORM3DPROC glad_glUniform3d; +#define glUniform3d glad_glUniform3d +GLAD_API_CALL PFNGLUNIFORM3DVPROC glad_glUniform3dv; +#define glUniform3dv glad_glUniform3dv +GLAD_API_CALL PFNGLUNIFORM3FPROC glad_glUniform3f; +#define glUniform3f glad_glUniform3f +GLAD_API_CALL PFNGLUNIFORM3FARBPROC glad_glUniform3fARB; +#define glUniform3fARB glad_glUniform3fARB +GLAD_API_CALL PFNGLUNIFORM3FVPROC glad_glUniform3fv; +#define glUniform3fv glad_glUniform3fv +GLAD_API_CALL PFNGLUNIFORM3FVARBPROC glad_glUniform3fvARB; +#define glUniform3fvARB glad_glUniform3fvARB +GLAD_API_CALL PFNGLUNIFORM3IPROC glad_glUniform3i; +#define glUniform3i glad_glUniform3i +GLAD_API_CALL PFNGLUNIFORM3I64ARBPROC glad_glUniform3i64ARB; +#define glUniform3i64ARB glad_glUniform3i64ARB +GLAD_API_CALL PFNGLUNIFORM3I64VARBPROC glad_glUniform3i64vARB; +#define glUniform3i64vARB glad_glUniform3i64vARB +GLAD_API_CALL PFNGLUNIFORM3IARBPROC glad_glUniform3iARB; +#define glUniform3iARB glad_glUniform3iARB +GLAD_API_CALL PFNGLUNIFORM3IVPROC glad_glUniform3iv; +#define glUniform3iv glad_glUniform3iv +GLAD_API_CALL PFNGLUNIFORM3IVARBPROC glad_glUniform3ivARB; +#define glUniform3ivARB glad_glUniform3ivARB +GLAD_API_CALL PFNGLUNIFORM3UIPROC glad_glUniform3ui; +#define glUniform3ui glad_glUniform3ui +GLAD_API_CALL PFNGLUNIFORM3UI64ARBPROC glad_glUniform3ui64ARB; +#define glUniform3ui64ARB glad_glUniform3ui64ARB +GLAD_API_CALL PFNGLUNIFORM3UI64VARBPROC glad_glUniform3ui64vARB; +#define glUniform3ui64vARB glad_glUniform3ui64vARB +GLAD_API_CALL PFNGLUNIFORM3UIVPROC glad_glUniform3uiv; +#define glUniform3uiv glad_glUniform3uiv +GLAD_API_CALL PFNGLUNIFORM4DPROC glad_glUniform4d; +#define glUniform4d glad_glUniform4d +GLAD_API_CALL PFNGLUNIFORM4DVPROC glad_glUniform4dv; +#define glUniform4dv glad_glUniform4dv +GLAD_API_CALL PFNGLUNIFORM4FPROC glad_glUniform4f; +#define glUniform4f glad_glUniform4f +GLAD_API_CALL PFNGLUNIFORM4FARBPROC glad_glUniform4fARB; +#define glUniform4fARB glad_glUniform4fARB +GLAD_API_CALL PFNGLUNIFORM4FVPROC glad_glUniform4fv; +#define glUniform4fv glad_glUniform4fv +GLAD_API_CALL PFNGLUNIFORM4FVARBPROC glad_glUniform4fvARB; +#define glUniform4fvARB glad_glUniform4fvARB +GLAD_API_CALL PFNGLUNIFORM4IPROC glad_glUniform4i; +#define glUniform4i glad_glUniform4i +GLAD_API_CALL PFNGLUNIFORM4I64ARBPROC glad_glUniform4i64ARB; +#define glUniform4i64ARB glad_glUniform4i64ARB +GLAD_API_CALL PFNGLUNIFORM4I64VARBPROC glad_glUniform4i64vARB; +#define glUniform4i64vARB glad_glUniform4i64vARB +GLAD_API_CALL PFNGLUNIFORM4IARBPROC glad_glUniform4iARB; +#define glUniform4iARB glad_glUniform4iARB +GLAD_API_CALL PFNGLUNIFORM4IVPROC glad_glUniform4iv; +#define glUniform4iv glad_glUniform4iv +GLAD_API_CALL PFNGLUNIFORM4IVARBPROC glad_glUniform4ivARB; +#define glUniform4ivARB glad_glUniform4ivARB +GLAD_API_CALL PFNGLUNIFORM4UIPROC glad_glUniform4ui; +#define glUniform4ui glad_glUniform4ui +GLAD_API_CALL PFNGLUNIFORM4UI64ARBPROC glad_glUniform4ui64ARB; +#define glUniform4ui64ARB glad_glUniform4ui64ARB +GLAD_API_CALL PFNGLUNIFORM4UI64VARBPROC glad_glUniform4ui64vARB; +#define glUniform4ui64vARB glad_glUniform4ui64vARB +GLAD_API_CALL PFNGLUNIFORM4UIVPROC glad_glUniform4uiv; +#define glUniform4uiv glad_glUniform4uiv +GLAD_API_CALL PFNGLUNIFORMBLOCKBINDINGPROC glad_glUniformBlockBinding; +#define glUniformBlockBinding glad_glUniformBlockBinding +GLAD_API_CALL PFNGLUNIFORMMATRIX2DVPROC glad_glUniformMatrix2dv; +#define glUniformMatrix2dv glad_glUniformMatrix2dv +GLAD_API_CALL PFNGLUNIFORMMATRIX2FVPROC glad_glUniformMatrix2fv; +#define glUniformMatrix2fv glad_glUniformMatrix2fv +GLAD_API_CALL PFNGLUNIFORMMATRIX2FVARBPROC glad_glUniformMatrix2fvARB; +#define glUniformMatrix2fvARB glad_glUniformMatrix2fvARB +GLAD_API_CALL PFNGLUNIFORMMATRIX2X3DVPROC glad_glUniformMatrix2x3dv; +#define glUniformMatrix2x3dv glad_glUniformMatrix2x3dv +GLAD_API_CALL PFNGLUNIFORMMATRIX2X3FVPROC glad_glUniformMatrix2x3fv; +#define glUniformMatrix2x3fv glad_glUniformMatrix2x3fv +GLAD_API_CALL PFNGLUNIFORMMATRIX2X4DVPROC glad_glUniformMatrix2x4dv; +#define glUniformMatrix2x4dv glad_glUniformMatrix2x4dv +GLAD_API_CALL PFNGLUNIFORMMATRIX2X4FVPROC glad_glUniformMatrix2x4fv; +#define glUniformMatrix2x4fv glad_glUniformMatrix2x4fv +GLAD_API_CALL PFNGLUNIFORMMATRIX3DVPROC glad_glUniformMatrix3dv; +#define glUniformMatrix3dv glad_glUniformMatrix3dv +GLAD_API_CALL PFNGLUNIFORMMATRIX3FVPROC glad_glUniformMatrix3fv; +#define glUniformMatrix3fv glad_glUniformMatrix3fv +GLAD_API_CALL PFNGLUNIFORMMATRIX3FVARBPROC glad_glUniformMatrix3fvARB; +#define glUniformMatrix3fvARB glad_glUniformMatrix3fvARB +GLAD_API_CALL PFNGLUNIFORMMATRIX3X2DVPROC glad_glUniformMatrix3x2dv; +#define glUniformMatrix3x2dv glad_glUniformMatrix3x2dv +GLAD_API_CALL PFNGLUNIFORMMATRIX3X2FVPROC glad_glUniformMatrix3x2fv; +#define glUniformMatrix3x2fv glad_glUniformMatrix3x2fv +GLAD_API_CALL PFNGLUNIFORMMATRIX3X4DVPROC glad_glUniformMatrix3x4dv; +#define glUniformMatrix3x4dv glad_glUniformMatrix3x4dv +GLAD_API_CALL PFNGLUNIFORMMATRIX3X4FVPROC glad_glUniformMatrix3x4fv; +#define glUniformMatrix3x4fv glad_glUniformMatrix3x4fv +GLAD_API_CALL PFNGLUNIFORMMATRIX4DVPROC glad_glUniformMatrix4dv; +#define glUniformMatrix4dv glad_glUniformMatrix4dv +GLAD_API_CALL PFNGLUNIFORMMATRIX4FVPROC glad_glUniformMatrix4fv; +#define glUniformMatrix4fv glad_glUniformMatrix4fv +GLAD_API_CALL PFNGLUNIFORMMATRIX4FVARBPROC glad_glUniformMatrix4fvARB; +#define glUniformMatrix4fvARB glad_glUniformMatrix4fvARB +GLAD_API_CALL PFNGLUNIFORMMATRIX4X2DVPROC glad_glUniformMatrix4x2dv; +#define glUniformMatrix4x2dv glad_glUniformMatrix4x2dv +GLAD_API_CALL PFNGLUNIFORMMATRIX4X2FVPROC glad_glUniformMatrix4x2fv; +#define glUniformMatrix4x2fv glad_glUniformMatrix4x2fv +GLAD_API_CALL PFNGLUNIFORMMATRIX4X3DVPROC glad_glUniformMatrix4x3dv; +#define glUniformMatrix4x3dv glad_glUniformMatrix4x3dv +GLAD_API_CALL PFNGLUNIFORMMATRIX4X3FVPROC glad_glUniformMatrix4x3fv; +#define glUniformMatrix4x3fv glad_glUniformMatrix4x3fv +GLAD_API_CALL PFNGLUNIFORMSUBROUTINESUIVPROC glad_glUniformSubroutinesuiv; +#define glUniformSubroutinesuiv glad_glUniformSubroutinesuiv +GLAD_API_CALL PFNGLUNMAPBUFFERPROC glad_glUnmapBuffer; +#define glUnmapBuffer glad_glUnmapBuffer +GLAD_API_CALL PFNGLUNMAPBUFFERARBPROC glad_glUnmapBufferARB; +#define glUnmapBufferARB glad_glUnmapBufferARB +GLAD_API_CALL PFNGLUNMAPNAMEDBUFFERPROC glad_glUnmapNamedBuffer; +#define glUnmapNamedBuffer glad_glUnmapNamedBuffer +GLAD_API_CALL PFNGLUSEPROGRAMPROC glad_glUseProgram; +#define glUseProgram glad_glUseProgram +GLAD_API_CALL PFNGLUSEPROGRAMOBJECTARBPROC glad_glUseProgramObjectARB; +#define glUseProgramObjectARB glad_glUseProgramObjectARB +GLAD_API_CALL PFNGLUSEPROGRAMSTAGESPROC glad_glUseProgramStages; +#define glUseProgramStages glad_glUseProgramStages +GLAD_API_CALL PFNGLVALIDATEPROGRAMPROC glad_glValidateProgram; +#define glValidateProgram glad_glValidateProgram +GLAD_API_CALL PFNGLVALIDATEPROGRAMARBPROC glad_glValidateProgramARB; +#define glValidateProgramARB glad_glValidateProgramARB +GLAD_API_CALL PFNGLVALIDATEPROGRAMPIPELINEPROC glad_glValidateProgramPipeline; +#define glValidateProgramPipeline glad_glValidateProgramPipeline +GLAD_API_CALL PFNGLVERTEX2XOESPROC glad_glVertex2xOES; +#define glVertex2xOES glad_glVertex2xOES +GLAD_API_CALL PFNGLVERTEX2XVOESPROC glad_glVertex2xvOES; +#define glVertex2xvOES glad_glVertex2xvOES +GLAD_API_CALL PFNGLVERTEX3XOESPROC glad_glVertex3xOES; +#define glVertex3xOES glad_glVertex3xOES +GLAD_API_CALL PFNGLVERTEX3XVOESPROC glad_glVertex3xvOES; +#define glVertex3xvOES glad_glVertex3xvOES +GLAD_API_CALL PFNGLVERTEX4XOESPROC glad_glVertex4xOES; +#define glVertex4xOES glad_glVertex4xOES +GLAD_API_CALL PFNGLVERTEX4XVOESPROC glad_glVertex4xvOES; +#define glVertex4xvOES glad_glVertex4xvOES +GLAD_API_CALL PFNGLVERTEXARRAYATTRIBBINDINGPROC glad_glVertexArrayAttribBinding; +#define glVertexArrayAttribBinding glad_glVertexArrayAttribBinding +GLAD_API_CALL PFNGLVERTEXARRAYATTRIBFORMATPROC glad_glVertexArrayAttribFormat; +#define glVertexArrayAttribFormat glad_glVertexArrayAttribFormat +GLAD_API_CALL PFNGLVERTEXARRAYATTRIBIFORMATPROC glad_glVertexArrayAttribIFormat; +#define glVertexArrayAttribIFormat glad_glVertexArrayAttribIFormat +GLAD_API_CALL PFNGLVERTEXARRAYATTRIBLFORMATPROC glad_glVertexArrayAttribLFormat; +#define glVertexArrayAttribLFormat glad_glVertexArrayAttribLFormat +GLAD_API_CALL PFNGLVERTEXARRAYBINDINGDIVISORPROC glad_glVertexArrayBindingDivisor; +#define glVertexArrayBindingDivisor glad_glVertexArrayBindingDivisor +GLAD_API_CALL PFNGLVERTEXARRAYELEMENTBUFFERPROC glad_glVertexArrayElementBuffer; +#define glVertexArrayElementBuffer glad_glVertexArrayElementBuffer +GLAD_API_CALL PFNGLVERTEXARRAYVERTEXBUFFERPROC glad_glVertexArrayVertexBuffer; +#define glVertexArrayVertexBuffer glad_glVertexArrayVertexBuffer +GLAD_API_CALL PFNGLVERTEXARRAYVERTEXBUFFERSPROC glad_glVertexArrayVertexBuffers; +#define glVertexArrayVertexBuffers glad_glVertexArrayVertexBuffers +GLAD_API_CALL PFNGLVERTEXATTRIB1DPROC glad_glVertexAttrib1d; +#define glVertexAttrib1d glad_glVertexAttrib1d +GLAD_API_CALL PFNGLVERTEXATTRIB1DARBPROC glad_glVertexAttrib1dARB; +#define glVertexAttrib1dARB glad_glVertexAttrib1dARB +GLAD_API_CALL PFNGLVERTEXATTRIB1DVPROC glad_glVertexAttrib1dv; +#define glVertexAttrib1dv glad_glVertexAttrib1dv +GLAD_API_CALL PFNGLVERTEXATTRIB1DVARBPROC glad_glVertexAttrib1dvARB; +#define glVertexAttrib1dvARB glad_glVertexAttrib1dvARB +GLAD_API_CALL PFNGLVERTEXATTRIB1FPROC glad_glVertexAttrib1f; +#define glVertexAttrib1f glad_glVertexAttrib1f +GLAD_API_CALL PFNGLVERTEXATTRIB1FARBPROC glad_glVertexAttrib1fARB; +#define glVertexAttrib1fARB glad_glVertexAttrib1fARB +GLAD_API_CALL PFNGLVERTEXATTRIB1FVPROC glad_glVertexAttrib1fv; +#define glVertexAttrib1fv glad_glVertexAttrib1fv +GLAD_API_CALL PFNGLVERTEXATTRIB1FVARBPROC glad_glVertexAttrib1fvARB; +#define glVertexAttrib1fvARB glad_glVertexAttrib1fvARB +GLAD_API_CALL PFNGLVERTEXATTRIB1SPROC glad_glVertexAttrib1s; +#define glVertexAttrib1s glad_glVertexAttrib1s +GLAD_API_CALL PFNGLVERTEXATTRIB1SARBPROC glad_glVertexAttrib1sARB; +#define glVertexAttrib1sARB glad_glVertexAttrib1sARB +GLAD_API_CALL PFNGLVERTEXATTRIB1SVPROC glad_glVertexAttrib1sv; +#define glVertexAttrib1sv glad_glVertexAttrib1sv +GLAD_API_CALL PFNGLVERTEXATTRIB1SVARBPROC glad_glVertexAttrib1svARB; +#define glVertexAttrib1svARB glad_glVertexAttrib1svARB +GLAD_API_CALL PFNGLVERTEXATTRIB2DPROC glad_glVertexAttrib2d; +#define glVertexAttrib2d glad_glVertexAttrib2d +GLAD_API_CALL PFNGLVERTEXATTRIB2DARBPROC glad_glVertexAttrib2dARB; +#define glVertexAttrib2dARB glad_glVertexAttrib2dARB +GLAD_API_CALL PFNGLVERTEXATTRIB2DVPROC glad_glVertexAttrib2dv; +#define glVertexAttrib2dv glad_glVertexAttrib2dv +GLAD_API_CALL PFNGLVERTEXATTRIB2DVARBPROC glad_glVertexAttrib2dvARB; +#define glVertexAttrib2dvARB glad_glVertexAttrib2dvARB +GLAD_API_CALL PFNGLVERTEXATTRIB2FPROC glad_glVertexAttrib2f; +#define glVertexAttrib2f glad_glVertexAttrib2f +GLAD_API_CALL PFNGLVERTEXATTRIB2FARBPROC glad_glVertexAttrib2fARB; +#define glVertexAttrib2fARB glad_glVertexAttrib2fARB +GLAD_API_CALL PFNGLVERTEXATTRIB2FVPROC glad_glVertexAttrib2fv; +#define glVertexAttrib2fv glad_glVertexAttrib2fv +GLAD_API_CALL PFNGLVERTEXATTRIB2FVARBPROC glad_glVertexAttrib2fvARB; +#define glVertexAttrib2fvARB glad_glVertexAttrib2fvARB +GLAD_API_CALL PFNGLVERTEXATTRIB2SPROC glad_glVertexAttrib2s; +#define glVertexAttrib2s glad_glVertexAttrib2s +GLAD_API_CALL PFNGLVERTEXATTRIB2SARBPROC glad_glVertexAttrib2sARB; +#define glVertexAttrib2sARB glad_glVertexAttrib2sARB +GLAD_API_CALL PFNGLVERTEXATTRIB2SVPROC glad_glVertexAttrib2sv; +#define glVertexAttrib2sv glad_glVertexAttrib2sv +GLAD_API_CALL PFNGLVERTEXATTRIB2SVARBPROC glad_glVertexAttrib2svARB; +#define glVertexAttrib2svARB glad_glVertexAttrib2svARB +GLAD_API_CALL PFNGLVERTEXATTRIB3DPROC glad_glVertexAttrib3d; +#define glVertexAttrib3d glad_glVertexAttrib3d +GLAD_API_CALL PFNGLVERTEXATTRIB3DARBPROC glad_glVertexAttrib3dARB; +#define glVertexAttrib3dARB glad_glVertexAttrib3dARB +GLAD_API_CALL PFNGLVERTEXATTRIB3DVPROC glad_glVertexAttrib3dv; +#define glVertexAttrib3dv glad_glVertexAttrib3dv +GLAD_API_CALL PFNGLVERTEXATTRIB3DVARBPROC glad_glVertexAttrib3dvARB; +#define glVertexAttrib3dvARB glad_glVertexAttrib3dvARB +GLAD_API_CALL PFNGLVERTEXATTRIB3FPROC glad_glVertexAttrib3f; +#define glVertexAttrib3f glad_glVertexAttrib3f +GLAD_API_CALL PFNGLVERTEXATTRIB3FARBPROC glad_glVertexAttrib3fARB; +#define glVertexAttrib3fARB glad_glVertexAttrib3fARB +GLAD_API_CALL PFNGLVERTEXATTRIB3FVPROC glad_glVertexAttrib3fv; +#define glVertexAttrib3fv glad_glVertexAttrib3fv +GLAD_API_CALL PFNGLVERTEXATTRIB3FVARBPROC glad_glVertexAttrib3fvARB; +#define glVertexAttrib3fvARB glad_glVertexAttrib3fvARB +GLAD_API_CALL PFNGLVERTEXATTRIB3SPROC glad_glVertexAttrib3s; +#define glVertexAttrib3s glad_glVertexAttrib3s +GLAD_API_CALL PFNGLVERTEXATTRIB3SARBPROC glad_glVertexAttrib3sARB; +#define glVertexAttrib3sARB glad_glVertexAttrib3sARB +GLAD_API_CALL PFNGLVERTEXATTRIB3SVPROC glad_glVertexAttrib3sv; +#define glVertexAttrib3sv glad_glVertexAttrib3sv +GLAD_API_CALL PFNGLVERTEXATTRIB3SVARBPROC glad_glVertexAttrib3svARB; +#define glVertexAttrib3svARB glad_glVertexAttrib3svARB +GLAD_API_CALL PFNGLVERTEXATTRIB4NBVPROC glad_glVertexAttrib4Nbv; +#define glVertexAttrib4Nbv glad_glVertexAttrib4Nbv +GLAD_API_CALL PFNGLVERTEXATTRIB4NBVARBPROC glad_glVertexAttrib4NbvARB; +#define glVertexAttrib4NbvARB glad_glVertexAttrib4NbvARB +GLAD_API_CALL PFNGLVERTEXATTRIB4NIVPROC glad_glVertexAttrib4Niv; +#define glVertexAttrib4Niv glad_glVertexAttrib4Niv +GLAD_API_CALL PFNGLVERTEXATTRIB4NIVARBPROC glad_glVertexAttrib4NivARB; +#define glVertexAttrib4NivARB glad_glVertexAttrib4NivARB +GLAD_API_CALL PFNGLVERTEXATTRIB4NSVPROC glad_glVertexAttrib4Nsv; +#define glVertexAttrib4Nsv glad_glVertexAttrib4Nsv +GLAD_API_CALL PFNGLVERTEXATTRIB4NSVARBPROC glad_glVertexAttrib4NsvARB; +#define glVertexAttrib4NsvARB glad_glVertexAttrib4NsvARB +GLAD_API_CALL PFNGLVERTEXATTRIB4NUBPROC glad_glVertexAttrib4Nub; +#define glVertexAttrib4Nub glad_glVertexAttrib4Nub +GLAD_API_CALL PFNGLVERTEXATTRIB4NUBARBPROC glad_glVertexAttrib4NubARB; +#define glVertexAttrib4NubARB glad_glVertexAttrib4NubARB +GLAD_API_CALL PFNGLVERTEXATTRIB4NUBVPROC glad_glVertexAttrib4Nubv; +#define glVertexAttrib4Nubv glad_glVertexAttrib4Nubv +GLAD_API_CALL PFNGLVERTEXATTRIB4NUBVARBPROC glad_glVertexAttrib4NubvARB; +#define glVertexAttrib4NubvARB glad_glVertexAttrib4NubvARB +GLAD_API_CALL PFNGLVERTEXATTRIB4NUIVPROC glad_glVertexAttrib4Nuiv; +#define glVertexAttrib4Nuiv glad_glVertexAttrib4Nuiv +GLAD_API_CALL PFNGLVERTEXATTRIB4NUIVARBPROC glad_glVertexAttrib4NuivARB; +#define glVertexAttrib4NuivARB glad_glVertexAttrib4NuivARB +GLAD_API_CALL PFNGLVERTEXATTRIB4NUSVPROC glad_glVertexAttrib4Nusv; +#define glVertexAttrib4Nusv glad_glVertexAttrib4Nusv +GLAD_API_CALL PFNGLVERTEXATTRIB4NUSVARBPROC glad_glVertexAttrib4NusvARB; +#define glVertexAttrib4NusvARB glad_glVertexAttrib4NusvARB +GLAD_API_CALL PFNGLVERTEXATTRIB4BVPROC glad_glVertexAttrib4bv; +#define glVertexAttrib4bv glad_glVertexAttrib4bv +GLAD_API_CALL PFNGLVERTEXATTRIB4BVARBPROC glad_glVertexAttrib4bvARB; +#define glVertexAttrib4bvARB glad_glVertexAttrib4bvARB +GLAD_API_CALL PFNGLVERTEXATTRIB4DPROC glad_glVertexAttrib4d; +#define glVertexAttrib4d glad_glVertexAttrib4d +GLAD_API_CALL PFNGLVERTEXATTRIB4DARBPROC glad_glVertexAttrib4dARB; +#define glVertexAttrib4dARB glad_glVertexAttrib4dARB +GLAD_API_CALL PFNGLVERTEXATTRIB4DVPROC glad_glVertexAttrib4dv; +#define glVertexAttrib4dv glad_glVertexAttrib4dv +GLAD_API_CALL PFNGLVERTEXATTRIB4DVARBPROC glad_glVertexAttrib4dvARB; +#define glVertexAttrib4dvARB glad_glVertexAttrib4dvARB +GLAD_API_CALL PFNGLVERTEXATTRIB4FPROC glad_glVertexAttrib4f; +#define glVertexAttrib4f glad_glVertexAttrib4f +GLAD_API_CALL PFNGLVERTEXATTRIB4FARBPROC glad_glVertexAttrib4fARB; +#define glVertexAttrib4fARB glad_glVertexAttrib4fARB +GLAD_API_CALL PFNGLVERTEXATTRIB4FVPROC glad_glVertexAttrib4fv; +#define glVertexAttrib4fv glad_glVertexAttrib4fv +GLAD_API_CALL PFNGLVERTEXATTRIB4FVARBPROC glad_glVertexAttrib4fvARB; +#define glVertexAttrib4fvARB glad_glVertexAttrib4fvARB +GLAD_API_CALL PFNGLVERTEXATTRIB4IVPROC glad_glVertexAttrib4iv; +#define glVertexAttrib4iv glad_glVertexAttrib4iv +GLAD_API_CALL PFNGLVERTEXATTRIB4IVARBPROC glad_glVertexAttrib4ivARB; +#define glVertexAttrib4ivARB glad_glVertexAttrib4ivARB +GLAD_API_CALL PFNGLVERTEXATTRIB4SPROC glad_glVertexAttrib4s; +#define glVertexAttrib4s glad_glVertexAttrib4s +GLAD_API_CALL PFNGLVERTEXATTRIB4SARBPROC glad_glVertexAttrib4sARB; +#define glVertexAttrib4sARB glad_glVertexAttrib4sARB +GLAD_API_CALL PFNGLVERTEXATTRIB4SVPROC glad_glVertexAttrib4sv; +#define glVertexAttrib4sv glad_glVertexAttrib4sv +GLAD_API_CALL PFNGLVERTEXATTRIB4SVARBPROC glad_glVertexAttrib4svARB; +#define glVertexAttrib4svARB glad_glVertexAttrib4svARB +GLAD_API_CALL PFNGLVERTEXATTRIB4UBVPROC glad_glVertexAttrib4ubv; +#define glVertexAttrib4ubv glad_glVertexAttrib4ubv +GLAD_API_CALL PFNGLVERTEXATTRIB4UBVARBPROC glad_glVertexAttrib4ubvARB; +#define glVertexAttrib4ubvARB glad_glVertexAttrib4ubvARB +GLAD_API_CALL PFNGLVERTEXATTRIB4UIVPROC glad_glVertexAttrib4uiv; +#define glVertexAttrib4uiv glad_glVertexAttrib4uiv +GLAD_API_CALL PFNGLVERTEXATTRIB4UIVARBPROC glad_glVertexAttrib4uivARB; +#define glVertexAttrib4uivARB glad_glVertexAttrib4uivARB +GLAD_API_CALL PFNGLVERTEXATTRIB4USVPROC glad_glVertexAttrib4usv; +#define glVertexAttrib4usv glad_glVertexAttrib4usv +GLAD_API_CALL PFNGLVERTEXATTRIB4USVARBPROC glad_glVertexAttrib4usvARB; +#define glVertexAttrib4usvARB glad_glVertexAttrib4usvARB +GLAD_API_CALL PFNGLVERTEXATTRIBBINDINGPROC glad_glVertexAttribBinding; +#define glVertexAttribBinding glad_glVertexAttribBinding +GLAD_API_CALL PFNGLVERTEXATTRIBDIVISORPROC glad_glVertexAttribDivisor; +#define glVertexAttribDivisor glad_glVertexAttribDivisor +GLAD_API_CALL PFNGLVERTEXATTRIBDIVISORARBPROC glad_glVertexAttribDivisorARB; +#define glVertexAttribDivisorARB glad_glVertexAttribDivisorARB +GLAD_API_CALL PFNGLVERTEXATTRIBFORMATPROC glad_glVertexAttribFormat; +#define glVertexAttribFormat glad_glVertexAttribFormat +GLAD_API_CALL PFNGLVERTEXATTRIBI1IPROC glad_glVertexAttribI1i; +#define glVertexAttribI1i glad_glVertexAttribI1i +GLAD_API_CALL PFNGLVERTEXATTRIBI1IVPROC glad_glVertexAttribI1iv; +#define glVertexAttribI1iv glad_glVertexAttribI1iv +GLAD_API_CALL PFNGLVERTEXATTRIBI1UIPROC glad_glVertexAttribI1ui; +#define glVertexAttribI1ui glad_glVertexAttribI1ui +GLAD_API_CALL PFNGLVERTEXATTRIBI1UIVPROC glad_glVertexAttribI1uiv; +#define glVertexAttribI1uiv glad_glVertexAttribI1uiv +GLAD_API_CALL PFNGLVERTEXATTRIBI2IPROC glad_glVertexAttribI2i; +#define glVertexAttribI2i glad_glVertexAttribI2i +GLAD_API_CALL PFNGLVERTEXATTRIBI2IVPROC glad_glVertexAttribI2iv; +#define glVertexAttribI2iv glad_glVertexAttribI2iv +GLAD_API_CALL PFNGLVERTEXATTRIBI2UIPROC glad_glVertexAttribI2ui; +#define glVertexAttribI2ui glad_glVertexAttribI2ui +GLAD_API_CALL PFNGLVERTEXATTRIBI2UIVPROC glad_glVertexAttribI2uiv; +#define glVertexAttribI2uiv glad_glVertexAttribI2uiv +GLAD_API_CALL PFNGLVERTEXATTRIBI3IPROC glad_glVertexAttribI3i; +#define glVertexAttribI3i glad_glVertexAttribI3i +GLAD_API_CALL PFNGLVERTEXATTRIBI3IVPROC glad_glVertexAttribI3iv; +#define glVertexAttribI3iv glad_glVertexAttribI3iv +GLAD_API_CALL PFNGLVERTEXATTRIBI3UIPROC glad_glVertexAttribI3ui; +#define glVertexAttribI3ui glad_glVertexAttribI3ui +GLAD_API_CALL PFNGLVERTEXATTRIBI3UIVPROC glad_glVertexAttribI3uiv; +#define glVertexAttribI3uiv glad_glVertexAttribI3uiv +GLAD_API_CALL PFNGLVERTEXATTRIBI4BVPROC glad_glVertexAttribI4bv; +#define glVertexAttribI4bv glad_glVertexAttribI4bv +GLAD_API_CALL PFNGLVERTEXATTRIBI4IPROC glad_glVertexAttribI4i; +#define glVertexAttribI4i glad_glVertexAttribI4i +GLAD_API_CALL PFNGLVERTEXATTRIBI4IVPROC glad_glVertexAttribI4iv; +#define glVertexAttribI4iv glad_glVertexAttribI4iv +GLAD_API_CALL PFNGLVERTEXATTRIBI4SVPROC glad_glVertexAttribI4sv; +#define glVertexAttribI4sv glad_glVertexAttribI4sv +GLAD_API_CALL PFNGLVERTEXATTRIBI4UBVPROC glad_glVertexAttribI4ubv; +#define glVertexAttribI4ubv glad_glVertexAttribI4ubv +GLAD_API_CALL PFNGLVERTEXATTRIBI4UIPROC glad_glVertexAttribI4ui; +#define glVertexAttribI4ui glad_glVertexAttribI4ui +GLAD_API_CALL PFNGLVERTEXATTRIBI4UIVPROC glad_glVertexAttribI4uiv; +#define glVertexAttribI4uiv glad_glVertexAttribI4uiv +GLAD_API_CALL PFNGLVERTEXATTRIBI4USVPROC glad_glVertexAttribI4usv; +#define glVertexAttribI4usv glad_glVertexAttribI4usv +GLAD_API_CALL PFNGLVERTEXATTRIBIFORMATPROC glad_glVertexAttribIFormat; +#define glVertexAttribIFormat glad_glVertexAttribIFormat +GLAD_API_CALL PFNGLVERTEXATTRIBIPOINTERPROC glad_glVertexAttribIPointer; +#define glVertexAttribIPointer glad_glVertexAttribIPointer +GLAD_API_CALL PFNGLVERTEXATTRIBL1DPROC glad_glVertexAttribL1d; +#define glVertexAttribL1d glad_glVertexAttribL1d +GLAD_API_CALL PFNGLVERTEXATTRIBL1DVPROC glad_glVertexAttribL1dv; +#define glVertexAttribL1dv glad_glVertexAttribL1dv +GLAD_API_CALL PFNGLVERTEXATTRIBL2DPROC glad_glVertexAttribL2d; +#define glVertexAttribL2d glad_glVertexAttribL2d +GLAD_API_CALL PFNGLVERTEXATTRIBL2DVPROC glad_glVertexAttribL2dv; +#define glVertexAttribL2dv glad_glVertexAttribL2dv +GLAD_API_CALL PFNGLVERTEXATTRIBL3DPROC glad_glVertexAttribL3d; +#define glVertexAttribL3d glad_glVertexAttribL3d +GLAD_API_CALL PFNGLVERTEXATTRIBL3DVPROC glad_glVertexAttribL3dv; +#define glVertexAttribL3dv glad_glVertexAttribL3dv +GLAD_API_CALL PFNGLVERTEXATTRIBL4DPROC glad_glVertexAttribL4d; +#define glVertexAttribL4d glad_glVertexAttribL4d +GLAD_API_CALL PFNGLVERTEXATTRIBL4DVPROC glad_glVertexAttribL4dv; +#define glVertexAttribL4dv glad_glVertexAttribL4dv +GLAD_API_CALL PFNGLVERTEXATTRIBLFORMATPROC glad_glVertexAttribLFormat; +#define glVertexAttribLFormat glad_glVertexAttribLFormat +GLAD_API_CALL PFNGLVERTEXATTRIBLPOINTERPROC glad_glVertexAttribLPointer; +#define glVertexAttribLPointer glad_glVertexAttribLPointer +GLAD_API_CALL PFNGLVERTEXATTRIBP1UIPROC glad_glVertexAttribP1ui; +#define glVertexAttribP1ui glad_glVertexAttribP1ui +GLAD_API_CALL PFNGLVERTEXATTRIBP1UIVPROC glad_glVertexAttribP1uiv; +#define glVertexAttribP1uiv glad_glVertexAttribP1uiv +GLAD_API_CALL PFNGLVERTEXATTRIBP2UIPROC glad_glVertexAttribP2ui; +#define glVertexAttribP2ui glad_glVertexAttribP2ui +GLAD_API_CALL PFNGLVERTEXATTRIBP2UIVPROC glad_glVertexAttribP2uiv; +#define glVertexAttribP2uiv glad_glVertexAttribP2uiv +GLAD_API_CALL PFNGLVERTEXATTRIBP3UIPROC glad_glVertexAttribP3ui; +#define glVertexAttribP3ui glad_glVertexAttribP3ui +GLAD_API_CALL PFNGLVERTEXATTRIBP3UIVPROC glad_glVertexAttribP3uiv; +#define glVertexAttribP3uiv glad_glVertexAttribP3uiv +GLAD_API_CALL PFNGLVERTEXATTRIBP4UIPROC glad_glVertexAttribP4ui; +#define glVertexAttribP4ui glad_glVertexAttribP4ui +GLAD_API_CALL PFNGLVERTEXATTRIBP4UIVPROC glad_glVertexAttribP4uiv; +#define glVertexAttribP4uiv glad_glVertexAttribP4uiv +GLAD_API_CALL PFNGLVERTEXATTRIBPOINTERPROC glad_glVertexAttribPointer; +#define glVertexAttribPointer glad_glVertexAttribPointer +GLAD_API_CALL PFNGLVERTEXATTRIBPOINTERARBPROC glad_glVertexAttribPointerARB; +#define glVertexAttribPointerARB glad_glVertexAttribPointerARB +GLAD_API_CALL PFNGLVERTEXBINDINGDIVISORPROC glad_glVertexBindingDivisor; +#define glVertexBindingDivisor glad_glVertexBindingDivisor +GLAD_API_CALL PFNGLVIEWPORTPROC glad_glViewport; +#define glViewport glad_glViewport +GLAD_API_CALL PFNGLVIEWPORTARRAYVPROC glad_glViewportArrayv; +#define glViewportArrayv glad_glViewportArrayv +GLAD_API_CALL PFNGLVIEWPORTINDEXEDFPROC glad_glViewportIndexedf; +#define glViewportIndexedf glad_glViewportIndexedf +GLAD_API_CALL PFNGLVIEWPORTINDEXEDFVPROC glad_glViewportIndexedfv; +#define glViewportIndexedfv glad_glViewportIndexedfv +GLAD_API_CALL PFNGLWAITSYNCPROC glad_glWaitSync; +#define glWaitSync glad_glWaitSync + + + + + +GLAD_API_CALL int gladLoadGLUserPtr( GLADuserptrloadfunc load, void *userptr); +GLAD_API_CALL int gladLoadGL( GLADloadfunc load); + + +#ifdef GLAD_GL + +GLAD_API_CALL int gladLoaderLoadGL(void); +GLAD_API_CALL void gladLoaderUnloadGL(void); + #endif #ifdef __cplusplus } #endif - #endif -////////////////////////////////////////////////////////////////////////////// -// -// IMPLEMENTATION SECTION -// - -#ifdef GLAD_IMPLEMENTATION - +/* Source */ +#ifdef GLAD_GL_IMPLEMENTATION #include #include #include -struct gladGLversionStruct GLVersion; +#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_GL_VERSION_1_0 = 0; +int GLAD_GL_VERSION_1_1 = 0; +int GLAD_GL_VERSION_1_2 = 0; +int GLAD_GL_VERSION_1_3 = 0; +int GLAD_GL_VERSION_1_4 = 0; +int GLAD_GL_VERSION_1_5 = 0; +int GLAD_GL_VERSION_2_0 = 0; +int GLAD_GL_VERSION_2_1 = 0; +int GLAD_GL_VERSION_3_0 = 0; +int GLAD_GL_VERSION_3_1 = 0; +int GLAD_GL_VERSION_3_2 = 0; +int GLAD_GL_VERSION_3_3 = 0; +int GLAD_GL_VERSION_4_0 = 0; +int GLAD_GL_VERSION_4_1 = 0; +int GLAD_GL_VERSION_4_2 = 0; +int GLAD_GL_VERSION_4_3 = 0; +int GLAD_GL_ARB_ES2_compatibility = 0; +int GLAD_GL_ARB_ES3_1_compatibility = 0; +int GLAD_GL_ARB_ES3_2_compatibility = 0; +int GLAD_GL_ARB_ES3_compatibility = 0; +int GLAD_GL_ARB_blend_func_extended = 0; +int GLAD_GL_ARB_buffer_storage = 0; +int GLAD_GL_ARB_clear_buffer_object = 0; +int GLAD_GL_ARB_clear_texture = 0; +int GLAD_GL_ARB_color_buffer_float = 0; +int GLAD_GL_ARB_compatibility = 0; +int GLAD_GL_ARB_compressed_texture_pixel_storage = 0; +int GLAD_GL_ARB_compute_shader = 0; +int GLAD_GL_ARB_compute_variable_group_size = 0; +int GLAD_GL_ARB_copy_buffer = 0; +int GLAD_GL_ARB_copy_image = 0; +int GLAD_GL_ARB_debug_output = 0; +int GLAD_GL_ARB_depth_buffer_float = 0; +int GLAD_GL_ARB_depth_clamp = 0; +int GLAD_GL_ARB_depth_texture = 0; +int GLAD_GL_ARB_direct_state_access = 0; +int GLAD_GL_ARB_draw_buffers = 0; +int GLAD_GL_ARB_draw_buffers_blend = 0; +int GLAD_GL_ARB_draw_elements_base_vertex = 0; +int GLAD_GL_ARB_draw_indirect = 0; +int GLAD_GL_ARB_draw_instanced = 0; +int GLAD_GL_ARB_enhanced_layouts = 0; +int GLAD_GL_ARB_explicit_attrib_location = 0; +int GLAD_GL_ARB_explicit_uniform_location = 0; +int GLAD_GL_ARB_fragment_coord_conventions = 0; +int GLAD_GL_ARB_fragment_layer_viewport = 0; +int GLAD_GL_ARB_fragment_program = 0; +int GLAD_GL_ARB_fragment_program_shadow = 0; +int GLAD_GL_ARB_fragment_shader = 0; +int GLAD_GL_ARB_fragment_shader_interlock = 0; +int GLAD_GL_ARB_framebuffer_no_attachments = 0; +int GLAD_GL_ARB_framebuffer_object = 0; +int GLAD_GL_ARB_framebuffer_sRGB = 0; +int GLAD_GL_ARB_geometry_shader4 = 0; +int GLAD_GL_ARB_get_program_binary = 0; +int GLAD_GL_ARB_get_texture_sub_image = 0; +int GLAD_GL_ARB_gl_spirv = 0; +int GLAD_GL_ARB_gpu_shader5 = 0; +int GLAD_GL_ARB_gpu_shader_fp64 = 0; +int GLAD_GL_ARB_gpu_shader_int64 = 0; +int GLAD_GL_ARB_half_float_pixel = 0; +int GLAD_GL_ARB_half_float_vertex = 0; +int GLAD_GL_ARB_instanced_arrays = 0; +int GLAD_GL_ARB_internalformat_query = 0; +int GLAD_GL_ARB_internalformat_query2 = 0; +int GLAD_GL_ARB_map_buffer_range = 0; +int GLAD_GL_ARB_multi_bind = 0; +int GLAD_GL_ARB_multi_draw_indirect = 0; +int GLAD_GL_ARB_multisample = 0; +int GLAD_GL_ARB_multitexture = 0; +int GLAD_GL_ARB_occlusion_query = 0; +int GLAD_GL_ARB_occlusion_query2 = 0; +int GLAD_GL_ARB_pipeline_statistics_query = 0; +int GLAD_GL_ARB_query_buffer_object = 0; +int GLAD_GL_ARB_sample_locations = 0; +int GLAD_GL_ARB_sample_shading = 0; +int GLAD_GL_ARB_seamless_cube_map = 0; +int GLAD_GL_ARB_seamless_cubemap_per_texture = 0; +int GLAD_GL_ARB_shader_atomic_counter_ops = 0; +int GLAD_GL_ARB_shader_atomic_counters = 0; +int GLAD_GL_ARB_shader_bit_encoding = 0; +int GLAD_GL_ARB_shader_clock = 0; +int GLAD_GL_ARB_shader_image_load_store = 0; +int GLAD_GL_ARB_shader_image_size = 0; +int GLAD_GL_ARB_shader_objects = 0; +int GLAD_GL_ARB_shader_storage_buffer_object = 0; +int GLAD_GL_ARB_shader_texture_lod = 0; +int GLAD_GL_ARB_shading_language_100 = 0; +int GLAD_GL_ARB_shading_language_420pack = 0; +int GLAD_GL_ARB_shading_language_include = 0; +int GLAD_GL_ARB_shading_language_packing = 0; +int GLAD_GL_ARB_spirv_extensions = 0; +int GLAD_GL_ARB_tessellation_shader = 0; +int GLAD_GL_ARB_texture_border_clamp = 0; +int GLAD_GL_ARB_texture_buffer_object_rgb32 = 0; +int GLAD_GL_ARB_texture_compression = 0; +int GLAD_GL_EXT_texture_compression_s3tc = 0; +int GLAD_GL_ARB_texture_cube_map = 0; +int GLAD_GL_ARB_texture_cube_map_array = 0; +int GLAD_GL_ARB_texture_env_add = 0; +int GLAD_GL_ARB_texture_filter_anisotropic = 0; +int GLAD_GL_ARB_texture_filter_minmax = 0; +int GLAD_GL_ARB_texture_float = 0; +int GLAD_GL_ARB_texture_mirror_clamp_to_edge = 0; +int GLAD_GL_ARB_texture_mirrored_repeat = 0; +int GLAD_GL_ARB_texture_multisample = 0; +int GLAD_GL_ARB_texture_non_power_of_two = 0; +int GLAD_GL_ARB_texture_rg = 0; +int GLAD_GL_ARB_texture_storage = 0; +int GLAD_GL_ARB_texture_swizzle = 0; +int GLAD_GL_ARB_texture_view = 0; +int GLAD_GL_ARB_timer_query = 0; +int GLAD_GL_ARB_transpose_matrix = 0; +int GLAD_GL_ARB_uniform_buffer_object = 0; +int GLAD_GL_ARB_vertex_array_bgra = 0; +int GLAD_GL_ARB_vertex_array_object = 0; +int GLAD_GL_ARB_vertex_attrib_binding = 0; +int GLAD_GL_ARB_vertex_buffer_object = 0; +int GLAD_GL_ARB_vertex_program = 0; +int GLAD_GL_ARB_vertex_shader = 0; +int GLAD_GL_EXT_fog_coord = 0; +int GLAD_GL_EXT_framebuffer_blit = 0; +int GLAD_GL_EXT_framebuffer_multisample = 0; +int GLAD_GL_EXT_framebuffer_object = 0; +int GLAD_GL_EXT_framebuffer_sRGB = 0; +int GLAD_GL_OES_compressed_paletted_texture = 0; +int GLAD_GL_OES_fixed_point = 0; + + + +PFNGLACCUMXOESPROC glad_glAccumxOES = NULL; +PFNGLACTIVESHADERPROGRAMPROC glad_glActiveShaderProgram = NULL; +PFNGLACTIVETEXTUREPROC glad_glActiveTexture = NULL; +PFNGLACTIVETEXTUREARBPROC glad_glActiveTextureARB = NULL; +PFNGLALPHAFUNCXOESPROC glad_glAlphaFuncxOES = NULL; +PFNGLATTACHOBJECTARBPROC glad_glAttachObjectARB = NULL; +PFNGLATTACHSHADERPROC glad_glAttachShader = NULL; +PFNGLBEGINCONDITIONALRENDERPROC glad_glBeginConditionalRender = NULL; +PFNGLBEGINQUERYPROC glad_glBeginQuery = NULL; +PFNGLBEGINQUERYARBPROC glad_glBeginQueryARB = NULL; +PFNGLBEGINQUERYINDEXEDPROC glad_glBeginQueryIndexed = NULL; +PFNGLBEGINTRANSFORMFEEDBACKPROC glad_glBeginTransformFeedback = NULL; +PFNGLBINDATTRIBLOCATIONPROC glad_glBindAttribLocation = NULL; +PFNGLBINDATTRIBLOCATIONARBPROC glad_glBindAttribLocationARB = NULL; +PFNGLBINDBUFFERPROC glad_glBindBuffer = NULL; +PFNGLBINDBUFFERARBPROC glad_glBindBufferARB = NULL; +PFNGLBINDBUFFERBASEPROC glad_glBindBufferBase = NULL; +PFNGLBINDBUFFERRANGEPROC glad_glBindBufferRange = NULL; +PFNGLBINDBUFFERSBASEPROC glad_glBindBuffersBase = NULL; +PFNGLBINDBUFFERSRANGEPROC glad_glBindBuffersRange = NULL; +PFNGLBINDFRAGDATALOCATIONPROC glad_glBindFragDataLocation = NULL; +PFNGLBINDFRAGDATALOCATIONINDEXEDPROC glad_glBindFragDataLocationIndexed = NULL; +PFNGLBINDFRAMEBUFFERPROC glad_glBindFramebuffer = NULL; +PFNGLBINDFRAMEBUFFEREXTPROC glad_glBindFramebufferEXT = NULL; +PFNGLBINDIMAGETEXTUREPROC glad_glBindImageTexture = NULL; +PFNGLBINDIMAGETEXTURESPROC glad_glBindImageTextures = NULL; +PFNGLBINDPROGRAMARBPROC glad_glBindProgramARB = NULL; +PFNGLBINDPROGRAMPIPELINEPROC glad_glBindProgramPipeline = NULL; +PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer = NULL; +PFNGLBINDRENDERBUFFEREXTPROC glad_glBindRenderbufferEXT = NULL; +PFNGLBINDSAMPLERPROC glad_glBindSampler = NULL; +PFNGLBINDSAMPLERSPROC glad_glBindSamplers = NULL; +PFNGLBINDTEXTUREPROC glad_glBindTexture = NULL; +PFNGLBINDTEXTUREUNITPROC glad_glBindTextureUnit = NULL; +PFNGLBINDTEXTURESPROC glad_glBindTextures = NULL; +PFNGLBINDTRANSFORMFEEDBACKPROC glad_glBindTransformFeedback = NULL; +PFNGLBINDVERTEXARRAYPROC glad_glBindVertexArray = NULL; +PFNGLBINDVERTEXBUFFERPROC glad_glBindVertexBuffer = NULL; +PFNGLBINDVERTEXBUFFERSPROC glad_glBindVertexBuffers = NULL; +PFNGLBITMAPXOESPROC glad_glBitmapxOES = NULL; +PFNGLBLENDCOLORPROC glad_glBlendColor = NULL; +PFNGLBLENDCOLORXOESPROC glad_glBlendColorxOES = NULL; +PFNGLBLENDEQUATIONPROC glad_glBlendEquation = NULL; +PFNGLBLENDEQUATIONSEPARATEPROC glad_glBlendEquationSeparate = NULL; +PFNGLBLENDEQUATIONSEPARATEIPROC glad_glBlendEquationSeparatei = NULL; +PFNGLBLENDEQUATIONSEPARATEIARBPROC glad_glBlendEquationSeparateiARB = NULL; +PFNGLBLENDEQUATIONIPROC glad_glBlendEquationi = NULL; +PFNGLBLENDEQUATIONIARBPROC glad_glBlendEquationiARB = NULL; +PFNGLBLENDFUNCPROC glad_glBlendFunc = NULL; +PFNGLBLENDFUNCSEPARATEPROC glad_glBlendFuncSeparate = NULL; +PFNGLBLENDFUNCSEPARATEIPROC glad_glBlendFuncSeparatei = NULL; +PFNGLBLENDFUNCSEPARATEIARBPROC glad_glBlendFuncSeparateiARB = NULL; +PFNGLBLENDFUNCIPROC glad_glBlendFunci = NULL; +PFNGLBLENDFUNCIARBPROC glad_glBlendFunciARB = NULL; +PFNGLBLITFRAMEBUFFERPROC glad_glBlitFramebuffer = NULL; +PFNGLBLITFRAMEBUFFEREXTPROC glad_glBlitFramebufferEXT = NULL; +PFNGLBLITNAMEDFRAMEBUFFERPROC glad_glBlitNamedFramebuffer = NULL; +PFNGLBUFFERDATAPROC glad_glBufferData = NULL; +PFNGLBUFFERDATAARBPROC glad_glBufferDataARB = NULL; +PFNGLBUFFERSTORAGEPROC glad_glBufferStorage = NULL; +PFNGLBUFFERSUBDATAPROC glad_glBufferSubData = NULL; +PFNGLBUFFERSUBDATAARBPROC glad_glBufferSubDataARB = NULL; +PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_glCheckFramebufferStatus = NULL; +PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC glad_glCheckFramebufferStatusEXT = NULL; +PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC glad_glCheckNamedFramebufferStatus = NULL; +PFNGLCLAMPCOLORPROC glad_glClampColor = NULL; +PFNGLCLAMPCOLORARBPROC glad_glClampColorARB = NULL; +PFNGLCLEARPROC glad_glClear = NULL; +PFNGLCLEARACCUMXOESPROC glad_glClearAccumxOES = NULL; +PFNGLCLEARBUFFERDATAPROC glad_glClearBufferData = NULL; +PFNGLCLEARBUFFERSUBDATAPROC glad_glClearBufferSubData = NULL; +PFNGLCLEARBUFFERFIPROC glad_glClearBufferfi = NULL; +PFNGLCLEARBUFFERFVPROC glad_glClearBufferfv = NULL; +PFNGLCLEARBUFFERIVPROC glad_glClearBufferiv = NULL; +PFNGLCLEARBUFFERUIVPROC glad_glClearBufferuiv = NULL; +PFNGLCLEARCOLORPROC glad_glClearColor = NULL; +PFNGLCLEARCOLORXOESPROC glad_glClearColorxOES = NULL; +PFNGLCLEARDEPTHPROC glad_glClearDepth = NULL; +PFNGLCLEARDEPTHFPROC glad_glClearDepthf = NULL; +PFNGLCLEARDEPTHXOESPROC glad_glClearDepthxOES = NULL; +PFNGLCLEARNAMEDBUFFERDATAPROC glad_glClearNamedBufferData = NULL; +PFNGLCLEARNAMEDBUFFERSUBDATAPROC glad_glClearNamedBufferSubData = NULL; +PFNGLCLEARNAMEDFRAMEBUFFERFIPROC glad_glClearNamedFramebufferfi = NULL; +PFNGLCLEARNAMEDFRAMEBUFFERFVPROC glad_glClearNamedFramebufferfv = NULL; +PFNGLCLEARNAMEDFRAMEBUFFERIVPROC glad_glClearNamedFramebufferiv = NULL; +PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC glad_glClearNamedFramebufferuiv = NULL; +PFNGLCLEARSTENCILPROC glad_glClearStencil = NULL; +PFNGLCLEARTEXIMAGEPROC glad_glClearTexImage = NULL; +PFNGLCLEARTEXSUBIMAGEPROC glad_glClearTexSubImage = NULL; +PFNGLCLIENTACTIVETEXTUREARBPROC glad_glClientActiveTextureARB = NULL; +PFNGLCLIENTWAITSYNCPROC glad_glClientWaitSync = NULL; +PFNGLCLIPPLANEXOESPROC glad_glClipPlanexOES = NULL; +PFNGLCOLOR3XOESPROC glad_glColor3xOES = NULL; +PFNGLCOLOR3XVOESPROC glad_glColor3xvOES = NULL; +PFNGLCOLOR4XOESPROC glad_glColor4xOES = NULL; +PFNGLCOLOR4XVOESPROC glad_glColor4xvOES = NULL; +PFNGLCOLORMASKPROC glad_glColorMask = NULL; +PFNGLCOLORMASKIPROC glad_glColorMaski = NULL; +PFNGLCOMPILESHADERPROC glad_glCompileShader = NULL; +PFNGLCOMPILESHADERARBPROC glad_glCompileShaderARB = NULL; +PFNGLCOMPILESHADERINCLUDEARBPROC glad_glCompileShaderIncludeARB = NULL; +PFNGLCOMPRESSEDTEXIMAGE1DPROC glad_glCompressedTexImage1D = NULL; +PFNGLCOMPRESSEDTEXIMAGE1DARBPROC glad_glCompressedTexImage1DARB = NULL; +PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_glCompressedTexImage2D = NULL; +PFNGLCOMPRESSEDTEXIMAGE2DARBPROC glad_glCompressedTexImage2DARB = NULL; +PFNGLCOMPRESSEDTEXIMAGE3DPROC glad_glCompressedTexImage3D = NULL; +PFNGLCOMPRESSEDTEXIMAGE3DARBPROC glad_glCompressedTexImage3DARB = NULL; +PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glad_glCompressedTexSubImage1D = NULL; +PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC glad_glCompressedTexSubImage1DARB = NULL; +PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_glCompressedTexSubImage2D = NULL; +PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC glad_glCompressedTexSubImage2DARB = NULL; +PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glad_glCompressedTexSubImage3D = NULL; +PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC glad_glCompressedTexSubImage3DARB = NULL; +PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC glad_glCompressedTextureSubImage1D = NULL; +PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC glad_glCompressedTextureSubImage2D = NULL; +PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC glad_glCompressedTextureSubImage3D = NULL; +PFNGLCONVOLUTIONPARAMETERXOESPROC glad_glConvolutionParameterxOES = NULL; +PFNGLCONVOLUTIONPARAMETERXVOESPROC glad_glConvolutionParameterxvOES = NULL; +PFNGLCOPYBUFFERSUBDATAPROC glad_glCopyBufferSubData = NULL; +PFNGLCOPYIMAGESUBDATAPROC glad_glCopyImageSubData = NULL; +PFNGLCOPYNAMEDBUFFERSUBDATAPROC glad_glCopyNamedBufferSubData = NULL; +PFNGLCOPYTEXIMAGE1DPROC glad_glCopyTexImage1D = NULL; +PFNGLCOPYTEXIMAGE2DPROC glad_glCopyTexImage2D = NULL; +PFNGLCOPYTEXSUBIMAGE1DPROC glad_glCopyTexSubImage1D = NULL; +PFNGLCOPYTEXSUBIMAGE2DPROC glad_glCopyTexSubImage2D = NULL; +PFNGLCOPYTEXSUBIMAGE3DPROC glad_glCopyTexSubImage3D = NULL; +PFNGLCOPYTEXTURESUBIMAGE1DPROC glad_glCopyTextureSubImage1D = NULL; +PFNGLCOPYTEXTURESUBIMAGE2DPROC glad_glCopyTextureSubImage2D = NULL; +PFNGLCOPYTEXTURESUBIMAGE3DPROC glad_glCopyTextureSubImage3D = NULL; +PFNGLCREATEBUFFERSPROC glad_glCreateBuffers = NULL; +PFNGLCREATEFRAMEBUFFERSPROC glad_glCreateFramebuffers = NULL; +PFNGLCREATEPROGRAMPROC glad_glCreateProgram = NULL; +PFNGLCREATEPROGRAMOBJECTARBPROC glad_glCreateProgramObjectARB = NULL; +PFNGLCREATEPROGRAMPIPELINESPROC glad_glCreateProgramPipelines = NULL; +PFNGLCREATEQUERIESPROC glad_glCreateQueries = NULL; +PFNGLCREATERENDERBUFFERSPROC glad_glCreateRenderbuffers = NULL; +PFNGLCREATESAMPLERSPROC glad_glCreateSamplers = NULL; +PFNGLCREATESHADERPROC glad_glCreateShader = NULL; +PFNGLCREATESHADEROBJECTARBPROC glad_glCreateShaderObjectARB = NULL; +PFNGLCREATESHADERPROGRAMVPROC glad_glCreateShaderProgramv = NULL; +PFNGLCREATETEXTURESPROC glad_glCreateTextures = NULL; +PFNGLCREATETRANSFORMFEEDBACKSPROC glad_glCreateTransformFeedbacks = NULL; +PFNGLCREATEVERTEXARRAYSPROC glad_glCreateVertexArrays = NULL; +PFNGLCULLFACEPROC glad_glCullFace = NULL; +PFNGLDEBUGMESSAGECALLBACKPROC glad_glDebugMessageCallback = NULL; +PFNGLDEBUGMESSAGECALLBACKARBPROC glad_glDebugMessageCallbackARB = NULL; +PFNGLDEBUGMESSAGECONTROLPROC glad_glDebugMessageControl = NULL; +PFNGLDEBUGMESSAGECONTROLARBPROC glad_glDebugMessageControlARB = NULL; +PFNGLDEBUGMESSAGEINSERTPROC glad_glDebugMessageInsert = NULL; +PFNGLDEBUGMESSAGEINSERTARBPROC glad_glDebugMessageInsertARB = NULL; +PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers = NULL; +PFNGLDELETEBUFFERSARBPROC glad_glDeleteBuffersARB = NULL; +PFNGLDELETEFRAMEBUFFERSPROC glad_glDeleteFramebuffers = NULL; +PFNGLDELETEFRAMEBUFFERSEXTPROC glad_glDeleteFramebuffersEXT = NULL; +PFNGLDELETENAMEDSTRINGARBPROC glad_glDeleteNamedStringARB = NULL; +PFNGLDELETEOBJECTARBPROC glad_glDeleteObjectARB = NULL; +PFNGLDELETEPROGRAMPROC glad_glDeleteProgram = NULL; +PFNGLDELETEPROGRAMPIPELINESPROC glad_glDeleteProgramPipelines = NULL; +PFNGLDELETEPROGRAMSARBPROC glad_glDeleteProgramsARB = NULL; +PFNGLDELETEQUERIESPROC glad_glDeleteQueries = NULL; +PFNGLDELETEQUERIESARBPROC glad_glDeleteQueriesARB = NULL; +PFNGLDELETERENDERBUFFERSPROC glad_glDeleteRenderbuffers = NULL; +PFNGLDELETERENDERBUFFERSEXTPROC glad_glDeleteRenderbuffersEXT = NULL; +PFNGLDELETESAMPLERSPROC glad_glDeleteSamplers = NULL; +PFNGLDELETESHADERPROC glad_glDeleteShader = NULL; +PFNGLDELETESYNCPROC glad_glDeleteSync = NULL; +PFNGLDELETETEXTURESPROC glad_glDeleteTextures = NULL; +PFNGLDELETETRANSFORMFEEDBACKSPROC glad_glDeleteTransformFeedbacks = NULL; +PFNGLDELETEVERTEXARRAYSPROC glad_glDeleteVertexArrays = NULL; +PFNGLDEPTHFUNCPROC glad_glDepthFunc = NULL; +PFNGLDEPTHMASKPROC glad_glDepthMask = NULL; +PFNGLDEPTHRANGEPROC glad_glDepthRange = NULL; +PFNGLDEPTHRANGEARRAYVPROC glad_glDepthRangeArrayv = NULL; +PFNGLDEPTHRANGEINDEXEDPROC glad_glDepthRangeIndexed = NULL; +PFNGLDEPTHRANGEFPROC glad_glDepthRangef = NULL; +PFNGLDEPTHRANGEXOESPROC glad_glDepthRangexOES = NULL; +PFNGLDETACHOBJECTARBPROC glad_glDetachObjectARB = NULL; +PFNGLDETACHSHADERPROC glad_glDetachShader = NULL; +PFNGLDISABLEPROC glad_glDisable = NULL; +PFNGLDISABLEVERTEXARRAYATTRIBPROC glad_glDisableVertexArrayAttrib = NULL; +PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_glDisableVertexAttribArray = NULL; +PFNGLDISABLEVERTEXATTRIBARRAYARBPROC glad_glDisableVertexAttribArrayARB = NULL; +PFNGLDISABLEIPROC glad_glDisablei = NULL; +PFNGLDISPATCHCOMPUTEPROC glad_glDispatchCompute = NULL; +PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC glad_glDispatchComputeGroupSizeARB = NULL; +PFNGLDISPATCHCOMPUTEINDIRECTPROC glad_glDispatchComputeIndirect = NULL; +PFNGLDRAWARRAYSPROC glad_glDrawArrays = NULL; +PFNGLDRAWARRAYSINDIRECTPROC glad_glDrawArraysIndirect = NULL; +PFNGLDRAWARRAYSINSTANCEDPROC glad_glDrawArraysInstanced = NULL; +PFNGLDRAWARRAYSINSTANCEDARBPROC glad_glDrawArraysInstancedARB = NULL; +PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC glad_glDrawArraysInstancedBaseInstance = NULL; +PFNGLDRAWBUFFERPROC glad_glDrawBuffer = NULL; +PFNGLDRAWBUFFERSPROC glad_glDrawBuffers = NULL; +PFNGLDRAWBUFFERSARBPROC glad_glDrawBuffersARB = NULL; +PFNGLDRAWELEMENTSPROC glad_glDrawElements = NULL; +PFNGLDRAWELEMENTSBASEVERTEXPROC glad_glDrawElementsBaseVertex = NULL; +PFNGLDRAWELEMENTSINDIRECTPROC glad_glDrawElementsIndirect = NULL; +PFNGLDRAWELEMENTSINSTANCEDPROC glad_glDrawElementsInstanced = NULL; +PFNGLDRAWELEMENTSINSTANCEDARBPROC glad_glDrawElementsInstancedARB = NULL; +PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC glad_glDrawElementsInstancedBaseInstance = NULL; +PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glad_glDrawElementsInstancedBaseVertex = NULL; +PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC glad_glDrawElementsInstancedBaseVertexBaseInstance = NULL; +PFNGLDRAWRANGEELEMENTSPROC glad_glDrawRangeElements = NULL; +PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glad_glDrawRangeElementsBaseVertex = NULL; +PFNGLDRAWTRANSFORMFEEDBACKPROC glad_glDrawTransformFeedback = NULL; +PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC glad_glDrawTransformFeedbackInstanced = NULL; +PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC glad_glDrawTransformFeedbackStream = NULL; +PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC glad_glDrawTransformFeedbackStreamInstanced = NULL; +PFNGLENABLEPROC glad_glEnable = NULL; +PFNGLENABLEVERTEXARRAYATTRIBPROC glad_glEnableVertexArrayAttrib = NULL; +PFNGLENABLEVERTEXATTRIBARRAYPROC glad_glEnableVertexAttribArray = NULL; +PFNGLENABLEVERTEXATTRIBARRAYARBPROC glad_glEnableVertexAttribArrayARB = NULL; +PFNGLENABLEIPROC glad_glEnablei = NULL; +PFNGLENDCONDITIONALRENDERPROC glad_glEndConditionalRender = NULL; +PFNGLENDQUERYPROC glad_glEndQuery = NULL; +PFNGLENDQUERYARBPROC glad_glEndQueryARB = NULL; +PFNGLENDQUERYINDEXEDPROC glad_glEndQueryIndexed = NULL; +PFNGLENDTRANSFORMFEEDBACKPROC glad_glEndTransformFeedback = NULL; +PFNGLEVALCOORD1XOESPROC glad_glEvalCoord1xOES = NULL; +PFNGLEVALCOORD1XVOESPROC glad_glEvalCoord1xvOES = NULL; +PFNGLEVALCOORD2XOESPROC glad_glEvalCoord2xOES = NULL; +PFNGLEVALCOORD2XVOESPROC glad_glEvalCoord2xvOES = NULL; +PFNGLEVALUATEDEPTHVALUESARBPROC glad_glEvaluateDepthValuesARB = NULL; +PFNGLFEEDBACKBUFFERXOESPROC glad_glFeedbackBufferxOES = NULL; +PFNGLFENCESYNCPROC glad_glFenceSync = NULL; +PFNGLFINISHPROC glad_glFinish = NULL; +PFNGLFLUSHPROC glad_glFlush = NULL; +PFNGLFLUSHMAPPEDBUFFERRANGEPROC glad_glFlushMappedBufferRange = NULL; +PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC glad_glFlushMappedNamedBufferRange = NULL; +PFNGLFOGCOORDPOINTEREXTPROC glad_glFogCoordPointerEXT = NULL; +PFNGLFOGCOORDDEXTPROC glad_glFogCoorddEXT = NULL; +PFNGLFOGCOORDDVEXTPROC glad_glFogCoorddvEXT = NULL; +PFNGLFOGCOORDFEXTPROC glad_glFogCoordfEXT = NULL; +PFNGLFOGCOORDFVEXTPROC glad_glFogCoordfvEXT = NULL; +PFNGLFOGXOESPROC glad_glFogxOES = NULL; +PFNGLFOGXVOESPROC glad_glFogxvOES = NULL; +PFNGLFRAMEBUFFERPARAMETERIPROC glad_glFramebufferParameteri = NULL; +PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_glFramebufferRenderbuffer = NULL; +PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC glad_glFramebufferRenderbufferEXT = NULL; +PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC glad_glFramebufferSampleLocationsfvARB = NULL; +PFNGLFRAMEBUFFERTEXTUREPROC glad_glFramebufferTexture = NULL; +PFNGLFRAMEBUFFERTEXTURE1DPROC glad_glFramebufferTexture1D = NULL; +PFNGLFRAMEBUFFERTEXTURE1DEXTPROC glad_glFramebufferTexture1DEXT = NULL; +PFNGLFRAMEBUFFERTEXTURE2DPROC glad_glFramebufferTexture2D = NULL; +PFNGLFRAMEBUFFERTEXTURE2DEXTPROC glad_glFramebufferTexture2DEXT = NULL; +PFNGLFRAMEBUFFERTEXTURE3DPROC glad_glFramebufferTexture3D = NULL; +PFNGLFRAMEBUFFERTEXTURE3DEXTPROC glad_glFramebufferTexture3DEXT = NULL; +PFNGLFRAMEBUFFERTEXTUREARBPROC glad_glFramebufferTextureARB = NULL; +PFNGLFRAMEBUFFERTEXTUREFACEARBPROC glad_glFramebufferTextureFaceARB = NULL; +PFNGLFRAMEBUFFERTEXTURELAYERPROC glad_glFramebufferTextureLayer = NULL; +PFNGLFRAMEBUFFERTEXTURELAYERARBPROC glad_glFramebufferTextureLayerARB = NULL; +PFNGLFRONTFACEPROC glad_glFrontFace = NULL; +PFNGLFRUSTUMXOESPROC glad_glFrustumxOES = NULL; +PFNGLGENBUFFERSPROC glad_glGenBuffers = NULL; +PFNGLGENBUFFERSARBPROC glad_glGenBuffersARB = NULL; +PFNGLGENFRAMEBUFFERSPROC glad_glGenFramebuffers = NULL; +PFNGLGENFRAMEBUFFERSEXTPROC glad_glGenFramebuffersEXT = NULL; +PFNGLGENPROGRAMPIPELINESPROC glad_glGenProgramPipelines = NULL; +PFNGLGENPROGRAMSARBPROC glad_glGenProgramsARB = NULL; +PFNGLGENQUERIESPROC glad_glGenQueries = NULL; +PFNGLGENQUERIESARBPROC glad_glGenQueriesARB = NULL; +PFNGLGENRENDERBUFFERSPROC glad_glGenRenderbuffers = NULL; +PFNGLGENRENDERBUFFERSEXTPROC glad_glGenRenderbuffersEXT = NULL; +PFNGLGENSAMPLERSPROC glad_glGenSamplers = NULL; +PFNGLGENTEXTURESPROC glad_glGenTextures = NULL; +PFNGLGENTRANSFORMFEEDBACKSPROC glad_glGenTransformFeedbacks = NULL; +PFNGLGENVERTEXARRAYSPROC glad_glGenVertexArrays = NULL; +PFNGLGENERATEMIPMAPPROC glad_glGenerateMipmap = NULL; +PFNGLGENERATEMIPMAPEXTPROC glad_glGenerateMipmapEXT = NULL; +PFNGLGENERATETEXTUREMIPMAPPROC glad_glGenerateTextureMipmap = NULL; +PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC glad_glGetActiveAtomicCounterBufferiv = NULL; +PFNGLGETACTIVEATTRIBPROC glad_glGetActiveAttrib = NULL; +PFNGLGETACTIVEATTRIBARBPROC glad_glGetActiveAttribARB = NULL; +PFNGLGETACTIVESUBROUTINENAMEPROC glad_glGetActiveSubroutineName = NULL; +PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC glad_glGetActiveSubroutineUniformName = NULL; +PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC glad_glGetActiveSubroutineUniformiv = NULL; +PFNGLGETACTIVEUNIFORMPROC glad_glGetActiveUniform = NULL; +PFNGLGETACTIVEUNIFORMARBPROC glad_glGetActiveUniformARB = NULL; +PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glad_glGetActiveUniformBlockName = NULL; +PFNGLGETACTIVEUNIFORMBLOCKIVPROC glad_glGetActiveUniformBlockiv = NULL; +PFNGLGETACTIVEUNIFORMNAMEPROC glad_glGetActiveUniformName = NULL; +PFNGLGETACTIVEUNIFORMSIVPROC glad_glGetActiveUniformsiv = NULL; +PFNGLGETATTACHEDOBJECTSARBPROC glad_glGetAttachedObjectsARB = NULL; +PFNGLGETATTACHEDSHADERSPROC glad_glGetAttachedShaders = NULL; +PFNGLGETATTRIBLOCATIONPROC glad_glGetAttribLocation = NULL; +PFNGLGETATTRIBLOCATIONARBPROC glad_glGetAttribLocationARB = NULL; +PFNGLGETBOOLEANI_VPROC glad_glGetBooleani_v = NULL; +PFNGLGETBOOLEANVPROC glad_glGetBooleanv = NULL; +PFNGLGETBUFFERPARAMETERI64VPROC glad_glGetBufferParameteri64v = NULL; +PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv = NULL; +PFNGLGETBUFFERPARAMETERIVARBPROC glad_glGetBufferParameterivARB = NULL; +PFNGLGETBUFFERPOINTERVPROC glad_glGetBufferPointerv = NULL; +PFNGLGETBUFFERPOINTERVARBPROC glad_glGetBufferPointervARB = NULL; +PFNGLGETBUFFERSUBDATAPROC glad_glGetBufferSubData = NULL; +PFNGLGETBUFFERSUBDATAARBPROC glad_glGetBufferSubDataARB = NULL; +PFNGLGETCLIPPLANEXOESPROC glad_glGetClipPlanexOES = NULL; +PFNGLGETCOMPRESSEDTEXIMAGEPROC glad_glGetCompressedTexImage = NULL; +PFNGLGETCOMPRESSEDTEXIMAGEARBPROC glad_glGetCompressedTexImageARB = NULL; +PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC glad_glGetCompressedTextureImage = NULL; +PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC glad_glGetCompressedTextureSubImage = NULL; +PFNGLGETCONVOLUTIONPARAMETERXVOESPROC glad_glGetConvolutionParameterxvOES = NULL; +PFNGLGETDEBUGMESSAGELOGPROC glad_glGetDebugMessageLog = NULL; +PFNGLGETDEBUGMESSAGELOGARBPROC glad_glGetDebugMessageLogARB = NULL; +PFNGLGETDOUBLEI_VPROC glad_glGetDoublei_v = NULL; +PFNGLGETDOUBLEVPROC glad_glGetDoublev = NULL; +PFNGLGETERRORPROC glad_glGetError = NULL; +PFNGLGETFIXEDVOESPROC glad_glGetFixedvOES = NULL; +PFNGLGETFLOATI_VPROC glad_glGetFloati_v = NULL; +PFNGLGETFLOATVPROC glad_glGetFloatv = NULL; +PFNGLGETFRAGDATAINDEXPROC glad_glGetFragDataIndex = NULL; +PFNGLGETFRAGDATALOCATIONPROC glad_glGetFragDataLocation = NULL; +PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetFramebufferAttachmentParameteriv = NULL; +PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC glad_glGetFramebufferAttachmentParameterivEXT = NULL; +PFNGLGETFRAMEBUFFERPARAMETERIVPROC glad_glGetFramebufferParameteriv = NULL; +PFNGLGETHANDLEARBPROC glad_glGetHandleARB = NULL; +PFNGLGETHISTOGRAMPARAMETERXVOESPROC glad_glGetHistogramParameterxvOES = NULL; +PFNGLGETINFOLOGARBPROC glad_glGetInfoLogARB = NULL; +PFNGLGETINTEGER64I_VPROC glad_glGetInteger64i_v = NULL; +PFNGLGETINTEGER64VPROC glad_glGetInteger64v = NULL; +PFNGLGETINTEGERI_VPROC glad_glGetIntegeri_v = NULL; +PFNGLGETINTEGERVPROC glad_glGetIntegerv = NULL; +PFNGLGETINTERNALFORMATI64VPROC glad_glGetInternalformati64v = NULL; +PFNGLGETINTERNALFORMATIVPROC glad_glGetInternalformativ = NULL; +PFNGLGETLIGHTXOESPROC glad_glGetLightxOES = NULL; +PFNGLGETMAPXVOESPROC glad_glGetMapxvOES = NULL; +PFNGLGETMATERIALXOESPROC glad_glGetMaterialxOES = NULL; +PFNGLGETMULTISAMPLEFVPROC glad_glGetMultisamplefv = NULL; +PFNGLGETNAMEDBUFFERPARAMETERI64VPROC glad_glGetNamedBufferParameteri64v = NULL; +PFNGLGETNAMEDBUFFERPARAMETERIVPROC glad_glGetNamedBufferParameteriv = NULL; +PFNGLGETNAMEDBUFFERPOINTERVPROC glad_glGetNamedBufferPointerv = NULL; +PFNGLGETNAMEDBUFFERSUBDATAPROC glad_glGetNamedBufferSubData = NULL; +PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetNamedFramebufferAttachmentParameteriv = NULL; +PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC glad_glGetNamedFramebufferParameteriv = NULL; +PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC glad_glGetNamedRenderbufferParameteriv = NULL; +PFNGLGETNAMEDSTRINGARBPROC glad_glGetNamedStringARB = NULL; +PFNGLGETNAMEDSTRINGIVARBPROC glad_glGetNamedStringivARB = NULL; +PFNGLGETOBJECTLABELPROC glad_glGetObjectLabel = NULL; +PFNGLGETOBJECTPARAMETERFVARBPROC glad_glGetObjectParameterfvARB = NULL; +PFNGLGETOBJECTPARAMETERIVARBPROC glad_glGetObjectParameterivARB = NULL; +PFNGLGETOBJECTPTRLABELPROC glad_glGetObjectPtrLabel = NULL; +PFNGLGETPIXELMAPXVPROC glad_glGetPixelMapxv = NULL; +PFNGLGETPOINTERVPROC glad_glGetPointerv = NULL; +PFNGLGETPROGRAMBINARYPROC glad_glGetProgramBinary = NULL; +PFNGLGETPROGRAMENVPARAMETERDVARBPROC glad_glGetProgramEnvParameterdvARB = NULL; +PFNGLGETPROGRAMENVPARAMETERFVARBPROC glad_glGetProgramEnvParameterfvARB = NULL; +PFNGLGETPROGRAMINFOLOGPROC glad_glGetProgramInfoLog = NULL; +PFNGLGETPROGRAMINTERFACEIVPROC glad_glGetProgramInterfaceiv = NULL; +PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC glad_glGetProgramLocalParameterdvARB = NULL; +PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC glad_glGetProgramLocalParameterfvARB = NULL; +PFNGLGETPROGRAMPIPELINEINFOLOGPROC glad_glGetProgramPipelineInfoLog = NULL; +PFNGLGETPROGRAMPIPELINEIVPROC glad_glGetProgramPipelineiv = NULL; +PFNGLGETPROGRAMRESOURCEINDEXPROC glad_glGetProgramResourceIndex = NULL; +PFNGLGETPROGRAMRESOURCELOCATIONPROC glad_glGetProgramResourceLocation = NULL; +PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC glad_glGetProgramResourceLocationIndex = NULL; +PFNGLGETPROGRAMRESOURCENAMEPROC glad_glGetProgramResourceName = NULL; +PFNGLGETPROGRAMRESOURCEIVPROC glad_glGetProgramResourceiv = NULL; +PFNGLGETPROGRAMSTAGEIVPROC glad_glGetProgramStageiv = NULL; +PFNGLGETPROGRAMSTRINGARBPROC glad_glGetProgramStringARB = NULL; +PFNGLGETPROGRAMIVPROC glad_glGetProgramiv = NULL; +PFNGLGETPROGRAMIVARBPROC glad_glGetProgramivARB = NULL; +PFNGLGETQUERYBUFFEROBJECTI64VPROC glad_glGetQueryBufferObjecti64v = NULL; +PFNGLGETQUERYBUFFEROBJECTIVPROC glad_glGetQueryBufferObjectiv = NULL; +PFNGLGETQUERYBUFFEROBJECTUI64VPROC glad_glGetQueryBufferObjectui64v = NULL; +PFNGLGETQUERYBUFFEROBJECTUIVPROC glad_glGetQueryBufferObjectuiv = NULL; +PFNGLGETQUERYINDEXEDIVPROC glad_glGetQueryIndexediv = NULL; +PFNGLGETQUERYOBJECTI64VPROC glad_glGetQueryObjecti64v = NULL; +PFNGLGETQUERYOBJECTIVPROC glad_glGetQueryObjectiv = NULL; +PFNGLGETQUERYOBJECTIVARBPROC glad_glGetQueryObjectivARB = NULL; +PFNGLGETQUERYOBJECTUI64VPROC glad_glGetQueryObjectui64v = NULL; +PFNGLGETQUERYOBJECTUIVPROC glad_glGetQueryObjectuiv = NULL; +PFNGLGETQUERYOBJECTUIVARBPROC glad_glGetQueryObjectuivARB = NULL; +PFNGLGETQUERYIVPROC glad_glGetQueryiv = NULL; +PFNGLGETQUERYIVARBPROC glad_glGetQueryivARB = NULL; +PFNGLGETRENDERBUFFERPARAMETERIVPROC glad_glGetRenderbufferParameteriv = NULL; +PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC glad_glGetRenderbufferParameterivEXT = NULL; +PFNGLGETSAMPLERPARAMETERIIVPROC glad_glGetSamplerParameterIiv = NULL; +PFNGLGETSAMPLERPARAMETERIUIVPROC glad_glGetSamplerParameterIuiv = NULL; +PFNGLGETSAMPLERPARAMETERFVPROC glad_glGetSamplerParameterfv = NULL; +PFNGLGETSAMPLERPARAMETERIVPROC glad_glGetSamplerParameteriv = NULL; +PFNGLGETSHADERINFOLOGPROC glad_glGetShaderInfoLog = NULL; +PFNGLGETSHADERPRECISIONFORMATPROC glad_glGetShaderPrecisionFormat = NULL; +PFNGLGETSHADERSOURCEPROC glad_glGetShaderSource = NULL; +PFNGLGETSHADERSOURCEARBPROC glad_glGetShaderSourceARB = NULL; +PFNGLGETSHADERIVPROC glad_glGetShaderiv = NULL; +PFNGLGETSTRINGPROC glad_glGetString = NULL; +PFNGLGETSTRINGIPROC glad_glGetStringi = NULL; +PFNGLGETSUBROUTINEINDEXPROC glad_glGetSubroutineIndex = NULL; +PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC glad_glGetSubroutineUniformLocation = NULL; +PFNGLGETSYNCIVPROC glad_glGetSynciv = NULL; +PFNGLGETTEXENVXVOESPROC glad_glGetTexEnvxvOES = NULL; +PFNGLGETTEXGENXVOESPROC glad_glGetTexGenxvOES = NULL; +PFNGLGETTEXIMAGEPROC glad_glGetTexImage = NULL; +PFNGLGETTEXLEVELPARAMETERFVPROC glad_glGetTexLevelParameterfv = NULL; +PFNGLGETTEXLEVELPARAMETERIVPROC glad_glGetTexLevelParameteriv = NULL; +PFNGLGETTEXLEVELPARAMETERXVOESPROC glad_glGetTexLevelParameterxvOES = NULL; +PFNGLGETTEXPARAMETERIIVPROC glad_glGetTexParameterIiv = NULL; +PFNGLGETTEXPARAMETERIUIVPROC glad_glGetTexParameterIuiv = NULL; +PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv = NULL; +PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv = NULL; +PFNGLGETTEXPARAMETERXVOESPROC glad_glGetTexParameterxvOES = NULL; +PFNGLGETTEXTUREIMAGEPROC glad_glGetTextureImage = NULL; +PFNGLGETTEXTURELEVELPARAMETERFVPROC glad_glGetTextureLevelParameterfv = NULL; +PFNGLGETTEXTURELEVELPARAMETERIVPROC glad_glGetTextureLevelParameteriv = NULL; +PFNGLGETTEXTUREPARAMETERIIVPROC glad_glGetTextureParameterIiv = NULL; +PFNGLGETTEXTUREPARAMETERIUIVPROC glad_glGetTextureParameterIuiv = NULL; +PFNGLGETTEXTUREPARAMETERFVPROC glad_glGetTextureParameterfv = NULL; +PFNGLGETTEXTUREPARAMETERIVPROC glad_glGetTextureParameteriv = NULL; +PFNGLGETTEXTURESUBIMAGEPROC glad_glGetTextureSubImage = NULL; +PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glad_glGetTransformFeedbackVarying = NULL; +PFNGLGETTRANSFORMFEEDBACKI64_VPROC glad_glGetTransformFeedbacki64_v = NULL; +PFNGLGETTRANSFORMFEEDBACKI_VPROC glad_glGetTransformFeedbacki_v = NULL; +PFNGLGETTRANSFORMFEEDBACKIVPROC glad_glGetTransformFeedbackiv = NULL; +PFNGLGETUNIFORMBLOCKINDEXPROC glad_glGetUniformBlockIndex = NULL; +PFNGLGETUNIFORMINDICESPROC glad_glGetUniformIndices = NULL; +PFNGLGETUNIFORMLOCATIONPROC glad_glGetUniformLocation = NULL; +PFNGLGETUNIFORMLOCATIONARBPROC glad_glGetUniformLocationARB = NULL; +PFNGLGETUNIFORMSUBROUTINEUIVPROC glad_glGetUniformSubroutineuiv = NULL; +PFNGLGETUNIFORMDVPROC glad_glGetUniformdv = NULL; +PFNGLGETUNIFORMFVPROC glad_glGetUniformfv = NULL; +PFNGLGETUNIFORMFVARBPROC glad_glGetUniformfvARB = NULL; +PFNGLGETUNIFORMI64VARBPROC glad_glGetUniformi64vARB = NULL; +PFNGLGETUNIFORMIVPROC glad_glGetUniformiv = NULL; +PFNGLGETUNIFORMIVARBPROC glad_glGetUniformivARB = NULL; +PFNGLGETUNIFORMUI64VARBPROC glad_glGetUniformui64vARB = NULL; +PFNGLGETUNIFORMUIVPROC glad_glGetUniformuiv = NULL; +PFNGLGETVERTEXARRAYINDEXED64IVPROC glad_glGetVertexArrayIndexed64iv = NULL; +PFNGLGETVERTEXARRAYINDEXEDIVPROC glad_glGetVertexArrayIndexediv = NULL; +PFNGLGETVERTEXARRAYIVPROC glad_glGetVertexArrayiv = NULL; +PFNGLGETVERTEXATTRIBIIVPROC glad_glGetVertexAttribIiv = NULL; +PFNGLGETVERTEXATTRIBIUIVPROC glad_glGetVertexAttribIuiv = NULL; +PFNGLGETVERTEXATTRIBLDVPROC glad_glGetVertexAttribLdv = NULL; +PFNGLGETVERTEXATTRIBPOINTERVPROC glad_glGetVertexAttribPointerv = NULL; +PFNGLGETVERTEXATTRIBPOINTERVARBPROC glad_glGetVertexAttribPointervARB = NULL; +PFNGLGETVERTEXATTRIBDVPROC glad_glGetVertexAttribdv = NULL; +PFNGLGETVERTEXATTRIBDVARBPROC glad_glGetVertexAttribdvARB = NULL; +PFNGLGETVERTEXATTRIBFVPROC glad_glGetVertexAttribfv = NULL; +PFNGLGETVERTEXATTRIBFVARBPROC glad_glGetVertexAttribfvARB = NULL; +PFNGLGETVERTEXATTRIBIVPROC glad_glGetVertexAttribiv = NULL; +PFNGLGETVERTEXATTRIBIVARBPROC glad_glGetVertexAttribivARB = NULL; +PFNGLGETNUNIFORMI64VARBPROC glad_glGetnUniformi64vARB = NULL; +PFNGLGETNUNIFORMUI64VARBPROC glad_glGetnUniformui64vARB = NULL; +PFNGLHINTPROC glad_glHint = NULL; +PFNGLINDEXXOESPROC glad_glIndexxOES = NULL; +PFNGLINDEXXVOESPROC glad_glIndexxvOES = NULL; +PFNGLINVALIDATEBUFFERDATAPROC glad_glInvalidateBufferData = NULL; +PFNGLINVALIDATEBUFFERSUBDATAPROC glad_glInvalidateBufferSubData = NULL; +PFNGLINVALIDATEFRAMEBUFFERPROC glad_glInvalidateFramebuffer = NULL; +PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC glad_glInvalidateNamedFramebufferData = NULL; +PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC glad_glInvalidateNamedFramebufferSubData = NULL; +PFNGLINVALIDATESUBFRAMEBUFFERPROC glad_glInvalidateSubFramebuffer = NULL; +PFNGLINVALIDATETEXIMAGEPROC glad_glInvalidateTexImage = NULL; +PFNGLINVALIDATETEXSUBIMAGEPROC glad_glInvalidateTexSubImage = NULL; +PFNGLISBUFFERPROC glad_glIsBuffer = NULL; +PFNGLISBUFFERARBPROC glad_glIsBufferARB = NULL; +PFNGLISENABLEDPROC glad_glIsEnabled = NULL; +PFNGLISENABLEDIPROC glad_glIsEnabledi = NULL; +PFNGLISFRAMEBUFFERPROC glad_glIsFramebuffer = NULL; +PFNGLISFRAMEBUFFEREXTPROC glad_glIsFramebufferEXT = NULL; +PFNGLISNAMEDSTRINGARBPROC glad_glIsNamedStringARB = NULL; +PFNGLISPROGRAMPROC glad_glIsProgram = NULL; +PFNGLISPROGRAMARBPROC glad_glIsProgramARB = NULL; +PFNGLISPROGRAMPIPELINEPROC glad_glIsProgramPipeline = NULL; +PFNGLISQUERYPROC glad_glIsQuery = NULL; +PFNGLISQUERYARBPROC glad_glIsQueryARB = NULL; +PFNGLISRENDERBUFFERPROC glad_glIsRenderbuffer = NULL; +PFNGLISRENDERBUFFEREXTPROC glad_glIsRenderbufferEXT = NULL; +PFNGLISSAMPLERPROC glad_glIsSampler = NULL; +PFNGLISSHADERPROC glad_glIsShader = NULL; +PFNGLISSYNCPROC glad_glIsSync = NULL; +PFNGLISTEXTUREPROC glad_glIsTexture = NULL; +PFNGLISTRANSFORMFEEDBACKPROC glad_glIsTransformFeedback = NULL; +PFNGLISVERTEXARRAYPROC glad_glIsVertexArray = NULL; +PFNGLLIGHTMODELXOESPROC glad_glLightModelxOES = NULL; +PFNGLLIGHTMODELXVOESPROC glad_glLightModelxvOES = NULL; +PFNGLLIGHTXOESPROC glad_glLightxOES = NULL; +PFNGLLIGHTXVOESPROC glad_glLightxvOES = NULL; +PFNGLLINEWIDTHPROC glad_glLineWidth = NULL; +PFNGLLINEWIDTHXOESPROC glad_glLineWidthxOES = NULL; +PFNGLLINKPROGRAMPROC glad_glLinkProgram = NULL; +PFNGLLINKPROGRAMARBPROC glad_glLinkProgramARB = NULL; +PFNGLLOADMATRIXXOESPROC glad_glLoadMatrixxOES = NULL; +PFNGLLOADTRANSPOSEMATRIXDARBPROC glad_glLoadTransposeMatrixdARB = NULL; +PFNGLLOADTRANSPOSEMATRIXFARBPROC glad_glLoadTransposeMatrixfARB = NULL; +PFNGLLOADTRANSPOSEMATRIXXOESPROC glad_glLoadTransposeMatrixxOES = NULL; +PFNGLLOGICOPPROC glad_glLogicOp = NULL; +PFNGLMAP1XOESPROC glad_glMap1xOES = NULL; +PFNGLMAP2XOESPROC glad_glMap2xOES = NULL; +PFNGLMAPBUFFERPROC glad_glMapBuffer = NULL; +PFNGLMAPBUFFERARBPROC glad_glMapBufferARB = NULL; +PFNGLMAPBUFFERRANGEPROC glad_glMapBufferRange = NULL; +PFNGLMAPGRID1XOESPROC glad_glMapGrid1xOES = NULL; +PFNGLMAPGRID2XOESPROC glad_glMapGrid2xOES = NULL; +PFNGLMAPNAMEDBUFFERPROC glad_glMapNamedBuffer = NULL; +PFNGLMAPNAMEDBUFFERRANGEPROC glad_glMapNamedBufferRange = NULL; +PFNGLMATERIALXOESPROC glad_glMaterialxOES = NULL; +PFNGLMATERIALXVOESPROC glad_glMaterialxvOES = NULL; +PFNGLMEMORYBARRIERPROC glad_glMemoryBarrier = NULL; +PFNGLMEMORYBARRIERBYREGIONPROC glad_glMemoryBarrierByRegion = NULL; +PFNGLMINSAMPLESHADINGPROC glad_glMinSampleShading = NULL; +PFNGLMINSAMPLESHADINGARBPROC glad_glMinSampleShadingARB = NULL; +PFNGLMULTMATRIXXOESPROC glad_glMultMatrixxOES = NULL; +PFNGLMULTTRANSPOSEMATRIXDARBPROC glad_glMultTransposeMatrixdARB = NULL; +PFNGLMULTTRANSPOSEMATRIXFARBPROC glad_glMultTransposeMatrixfARB = NULL; +PFNGLMULTTRANSPOSEMATRIXXOESPROC glad_glMultTransposeMatrixxOES = NULL; +PFNGLMULTIDRAWARRAYSPROC glad_glMultiDrawArrays = NULL; +PFNGLMULTIDRAWARRAYSINDIRECTPROC glad_glMultiDrawArraysIndirect = NULL; +PFNGLMULTIDRAWELEMENTSPROC glad_glMultiDrawElements = NULL; +PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glad_glMultiDrawElementsBaseVertex = NULL; +PFNGLMULTIDRAWELEMENTSINDIRECTPROC glad_glMultiDrawElementsIndirect = NULL; +PFNGLMULTITEXCOORD1DARBPROC glad_glMultiTexCoord1dARB = NULL; +PFNGLMULTITEXCOORD1DVARBPROC glad_glMultiTexCoord1dvARB = NULL; +PFNGLMULTITEXCOORD1FARBPROC glad_glMultiTexCoord1fARB = NULL; +PFNGLMULTITEXCOORD1FVARBPROC glad_glMultiTexCoord1fvARB = NULL; +PFNGLMULTITEXCOORD1IARBPROC glad_glMultiTexCoord1iARB = NULL; +PFNGLMULTITEXCOORD1IVARBPROC glad_glMultiTexCoord1ivARB = NULL; +PFNGLMULTITEXCOORD1SARBPROC glad_glMultiTexCoord1sARB = NULL; +PFNGLMULTITEXCOORD1SVARBPROC glad_glMultiTexCoord1svARB = NULL; +PFNGLMULTITEXCOORD1XOESPROC glad_glMultiTexCoord1xOES = NULL; +PFNGLMULTITEXCOORD1XVOESPROC glad_glMultiTexCoord1xvOES = NULL; +PFNGLMULTITEXCOORD2DARBPROC glad_glMultiTexCoord2dARB = NULL; +PFNGLMULTITEXCOORD2DVARBPROC glad_glMultiTexCoord2dvARB = NULL; +PFNGLMULTITEXCOORD2FARBPROC glad_glMultiTexCoord2fARB = NULL; +PFNGLMULTITEXCOORD2FVARBPROC glad_glMultiTexCoord2fvARB = NULL; +PFNGLMULTITEXCOORD2IARBPROC glad_glMultiTexCoord2iARB = NULL; +PFNGLMULTITEXCOORD2IVARBPROC glad_glMultiTexCoord2ivARB = NULL; +PFNGLMULTITEXCOORD2SARBPROC glad_glMultiTexCoord2sARB = NULL; +PFNGLMULTITEXCOORD2SVARBPROC glad_glMultiTexCoord2svARB = NULL; +PFNGLMULTITEXCOORD2XOESPROC glad_glMultiTexCoord2xOES = NULL; +PFNGLMULTITEXCOORD2XVOESPROC glad_glMultiTexCoord2xvOES = NULL; +PFNGLMULTITEXCOORD3DARBPROC glad_glMultiTexCoord3dARB = NULL; +PFNGLMULTITEXCOORD3DVARBPROC glad_glMultiTexCoord3dvARB = NULL; +PFNGLMULTITEXCOORD3FARBPROC glad_glMultiTexCoord3fARB = NULL; +PFNGLMULTITEXCOORD3FVARBPROC glad_glMultiTexCoord3fvARB = NULL; +PFNGLMULTITEXCOORD3IARBPROC glad_glMultiTexCoord3iARB = NULL; +PFNGLMULTITEXCOORD3IVARBPROC glad_glMultiTexCoord3ivARB = NULL; +PFNGLMULTITEXCOORD3SARBPROC glad_glMultiTexCoord3sARB = NULL; +PFNGLMULTITEXCOORD3SVARBPROC glad_glMultiTexCoord3svARB = NULL; +PFNGLMULTITEXCOORD3XOESPROC glad_glMultiTexCoord3xOES = NULL; +PFNGLMULTITEXCOORD3XVOESPROC glad_glMultiTexCoord3xvOES = NULL; +PFNGLMULTITEXCOORD4DARBPROC glad_glMultiTexCoord4dARB = NULL; +PFNGLMULTITEXCOORD4DVARBPROC glad_glMultiTexCoord4dvARB = NULL; +PFNGLMULTITEXCOORD4FARBPROC glad_glMultiTexCoord4fARB = NULL; +PFNGLMULTITEXCOORD4FVARBPROC glad_glMultiTexCoord4fvARB = NULL; +PFNGLMULTITEXCOORD4IARBPROC glad_glMultiTexCoord4iARB = NULL; +PFNGLMULTITEXCOORD4IVARBPROC glad_glMultiTexCoord4ivARB = NULL; +PFNGLMULTITEXCOORD4SARBPROC glad_glMultiTexCoord4sARB = NULL; +PFNGLMULTITEXCOORD4SVARBPROC glad_glMultiTexCoord4svARB = NULL; +PFNGLMULTITEXCOORD4XOESPROC glad_glMultiTexCoord4xOES = NULL; +PFNGLMULTITEXCOORD4XVOESPROC glad_glMultiTexCoord4xvOES = NULL; +PFNGLNAMEDBUFFERDATAPROC glad_glNamedBufferData = NULL; +PFNGLNAMEDBUFFERSTORAGEPROC glad_glNamedBufferStorage = NULL; +PFNGLNAMEDBUFFERSUBDATAPROC glad_glNamedBufferSubData = NULL; +PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC glad_glNamedFramebufferDrawBuffer = NULL; +PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC glad_glNamedFramebufferDrawBuffers = NULL; +PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC glad_glNamedFramebufferParameteri = NULL; +PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC glad_glNamedFramebufferReadBuffer = NULL; +PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC glad_glNamedFramebufferRenderbuffer = NULL; +PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC glad_glNamedFramebufferSampleLocationsfvARB = NULL; +PFNGLNAMEDFRAMEBUFFERTEXTUREPROC glad_glNamedFramebufferTexture = NULL; +PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC glad_glNamedFramebufferTextureLayer = NULL; +PFNGLNAMEDRENDERBUFFERSTORAGEPROC glad_glNamedRenderbufferStorage = NULL; +PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glNamedRenderbufferStorageMultisample = NULL; +PFNGLNAMEDSTRINGARBPROC glad_glNamedStringARB = NULL; +PFNGLNORMAL3XOESPROC glad_glNormal3xOES = NULL; +PFNGLNORMAL3XVOESPROC glad_glNormal3xvOES = NULL; +PFNGLOBJECTLABELPROC glad_glObjectLabel = NULL; +PFNGLOBJECTPTRLABELPROC glad_glObjectPtrLabel = NULL; +PFNGLORTHOXOESPROC glad_glOrthoxOES = NULL; +PFNGLPASSTHROUGHXOESPROC glad_glPassThroughxOES = NULL; +PFNGLPATCHPARAMETERFVPROC glad_glPatchParameterfv = NULL; +PFNGLPATCHPARAMETERIPROC glad_glPatchParameteri = NULL; +PFNGLPAUSETRANSFORMFEEDBACKPROC glad_glPauseTransformFeedback = NULL; +PFNGLPIXELMAPXPROC glad_glPixelMapx = NULL; +PFNGLPIXELSTOREFPROC glad_glPixelStoref = NULL; +PFNGLPIXELSTOREIPROC glad_glPixelStorei = NULL; +PFNGLPIXELSTOREXPROC glad_glPixelStorex = NULL; +PFNGLPIXELTRANSFERXOESPROC glad_glPixelTransferxOES = NULL; +PFNGLPIXELZOOMXOESPROC glad_glPixelZoomxOES = NULL; +PFNGLPOINTPARAMETERFPROC glad_glPointParameterf = NULL; +PFNGLPOINTPARAMETERFVPROC glad_glPointParameterfv = NULL; +PFNGLPOINTPARAMETERIPROC glad_glPointParameteri = NULL; +PFNGLPOINTPARAMETERIVPROC glad_glPointParameteriv = NULL; +PFNGLPOINTPARAMETERXVOESPROC glad_glPointParameterxvOES = NULL; +PFNGLPOINTSIZEPROC glad_glPointSize = NULL; +PFNGLPOINTSIZEXOESPROC glad_glPointSizexOES = NULL; +PFNGLPOLYGONMODEPROC glad_glPolygonMode = NULL; +PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset = NULL; +PFNGLPOLYGONOFFSETXOESPROC glad_glPolygonOffsetxOES = NULL; +PFNGLPOPDEBUGGROUPPROC glad_glPopDebugGroup = NULL; +PFNGLPRIMITIVEBOUNDINGBOXARBPROC glad_glPrimitiveBoundingBoxARB = NULL; +PFNGLPRIMITIVERESTARTINDEXPROC glad_glPrimitiveRestartIndex = NULL; +PFNGLPRIORITIZETEXTURESXOESPROC glad_glPrioritizeTexturesxOES = NULL; +PFNGLPROGRAMBINARYPROC glad_glProgramBinary = NULL; +PFNGLPROGRAMENVPARAMETER4DARBPROC glad_glProgramEnvParameter4dARB = NULL; +PFNGLPROGRAMENVPARAMETER4DVARBPROC glad_glProgramEnvParameter4dvARB = NULL; +PFNGLPROGRAMENVPARAMETER4FARBPROC glad_glProgramEnvParameter4fARB = NULL; +PFNGLPROGRAMENVPARAMETER4FVARBPROC glad_glProgramEnvParameter4fvARB = NULL; +PFNGLPROGRAMLOCALPARAMETER4DARBPROC glad_glProgramLocalParameter4dARB = NULL; +PFNGLPROGRAMLOCALPARAMETER4DVARBPROC glad_glProgramLocalParameter4dvARB = NULL; +PFNGLPROGRAMLOCALPARAMETER4FARBPROC glad_glProgramLocalParameter4fARB = NULL; +PFNGLPROGRAMLOCALPARAMETER4FVARBPROC glad_glProgramLocalParameter4fvARB = NULL; +PFNGLPROGRAMPARAMETERIPROC glad_glProgramParameteri = NULL; +PFNGLPROGRAMPARAMETERIARBPROC glad_glProgramParameteriARB = NULL; +PFNGLPROGRAMSTRINGARBPROC glad_glProgramStringARB = NULL; +PFNGLPROGRAMUNIFORM1DPROC glad_glProgramUniform1d = NULL; +PFNGLPROGRAMUNIFORM1DVPROC glad_glProgramUniform1dv = NULL; +PFNGLPROGRAMUNIFORM1FPROC glad_glProgramUniform1f = NULL; +PFNGLPROGRAMUNIFORM1FVPROC glad_glProgramUniform1fv = NULL; +PFNGLPROGRAMUNIFORM1IPROC glad_glProgramUniform1i = NULL; +PFNGLPROGRAMUNIFORM1I64ARBPROC glad_glProgramUniform1i64ARB = NULL; +PFNGLPROGRAMUNIFORM1I64VARBPROC glad_glProgramUniform1i64vARB = NULL; +PFNGLPROGRAMUNIFORM1IVPROC glad_glProgramUniform1iv = NULL; +PFNGLPROGRAMUNIFORM1UIPROC glad_glProgramUniform1ui = NULL; +PFNGLPROGRAMUNIFORM1UI64ARBPROC glad_glProgramUniform1ui64ARB = NULL; +PFNGLPROGRAMUNIFORM1UI64VARBPROC glad_glProgramUniform1ui64vARB = NULL; +PFNGLPROGRAMUNIFORM1UIVPROC glad_glProgramUniform1uiv = NULL; +PFNGLPROGRAMUNIFORM2DPROC glad_glProgramUniform2d = NULL; +PFNGLPROGRAMUNIFORM2DVPROC glad_glProgramUniform2dv = NULL; +PFNGLPROGRAMUNIFORM2FPROC glad_glProgramUniform2f = NULL; +PFNGLPROGRAMUNIFORM2FVPROC glad_glProgramUniform2fv = NULL; +PFNGLPROGRAMUNIFORM2IPROC glad_glProgramUniform2i = NULL; +PFNGLPROGRAMUNIFORM2I64ARBPROC glad_glProgramUniform2i64ARB = NULL; +PFNGLPROGRAMUNIFORM2I64VARBPROC glad_glProgramUniform2i64vARB = NULL; +PFNGLPROGRAMUNIFORM2IVPROC glad_glProgramUniform2iv = NULL; +PFNGLPROGRAMUNIFORM2UIPROC glad_glProgramUniform2ui = NULL; +PFNGLPROGRAMUNIFORM2UI64ARBPROC glad_glProgramUniform2ui64ARB = NULL; +PFNGLPROGRAMUNIFORM2UI64VARBPROC glad_glProgramUniform2ui64vARB = NULL; +PFNGLPROGRAMUNIFORM2UIVPROC glad_glProgramUniform2uiv = NULL; +PFNGLPROGRAMUNIFORM3DPROC glad_glProgramUniform3d = NULL; +PFNGLPROGRAMUNIFORM3DVPROC glad_glProgramUniform3dv = NULL; +PFNGLPROGRAMUNIFORM3FPROC glad_glProgramUniform3f = NULL; +PFNGLPROGRAMUNIFORM3FVPROC glad_glProgramUniform3fv = NULL; +PFNGLPROGRAMUNIFORM3IPROC glad_glProgramUniform3i = NULL; +PFNGLPROGRAMUNIFORM3I64ARBPROC glad_glProgramUniform3i64ARB = NULL; +PFNGLPROGRAMUNIFORM3I64VARBPROC glad_glProgramUniform3i64vARB = NULL; +PFNGLPROGRAMUNIFORM3IVPROC glad_glProgramUniform3iv = NULL; +PFNGLPROGRAMUNIFORM3UIPROC glad_glProgramUniform3ui = NULL; +PFNGLPROGRAMUNIFORM3UI64ARBPROC glad_glProgramUniform3ui64ARB = NULL; +PFNGLPROGRAMUNIFORM3UI64VARBPROC glad_glProgramUniform3ui64vARB = NULL; +PFNGLPROGRAMUNIFORM3UIVPROC glad_glProgramUniform3uiv = NULL; +PFNGLPROGRAMUNIFORM4DPROC glad_glProgramUniform4d = NULL; +PFNGLPROGRAMUNIFORM4DVPROC glad_glProgramUniform4dv = NULL; +PFNGLPROGRAMUNIFORM4FPROC glad_glProgramUniform4f = NULL; +PFNGLPROGRAMUNIFORM4FVPROC glad_glProgramUniform4fv = NULL; +PFNGLPROGRAMUNIFORM4IPROC glad_glProgramUniform4i = NULL; +PFNGLPROGRAMUNIFORM4I64ARBPROC glad_glProgramUniform4i64ARB = NULL; +PFNGLPROGRAMUNIFORM4I64VARBPROC glad_glProgramUniform4i64vARB = NULL; +PFNGLPROGRAMUNIFORM4IVPROC glad_glProgramUniform4iv = NULL; +PFNGLPROGRAMUNIFORM4UIPROC glad_glProgramUniform4ui = NULL; +PFNGLPROGRAMUNIFORM4UI64ARBPROC glad_glProgramUniform4ui64ARB = NULL; +PFNGLPROGRAMUNIFORM4UI64VARBPROC glad_glProgramUniform4ui64vARB = NULL; +PFNGLPROGRAMUNIFORM4UIVPROC glad_glProgramUniform4uiv = NULL; +PFNGLPROGRAMUNIFORMMATRIX2DVPROC glad_glProgramUniformMatrix2dv = NULL; +PFNGLPROGRAMUNIFORMMATRIX2FVPROC glad_glProgramUniformMatrix2fv = NULL; +PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC glad_glProgramUniformMatrix2x3dv = NULL; +PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC glad_glProgramUniformMatrix2x3fv = NULL; +PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC glad_glProgramUniformMatrix2x4dv = NULL; +PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC glad_glProgramUniformMatrix2x4fv = NULL; +PFNGLPROGRAMUNIFORMMATRIX3DVPROC glad_glProgramUniformMatrix3dv = NULL; +PFNGLPROGRAMUNIFORMMATRIX3FVPROC glad_glProgramUniformMatrix3fv = NULL; +PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC glad_glProgramUniformMatrix3x2dv = NULL; +PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC glad_glProgramUniformMatrix3x2fv = NULL; +PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC glad_glProgramUniformMatrix3x4dv = NULL; +PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC glad_glProgramUniformMatrix3x4fv = NULL; +PFNGLPROGRAMUNIFORMMATRIX4DVPROC glad_glProgramUniformMatrix4dv = NULL; +PFNGLPROGRAMUNIFORMMATRIX4FVPROC glad_glProgramUniformMatrix4fv = NULL; +PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC glad_glProgramUniformMatrix4x2dv = NULL; +PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC glad_glProgramUniformMatrix4x2fv = NULL; +PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC glad_glProgramUniformMatrix4x3dv = NULL; +PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC glad_glProgramUniformMatrix4x3fv = NULL; +PFNGLPROVOKINGVERTEXPROC glad_glProvokingVertex = NULL; +PFNGLPUSHDEBUGGROUPPROC glad_glPushDebugGroup = NULL; +PFNGLQUERYCOUNTERPROC glad_glQueryCounter = NULL; +PFNGLRASTERPOS2XOESPROC glad_glRasterPos2xOES = NULL; +PFNGLRASTERPOS2XVOESPROC glad_glRasterPos2xvOES = NULL; +PFNGLRASTERPOS3XOESPROC glad_glRasterPos3xOES = NULL; +PFNGLRASTERPOS3XVOESPROC glad_glRasterPos3xvOES = NULL; +PFNGLRASTERPOS4XOESPROC glad_glRasterPos4xOES = NULL; +PFNGLRASTERPOS4XVOESPROC glad_glRasterPos4xvOES = NULL; +PFNGLREADBUFFERPROC glad_glReadBuffer = NULL; +PFNGLREADPIXELSPROC glad_glReadPixels = NULL; +PFNGLRECTXOESPROC glad_glRectxOES = NULL; +PFNGLRECTXVOESPROC glad_glRectxvOES = NULL; +PFNGLRELEASESHADERCOMPILERPROC glad_glReleaseShaderCompiler = NULL; +PFNGLRENDERBUFFERSTORAGEPROC glad_glRenderbufferStorage = NULL; +PFNGLRENDERBUFFERSTORAGEEXTPROC glad_glRenderbufferStorageEXT = NULL; +PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glRenderbufferStorageMultisample = NULL; +PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC glad_glRenderbufferStorageMultisampleEXT = NULL; +PFNGLRESUMETRANSFORMFEEDBACKPROC glad_glResumeTransformFeedback = NULL; +PFNGLROTATEXOESPROC glad_glRotatexOES = NULL; +PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage = NULL; +PFNGLSAMPLECOVERAGEARBPROC glad_glSampleCoverageARB = NULL; +PFNGLSAMPLEMASKIPROC glad_glSampleMaski = NULL; +PFNGLSAMPLERPARAMETERIIVPROC glad_glSamplerParameterIiv = NULL; +PFNGLSAMPLERPARAMETERIUIVPROC glad_glSamplerParameterIuiv = NULL; +PFNGLSAMPLERPARAMETERFPROC glad_glSamplerParameterf = NULL; +PFNGLSAMPLERPARAMETERFVPROC glad_glSamplerParameterfv = NULL; +PFNGLSAMPLERPARAMETERIPROC glad_glSamplerParameteri = NULL; +PFNGLSAMPLERPARAMETERIVPROC glad_glSamplerParameteriv = NULL; +PFNGLSCALEXOESPROC glad_glScalexOES = NULL; +PFNGLSCISSORPROC glad_glScissor = NULL; +PFNGLSCISSORARRAYVPROC glad_glScissorArrayv = NULL; +PFNGLSCISSORINDEXEDPROC glad_glScissorIndexed = NULL; +PFNGLSCISSORINDEXEDVPROC glad_glScissorIndexedv = NULL; +PFNGLSHADERBINARYPROC glad_glShaderBinary = NULL; +PFNGLSHADERSOURCEPROC glad_glShaderSource = NULL; +PFNGLSHADERSOURCEARBPROC glad_glShaderSourceARB = NULL; +PFNGLSHADERSTORAGEBLOCKBINDINGPROC glad_glShaderStorageBlockBinding = NULL; +PFNGLSPECIALIZESHADERARBPROC glad_glSpecializeShaderARB = NULL; +PFNGLSTENCILFUNCPROC glad_glStencilFunc = NULL; +PFNGLSTENCILFUNCSEPARATEPROC glad_glStencilFuncSeparate = NULL; +PFNGLSTENCILMASKPROC glad_glStencilMask = NULL; +PFNGLSTENCILMASKSEPARATEPROC glad_glStencilMaskSeparate = NULL; +PFNGLSTENCILOPPROC glad_glStencilOp = NULL; +PFNGLSTENCILOPSEPARATEPROC glad_glStencilOpSeparate = NULL; +PFNGLTEXBUFFERPROC glad_glTexBuffer = NULL; +PFNGLTEXBUFFERRANGEPROC glad_glTexBufferRange = NULL; +PFNGLTEXCOORD1XOESPROC glad_glTexCoord1xOES = NULL; +PFNGLTEXCOORD1XVOESPROC glad_glTexCoord1xvOES = NULL; +PFNGLTEXCOORD2XOESPROC glad_glTexCoord2xOES = NULL; +PFNGLTEXCOORD2XVOESPROC glad_glTexCoord2xvOES = NULL; +PFNGLTEXCOORD3XOESPROC glad_glTexCoord3xOES = NULL; +PFNGLTEXCOORD3XVOESPROC glad_glTexCoord3xvOES = NULL; +PFNGLTEXCOORD4XOESPROC glad_glTexCoord4xOES = NULL; +PFNGLTEXCOORD4XVOESPROC glad_glTexCoord4xvOES = NULL; +PFNGLTEXENVXOESPROC glad_glTexEnvxOES = NULL; +PFNGLTEXENVXVOESPROC glad_glTexEnvxvOES = NULL; +PFNGLTEXGENXOESPROC glad_glTexGenxOES = NULL; +PFNGLTEXGENXVOESPROC glad_glTexGenxvOES = NULL; +PFNGLTEXIMAGE1DPROC glad_glTexImage1D = NULL; +PFNGLTEXIMAGE2DPROC glad_glTexImage2D = NULL; +PFNGLTEXIMAGE2DMULTISAMPLEPROC glad_glTexImage2DMultisample = NULL; +PFNGLTEXIMAGE3DPROC glad_glTexImage3D = NULL; +PFNGLTEXIMAGE3DMULTISAMPLEPROC glad_glTexImage3DMultisample = NULL; +PFNGLTEXPARAMETERIIVPROC glad_glTexParameterIiv = NULL; +PFNGLTEXPARAMETERIUIVPROC glad_glTexParameterIuiv = NULL; +PFNGLTEXPARAMETERFPROC glad_glTexParameterf = NULL; +PFNGLTEXPARAMETERFVPROC glad_glTexParameterfv = NULL; +PFNGLTEXPARAMETERIPROC glad_glTexParameteri = NULL; +PFNGLTEXPARAMETERIVPROC glad_glTexParameteriv = NULL; +PFNGLTEXPARAMETERXOESPROC glad_glTexParameterxOES = NULL; +PFNGLTEXPARAMETERXVOESPROC glad_glTexParameterxvOES = NULL; +PFNGLTEXSTORAGE1DPROC glad_glTexStorage1D = NULL; +PFNGLTEXSTORAGE2DPROC glad_glTexStorage2D = NULL; +PFNGLTEXSTORAGE2DMULTISAMPLEPROC glad_glTexStorage2DMultisample = NULL; +PFNGLTEXSTORAGE3DPROC glad_glTexStorage3D = NULL; +PFNGLTEXSTORAGE3DMULTISAMPLEPROC glad_glTexStorage3DMultisample = NULL; +PFNGLTEXSUBIMAGE1DPROC glad_glTexSubImage1D = NULL; +PFNGLTEXSUBIMAGE2DPROC glad_glTexSubImage2D = NULL; +PFNGLTEXSUBIMAGE3DPROC glad_glTexSubImage3D = NULL; +PFNGLTEXTUREBUFFERPROC glad_glTextureBuffer = NULL; +PFNGLTEXTUREBUFFERRANGEPROC glad_glTextureBufferRange = NULL; +PFNGLTEXTUREPARAMETERIIVPROC glad_glTextureParameterIiv = NULL; +PFNGLTEXTUREPARAMETERIUIVPROC glad_glTextureParameterIuiv = NULL; +PFNGLTEXTUREPARAMETERFPROC glad_glTextureParameterf = NULL; +PFNGLTEXTUREPARAMETERFVPROC glad_glTextureParameterfv = NULL; +PFNGLTEXTUREPARAMETERIPROC glad_glTextureParameteri = NULL; +PFNGLTEXTUREPARAMETERIVPROC glad_glTextureParameteriv = NULL; +PFNGLTEXTURESTORAGE1DPROC glad_glTextureStorage1D = NULL; +PFNGLTEXTURESTORAGE2DPROC glad_glTextureStorage2D = NULL; +PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC glad_glTextureStorage2DMultisample = NULL; +PFNGLTEXTURESTORAGE3DPROC glad_glTextureStorage3D = NULL; +PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC glad_glTextureStorage3DMultisample = NULL; +PFNGLTEXTURESUBIMAGE1DPROC glad_glTextureSubImage1D = NULL; +PFNGLTEXTURESUBIMAGE2DPROC glad_glTextureSubImage2D = NULL; +PFNGLTEXTURESUBIMAGE3DPROC glad_glTextureSubImage3D = NULL; +PFNGLTEXTUREVIEWPROC glad_glTextureView = NULL; +PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC glad_glTransformFeedbackBufferBase = NULL; +PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC glad_glTransformFeedbackBufferRange = NULL; +PFNGLTRANSFORMFEEDBACKVARYINGSPROC glad_glTransformFeedbackVaryings = NULL; +PFNGLTRANSLATEXOESPROC glad_glTranslatexOES = NULL; +PFNGLUNIFORM1DPROC glad_glUniform1d = NULL; +PFNGLUNIFORM1DVPROC glad_glUniform1dv = NULL; +PFNGLUNIFORM1FPROC glad_glUniform1f = NULL; +PFNGLUNIFORM1FARBPROC glad_glUniform1fARB = NULL; +PFNGLUNIFORM1FVPROC glad_glUniform1fv = NULL; +PFNGLUNIFORM1FVARBPROC glad_glUniform1fvARB = NULL; +PFNGLUNIFORM1IPROC glad_glUniform1i = NULL; +PFNGLUNIFORM1I64ARBPROC glad_glUniform1i64ARB = NULL; +PFNGLUNIFORM1I64VARBPROC glad_glUniform1i64vARB = NULL; +PFNGLUNIFORM1IARBPROC glad_glUniform1iARB = NULL; +PFNGLUNIFORM1IVPROC glad_glUniform1iv = NULL; +PFNGLUNIFORM1IVARBPROC glad_glUniform1ivARB = NULL; +PFNGLUNIFORM1UIPROC glad_glUniform1ui = NULL; +PFNGLUNIFORM1UI64ARBPROC glad_glUniform1ui64ARB = NULL; +PFNGLUNIFORM1UI64VARBPROC glad_glUniform1ui64vARB = NULL; +PFNGLUNIFORM1UIVPROC glad_glUniform1uiv = NULL; +PFNGLUNIFORM2DPROC glad_glUniform2d = NULL; +PFNGLUNIFORM2DVPROC glad_glUniform2dv = NULL; +PFNGLUNIFORM2FPROC glad_glUniform2f = NULL; +PFNGLUNIFORM2FARBPROC glad_glUniform2fARB = NULL; +PFNGLUNIFORM2FVPROC glad_glUniform2fv = NULL; +PFNGLUNIFORM2FVARBPROC glad_glUniform2fvARB = NULL; +PFNGLUNIFORM2IPROC glad_glUniform2i = NULL; +PFNGLUNIFORM2I64ARBPROC glad_glUniform2i64ARB = NULL; +PFNGLUNIFORM2I64VARBPROC glad_glUniform2i64vARB = NULL; +PFNGLUNIFORM2IARBPROC glad_glUniform2iARB = NULL; +PFNGLUNIFORM2IVPROC glad_glUniform2iv = NULL; +PFNGLUNIFORM2IVARBPROC glad_glUniform2ivARB = NULL; +PFNGLUNIFORM2UIPROC glad_glUniform2ui = NULL; +PFNGLUNIFORM2UI64ARBPROC glad_glUniform2ui64ARB = NULL; +PFNGLUNIFORM2UI64VARBPROC glad_glUniform2ui64vARB = NULL; +PFNGLUNIFORM2UIVPROC glad_glUniform2uiv = NULL; +PFNGLUNIFORM3DPROC glad_glUniform3d = NULL; +PFNGLUNIFORM3DVPROC glad_glUniform3dv = NULL; +PFNGLUNIFORM3FPROC glad_glUniform3f = NULL; +PFNGLUNIFORM3FARBPROC glad_glUniform3fARB = NULL; +PFNGLUNIFORM3FVPROC glad_glUniform3fv = NULL; +PFNGLUNIFORM3FVARBPROC glad_glUniform3fvARB = NULL; +PFNGLUNIFORM3IPROC glad_glUniform3i = NULL; +PFNGLUNIFORM3I64ARBPROC glad_glUniform3i64ARB = NULL; +PFNGLUNIFORM3I64VARBPROC glad_glUniform3i64vARB = NULL; +PFNGLUNIFORM3IARBPROC glad_glUniform3iARB = NULL; +PFNGLUNIFORM3IVPROC glad_glUniform3iv = NULL; +PFNGLUNIFORM3IVARBPROC glad_glUniform3ivARB = NULL; +PFNGLUNIFORM3UIPROC glad_glUniform3ui = NULL; +PFNGLUNIFORM3UI64ARBPROC glad_glUniform3ui64ARB = NULL; +PFNGLUNIFORM3UI64VARBPROC glad_glUniform3ui64vARB = NULL; +PFNGLUNIFORM3UIVPROC glad_glUniform3uiv = NULL; +PFNGLUNIFORM4DPROC glad_glUniform4d = NULL; +PFNGLUNIFORM4DVPROC glad_glUniform4dv = NULL; +PFNGLUNIFORM4FPROC glad_glUniform4f = NULL; +PFNGLUNIFORM4FARBPROC glad_glUniform4fARB = NULL; +PFNGLUNIFORM4FVPROC glad_glUniform4fv = NULL; +PFNGLUNIFORM4FVARBPROC glad_glUniform4fvARB = NULL; +PFNGLUNIFORM4IPROC glad_glUniform4i = NULL; +PFNGLUNIFORM4I64ARBPROC glad_glUniform4i64ARB = NULL; +PFNGLUNIFORM4I64VARBPROC glad_glUniform4i64vARB = NULL; +PFNGLUNIFORM4IARBPROC glad_glUniform4iARB = NULL; +PFNGLUNIFORM4IVPROC glad_glUniform4iv = NULL; +PFNGLUNIFORM4IVARBPROC glad_glUniform4ivARB = NULL; +PFNGLUNIFORM4UIPROC glad_glUniform4ui = NULL; +PFNGLUNIFORM4UI64ARBPROC glad_glUniform4ui64ARB = NULL; +PFNGLUNIFORM4UI64VARBPROC glad_glUniform4ui64vARB = NULL; +PFNGLUNIFORM4UIVPROC glad_glUniform4uiv = NULL; +PFNGLUNIFORMBLOCKBINDINGPROC glad_glUniformBlockBinding = NULL; +PFNGLUNIFORMMATRIX2DVPROC glad_glUniformMatrix2dv = NULL; +PFNGLUNIFORMMATRIX2FVPROC glad_glUniformMatrix2fv = NULL; +PFNGLUNIFORMMATRIX2FVARBPROC glad_glUniformMatrix2fvARB = NULL; +PFNGLUNIFORMMATRIX2X3DVPROC glad_glUniformMatrix2x3dv = NULL; +PFNGLUNIFORMMATRIX2X3FVPROC glad_glUniformMatrix2x3fv = NULL; +PFNGLUNIFORMMATRIX2X4DVPROC glad_glUniformMatrix2x4dv = NULL; +PFNGLUNIFORMMATRIX2X4FVPROC glad_glUniformMatrix2x4fv = NULL; +PFNGLUNIFORMMATRIX3DVPROC glad_glUniformMatrix3dv = NULL; +PFNGLUNIFORMMATRIX3FVPROC glad_glUniformMatrix3fv = NULL; +PFNGLUNIFORMMATRIX3FVARBPROC glad_glUniformMatrix3fvARB = NULL; +PFNGLUNIFORMMATRIX3X2DVPROC glad_glUniformMatrix3x2dv = NULL; +PFNGLUNIFORMMATRIX3X2FVPROC glad_glUniformMatrix3x2fv = NULL; +PFNGLUNIFORMMATRIX3X4DVPROC glad_glUniformMatrix3x4dv = NULL; +PFNGLUNIFORMMATRIX3X4FVPROC glad_glUniformMatrix3x4fv = NULL; +PFNGLUNIFORMMATRIX4DVPROC glad_glUniformMatrix4dv = NULL; +PFNGLUNIFORMMATRIX4FVPROC glad_glUniformMatrix4fv = NULL; +PFNGLUNIFORMMATRIX4FVARBPROC glad_glUniformMatrix4fvARB = NULL; +PFNGLUNIFORMMATRIX4X2DVPROC glad_glUniformMatrix4x2dv = NULL; +PFNGLUNIFORMMATRIX4X2FVPROC glad_glUniformMatrix4x2fv = NULL; +PFNGLUNIFORMMATRIX4X3DVPROC glad_glUniformMatrix4x3dv = NULL; +PFNGLUNIFORMMATRIX4X3FVPROC glad_glUniformMatrix4x3fv = NULL; +PFNGLUNIFORMSUBROUTINESUIVPROC glad_glUniformSubroutinesuiv = NULL; +PFNGLUNMAPBUFFERPROC glad_glUnmapBuffer = NULL; +PFNGLUNMAPBUFFERARBPROC glad_glUnmapBufferARB = NULL; +PFNGLUNMAPNAMEDBUFFERPROC glad_glUnmapNamedBuffer = NULL; +PFNGLUSEPROGRAMPROC glad_glUseProgram = NULL; +PFNGLUSEPROGRAMOBJECTARBPROC glad_glUseProgramObjectARB = NULL; +PFNGLUSEPROGRAMSTAGESPROC glad_glUseProgramStages = NULL; +PFNGLVALIDATEPROGRAMPROC glad_glValidateProgram = NULL; +PFNGLVALIDATEPROGRAMARBPROC glad_glValidateProgramARB = NULL; +PFNGLVALIDATEPROGRAMPIPELINEPROC glad_glValidateProgramPipeline = NULL; +PFNGLVERTEX2XOESPROC glad_glVertex2xOES = NULL; +PFNGLVERTEX2XVOESPROC glad_glVertex2xvOES = NULL; +PFNGLVERTEX3XOESPROC glad_glVertex3xOES = NULL; +PFNGLVERTEX3XVOESPROC glad_glVertex3xvOES = NULL; +PFNGLVERTEX4XOESPROC glad_glVertex4xOES = NULL; +PFNGLVERTEX4XVOESPROC glad_glVertex4xvOES = NULL; +PFNGLVERTEXARRAYATTRIBBINDINGPROC glad_glVertexArrayAttribBinding = NULL; +PFNGLVERTEXARRAYATTRIBFORMATPROC glad_glVertexArrayAttribFormat = NULL; +PFNGLVERTEXARRAYATTRIBIFORMATPROC glad_glVertexArrayAttribIFormat = NULL; +PFNGLVERTEXARRAYATTRIBLFORMATPROC glad_glVertexArrayAttribLFormat = NULL; +PFNGLVERTEXARRAYBINDINGDIVISORPROC glad_glVertexArrayBindingDivisor = NULL; +PFNGLVERTEXARRAYELEMENTBUFFERPROC glad_glVertexArrayElementBuffer = NULL; +PFNGLVERTEXARRAYVERTEXBUFFERPROC glad_glVertexArrayVertexBuffer = NULL; +PFNGLVERTEXARRAYVERTEXBUFFERSPROC glad_glVertexArrayVertexBuffers = NULL; +PFNGLVERTEXATTRIB1DPROC glad_glVertexAttrib1d = NULL; +PFNGLVERTEXATTRIB1DARBPROC glad_glVertexAttrib1dARB = NULL; +PFNGLVERTEXATTRIB1DVPROC glad_glVertexAttrib1dv = NULL; +PFNGLVERTEXATTRIB1DVARBPROC glad_glVertexAttrib1dvARB = NULL; +PFNGLVERTEXATTRIB1FPROC glad_glVertexAttrib1f = NULL; +PFNGLVERTEXATTRIB1FARBPROC glad_glVertexAttrib1fARB = NULL; +PFNGLVERTEXATTRIB1FVPROC glad_glVertexAttrib1fv = NULL; +PFNGLVERTEXATTRIB1FVARBPROC glad_glVertexAttrib1fvARB = NULL; +PFNGLVERTEXATTRIB1SPROC glad_glVertexAttrib1s = NULL; +PFNGLVERTEXATTRIB1SARBPROC glad_glVertexAttrib1sARB = NULL; +PFNGLVERTEXATTRIB1SVPROC glad_glVertexAttrib1sv = NULL; +PFNGLVERTEXATTRIB1SVARBPROC glad_glVertexAttrib1svARB = NULL; +PFNGLVERTEXATTRIB2DPROC glad_glVertexAttrib2d = NULL; +PFNGLVERTEXATTRIB2DARBPROC glad_glVertexAttrib2dARB = NULL; +PFNGLVERTEXATTRIB2DVPROC glad_glVertexAttrib2dv = NULL; +PFNGLVERTEXATTRIB2DVARBPROC glad_glVertexAttrib2dvARB = NULL; +PFNGLVERTEXATTRIB2FPROC glad_glVertexAttrib2f = NULL; +PFNGLVERTEXATTRIB2FARBPROC glad_glVertexAttrib2fARB = NULL; +PFNGLVERTEXATTRIB2FVPROC glad_glVertexAttrib2fv = NULL; +PFNGLVERTEXATTRIB2FVARBPROC glad_glVertexAttrib2fvARB = NULL; +PFNGLVERTEXATTRIB2SPROC glad_glVertexAttrib2s = NULL; +PFNGLVERTEXATTRIB2SARBPROC glad_glVertexAttrib2sARB = NULL; +PFNGLVERTEXATTRIB2SVPROC glad_glVertexAttrib2sv = NULL; +PFNGLVERTEXATTRIB2SVARBPROC glad_glVertexAttrib2svARB = NULL; +PFNGLVERTEXATTRIB3DPROC glad_glVertexAttrib3d = NULL; +PFNGLVERTEXATTRIB3DARBPROC glad_glVertexAttrib3dARB = NULL; +PFNGLVERTEXATTRIB3DVPROC glad_glVertexAttrib3dv = NULL; +PFNGLVERTEXATTRIB3DVARBPROC glad_glVertexAttrib3dvARB = NULL; +PFNGLVERTEXATTRIB3FPROC glad_glVertexAttrib3f = NULL; +PFNGLVERTEXATTRIB3FARBPROC glad_glVertexAttrib3fARB = NULL; +PFNGLVERTEXATTRIB3FVPROC glad_glVertexAttrib3fv = NULL; +PFNGLVERTEXATTRIB3FVARBPROC glad_glVertexAttrib3fvARB = NULL; +PFNGLVERTEXATTRIB3SPROC glad_glVertexAttrib3s = NULL; +PFNGLVERTEXATTRIB3SARBPROC glad_glVertexAttrib3sARB = NULL; +PFNGLVERTEXATTRIB3SVPROC glad_glVertexAttrib3sv = NULL; +PFNGLVERTEXATTRIB3SVARBPROC glad_glVertexAttrib3svARB = NULL; +PFNGLVERTEXATTRIB4NBVPROC glad_glVertexAttrib4Nbv = NULL; +PFNGLVERTEXATTRIB4NBVARBPROC glad_glVertexAttrib4NbvARB = NULL; +PFNGLVERTEXATTRIB4NIVPROC glad_glVertexAttrib4Niv = NULL; +PFNGLVERTEXATTRIB4NIVARBPROC glad_glVertexAttrib4NivARB = NULL; +PFNGLVERTEXATTRIB4NSVPROC glad_glVertexAttrib4Nsv = NULL; +PFNGLVERTEXATTRIB4NSVARBPROC glad_glVertexAttrib4NsvARB = NULL; +PFNGLVERTEXATTRIB4NUBPROC glad_glVertexAttrib4Nub = NULL; +PFNGLVERTEXATTRIB4NUBARBPROC glad_glVertexAttrib4NubARB = NULL; +PFNGLVERTEXATTRIB4NUBVPROC glad_glVertexAttrib4Nubv = NULL; +PFNGLVERTEXATTRIB4NUBVARBPROC glad_glVertexAttrib4NubvARB = NULL; +PFNGLVERTEXATTRIB4NUIVPROC glad_glVertexAttrib4Nuiv = NULL; +PFNGLVERTEXATTRIB4NUIVARBPROC glad_glVertexAttrib4NuivARB = NULL; +PFNGLVERTEXATTRIB4NUSVPROC glad_glVertexAttrib4Nusv = NULL; +PFNGLVERTEXATTRIB4NUSVARBPROC glad_glVertexAttrib4NusvARB = NULL; +PFNGLVERTEXATTRIB4BVPROC glad_glVertexAttrib4bv = NULL; +PFNGLVERTEXATTRIB4BVARBPROC glad_glVertexAttrib4bvARB = NULL; +PFNGLVERTEXATTRIB4DPROC glad_glVertexAttrib4d = NULL; +PFNGLVERTEXATTRIB4DARBPROC glad_glVertexAttrib4dARB = NULL; +PFNGLVERTEXATTRIB4DVPROC glad_glVertexAttrib4dv = NULL; +PFNGLVERTEXATTRIB4DVARBPROC glad_glVertexAttrib4dvARB = NULL; +PFNGLVERTEXATTRIB4FPROC glad_glVertexAttrib4f = NULL; +PFNGLVERTEXATTRIB4FARBPROC glad_glVertexAttrib4fARB = NULL; +PFNGLVERTEXATTRIB4FVPROC glad_glVertexAttrib4fv = NULL; +PFNGLVERTEXATTRIB4FVARBPROC glad_glVertexAttrib4fvARB = NULL; +PFNGLVERTEXATTRIB4IVPROC glad_glVertexAttrib4iv = NULL; +PFNGLVERTEXATTRIB4IVARBPROC glad_glVertexAttrib4ivARB = NULL; +PFNGLVERTEXATTRIB4SPROC glad_glVertexAttrib4s = NULL; +PFNGLVERTEXATTRIB4SARBPROC glad_glVertexAttrib4sARB = NULL; +PFNGLVERTEXATTRIB4SVPROC glad_glVertexAttrib4sv = NULL; +PFNGLVERTEXATTRIB4SVARBPROC glad_glVertexAttrib4svARB = NULL; +PFNGLVERTEXATTRIB4UBVPROC glad_glVertexAttrib4ubv = NULL; +PFNGLVERTEXATTRIB4UBVARBPROC glad_glVertexAttrib4ubvARB = NULL; +PFNGLVERTEXATTRIB4UIVPROC glad_glVertexAttrib4uiv = NULL; +PFNGLVERTEXATTRIB4UIVARBPROC glad_glVertexAttrib4uivARB = NULL; +PFNGLVERTEXATTRIB4USVPROC glad_glVertexAttrib4usv = NULL; +PFNGLVERTEXATTRIB4USVARBPROC glad_glVertexAttrib4usvARB = NULL; +PFNGLVERTEXATTRIBBINDINGPROC glad_glVertexAttribBinding = NULL; +PFNGLVERTEXATTRIBDIVISORPROC glad_glVertexAttribDivisor = NULL; +PFNGLVERTEXATTRIBDIVISORARBPROC glad_glVertexAttribDivisorARB = NULL; +PFNGLVERTEXATTRIBFORMATPROC glad_glVertexAttribFormat = NULL; +PFNGLVERTEXATTRIBI1IPROC glad_glVertexAttribI1i = NULL; +PFNGLVERTEXATTRIBI1IVPROC glad_glVertexAttribI1iv = NULL; +PFNGLVERTEXATTRIBI1UIPROC glad_glVertexAttribI1ui = NULL; +PFNGLVERTEXATTRIBI1UIVPROC glad_glVertexAttribI1uiv = NULL; +PFNGLVERTEXATTRIBI2IPROC glad_glVertexAttribI2i = NULL; +PFNGLVERTEXATTRIBI2IVPROC glad_glVertexAttribI2iv = NULL; +PFNGLVERTEXATTRIBI2UIPROC glad_glVertexAttribI2ui = NULL; +PFNGLVERTEXATTRIBI2UIVPROC glad_glVertexAttribI2uiv = NULL; +PFNGLVERTEXATTRIBI3IPROC glad_glVertexAttribI3i = NULL; +PFNGLVERTEXATTRIBI3IVPROC glad_glVertexAttribI3iv = NULL; +PFNGLVERTEXATTRIBI3UIPROC glad_glVertexAttribI3ui = NULL; +PFNGLVERTEXATTRIBI3UIVPROC glad_glVertexAttribI3uiv = NULL; +PFNGLVERTEXATTRIBI4BVPROC glad_glVertexAttribI4bv = NULL; +PFNGLVERTEXATTRIBI4IPROC glad_glVertexAttribI4i = NULL; +PFNGLVERTEXATTRIBI4IVPROC glad_glVertexAttribI4iv = NULL; +PFNGLVERTEXATTRIBI4SVPROC glad_glVertexAttribI4sv = NULL; +PFNGLVERTEXATTRIBI4UBVPROC glad_glVertexAttribI4ubv = NULL; +PFNGLVERTEXATTRIBI4UIPROC glad_glVertexAttribI4ui = NULL; +PFNGLVERTEXATTRIBI4UIVPROC glad_glVertexAttribI4uiv = NULL; +PFNGLVERTEXATTRIBI4USVPROC glad_glVertexAttribI4usv = NULL; +PFNGLVERTEXATTRIBIFORMATPROC glad_glVertexAttribIFormat = NULL; +PFNGLVERTEXATTRIBIPOINTERPROC glad_glVertexAttribIPointer = NULL; +PFNGLVERTEXATTRIBL1DPROC glad_glVertexAttribL1d = NULL; +PFNGLVERTEXATTRIBL1DVPROC glad_glVertexAttribL1dv = NULL; +PFNGLVERTEXATTRIBL2DPROC glad_glVertexAttribL2d = NULL; +PFNGLVERTEXATTRIBL2DVPROC glad_glVertexAttribL2dv = NULL; +PFNGLVERTEXATTRIBL3DPROC glad_glVertexAttribL3d = NULL; +PFNGLVERTEXATTRIBL3DVPROC glad_glVertexAttribL3dv = NULL; +PFNGLVERTEXATTRIBL4DPROC glad_glVertexAttribL4d = NULL; +PFNGLVERTEXATTRIBL4DVPROC glad_glVertexAttribL4dv = NULL; +PFNGLVERTEXATTRIBLFORMATPROC glad_glVertexAttribLFormat = NULL; +PFNGLVERTEXATTRIBLPOINTERPROC glad_glVertexAttribLPointer = NULL; +PFNGLVERTEXATTRIBP1UIPROC glad_glVertexAttribP1ui = NULL; +PFNGLVERTEXATTRIBP1UIVPROC glad_glVertexAttribP1uiv = NULL; +PFNGLVERTEXATTRIBP2UIPROC glad_glVertexAttribP2ui = NULL; +PFNGLVERTEXATTRIBP2UIVPROC glad_glVertexAttribP2uiv = NULL; +PFNGLVERTEXATTRIBP3UIPROC glad_glVertexAttribP3ui = NULL; +PFNGLVERTEXATTRIBP3UIVPROC glad_glVertexAttribP3uiv = NULL; +PFNGLVERTEXATTRIBP4UIPROC glad_glVertexAttribP4ui = NULL; +PFNGLVERTEXATTRIBP4UIVPROC glad_glVertexAttribP4uiv = NULL; +PFNGLVERTEXATTRIBPOINTERPROC glad_glVertexAttribPointer = NULL; +PFNGLVERTEXATTRIBPOINTERARBPROC glad_glVertexAttribPointerARB = NULL; +PFNGLVERTEXBINDINGDIVISORPROC glad_glVertexBindingDivisor = NULL; +PFNGLVIEWPORTPROC glad_glViewport = NULL; +PFNGLVIEWPORTARRAYVPROC glad_glViewportArrayv = NULL; +PFNGLVIEWPORTINDEXEDFPROC glad_glViewportIndexedf = NULL; +PFNGLVIEWPORTINDEXEDFVPROC glad_glViewportIndexedfv = NULL; +PFNGLWAITSYNCPROC glad_glWaitSync = NULL; + + +static void glad_gl_load_GL_VERSION_1_0( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_VERSION_1_0) return; + glad_glBlendFunc = (PFNGLBLENDFUNCPROC) load(userptr, "glBlendFunc"); + glad_glClear = (PFNGLCLEARPROC) load(userptr, "glClear"); + glad_glClearColor = (PFNGLCLEARCOLORPROC) load(userptr, "glClearColor"); + glad_glClearDepth = (PFNGLCLEARDEPTHPROC) load(userptr, "glClearDepth"); + glad_glClearStencil = (PFNGLCLEARSTENCILPROC) load(userptr, "glClearStencil"); + glad_glColorMask = (PFNGLCOLORMASKPROC) load(userptr, "glColorMask"); + glad_glCullFace = (PFNGLCULLFACEPROC) load(userptr, "glCullFace"); + glad_glDepthFunc = (PFNGLDEPTHFUNCPROC) load(userptr, "glDepthFunc"); + glad_glDepthMask = (PFNGLDEPTHMASKPROC) load(userptr, "glDepthMask"); + glad_glDepthRange = (PFNGLDEPTHRANGEPROC) load(userptr, "glDepthRange"); + glad_glDisable = (PFNGLDISABLEPROC) load(userptr, "glDisable"); + glad_glDrawBuffer = (PFNGLDRAWBUFFERPROC) load(userptr, "glDrawBuffer"); + glad_glEnable = (PFNGLENABLEPROC) load(userptr, "glEnable"); + glad_glFinish = (PFNGLFINISHPROC) load(userptr, "glFinish"); + glad_glFlush = (PFNGLFLUSHPROC) load(userptr, "glFlush"); + glad_glFrontFace = (PFNGLFRONTFACEPROC) load(userptr, "glFrontFace"); + glad_glGetBooleanv = (PFNGLGETBOOLEANVPROC) load(userptr, "glGetBooleanv"); + glad_glGetDoublev = (PFNGLGETDOUBLEVPROC) load(userptr, "glGetDoublev"); + glad_glGetError = (PFNGLGETERRORPROC) load(userptr, "glGetError"); + glad_glGetFloatv = (PFNGLGETFLOATVPROC) load(userptr, "glGetFloatv"); + glad_glGetIntegerv = (PFNGLGETINTEGERVPROC) load(userptr, "glGetIntegerv"); + glad_glGetString = (PFNGLGETSTRINGPROC) load(userptr, "glGetString"); + glad_glGetTexImage = (PFNGLGETTEXIMAGEPROC) load(userptr, "glGetTexImage"); + glad_glGetTexLevelParameterfv = (PFNGLGETTEXLEVELPARAMETERFVPROC) load(userptr, "glGetTexLevelParameterfv"); + glad_glGetTexLevelParameteriv = (PFNGLGETTEXLEVELPARAMETERIVPROC) load(userptr, "glGetTexLevelParameteriv"); + glad_glGetTexParameterfv = (PFNGLGETTEXPARAMETERFVPROC) load(userptr, "glGetTexParameterfv"); + glad_glGetTexParameteriv = (PFNGLGETTEXPARAMETERIVPROC) load(userptr, "glGetTexParameteriv"); + glad_glHint = (PFNGLHINTPROC) load(userptr, "glHint"); + glad_glIsEnabled = (PFNGLISENABLEDPROC) load(userptr, "glIsEnabled"); + glad_glLineWidth = (PFNGLLINEWIDTHPROC) load(userptr, "glLineWidth"); + glad_glLogicOp = (PFNGLLOGICOPPROC) load(userptr, "glLogicOp"); + glad_glPixelStoref = (PFNGLPIXELSTOREFPROC) load(userptr, "glPixelStoref"); + glad_glPixelStorei = (PFNGLPIXELSTOREIPROC) load(userptr, "glPixelStorei"); + glad_glPointSize = (PFNGLPOINTSIZEPROC) load(userptr, "glPointSize"); + glad_glPolygonMode = (PFNGLPOLYGONMODEPROC) load(userptr, "glPolygonMode"); + glad_glReadBuffer = (PFNGLREADBUFFERPROC) load(userptr, "glReadBuffer"); + glad_glReadPixels = (PFNGLREADPIXELSPROC) load(userptr, "glReadPixels"); + glad_glScissor = (PFNGLSCISSORPROC) load(userptr, "glScissor"); + glad_glStencilFunc = (PFNGLSTENCILFUNCPROC) load(userptr, "glStencilFunc"); + glad_glStencilMask = (PFNGLSTENCILMASKPROC) load(userptr, "glStencilMask"); + glad_glStencilOp = (PFNGLSTENCILOPPROC) load(userptr, "glStencilOp"); + glad_glTexImage1D = (PFNGLTEXIMAGE1DPROC) load(userptr, "glTexImage1D"); + glad_glTexImage2D = (PFNGLTEXIMAGE2DPROC) load(userptr, "glTexImage2D"); + glad_glTexParameterf = (PFNGLTEXPARAMETERFPROC) load(userptr, "glTexParameterf"); + glad_glTexParameterfv = (PFNGLTEXPARAMETERFVPROC) load(userptr, "glTexParameterfv"); + glad_glTexParameteri = (PFNGLTEXPARAMETERIPROC) load(userptr, "glTexParameteri"); + glad_glTexParameteriv = (PFNGLTEXPARAMETERIVPROC) load(userptr, "glTexParameteriv"); + glad_glViewport = (PFNGLVIEWPORTPROC) load(userptr, "glViewport"); +} +static void glad_gl_load_GL_VERSION_1_1( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_VERSION_1_1) return; + glad_glBindTexture = (PFNGLBINDTEXTUREPROC) load(userptr, "glBindTexture"); + glad_glCopyTexImage1D = (PFNGLCOPYTEXIMAGE1DPROC) load(userptr, "glCopyTexImage1D"); + glad_glCopyTexImage2D = (PFNGLCOPYTEXIMAGE2DPROC) load(userptr, "glCopyTexImage2D"); + glad_glCopyTexSubImage1D = (PFNGLCOPYTEXSUBIMAGE1DPROC) load(userptr, "glCopyTexSubImage1D"); + glad_glCopyTexSubImage2D = (PFNGLCOPYTEXSUBIMAGE2DPROC) load(userptr, "glCopyTexSubImage2D"); + glad_glDeleteTextures = (PFNGLDELETETEXTURESPROC) load(userptr, "glDeleteTextures"); + glad_glDrawArrays = (PFNGLDRAWARRAYSPROC) load(userptr, "glDrawArrays"); + glad_glDrawElements = (PFNGLDRAWELEMENTSPROC) load(userptr, "glDrawElements"); + glad_glGenTextures = (PFNGLGENTEXTURESPROC) load(userptr, "glGenTextures"); + glad_glGetPointerv = (PFNGLGETPOINTERVPROC) load(userptr, "glGetPointerv"); + glad_glIsTexture = (PFNGLISTEXTUREPROC) load(userptr, "glIsTexture"); + glad_glPolygonOffset = (PFNGLPOLYGONOFFSETPROC) load(userptr, "glPolygonOffset"); + glad_glTexSubImage1D = (PFNGLTEXSUBIMAGE1DPROC) load(userptr, "glTexSubImage1D"); + glad_glTexSubImage2D = (PFNGLTEXSUBIMAGE2DPROC) load(userptr, "glTexSubImage2D"); +} +static void glad_gl_load_GL_VERSION_1_2( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_VERSION_1_2) return; + glad_glCopyTexSubImage3D = (PFNGLCOPYTEXSUBIMAGE3DPROC) load(userptr, "glCopyTexSubImage3D"); + glad_glDrawRangeElements = (PFNGLDRAWRANGEELEMENTSPROC) load(userptr, "glDrawRangeElements"); + glad_glTexImage3D = (PFNGLTEXIMAGE3DPROC) load(userptr, "glTexImage3D"); + glad_glTexSubImage3D = (PFNGLTEXSUBIMAGE3DPROC) load(userptr, "glTexSubImage3D"); +} +static void glad_gl_load_GL_VERSION_1_3( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_VERSION_1_3) return; + glad_glActiveTexture = (PFNGLACTIVETEXTUREPROC) load(userptr, "glActiveTexture"); + glad_glCompressedTexImage1D = (PFNGLCOMPRESSEDTEXIMAGE1DPROC) load(userptr, "glCompressedTexImage1D"); + glad_glCompressedTexImage2D = (PFNGLCOMPRESSEDTEXIMAGE2DPROC) load(userptr, "glCompressedTexImage2D"); + glad_glCompressedTexImage3D = (PFNGLCOMPRESSEDTEXIMAGE3DPROC) load(userptr, "glCompressedTexImage3D"); + glad_glCompressedTexSubImage1D = (PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) load(userptr, "glCompressedTexSubImage1D"); + glad_glCompressedTexSubImage2D = (PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) load(userptr, "glCompressedTexSubImage2D"); + glad_glCompressedTexSubImage3D = (PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) load(userptr, "glCompressedTexSubImage3D"); + glad_glGetCompressedTexImage = (PFNGLGETCOMPRESSEDTEXIMAGEPROC) load(userptr, "glGetCompressedTexImage"); + glad_glSampleCoverage = (PFNGLSAMPLECOVERAGEPROC) load(userptr, "glSampleCoverage"); +} +static void glad_gl_load_GL_VERSION_1_4( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_VERSION_1_4) return; + glad_glBlendColor = (PFNGLBLENDCOLORPROC) load(userptr, "glBlendColor"); + glad_glBlendEquation = (PFNGLBLENDEQUATIONPROC) load(userptr, "glBlendEquation"); + glad_glBlendFuncSeparate = (PFNGLBLENDFUNCSEPARATEPROC) load(userptr, "glBlendFuncSeparate"); + glad_glMultiDrawArrays = (PFNGLMULTIDRAWARRAYSPROC) load(userptr, "glMultiDrawArrays"); + glad_glMultiDrawElements = (PFNGLMULTIDRAWELEMENTSPROC) load(userptr, "glMultiDrawElements"); + glad_glPointParameterf = (PFNGLPOINTPARAMETERFPROC) load(userptr, "glPointParameterf"); + glad_glPointParameterfv = (PFNGLPOINTPARAMETERFVPROC) load(userptr, "glPointParameterfv"); + glad_glPointParameteri = (PFNGLPOINTPARAMETERIPROC) load(userptr, "glPointParameteri"); + glad_glPointParameteriv = (PFNGLPOINTPARAMETERIVPROC) load(userptr, "glPointParameteriv"); +} +static void glad_gl_load_GL_VERSION_1_5( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_VERSION_1_5) return; + glad_glBeginQuery = (PFNGLBEGINQUERYPROC) load(userptr, "glBeginQuery"); + glad_glBindBuffer = (PFNGLBINDBUFFERPROC) load(userptr, "glBindBuffer"); + glad_glBufferData = (PFNGLBUFFERDATAPROC) load(userptr, "glBufferData"); + glad_glBufferSubData = (PFNGLBUFFERSUBDATAPROC) load(userptr, "glBufferSubData"); + glad_glDeleteBuffers = (PFNGLDELETEBUFFERSPROC) load(userptr, "glDeleteBuffers"); + glad_glDeleteQueries = (PFNGLDELETEQUERIESPROC) load(userptr, "glDeleteQueries"); + glad_glEndQuery = (PFNGLENDQUERYPROC) load(userptr, "glEndQuery"); + glad_glGenBuffers = (PFNGLGENBUFFERSPROC) load(userptr, "glGenBuffers"); + glad_glGenQueries = (PFNGLGENQUERIESPROC) load(userptr, "glGenQueries"); + glad_glGetBufferParameteriv = (PFNGLGETBUFFERPARAMETERIVPROC) load(userptr, "glGetBufferParameteriv"); + glad_glGetBufferPointerv = (PFNGLGETBUFFERPOINTERVPROC) load(userptr, "glGetBufferPointerv"); + glad_glGetBufferSubData = (PFNGLGETBUFFERSUBDATAPROC) load(userptr, "glGetBufferSubData"); + glad_glGetQueryObjectiv = (PFNGLGETQUERYOBJECTIVPROC) load(userptr, "glGetQueryObjectiv"); + glad_glGetQueryObjectuiv = (PFNGLGETQUERYOBJECTUIVPROC) load(userptr, "glGetQueryObjectuiv"); + glad_glGetQueryiv = (PFNGLGETQUERYIVPROC) load(userptr, "glGetQueryiv"); + glad_glIsBuffer = (PFNGLISBUFFERPROC) load(userptr, "glIsBuffer"); + glad_glIsQuery = (PFNGLISQUERYPROC) load(userptr, "glIsQuery"); + glad_glMapBuffer = (PFNGLMAPBUFFERPROC) load(userptr, "glMapBuffer"); + glad_glUnmapBuffer = (PFNGLUNMAPBUFFERPROC) load(userptr, "glUnmapBuffer"); +} +static void glad_gl_load_GL_VERSION_2_0( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_VERSION_2_0) return; + glad_glAttachShader = (PFNGLATTACHSHADERPROC) load(userptr, "glAttachShader"); + glad_glBindAttribLocation = (PFNGLBINDATTRIBLOCATIONPROC) load(userptr, "glBindAttribLocation"); + glad_glBlendEquationSeparate = (PFNGLBLENDEQUATIONSEPARATEPROC) load(userptr, "glBlendEquationSeparate"); + glad_glCompileShader = (PFNGLCOMPILESHADERPROC) load(userptr, "glCompileShader"); + glad_glCreateProgram = (PFNGLCREATEPROGRAMPROC) load(userptr, "glCreateProgram"); + glad_glCreateShader = (PFNGLCREATESHADERPROC) load(userptr, "glCreateShader"); + glad_glDeleteProgram = (PFNGLDELETEPROGRAMPROC) load(userptr, "glDeleteProgram"); + glad_glDeleteShader = (PFNGLDELETESHADERPROC) load(userptr, "glDeleteShader"); + glad_glDetachShader = (PFNGLDETACHSHADERPROC) load(userptr, "glDetachShader"); + glad_glDisableVertexAttribArray = (PFNGLDISABLEVERTEXATTRIBARRAYPROC) load(userptr, "glDisableVertexAttribArray"); + glad_glDrawBuffers = (PFNGLDRAWBUFFERSPROC) load(userptr, "glDrawBuffers"); + glad_glEnableVertexAttribArray = (PFNGLENABLEVERTEXATTRIBARRAYPROC) load(userptr, "glEnableVertexAttribArray"); + glad_glGetActiveAttrib = (PFNGLGETACTIVEATTRIBPROC) load(userptr, "glGetActiveAttrib"); + glad_glGetActiveUniform = (PFNGLGETACTIVEUNIFORMPROC) load(userptr, "glGetActiveUniform"); + glad_glGetAttachedShaders = (PFNGLGETATTACHEDSHADERSPROC) load(userptr, "glGetAttachedShaders"); + glad_glGetAttribLocation = (PFNGLGETATTRIBLOCATIONPROC) load(userptr, "glGetAttribLocation"); + glad_glGetProgramInfoLog = (PFNGLGETPROGRAMINFOLOGPROC) load(userptr, "glGetProgramInfoLog"); + glad_glGetProgramiv = (PFNGLGETPROGRAMIVPROC) load(userptr, "glGetProgramiv"); + glad_glGetShaderInfoLog = (PFNGLGETSHADERINFOLOGPROC) load(userptr, "glGetShaderInfoLog"); + glad_glGetShaderSource = (PFNGLGETSHADERSOURCEPROC) load(userptr, "glGetShaderSource"); + glad_glGetShaderiv = (PFNGLGETSHADERIVPROC) load(userptr, "glGetShaderiv"); + glad_glGetUniformLocation = (PFNGLGETUNIFORMLOCATIONPROC) load(userptr, "glGetUniformLocation"); + glad_glGetUniformfv = (PFNGLGETUNIFORMFVPROC) load(userptr, "glGetUniformfv"); + glad_glGetUniformiv = (PFNGLGETUNIFORMIVPROC) load(userptr, "glGetUniformiv"); + glad_glGetVertexAttribPointerv = (PFNGLGETVERTEXATTRIBPOINTERVPROC) load(userptr, "glGetVertexAttribPointerv"); + glad_glGetVertexAttribdv = (PFNGLGETVERTEXATTRIBDVPROC) load(userptr, "glGetVertexAttribdv"); + glad_glGetVertexAttribfv = (PFNGLGETVERTEXATTRIBFVPROC) load(userptr, "glGetVertexAttribfv"); + glad_glGetVertexAttribiv = (PFNGLGETVERTEXATTRIBIVPROC) load(userptr, "glGetVertexAttribiv"); + glad_glIsProgram = (PFNGLISPROGRAMPROC) load(userptr, "glIsProgram"); + glad_glIsShader = (PFNGLISSHADERPROC) load(userptr, "glIsShader"); + glad_glLinkProgram = (PFNGLLINKPROGRAMPROC) load(userptr, "glLinkProgram"); + glad_glShaderSource = (PFNGLSHADERSOURCEPROC) load(userptr, "glShaderSource"); + glad_glStencilFuncSeparate = (PFNGLSTENCILFUNCSEPARATEPROC) load(userptr, "glStencilFuncSeparate"); + glad_glStencilMaskSeparate = (PFNGLSTENCILMASKSEPARATEPROC) load(userptr, "glStencilMaskSeparate"); + glad_glStencilOpSeparate = (PFNGLSTENCILOPSEPARATEPROC) load(userptr, "glStencilOpSeparate"); + glad_glUniform1f = (PFNGLUNIFORM1FPROC) load(userptr, "glUniform1f"); + glad_glUniform1fv = (PFNGLUNIFORM1FVPROC) load(userptr, "glUniform1fv"); + glad_glUniform1i = (PFNGLUNIFORM1IPROC) load(userptr, "glUniform1i"); + glad_glUniform1iv = (PFNGLUNIFORM1IVPROC) load(userptr, "glUniform1iv"); + glad_glUniform2f = (PFNGLUNIFORM2FPROC) load(userptr, "glUniform2f"); + glad_glUniform2fv = (PFNGLUNIFORM2FVPROC) load(userptr, "glUniform2fv"); + glad_glUniform2i = (PFNGLUNIFORM2IPROC) load(userptr, "glUniform2i"); + glad_glUniform2iv = (PFNGLUNIFORM2IVPROC) load(userptr, "glUniform2iv"); + glad_glUniform3f = (PFNGLUNIFORM3FPROC) load(userptr, "glUniform3f"); + glad_glUniform3fv = (PFNGLUNIFORM3FVPROC) load(userptr, "glUniform3fv"); + glad_glUniform3i = (PFNGLUNIFORM3IPROC) load(userptr, "glUniform3i"); + glad_glUniform3iv = (PFNGLUNIFORM3IVPROC) load(userptr, "glUniform3iv"); + glad_glUniform4f = (PFNGLUNIFORM4FPROC) load(userptr, "glUniform4f"); + glad_glUniform4fv = (PFNGLUNIFORM4FVPROC) load(userptr, "glUniform4fv"); + glad_glUniform4i = (PFNGLUNIFORM4IPROC) load(userptr, "glUniform4i"); + glad_glUniform4iv = (PFNGLUNIFORM4IVPROC) load(userptr, "glUniform4iv"); + glad_glUniformMatrix2fv = (PFNGLUNIFORMMATRIX2FVPROC) load(userptr, "glUniformMatrix2fv"); + glad_glUniformMatrix3fv = (PFNGLUNIFORMMATRIX3FVPROC) load(userptr, "glUniformMatrix3fv"); + glad_glUniformMatrix4fv = (PFNGLUNIFORMMATRIX4FVPROC) load(userptr, "glUniformMatrix4fv"); + glad_glUseProgram = (PFNGLUSEPROGRAMPROC) load(userptr, "glUseProgram"); + glad_glValidateProgram = (PFNGLVALIDATEPROGRAMPROC) load(userptr, "glValidateProgram"); + glad_glVertexAttrib1d = (PFNGLVERTEXATTRIB1DPROC) load(userptr, "glVertexAttrib1d"); + glad_glVertexAttrib1dv = (PFNGLVERTEXATTRIB1DVPROC) load(userptr, "glVertexAttrib1dv"); + glad_glVertexAttrib1f = (PFNGLVERTEXATTRIB1FPROC) load(userptr, "glVertexAttrib1f"); + glad_glVertexAttrib1fv = (PFNGLVERTEXATTRIB1FVPROC) load(userptr, "glVertexAttrib1fv"); + glad_glVertexAttrib1s = (PFNGLVERTEXATTRIB1SPROC) load(userptr, "glVertexAttrib1s"); + glad_glVertexAttrib1sv = (PFNGLVERTEXATTRIB1SVPROC) load(userptr, "glVertexAttrib1sv"); + glad_glVertexAttrib2d = (PFNGLVERTEXATTRIB2DPROC) load(userptr, "glVertexAttrib2d"); + glad_glVertexAttrib2dv = (PFNGLVERTEXATTRIB2DVPROC) load(userptr, "glVertexAttrib2dv"); + glad_glVertexAttrib2f = (PFNGLVERTEXATTRIB2FPROC) load(userptr, "glVertexAttrib2f"); + glad_glVertexAttrib2fv = (PFNGLVERTEXATTRIB2FVPROC) load(userptr, "glVertexAttrib2fv"); + glad_glVertexAttrib2s = (PFNGLVERTEXATTRIB2SPROC) load(userptr, "glVertexAttrib2s"); + glad_glVertexAttrib2sv = (PFNGLVERTEXATTRIB2SVPROC) load(userptr, "glVertexAttrib2sv"); + glad_glVertexAttrib3d = (PFNGLVERTEXATTRIB3DPROC) load(userptr, "glVertexAttrib3d"); + glad_glVertexAttrib3dv = (PFNGLVERTEXATTRIB3DVPROC) load(userptr, "glVertexAttrib3dv"); + glad_glVertexAttrib3f = (PFNGLVERTEXATTRIB3FPROC) load(userptr, "glVertexAttrib3f"); + glad_glVertexAttrib3fv = (PFNGLVERTEXATTRIB3FVPROC) load(userptr, "glVertexAttrib3fv"); + glad_glVertexAttrib3s = (PFNGLVERTEXATTRIB3SPROC) load(userptr, "glVertexAttrib3s"); + glad_glVertexAttrib3sv = (PFNGLVERTEXATTRIB3SVPROC) load(userptr, "glVertexAttrib3sv"); + glad_glVertexAttrib4Nbv = (PFNGLVERTEXATTRIB4NBVPROC) load(userptr, "glVertexAttrib4Nbv"); + glad_glVertexAttrib4Niv = (PFNGLVERTEXATTRIB4NIVPROC) load(userptr, "glVertexAttrib4Niv"); + glad_glVertexAttrib4Nsv = (PFNGLVERTEXATTRIB4NSVPROC) load(userptr, "glVertexAttrib4Nsv"); + glad_glVertexAttrib4Nub = (PFNGLVERTEXATTRIB4NUBPROC) load(userptr, "glVertexAttrib4Nub"); + glad_glVertexAttrib4Nubv = (PFNGLVERTEXATTRIB4NUBVPROC) load(userptr, "glVertexAttrib4Nubv"); + glad_glVertexAttrib4Nuiv = (PFNGLVERTEXATTRIB4NUIVPROC) load(userptr, "glVertexAttrib4Nuiv"); + glad_glVertexAttrib4Nusv = (PFNGLVERTEXATTRIB4NUSVPROC) load(userptr, "glVertexAttrib4Nusv"); + glad_glVertexAttrib4bv = (PFNGLVERTEXATTRIB4BVPROC) load(userptr, "glVertexAttrib4bv"); + glad_glVertexAttrib4d = (PFNGLVERTEXATTRIB4DPROC) load(userptr, "glVertexAttrib4d"); + glad_glVertexAttrib4dv = (PFNGLVERTEXATTRIB4DVPROC) load(userptr, "glVertexAttrib4dv"); + glad_glVertexAttrib4f = (PFNGLVERTEXATTRIB4FPROC) load(userptr, "glVertexAttrib4f"); + glad_glVertexAttrib4fv = (PFNGLVERTEXATTRIB4FVPROC) load(userptr, "glVertexAttrib4fv"); + glad_glVertexAttrib4iv = (PFNGLVERTEXATTRIB4IVPROC) load(userptr, "glVertexAttrib4iv"); + glad_glVertexAttrib4s = (PFNGLVERTEXATTRIB4SPROC) load(userptr, "glVertexAttrib4s"); + glad_glVertexAttrib4sv = (PFNGLVERTEXATTRIB4SVPROC) load(userptr, "glVertexAttrib4sv"); + glad_glVertexAttrib4ubv = (PFNGLVERTEXATTRIB4UBVPROC) load(userptr, "glVertexAttrib4ubv"); + glad_glVertexAttrib4uiv = (PFNGLVERTEXATTRIB4UIVPROC) load(userptr, "glVertexAttrib4uiv"); + glad_glVertexAttrib4usv = (PFNGLVERTEXATTRIB4USVPROC) load(userptr, "glVertexAttrib4usv"); + glad_glVertexAttribPointer = (PFNGLVERTEXATTRIBPOINTERPROC) load(userptr, "glVertexAttribPointer"); +} +static void glad_gl_load_GL_VERSION_2_1( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_VERSION_2_1) return; + glad_glUniformMatrix2x3fv = (PFNGLUNIFORMMATRIX2X3FVPROC) load(userptr, "glUniformMatrix2x3fv"); + glad_glUniformMatrix2x4fv = (PFNGLUNIFORMMATRIX2X4FVPROC) load(userptr, "glUniformMatrix2x4fv"); + glad_glUniformMatrix3x2fv = (PFNGLUNIFORMMATRIX3X2FVPROC) load(userptr, "glUniformMatrix3x2fv"); + glad_glUniformMatrix3x4fv = (PFNGLUNIFORMMATRIX3X4FVPROC) load(userptr, "glUniformMatrix3x4fv"); + glad_glUniformMatrix4x2fv = (PFNGLUNIFORMMATRIX4X2FVPROC) load(userptr, "glUniformMatrix4x2fv"); + glad_glUniformMatrix4x3fv = (PFNGLUNIFORMMATRIX4X3FVPROC) load(userptr, "glUniformMatrix4x3fv"); +} +static void glad_gl_load_GL_VERSION_3_0( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_VERSION_3_0) return; + glad_glBeginConditionalRender = (PFNGLBEGINCONDITIONALRENDERPROC) load(userptr, "glBeginConditionalRender"); + glad_glBeginTransformFeedback = (PFNGLBEGINTRANSFORMFEEDBACKPROC) load(userptr, "glBeginTransformFeedback"); + glad_glBindBufferBase = (PFNGLBINDBUFFERBASEPROC) load(userptr, "glBindBufferBase"); + glad_glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC) load(userptr, "glBindBufferRange"); + glad_glBindFragDataLocation = (PFNGLBINDFRAGDATALOCATIONPROC) load(userptr, "glBindFragDataLocation"); + glad_glBindFramebuffer = (PFNGLBINDFRAMEBUFFERPROC) load(userptr, "glBindFramebuffer"); + glad_glBindRenderbuffer = (PFNGLBINDRENDERBUFFERPROC) load(userptr, "glBindRenderbuffer"); + glad_glBindVertexArray = (PFNGLBINDVERTEXARRAYPROC) load(userptr, "glBindVertexArray"); + glad_glBlitFramebuffer = (PFNGLBLITFRAMEBUFFERPROC) load(userptr, "glBlitFramebuffer"); + glad_glCheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSPROC) load(userptr, "glCheckFramebufferStatus"); + glad_glClampColor = (PFNGLCLAMPCOLORPROC) load(userptr, "glClampColor"); + glad_glClearBufferfi = (PFNGLCLEARBUFFERFIPROC) load(userptr, "glClearBufferfi"); + glad_glClearBufferfv = (PFNGLCLEARBUFFERFVPROC) load(userptr, "glClearBufferfv"); + glad_glClearBufferiv = (PFNGLCLEARBUFFERIVPROC) load(userptr, "glClearBufferiv"); + glad_glClearBufferuiv = (PFNGLCLEARBUFFERUIVPROC) load(userptr, "glClearBufferuiv"); + glad_glColorMaski = (PFNGLCOLORMASKIPROC) load(userptr, "glColorMaski"); + glad_glDeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSPROC) load(userptr, "glDeleteFramebuffers"); + glad_glDeleteRenderbuffers = (PFNGLDELETERENDERBUFFERSPROC) load(userptr, "glDeleteRenderbuffers"); + glad_glDeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSPROC) load(userptr, "glDeleteVertexArrays"); + glad_glDisablei = (PFNGLDISABLEIPROC) load(userptr, "glDisablei"); + glad_glEnablei = (PFNGLENABLEIPROC) load(userptr, "glEnablei"); + glad_glEndConditionalRender = (PFNGLENDCONDITIONALRENDERPROC) load(userptr, "glEndConditionalRender"); + glad_glEndTransformFeedback = (PFNGLENDTRANSFORMFEEDBACKPROC) load(userptr, "glEndTransformFeedback"); + glad_glFlushMappedBufferRange = (PFNGLFLUSHMAPPEDBUFFERRANGEPROC) load(userptr, "glFlushMappedBufferRange"); + glad_glFramebufferRenderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFERPROC) load(userptr, "glFramebufferRenderbuffer"); + glad_glFramebufferTexture1D = (PFNGLFRAMEBUFFERTEXTURE1DPROC) load(userptr, "glFramebufferTexture1D"); + glad_glFramebufferTexture2D = (PFNGLFRAMEBUFFERTEXTURE2DPROC) load(userptr, "glFramebufferTexture2D"); + glad_glFramebufferTexture3D = (PFNGLFRAMEBUFFERTEXTURE3DPROC) load(userptr, "glFramebufferTexture3D"); + glad_glFramebufferTextureLayer = (PFNGLFRAMEBUFFERTEXTURELAYERPROC) load(userptr, "glFramebufferTextureLayer"); + glad_glGenFramebuffers = (PFNGLGENFRAMEBUFFERSPROC) load(userptr, "glGenFramebuffers"); + glad_glGenRenderbuffers = (PFNGLGENRENDERBUFFERSPROC) load(userptr, "glGenRenderbuffers"); + glad_glGenVertexArrays = (PFNGLGENVERTEXARRAYSPROC) load(userptr, "glGenVertexArrays"); + glad_glGenerateMipmap = (PFNGLGENERATEMIPMAPPROC) load(userptr, "glGenerateMipmap"); + glad_glGetBooleani_v = (PFNGLGETBOOLEANI_VPROC) load(userptr, "glGetBooleani_v"); + glad_glGetFragDataLocation = (PFNGLGETFRAGDATALOCATIONPROC) load(userptr, "glGetFragDataLocation"); + glad_glGetFramebufferAttachmentParameteriv = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) load(userptr, "glGetFramebufferAttachmentParameteriv"); + glad_glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC) load(userptr, "glGetIntegeri_v"); + glad_glGetRenderbufferParameteriv = (PFNGLGETRENDERBUFFERPARAMETERIVPROC) load(userptr, "glGetRenderbufferParameteriv"); + glad_glGetStringi = (PFNGLGETSTRINGIPROC) load(userptr, "glGetStringi"); + glad_glGetTexParameterIiv = (PFNGLGETTEXPARAMETERIIVPROC) load(userptr, "glGetTexParameterIiv"); + glad_glGetTexParameterIuiv = (PFNGLGETTEXPARAMETERIUIVPROC) load(userptr, "glGetTexParameterIuiv"); + glad_glGetTransformFeedbackVarying = (PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) load(userptr, "glGetTransformFeedbackVarying"); + glad_glGetUniformuiv = (PFNGLGETUNIFORMUIVPROC) load(userptr, "glGetUniformuiv"); + glad_glGetVertexAttribIiv = (PFNGLGETVERTEXATTRIBIIVPROC) load(userptr, "glGetVertexAttribIiv"); + glad_glGetVertexAttribIuiv = (PFNGLGETVERTEXATTRIBIUIVPROC) load(userptr, "glGetVertexAttribIuiv"); + glad_glIsEnabledi = (PFNGLISENABLEDIPROC) load(userptr, "glIsEnabledi"); + glad_glIsFramebuffer = (PFNGLISFRAMEBUFFERPROC) load(userptr, "glIsFramebuffer"); + glad_glIsRenderbuffer = (PFNGLISRENDERBUFFERPROC) load(userptr, "glIsRenderbuffer"); + glad_glIsVertexArray = (PFNGLISVERTEXARRAYPROC) load(userptr, "glIsVertexArray"); + glad_glMapBufferRange = (PFNGLMAPBUFFERRANGEPROC) load(userptr, "glMapBufferRange"); + glad_glRenderbufferStorage = (PFNGLRENDERBUFFERSTORAGEPROC) load(userptr, "glRenderbufferStorage"); + glad_glRenderbufferStorageMultisample = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) load(userptr, "glRenderbufferStorageMultisample"); + glad_glTexParameterIiv = (PFNGLTEXPARAMETERIIVPROC) load(userptr, "glTexParameterIiv"); + glad_glTexParameterIuiv = (PFNGLTEXPARAMETERIUIVPROC) load(userptr, "glTexParameterIuiv"); + glad_glTransformFeedbackVaryings = (PFNGLTRANSFORMFEEDBACKVARYINGSPROC) load(userptr, "glTransformFeedbackVaryings"); + glad_glUniform1ui = (PFNGLUNIFORM1UIPROC) load(userptr, "glUniform1ui"); + glad_glUniform1uiv = (PFNGLUNIFORM1UIVPROC) load(userptr, "glUniform1uiv"); + glad_glUniform2ui = (PFNGLUNIFORM2UIPROC) load(userptr, "glUniform2ui"); + glad_glUniform2uiv = (PFNGLUNIFORM2UIVPROC) load(userptr, "glUniform2uiv"); + glad_glUniform3ui = (PFNGLUNIFORM3UIPROC) load(userptr, "glUniform3ui"); + glad_glUniform3uiv = (PFNGLUNIFORM3UIVPROC) load(userptr, "glUniform3uiv"); + glad_glUniform4ui = (PFNGLUNIFORM4UIPROC) load(userptr, "glUniform4ui"); + glad_glUniform4uiv = (PFNGLUNIFORM4UIVPROC) load(userptr, "glUniform4uiv"); + glad_glVertexAttribI1i = (PFNGLVERTEXATTRIBI1IPROC) load(userptr, "glVertexAttribI1i"); + glad_glVertexAttribI1iv = (PFNGLVERTEXATTRIBI1IVPROC) load(userptr, "glVertexAttribI1iv"); + glad_glVertexAttribI1ui = (PFNGLVERTEXATTRIBI1UIPROC) load(userptr, "glVertexAttribI1ui"); + glad_glVertexAttribI1uiv = (PFNGLVERTEXATTRIBI1UIVPROC) load(userptr, "glVertexAttribI1uiv"); + glad_glVertexAttribI2i = (PFNGLVERTEXATTRIBI2IPROC) load(userptr, "glVertexAttribI2i"); + glad_glVertexAttribI2iv = (PFNGLVERTEXATTRIBI2IVPROC) load(userptr, "glVertexAttribI2iv"); + glad_glVertexAttribI2ui = (PFNGLVERTEXATTRIBI2UIPROC) load(userptr, "glVertexAttribI2ui"); + glad_glVertexAttribI2uiv = (PFNGLVERTEXATTRIBI2UIVPROC) load(userptr, "glVertexAttribI2uiv"); + glad_glVertexAttribI3i = (PFNGLVERTEXATTRIBI3IPROC) load(userptr, "glVertexAttribI3i"); + glad_glVertexAttribI3iv = (PFNGLVERTEXATTRIBI3IVPROC) load(userptr, "glVertexAttribI3iv"); + glad_glVertexAttribI3ui = (PFNGLVERTEXATTRIBI3UIPROC) load(userptr, "glVertexAttribI3ui"); + glad_glVertexAttribI3uiv = (PFNGLVERTEXATTRIBI3UIVPROC) load(userptr, "glVertexAttribI3uiv"); + glad_glVertexAttribI4bv = (PFNGLVERTEXATTRIBI4BVPROC) load(userptr, "glVertexAttribI4bv"); + glad_glVertexAttribI4i = (PFNGLVERTEXATTRIBI4IPROC) load(userptr, "glVertexAttribI4i"); + glad_glVertexAttribI4iv = (PFNGLVERTEXATTRIBI4IVPROC) load(userptr, "glVertexAttribI4iv"); + glad_glVertexAttribI4sv = (PFNGLVERTEXATTRIBI4SVPROC) load(userptr, "glVertexAttribI4sv"); + glad_glVertexAttribI4ubv = (PFNGLVERTEXATTRIBI4UBVPROC) load(userptr, "glVertexAttribI4ubv"); + glad_glVertexAttribI4ui = (PFNGLVERTEXATTRIBI4UIPROC) load(userptr, "glVertexAttribI4ui"); + glad_glVertexAttribI4uiv = (PFNGLVERTEXATTRIBI4UIVPROC) load(userptr, "glVertexAttribI4uiv"); + glad_glVertexAttribI4usv = (PFNGLVERTEXATTRIBI4USVPROC) load(userptr, "glVertexAttribI4usv"); + glad_glVertexAttribIPointer = (PFNGLVERTEXATTRIBIPOINTERPROC) load(userptr, "glVertexAttribIPointer"); +} +static void glad_gl_load_GL_VERSION_3_1( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_VERSION_3_1) return; + glad_glBindBufferBase = (PFNGLBINDBUFFERBASEPROC) load(userptr, "glBindBufferBase"); + glad_glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC) load(userptr, "glBindBufferRange"); + glad_glCopyBufferSubData = (PFNGLCOPYBUFFERSUBDATAPROC) load(userptr, "glCopyBufferSubData"); + glad_glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDPROC) load(userptr, "glDrawArraysInstanced"); + glad_glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDPROC) load(userptr, "glDrawElementsInstanced"); + glad_glGetActiveUniformBlockName = (PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) load(userptr, "glGetActiveUniformBlockName"); + glad_glGetActiveUniformBlockiv = (PFNGLGETACTIVEUNIFORMBLOCKIVPROC) load(userptr, "glGetActiveUniformBlockiv"); + glad_glGetActiveUniformName = (PFNGLGETACTIVEUNIFORMNAMEPROC) load(userptr, "glGetActiveUniformName"); + glad_glGetActiveUniformsiv = (PFNGLGETACTIVEUNIFORMSIVPROC) load(userptr, "glGetActiveUniformsiv"); + glad_glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC) load(userptr, "glGetIntegeri_v"); + glad_glGetUniformBlockIndex = (PFNGLGETUNIFORMBLOCKINDEXPROC) load(userptr, "glGetUniformBlockIndex"); + glad_glGetUniformIndices = (PFNGLGETUNIFORMINDICESPROC) load(userptr, "glGetUniformIndices"); + glad_glPrimitiveRestartIndex = (PFNGLPRIMITIVERESTARTINDEXPROC) load(userptr, "glPrimitiveRestartIndex"); + glad_glTexBuffer = (PFNGLTEXBUFFERPROC) load(userptr, "glTexBuffer"); + glad_glUniformBlockBinding = (PFNGLUNIFORMBLOCKBINDINGPROC) load(userptr, "glUniformBlockBinding"); +} +static void glad_gl_load_GL_VERSION_3_2( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_VERSION_3_2) return; + glad_glClientWaitSync = (PFNGLCLIENTWAITSYNCPROC) load(userptr, "glClientWaitSync"); + glad_glDeleteSync = (PFNGLDELETESYNCPROC) load(userptr, "glDeleteSync"); + glad_glDrawElementsBaseVertex = (PFNGLDRAWELEMENTSBASEVERTEXPROC) load(userptr, "glDrawElementsBaseVertex"); + glad_glDrawElementsInstancedBaseVertex = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) load(userptr, "glDrawElementsInstancedBaseVertex"); + glad_glDrawRangeElementsBaseVertex = (PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) load(userptr, "glDrawRangeElementsBaseVertex"); + glad_glFenceSync = (PFNGLFENCESYNCPROC) load(userptr, "glFenceSync"); + glad_glFramebufferTexture = (PFNGLFRAMEBUFFERTEXTUREPROC) load(userptr, "glFramebufferTexture"); + glad_glGetBufferParameteri64v = (PFNGLGETBUFFERPARAMETERI64VPROC) load(userptr, "glGetBufferParameteri64v"); + glad_glGetInteger64i_v = (PFNGLGETINTEGER64I_VPROC) load(userptr, "glGetInteger64i_v"); + glad_glGetInteger64v = (PFNGLGETINTEGER64VPROC) load(userptr, "glGetInteger64v"); + glad_glGetMultisamplefv = (PFNGLGETMULTISAMPLEFVPROC) load(userptr, "glGetMultisamplefv"); + glad_glGetSynciv = (PFNGLGETSYNCIVPROC) load(userptr, "glGetSynciv"); + glad_glIsSync = (PFNGLISSYNCPROC) load(userptr, "glIsSync"); + glad_glMultiDrawElementsBaseVertex = (PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC) load(userptr, "glMultiDrawElementsBaseVertex"); + glad_glProvokingVertex = (PFNGLPROVOKINGVERTEXPROC) load(userptr, "glProvokingVertex"); + glad_glSampleMaski = (PFNGLSAMPLEMASKIPROC) load(userptr, "glSampleMaski"); + glad_glTexImage2DMultisample = (PFNGLTEXIMAGE2DMULTISAMPLEPROC) load(userptr, "glTexImage2DMultisample"); + glad_glTexImage3DMultisample = (PFNGLTEXIMAGE3DMULTISAMPLEPROC) load(userptr, "glTexImage3DMultisample"); + glad_glWaitSync = (PFNGLWAITSYNCPROC) load(userptr, "glWaitSync"); +} +static void glad_gl_load_GL_VERSION_3_3( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_VERSION_3_3) return; + glad_glBindFragDataLocationIndexed = (PFNGLBINDFRAGDATALOCATIONINDEXEDPROC) load(userptr, "glBindFragDataLocationIndexed"); + glad_glBindSampler = (PFNGLBINDSAMPLERPROC) load(userptr, "glBindSampler"); + glad_glDeleteSamplers = (PFNGLDELETESAMPLERSPROC) load(userptr, "glDeleteSamplers"); + glad_glGenSamplers = (PFNGLGENSAMPLERSPROC) load(userptr, "glGenSamplers"); + glad_glGetFragDataIndex = (PFNGLGETFRAGDATAINDEXPROC) load(userptr, "glGetFragDataIndex"); + glad_glGetQueryObjecti64v = (PFNGLGETQUERYOBJECTI64VPROC) load(userptr, "glGetQueryObjecti64v"); + glad_glGetQueryObjectui64v = (PFNGLGETQUERYOBJECTUI64VPROC) load(userptr, "glGetQueryObjectui64v"); + glad_glGetSamplerParameterIiv = (PFNGLGETSAMPLERPARAMETERIIVPROC) load(userptr, "glGetSamplerParameterIiv"); + glad_glGetSamplerParameterIuiv = (PFNGLGETSAMPLERPARAMETERIUIVPROC) load(userptr, "glGetSamplerParameterIuiv"); + glad_glGetSamplerParameterfv = (PFNGLGETSAMPLERPARAMETERFVPROC) load(userptr, "glGetSamplerParameterfv"); + glad_glGetSamplerParameteriv = (PFNGLGETSAMPLERPARAMETERIVPROC) load(userptr, "glGetSamplerParameteriv"); + glad_glIsSampler = (PFNGLISSAMPLERPROC) load(userptr, "glIsSampler"); + glad_glQueryCounter = (PFNGLQUERYCOUNTERPROC) load(userptr, "glQueryCounter"); + glad_glSamplerParameterIiv = (PFNGLSAMPLERPARAMETERIIVPROC) load(userptr, "glSamplerParameterIiv"); + glad_glSamplerParameterIuiv = (PFNGLSAMPLERPARAMETERIUIVPROC) load(userptr, "glSamplerParameterIuiv"); + glad_glSamplerParameterf = (PFNGLSAMPLERPARAMETERFPROC) load(userptr, "glSamplerParameterf"); + glad_glSamplerParameterfv = (PFNGLSAMPLERPARAMETERFVPROC) load(userptr, "glSamplerParameterfv"); + glad_glSamplerParameteri = (PFNGLSAMPLERPARAMETERIPROC) load(userptr, "glSamplerParameteri"); + glad_glSamplerParameteriv = (PFNGLSAMPLERPARAMETERIVPROC) load(userptr, "glSamplerParameteriv"); + glad_glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISORPROC) load(userptr, "glVertexAttribDivisor"); + glad_glVertexAttribP1ui = (PFNGLVERTEXATTRIBP1UIPROC) load(userptr, "glVertexAttribP1ui"); + glad_glVertexAttribP1uiv = (PFNGLVERTEXATTRIBP1UIVPROC) load(userptr, "glVertexAttribP1uiv"); + glad_glVertexAttribP2ui = (PFNGLVERTEXATTRIBP2UIPROC) load(userptr, "glVertexAttribP2ui"); + glad_glVertexAttribP2uiv = (PFNGLVERTEXATTRIBP2UIVPROC) load(userptr, "glVertexAttribP2uiv"); + glad_glVertexAttribP3ui = (PFNGLVERTEXATTRIBP3UIPROC) load(userptr, "glVertexAttribP3ui"); + glad_glVertexAttribP3uiv = (PFNGLVERTEXATTRIBP3UIVPROC) load(userptr, "glVertexAttribP3uiv"); + glad_glVertexAttribP4ui = (PFNGLVERTEXATTRIBP4UIPROC) load(userptr, "glVertexAttribP4ui"); + glad_glVertexAttribP4uiv = (PFNGLVERTEXATTRIBP4UIVPROC) load(userptr, "glVertexAttribP4uiv"); +} +static void glad_gl_load_GL_VERSION_4_0( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_VERSION_4_0) return; + glad_glBeginQueryIndexed = (PFNGLBEGINQUERYINDEXEDPROC) load(userptr, "glBeginQueryIndexed"); + glad_glBindTransformFeedback = (PFNGLBINDTRANSFORMFEEDBACKPROC) load(userptr, "glBindTransformFeedback"); + glad_glBlendEquationSeparatei = (PFNGLBLENDEQUATIONSEPARATEIPROC) load(userptr, "glBlendEquationSeparatei"); + glad_glBlendEquationi = (PFNGLBLENDEQUATIONIPROC) load(userptr, "glBlendEquationi"); + glad_glBlendFuncSeparatei = (PFNGLBLENDFUNCSEPARATEIPROC) load(userptr, "glBlendFuncSeparatei"); + glad_glBlendFunci = (PFNGLBLENDFUNCIPROC) load(userptr, "glBlendFunci"); + glad_glDeleteTransformFeedbacks = (PFNGLDELETETRANSFORMFEEDBACKSPROC) load(userptr, "glDeleteTransformFeedbacks"); + glad_glDrawArraysIndirect = (PFNGLDRAWARRAYSINDIRECTPROC) load(userptr, "glDrawArraysIndirect"); + glad_glDrawElementsIndirect = (PFNGLDRAWELEMENTSINDIRECTPROC) load(userptr, "glDrawElementsIndirect"); + glad_glDrawTransformFeedback = (PFNGLDRAWTRANSFORMFEEDBACKPROC) load(userptr, "glDrawTransformFeedback"); + glad_glDrawTransformFeedbackStream = (PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC) load(userptr, "glDrawTransformFeedbackStream"); + glad_glEndQueryIndexed = (PFNGLENDQUERYINDEXEDPROC) load(userptr, "glEndQueryIndexed"); + glad_glGenTransformFeedbacks = (PFNGLGENTRANSFORMFEEDBACKSPROC) load(userptr, "glGenTransformFeedbacks"); + glad_glGetActiveSubroutineName = (PFNGLGETACTIVESUBROUTINENAMEPROC) load(userptr, "glGetActiveSubroutineName"); + glad_glGetActiveSubroutineUniformName = (PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC) load(userptr, "glGetActiveSubroutineUniformName"); + glad_glGetActiveSubroutineUniformiv = (PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC) load(userptr, "glGetActiveSubroutineUniformiv"); + glad_glGetProgramStageiv = (PFNGLGETPROGRAMSTAGEIVPROC) load(userptr, "glGetProgramStageiv"); + glad_glGetQueryIndexediv = (PFNGLGETQUERYINDEXEDIVPROC) load(userptr, "glGetQueryIndexediv"); + glad_glGetSubroutineIndex = (PFNGLGETSUBROUTINEINDEXPROC) load(userptr, "glGetSubroutineIndex"); + glad_glGetSubroutineUniformLocation = (PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC) load(userptr, "glGetSubroutineUniformLocation"); + glad_glGetUniformSubroutineuiv = (PFNGLGETUNIFORMSUBROUTINEUIVPROC) load(userptr, "glGetUniformSubroutineuiv"); + glad_glGetUniformdv = (PFNGLGETUNIFORMDVPROC) load(userptr, "glGetUniformdv"); + glad_glIsTransformFeedback = (PFNGLISTRANSFORMFEEDBACKPROC) load(userptr, "glIsTransformFeedback"); + glad_glMinSampleShading = (PFNGLMINSAMPLESHADINGPROC) load(userptr, "glMinSampleShading"); + glad_glPatchParameterfv = (PFNGLPATCHPARAMETERFVPROC) load(userptr, "glPatchParameterfv"); + glad_glPatchParameteri = (PFNGLPATCHPARAMETERIPROC) load(userptr, "glPatchParameteri"); + glad_glPauseTransformFeedback = (PFNGLPAUSETRANSFORMFEEDBACKPROC) load(userptr, "glPauseTransformFeedback"); + glad_glResumeTransformFeedback = (PFNGLRESUMETRANSFORMFEEDBACKPROC) load(userptr, "glResumeTransformFeedback"); + glad_glUniform1d = (PFNGLUNIFORM1DPROC) load(userptr, "glUniform1d"); + glad_glUniform1dv = (PFNGLUNIFORM1DVPROC) load(userptr, "glUniform1dv"); + glad_glUniform2d = (PFNGLUNIFORM2DPROC) load(userptr, "glUniform2d"); + glad_glUniform2dv = (PFNGLUNIFORM2DVPROC) load(userptr, "glUniform2dv"); + glad_glUniform3d = (PFNGLUNIFORM3DPROC) load(userptr, "glUniform3d"); + glad_glUniform3dv = (PFNGLUNIFORM3DVPROC) load(userptr, "glUniform3dv"); + glad_glUniform4d = (PFNGLUNIFORM4DPROC) load(userptr, "glUniform4d"); + glad_glUniform4dv = (PFNGLUNIFORM4DVPROC) load(userptr, "glUniform4dv"); + glad_glUniformMatrix2dv = (PFNGLUNIFORMMATRIX2DVPROC) load(userptr, "glUniformMatrix2dv"); + glad_glUniformMatrix2x3dv = (PFNGLUNIFORMMATRIX2X3DVPROC) load(userptr, "glUniformMatrix2x3dv"); + glad_glUniformMatrix2x4dv = (PFNGLUNIFORMMATRIX2X4DVPROC) load(userptr, "glUniformMatrix2x4dv"); + glad_glUniformMatrix3dv = (PFNGLUNIFORMMATRIX3DVPROC) load(userptr, "glUniformMatrix3dv"); + glad_glUniformMatrix3x2dv = (PFNGLUNIFORMMATRIX3X2DVPROC) load(userptr, "glUniformMatrix3x2dv"); + glad_glUniformMatrix3x4dv = (PFNGLUNIFORMMATRIX3X4DVPROC) load(userptr, "glUniformMatrix3x4dv"); + glad_glUniformMatrix4dv = (PFNGLUNIFORMMATRIX4DVPROC) load(userptr, "glUniformMatrix4dv"); + glad_glUniformMatrix4x2dv = (PFNGLUNIFORMMATRIX4X2DVPROC) load(userptr, "glUniformMatrix4x2dv"); + glad_glUniformMatrix4x3dv = (PFNGLUNIFORMMATRIX4X3DVPROC) load(userptr, "glUniformMatrix4x3dv"); + glad_glUniformSubroutinesuiv = (PFNGLUNIFORMSUBROUTINESUIVPROC) load(userptr, "glUniformSubroutinesuiv"); +} +static void glad_gl_load_GL_VERSION_4_1( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_VERSION_4_1) return; + glad_glActiveShaderProgram = (PFNGLACTIVESHADERPROGRAMPROC) load(userptr, "glActiveShaderProgram"); + glad_glBindProgramPipeline = (PFNGLBINDPROGRAMPIPELINEPROC) load(userptr, "glBindProgramPipeline"); + glad_glClearDepthf = (PFNGLCLEARDEPTHFPROC) load(userptr, "glClearDepthf"); + glad_glCreateShaderProgramv = (PFNGLCREATESHADERPROGRAMVPROC) load(userptr, "glCreateShaderProgramv"); + glad_glDeleteProgramPipelines = (PFNGLDELETEPROGRAMPIPELINESPROC) load(userptr, "glDeleteProgramPipelines"); + glad_glDepthRangeArrayv = (PFNGLDEPTHRANGEARRAYVPROC) load(userptr, "glDepthRangeArrayv"); + glad_glDepthRangeIndexed = (PFNGLDEPTHRANGEINDEXEDPROC) load(userptr, "glDepthRangeIndexed"); + glad_glDepthRangef = (PFNGLDEPTHRANGEFPROC) load(userptr, "glDepthRangef"); + glad_glGenProgramPipelines = (PFNGLGENPROGRAMPIPELINESPROC) load(userptr, "glGenProgramPipelines"); + glad_glGetDoublei_v = (PFNGLGETDOUBLEI_VPROC) load(userptr, "glGetDoublei_v"); + glad_glGetFloati_v = (PFNGLGETFLOATI_VPROC) load(userptr, "glGetFloati_v"); + glad_glGetProgramBinary = (PFNGLGETPROGRAMBINARYPROC) load(userptr, "glGetProgramBinary"); + glad_glGetProgramPipelineInfoLog = (PFNGLGETPROGRAMPIPELINEINFOLOGPROC) load(userptr, "glGetProgramPipelineInfoLog"); + glad_glGetProgramPipelineiv = (PFNGLGETPROGRAMPIPELINEIVPROC) load(userptr, "glGetProgramPipelineiv"); + glad_glGetShaderPrecisionFormat = (PFNGLGETSHADERPRECISIONFORMATPROC) load(userptr, "glGetShaderPrecisionFormat"); + glad_glGetVertexAttribLdv = (PFNGLGETVERTEXATTRIBLDVPROC) load(userptr, "glGetVertexAttribLdv"); + glad_glIsProgramPipeline = (PFNGLISPROGRAMPIPELINEPROC) load(userptr, "glIsProgramPipeline"); + glad_glProgramBinary = (PFNGLPROGRAMBINARYPROC) load(userptr, "glProgramBinary"); + glad_glProgramParameteri = (PFNGLPROGRAMPARAMETERIPROC) load(userptr, "glProgramParameteri"); + glad_glProgramUniform1d = (PFNGLPROGRAMUNIFORM1DPROC) load(userptr, "glProgramUniform1d"); + glad_glProgramUniform1dv = (PFNGLPROGRAMUNIFORM1DVPROC) load(userptr, "glProgramUniform1dv"); + glad_glProgramUniform1f = (PFNGLPROGRAMUNIFORM1FPROC) load(userptr, "glProgramUniform1f"); + glad_glProgramUniform1fv = (PFNGLPROGRAMUNIFORM1FVPROC) load(userptr, "glProgramUniform1fv"); + glad_glProgramUniform1i = (PFNGLPROGRAMUNIFORM1IPROC) load(userptr, "glProgramUniform1i"); + glad_glProgramUniform1iv = (PFNGLPROGRAMUNIFORM1IVPROC) load(userptr, "glProgramUniform1iv"); + glad_glProgramUniform1ui = (PFNGLPROGRAMUNIFORM1UIPROC) load(userptr, "glProgramUniform1ui"); + glad_glProgramUniform1uiv = (PFNGLPROGRAMUNIFORM1UIVPROC) load(userptr, "glProgramUniform1uiv"); + glad_glProgramUniform2d = (PFNGLPROGRAMUNIFORM2DPROC) load(userptr, "glProgramUniform2d"); + glad_glProgramUniform2dv = (PFNGLPROGRAMUNIFORM2DVPROC) load(userptr, "glProgramUniform2dv"); + glad_glProgramUniform2f = (PFNGLPROGRAMUNIFORM2FPROC) load(userptr, "glProgramUniform2f"); + glad_glProgramUniform2fv = (PFNGLPROGRAMUNIFORM2FVPROC) load(userptr, "glProgramUniform2fv"); + glad_glProgramUniform2i = (PFNGLPROGRAMUNIFORM2IPROC) load(userptr, "glProgramUniform2i"); + glad_glProgramUniform2iv = (PFNGLPROGRAMUNIFORM2IVPROC) load(userptr, "glProgramUniform2iv"); + glad_glProgramUniform2ui = (PFNGLPROGRAMUNIFORM2UIPROC) load(userptr, "glProgramUniform2ui"); + glad_glProgramUniform2uiv = (PFNGLPROGRAMUNIFORM2UIVPROC) load(userptr, "glProgramUniform2uiv"); + glad_glProgramUniform3d = (PFNGLPROGRAMUNIFORM3DPROC) load(userptr, "glProgramUniform3d"); + glad_glProgramUniform3dv = (PFNGLPROGRAMUNIFORM3DVPROC) load(userptr, "glProgramUniform3dv"); + glad_glProgramUniform3f = (PFNGLPROGRAMUNIFORM3FPROC) load(userptr, "glProgramUniform3f"); + glad_glProgramUniform3fv = (PFNGLPROGRAMUNIFORM3FVPROC) load(userptr, "glProgramUniform3fv"); + glad_glProgramUniform3i = (PFNGLPROGRAMUNIFORM3IPROC) load(userptr, "glProgramUniform3i"); + glad_glProgramUniform3iv = (PFNGLPROGRAMUNIFORM3IVPROC) load(userptr, "glProgramUniform3iv"); + glad_glProgramUniform3ui = (PFNGLPROGRAMUNIFORM3UIPROC) load(userptr, "glProgramUniform3ui"); + glad_glProgramUniform3uiv = (PFNGLPROGRAMUNIFORM3UIVPROC) load(userptr, "glProgramUniform3uiv"); + glad_glProgramUniform4d = (PFNGLPROGRAMUNIFORM4DPROC) load(userptr, "glProgramUniform4d"); + glad_glProgramUniform4dv = (PFNGLPROGRAMUNIFORM4DVPROC) load(userptr, "glProgramUniform4dv"); + glad_glProgramUniform4f = (PFNGLPROGRAMUNIFORM4FPROC) load(userptr, "glProgramUniform4f"); + glad_glProgramUniform4fv = (PFNGLPROGRAMUNIFORM4FVPROC) load(userptr, "glProgramUniform4fv"); + glad_glProgramUniform4i = (PFNGLPROGRAMUNIFORM4IPROC) load(userptr, "glProgramUniform4i"); + glad_glProgramUniform4iv = (PFNGLPROGRAMUNIFORM4IVPROC) load(userptr, "glProgramUniform4iv"); + glad_glProgramUniform4ui = (PFNGLPROGRAMUNIFORM4UIPROC) load(userptr, "glProgramUniform4ui"); + glad_glProgramUniform4uiv = (PFNGLPROGRAMUNIFORM4UIVPROC) load(userptr, "glProgramUniform4uiv"); + glad_glProgramUniformMatrix2dv = (PFNGLPROGRAMUNIFORMMATRIX2DVPROC) load(userptr, "glProgramUniformMatrix2dv"); + glad_glProgramUniformMatrix2fv = (PFNGLPROGRAMUNIFORMMATRIX2FVPROC) load(userptr, "glProgramUniformMatrix2fv"); + glad_glProgramUniformMatrix2x3dv = (PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC) load(userptr, "glProgramUniformMatrix2x3dv"); + glad_glProgramUniformMatrix2x3fv = (PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC) load(userptr, "glProgramUniformMatrix2x3fv"); + glad_glProgramUniformMatrix2x4dv = (PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC) load(userptr, "glProgramUniformMatrix2x4dv"); + glad_glProgramUniformMatrix2x4fv = (PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC) load(userptr, "glProgramUniformMatrix2x4fv"); + glad_glProgramUniformMatrix3dv = (PFNGLPROGRAMUNIFORMMATRIX3DVPROC) load(userptr, "glProgramUniformMatrix3dv"); + glad_glProgramUniformMatrix3fv = (PFNGLPROGRAMUNIFORMMATRIX3FVPROC) load(userptr, "glProgramUniformMatrix3fv"); + glad_glProgramUniformMatrix3x2dv = (PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC) load(userptr, "glProgramUniformMatrix3x2dv"); + glad_glProgramUniformMatrix3x2fv = (PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC) load(userptr, "glProgramUniformMatrix3x2fv"); + glad_glProgramUniformMatrix3x4dv = (PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC) load(userptr, "glProgramUniformMatrix3x4dv"); + glad_glProgramUniformMatrix3x4fv = (PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC) load(userptr, "glProgramUniformMatrix3x4fv"); + glad_glProgramUniformMatrix4dv = (PFNGLPROGRAMUNIFORMMATRIX4DVPROC) load(userptr, "glProgramUniformMatrix4dv"); + glad_glProgramUniformMatrix4fv = (PFNGLPROGRAMUNIFORMMATRIX4FVPROC) load(userptr, "glProgramUniformMatrix4fv"); + glad_glProgramUniformMatrix4x2dv = (PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC) load(userptr, "glProgramUniformMatrix4x2dv"); + glad_glProgramUniformMatrix4x2fv = (PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC) load(userptr, "glProgramUniformMatrix4x2fv"); + glad_glProgramUniformMatrix4x3dv = (PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC) load(userptr, "glProgramUniformMatrix4x3dv"); + glad_glProgramUniformMatrix4x3fv = (PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC) load(userptr, "glProgramUniformMatrix4x3fv"); + glad_glReleaseShaderCompiler = (PFNGLRELEASESHADERCOMPILERPROC) load(userptr, "glReleaseShaderCompiler"); + glad_glScissorArrayv = (PFNGLSCISSORARRAYVPROC) load(userptr, "glScissorArrayv"); + glad_glScissorIndexed = (PFNGLSCISSORINDEXEDPROC) load(userptr, "glScissorIndexed"); + glad_glScissorIndexedv = (PFNGLSCISSORINDEXEDVPROC) load(userptr, "glScissorIndexedv"); + glad_glShaderBinary = (PFNGLSHADERBINARYPROC) load(userptr, "glShaderBinary"); + glad_glUseProgramStages = (PFNGLUSEPROGRAMSTAGESPROC) load(userptr, "glUseProgramStages"); + glad_glValidateProgramPipeline = (PFNGLVALIDATEPROGRAMPIPELINEPROC) load(userptr, "glValidateProgramPipeline"); + glad_glVertexAttribL1d = (PFNGLVERTEXATTRIBL1DPROC) load(userptr, "glVertexAttribL1d"); + glad_glVertexAttribL1dv = (PFNGLVERTEXATTRIBL1DVPROC) load(userptr, "glVertexAttribL1dv"); + glad_glVertexAttribL2d = (PFNGLVERTEXATTRIBL2DPROC) load(userptr, "glVertexAttribL2d"); + glad_glVertexAttribL2dv = (PFNGLVERTEXATTRIBL2DVPROC) load(userptr, "glVertexAttribL2dv"); + glad_glVertexAttribL3d = (PFNGLVERTEXATTRIBL3DPROC) load(userptr, "glVertexAttribL3d"); + glad_glVertexAttribL3dv = (PFNGLVERTEXATTRIBL3DVPROC) load(userptr, "glVertexAttribL3dv"); + glad_glVertexAttribL4d = (PFNGLVERTEXATTRIBL4DPROC) load(userptr, "glVertexAttribL4d"); + glad_glVertexAttribL4dv = (PFNGLVERTEXATTRIBL4DVPROC) load(userptr, "glVertexAttribL4dv"); + glad_glVertexAttribLPointer = (PFNGLVERTEXATTRIBLPOINTERPROC) load(userptr, "glVertexAttribLPointer"); + glad_glViewportArrayv = (PFNGLVIEWPORTARRAYVPROC) load(userptr, "glViewportArrayv"); + glad_glViewportIndexedf = (PFNGLVIEWPORTINDEXEDFPROC) load(userptr, "glViewportIndexedf"); + glad_glViewportIndexedfv = (PFNGLVIEWPORTINDEXEDFVPROC) load(userptr, "glViewportIndexedfv"); +} +static void glad_gl_load_GL_VERSION_4_2( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_VERSION_4_2) return; + glad_glBindImageTexture = (PFNGLBINDIMAGETEXTUREPROC) load(userptr, "glBindImageTexture"); + glad_glDrawArraysInstancedBaseInstance = (PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC) load(userptr, "glDrawArraysInstancedBaseInstance"); + glad_glDrawElementsInstancedBaseInstance = (PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC) load(userptr, "glDrawElementsInstancedBaseInstance"); + glad_glDrawElementsInstancedBaseVertexBaseInstance = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC) load(userptr, "glDrawElementsInstancedBaseVertexBaseInstance"); + glad_glDrawTransformFeedbackInstanced = (PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC) load(userptr, "glDrawTransformFeedbackInstanced"); + glad_glDrawTransformFeedbackStreamInstanced = (PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC) load(userptr, "glDrawTransformFeedbackStreamInstanced"); + glad_glGetActiveAtomicCounterBufferiv = (PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC) load(userptr, "glGetActiveAtomicCounterBufferiv"); + glad_glGetInternalformativ = (PFNGLGETINTERNALFORMATIVPROC) load(userptr, "glGetInternalformativ"); + glad_glMemoryBarrier = (PFNGLMEMORYBARRIERPROC) load(userptr, "glMemoryBarrier"); + glad_glTexStorage1D = (PFNGLTEXSTORAGE1DPROC) load(userptr, "glTexStorage1D"); + glad_glTexStorage2D = (PFNGLTEXSTORAGE2DPROC) load(userptr, "glTexStorage2D"); + glad_glTexStorage3D = (PFNGLTEXSTORAGE3DPROC) load(userptr, "glTexStorage3D"); +} +static void glad_gl_load_GL_VERSION_4_3( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_VERSION_4_3) return; + glad_glBindVertexBuffer = (PFNGLBINDVERTEXBUFFERPROC) load(userptr, "glBindVertexBuffer"); + glad_glClearBufferData = (PFNGLCLEARBUFFERDATAPROC) load(userptr, "glClearBufferData"); + glad_glClearBufferSubData = (PFNGLCLEARBUFFERSUBDATAPROC) load(userptr, "glClearBufferSubData"); + glad_glCopyImageSubData = (PFNGLCOPYIMAGESUBDATAPROC) load(userptr, "glCopyImageSubData"); + glad_glDebugMessageCallback = (PFNGLDEBUGMESSAGECALLBACKPROC) load(userptr, "glDebugMessageCallback"); + glad_glDebugMessageControl = (PFNGLDEBUGMESSAGECONTROLPROC) load(userptr, "glDebugMessageControl"); + glad_glDebugMessageInsert = (PFNGLDEBUGMESSAGEINSERTPROC) load(userptr, "glDebugMessageInsert"); + glad_glDispatchCompute = (PFNGLDISPATCHCOMPUTEPROC) load(userptr, "glDispatchCompute"); + glad_glDispatchComputeIndirect = (PFNGLDISPATCHCOMPUTEINDIRECTPROC) load(userptr, "glDispatchComputeIndirect"); + glad_glFramebufferParameteri = (PFNGLFRAMEBUFFERPARAMETERIPROC) load(userptr, "glFramebufferParameteri"); + glad_glGetDebugMessageLog = (PFNGLGETDEBUGMESSAGELOGPROC) load(userptr, "glGetDebugMessageLog"); + glad_glGetFramebufferParameteriv = (PFNGLGETFRAMEBUFFERPARAMETERIVPROC) load(userptr, "glGetFramebufferParameteriv"); + glad_glGetInternalformati64v = (PFNGLGETINTERNALFORMATI64VPROC) load(userptr, "glGetInternalformati64v"); + glad_glGetObjectLabel = (PFNGLGETOBJECTLABELPROC) load(userptr, "glGetObjectLabel"); + glad_glGetObjectPtrLabel = (PFNGLGETOBJECTPTRLABELPROC) load(userptr, "glGetObjectPtrLabel"); + glad_glGetPointerv = (PFNGLGETPOINTERVPROC) load(userptr, "glGetPointerv"); + glad_glGetProgramInterfaceiv = (PFNGLGETPROGRAMINTERFACEIVPROC) load(userptr, "glGetProgramInterfaceiv"); + glad_glGetProgramResourceIndex = (PFNGLGETPROGRAMRESOURCEINDEXPROC) load(userptr, "glGetProgramResourceIndex"); + glad_glGetProgramResourceLocation = (PFNGLGETPROGRAMRESOURCELOCATIONPROC) load(userptr, "glGetProgramResourceLocation"); + glad_glGetProgramResourceLocationIndex = (PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC) load(userptr, "glGetProgramResourceLocationIndex"); + glad_glGetProgramResourceName = (PFNGLGETPROGRAMRESOURCENAMEPROC) load(userptr, "glGetProgramResourceName"); + glad_glGetProgramResourceiv = (PFNGLGETPROGRAMRESOURCEIVPROC) load(userptr, "glGetProgramResourceiv"); + glad_glInvalidateBufferData = (PFNGLINVALIDATEBUFFERDATAPROC) load(userptr, "glInvalidateBufferData"); + glad_glInvalidateBufferSubData = (PFNGLINVALIDATEBUFFERSUBDATAPROC) load(userptr, "glInvalidateBufferSubData"); + glad_glInvalidateFramebuffer = (PFNGLINVALIDATEFRAMEBUFFERPROC) load(userptr, "glInvalidateFramebuffer"); + glad_glInvalidateSubFramebuffer = (PFNGLINVALIDATESUBFRAMEBUFFERPROC) load(userptr, "glInvalidateSubFramebuffer"); + glad_glInvalidateTexImage = (PFNGLINVALIDATETEXIMAGEPROC) load(userptr, "glInvalidateTexImage"); + glad_glInvalidateTexSubImage = (PFNGLINVALIDATETEXSUBIMAGEPROC) load(userptr, "glInvalidateTexSubImage"); + glad_glMultiDrawArraysIndirect = (PFNGLMULTIDRAWARRAYSINDIRECTPROC) load(userptr, "glMultiDrawArraysIndirect"); + glad_glMultiDrawElementsIndirect = (PFNGLMULTIDRAWELEMENTSINDIRECTPROC) load(userptr, "glMultiDrawElementsIndirect"); + glad_glObjectLabel = (PFNGLOBJECTLABELPROC) load(userptr, "glObjectLabel"); + glad_glObjectPtrLabel = (PFNGLOBJECTPTRLABELPROC) load(userptr, "glObjectPtrLabel"); + glad_glPopDebugGroup = (PFNGLPOPDEBUGGROUPPROC) load(userptr, "glPopDebugGroup"); + glad_glPushDebugGroup = (PFNGLPUSHDEBUGGROUPPROC) load(userptr, "glPushDebugGroup"); + glad_glShaderStorageBlockBinding = (PFNGLSHADERSTORAGEBLOCKBINDINGPROC) load(userptr, "glShaderStorageBlockBinding"); + glad_glTexBufferRange = (PFNGLTEXBUFFERRANGEPROC) load(userptr, "glTexBufferRange"); + glad_glTexStorage2DMultisample = (PFNGLTEXSTORAGE2DMULTISAMPLEPROC) load(userptr, "glTexStorage2DMultisample"); + glad_glTexStorage3DMultisample = (PFNGLTEXSTORAGE3DMULTISAMPLEPROC) load(userptr, "glTexStorage3DMultisample"); + glad_glTextureView = (PFNGLTEXTUREVIEWPROC) load(userptr, "glTextureView"); + glad_glVertexAttribBinding = (PFNGLVERTEXATTRIBBINDINGPROC) load(userptr, "glVertexAttribBinding"); + glad_glVertexAttribFormat = (PFNGLVERTEXATTRIBFORMATPROC) load(userptr, "glVertexAttribFormat"); + glad_glVertexAttribIFormat = (PFNGLVERTEXATTRIBIFORMATPROC) load(userptr, "glVertexAttribIFormat"); + glad_glVertexAttribLFormat = (PFNGLVERTEXATTRIBLFORMATPROC) load(userptr, "glVertexAttribLFormat"); + glad_glVertexBindingDivisor = (PFNGLVERTEXBINDINGDIVISORPROC) load(userptr, "glVertexBindingDivisor"); +} +static void glad_gl_load_GL_ARB_ES2_compatibility( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_ES2_compatibility) return; + glad_glClearDepthf = (PFNGLCLEARDEPTHFPROC) load(userptr, "glClearDepthf"); + glad_glDepthRangef = (PFNGLDEPTHRANGEFPROC) load(userptr, "glDepthRangef"); + glad_glGetShaderPrecisionFormat = (PFNGLGETSHADERPRECISIONFORMATPROC) load(userptr, "glGetShaderPrecisionFormat"); + glad_glReleaseShaderCompiler = (PFNGLRELEASESHADERCOMPILERPROC) load(userptr, "glReleaseShaderCompiler"); + glad_glShaderBinary = (PFNGLSHADERBINARYPROC) load(userptr, "glShaderBinary"); +} +static void glad_gl_load_GL_ARB_ES3_1_compatibility( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_ES3_1_compatibility) return; + glad_glMemoryBarrierByRegion = (PFNGLMEMORYBARRIERBYREGIONPROC) load(userptr, "glMemoryBarrierByRegion"); +} +static void glad_gl_load_GL_ARB_ES3_2_compatibility( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_ES3_2_compatibility) return; + glad_glPrimitiveBoundingBoxARB = (PFNGLPRIMITIVEBOUNDINGBOXARBPROC) load(userptr, "glPrimitiveBoundingBoxARB"); +} +static void glad_gl_load_GL_ARB_blend_func_extended( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_blend_func_extended) return; + glad_glBindFragDataLocationIndexed = (PFNGLBINDFRAGDATALOCATIONINDEXEDPROC) load(userptr, "glBindFragDataLocationIndexed"); + glad_glGetFragDataIndex = (PFNGLGETFRAGDATAINDEXPROC) load(userptr, "glGetFragDataIndex"); +} +static void glad_gl_load_GL_ARB_buffer_storage( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_buffer_storage) return; + glad_glBufferStorage = (PFNGLBUFFERSTORAGEPROC) load(userptr, "glBufferStorage"); +} +static void glad_gl_load_GL_ARB_clear_buffer_object( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_clear_buffer_object) return; + glad_glClearBufferData = (PFNGLCLEARBUFFERDATAPROC) load(userptr, "glClearBufferData"); + glad_glClearBufferSubData = (PFNGLCLEARBUFFERSUBDATAPROC) load(userptr, "glClearBufferSubData"); +} +static void glad_gl_load_GL_ARB_clear_texture( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_clear_texture) return; + glad_glClearTexImage = (PFNGLCLEARTEXIMAGEPROC) load(userptr, "glClearTexImage"); + glad_glClearTexSubImage = (PFNGLCLEARTEXSUBIMAGEPROC) load(userptr, "glClearTexSubImage"); +} +static void glad_gl_load_GL_ARB_color_buffer_float( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_color_buffer_float) return; + glad_glClampColorARB = (PFNGLCLAMPCOLORARBPROC) load(userptr, "glClampColorARB"); +} +static void glad_gl_load_GL_ARB_compute_shader( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_compute_shader) return; + glad_glDispatchCompute = (PFNGLDISPATCHCOMPUTEPROC) load(userptr, "glDispatchCompute"); + glad_glDispatchComputeIndirect = (PFNGLDISPATCHCOMPUTEINDIRECTPROC) load(userptr, "glDispatchComputeIndirect"); +} +static void glad_gl_load_GL_ARB_compute_variable_group_size( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_compute_variable_group_size) return; + glad_glDispatchComputeGroupSizeARB = (PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC) load(userptr, "glDispatchComputeGroupSizeARB"); +} +static void glad_gl_load_GL_ARB_copy_buffer( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_copy_buffer) return; + glad_glCopyBufferSubData = (PFNGLCOPYBUFFERSUBDATAPROC) load(userptr, "glCopyBufferSubData"); +} +static void glad_gl_load_GL_ARB_copy_image( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_copy_image) return; + glad_glCopyImageSubData = (PFNGLCOPYIMAGESUBDATAPROC) load(userptr, "glCopyImageSubData"); +} +static void glad_gl_load_GL_ARB_debug_output( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_debug_output) return; + glad_glDebugMessageCallbackARB = (PFNGLDEBUGMESSAGECALLBACKARBPROC) load(userptr, "glDebugMessageCallbackARB"); + glad_glDebugMessageControlARB = (PFNGLDEBUGMESSAGECONTROLARBPROC) load(userptr, "glDebugMessageControlARB"); + glad_glDebugMessageInsertARB = (PFNGLDEBUGMESSAGEINSERTARBPROC) load(userptr, "glDebugMessageInsertARB"); + glad_glGetDebugMessageLogARB = (PFNGLGETDEBUGMESSAGELOGARBPROC) load(userptr, "glGetDebugMessageLogARB"); +} +static void glad_gl_load_GL_ARB_direct_state_access( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_direct_state_access) return; + glad_glBindTextureUnit = (PFNGLBINDTEXTUREUNITPROC) load(userptr, "glBindTextureUnit"); + glad_glBlitNamedFramebuffer = (PFNGLBLITNAMEDFRAMEBUFFERPROC) load(userptr, "glBlitNamedFramebuffer"); + glad_glCheckNamedFramebufferStatus = (PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC) load(userptr, "glCheckNamedFramebufferStatus"); + glad_glClearNamedBufferData = (PFNGLCLEARNAMEDBUFFERDATAPROC) load(userptr, "glClearNamedBufferData"); + glad_glClearNamedBufferSubData = (PFNGLCLEARNAMEDBUFFERSUBDATAPROC) load(userptr, "glClearNamedBufferSubData"); + glad_glClearNamedFramebufferfi = (PFNGLCLEARNAMEDFRAMEBUFFERFIPROC) load(userptr, "glClearNamedFramebufferfi"); + glad_glClearNamedFramebufferfv = (PFNGLCLEARNAMEDFRAMEBUFFERFVPROC) load(userptr, "glClearNamedFramebufferfv"); + glad_glClearNamedFramebufferiv = (PFNGLCLEARNAMEDFRAMEBUFFERIVPROC) load(userptr, "glClearNamedFramebufferiv"); + glad_glClearNamedFramebufferuiv = (PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC) load(userptr, "glClearNamedFramebufferuiv"); + glad_glCompressedTextureSubImage1D = (PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC) load(userptr, "glCompressedTextureSubImage1D"); + glad_glCompressedTextureSubImage2D = (PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC) load(userptr, "glCompressedTextureSubImage2D"); + glad_glCompressedTextureSubImage3D = (PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC) load(userptr, "glCompressedTextureSubImage3D"); + glad_glCopyNamedBufferSubData = (PFNGLCOPYNAMEDBUFFERSUBDATAPROC) load(userptr, "glCopyNamedBufferSubData"); + glad_glCopyTextureSubImage1D = (PFNGLCOPYTEXTURESUBIMAGE1DPROC) load(userptr, "glCopyTextureSubImage1D"); + glad_glCopyTextureSubImage2D = (PFNGLCOPYTEXTURESUBIMAGE2DPROC) load(userptr, "glCopyTextureSubImage2D"); + glad_glCopyTextureSubImage3D = (PFNGLCOPYTEXTURESUBIMAGE3DPROC) load(userptr, "glCopyTextureSubImage3D"); + glad_glCreateBuffers = (PFNGLCREATEBUFFERSPROC) load(userptr, "glCreateBuffers"); + glad_glCreateFramebuffers = (PFNGLCREATEFRAMEBUFFERSPROC) load(userptr, "glCreateFramebuffers"); + glad_glCreateProgramPipelines = (PFNGLCREATEPROGRAMPIPELINESPROC) load(userptr, "glCreateProgramPipelines"); + glad_glCreateQueries = (PFNGLCREATEQUERIESPROC) load(userptr, "glCreateQueries"); + glad_glCreateRenderbuffers = (PFNGLCREATERENDERBUFFERSPROC) load(userptr, "glCreateRenderbuffers"); + glad_glCreateSamplers = (PFNGLCREATESAMPLERSPROC) load(userptr, "glCreateSamplers"); + glad_glCreateTextures = (PFNGLCREATETEXTURESPROC) load(userptr, "glCreateTextures"); + glad_glCreateTransformFeedbacks = (PFNGLCREATETRANSFORMFEEDBACKSPROC) load(userptr, "glCreateTransformFeedbacks"); + glad_glCreateVertexArrays = (PFNGLCREATEVERTEXARRAYSPROC) load(userptr, "glCreateVertexArrays"); + glad_glDisableVertexArrayAttrib = (PFNGLDISABLEVERTEXARRAYATTRIBPROC) load(userptr, "glDisableVertexArrayAttrib"); + glad_glEnableVertexArrayAttrib = (PFNGLENABLEVERTEXARRAYATTRIBPROC) load(userptr, "glEnableVertexArrayAttrib"); + glad_glFlushMappedNamedBufferRange = (PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC) load(userptr, "glFlushMappedNamedBufferRange"); + glad_glGenerateTextureMipmap = (PFNGLGENERATETEXTUREMIPMAPPROC) load(userptr, "glGenerateTextureMipmap"); + glad_glGetCompressedTextureImage = (PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC) load(userptr, "glGetCompressedTextureImage"); + glad_glGetNamedBufferParameteri64v = (PFNGLGETNAMEDBUFFERPARAMETERI64VPROC) load(userptr, "glGetNamedBufferParameteri64v"); + glad_glGetNamedBufferParameteriv = (PFNGLGETNAMEDBUFFERPARAMETERIVPROC) load(userptr, "glGetNamedBufferParameteriv"); + glad_glGetNamedBufferPointerv = (PFNGLGETNAMEDBUFFERPOINTERVPROC) load(userptr, "glGetNamedBufferPointerv"); + glad_glGetNamedBufferSubData = (PFNGLGETNAMEDBUFFERSUBDATAPROC) load(userptr, "glGetNamedBufferSubData"); + glad_glGetNamedFramebufferAttachmentParameteriv = (PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC) load(userptr, "glGetNamedFramebufferAttachmentParameteriv"); + glad_glGetNamedFramebufferParameteriv = (PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC) load(userptr, "glGetNamedFramebufferParameteriv"); + glad_glGetNamedRenderbufferParameteriv = (PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC) load(userptr, "glGetNamedRenderbufferParameteriv"); + glad_glGetQueryBufferObjecti64v = (PFNGLGETQUERYBUFFEROBJECTI64VPROC) load(userptr, "glGetQueryBufferObjecti64v"); + glad_glGetQueryBufferObjectiv = (PFNGLGETQUERYBUFFEROBJECTIVPROC) load(userptr, "glGetQueryBufferObjectiv"); + glad_glGetQueryBufferObjectui64v = (PFNGLGETQUERYBUFFEROBJECTUI64VPROC) load(userptr, "glGetQueryBufferObjectui64v"); + glad_glGetQueryBufferObjectuiv = (PFNGLGETQUERYBUFFEROBJECTUIVPROC) load(userptr, "glGetQueryBufferObjectuiv"); + glad_glGetTextureImage = (PFNGLGETTEXTUREIMAGEPROC) load(userptr, "glGetTextureImage"); + glad_glGetTextureLevelParameterfv = (PFNGLGETTEXTURELEVELPARAMETERFVPROC) load(userptr, "glGetTextureLevelParameterfv"); + glad_glGetTextureLevelParameteriv = (PFNGLGETTEXTURELEVELPARAMETERIVPROC) load(userptr, "glGetTextureLevelParameteriv"); + glad_glGetTextureParameterIiv = (PFNGLGETTEXTUREPARAMETERIIVPROC) load(userptr, "glGetTextureParameterIiv"); + glad_glGetTextureParameterIuiv = (PFNGLGETTEXTUREPARAMETERIUIVPROC) load(userptr, "glGetTextureParameterIuiv"); + glad_glGetTextureParameterfv = (PFNGLGETTEXTUREPARAMETERFVPROC) load(userptr, "glGetTextureParameterfv"); + glad_glGetTextureParameteriv = (PFNGLGETTEXTUREPARAMETERIVPROC) load(userptr, "glGetTextureParameteriv"); + glad_glGetTransformFeedbacki64_v = (PFNGLGETTRANSFORMFEEDBACKI64_VPROC) load(userptr, "glGetTransformFeedbacki64_v"); + glad_glGetTransformFeedbacki_v = (PFNGLGETTRANSFORMFEEDBACKI_VPROC) load(userptr, "glGetTransformFeedbacki_v"); + glad_glGetTransformFeedbackiv = (PFNGLGETTRANSFORMFEEDBACKIVPROC) load(userptr, "glGetTransformFeedbackiv"); + glad_glGetVertexArrayIndexed64iv = (PFNGLGETVERTEXARRAYINDEXED64IVPROC) load(userptr, "glGetVertexArrayIndexed64iv"); + glad_glGetVertexArrayIndexediv = (PFNGLGETVERTEXARRAYINDEXEDIVPROC) load(userptr, "glGetVertexArrayIndexediv"); + glad_glGetVertexArrayiv = (PFNGLGETVERTEXARRAYIVPROC) load(userptr, "glGetVertexArrayiv"); + glad_glInvalidateNamedFramebufferData = (PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC) load(userptr, "glInvalidateNamedFramebufferData"); + glad_glInvalidateNamedFramebufferSubData = (PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC) load(userptr, "glInvalidateNamedFramebufferSubData"); + glad_glMapNamedBuffer = (PFNGLMAPNAMEDBUFFERPROC) load(userptr, "glMapNamedBuffer"); + glad_glMapNamedBufferRange = (PFNGLMAPNAMEDBUFFERRANGEPROC) load(userptr, "glMapNamedBufferRange"); + glad_glNamedBufferData = (PFNGLNAMEDBUFFERDATAPROC) load(userptr, "glNamedBufferData"); + glad_glNamedBufferStorage = (PFNGLNAMEDBUFFERSTORAGEPROC) load(userptr, "glNamedBufferStorage"); + glad_glNamedBufferSubData = (PFNGLNAMEDBUFFERSUBDATAPROC) load(userptr, "glNamedBufferSubData"); + glad_glNamedFramebufferDrawBuffer = (PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC) load(userptr, "glNamedFramebufferDrawBuffer"); + glad_glNamedFramebufferDrawBuffers = (PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC) load(userptr, "glNamedFramebufferDrawBuffers"); + glad_glNamedFramebufferParameteri = (PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC) load(userptr, "glNamedFramebufferParameteri"); + glad_glNamedFramebufferReadBuffer = (PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC) load(userptr, "glNamedFramebufferReadBuffer"); + glad_glNamedFramebufferRenderbuffer = (PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC) load(userptr, "glNamedFramebufferRenderbuffer"); + glad_glNamedFramebufferTexture = (PFNGLNAMEDFRAMEBUFFERTEXTUREPROC) load(userptr, "glNamedFramebufferTexture"); + glad_glNamedFramebufferTextureLayer = (PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC) load(userptr, "glNamedFramebufferTextureLayer"); + glad_glNamedRenderbufferStorage = (PFNGLNAMEDRENDERBUFFERSTORAGEPROC) load(userptr, "glNamedRenderbufferStorage"); + glad_glNamedRenderbufferStorageMultisample = (PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC) load(userptr, "glNamedRenderbufferStorageMultisample"); + glad_glTextureBuffer = (PFNGLTEXTUREBUFFERPROC) load(userptr, "glTextureBuffer"); + glad_glTextureBufferRange = (PFNGLTEXTUREBUFFERRANGEPROC) load(userptr, "glTextureBufferRange"); + glad_glTextureParameterIiv = (PFNGLTEXTUREPARAMETERIIVPROC) load(userptr, "glTextureParameterIiv"); + glad_glTextureParameterIuiv = (PFNGLTEXTUREPARAMETERIUIVPROC) load(userptr, "glTextureParameterIuiv"); + glad_glTextureParameterf = (PFNGLTEXTUREPARAMETERFPROC) load(userptr, "glTextureParameterf"); + glad_glTextureParameterfv = (PFNGLTEXTUREPARAMETERFVPROC) load(userptr, "glTextureParameterfv"); + glad_glTextureParameteri = (PFNGLTEXTUREPARAMETERIPROC) load(userptr, "glTextureParameteri"); + glad_glTextureParameteriv = (PFNGLTEXTUREPARAMETERIVPROC) load(userptr, "glTextureParameteriv"); + glad_glTextureStorage1D = (PFNGLTEXTURESTORAGE1DPROC) load(userptr, "glTextureStorage1D"); + glad_glTextureStorage2D = (PFNGLTEXTURESTORAGE2DPROC) load(userptr, "glTextureStorage2D"); + glad_glTextureStorage2DMultisample = (PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC) load(userptr, "glTextureStorage2DMultisample"); + glad_glTextureStorage3D = (PFNGLTEXTURESTORAGE3DPROC) load(userptr, "glTextureStorage3D"); + glad_glTextureStorage3DMultisample = (PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC) load(userptr, "glTextureStorage3DMultisample"); + glad_glTextureSubImage1D = (PFNGLTEXTURESUBIMAGE1DPROC) load(userptr, "glTextureSubImage1D"); + glad_glTextureSubImage2D = (PFNGLTEXTURESUBIMAGE2DPROC) load(userptr, "glTextureSubImage2D"); + glad_glTextureSubImage3D = (PFNGLTEXTURESUBIMAGE3DPROC) load(userptr, "glTextureSubImage3D"); + glad_glTransformFeedbackBufferBase = (PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC) load(userptr, "glTransformFeedbackBufferBase"); + glad_glTransformFeedbackBufferRange = (PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC) load(userptr, "glTransformFeedbackBufferRange"); + glad_glUnmapNamedBuffer = (PFNGLUNMAPNAMEDBUFFERPROC) load(userptr, "glUnmapNamedBuffer"); + glad_glVertexArrayAttribBinding = (PFNGLVERTEXARRAYATTRIBBINDINGPROC) load(userptr, "glVertexArrayAttribBinding"); + glad_glVertexArrayAttribFormat = (PFNGLVERTEXARRAYATTRIBFORMATPROC) load(userptr, "glVertexArrayAttribFormat"); + glad_glVertexArrayAttribIFormat = (PFNGLVERTEXARRAYATTRIBIFORMATPROC) load(userptr, "glVertexArrayAttribIFormat"); + glad_glVertexArrayAttribLFormat = (PFNGLVERTEXARRAYATTRIBLFORMATPROC) load(userptr, "glVertexArrayAttribLFormat"); + glad_glVertexArrayBindingDivisor = (PFNGLVERTEXARRAYBINDINGDIVISORPROC) load(userptr, "glVertexArrayBindingDivisor"); + glad_glVertexArrayElementBuffer = (PFNGLVERTEXARRAYELEMENTBUFFERPROC) load(userptr, "glVertexArrayElementBuffer"); + glad_glVertexArrayVertexBuffer = (PFNGLVERTEXARRAYVERTEXBUFFERPROC) load(userptr, "glVertexArrayVertexBuffer"); + glad_glVertexArrayVertexBuffers = (PFNGLVERTEXARRAYVERTEXBUFFERSPROC) load(userptr, "glVertexArrayVertexBuffers"); +} +static void glad_gl_load_GL_ARB_draw_buffers( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_draw_buffers) return; + glad_glDrawBuffersARB = (PFNGLDRAWBUFFERSARBPROC) load(userptr, "glDrawBuffersARB"); +} +static void glad_gl_load_GL_ARB_draw_buffers_blend( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_draw_buffers_blend) return; + glad_glBlendEquationSeparateiARB = (PFNGLBLENDEQUATIONSEPARATEIARBPROC) load(userptr, "glBlendEquationSeparateiARB"); + glad_glBlendEquationiARB = (PFNGLBLENDEQUATIONIARBPROC) load(userptr, "glBlendEquationiARB"); + glad_glBlendFuncSeparateiARB = (PFNGLBLENDFUNCSEPARATEIARBPROC) load(userptr, "glBlendFuncSeparateiARB"); + glad_glBlendFunciARB = (PFNGLBLENDFUNCIARBPROC) load(userptr, "glBlendFunciARB"); +} +static void glad_gl_load_GL_ARB_draw_elements_base_vertex( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_draw_elements_base_vertex) return; + glad_glDrawElementsBaseVertex = (PFNGLDRAWELEMENTSBASEVERTEXPROC) load(userptr, "glDrawElementsBaseVertex"); + glad_glDrawElementsInstancedBaseVertex = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) load(userptr, "glDrawElementsInstancedBaseVertex"); + glad_glDrawRangeElementsBaseVertex = (PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) load(userptr, "glDrawRangeElementsBaseVertex"); + glad_glMultiDrawElementsBaseVertex = (PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC) load(userptr, "glMultiDrawElementsBaseVertex"); +} +static void glad_gl_load_GL_ARB_draw_indirect( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_draw_indirect) return; + glad_glDrawArraysIndirect = (PFNGLDRAWARRAYSINDIRECTPROC) load(userptr, "glDrawArraysIndirect"); + glad_glDrawElementsIndirect = (PFNGLDRAWELEMENTSINDIRECTPROC) load(userptr, "glDrawElementsIndirect"); +} +static void glad_gl_load_GL_ARB_draw_instanced( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_draw_instanced) return; + glad_glDrawArraysInstancedARB = (PFNGLDRAWARRAYSINSTANCEDARBPROC) load(userptr, "glDrawArraysInstancedARB"); + glad_glDrawElementsInstancedARB = (PFNGLDRAWELEMENTSINSTANCEDARBPROC) load(userptr, "glDrawElementsInstancedARB"); +} +static void glad_gl_load_GL_ARB_fragment_program( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_fragment_program) return; + glad_glBindProgramARB = (PFNGLBINDPROGRAMARBPROC) load(userptr, "glBindProgramARB"); + glad_glDeleteProgramsARB = (PFNGLDELETEPROGRAMSARBPROC) load(userptr, "glDeleteProgramsARB"); + glad_glGenProgramsARB = (PFNGLGENPROGRAMSARBPROC) load(userptr, "glGenProgramsARB"); + glad_glGetProgramEnvParameterdvARB = (PFNGLGETPROGRAMENVPARAMETERDVARBPROC) load(userptr, "glGetProgramEnvParameterdvARB"); + glad_glGetProgramEnvParameterfvARB = (PFNGLGETPROGRAMENVPARAMETERFVARBPROC) load(userptr, "glGetProgramEnvParameterfvARB"); + glad_glGetProgramLocalParameterdvARB = (PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC) load(userptr, "glGetProgramLocalParameterdvARB"); + glad_glGetProgramLocalParameterfvARB = (PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC) load(userptr, "glGetProgramLocalParameterfvARB"); + glad_glGetProgramStringARB = (PFNGLGETPROGRAMSTRINGARBPROC) load(userptr, "glGetProgramStringARB"); + glad_glGetProgramivARB = (PFNGLGETPROGRAMIVARBPROC) load(userptr, "glGetProgramivARB"); + glad_glIsProgramARB = (PFNGLISPROGRAMARBPROC) load(userptr, "glIsProgramARB"); + glad_glProgramEnvParameter4dARB = (PFNGLPROGRAMENVPARAMETER4DARBPROC) load(userptr, "glProgramEnvParameter4dARB"); + glad_glProgramEnvParameter4dvARB = (PFNGLPROGRAMENVPARAMETER4DVARBPROC) load(userptr, "glProgramEnvParameter4dvARB"); + glad_glProgramEnvParameter4fARB = (PFNGLPROGRAMENVPARAMETER4FARBPROC) load(userptr, "glProgramEnvParameter4fARB"); + glad_glProgramEnvParameter4fvARB = (PFNGLPROGRAMENVPARAMETER4FVARBPROC) load(userptr, "glProgramEnvParameter4fvARB"); + glad_glProgramLocalParameter4dARB = (PFNGLPROGRAMLOCALPARAMETER4DARBPROC) load(userptr, "glProgramLocalParameter4dARB"); + glad_glProgramLocalParameter4dvARB = (PFNGLPROGRAMLOCALPARAMETER4DVARBPROC) load(userptr, "glProgramLocalParameter4dvARB"); + glad_glProgramLocalParameter4fARB = (PFNGLPROGRAMLOCALPARAMETER4FARBPROC) load(userptr, "glProgramLocalParameter4fARB"); + glad_glProgramLocalParameter4fvARB = (PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) load(userptr, "glProgramLocalParameter4fvARB"); + glad_glProgramStringARB = (PFNGLPROGRAMSTRINGARBPROC) load(userptr, "glProgramStringARB"); +} +static void glad_gl_load_GL_ARB_framebuffer_no_attachments( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_framebuffer_no_attachments) return; + glad_glFramebufferParameteri = (PFNGLFRAMEBUFFERPARAMETERIPROC) load(userptr, "glFramebufferParameteri"); + glad_glGetFramebufferParameteriv = (PFNGLGETFRAMEBUFFERPARAMETERIVPROC) load(userptr, "glGetFramebufferParameteriv"); +} +static void glad_gl_load_GL_ARB_framebuffer_object( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_framebuffer_object) return; + glad_glBindFramebuffer = (PFNGLBINDFRAMEBUFFERPROC) load(userptr, "glBindFramebuffer"); + glad_glBindRenderbuffer = (PFNGLBINDRENDERBUFFERPROC) load(userptr, "glBindRenderbuffer"); + glad_glBlitFramebuffer = (PFNGLBLITFRAMEBUFFERPROC) load(userptr, "glBlitFramebuffer"); + glad_glCheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSPROC) load(userptr, "glCheckFramebufferStatus"); + glad_glDeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSPROC) load(userptr, "glDeleteFramebuffers"); + glad_glDeleteRenderbuffers = (PFNGLDELETERENDERBUFFERSPROC) load(userptr, "glDeleteRenderbuffers"); + glad_glFramebufferRenderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFERPROC) load(userptr, "glFramebufferRenderbuffer"); + glad_glFramebufferTexture1D = (PFNGLFRAMEBUFFERTEXTURE1DPROC) load(userptr, "glFramebufferTexture1D"); + glad_glFramebufferTexture2D = (PFNGLFRAMEBUFFERTEXTURE2DPROC) load(userptr, "glFramebufferTexture2D"); + glad_glFramebufferTexture3D = (PFNGLFRAMEBUFFERTEXTURE3DPROC) load(userptr, "glFramebufferTexture3D"); + glad_glFramebufferTextureLayer = (PFNGLFRAMEBUFFERTEXTURELAYERPROC) load(userptr, "glFramebufferTextureLayer"); + glad_glGenFramebuffers = (PFNGLGENFRAMEBUFFERSPROC) load(userptr, "glGenFramebuffers"); + glad_glGenRenderbuffers = (PFNGLGENRENDERBUFFERSPROC) load(userptr, "glGenRenderbuffers"); + glad_glGenerateMipmap = (PFNGLGENERATEMIPMAPPROC) load(userptr, "glGenerateMipmap"); + glad_glGetFramebufferAttachmentParameteriv = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) load(userptr, "glGetFramebufferAttachmentParameteriv"); + glad_glGetRenderbufferParameteriv = (PFNGLGETRENDERBUFFERPARAMETERIVPROC) load(userptr, "glGetRenderbufferParameteriv"); + glad_glIsFramebuffer = (PFNGLISFRAMEBUFFERPROC) load(userptr, "glIsFramebuffer"); + glad_glIsRenderbuffer = (PFNGLISRENDERBUFFERPROC) load(userptr, "glIsRenderbuffer"); + glad_glRenderbufferStorage = (PFNGLRENDERBUFFERSTORAGEPROC) load(userptr, "glRenderbufferStorage"); + glad_glRenderbufferStorageMultisample = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) load(userptr, "glRenderbufferStorageMultisample"); +} +static void glad_gl_load_GL_ARB_geometry_shader4( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_geometry_shader4) return; + glad_glFramebufferTextureARB = (PFNGLFRAMEBUFFERTEXTUREARBPROC) load(userptr, "glFramebufferTextureARB"); + glad_glFramebufferTextureFaceARB = (PFNGLFRAMEBUFFERTEXTUREFACEARBPROC) load(userptr, "glFramebufferTextureFaceARB"); + glad_glFramebufferTextureLayerARB = (PFNGLFRAMEBUFFERTEXTURELAYERARBPROC) load(userptr, "glFramebufferTextureLayerARB"); + glad_glProgramParameteriARB = (PFNGLPROGRAMPARAMETERIARBPROC) load(userptr, "glProgramParameteriARB"); +} +static void glad_gl_load_GL_ARB_get_program_binary( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_get_program_binary) return; + glad_glGetProgramBinary = (PFNGLGETPROGRAMBINARYPROC) load(userptr, "glGetProgramBinary"); + glad_glProgramBinary = (PFNGLPROGRAMBINARYPROC) load(userptr, "glProgramBinary"); + glad_glProgramParameteri = (PFNGLPROGRAMPARAMETERIPROC) load(userptr, "glProgramParameteri"); +} +static void glad_gl_load_GL_ARB_get_texture_sub_image( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_get_texture_sub_image) return; + glad_glGetCompressedTextureSubImage = (PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC) load(userptr, "glGetCompressedTextureSubImage"); + glad_glGetTextureSubImage = (PFNGLGETTEXTURESUBIMAGEPROC) load(userptr, "glGetTextureSubImage"); +} +static void glad_gl_load_GL_ARB_gl_spirv( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_gl_spirv) return; + glad_glSpecializeShaderARB = (PFNGLSPECIALIZESHADERARBPROC) load(userptr, "glSpecializeShaderARB"); +} +static void glad_gl_load_GL_ARB_gpu_shader_fp64( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_gpu_shader_fp64) return; + glad_glGetUniformdv = (PFNGLGETUNIFORMDVPROC) load(userptr, "glGetUniformdv"); + glad_glUniform1d = (PFNGLUNIFORM1DPROC) load(userptr, "glUniform1d"); + glad_glUniform1dv = (PFNGLUNIFORM1DVPROC) load(userptr, "glUniform1dv"); + glad_glUniform2d = (PFNGLUNIFORM2DPROC) load(userptr, "glUniform2d"); + glad_glUniform2dv = (PFNGLUNIFORM2DVPROC) load(userptr, "glUniform2dv"); + glad_glUniform3d = (PFNGLUNIFORM3DPROC) load(userptr, "glUniform3d"); + glad_glUniform3dv = (PFNGLUNIFORM3DVPROC) load(userptr, "glUniform3dv"); + glad_glUniform4d = (PFNGLUNIFORM4DPROC) load(userptr, "glUniform4d"); + glad_glUniform4dv = (PFNGLUNIFORM4DVPROC) load(userptr, "glUniform4dv"); + glad_glUniformMatrix2dv = (PFNGLUNIFORMMATRIX2DVPROC) load(userptr, "glUniformMatrix2dv"); + glad_glUniformMatrix2x3dv = (PFNGLUNIFORMMATRIX2X3DVPROC) load(userptr, "glUniformMatrix2x3dv"); + glad_glUniformMatrix2x4dv = (PFNGLUNIFORMMATRIX2X4DVPROC) load(userptr, "glUniformMatrix2x4dv"); + glad_glUniformMatrix3dv = (PFNGLUNIFORMMATRIX3DVPROC) load(userptr, "glUniformMatrix3dv"); + glad_glUniformMatrix3x2dv = (PFNGLUNIFORMMATRIX3X2DVPROC) load(userptr, "glUniformMatrix3x2dv"); + glad_glUniformMatrix3x4dv = (PFNGLUNIFORMMATRIX3X4DVPROC) load(userptr, "glUniformMatrix3x4dv"); + glad_glUniformMatrix4dv = (PFNGLUNIFORMMATRIX4DVPROC) load(userptr, "glUniformMatrix4dv"); + glad_glUniformMatrix4x2dv = (PFNGLUNIFORMMATRIX4X2DVPROC) load(userptr, "glUniformMatrix4x2dv"); + glad_glUniformMatrix4x3dv = (PFNGLUNIFORMMATRIX4X3DVPROC) load(userptr, "glUniformMatrix4x3dv"); +} +static void glad_gl_load_GL_ARB_gpu_shader_int64( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_gpu_shader_int64) return; + glad_glGetUniformi64vARB = (PFNGLGETUNIFORMI64VARBPROC) load(userptr, "glGetUniformi64vARB"); + glad_glGetUniformui64vARB = (PFNGLGETUNIFORMUI64VARBPROC) load(userptr, "glGetUniformui64vARB"); + glad_glGetnUniformi64vARB = (PFNGLGETNUNIFORMI64VARBPROC) load(userptr, "glGetnUniformi64vARB"); + glad_glGetnUniformui64vARB = (PFNGLGETNUNIFORMUI64VARBPROC) load(userptr, "glGetnUniformui64vARB"); + glad_glProgramUniform1i64ARB = (PFNGLPROGRAMUNIFORM1I64ARBPROC) load(userptr, "glProgramUniform1i64ARB"); + glad_glProgramUniform1i64vARB = (PFNGLPROGRAMUNIFORM1I64VARBPROC) load(userptr, "glProgramUniform1i64vARB"); + glad_glProgramUniform1ui64ARB = (PFNGLPROGRAMUNIFORM1UI64ARBPROC) load(userptr, "glProgramUniform1ui64ARB"); + glad_glProgramUniform1ui64vARB = (PFNGLPROGRAMUNIFORM1UI64VARBPROC) load(userptr, "glProgramUniform1ui64vARB"); + glad_glProgramUniform2i64ARB = (PFNGLPROGRAMUNIFORM2I64ARBPROC) load(userptr, "glProgramUniform2i64ARB"); + glad_glProgramUniform2i64vARB = (PFNGLPROGRAMUNIFORM2I64VARBPROC) load(userptr, "glProgramUniform2i64vARB"); + glad_glProgramUniform2ui64ARB = (PFNGLPROGRAMUNIFORM2UI64ARBPROC) load(userptr, "glProgramUniform2ui64ARB"); + glad_glProgramUniform2ui64vARB = (PFNGLPROGRAMUNIFORM2UI64VARBPROC) load(userptr, "glProgramUniform2ui64vARB"); + glad_glProgramUniform3i64ARB = (PFNGLPROGRAMUNIFORM3I64ARBPROC) load(userptr, "glProgramUniform3i64ARB"); + glad_glProgramUniform3i64vARB = (PFNGLPROGRAMUNIFORM3I64VARBPROC) load(userptr, "glProgramUniform3i64vARB"); + glad_glProgramUniform3ui64ARB = (PFNGLPROGRAMUNIFORM3UI64ARBPROC) load(userptr, "glProgramUniform3ui64ARB"); + glad_glProgramUniform3ui64vARB = (PFNGLPROGRAMUNIFORM3UI64VARBPROC) load(userptr, "glProgramUniform3ui64vARB"); + glad_glProgramUniform4i64ARB = (PFNGLPROGRAMUNIFORM4I64ARBPROC) load(userptr, "glProgramUniform4i64ARB"); + glad_glProgramUniform4i64vARB = (PFNGLPROGRAMUNIFORM4I64VARBPROC) load(userptr, "glProgramUniform4i64vARB"); + glad_glProgramUniform4ui64ARB = (PFNGLPROGRAMUNIFORM4UI64ARBPROC) load(userptr, "glProgramUniform4ui64ARB"); + glad_glProgramUniform4ui64vARB = (PFNGLPROGRAMUNIFORM4UI64VARBPROC) load(userptr, "glProgramUniform4ui64vARB"); + glad_glUniform1i64ARB = (PFNGLUNIFORM1I64ARBPROC) load(userptr, "glUniform1i64ARB"); + glad_glUniform1i64vARB = (PFNGLUNIFORM1I64VARBPROC) load(userptr, "glUniform1i64vARB"); + glad_glUniform1ui64ARB = (PFNGLUNIFORM1UI64ARBPROC) load(userptr, "glUniform1ui64ARB"); + glad_glUniform1ui64vARB = (PFNGLUNIFORM1UI64VARBPROC) load(userptr, "glUniform1ui64vARB"); + glad_glUniform2i64ARB = (PFNGLUNIFORM2I64ARBPROC) load(userptr, "glUniform2i64ARB"); + glad_glUniform2i64vARB = (PFNGLUNIFORM2I64VARBPROC) load(userptr, "glUniform2i64vARB"); + glad_glUniform2ui64ARB = (PFNGLUNIFORM2UI64ARBPROC) load(userptr, "glUniform2ui64ARB"); + glad_glUniform2ui64vARB = (PFNGLUNIFORM2UI64VARBPROC) load(userptr, "glUniform2ui64vARB"); + glad_glUniform3i64ARB = (PFNGLUNIFORM3I64ARBPROC) load(userptr, "glUniform3i64ARB"); + glad_glUniform3i64vARB = (PFNGLUNIFORM3I64VARBPROC) load(userptr, "glUniform3i64vARB"); + glad_glUniform3ui64ARB = (PFNGLUNIFORM3UI64ARBPROC) load(userptr, "glUniform3ui64ARB"); + glad_glUniform3ui64vARB = (PFNGLUNIFORM3UI64VARBPROC) load(userptr, "glUniform3ui64vARB"); + glad_glUniform4i64ARB = (PFNGLUNIFORM4I64ARBPROC) load(userptr, "glUniform4i64ARB"); + glad_glUniform4i64vARB = (PFNGLUNIFORM4I64VARBPROC) load(userptr, "glUniform4i64vARB"); + glad_glUniform4ui64ARB = (PFNGLUNIFORM4UI64ARBPROC) load(userptr, "glUniform4ui64ARB"); + glad_glUniform4ui64vARB = (PFNGLUNIFORM4UI64VARBPROC) load(userptr, "glUniform4ui64vARB"); +} +static void glad_gl_load_GL_ARB_instanced_arrays( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_instanced_arrays) return; + glad_glVertexAttribDivisorARB = (PFNGLVERTEXATTRIBDIVISORARBPROC) load(userptr, "glVertexAttribDivisorARB"); +} +static void glad_gl_load_GL_ARB_internalformat_query( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_internalformat_query) return; + glad_glGetInternalformativ = (PFNGLGETINTERNALFORMATIVPROC) load(userptr, "glGetInternalformativ"); +} +static void glad_gl_load_GL_ARB_internalformat_query2( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_internalformat_query2) return; + glad_glGetInternalformati64v = (PFNGLGETINTERNALFORMATI64VPROC) load(userptr, "glGetInternalformati64v"); +} +static void glad_gl_load_GL_ARB_map_buffer_range( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_map_buffer_range) return; + glad_glFlushMappedBufferRange = (PFNGLFLUSHMAPPEDBUFFERRANGEPROC) load(userptr, "glFlushMappedBufferRange"); + glad_glMapBufferRange = (PFNGLMAPBUFFERRANGEPROC) load(userptr, "glMapBufferRange"); +} +static void glad_gl_load_GL_ARB_multi_bind( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_multi_bind) return; + glad_glBindBuffersBase = (PFNGLBINDBUFFERSBASEPROC) load(userptr, "glBindBuffersBase"); + glad_glBindBuffersRange = (PFNGLBINDBUFFERSRANGEPROC) load(userptr, "glBindBuffersRange"); + glad_glBindImageTextures = (PFNGLBINDIMAGETEXTURESPROC) load(userptr, "glBindImageTextures"); + glad_glBindSamplers = (PFNGLBINDSAMPLERSPROC) load(userptr, "glBindSamplers"); + glad_glBindTextures = (PFNGLBINDTEXTURESPROC) load(userptr, "glBindTextures"); + glad_glBindVertexBuffers = (PFNGLBINDVERTEXBUFFERSPROC) load(userptr, "glBindVertexBuffers"); +} +static void glad_gl_load_GL_ARB_multi_draw_indirect( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_multi_draw_indirect) return; + glad_glMultiDrawArraysIndirect = (PFNGLMULTIDRAWARRAYSINDIRECTPROC) load(userptr, "glMultiDrawArraysIndirect"); + glad_glMultiDrawElementsIndirect = (PFNGLMULTIDRAWELEMENTSINDIRECTPROC) load(userptr, "glMultiDrawElementsIndirect"); +} +static void glad_gl_load_GL_ARB_multisample( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_multisample) return; + glad_glSampleCoverageARB = (PFNGLSAMPLECOVERAGEARBPROC) load(userptr, "glSampleCoverageARB"); +} +static void glad_gl_load_GL_ARB_multitexture( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_multitexture) return; + glad_glActiveTextureARB = (PFNGLACTIVETEXTUREARBPROC) load(userptr, "glActiveTextureARB"); + glad_glClientActiveTextureARB = (PFNGLCLIENTACTIVETEXTUREARBPROC) load(userptr, "glClientActiveTextureARB"); + glad_glMultiTexCoord1dARB = (PFNGLMULTITEXCOORD1DARBPROC) load(userptr, "glMultiTexCoord1dARB"); + glad_glMultiTexCoord1dvARB = (PFNGLMULTITEXCOORD1DVARBPROC) load(userptr, "glMultiTexCoord1dvARB"); + glad_glMultiTexCoord1fARB = (PFNGLMULTITEXCOORD1FARBPROC) load(userptr, "glMultiTexCoord1fARB"); + glad_glMultiTexCoord1fvARB = (PFNGLMULTITEXCOORD1FVARBPROC) load(userptr, "glMultiTexCoord1fvARB"); + glad_glMultiTexCoord1iARB = (PFNGLMULTITEXCOORD1IARBPROC) load(userptr, "glMultiTexCoord1iARB"); + glad_glMultiTexCoord1ivARB = (PFNGLMULTITEXCOORD1IVARBPROC) load(userptr, "glMultiTexCoord1ivARB"); + glad_glMultiTexCoord1sARB = (PFNGLMULTITEXCOORD1SARBPROC) load(userptr, "glMultiTexCoord1sARB"); + glad_glMultiTexCoord1svARB = (PFNGLMULTITEXCOORD1SVARBPROC) load(userptr, "glMultiTexCoord1svARB"); + glad_glMultiTexCoord2dARB = (PFNGLMULTITEXCOORD2DARBPROC) load(userptr, "glMultiTexCoord2dARB"); + glad_glMultiTexCoord2dvARB = (PFNGLMULTITEXCOORD2DVARBPROC) load(userptr, "glMultiTexCoord2dvARB"); + glad_glMultiTexCoord2fARB = (PFNGLMULTITEXCOORD2FARBPROC) load(userptr, "glMultiTexCoord2fARB"); + glad_glMultiTexCoord2fvARB = (PFNGLMULTITEXCOORD2FVARBPROC) load(userptr, "glMultiTexCoord2fvARB"); + glad_glMultiTexCoord2iARB = (PFNGLMULTITEXCOORD2IARBPROC) load(userptr, "glMultiTexCoord2iARB"); + glad_glMultiTexCoord2ivARB = (PFNGLMULTITEXCOORD2IVARBPROC) load(userptr, "glMultiTexCoord2ivARB"); + glad_glMultiTexCoord2sARB = (PFNGLMULTITEXCOORD2SARBPROC) load(userptr, "glMultiTexCoord2sARB"); + glad_glMultiTexCoord2svARB = (PFNGLMULTITEXCOORD2SVARBPROC) load(userptr, "glMultiTexCoord2svARB"); + glad_glMultiTexCoord3dARB = (PFNGLMULTITEXCOORD3DARBPROC) load(userptr, "glMultiTexCoord3dARB"); + glad_glMultiTexCoord3dvARB = (PFNGLMULTITEXCOORD3DVARBPROC) load(userptr, "glMultiTexCoord3dvARB"); + glad_glMultiTexCoord3fARB = (PFNGLMULTITEXCOORD3FARBPROC) load(userptr, "glMultiTexCoord3fARB"); + glad_glMultiTexCoord3fvARB = (PFNGLMULTITEXCOORD3FVARBPROC) load(userptr, "glMultiTexCoord3fvARB"); + glad_glMultiTexCoord3iARB = (PFNGLMULTITEXCOORD3IARBPROC) load(userptr, "glMultiTexCoord3iARB"); + glad_glMultiTexCoord3ivARB = (PFNGLMULTITEXCOORD3IVARBPROC) load(userptr, "glMultiTexCoord3ivARB"); + glad_glMultiTexCoord3sARB = (PFNGLMULTITEXCOORD3SARBPROC) load(userptr, "glMultiTexCoord3sARB"); + glad_glMultiTexCoord3svARB = (PFNGLMULTITEXCOORD3SVARBPROC) load(userptr, "glMultiTexCoord3svARB"); + glad_glMultiTexCoord4dARB = (PFNGLMULTITEXCOORD4DARBPROC) load(userptr, "glMultiTexCoord4dARB"); + glad_glMultiTexCoord4dvARB = (PFNGLMULTITEXCOORD4DVARBPROC) load(userptr, "glMultiTexCoord4dvARB"); + glad_glMultiTexCoord4fARB = (PFNGLMULTITEXCOORD4FARBPROC) load(userptr, "glMultiTexCoord4fARB"); + glad_glMultiTexCoord4fvARB = (PFNGLMULTITEXCOORD4FVARBPROC) load(userptr, "glMultiTexCoord4fvARB"); + glad_glMultiTexCoord4iARB = (PFNGLMULTITEXCOORD4IARBPROC) load(userptr, "glMultiTexCoord4iARB"); + glad_glMultiTexCoord4ivARB = (PFNGLMULTITEXCOORD4IVARBPROC) load(userptr, "glMultiTexCoord4ivARB"); + glad_glMultiTexCoord4sARB = (PFNGLMULTITEXCOORD4SARBPROC) load(userptr, "glMultiTexCoord4sARB"); + glad_glMultiTexCoord4svARB = (PFNGLMULTITEXCOORD4SVARBPROC) load(userptr, "glMultiTexCoord4svARB"); +} +static void glad_gl_load_GL_ARB_occlusion_query( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_occlusion_query) return; + glad_glBeginQueryARB = (PFNGLBEGINQUERYARBPROC) load(userptr, "glBeginQueryARB"); + glad_glDeleteQueriesARB = (PFNGLDELETEQUERIESARBPROC) load(userptr, "glDeleteQueriesARB"); + glad_glEndQueryARB = (PFNGLENDQUERYARBPROC) load(userptr, "glEndQueryARB"); + glad_glGenQueriesARB = (PFNGLGENQUERIESARBPROC) load(userptr, "glGenQueriesARB"); + glad_glGetQueryObjectivARB = (PFNGLGETQUERYOBJECTIVARBPROC) load(userptr, "glGetQueryObjectivARB"); + glad_glGetQueryObjectuivARB = (PFNGLGETQUERYOBJECTUIVARBPROC) load(userptr, "glGetQueryObjectuivARB"); + glad_glGetQueryivARB = (PFNGLGETQUERYIVARBPROC) load(userptr, "glGetQueryivARB"); + glad_glIsQueryARB = (PFNGLISQUERYARBPROC) load(userptr, "glIsQueryARB"); +} +static void glad_gl_load_GL_ARB_sample_locations( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_sample_locations) return; + glad_glEvaluateDepthValuesARB = (PFNGLEVALUATEDEPTHVALUESARBPROC) load(userptr, "glEvaluateDepthValuesARB"); + glad_glFramebufferSampleLocationsfvARB = (PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC) load(userptr, "glFramebufferSampleLocationsfvARB"); + glad_glNamedFramebufferSampleLocationsfvARB = (PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC) load(userptr, "glNamedFramebufferSampleLocationsfvARB"); +} +static void glad_gl_load_GL_ARB_sample_shading( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_sample_shading) return; + glad_glMinSampleShadingARB = (PFNGLMINSAMPLESHADINGARBPROC) load(userptr, "glMinSampleShadingARB"); +} +static void glad_gl_load_GL_ARB_shader_atomic_counters( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_shader_atomic_counters) return; + glad_glGetActiveAtomicCounterBufferiv = (PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC) load(userptr, "glGetActiveAtomicCounterBufferiv"); +} +static void glad_gl_load_GL_ARB_shader_image_load_store( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_shader_image_load_store) return; + glad_glBindImageTexture = (PFNGLBINDIMAGETEXTUREPROC) load(userptr, "glBindImageTexture"); + glad_glMemoryBarrier = (PFNGLMEMORYBARRIERPROC) load(userptr, "glMemoryBarrier"); +} +static void glad_gl_load_GL_ARB_shader_objects( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_shader_objects) return; + glad_glAttachObjectARB = (PFNGLATTACHOBJECTARBPROC) load(userptr, "glAttachObjectARB"); + glad_glCompileShaderARB = (PFNGLCOMPILESHADERARBPROC) load(userptr, "glCompileShaderARB"); + glad_glCreateProgramObjectARB = (PFNGLCREATEPROGRAMOBJECTARBPROC) load(userptr, "glCreateProgramObjectARB"); + glad_glCreateShaderObjectARB = (PFNGLCREATESHADEROBJECTARBPROC) load(userptr, "glCreateShaderObjectARB"); + glad_glDeleteObjectARB = (PFNGLDELETEOBJECTARBPROC) load(userptr, "glDeleteObjectARB"); + glad_glDetachObjectARB = (PFNGLDETACHOBJECTARBPROC) load(userptr, "glDetachObjectARB"); + glad_glGetActiveUniformARB = (PFNGLGETACTIVEUNIFORMARBPROC) load(userptr, "glGetActiveUniformARB"); + glad_glGetAttachedObjectsARB = (PFNGLGETATTACHEDOBJECTSARBPROC) load(userptr, "glGetAttachedObjectsARB"); + glad_glGetHandleARB = (PFNGLGETHANDLEARBPROC) load(userptr, "glGetHandleARB"); + glad_glGetInfoLogARB = (PFNGLGETINFOLOGARBPROC) load(userptr, "glGetInfoLogARB"); + glad_glGetObjectParameterfvARB = (PFNGLGETOBJECTPARAMETERFVARBPROC) load(userptr, "glGetObjectParameterfvARB"); + glad_glGetObjectParameterivARB = (PFNGLGETOBJECTPARAMETERIVARBPROC) load(userptr, "glGetObjectParameterivARB"); + glad_glGetShaderSourceARB = (PFNGLGETSHADERSOURCEARBPROC) load(userptr, "glGetShaderSourceARB"); + glad_glGetUniformLocationARB = (PFNGLGETUNIFORMLOCATIONARBPROC) load(userptr, "glGetUniformLocationARB"); + glad_glGetUniformfvARB = (PFNGLGETUNIFORMFVARBPROC) load(userptr, "glGetUniformfvARB"); + glad_glGetUniformivARB = (PFNGLGETUNIFORMIVARBPROC) load(userptr, "glGetUniformivARB"); + glad_glLinkProgramARB = (PFNGLLINKPROGRAMARBPROC) load(userptr, "glLinkProgramARB"); + glad_glShaderSourceARB = (PFNGLSHADERSOURCEARBPROC) load(userptr, "glShaderSourceARB"); + glad_glUniform1fARB = (PFNGLUNIFORM1FARBPROC) load(userptr, "glUniform1fARB"); + glad_glUniform1fvARB = (PFNGLUNIFORM1FVARBPROC) load(userptr, "glUniform1fvARB"); + glad_glUniform1iARB = (PFNGLUNIFORM1IARBPROC) load(userptr, "glUniform1iARB"); + glad_glUniform1ivARB = (PFNGLUNIFORM1IVARBPROC) load(userptr, "glUniform1ivARB"); + glad_glUniform2fARB = (PFNGLUNIFORM2FARBPROC) load(userptr, "glUniform2fARB"); + glad_glUniform2fvARB = (PFNGLUNIFORM2FVARBPROC) load(userptr, "glUniform2fvARB"); + glad_glUniform2iARB = (PFNGLUNIFORM2IARBPROC) load(userptr, "glUniform2iARB"); + glad_glUniform2ivARB = (PFNGLUNIFORM2IVARBPROC) load(userptr, "glUniform2ivARB"); + glad_glUniform3fARB = (PFNGLUNIFORM3FARBPROC) load(userptr, "glUniform3fARB"); + glad_glUniform3fvARB = (PFNGLUNIFORM3FVARBPROC) load(userptr, "glUniform3fvARB"); + glad_glUniform3iARB = (PFNGLUNIFORM3IARBPROC) load(userptr, "glUniform3iARB"); + glad_glUniform3ivARB = (PFNGLUNIFORM3IVARBPROC) load(userptr, "glUniform3ivARB"); + glad_glUniform4fARB = (PFNGLUNIFORM4FARBPROC) load(userptr, "glUniform4fARB"); + glad_glUniform4fvARB = (PFNGLUNIFORM4FVARBPROC) load(userptr, "glUniform4fvARB"); + glad_glUniform4iARB = (PFNGLUNIFORM4IARBPROC) load(userptr, "glUniform4iARB"); + glad_glUniform4ivARB = (PFNGLUNIFORM4IVARBPROC) load(userptr, "glUniform4ivARB"); + glad_glUniformMatrix2fvARB = (PFNGLUNIFORMMATRIX2FVARBPROC) load(userptr, "glUniformMatrix2fvARB"); + glad_glUniformMatrix3fvARB = (PFNGLUNIFORMMATRIX3FVARBPROC) load(userptr, "glUniformMatrix3fvARB"); + glad_glUniformMatrix4fvARB = (PFNGLUNIFORMMATRIX4FVARBPROC) load(userptr, "glUniformMatrix4fvARB"); + glad_glUseProgramObjectARB = (PFNGLUSEPROGRAMOBJECTARBPROC) load(userptr, "glUseProgramObjectARB"); + glad_glValidateProgramARB = (PFNGLVALIDATEPROGRAMARBPROC) load(userptr, "glValidateProgramARB"); +} +static void glad_gl_load_GL_ARB_shader_storage_buffer_object( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_shader_storage_buffer_object) return; + glad_glShaderStorageBlockBinding = (PFNGLSHADERSTORAGEBLOCKBINDINGPROC) load(userptr, "glShaderStorageBlockBinding"); +} +static void glad_gl_load_GL_ARB_shading_language_include( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_shading_language_include) return; + glad_glCompileShaderIncludeARB = (PFNGLCOMPILESHADERINCLUDEARBPROC) load(userptr, "glCompileShaderIncludeARB"); + glad_glDeleteNamedStringARB = (PFNGLDELETENAMEDSTRINGARBPROC) load(userptr, "glDeleteNamedStringARB"); + glad_glGetNamedStringARB = (PFNGLGETNAMEDSTRINGARBPROC) load(userptr, "glGetNamedStringARB"); + glad_glGetNamedStringivARB = (PFNGLGETNAMEDSTRINGIVARBPROC) load(userptr, "glGetNamedStringivARB"); + glad_glIsNamedStringARB = (PFNGLISNAMEDSTRINGARBPROC) load(userptr, "glIsNamedStringARB"); + glad_glNamedStringARB = (PFNGLNAMEDSTRINGARBPROC) load(userptr, "glNamedStringARB"); +} +static void glad_gl_load_GL_ARB_tessellation_shader( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_tessellation_shader) return; + glad_glPatchParameterfv = (PFNGLPATCHPARAMETERFVPROC) load(userptr, "glPatchParameterfv"); + glad_glPatchParameteri = (PFNGLPATCHPARAMETERIPROC) load(userptr, "glPatchParameteri"); +} +static void glad_gl_load_GL_ARB_texture_compression( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_texture_compression) return; + glad_glCompressedTexImage1DARB = (PFNGLCOMPRESSEDTEXIMAGE1DARBPROC) load(userptr, "glCompressedTexImage1DARB"); + glad_glCompressedTexImage2DARB = (PFNGLCOMPRESSEDTEXIMAGE2DARBPROC) load(userptr, "glCompressedTexImage2DARB"); + glad_glCompressedTexImage3DARB = (PFNGLCOMPRESSEDTEXIMAGE3DARBPROC) load(userptr, "glCompressedTexImage3DARB"); + glad_glCompressedTexSubImage1DARB = (PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC) load(userptr, "glCompressedTexSubImage1DARB"); + glad_glCompressedTexSubImage2DARB = (PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC) load(userptr, "glCompressedTexSubImage2DARB"); + glad_glCompressedTexSubImage3DARB = (PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC) load(userptr, "glCompressedTexSubImage3DARB"); + glad_glGetCompressedTexImageARB = (PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) load(userptr, "glGetCompressedTexImageARB"); +} +static void glad_gl_load_GL_ARB_texture_multisample( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_texture_multisample) return; + glad_glGetMultisamplefv = (PFNGLGETMULTISAMPLEFVPROC) load(userptr, "glGetMultisamplefv"); + glad_glSampleMaski = (PFNGLSAMPLEMASKIPROC) load(userptr, "glSampleMaski"); + glad_glTexImage2DMultisample = (PFNGLTEXIMAGE2DMULTISAMPLEPROC) load(userptr, "glTexImage2DMultisample"); + glad_glTexImage3DMultisample = (PFNGLTEXIMAGE3DMULTISAMPLEPROC) load(userptr, "glTexImage3DMultisample"); +} +static void glad_gl_load_GL_ARB_texture_storage( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_texture_storage) return; + glad_glTexStorage1D = (PFNGLTEXSTORAGE1DPROC) load(userptr, "glTexStorage1D"); + glad_glTexStorage2D = (PFNGLTEXSTORAGE2DPROC) load(userptr, "glTexStorage2D"); + glad_glTexStorage3D = (PFNGLTEXSTORAGE3DPROC) load(userptr, "glTexStorage3D"); +} +static void glad_gl_load_GL_ARB_texture_view( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_texture_view) return; + glad_glTextureView = (PFNGLTEXTUREVIEWPROC) load(userptr, "glTextureView"); +} +static void glad_gl_load_GL_ARB_timer_query( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_timer_query) return; + glad_glGetQueryObjecti64v = (PFNGLGETQUERYOBJECTI64VPROC) load(userptr, "glGetQueryObjecti64v"); + glad_glGetQueryObjectui64v = (PFNGLGETQUERYOBJECTUI64VPROC) load(userptr, "glGetQueryObjectui64v"); + glad_glQueryCounter = (PFNGLQUERYCOUNTERPROC) load(userptr, "glQueryCounter"); +} +static void glad_gl_load_GL_ARB_transpose_matrix( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_transpose_matrix) return; + glad_glLoadTransposeMatrixdARB = (PFNGLLOADTRANSPOSEMATRIXDARBPROC) load(userptr, "glLoadTransposeMatrixdARB"); + glad_glLoadTransposeMatrixfARB = (PFNGLLOADTRANSPOSEMATRIXFARBPROC) load(userptr, "glLoadTransposeMatrixfARB"); + glad_glMultTransposeMatrixdARB = (PFNGLMULTTRANSPOSEMATRIXDARBPROC) load(userptr, "glMultTransposeMatrixdARB"); + glad_glMultTransposeMatrixfARB = (PFNGLMULTTRANSPOSEMATRIXFARBPROC) load(userptr, "glMultTransposeMatrixfARB"); +} +static void glad_gl_load_GL_ARB_uniform_buffer_object( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_uniform_buffer_object) return; + glad_glBindBufferBase = (PFNGLBINDBUFFERBASEPROC) load(userptr, "glBindBufferBase"); + glad_glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC) load(userptr, "glBindBufferRange"); + glad_glGetActiveUniformBlockName = (PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) load(userptr, "glGetActiveUniformBlockName"); + glad_glGetActiveUniformBlockiv = (PFNGLGETACTIVEUNIFORMBLOCKIVPROC) load(userptr, "glGetActiveUniformBlockiv"); + glad_glGetActiveUniformName = (PFNGLGETACTIVEUNIFORMNAMEPROC) load(userptr, "glGetActiveUniformName"); + glad_glGetActiveUniformsiv = (PFNGLGETACTIVEUNIFORMSIVPROC) load(userptr, "glGetActiveUniformsiv"); + glad_glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC) load(userptr, "glGetIntegeri_v"); + glad_glGetUniformBlockIndex = (PFNGLGETUNIFORMBLOCKINDEXPROC) load(userptr, "glGetUniformBlockIndex"); + glad_glGetUniformIndices = (PFNGLGETUNIFORMINDICESPROC) load(userptr, "glGetUniformIndices"); + glad_glUniformBlockBinding = (PFNGLUNIFORMBLOCKBINDINGPROC) load(userptr, "glUniformBlockBinding"); +} +static void glad_gl_load_GL_ARB_vertex_array_object( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_vertex_array_object) return; + glad_glBindVertexArray = (PFNGLBINDVERTEXARRAYPROC) load(userptr, "glBindVertexArray"); + glad_glDeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSPROC) load(userptr, "glDeleteVertexArrays"); + glad_glGenVertexArrays = (PFNGLGENVERTEXARRAYSPROC) load(userptr, "glGenVertexArrays"); + glad_glIsVertexArray = (PFNGLISVERTEXARRAYPROC) load(userptr, "glIsVertexArray"); +} +static void glad_gl_load_GL_ARB_vertex_attrib_binding( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_vertex_attrib_binding) return; + glad_glBindVertexBuffer = (PFNGLBINDVERTEXBUFFERPROC) load(userptr, "glBindVertexBuffer"); + glad_glVertexAttribBinding = (PFNGLVERTEXATTRIBBINDINGPROC) load(userptr, "glVertexAttribBinding"); + glad_glVertexAttribFormat = (PFNGLVERTEXATTRIBFORMATPROC) load(userptr, "glVertexAttribFormat"); + glad_glVertexAttribIFormat = (PFNGLVERTEXATTRIBIFORMATPROC) load(userptr, "glVertexAttribIFormat"); + glad_glVertexAttribLFormat = (PFNGLVERTEXATTRIBLFORMATPROC) load(userptr, "glVertexAttribLFormat"); + glad_glVertexBindingDivisor = (PFNGLVERTEXBINDINGDIVISORPROC) load(userptr, "glVertexBindingDivisor"); +} +static void glad_gl_load_GL_ARB_vertex_buffer_object( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_vertex_buffer_object) return; + glad_glBindBufferARB = (PFNGLBINDBUFFERARBPROC) load(userptr, "glBindBufferARB"); + glad_glBufferDataARB = (PFNGLBUFFERDATAARBPROC) load(userptr, "glBufferDataARB"); + glad_glBufferSubDataARB = (PFNGLBUFFERSUBDATAARBPROC) load(userptr, "glBufferSubDataARB"); + glad_glDeleteBuffersARB = (PFNGLDELETEBUFFERSARBPROC) load(userptr, "glDeleteBuffersARB"); + glad_glGenBuffersARB = (PFNGLGENBUFFERSARBPROC) load(userptr, "glGenBuffersARB"); + glad_glGetBufferParameterivARB = (PFNGLGETBUFFERPARAMETERIVARBPROC) load(userptr, "glGetBufferParameterivARB"); + glad_glGetBufferPointervARB = (PFNGLGETBUFFERPOINTERVARBPROC) load(userptr, "glGetBufferPointervARB"); + glad_glGetBufferSubDataARB = (PFNGLGETBUFFERSUBDATAARBPROC) load(userptr, "glGetBufferSubDataARB"); + glad_glIsBufferARB = (PFNGLISBUFFERARBPROC) load(userptr, "glIsBufferARB"); + glad_glMapBufferARB = (PFNGLMAPBUFFERARBPROC) load(userptr, "glMapBufferARB"); + glad_glUnmapBufferARB = (PFNGLUNMAPBUFFERARBPROC) load(userptr, "glUnmapBufferARB"); +} +static void glad_gl_load_GL_ARB_vertex_program( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_vertex_program) return; + glad_glBindProgramARB = (PFNGLBINDPROGRAMARBPROC) load(userptr, "glBindProgramARB"); + glad_glDeleteProgramsARB = (PFNGLDELETEPROGRAMSARBPROC) load(userptr, "glDeleteProgramsARB"); + glad_glDisableVertexAttribArrayARB = (PFNGLDISABLEVERTEXATTRIBARRAYARBPROC) load(userptr, "glDisableVertexAttribArrayARB"); + glad_glEnableVertexAttribArrayARB = (PFNGLENABLEVERTEXATTRIBARRAYARBPROC) load(userptr, "glEnableVertexAttribArrayARB"); + glad_glGenProgramsARB = (PFNGLGENPROGRAMSARBPROC) load(userptr, "glGenProgramsARB"); + glad_glGetProgramEnvParameterdvARB = (PFNGLGETPROGRAMENVPARAMETERDVARBPROC) load(userptr, "glGetProgramEnvParameterdvARB"); + glad_glGetProgramEnvParameterfvARB = (PFNGLGETPROGRAMENVPARAMETERFVARBPROC) load(userptr, "glGetProgramEnvParameterfvARB"); + glad_glGetProgramLocalParameterdvARB = (PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC) load(userptr, "glGetProgramLocalParameterdvARB"); + glad_glGetProgramLocalParameterfvARB = (PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC) load(userptr, "glGetProgramLocalParameterfvARB"); + glad_glGetProgramStringARB = (PFNGLGETPROGRAMSTRINGARBPROC) load(userptr, "glGetProgramStringARB"); + glad_glGetProgramivARB = (PFNGLGETPROGRAMIVARBPROC) load(userptr, "glGetProgramivARB"); + glad_glGetVertexAttribPointervARB = (PFNGLGETVERTEXATTRIBPOINTERVARBPROC) load(userptr, "glGetVertexAttribPointervARB"); + glad_glGetVertexAttribdvARB = (PFNGLGETVERTEXATTRIBDVARBPROC) load(userptr, "glGetVertexAttribdvARB"); + glad_glGetVertexAttribfvARB = (PFNGLGETVERTEXATTRIBFVARBPROC) load(userptr, "glGetVertexAttribfvARB"); + glad_glGetVertexAttribivARB = (PFNGLGETVERTEXATTRIBIVARBPROC) load(userptr, "glGetVertexAttribivARB"); + glad_glIsProgramARB = (PFNGLISPROGRAMARBPROC) load(userptr, "glIsProgramARB"); + glad_glProgramEnvParameter4dARB = (PFNGLPROGRAMENVPARAMETER4DARBPROC) load(userptr, "glProgramEnvParameter4dARB"); + glad_glProgramEnvParameter4dvARB = (PFNGLPROGRAMENVPARAMETER4DVARBPROC) load(userptr, "glProgramEnvParameter4dvARB"); + glad_glProgramEnvParameter4fARB = (PFNGLPROGRAMENVPARAMETER4FARBPROC) load(userptr, "glProgramEnvParameter4fARB"); + glad_glProgramEnvParameter4fvARB = (PFNGLPROGRAMENVPARAMETER4FVARBPROC) load(userptr, "glProgramEnvParameter4fvARB"); + glad_glProgramLocalParameter4dARB = (PFNGLPROGRAMLOCALPARAMETER4DARBPROC) load(userptr, "glProgramLocalParameter4dARB"); + glad_glProgramLocalParameter4dvARB = (PFNGLPROGRAMLOCALPARAMETER4DVARBPROC) load(userptr, "glProgramLocalParameter4dvARB"); + glad_glProgramLocalParameter4fARB = (PFNGLPROGRAMLOCALPARAMETER4FARBPROC) load(userptr, "glProgramLocalParameter4fARB"); + glad_glProgramLocalParameter4fvARB = (PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) load(userptr, "glProgramLocalParameter4fvARB"); + glad_glProgramStringARB = (PFNGLPROGRAMSTRINGARBPROC) load(userptr, "glProgramStringARB"); + glad_glVertexAttrib1dARB = (PFNGLVERTEXATTRIB1DARBPROC) load(userptr, "glVertexAttrib1dARB"); + glad_glVertexAttrib1dvARB = (PFNGLVERTEXATTRIB1DVARBPROC) load(userptr, "glVertexAttrib1dvARB"); + glad_glVertexAttrib1fARB = (PFNGLVERTEXATTRIB1FARBPROC) load(userptr, "glVertexAttrib1fARB"); + glad_glVertexAttrib1fvARB = (PFNGLVERTEXATTRIB1FVARBPROC) load(userptr, "glVertexAttrib1fvARB"); + glad_glVertexAttrib1sARB = (PFNGLVERTEXATTRIB1SARBPROC) load(userptr, "glVertexAttrib1sARB"); + glad_glVertexAttrib1svARB = (PFNGLVERTEXATTRIB1SVARBPROC) load(userptr, "glVertexAttrib1svARB"); + glad_glVertexAttrib2dARB = (PFNGLVERTEXATTRIB2DARBPROC) load(userptr, "glVertexAttrib2dARB"); + glad_glVertexAttrib2dvARB = (PFNGLVERTEXATTRIB2DVARBPROC) load(userptr, "glVertexAttrib2dvARB"); + glad_glVertexAttrib2fARB = (PFNGLVERTEXATTRIB2FARBPROC) load(userptr, "glVertexAttrib2fARB"); + glad_glVertexAttrib2fvARB = (PFNGLVERTEXATTRIB2FVARBPROC) load(userptr, "glVertexAttrib2fvARB"); + glad_glVertexAttrib2sARB = (PFNGLVERTEXATTRIB2SARBPROC) load(userptr, "glVertexAttrib2sARB"); + glad_glVertexAttrib2svARB = (PFNGLVERTEXATTRIB2SVARBPROC) load(userptr, "glVertexAttrib2svARB"); + glad_glVertexAttrib3dARB = (PFNGLVERTEXATTRIB3DARBPROC) load(userptr, "glVertexAttrib3dARB"); + glad_glVertexAttrib3dvARB = (PFNGLVERTEXATTRIB3DVARBPROC) load(userptr, "glVertexAttrib3dvARB"); + glad_glVertexAttrib3fARB = (PFNGLVERTEXATTRIB3FARBPROC) load(userptr, "glVertexAttrib3fARB"); + glad_glVertexAttrib3fvARB = (PFNGLVERTEXATTRIB3FVARBPROC) load(userptr, "glVertexAttrib3fvARB"); + glad_glVertexAttrib3sARB = (PFNGLVERTEXATTRIB3SARBPROC) load(userptr, "glVertexAttrib3sARB"); + glad_glVertexAttrib3svARB = (PFNGLVERTEXATTRIB3SVARBPROC) load(userptr, "glVertexAttrib3svARB"); + glad_glVertexAttrib4NbvARB = (PFNGLVERTEXATTRIB4NBVARBPROC) load(userptr, "glVertexAttrib4NbvARB"); + glad_glVertexAttrib4NivARB = (PFNGLVERTEXATTRIB4NIVARBPROC) load(userptr, "glVertexAttrib4NivARB"); + glad_glVertexAttrib4NsvARB = (PFNGLVERTEXATTRIB4NSVARBPROC) load(userptr, "glVertexAttrib4NsvARB"); + glad_glVertexAttrib4NubARB = (PFNGLVERTEXATTRIB4NUBARBPROC) load(userptr, "glVertexAttrib4NubARB"); + glad_glVertexAttrib4NubvARB = (PFNGLVERTEXATTRIB4NUBVARBPROC) load(userptr, "glVertexAttrib4NubvARB"); + glad_glVertexAttrib4NuivARB = (PFNGLVERTEXATTRIB4NUIVARBPROC) load(userptr, "glVertexAttrib4NuivARB"); + glad_glVertexAttrib4NusvARB = (PFNGLVERTEXATTRIB4NUSVARBPROC) load(userptr, "glVertexAttrib4NusvARB"); + glad_glVertexAttrib4bvARB = (PFNGLVERTEXATTRIB4BVARBPROC) load(userptr, "glVertexAttrib4bvARB"); + glad_glVertexAttrib4dARB = (PFNGLVERTEXATTRIB4DARBPROC) load(userptr, "glVertexAttrib4dARB"); + glad_glVertexAttrib4dvARB = (PFNGLVERTEXATTRIB4DVARBPROC) load(userptr, "glVertexAttrib4dvARB"); + glad_glVertexAttrib4fARB = (PFNGLVERTEXATTRIB4FARBPROC) load(userptr, "glVertexAttrib4fARB"); + glad_glVertexAttrib4fvARB = (PFNGLVERTEXATTRIB4FVARBPROC) load(userptr, "glVertexAttrib4fvARB"); + glad_glVertexAttrib4ivARB = (PFNGLVERTEXATTRIB4IVARBPROC) load(userptr, "glVertexAttrib4ivARB"); + glad_glVertexAttrib4sARB = (PFNGLVERTEXATTRIB4SARBPROC) load(userptr, "glVertexAttrib4sARB"); + glad_glVertexAttrib4svARB = (PFNGLVERTEXATTRIB4SVARBPROC) load(userptr, "glVertexAttrib4svARB"); + glad_glVertexAttrib4ubvARB = (PFNGLVERTEXATTRIB4UBVARBPROC) load(userptr, "glVertexAttrib4ubvARB"); + glad_glVertexAttrib4uivARB = (PFNGLVERTEXATTRIB4UIVARBPROC) load(userptr, "glVertexAttrib4uivARB"); + glad_glVertexAttrib4usvARB = (PFNGLVERTEXATTRIB4USVARBPROC) load(userptr, "glVertexAttrib4usvARB"); + glad_glVertexAttribPointerARB = (PFNGLVERTEXATTRIBPOINTERARBPROC) load(userptr, "glVertexAttribPointerARB"); +} +static void glad_gl_load_GL_ARB_vertex_shader( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_ARB_vertex_shader) return; + glad_glBindAttribLocationARB = (PFNGLBINDATTRIBLOCATIONARBPROC) load(userptr, "glBindAttribLocationARB"); + glad_glDisableVertexAttribArrayARB = (PFNGLDISABLEVERTEXATTRIBARRAYARBPROC) load(userptr, "glDisableVertexAttribArrayARB"); + glad_glEnableVertexAttribArrayARB = (PFNGLENABLEVERTEXATTRIBARRAYARBPROC) load(userptr, "glEnableVertexAttribArrayARB"); + glad_glGetActiveAttribARB = (PFNGLGETACTIVEATTRIBARBPROC) load(userptr, "glGetActiveAttribARB"); + glad_glGetAttribLocationARB = (PFNGLGETATTRIBLOCATIONARBPROC) load(userptr, "glGetAttribLocationARB"); + glad_glGetVertexAttribPointervARB = (PFNGLGETVERTEXATTRIBPOINTERVARBPROC) load(userptr, "glGetVertexAttribPointervARB"); + glad_glGetVertexAttribdvARB = (PFNGLGETVERTEXATTRIBDVARBPROC) load(userptr, "glGetVertexAttribdvARB"); + glad_glGetVertexAttribfvARB = (PFNGLGETVERTEXATTRIBFVARBPROC) load(userptr, "glGetVertexAttribfvARB"); + glad_glGetVertexAttribivARB = (PFNGLGETVERTEXATTRIBIVARBPROC) load(userptr, "glGetVertexAttribivARB"); + glad_glVertexAttrib1dARB = (PFNGLVERTEXATTRIB1DARBPROC) load(userptr, "glVertexAttrib1dARB"); + glad_glVertexAttrib1dvARB = (PFNGLVERTEXATTRIB1DVARBPROC) load(userptr, "glVertexAttrib1dvARB"); + glad_glVertexAttrib1fARB = (PFNGLVERTEXATTRIB1FARBPROC) load(userptr, "glVertexAttrib1fARB"); + glad_glVertexAttrib1fvARB = (PFNGLVERTEXATTRIB1FVARBPROC) load(userptr, "glVertexAttrib1fvARB"); + glad_glVertexAttrib1sARB = (PFNGLVERTEXATTRIB1SARBPROC) load(userptr, "glVertexAttrib1sARB"); + glad_glVertexAttrib1svARB = (PFNGLVERTEXATTRIB1SVARBPROC) load(userptr, "glVertexAttrib1svARB"); + glad_glVertexAttrib2dARB = (PFNGLVERTEXATTRIB2DARBPROC) load(userptr, "glVertexAttrib2dARB"); + glad_glVertexAttrib2dvARB = (PFNGLVERTEXATTRIB2DVARBPROC) load(userptr, "glVertexAttrib2dvARB"); + glad_glVertexAttrib2fARB = (PFNGLVERTEXATTRIB2FARBPROC) load(userptr, "glVertexAttrib2fARB"); + glad_glVertexAttrib2fvARB = (PFNGLVERTEXATTRIB2FVARBPROC) load(userptr, "glVertexAttrib2fvARB"); + glad_glVertexAttrib2sARB = (PFNGLVERTEXATTRIB2SARBPROC) load(userptr, "glVertexAttrib2sARB"); + glad_glVertexAttrib2svARB = (PFNGLVERTEXATTRIB2SVARBPROC) load(userptr, "glVertexAttrib2svARB"); + glad_glVertexAttrib3dARB = (PFNGLVERTEXATTRIB3DARBPROC) load(userptr, "glVertexAttrib3dARB"); + glad_glVertexAttrib3dvARB = (PFNGLVERTEXATTRIB3DVARBPROC) load(userptr, "glVertexAttrib3dvARB"); + glad_glVertexAttrib3fARB = (PFNGLVERTEXATTRIB3FARBPROC) load(userptr, "glVertexAttrib3fARB"); + glad_glVertexAttrib3fvARB = (PFNGLVERTEXATTRIB3FVARBPROC) load(userptr, "glVertexAttrib3fvARB"); + glad_glVertexAttrib3sARB = (PFNGLVERTEXATTRIB3SARBPROC) load(userptr, "glVertexAttrib3sARB"); + glad_glVertexAttrib3svARB = (PFNGLVERTEXATTRIB3SVARBPROC) load(userptr, "glVertexAttrib3svARB"); + glad_glVertexAttrib4NbvARB = (PFNGLVERTEXATTRIB4NBVARBPROC) load(userptr, "glVertexAttrib4NbvARB"); + glad_glVertexAttrib4NivARB = (PFNGLVERTEXATTRIB4NIVARBPROC) load(userptr, "glVertexAttrib4NivARB"); + glad_glVertexAttrib4NsvARB = (PFNGLVERTEXATTRIB4NSVARBPROC) load(userptr, "glVertexAttrib4NsvARB"); + glad_glVertexAttrib4NubARB = (PFNGLVERTEXATTRIB4NUBARBPROC) load(userptr, "glVertexAttrib4NubARB"); + glad_glVertexAttrib4NubvARB = (PFNGLVERTEXATTRIB4NUBVARBPROC) load(userptr, "glVertexAttrib4NubvARB"); + glad_glVertexAttrib4NuivARB = (PFNGLVERTEXATTRIB4NUIVARBPROC) load(userptr, "glVertexAttrib4NuivARB"); + glad_glVertexAttrib4NusvARB = (PFNGLVERTEXATTRIB4NUSVARBPROC) load(userptr, "glVertexAttrib4NusvARB"); + glad_glVertexAttrib4bvARB = (PFNGLVERTEXATTRIB4BVARBPROC) load(userptr, "glVertexAttrib4bvARB"); + glad_glVertexAttrib4dARB = (PFNGLVERTEXATTRIB4DARBPROC) load(userptr, "glVertexAttrib4dARB"); + glad_glVertexAttrib4dvARB = (PFNGLVERTEXATTRIB4DVARBPROC) load(userptr, "glVertexAttrib4dvARB"); + glad_glVertexAttrib4fARB = (PFNGLVERTEXATTRIB4FARBPROC) load(userptr, "glVertexAttrib4fARB"); + glad_glVertexAttrib4fvARB = (PFNGLVERTEXATTRIB4FVARBPROC) load(userptr, "glVertexAttrib4fvARB"); + glad_glVertexAttrib4ivARB = (PFNGLVERTEXATTRIB4IVARBPROC) load(userptr, "glVertexAttrib4ivARB"); + glad_glVertexAttrib4sARB = (PFNGLVERTEXATTRIB4SARBPROC) load(userptr, "glVertexAttrib4sARB"); + glad_glVertexAttrib4svARB = (PFNGLVERTEXATTRIB4SVARBPROC) load(userptr, "glVertexAttrib4svARB"); + glad_glVertexAttrib4ubvARB = (PFNGLVERTEXATTRIB4UBVARBPROC) load(userptr, "glVertexAttrib4ubvARB"); + glad_glVertexAttrib4uivARB = (PFNGLVERTEXATTRIB4UIVARBPROC) load(userptr, "glVertexAttrib4uivARB"); + glad_glVertexAttrib4usvARB = (PFNGLVERTEXATTRIB4USVARBPROC) load(userptr, "glVertexAttrib4usvARB"); + glad_glVertexAttribPointerARB = (PFNGLVERTEXATTRIBPOINTERARBPROC) load(userptr, "glVertexAttribPointerARB"); +} +static void glad_gl_load_GL_EXT_fog_coord( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_EXT_fog_coord) return; + glad_glFogCoordPointerEXT = (PFNGLFOGCOORDPOINTEREXTPROC) load(userptr, "glFogCoordPointerEXT"); + glad_glFogCoorddEXT = (PFNGLFOGCOORDDEXTPROC) load(userptr, "glFogCoorddEXT"); + glad_glFogCoorddvEXT = (PFNGLFOGCOORDDVEXTPROC) load(userptr, "glFogCoorddvEXT"); + glad_glFogCoordfEXT = (PFNGLFOGCOORDFEXTPROC) load(userptr, "glFogCoordfEXT"); + glad_glFogCoordfvEXT = (PFNGLFOGCOORDFVEXTPROC) load(userptr, "glFogCoordfvEXT"); +} +static void glad_gl_load_GL_EXT_framebuffer_blit( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_EXT_framebuffer_blit) return; + glad_glBlitFramebufferEXT = (PFNGLBLITFRAMEBUFFEREXTPROC) load(userptr, "glBlitFramebufferEXT"); +} +static void glad_gl_load_GL_EXT_framebuffer_multisample( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_EXT_framebuffer_multisample) return; + glad_glRenderbufferStorageMultisampleEXT = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) load(userptr, "glRenderbufferStorageMultisampleEXT"); +} +static void glad_gl_load_GL_EXT_framebuffer_object( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_EXT_framebuffer_object) return; + glad_glBindFramebufferEXT = (PFNGLBINDFRAMEBUFFEREXTPROC) load(userptr, "glBindFramebufferEXT"); + glad_glBindRenderbufferEXT = (PFNGLBINDRENDERBUFFEREXTPROC) load(userptr, "glBindRenderbufferEXT"); + glad_glCheckFramebufferStatusEXT = (PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC) load(userptr, "glCheckFramebufferStatusEXT"); + glad_glDeleteFramebuffersEXT = (PFNGLDELETEFRAMEBUFFERSEXTPROC) load(userptr, "glDeleteFramebuffersEXT"); + glad_glDeleteRenderbuffersEXT = (PFNGLDELETERENDERBUFFERSEXTPROC) load(userptr, "glDeleteRenderbuffersEXT"); + glad_glFramebufferRenderbufferEXT = (PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC) load(userptr, "glFramebufferRenderbufferEXT"); + glad_glFramebufferTexture1DEXT = (PFNGLFRAMEBUFFERTEXTURE1DEXTPROC) load(userptr, "glFramebufferTexture1DEXT"); + glad_glFramebufferTexture2DEXT = (PFNGLFRAMEBUFFERTEXTURE2DEXTPROC) load(userptr, "glFramebufferTexture2DEXT"); + glad_glFramebufferTexture3DEXT = (PFNGLFRAMEBUFFERTEXTURE3DEXTPROC) load(userptr, "glFramebufferTexture3DEXT"); + glad_glGenFramebuffersEXT = (PFNGLGENFRAMEBUFFERSEXTPROC) load(userptr, "glGenFramebuffersEXT"); + glad_glGenRenderbuffersEXT = (PFNGLGENRENDERBUFFERSEXTPROC) load(userptr, "glGenRenderbuffersEXT"); + glad_glGenerateMipmapEXT = (PFNGLGENERATEMIPMAPEXTPROC) load(userptr, "glGenerateMipmapEXT"); + glad_glGetFramebufferAttachmentParameterivEXT = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) load(userptr, "glGetFramebufferAttachmentParameterivEXT"); + glad_glGetRenderbufferParameterivEXT = (PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC) load(userptr, "glGetRenderbufferParameterivEXT"); + glad_glIsFramebufferEXT = (PFNGLISFRAMEBUFFEREXTPROC) load(userptr, "glIsFramebufferEXT"); + glad_glIsRenderbufferEXT = (PFNGLISRENDERBUFFEREXTPROC) load(userptr, "glIsRenderbufferEXT"); + glad_glRenderbufferStorageEXT = (PFNGLRENDERBUFFERSTORAGEEXTPROC) load(userptr, "glRenderbufferStorageEXT"); +} +static void glad_gl_load_GL_OES_fixed_point( GLADuserptrloadfunc load, void* userptr) { + if(!GLAD_GL_OES_fixed_point) return; + glad_glAccumxOES = (PFNGLACCUMXOESPROC) load(userptr, "glAccumxOES"); + glad_glAlphaFuncxOES = (PFNGLALPHAFUNCXOESPROC) load(userptr, "glAlphaFuncxOES"); + glad_glBitmapxOES = (PFNGLBITMAPXOESPROC) load(userptr, "glBitmapxOES"); + glad_glBlendColorxOES = (PFNGLBLENDCOLORXOESPROC) load(userptr, "glBlendColorxOES"); + glad_glClearAccumxOES = (PFNGLCLEARACCUMXOESPROC) load(userptr, "glClearAccumxOES"); + glad_glClearColorxOES = (PFNGLCLEARCOLORXOESPROC) load(userptr, "glClearColorxOES"); + glad_glClearDepthxOES = (PFNGLCLEARDEPTHXOESPROC) load(userptr, "glClearDepthxOES"); + glad_glClipPlanexOES = (PFNGLCLIPPLANEXOESPROC) load(userptr, "glClipPlanexOES"); + glad_glColor3xOES = (PFNGLCOLOR3XOESPROC) load(userptr, "glColor3xOES"); + glad_glColor3xvOES = (PFNGLCOLOR3XVOESPROC) load(userptr, "glColor3xvOES"); + glad_glColor4xOES = (PFNGLCOLOR4XOESPROC) load(userptr, "glColor4xOES"); + glad_glColor4xvOES = (PFNGLCOLOR4XVOESPROC) load(userptr, "glColor4xvOES"); + glad_glConvolutionParameterxOES = (PFNGLCONVOLUTIONPARAMETERXOESPROC) load(userptr, "glConvolutionParameterxOES"); + glad_glConvolutionParameterxvOES = (PFNGLCONVOLUTIONPARAMETERXVOESPROC) load(userptr, "glConvolutionParameterxvOES"); + glad_glDepthRangexOES = (PFNGLDEPTHRANGEXOESPROC) load(userptr, "glDepthRangexOES"); + glad_glEvalCoord1xOES = (PFNGLEVALCOORD1XOESPROC) load(userptr, "glEvalCoord1xOES"); + glad_glEvalCoord1xvOES = (PFNGLEVALCOORD1XVOESPROC) load(userptr, "glEvalCoord1xvOES"); + glad_glEvalCoord2xOES = (PFNGLEVALCOORD2XOESPROC) load(userptr, "glEvalCoord2xOES"); + glad_glEvalCoord2xvOES = (PFNGLEVALCOORD2XVOESPROC) load(userptr, "glEvalCoord2xvOES"); + glad_glFeedbackBufferxOES = (PFNGLFEEDBACKBUFFERXOESPROC) load(userptr, "glFeedbackBufferxOES"); + glad_glFogxOES = (PFNGLFOGXOESPROC) load(userptr, "glFogxOES"); + glad_glFogxvOES = (PFNGLFOGXVOESPROC) load(userptr, "glFogxvOES"); + glad_glFrustumxOES = (PFNGLFRUSTUMXOESPROC) load(userptr, "glFrustumxOES"); + glad_glGetClipPlanexOES = (PFNGLGETCLIPPLANEXOESPROC) load(userptr, "glGetClipPlanexOES"); + glad_glGetConvolutionParameterxvOES = (PFNGLGETCONVOLUTIONPARAMETERXVOESPROC) load(userptr, "glGetConvolutionParameterxvOES"); + glad_glGetFixedvOES = (PFNGLGETFIXEDVOESPROC) load(userptr, "glGetFixedvOES"); + glad_glGetHistogramParameterxvOES = (PFNGLGETHISTOGRAMPARAMETERXVOESPROC) load(userptr, "glGetHistogramParameterxvOES"); + glad_glGetLightxOES = (PFNGLGETLIGHTXOESPROC) load(userptr, "glGetLightxOES"); + glad_glGetMapxvOES = (PFNGLGETMAPXVOESPROC) load(userptr, "glGetMapxvOES"); + glad_glGetMaterialxOES = (PFNGLGETMATERIALXOESPROC) load(userptr, "glGetMaterialxOES"); + glad_glGetPixelMapxv = (PFNGLGETPIXELMAPXVPROC) load(userptr, "glGetPixelMapxv"); + glad_glGetTexEnvxvOES = (PFNGLGETTEXENVXVOESPROC) load(userptr, "glGetTexEnvxvOES"); + glad_glGetTexGenxvOES = (PFNGLGETTEXGENXVOESPROC) load(userptr, "glGetTexGenxvOES"); + glad_glGetTexLevelParameterxvOES = (PFNGLGETTEXLEVELPARAMETERXVOESPROC) load(userptr, "glGetTexLevelParameterxvOES"); + glad_glGetTexParameterxvOES = (PFNGLGETTEXPARAMETERXVOESPROC) load(userptr, "glGetTexParameterxvOES"); + glad_glIndexxOES = (PFNGLINDEXXOESPROC) load(userptr, "glIndexxOES"); + glad_glIndexxvOES = (PFNGLINDEXXVOESPROC) load(userptr, "glIndexxvOES"); + glad_glLightModelxOES = (PFNGLLIGHTMODELXOESPROC) load(userptr, "glLightModelxOES"); + glad_glLightModelxvOES = (PFNGLLIGHTMODELXVOESPROC) load(userptr, "glLightModelxvOES"); + glad_glLightxOES = (PFNGLLIGHTXOESPROC) load(userptr, "glLightxOES"); + glad_glLightxvOES = (PFNGLLIGHTXVOESPROC) load(userptr, "glLightxvOES"); + glad_glLineWidthxOES = (PFNGLLINEWIDTHXOESPROC) load(userptr, "glLineWidthxOES"); + glad_glLoadMatrixxOES = (PFNGLLOADMATRIXXOESPROC) load(userptr, "glLoadMatrixxOES"); + glad_glLoadTransposeMatrixxOES = (PFNGLLOADTRANSPOSEMATRIXXOESPROC) load(userptr, "glLoadTransposeMatrixxOES"); + glad_glMap1xOES = (PFNGLMAP1XOESPROC) load(userptr, "glMap1xOES"); + glad_glMap2xOES = (PFNGLMAP2XOESPROC) load(userptr, "glMap2xOES"); + glad_glMapGrid1xOES = (PFNGLMAPGRID1XOESPROC) load(userptr, "glMapGrid1xOES"); + glad_glMapGrid2xOES = (PFNGLMAPGRID2XOESPROC) load(userptr, "glMapGrid2xOES"); + glad_glMaterialxOES = (PFNGLMATERIALXOESPROC) load(userptr, "glMaterialxOES"); + glad_glMaterialxvOES = (PFNGLMATERIALXVOESPROC) load(userptr, "glMaterialxvOES"); + glad_glMultMatrixxOES = (PFNGLMULTMATRIXXOESPROC) load(userptr, "glMultMatrixxOES"); + glad_glMultTransposeMatrixxOES = (PFNGLMULTTRANSPOSEMATRIXXOESPROC) load(userptr, "glMultTransposeMatrixxOES"); + glad_glMultiTexCoord1xOES = (PFNGLMULTITEXCOORD1XOESPROC) load(userptr, "glMultiTexCoord1xOES"); + glad_glMultiTexCoord1xvOES = (PFNGLMULTITEXCOORD1XVOESPROC) load(userptr, "glMultiTexCoord1xvOES"); + glad_glMultiTexCoord2xOES = (PFNGLMULTITEXCOORD2XOESPROC) load(userptr, "glMultiTexCoord2xOES"); + glad_glMultiTexCoord2xvOES = (PFNGLMULTITEXCOORD2XVOESPROC) load(userptr, "glMultiTexCoord2xvOES"); + glad_glMultiTexCoord3xOES = (PFNGLMULTITEXCOORD3XOESPROC) load(userptr, "glMultiTexCoord3xOES"); + glad_glMultiTexCoord3xvOES = (PFNGLMULTITEXCOORD3XVOESPROC) load(userptr, "glMultiTexCoord3xvOES"); + glad_glMultiTexCoord4xOES = (PFNGLMULTITEXCOORD4XOESPROC) load(userptr, "glMultiTexCoord4xOES"); + glad_glMultiTexCoord4xvOES = (PFNGLMULTITEXCOORD4XVOESPROC) load(userptr, "glMultiTexCoord4xvOES"); + glad_glNormal3xOES = (PFNGLNORMAL3XOESPROC) load(userptr, "glNormal3xOES"); + glad_glNormal3xvOES = (PFNGLNORMAL3XVOESPROC) load(userptr, "glNormal3xvOES"); + glad_glOrthoxOES = (PFNGLORTHOXOESPROC) load(userptr, "glOrthoxOES"); + glad_glPassThroughxOES = (PFNGLPASSTHROUGHXOESPROC) load(userptr, "glPassThroughxOES"); + glad_glPixelMapx = (PFNGLPIXELMAPXPROC) load(userptr, "glPixelMapx"); + glad_glPixelStorex = (PFNGLPIXELSTOREXPROC) load(userptr, "glPixelStorex"); + glad_glPixelTransferxOES = (PFNGLPIXELTRANSFERXOESPROC) load(userptr, "glPixelTransferxOES"); + glad_glPixelZoomxOES = (PFNGLPIXELZOOMXOESPROC) load(userptr, "glPixelZoomxOES"); + glad_glPointParameterxvOES = (PFNGLPOINTPARAMETERXVOESPROC) load(userptr, "glPointParameterxvOES"); + glad_glPointSizexOES = (PFNGLPOINTSIZEXOESPROC) load(userptr, "glPointSizexOES"); + glad_glPolygonOffsetxOES = (PFNGLPOLYGONOFFSETXOESPROC) load(userptr, "glPolygonOffsetxOES"); + glad_glPrioritizeTexturesxOES = (PFNGLPRIORITIZETEXTURESXOESPROC) load(userptr, "glPrioritizeTexturesxOES"); + glad_glRasterPos2xOES = (PFNGLRASTERPOS2XOESPROC) load(userptr, "glRasterPos2xOES"); + glad_glRasterPos2xvOES = (PFNGLRASTERPOS2XVOESPROC) load(userptr, "glRasterPos2xvOES"); + glad_glRasterPos3xOES = (PFNGLRASTERPOS3XOESPROC) load(userptr, "glRasterPos3xOES"); + glad_glRasterPos3xvOES = (PFNGLRASTERPOS3XVOESPROC) load(userptr, "glRasterPos3xvOES"); + glad_glRasterPos4xOES = (PFNGLRASTERPOS4XOESPROC) load(userptr, "glRasterPos4xOES"); + glad_glRasterPos4xvOES = (PFNGLRASTERPOS4XVOESPROC) load(userptr, "glRasterPos4xvOES"); + glad_glRectxOES = (PFNGLRECTXOESPROC) load(userptr, "glRectxOES"); + glad_glRectxvOES = (PFNGLRECTXVOESPROC) load(userptr, "glRectxvOES"); + glad_glRotatexOES = (PFNGLROTATEXOESPROC) load(userptr, "glRotatexOES"); + glad_glScalexOES = (PFNGLSCALEXOESPROC) load(userptr, "glScalexOES"); + glad_glTexCoord1xOES = (PFNGLTEXCOORD1XOESPROC) load(userptr, "glTexCoord1xOES"); + glad_glTexCoord1xvOES = (PFNGLTEXCOORD1XVOESPROC) load(userptr, "glTexCoord1xvOES"); + glad_glTexCoord2xOES = (PFNGLTEXCOORD2XOESPROC) load(userptr, "glTexCoord2xOES"); + glad_glTexCoord2xvOES = (PFNGLTEXCOORD2XVOESPROC) load(userptr, "glTexCoord2xvOES"); + glad_glTexCoord3xOES = (PFNGLTEXCOORD3XOESPROC) load(userptr, "glTexCoord3xOES"); + glad_glTexCoord3xvOES = (PFNGLTEXCOORD3XVOESPROC) load(userptr, "glTexCoord3xvOES"); + glad_glTexCoord4xOES = (PFNGLTEXCOORD4XOESPROC) load(userptr, "glTexCoord4xOES"); + glad_glTexCoord4xvOES = (PFNGLTEXCOORD4XVOESPROC) load(userptr, "glTexCoord4xvOES"); + glad_glTexEnvxOES = (PFNGLTEXENVXOESPROC) load(userptr, "glTexEnvxOES"); + glad_glTexEnvxvOES = (PFNGLTEXENVXVOESPROC) load(userptr, "glTexEnvxvOES"); + glad_glTexGenxOES = (PFNGLTEXGENXOESPROC) load(userptr, "glTexGenxOES"); + glad_glTexGenxvOES = (PFNGLTEXGENXVOESPROC) load(userptr, "glTexGenxvOES"); + glad_glTexParameterxOES = (PFNGLTEXPARAMETERXOESPROC) load(userptr, "glTexParameterxOES"); + glad_glTexParameterxvOES = (PFNGLTEXPARAMETERXVOESPROC) load(userptr, "glTexParameterxvOES"); + glad_glTranslatexOES = (PFNGLTRANSLATEXOESPROC) load(userptr, "glTranslatexOES"); + glad_glVertex2xOES = (PFNGLVERTEX2XOESPROC) load(userptr, "glVertex2xOES"); + glad_glVertex2xvOES = (PFNGLVERTEX2XVOESPROC) load(userptr, "glVertex2xvOES"); + glad_glVertex3xOES = (PFNGLVERTEX3XOESPROC) load(userptr, "glVertex3xOES"); + glad_glVertex3xvOES = (PFNGLVERTEX3XVOESPROC) load(userptr, "glVertex3xvOES"); + glad_glVertex4xOES = (PFNGLVERTEX4XOESPROC) load(userptr, "glVertex4xOES"); + glad_glVertex4xvOES = (PFNGLVERTEX4XVOESPROC) load(userptr, "glVertex4xvOES"); +} + + #if defined(GL_ES_VERSION_3_0) || defined(GL_VERSION_3_0) -#define _GLAD_IS_SOME_NEW_VERSION 1 +#define GLAD_GL_IS_SOME_NEW_VERSION 1 +#else +#define GLAD_GL_IS_SOME_NEW_VERSION 0 #endif -static int max_loaded_major; -static int max_loaded_minor; - -static const char *exts = NULL; -static int num_exts_i = 0; -static const char **exts_i = NULL; - -static int get_exts(void) { -#ifdef _GLAD_IS_SOME_NEW_VERSION - if(max_loaded_major < 3) { +static int glad_gl_get_extensions( 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 - exts = (const char *)glGetString(GL_EXTENSIONS); -#ifdef _GLAD_IS_SOME_NEW_VERSION - } else { - int index; - - num_exts_i = 0; - glGetIntegerv(GL_NUM_EXTENSIONS, &num_exts_i); - if (num_exts_i > 0) { - exts_i = (const char **)GLAD_REALLOC((void *)exts_i, num_exts_i * sizeof *exts_i); + if (glad_glGetString == NULL) { + return 0; + } + *out_exts = (const char *)glad_glGetString(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 (glad_glGetStringi == NULL || glad_glGetIntegerv == NULL) { + return 0; + } + glad_glGetIntegerv(GL_NUM_EXTENSIONS, (int*) &num_exts_i); + if (num_exts_i > 0) { + exts_i = (char **) GLAD_MALLOC(num_exts_i * (sizeof *exts_i)); } - if (exts_i == NULL) { return 0; } - for(index = 0; index < num_exts_i; index++) { - exts_i[index] = (const char*)glGetStringi(GL_EXTENSIONS, index); + const char *gl_str_tmp = (const char*) glad_glGetStringi(GL_EXTENSIONS, index); + size_t len = strlen(gl_str_tmp) + 1; + + char *local_str = (char*) GLAD_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 free_exts(void) { +static void glad_gl_free_extensions(char **exts_i, unsigned int num_exts_i) { if (exts_i != NULL) { - GLAD_FREE((char **)exts_i); + unsigned int index; + for(index = 0; index < num_exts_i; index++) { + GLAD_FREE((void *) (exts_i[index])); + } + GLAD_FREE((void *)exts_i); exts_i = NULL; } } - -static int has_ext(const char *ext) { -#ifdef _GLAD_IS_SOME_NEW_VERSION - if(max_loaded_major < 3) { -#endif +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; @@ -3801,13 +8337,11 @@ static int has_ext(const char *ext) { 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')) { @@ -3815,1574 +8349,159 @@ static int has_ext(const char *ext) { } extensions = terminator; } -#ifdef _GLAD_IS_SOME_NEW_VERSION } else { - int index; - + unsigned int index; for(index = 0; index < num_exts_i; index++) { const char *e = exts_i[index]; - if(strcmp(e, ext) == 0) { return 1; } } } -#endif - return 0; } -int GLAD_GL_VERSION_1_0; -int GLAD_GL_VERSION_1_1; -int GLAD_GL_VERSION_1_2; -int GLAD_GL_VERSION_1_3; -int GLAD_GL_VERSION_1_4; -int GLAD_GL_VERSION_1_5; -int GLAD_GL_VERSION_2_0; -int GLAD_GL_VERSION_2_1; -int GLAD_GL_VERSION_3_0; -int GLAD_GL_VERSION_3_1; -int GLAD_GL_VERSION_3_2; -int GLAD_GL_VERSION_3_3; -PFNGLCOPYTEXIMAGE1DPROC glad_glCopyTexImage1D; -PFNGLVERTEXATTRIBI3UIPROC glad_glVertexAttribI3ui; -PFNGLSTENCILMASKSEPARATEPROC glad_glStencilMaskSeparate; -PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_glFramebufferRenderbuffer; -PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glad_glCompressedTexSubImage3D; -PFNGLTEXCOORDP3UIVPROC glad_glTexCoordP3uiv; -PFNGLVERTEXATTRIB1SVPROC glad_glVertexAttrib1sv; -PFNGLBINDSAMPLERPROC glad_glBindSampler; -PFNGLLINEWIDTHPROC glad_glLineWidth; -PFNGLCOLORP3UIVPROC glad_glColorP3uiv; -PFNGLGETINTEGERI_VPROC glad_glGetIntegeri_v; -PFNGLCOMPILESHADERPROC glad_glCompileShader; -PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glad_glGetTransformFeedbackVarying; -PFNGLVERTEXATTRIBIPOINTERPROC glad_glVertexAttribIPointer; -PFNGLMULTITEXCOORDP3UIPROC glad_glMultiTexCoordP3ui; -PFNGLVERTEXP4UIPROC glad_glVertexP4ui; -PFNGLENABLEIPROC glad_glEnablei; -PFNGLVERTEXATTRIBP4UIPROC glad_glVertexAttribP4ui; -PFNGLCREATESHADERPROC glad_glCreateShader; -PFNGLISBUFFERPROC glad_glIsBuffer; -PFNGLGETMULTISAMPLEFVPROC glad_glGetMultisamplefv; -PFNGLGENRENDERBUFFERSPROC glad_glGenRenderbuffers; -PFNGLCOPYTEXSUBIMAGE2DPROC glad_glCopyTexSubImage2D; -PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_glCompressedTexImage2D; -PFNGLVERTEXATTRIB1FPROC glad_glVertexAttrib1f; -PFNGLBLENDFUNCSEPARATEPROC glad_glBlendFuncSeparate; -PFNGLHINTPROC glad_glHint; -PFNGLVERTEXATTRIB1SPROC glad_glVertexAttrib1s; -PFNGLSAMPLEMASKIPROC glad_glSampleMaski; -PFNGLVERTEXP2UIPROC glad_glVertexP2ui; -PFNGLUNIFORMMATRIX3X2FVPROC glad_glUniformMatrix3x2fv; -PFNGLPOINTSIZEPROC glad_glPointSize; -PFNGLVERTEXATTRIB2DVPROC glad_glVertexAttrib2dv; -PFNGLDELETEPROGRAMPROC glad_glDeleteProgram; -PFNGLVERTEXATTRIB4NUIVPROC glad_glVertexAttrib4Nuiv; -PFNGLRENDERBUFFERSTORAGEPROC glad_glRenderbufferStorage; -PFNGLWAITSYNCPROC glad_glWaitSync; -PFNGLUNIFORMMATRIX4X3FVPROC glad_glUniformMatrix4x3fv; -PFNGLUNIFORM3IPROC glad_glUniform3i; -PFNGLCLEARBUFFERFVPROC glad_glClearBufferfv; -PFNGLUNIFORM3FPROC glad_glUniform3f; -PFNGLVERTEXATTRIB4UBVPROC glad_glVertexAttrib4ubv; -PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv; -PFNGLTEXCOORDP2UIPROC glad_glTexCoordP2ui; -PFNGLCOLORMASKIPROC glad_glColorMaski; -PFNGLCLEARBUFFERFIPROC glad_glClearBufferfi; -PFNGLGENVERTEXARRAYSPROC glad_glGenVertexArrays; -PFNGLMULTITEXCOORDP2UIPROC glad_glMultiTexCoordP2ui; -PFNGLGETSAMPLERPARAMETERIIVPROC glad_glGetSamplerParameterIiv; -PFNGLGETFRAGDATAINDEXPROC glad_glGetFragDataIndex; -PFNGLGETVERTEXATTRIBDVPROC glad_glGetVertexAttribdv; -PFNGLUNIFORMMATRIX3X4FVPROC glad_glUniformMatrix3x4fv; -PFNGLMULTITEXCOORDP4UIPROC glad_glMultiTexCoordP4ui; -PFNGLDELETEFRAMEBUFFERSPROC glad_glDeleteFramebuffers; -PFNGLDRAWARRAYSPROC glad_glDrawArrays; -PFNGLUNIFORM1UIPROC glad_glUniform1ui; -PFNGLVERTEXATTRIBI2IPROC glad_glVertexAttribI2i; -PFNGLTEXCOORDP3UIPROC glad_glTexCoordP3ui; -PFNGLVERTEXATTRIB3DPROC glad_glVertexAttrib3d; -PFNGLCLEARPROC glad_glClear; -PFNGLGETACTIVEUNIFORMNAMEPROC glad_glGetActiveUniformName; -PFNGLISENABLEDPROC glad_glIsEnabled; -PFNGLSTENCILOPPROC glad_glStencilOp; -PFNGLFRAMEBUFFERTEXTURE2DPROC glad_glFramebufferTexture2D; -PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetFramebufferAttachmentParameteriv; -PFNGLVERTEXATTRIB4NUBPROC glad_glVertexAttrib4Nub; -PFNGLGETFRAGDATALOCATIONPROC glad_glGetFragDataLocation; -PFNGLTEXIMAGE1DPROC glad_glTexImage1D; -PFNGLTEXPARAMETERIVPROC glad_glTexParameteriv; -PFNGLGETTEXIMAGEPROC glad_glGetTexImage; -PFNGLGETQUERYOBJECTI64VPROC glad_glGetQueryObjecti64v; -PFNGLGENFRAMEBUFFERSPROC glad_glGenFramebuffers; -PFNGLGETATTACHEDSHADERSPROC glad_glGetAttachedShaders; -PFNGLISRENDERBUFFERPROC glad_glIsRenderbuffer; -PFNGLDELETEVERTEXARRAYSPROC glad_glDeleteVertexArrays; -PFNGLISVERTEXARRAYPROC glad_glIsVertexArray; -PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_glDisableVertexAttribArray; -PFNGLGETQUERYIVPROC glad_glGetQueryiv; -PFNGLGETSAMPLERPARAMETERFVPROC glad_glGetSamplerParameterfv; -PFNGLGETUNIFORMINDICESPROC glad_glGetUniformIndices; -PFNGLISSHADERPROC glad_glIsShader; -PFNGLVERTEXATTRIBI4UBVPROC glad_glVertexAttribI4ubv; -PFNGLPOINTPARAMETERIVPROC glad_glPointParameteriv; -PFNGLENABLEPROC glad_glEnable; -PFNGLGETACTIVEUNIFORMSIVPROC glad_glGetActiveUniformsiv; -PFNGLGETATTRIBLOCATIONPROC glad_glGetAttribLocation; -PFNGLVERTEXATTRIB4DVPROC glad_glVertexAttrib4dv; -PFNGLMULTITEXCOORDP3UIVPROC glad_glMultiTexCoordP3uiv; -PFNGLVERTEXATTRIBP3UIPROC glad_glVertexAttribP3ui; -PFNGLGETUNIFORMFVPROC glad_glGetUniformfv; -PFNGLGETUNIFORMUIVPROC glad_glGetUniformuiv; -PFNGLGETVERTEXATTRIBIIVPROC glad_glGetVertexAttribIiv; -PFNGLDRAWBUFFERPROC glad_glDrawBuffer; -PFNGLCLEARBUFFERUIVPROC glad_glClearBufferuiv; -PFNGLDRAWELEMENTSINSTANCEDPROC glad_glDrawElementsInstanced; -PFNGLFLUSHPROC glad_glFlush; -PFNGLGETRENDERBUFFERPARAMETERIVPROC glad_glGetRenderbufferParameteriv; -PFNGLGETVERTEXATTRIBPOINTERVPROC glad_glGetVertexAttribPointerv; -PFNGLFENCESYNCPROC glad_glFenceSync; -PFNGLCOLORP3UIPROC glad_glColorP3ui; -PFNGLVERTEXATTRIB3SVPROC glad_glVertexAttrib3sv; -PFNGLBEGINCONDITIONALRENDERPROC glad_glBeginConditionalRender; -PFNGLGETTEXLEVELPARAMETERIVPROC glad_glGetTexLevelParameteriv; -PFNGLMULTITEXCOORDP4UIVPROC glad_glMultiTexCoordP4uiv; -PFNGLSTENCILFUNCSEPARATEPROC glad_glStencilFuncSeparate; -PFNGLGENSAMPLERSPROC glad_glGenSamplers; -PFNGLCLAMPCOLORPROC glad_glClampColor; -PFNGLUNIFORM4IVPROC glad_glUniform4iv; -PFNGLCLEARSTENCILPROC glad_glClearStencil; -PFNGLTEXCOORDP1UIVPROC glad_glTexCoordP1uiv; -PFNGLGENTEXTURESPROC glad_glGenTextures; -PFNGLGETTEXPARAMETERIUIVPROC glad_glGetTexParameterIuiv; -PFNGLVERTEXATTRIB4NBVPROC glad_glVertexAttrib4Nbv; -PFNGLISSYNCPROC glad_glIsSync; -PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glad_glGetActiveUniformBlockName; -PFNGLUNIFORM2IPROC glad_glUniform2i; -PFNGLUNIFORM2FPROC glad_glUniform2f; -PFNGLTEXCOORDP4UIPROC glad_glTexCoordP4ui; -PFNGLGETPROGRAMIVPROC glad_glGetProgramiv; -PFNGLVERTEXATTRIBPOINTERPROC glad_glVertexAttribPointer; -PFNGLFRAMEBUFFERTEXTURELAYERPROC glad_glFramebufferTextureLayer; -PFNGLFLUSHMAPPEDBUFFERRANGEPROC glad_glFlushMappedBufferRange; -PFNGLGENQUERIESPROC glad_glGenQueries; -PFNGLVERTEXATTRIBP1UIPROC glad_glVertexAttribP1ui; -PFNGLTEXSUBIMAGE3DPROC glad_glTexSubImage3D; -PFNGLGETINTEGER64I_VPROC glad_glGetInteger64i_v; -PFNGLDELETESAMPLERSPROC glad_glDeleteSamplers; -PFNGLCOPYTEXIMAGE2DPROC glad_glCopyTexImage2D; -PFNGLBLITFRAMEBUFFERPROC glad_glBlitFramebuffer; -PFNGLISENABLEDIPROC glad_glIsEnabledi; -PFNGLSECONDARYCOLORP3UIPROC glad_glSecondaryColorP3ui; -PFNGLBINDFRAGDATALOCATIONINDEXEDPROC glad_glBindFragDataLocationIndexed; -PFNGLUNIFORM2IVPROC glad_glUniform2iv; -PFNGLVERTEXATTRIB1FVPROC glad_glVertexAttrib1fv; -PFNGLUNIFORM4UIVPROC glad_glUniform4uiv; -PFNGLFRAMEBUFFERTEXTURE1DPROC glad_glFramebufferTexture1D; -PFNGLGETSHADERIVPROC glad_glGetShaderiv; -PFNGLBINDFRAGDATALOCATIONPROC glad_glBindFragDataLocation; -PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset; -PFNGLGETDOUBLEVPROC glad_glGetDoublev; -PFNGLVERTEXATTRIB1DPROC glad_glVertexAttrib1d; -PFNGLGETUNIFORMIVPROC glad_glGetUniformiv; -PFNGLMULTITEXCOORDP1UIVPROC glad_glMultiTexCoordP1uiv; -PFNGLUNIFORM3FVPROC glad_glUniform3fv; -PFNGLDEPTHRANGEPROC glad_glDepthRange; -PFNGLMAPBUFFERPROC glad_glMapBuffer; -PFNGLCOMPRESSEDTEXIMAGE3DPROC glad_glCompressedTexImage3D; -PFNGLDELETESYNCPROC glad_glDeleteSync; -PFNGLCOPYTEXSUBIMAGE3DPROC glad_glCopyTexSubImage3D; -PFNGLGETVERTEXATTRIBIVPROC glad_glGetVertexAttribiv; -PFNGLMULTIDRAWELEMENTSPROC glad_glMultiDrawElements; -PFNGLVERTEXATTRIB3FVPROC glad_glVertexAttrib3fv; -PFNGLUNIFORM3IVPROC glad_glUniform3iv; -PFNGLPOLYGONMODEPROC glad_glPolygonMode; -PFNGLDRAWBUFFERSPROC glad_glDrawBuffers; -PFNGLGETACTIVEUNIFORMBLOCKIVPROC glad_glGetActiveUniformBlockiv; -PFNGLUSEPROGRAMPROC glad_glUseProgram; -PFNGLGETPROGRAMINFOLOGPROC glad_glGetProgramInfoLog; -PFNGLBINDVERTEXARRAYPROC glad_glBindVertexArray; -PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers; -PFNGLSAMPLERPARAMETERIIVPROC glad_glSamplerParameterIiv; -PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glad_glMultiDrawElementsBaseVertex; -PFNGLUNIFORM2UIVPROC glad_glUniform2uiv; -PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glad_glCompressedTexSubImage1D; -PFNGLFINISHPROC glad_glFinish; -PFNGLDELETESHADERPROC glad_glDeleteShader; -PFNGLVERTEXATTRIB4NSVPROC glad_glVertexAttrib4Nsv; -PFNGLVIEWPORTPROC glad_glViewport; -PFNGLUNIFORM1UIVPROC glad_glUniform1uiv; -PFNGLTRANSFORMFEEDBACKVARYINGSPROC glad_glTransformFeedbackVaryings; -PFNGLUNIFORM2UIPROC glad_glUniform2ui; -PFNGLVERTEXATTRIBI3IPROC glad_glVertexAttribI3i; -PFNGLCLEARDEPTHPROC glad_glClearDepth; -PFNGLVERTEXATTRIBI4USVPROC glad_glVertexAttribI4usv; -PFNGLTEXPARAMETERFPROC glad_glTexParameterf; -PFNGLTEXPARAMETERIPROC glad_glTexParameteri; -PFNGLGETSHADERSOURCEPROC glad_glGetShaderSource; -PFNGLTEXBUFFERPROC glad_glTexBuffer; -PFNGLPIXELSTOREIPROC glad_glPixelStorei; -PFNGLVALIDATEPROGRAMPROC glad_glValidateProgram; -PFNGLPIXELSTOREFPROC glad_glPixelStoref; -PFNGLGETBOOLEANI_VPROC glad_glGetBooleani_v; -PFNGLMULTITEXCOORDP2UIVPROC glad_glMultiTexCoordP2uiv; -PFNGLVERTEXATTRIBP1UIVPROC glad_glVertexAttribP1uiv; -PFNGLLINKPROGRAMPROC glad_glLinkProgram; -PFNGLBINDTEXTUREPROC glad_glBindTexture; -PFNGLGETSTRINGPROC glad_glGetString; -PFNGLVERTEXATTRIBP2UIVPROC glad_glVertexAttribP2uiv; -PFNGLDETACHSHADERPROC glad_glDetachShader; -PFNGLENDQUERYPROC glad_glEndQuery; -PFNGLNORMALP3UIPROC glad_glNormalP3ui; -PFNGLVERTEXATTRIBI2UIPROC glad_glVertexAttribI2ui; -PFNGLDELETETEXTURESPROC glad_glDeleteTextures; -PFNGLSTENCILOPSEPARATEPROC glad_glStencilOpSeparate; -PFNGLDELETEQUERIESPROC glad_glDeleteQueries; -PFNGLNORMALP3UIVPROC glad_glNormalP3uiv; -PFNGLVERTEXATTRIB4FPROC glad_glVertexAttrib4f; -PFNGLVERTEXATTRIB4DPROC glad_glVertexAttrib4d; -PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv; -PFNGLVERTEXATTRIB4SPROC glad_glVertexAttrib4s; -PFNGLDRAWELEMENTSBASEVERTEXPROC glad_glDrawElementsBaseVertex; -PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage; -PFNGLSAMPLERPARAMETERIPROC glad_glSamplerParameteri; -PFNGLSAMPLERPARAMETERFPROC glad_glSamplerParameterf; -PFNGLUNIFORM1FPROC glad_glUniform1f; -PFNGLGETVERTEXATTRIBFVPROC glad_glGetVertexAttribfv; -PFNGLGETCOMPRESSEDTEXIMAGEPROC glad_glGetCompressedTexImage; -PFNGLUNIFORM1IPROC glad_glUniform1i; -PFNGLGETACTIVEATTRIBPROC glad_glGetActiveAttrib; -PFNGLTEXSUBIMAGE2DPROC glad_glTexSubImage2D; -PFNGLDISABLEPROC glad_glDisable; -PFNGLLOGICOPPROC glad_glLogicOp; -PFNGLUNIFORM4UIPROC glad_glUniform4ui; -PFNGLBINDFRAMEBUFFERPROC glad_glBindFramebuffer; -PFNGLCULLFACEPROC glad_glCullFace; -PFNGLGETSTRINGIPROC glad_glGetStringi; -PFNGLATTACHSHADERPROC glad_glAttachShader; -PFNGLQUERYCOUNTERPROC glad_glQueryCounter; -PFNGLPROVOKINGVERTEXPROC glad_glProvokingVertex; -PFNGLDRAWELEMENTSPROC glad_glDrawElements; -PFNGLVERTEXATTRIBI4SVPROC glad_glVertexAttribI4sv; -PFNGLUNIFORM1IVPROC glad_glUniform1iv; -PFNGLGETQUERYOBJECTIVPROC glad_glGetQueryObjectiv; -PFNGLREADBUFFERPROC glad_glReadBuffer; -PFNGLTEXPARAMETERIUIVPROC glad_glTexParameterIuiv; -PFNGLDRAWARRAYSINSTANCEDPROC glad_glDrawArraysInstanced; -PFNGLGENERATEMIPMAPPROC glad_glGenerateMipmap; -PFNGLSAMPLERPARAMETERIVPROC glad_glSamplerParameteriv; -PFNGLVERTEXATTRIB3FPROC glad_glVertexAttrib3f; -PFNGLVERTEXATTRIB4UIVPROC glad_glVertexAttrib4uiv; -PFNGLPOINTPARAMETERIPROC glad_glPointParameteri; -PFNGLBLENDCOLORPROC glad_glBlendColor; -PFNGLSAMPLERPARAMETERIUIVPROC glad_glSamplerParameterIuiv; -PFNGLUNMAPBUFFERPROC glad_glUnmapBuffer; -PFNGLPOINTPARAMETERFPROC glad_glPointParameterf; -PFNGLVERTEXATTRIB3SPROC glad_glVertexAttrib3s; -PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer; -PFNGLVERTEXATTRIBP4UIVPROC glad_glVertexAttribP4uiv; -PFNGLISPROGRAMPROC glad_glIsProgram; -PFNGLVERTEXATTRIB4BVPROC glad_glVertexAttrib4bv; -PFNGLVERTEXATTRIB4FVPROC glad_glVertexAttrib4fv; -PFNGLUNIFORM4IPROC glad_glUniform4i; -PFNGLACTIVETEXTUREPROC glad_glActiveTexture; -PFNGLENABLEVERTEXATTRIBARRAYPROC glad_glEnableVertexAttribArray; -PFNGLREADPIXELSPROC glad_glReadPixels; -PFNGLVERTEXATTRIBI3IVPROC glad_glVertexAttribI3iv; -PFNGLUNIFORM4FPROC glad_glUniform4f; -PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glad_glRenderbufferStorageMultisample; -PFNGLUNIFORMMATRIX3FVPROC glad_glUniformMatrix3fv; -PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glad_glDrawElementsInstancedBaseVertex; -PFNGLSTENCILFUNCPROC glad_glStencilFunc; -PFNGLUNIFORMBLOCKBINDINGPROC glad_glUniformBlockBinding; -PFNGLCOLORP4UIPROC glad_glColorP4ui; -PFNGLVERTEXATTRIBI4IVPROC glad_glVertexAttribI4iv; -PFNGLGETSHADERINFOLOGPROC glad_glGetShaderInfoLog; -PFNGLVERTEXATTRIBI4IPROC glad_glVertexAttribI4i; -PFNGLGETBUFFERSUBDATAPROC glad_glGetBufferSubData; -PFNGLBLENDEQUATIONSEPARATEPROC glad_glBlendEquationSeparate; -PFNGLVERTEXATTRIBI1UIPROC glad_glVertexAttribI1ui; -PFNGLGENBUFFERSPROC glad_glGenBuffers; -PFNGLVERTEXATTRIB2SVPROC glad_glVertexAttrib2sv; -PFNGLBLENDFUNCPROC glad_glBlendFunc; -PFNGLCREATEPROGRAMPROC glad_glCreateProgram; -PFNGLTEXIMAGE3DPROC glad_glTexImage3D; -PFNGLISFRAMEBUFFERPROC glad_glIsFramebuffer; -PFNGLPRIMITIVERESTARTINDEXPROC glad_glPrimitiveRestartIndex; -PFNGLGETINTEGER64VPROC glad_glGetInteger64v; -PFNGLSCISSORPROC glad_glScissor; -PFNGLTEXCOORDP4UIVPROC glad_glTexCoordP4uiv; -PFNGLGETBOOLEANVPROC glad_glGetBooleanv; -PFNGLVERTEXP2UIVPROC glad_glVertexP2uiv; -PFNGLUNIFORM3UIVPROC glad_glUniform3uiv; -PFNGLCLEARCOLORPROC glad_glClearColor; -PFNGLVERTEXATTRIB4NIVPROC glad_glVertexAttrib4Niv; -PFNGLCLEARBUFFERIVPROC glad_glClearBufferiv; -PFNGLGETBUFFERPARAMETERI64VPROC glad_glGetBufferParameteri64v; -PFNGLCOLORP4UIVPROC glad_glColorP4uiv; -PFNGLVERTEXATTRIBI2UIVPROC glad_glVertexAttribI2uiv; -PFNGLUNIFORM3UIPROC glad_glUniform3ui; -PFNGLVERTEXATTRIBI4UIVPROC glad_glVertexAttribI4uiv; -PFNGLPOINTPARAMETERFVPROC glad_glPointParameterfv; -PFNGLUNIFORM2FVPROC glad_glUniform2fv; -PFNGLGETSAMPLERPARAMETERIUIVPROC glad_glGetSamplerParameterIuiv; -PFNGLBINDBUFFERRANGEPROC glad_glBindBufferRange; -PFNGLUNIFORMMATRIX2X3FVPROC glad_glUniformMatrix2x3fv; -PFNGLGETVERTEXATTRIBIUIVPROC glad_glGetVertexAttribIuiv; -PFNGLVERTEXATTRIB4NUSVPROC glad_glVertexAttrib4Nusv; -PFNGLDEPTHFUNCPROC glad_glDepthFunc; -PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_glCompressedTexSubImage2D; -PFNGLVERTEXATTRIBI4BVPROC glad_glVertexAttribI4bv; -PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv; -PFNGLMULTITEXCOORDP1UIPROC glad_glMultiTexCoordP1ui; -PFNGLCLIENTWAITSYNCPROC glad_glClientWaitSync; -PFNGLVERTEXATTRIBI4UIPROC glad_glVertexAttribI4ui; -PFNGLCOLORMASKPROC glad_glColorMask; -PFNGLTEXPARAMETERIIVPROC glad_glTexParameterIiv; -PFNGLBLENDEQUATIONPROC glad_glBlendEquation; -PFNGLGETUNIFORMLOCATIONPROC glad_glGetUniformLocation; -PFNGLENDTRANSFORMFEEDBACKPROC glad_glEndTransformFeedback; -PFNGLVERTEXATTRIB4USVPROC glad_glVertexAttrib4usv; -PFNGLUNIFORM4FVPROC glad_glUniform4fv; -PFNGLBEGINTRANSFORMFEEDBACKPROC glad_glBeginTransformFeedback; -PFNGLVERTEXATTRIBI1IVPROC glad_glVertexAttribI1iv; -PFNGLISSAMPLERPROC glad_glIsSampler; -PFNGLVERTEXP3UIPROC glad_glVertexP3ui; -PFNGLVERTEXATTRIBDIVISORPROC glad_glVertexAttribDivisor; -PFNGLCOMPRESSEDTEXIMAGE1DPROC glad_glCompressedTexImage1D; -PFNGLCOPYTEXSUBIMAGE1DPROC glad_glCopyTexSubImage1D; -PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glad_glDrawRangeElementsBaseVertex; -PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_glCheckFramebufferStatus; -PFNGLENDCONDITIONALRENDERPROC glad_glEndConditionalRender; -PFNGLVERTEXP3UIVPROC glad_glVertexP3uiv; -PFNGLBINDATTRIBLOCATIONPROC glad_glBindAttribLocation; -PFNGLUNIFORMMATRIX4X2FVPROC glad_glUniformMatrix4x2fv; -PFNGLVERTEXATTRIB1DVPROC glad_glVertexAttrib1dv; -PFNGLDRAWRANGEELEMENTSPROC glad_glDrawRangeElements; -PFNGLGETQUERYOBJECTUIVPROC glad_glGetQueryObjectuiv; -PFNGLBINDBUFFERBASEPROC glad_glBindBufferBase; -PFNGLBUFFERSUBDATAPROC glad_glBufferSubData; -PFNGLVERTEXATTRIB4IVPROC glad_glVertexAttrib4iv; -PFNGLMAPBUFFERRANGEPROC glad_glMapBufferRange; -PFNGLFRAMEBUFFERTEXTUREPROC glad_glFramebufferTexture; -PFNGLMULTIDRAWARRAYSPROC glad_glMultiDrawArrays; -PFNGLVERTEXP4UIVPROC glad_glVertexP4uiv; -PFNGLVERTEXATTRIBI2IVPROC glad_glVertexAttribI2iv; -PFNGLDISABLEIPROC glad_glDisablei; -PFNGLSHADERSOURCEPROC glad_glShaderSource; -PFNGLDELETERENDERBUFFERSPROC glad_glDeleteRenderbuffers; -PFNGLVERTEXATTRIBI3UIVPROC glad_glVertexAttribI3uiv; -PFNGLGETSYNCIVPROC glad_glGetSynciv; -PFNGLTEXCOORDP2UIVPROC glad_glTexCoordP2uiv; -PFNGLBEGINQUERYPROC glad_glBeginQuery; -PFNGLUNIFORMMATRIX4FVPROC glad_glUniformMatrix4fv; -PFNGLBINDBUFFERPROC glad_glBindBuffer; -PFNGLUNIFORMMATRIX2FVPROC glad_glUniformMatrix2fv; -PFNGLUNIFORMMATRIX2X4FVPROC glad_glUniformMatrix2x4fv; -PFNGLBUFFERDATAPROC glad_glBufferData; -PFNGLGETTEXPARAMETERIIVPROC glad_glGetTexParameterIiv; -PFNGLTEXCOORDP1UIPROC glad_glTexCoordP1ui; -PFNGLGETERRORPROC glad_glGetError; -PFNGLVERTEXATTRIBP2UIPROC glad_glVertexAttribP2ui; -PFNGLGETFLOATVPROC glad_glGetFloatv; -PFNGLTEXSUBIMAGE1DPROC glad_glTexSubImage1D; -PFNGLVERTEXATTRIB2FVPROC glad_glVertexAttrib2fv; -PFNGLGETTEXLEVELPARAMETERFVPROC glad_glGetTexLevelParameterfv; -PFNGLVERTEXATTRIBI1IPROC glad_glVertexAttribI1i; -PFNGLVERTEXATTRIBP3UIVPROC glad_glVertexAttribP3uiv; -PFNGLSECONDARYCOLORP3UIVPROC glad_glSecondaryColorP3uiv; -PFNGLGETINTEGERVPROC glad_glGetIntegerv; -PFNGLGETBUFFERPOINTERVPROC glad_glGetBufferPointerv; -PFNGLFRAMEBUFFERTEXTURE3DPROC glad_glFramebufferTexture3D; -PFNGLISQUERYPROC glad_glIsQuery; -PFNGLVERTEXATTRIB4SVPROC glad_glVertexAttrib4sv; -PFNGLTEXIMAGE2DPROC glad_glTexImage2D; -PFNGLSTENCILMASKPROC glad_glStencilMask; -PFNGLSAMPLERPARAMETERFVPROC glad_glSamplerParameterfv; -PFNGLISTEXTUREPROC glad_glIsTexture; -PFNGLUNIFORM1FVPROC glad_glUniform1fv; -PFNGLVERTEXATTRIB4NUBVPROC glad_glVertexAttrib4Nubv; -PFNGLTEXPARAMETERFVPROC glad_glTexParameterfv; -PFNGLGETSAMPLERPARAMETERIVPROC glad_glGetSamplerParameteriv; -PFNGLCOPYBUFFERSUBDATAPROC glad_glCopyBufferSubData; -PFNGLVERTEXATTRIBI1UIVPROC glad_glVertexAttribI1uiv; -PFNGLVERTEXATTRIB2DPROC glad_glVertexAttrib2d; -PFNGLVERTEXATTRIB2FPROC glad_glVertexAttrib2f; -PFNGLVERTEXATTRIB3DVPROC glad_glVertexAttrib3dv; -PFNGLGETQUERYOBJECTUI64VPROC glad_glGetQueryObjectui64v; -PFNGLDEPTHMASKPROC glad_glDepthMask; -PFNGLVERTEXATTRIB2SPROC glad_glVertexAttrib2s; -PFNGLTEXIMAGE3DMULTISAMPLEPROC glad_glTexImage3DMultisample; -PFNGLGETUNIFORMBLOCKINDEXPROC glad_glGetUniformBlockIndex; -PFNGLTEXIMAGE2DMULTISAMPLEPROC glad_glTexImage2DMultisample; -PFNGLGETACTIVEUNIFORMPROC glad_glGetActiveUniform; -PFNGLFRONTFACEPROC glad_glFrontFace; -int GLAD_GL_ARB_texture_compression; -int GLAD_GL_ARB_texture_swizzle; -int GLAD_GL_ATI_fragment_shader; -int GLAD_GL_EXT_texture_sRGB; -int GLAD_GL_ARB_explicit_attrib_location; -int GLAD_GL_ARB_ES3_compatibility; -int GLAD_GL_EXT_blend_color; -int GLAD_GL_EXT_framebuffer_sRGB; -int GLAD_GL_EXT_index_array_formats; -int GLAD_GL_ARB_vertex_shader; -int GLAD_GL_ARB_vertex_attrib_binding; -int GLAD_GL_ARB_vertex_program; -int GLAD_GL_EXT_texture_compression_s3tc; -int GLAD_GL_EXT_debug_marker; -int GLAD_GL_EXT_texture_swizzle; -int GLAD_GL_ARB_texture_multisample; -int GLAD_GL_ARB_texture_rg; -int GLAD_GL_ARB_texture_float; -int GLAD_GL_ARB_compressed_texture_pixel_storage; -int GLAD_GL_ARB_framebuffer_sRGB; -int GLAD_GL_ARB_vertex_array_object; -int GLAD_GL_ARB_depth_clamp; -int GLAD_GL_ARB_fragment_shader; -int GLAD_GL_ATI_vertex_array_object; -int GLAD_GL_ARB_vertex_buffer_object; -int GLAD_GL_ARB_fragment_program; -int GLAD_GL_EXT_framebuffer_multisample; -int GLAD_GL_ARB_framebuffer_object; -int GLAD_GL_ARB_draw_buffers_blend; -int GLAD_GL_EXT_vertex_shader; -int GLAD_GL_EXT_blend_func_separate; -int GLAD_GL_ARB_texture_non_power_of_two; -int GLAD_GL_EXT_texture; -int GLAD_GL_ARB_buffer_storage; -int GLAD_GL_ARB_explicit_uniform_location; -int GLAD_GL_EXT_framebuffer_object; -int GLAD_GL_EXT_framebuffer_multisample_blit_scaled; -int GLAD_GL_AMD_debug_output; -int GLAD_GL_ARB_depth_buffer_float; -int GLAD_GL_ARB_multisample; -int GLAD_GL_ARB_compatibility; -int GLAD_GL_ARB_depth_texture; -int GLAD_GL_ARB_sample_locations; -int GLAD_GL_ARB_ES2_compatibility; -int GLAD_GL_AMD_query_buffer_object; -int GLAD_GL_EXT_framebuffer_blit; -int GLAD_GL_EXT_vertex_array; -int GLAD_GL_ARB_draw_buffers; -int GLAD_GL_EXT_blend_equation_separate; -int GLAD_GL_ATI_element_array; -int GLAD_GL_ARB_debug_output; -int GLAD_GL_ARB_uniform_buffer_object; -PFNGLDEBUGMESSAGEENABLEAMDPROC glad_glDebugMessageEnableAMD; -PFNGLDEBUGMESSAGEINSERTAMDPROC glad_glDebugMessageInsertAMD; -PFNGLDEBUGMESSAGECALLBACKAMDPROC glad_glDebugMessageCallbackAMD; -PFNGLGETDEBUGMESSAGELOGAMDPROC glad_glGetDebugMessageLogAMD; -PFNGLRELEASESHADERCOMPILERPROC glad_glReleaseShaderCompiler; -PFNGLSHADERBINARYPROC glad_glShaderBinary; -PFNGLGETSHADERPRECISIONFORMATPROC glad_glGetShaderPrecisionFormat; -PFNGLDEPTHRANGEFPROC glad_glDepthRangef; -PFNGLCLEARDEPTHFPROC glad_glClearDepthf; -PFNGLBUFFERSTORAGEPROC glad_glBufferStorage; -PFNGLDEBUGMESSAGECONTROLARBPROC glad_glDebugMessageControlARB; -PFNGLDEBUGMESSAGEINSERTARBPROC glad_glDebugMessageInsertARB; -PFNGLDEBUGMESSAGECALLBACKARBPROC glad_glDebugMessageCallbackARB; -PFNGLGETDEBUGMESSAGELOGARBPROC glad_glGetDebugMessageLogARB; -PFNGLDRAWBUFFERSARBPROC glad_glDrawBuffersARB; -PFNGLBLENDEQUATIONIARBPROC glad_glBlendEquationiARB; -PFNGLBLENDEQUATIONSEPARATEIARBPROC glad_glBlendEquationSeparateiARB; -PFNGLBLENDFUNCIARBPROC glad_glBlendFunciARB; -PFNGLBLENDFUNCSEPARATEIARBPROC glad_glBlendFuncSeparateiARB; -PFNGLPROGRAMSTRINGARBPROC glad_glProgramStringARB; -PFNGLBINDPROGRAMARBPROC glad_glBindProgramARB; -PFNGLDELETEPROGRAMSARBPROC glad_glDeleteProgramsARB; -PFNGLGENPROGRAMSARBPROC glad_glGenProgramsARB; -PFNGLPROGRAMENVPARAMETER4DARBPROC glad_glProgramEnvParameter4dARB; -PFNGLPROGRAMENVPARAMETER4DVARBPROC glad_glProgramEnvParameter4dvARB; -PFNGLPROGRAMENVPARAMETER4FARBPROC glad_glProgramEnvParameter4fARB; -PFNGLPROGRAMENVPARAMETER4FVARBPROC glad_glProgramEnvParameter4fvARB; -PFNGLPROGRAMLOCALPARAMETER4DARBPROC glad_glProgramLocalParameter4dARB; -PFNGLPROGRAMLOCALPARAMETER4DVARBPROC glad_glProgramLocalParameter4dvARB; -PFNGLPROGRAMLOCALPARAMETER4FARBPROC glad_glProgramLocalParameter4fARB; -PFNGLPROGRAMLOCALPARAMETER4FVARBPROC glad_glProgramLocalParameter4fvARB; -PFNGLGETPROGRAMENVPARAMETERDVARBPROC glad_glGetProgramEnvParameterdvARB; -PFNGLGETPROGRAMENVPARAMETERFVARBPROC glad_glGetProgramEnvParameterfvARB; -PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC glad_glGetProgramLocalParameterdvARB; -PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC glad_glGetProgramLocalParameterfvARB; -PFNGLGETPROGRAMIVARBPROC glad_glGetProgramivARB; -PFNGLGETPROGRAMSTRINGARBPROC glad_glGetProgramStringARB; -PFNGLISPROGRAMARBPROC glad_glIsProgramARB; -PFNGLSAMPLECOVERAGEARBPROC glad_glSampleCoverageARB; -PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC glad_glFramebufferSampleLocationsfvARB; -PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC glad_glNamedFramebufferSampleLocationsfvARB; -PFNGLEVALUATEDEPTHVALUESARBPROC glad_glEvaluateDepthValuesARB; -PFNGLCOMPRESSEDTEXIMAGE3DARBPROC glad_glCompressedTexImage3DARB; -PFNGLCOMPRESSEDTEXIMAGE2DARBPROC glad_glCompressedTexImage2DARB; -PFNGLCOMPRESSEDTEXIMAGE1DARBPROC glad_glCompressedTexImage1DARB; -PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC glad_glCompressedTexSubImage3DARB; -PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC glad_glCompressedTexSubImage2DARB; -PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC glad_glCompressedTexSubImage1DARB; -PFNGLGETCOMPRESSEDTEXIMAGEARBPROC glad_glGetCompressedTexImageARB; -PFNGLBINDVERTEXBUFFERPROC glad_glBindVertexBuffer; -PFNGLVERTEXATTRIBFORMATPROC glad_glVertexAttribFormat; -PFNGLVERTEXATTRIBIFORMATPROC glad_glVertexAttribIFormat; -PFNGLVERTEXATTRIBLFORMATPROC glad_glVertexAttribLFormat; -PFNGLVERTEXATTRIBBINDINGPROC glad_glVertexAttribBinding; -PFNGLVERTEXBINDINGDIVISORPROC glad_glVertexBindingDivisor; -PFNGLBINDBUFFERARBPROC glad_glBindBufferARB; -PFNGLDELETEBUFFERSARBPROC glad_glDeleteBuffersARB; -PFNGLGENBUFFERSARBPROC glad_glGenBuffersARB; -PFNGLISBUFFERARBPROC glad_glIsBufferARB; -PFNGLBUFFERDATAARBPROC glad_glBufferDataARB; -PFNGLBUFFERSUBDATAARBPROC glad_glBufferSubDataARB; -PFNGLGETBUFFERSUBDATAARBPROC glad_glGetBufferSubDataARB; -PFNGLMAPBUFFERARBPROC glad_glMapBufferARB; -PFNGLUNMAPBUFFERARBPROC glad_glUnmapBufferARB; -PFNGLGETBUFFERPARAMETERIVARBPROC glad_glGetBufferParameterivARB; -PFNGLGETBUFFERPOINTERVARBPROC glad_glGetBufferPointervARB; -PFNGLVERTEXATTRIB1DARBPROC glad_glVertexAttrib1dARB; -PFNGLVERTEXATTRIB1DVARBPROC glad_glVertexAttrib1dvARB; -PFNGLVERTEXATTRIB1FARBPROC glad_glVertexAttrib1fARB; -PFNGLVERTEXATTRIB1FVARBPROC glad_glVertexAttrib1fvARB; -PFNGLVERTEXATTRIB1SARBPROC glad_glVertexAttrib1sARB; -PFNGLVERTEXATTRIB1SVARBPROC glad_glVertexAttrib1svARB; -PFNGLVERTEXATTRIB2DARBPROC glad_glVertexAttrib2dARB; -PFNGLVERTEXATTRIB2DVARBPROC glad_glVertexAttrib2dvARB; -PFNGLVERTEXATTRIB2FARBPROC glad_glVertexAttrib2fARB; -PFNGLVERTEXATTRIB2FVARBPROC glad_glVertexAttrib2fvARB; -PFNGLVERTEXATTRIB2SARBPROC glad_glVertexAttrib2sARB; -PFNGLVERTEXATTRIB2SVARBPROC glad_glVertexAttrib2svARB; -PFNGLVERTEXATTRIB3DARBPROC glad_glVertexAttrib3dARB; -PFNGLVERTEXATTRIB3DVARBPROC glad_glVertexAttrib3dvARB; -PFNGLVERTEXATTRIB3FARBPROC glad_glVertexAttrib3fARB; -PFNGLVERTEXATTRIB3FVARBPROC glad_glVertexAttrib3fvARB; -PFNGLVERTEXATTRIB3SARBPROC glad_glVertexAttrib3sARB; -PFNGLVERTEXATTRIB3SVARBPROC glad_glVertexAttrib3svARB; -PFNGLVERTEXATTRIB4NBVARBPROC glad_glVertexAttrib4NbvARB; -PFNGLVERTEXATTRIB4NIVARBPROC glad_glVertexAttrib4NivARB; -PFNGLVERTEXATTRIB4NSVARBPROC glad_glVertexAttrib4NsvARB; -PFNGLVERTEXATTRIB4NUBARBPROC glad_glVertexAttrib4NubARB; -PFNGLVERTEXATTRIB4NUBVARBPROC glad_glVertexAttrib4NubvARB; -PFNGLVERTEXATTRIB4NUIVARBPROC glad_glVertexAttrib4NuivARB; -PFNGLVERTEXATTRIB4NUSVARBPROC glad_glVertexAttrib4NusvARB; -PFNGLVERTEXATTRIB4BVARBPROC glad_glVertexAttrib4bvARB; -PFNGLVERTEXATTRIB4DARBPROC glad_glVertexAttrib4dARB; -PFNGLVERTEXATTRIB4DVARBPROC glad_glVertexAttrib4dvARB; -PFNGLVERTEXATTRIB4FARBPROC glad_glVertexAttrib4fARB; -PFNGLVERTEXATTRIB4FVARBPROC glad_glVertexAttrib4fvARB; -PFNGLVERTEXATTRIB4IVARBPROC glad_glVertexAttrib4ivARB; -PFNGLVERTEXATTRIB4SARBPROC glad_glVertexAttrib4sARB; -PFNGLVERTEXATTRIB4SVARBPROC glad_glVertexAttrib4svARB; -PFNGLVERTEXATTRIB4UBVARBPROC glad_glVertexAttrib4ubvARB; -PFNGLVERTEXATTRIB4UIVARBPROC glad_glVertexAttrib4uivARB; -PFNGLVERTEXATTRIB4USVARBPROC glad_glVertexAttrib4usvARB; -PFNGLVERTEXATTRIBPOINTERARBPROC glad_glVertexAttribPointerARB; -PFNGLENABLEVERTEXATTRIBARRAYARBPROC glad_glEnableVertexAttribArrayARB; -PFNGLDISABLEVERTEXATTRIBARRAYARBPROC glad_glDisableVertexAttribArrayARB; -PFNGLGETVERTEXATTRIBDVARBPROC glad_glGetVertexAttribdvARB; -PFNGLGETVERTEXATTRIBFVARBPROC glad_glGetVertexAttribfvARB; -PFNGLGETVERTEXATTRIBIVARBPROC glad_glGetVertexAttribivARB; -PFNGLGETVERTEXATTRIBPOINTERVARBPROC glad_glGetVertexAttribPointervARB; -PFNGLBINDATTRIBLOCATIONARBPROC glad_glBindAttribLocationARB; -PFNGLGETACTIVEATTRIBARBPROC glad_glGetActiveAttribARB; -PFNGLGETATTRIBLOCATIONARBPROC glad_glGetAttribLocationARB; -PFNGLELEMENTPOINTERATIPROC glad_glElementPointerATI; -PFNGLDRAWELEMENTARRAYATIPROC glad_glDrawElementArrayATI; -PFNGLDRAWRANGEELEMENTARRAYATIPROC glad_glDrawRangeElementArrayATI; -PFNGLGENFRAGMENTSHADERSATIPROC glad_glGenFragmentShadersATI; -PFNGLBINDFRAGMENTSHADERATIPROC glad_glBindFragmentShaderATI; -PFNGLDELETEFRAGMENTSHADERATIPROC glad_glDeleteFragmentShaderATI; -PFNGLBEGINFRAGMENTSHADERATIPROC glad_glBeginFragmentShaderATI; -PFNGLENDFRAGMENTSHADERATIPROC glad_glEndFragmentShaderATI; -PFNGLPASSTEXCOORDATIPROC glad_glPassTexCoordATI; -PFNGLSAMPLEMAPATIPROC glad_glSampleMapATI; -PFNGLCOLORFRAGMENTOP1ATIPROC glad_glColorFragmentOp1ATI; -PFNGLCOLORFRAGMENTOP2ATIPROC glad_glColorFragmentOp2ATI; -PFNGLCOLORFRAGMENTOP3ATIPROC glad_glColorFragmentOp3ATI; -PFNGLALPHAFRAGMENTOP1ATIPROC glad_glAlphaFragmentOp1ATI; -PFNGLALPHAFRAGMENTOP2ATIPROC glad_glAlphaFragmentOp2ATI; -PFNGLALPHAFRAGMENTOP3ATIPROC glad_glAlphaFragmentOp3ATI; -PFNGLSETFRAGMENTSHADERCONSTANTATIPROC glad_glSetFragmentShaderConstantATI; -PFNGLNEWOBJECTBUFFERATIPROC glad_glNewObjectBufferATI; -PFNGLISOBJECTBUFFERATIPROC glad_glIsObjectBufferATI; -PFNGLUPDATEOBJECTBUFFERATIPROC glad_glUpdateObjectBufferATI; -PFNGLGETOBJECTBUFFERFVATIPROC glad_glGetObjectBufferfvATI; -PFNGLGETOBJECTBUFFERIVATIPROC glad_glGetObjectBufferivATI; -PFNGLFREEOBJECTBUFFERATIPROC glad_glFreeObjectBufferATI; -PFNGLARRAYOBJECTATIPROC glad_glArrayObjectATI; -PFNGLGETARRAYOBJECTFVATIPROC glad_glGetArrayObjectfvATI; -PFNGLGETARRAYOBJECTIVATIPROC glad_glGetArrayObjectivATI; -PFNGLVARIANTARRAYOBJECTATIPROC glad_glVariantArrayObjectATI; -PFNGLGETVARIANTARRAYOBJECTFVATIPROC glad_glGetVariantArrayObjectfvATI; -PFNGLGETVARIANTARRAYOBJECTIVATIPROC glad_glGetVariantArrayObjectivATI; -PFNGLBLENDCOLOREXTPROC glad_glBlendColorEXT; -PFNGLBLENDEQUATIONSEPARATEEXTPROC glad_glBlendEquationSeparateEXT; -PFNGLBLENDFUNCSEPARATEEXTPROC glad_glBlendFuncSeparateEXT; -PFNGLINSERTEVENTMARKEREXTPROC glad_glInsertEventMarkerEXT; -PFNGLPUSHGROUPMARKEREXTPROC glad_glPushGroupMarkerEXT; -PFNGLPOPGROUPMARKEREXTPROC glad_glPopGroupMarkerEXT; -PFNGLBLITFRAMEBUFFEREXTPROC glad_glBlitFramebufferEXT; -PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC glad_glRenderbufferStorageMultisampleEXT; -PFNGLISRENDERBUFFEREXTPROC glad_glIsRenderbufferEXT; -PFNGLBINDRENDERBUFFEREXTPROC glad_glBindRenderbufferEXT; -PFNGLDELETERENDERBUFFERSEXTPROC glad_glDeleteRenderbuffersEXT; -PFNGLGENRENDERBUFFERSEXTPROC glad_glGenRenderbuffersEXT; -PFNGLRENDERBUFFERSTORAGEEXTPROC glad_glRenderbufferStorageEXT; -PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC glad_glGetRenderbufferParameterivEXT; -PFNGLISFRAMEBUFFEREXTPROC glad_glIsFramebufferEXT; -PFNGLBINDFRAMEBUFFEREXTPROC glad_glBindFramebufferEXT; -PFNGLDELETEFRAMEBUFFERSEXTPROC glad_glDeleteFramebuffersEXT; -PFNGLGENFRAMEBUFFERSEXTPROC glad_glGenFramebuffersEXT; -PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC glad_glCheckFramebufferStatusEXT; -PFNGLFRAMEBUFFERTEXTURE1DEXTPROC glad_glFramebufferTexture1DEXT; -PFNGLFRAMEBUFFERTEXTURE2DEXTPROC glad_glFramebufferTexture2DEXT; -PFNGLFRAMEBUFFERTEXTURE3DEXTPROC glad_glFramebufferTexture3DEXT; -PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC glad_glFramebufferRenderbufferEXT; -PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC glad_glGetFramebufferAttachmentParameterivEXT; -PFNGLGENERATEMIPMAPEXTPROC glad_glGenerateMipmapEXT; -PFNGLARRAYELEMENTEXTPROC glad_glArrayElementEXT; -PFNGLCOLORPOINTEREXTPROC glad_glColorPointerEXT; -PFNGLDRAWARRAYSEXTPROC glad_glDrawArraysEXT; -PFNGLEDGEFLAGPOINTEREXTPROC glad_glEdgeFlagPointerEXT; -PFNGLGETPOINTERVEXTPROC glad_glGetPointervEXT; -PFNGLINDEXPOINTEREXTPROC glad_glIndexPointerEXT; -PFNGLNORMALPOINTEREXTPROC glad_glNormalPointerEXT; -PFNGLTEXCOORDPOINTEREXTPROC glad_glTexCoordPointerEXT; -PFNGLVERTEXPOINTEREXTPROC glad_glVertexPointerEXT; -PFNGLBEGINVERTEXSHADEREXTPROC glad_glBeginVertexShaderEXT; -PFNGLENDVERTEXSHADEREXTPROC glad_glEndVertexShaderEXT; -PFNGLBINDVERTEXSHADEREXTPROC glad_glBindVertexShaderEXT; -PFNGLGENVERTEXSHADERSEXTPROC glad_glGenVertexShadersEXT; -PFNGLDELETEVERTEXSHADEREXTPROC glad_glDeleteVertexShaderEXT; -PFNGLSHADEROP1EXTPROC glad_glShaderOp1EXT; -PFNGLSHADEROP2EXTPROC glad_glShaderOp2EXT; -PFNGLSHADEROP3EXTPROC glad_glShaderOp3EXT; -PFNGLSWIZZLEEXTPROC glad_glSwizzleEXT; -PFNGLWRITEMASKEXTPROC glad_glWriteMaskEXT; -PFNGLINSERTCOMPONENTEXTPROC glad_glInsertComponentEXT; -PFNGLEXTRACTCOMPONENTEXTPROC glad_glExtractComponentEXT; -PFNGLGENSYMBOLSEXTPROC glad_glGenSymbolsEXT; -PFNGLSETINVARIANTEXTPROC glad_glSetInvariantEXT; -PFNGLSETLOCALCONSTANTEXTPROC glad_glSetLocalConstantEXT; -PFNGLVARIANTBVEXTPROC glad_glVariantbvEXT; -PFNGLVARIANTSVEXTPROC glad_glVariantsvEXT; -PFNGLVARIANTIVEXTPROC glad_glVariantivEXT; -PFNGLVARIANTFVEXTPROC glad_glVariantfvEXT; -PFNGLVARIANTDVEXTPROC glad_glVariantdvEXT; -PFNGLVARIANTUBVEXTPROC glad_glVariantubvEXT; -PFNGLVARIANTUSVEXTPROC glad_glVariantusvEXT; -PFNGLVARIANTUIVEXTPROC glad_glVariantuivEXT; -PFNGLVARIANTPOINTEREXTPROC glad_glVariantPointerEXT; -PFNGLENABLEVARIANTCLIENTSTATEEXTPROC glad_glEnableVariantClientStateEXT; -PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC glad_glDisableVariantClientStateEXT; -PFNGLBINDLIGHTPARAMETEREXTPROC glad_glBindLightParameterEXT; -PFNGLBINDMATERIALPARAMETEREXTPROC glad_glBindMaterialParameterEXT; -PFNGLBINDTEXGENPARAMETEREXTPROC glad_glBindTexGenParameterEXT; -PFNGLBINDTEXTUREUNITPARAMETEREXTPROC glad_glBindTextureUnitParameterEXT; -PFNGLBINDPARAMETEREXTPROC glad_glBindParameterEXT; -PFNGLISVARIANTENABLEDEXTPROC glad_glIsVariantEnabledEXT; -PFNGLGETVARIANTBOOLEANVEXTPROC glad_glGetVariantBooleanvEXT; -PFNGLGETVARIANTINTEGERVEXTPROC glad_glGetVariantIntegervEXT; -PFNGLGETVARIANTFLOATVEXTPROC glad_glGetVariantFloatvEXT; -PFNGLGETVARIANTPOINTERVEXTPROC glad_glGetVariantPointervEXT; -PFNGLGETINVARIANTBOOLEANVEXTPROC glad_glGetInvariantBooleanvEXT; -PFNGLGETINVARIANTINTEGERVEXTPROC glad_glGetInvariantIntegervEXT; -PFNGLGETINVARIANTFLOATVEXTPROC glad_glGetInvariantFloatvEXT; -PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC glad_glGetLocalConstantBooleanvEXT; -PFNGLGETLOCALCONSTANTINTEGERVEXTPROC glad_glGetLocalConstantIntegervEXT; -PFNGLGETLOCALCONSTANTFLOATVEXTPROC glad_glGetLocalConstantFloatvEXT; -static void load_GL_VERSION_1_0(GLADloadproc load) { - if(!GLAD_GL_VERSION_1_0) return; - glad_glCullFace = (PFNGLCULLFACEPROC)load("glCullFace"); - glad_glFrontFace = (PFNGLFRONTFACEPROC)load("glFrontFace"); - glad_glHint = (PFNGLHINTPROC)load("glHint"); - glad_glLineWidth = (PFNGLLINEWIDTHPROC)load("glLineWidth"); - glad_glPointSize = (PFNGLPOINTSIZEPROC)load("glPointSize"); - glad_glPolygonMode = (PFNGLPOLYGONMODEPROC)load("glPolygonMode"); - glad_glScissor = (PFNGLSCISSORPROC)load("glScissor"); - glad_glTexParameterf = (PFNGLTEXPARAMETERFPROC)load("glTexParameterf"); - glad_glTexParameterfv = (PFNGLTEXPARAMETERFVPROC)load("glTexParameterfv"); - glad_glTexParameteri = (PFNGLTEXPARAMETERIPROC)load("glTexParameteri"); - glad_glTexParameteriv = (PFNGLTEXPARAMETERIVPROC)load("glTexParameteriv"); - glad_glTexImage1D = (PFNGLTEXIMAGE1DPROC)load("glTexImage1D"); - glad_glTexImage2D = (PFNGLTEXIMAGE2DPROC)load("glTexImage2D"); - glad_glDrawBuffer = (PFNGLDRAWBUFFERPROC)load("glDrawBuffer"); - glad_glClear = (PFNGLCLEARPROC)load("glClear"); - glad_glClearColor = (PFNGLCLEARCOLORPROC)load("glClearColor"); - glad_glClearStencil = (PFNGLCLEARSTENCILPROC)load("glClearStencil"); - glad_glClearDepth = (PFNGLCLEARDEPTHPROC)load("glClearDepth"); - glad_glStencilMask = (PFNGLSTENCILMASKPROC)load("glStencilMask"); - glad_glColorMask = (PFNGLCOLORMASKPROC)load("glColorMask"); - glad_glDepthMask = (PFNGLDEPTHMASKPROC)load("glDepthMask"); - glad_glDisable = (PFNGLDISABLEPROC)load("glDisable"); - glad_glEnable = (PFNGLENABLEPROC)load("glEnable"); - glad_glFinish = (PFNGLFINISHPROC)load("glFinish"); - glad_glFlush = (PFNGLFLUSHPROC)load("glFlush"); - glad_glBlendFunc = (PFNGLBLENDFUNCPROC)load("glBlendFunc"); - glad_glLogicOp = (PFNGLLOGICOPPROC)load("glLogicOp"); - glad_glStencilFunc = (PFNGLSTENCILFUNCPROC)load("glStencilFunc"); - glad_glStencilOp = (PFNGLSTENCILOPPROC)load("glStencilOp"); - glad_glDepthFunc = (PFNGLDEPTHFUNCPROC)load("glDepthFunc"); - glad_glPixelStoref = (PFNGLPIXELSTOREFPROC)load("glPixelStoref"); - glad_glPixelStorei = (PFNGLPIXELSTOREIPROC)load("glPixelStorei"); - glad_glReadBuffer = (PFNGLREADBUFFERPROC)load("glReadBuffer"); - glad_glReadPixels = (PFNGLREADPIXELSPROC)load("glReadPixels"); - glad_glGetBooleanv = (PFNGLGETBOOLEANVPROC)load("glGetBooleanv"); - glad_glGetDoublev = (PFNGLGETDOUBLEVPROC)load("glGetDoublev"); - glad_glGetError = (PFNGLGETERRORPROC)load("glGetError"); - glad_glGetFloatv = (PFNGLGETFLOATVPROC)load("glGetFloatv"); - glad_glGetIntegerv = (PFNGLGETINTEGERVPROC)load("glGetIntegerv"); - glad_glGetString = (PFNGLGETSTRINGPROC)load("glGetString"); - glad_glGetTexImage = (PFNGLGETTEXIMAGEPROC)load("glGetTexImage"); - glad_glGetTexParameterfv = (PFNGLGETTEXPARAMETERFVPROC)load("glGetTexParameterfv"); - glad_glGetTexParameteriv = (PFNGLGETTEXPARAMETERIVPROC)load("glGetTexParameteriv"); - glad_glGetTexLevelParameterfv = (PFNGLGETTEXLEVELPARAMETERFVPROC)load("glGetTexLevelParameterfv"); - glad_glGetTexLevelParameteriv = (PFNGLGETTEXLEVELPARAMETERIVPROC)load("glGetTexLevelParameteriv"); - glad_glIsEnabled = (PFNGLISENABLEDPROC)load("glIsEnabled"); - glad_glDepthRange = (PFNGLDEPTHRANGEPROC)load("glDepthRange"); - glad_glViewport = (PFNGLVIEWPORTPROC)load("glViewport"); -} -static void load_GL_VERSION_1_1(GLADloadproc load) { - if(!GLAD_GL_VERSION_1_1) return; - glad_glDrawArrays = (PFNGLDRAWARRAYSPROC)load("glDrawArrays"); - glad_glDrawElements = (PFNGLDRAWELEMENTSPROC)load("glDrawElements"); - glad_glPolygonOffset = (PFNGLPOLYGONOFFSETPROC)load("glPolygonOffset"); - glad_glCopyTexImage1D = (PFNGLCOPYTEXIMAGE1DPROC)load("glCopyTexImage1D"); - glad_glCopyTexImage2D = (PFNGLCOPYTEXIMAGE2DPROC)load("glCopyTexImage2D"); - glad_glCopyTexSubImage1D = (PFNGLCOPYTEXSUBIMAGE1DPROC)load("glCopyTexSubImage1D"); - glad_glCopyTexSubImage2D = (PFNGLCOPYTEXSUBIMAGE2DPROC)load("glCopyTexSubImage2D"); - glad_glTexSubImage1D = (PFNGLTEXSUBIMAGE1DPROC)load("glTexSubImage1D"); - glad_glTexSubImage2D = (PFNGLTEXSUBIMAGE2DPROC)load("glTexSubImage2D"); - glad_glBindTexture = (PFNGLBINDTEXTUREPROC)load("glBindTexture"); - glad_glDeleteTextures = (PFNGLDELETETEXTURESPROC)load("glDeleteTextures"); - glad_glGenTextures = (PFNGLGENTEXTURESPROC)load("glGenTextures"); - glad_glIsTexture = (PFNGLISTEXTUREPROC)load("glIsTexture"); -} -static void load_GL_VERSION_1_2(GLADloadproc load) { - if(!GLAD_GL_VERSION_1_2) return; - glad_glDrawRangeElements = (PFNGLDRAWRANGEELEMENTSPROC)load("glDrawRangeElements"); - glad_glTexImage3D = (PFNGLTEXIMAGE3DPROC)load("glTexImage3D"); - glad_glTexSubImage3D = (PFNGLTEXSUBIMAGE3DPROC)load("glTexSubImage3D"); - glad_glCopyTexSubImage3D = (PFNGLCOPYTEXSUBIMAGE3DPROC)load("glCopyTexSubImage3D"); -} -static void load_GL_VERSION_1_3(GLADloadproc load) { - if(!GLAD_GL_VERSION_1_3) return; - glad_glActiveTexture = (PFNGLACTIVETEXTUREPROC)load("glActiveTexture"); - glad_glSampleCoverage = (PFNGLSAMPLECOVERAGEPROC)load("glSampleCoverage"); - glad_glCompressedTexImage3D = (PFNGLCOMPRESSEDTEXIMAGE3DPROC)load("glCompressedTexImage3D"); - glad_glCompressedTexImage2D = (PFNGLCOMPRESSEDTEXIMAGE2DPROC)load("glCompressedTexImage2D"); - glad_glCompressedTexImage1D = (PFNGLCOMPRESSEDTEXIMAGE1DPROC)load("glCompressedTexImage1D"); - glad_glCompressedTexSubImage3D = (PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC)load("glCompressedTexSubImage3D"); - glad_glCompressedTexSubImage2D = (PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)load("glCompressedTexSubImage2D"); - glad_glCompressedTexSubImage1D = (PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC)load("glCompressedTexSubImage1D"); - glad_glGetCompressedTexImage = (PFNGLGETCOMPRESSEDTEXIMAGEPROC)load("glGetCompressedTexImage"); -} -static void load_GL_VERSION_1_4(GLADloadproc load) { - if(!GLAD_GL_VERSION_1_4) return; - glad_glBlendFuncSeparate = (PFNGLBLENDFUNCSEPARATEPROC)load("glBlendFuncSeparate"); - glad_glMultiDrawArrays = (PFNGLMULTIDRAWARRAYSPROC)load("glMultiDrawArrays"); - glad_glMultiDrawElements = (PFNGLMULTIDRAWELEMENTSPROC)load("glMultiDrawElements"); - glad_glPointParameterf = (PFNGLPOINTPARAMETERFPROC)load("glPointParameterf"); - glad_glPointParameterfv = (PFNGLPOINTPARAMETERFVPROC)load("glPointParameterfv"); - glad_glPointParameteri = (PFNGLPOINTPARAMETERIPROC)load("glPointParameteri"); - glad_glPointParameteriv = (PFNGLPOINTPARAMETERIVPROC)load("glPointParameteriv"); - glad_glBlendColor = (PFNGLBLENDCOLORPROC)load("glBlendColor"); - glad_glBlendEquation = (PFNGLBLENDEQUATIONPROC)load("glBlendEquation"); -} -static void load_GL_VERSION_1_5(GLADloadproc load) { - if(!GLAD_GL_VERSION_1_5) return; - glad_glGenQueries = (PFNGLGENQUERIESPROC)load("glGenQueries"); - glad_glDeleteQueries = (PFNGLDELETEQUERIESPROC)load("glDeleteQueries"); - glad_glIsQuery = (PFNGLISQUERYPROC)load("glIsQuery"); - glad_glBeginQuery = (PFNGLBEGINQUERYPROC)load("glBeginQuery"); - glad_glEndQuery = (PFNGLENDQUERYPROC)load("glEndQuery"); - glad_glGetQueryiv = (PFNGLGETQUERYIVPROC)load("glGetQueryiv"); - glad_glGetQueryObjectiv = (PFNGLGETQUERYOBJECTIVPROC)load("glGetQueryObjectiv"); - glad_glGetQueryObjectuiv = (PFNGLGETQUERYOBJECTUIVPROC)load("glGetQueryObjectuiv"); - glad_glBindBuffer = (PFNGLBINDBUFFERPROC)load("glBindBuffer"); - glad_glDeleteBuffers = (PFNGLDELETEBUFFERSPROC)load("glDeleteBuffers"); - glad_glGenBuffers = (PFNGLGENBUFFERSPROC)load("glGenBuffers"); - glad_glIsBuffer = (PFNGLISBUFFERPROC)load("glIsBuffer"); - glad_glBufferData = (PFNGLBUFFERDATAPROC)load("glBufferData"); - glad_glBufferSubData = (PFNGLBUFFERSUBDATAPROC)load("glBufferSubData"); - glad_glGetBufferSubData = (PFNGLGETBUFFERSUBDATAPROC)load("glGetBufferSubData"); - glad_glMapBuffer = (PFNGLMAPBUFFERPROC)load("glMapBuffer"); - glad_glUnmapBuffer = (PFNGLUNMAPBUFFERPROC)load("glUnmapBuffer"); - glad_glGetBufferParameteriv = (PFNGLGETBUFFERPARAMETERIVPROC)load("glGetBufferParameteriv"); - glad_glGetBufferPointerv = (PFNGLGETBUFFERPOINTERVPROC)load("glGetBufferPointerv"); -} -static void load_GL_VERSION_2_0(GLADloadproc load) { - if(!GLAD_GL_VERSION_2_0) return; - glad_glBlendEquationSeparate = (PFNGLBLENDEQUATIONSEPARATEPROC)load("glBlendEquationSeparate"); - glad_glDrawBuffers = (PFNGLDRAWBUFFERSPROC)load("glDrawBuffers"); - glad_glStencilOpSeparate = (PFNGLSTENCILOPSEPARATEPROC)load("glStencilOpSeparate"); - glad_glStencilFuncSeparate = (PFNGLSTENCILFUNCSEPARATEPROC)load("glStencilFuncSeparate"); - glad_glStencilMaskSeparate = (PFNGLSTENCILMASKSEPARATEPROC)load("glStencilMaskSeparate"); - glad_glAttachShader = (PFNGLATTACHSHADERPROC)load("glAttachShader"); - glad_glBindAttribLocation = (PFNGLBINDATTRIBLOCATIONPROC)load("glBindAttribLocation"); - glad_glCompileShader = (PFNGLCOMPILESHADERPROC)load("glCompileShader"); - glad_glCreateProgram = (PFNGLCREATEPROGRAMPROC)load("glCreateProgram"); - glad_glCreateShader = (PFNGLCREATESHADERPROC)load("glCreateShader"); - glad_glDeleteProgram = (PFNGLDELETEPROGRAMPROC)load("glDeleteProgram"); - glad_glDeleteShader = (PFNGLDELETESHADERPROC)load("glDeleteShader"); - glad_glDetachShader = (PFNGLDETACHSHADERPROC)load("glDetachShader"); - glad_glDisableVertexAttribArray = (PFNGLDISABLEVERTEXATTRIBARRAYPROC)load("glDisableVertexAttribArray"); - glad_glEnableVertexAttribArray = (PFNGLENABLEVERTEXATTRIBARRAYPROC)load("glEnableVertexAttribArray"); - glad_glGetActiveAttrib = (PFNGLGETACTIVEATTRIBPROC)load("glGetActiveAttrib"); - glad_glGetActiveUniform = (PFNGLGETACTIVEUNIFORMPROC)load("glGetActiveUniform"); - glad_glGetAttachedShaders = (PFNGLGETATTACHEDSHADERSPROC)load("glGetAttachedShaders"); - glad_glGetAttribLocation = (PFNGLGETATTRIBLOCATIONPROC)load("glGetAttribLocation"); - glad_glGetProgramiv = (PFNGLGETPROGRAMIVPROC)load("glGetProgramiv"); - glad_glGetProgramInfoLog = (PFNGLGETPROGRAMINFOLOGPROC)load("glGetProgramInfoLog"); - glad_glGetShaderiv = (PFNGLGETSHADERIVPROC)load("glGetShaderiv"); - glad_glGetShaderInfoLog = (PFNGLGETSHADERINFOLOGPROC)load("glGetShaderInfoLog"); - glad_glGetShaderSource = (PFNGLGETSHADERSOURCEPROC)load("glGetShaderSource"); - glad_glGetUniformLocation = (PFNGLGETUNIFORMLOCATIONPROC)load("glGetUniformLocation"); - glad_glGetUniformfv = (PFNGLGETUNIFORMFVPROC)load("glGetUniformfv"); - glad_glGetUniformiv = (PFNGLGETUNIFORMIVPROC)load("glGetUniformiv"); - glad_glGetVertexAttribdv = (PFNGLGETVERTEXATTRIBDVPROC)load("glGetVertexAttribdv"); - glad_glGetVertexAttribfv = (PFNGLGETVERTEXATTRIBFVPROC)load("glGetVertexAttribfv"); - glad_glGetVertexAttribiv = (PFNGLGETVERTEXATTRIBIVPROC)load("glGetVertexAttribiv"); - glad_glGetVertexAttribPointerv = (PFNGLGETVERTEXATTRIBPOINTERVPROC)load("glGetVertexAttribPointerv"); - glad_glIsProgram = (PFNGLISPROGRAMPROC)load("glIsProgram"); - glad_glIsShader = (PFNGLISSHADERPROC)load("glIsShader"); - glad_glLinkProgram = (PFNGLLINKPROGRAMPROC)load("glLinkProgram"); - glad_glShaderSource = (PFNGLSHADERSOURCEPROC)load("glShaderSource"); - glad_glUseProgram = (PFNGLUSEPROGRAMPROC)load("glUseProgram"); - glad_glUniform1f = (PFNGLUNIFORM1FPROC)load("glUniform1f"); - glad_glUniform2f = (PFNGLUNIFORM2FPROC)load("glUniform2f"); - glad_glUniform3f = (PFNGLUNIFORM3FPROC)load("glUniform3f"); - glad_glUniform4f = (PFNGLUNIFORM4FPROC)load("glUniform4f"); - glad_glUniform1i = (PFNGLUNIFORM1IPROC)load("glUniform1i"); - glad_glUniform2i = (PFNGLUNIFORM2IPROC)load("glUniform2i"); - glad_glUniform3i = (PFNGLUNIFORM3IPROC)load("glUniform3i"); - glad_glUniform4i = (PFNGLUNIFORM4IPROC)load("glUniform4i"); - glad_glUniform1fv = (PFNGLUNIFORM1FVPROC)load("glUniform1fv"); - glad_glUniform2fv = (PFNGLUNIFORM2FVPROC)load("glUniform2fv"); - glad_glUniform3fv = (PFNGLUNIFORM3FVPROC)load("glUniform3fv"); - glad_glUniform4fv = (PFNGLUNIFORM4FVPROC)load("glUniform4fv"); - glad_glUniform1iv = (PFNGLUNIFORM1IVPROC)load("glUniform1iv"); - glad_glUniform2iv = (PFNGLUNIFORM2IVPROC)load("glUniform2iv"); - glad_glUniform3iv = (PFNGLUNIFORM3IVPROC)load("glUniform3iv"); - glad_glUniform4iv = (PFNGLUNIFORM4IVPROC)load("glUniform4iv"); - glad_glUniformMatrix2fv = (PFNGLUNIFORMMATRIX2FVPROC)load("glUniformMatrix2fv"); - glad_glUniformMatrix3fv = (PFNGLUNIFORMMATRIX3FVPROC)load("glUniformMatrix3fv"); - glad_glUniformMatrix4fv = (PFNGLUNIFORMMATRIX4FVPROC)load("glUniformMatrix4fv"); - glad_glValidateProgram = (PFNGLVALIDATEPROGRAMPROC)load("glValidateProgram"); - glad_glVertexAttrib1d = (PFNGLVERTEXATTRIB1DPROC)load("glVertexAttrib1d"); - glad_glVertexAttrib1dv = (PFNGLVERTEXATTRIB1DVPROC)load("glVertexAttrib1dv"); - glad_glVertexAttrib1f = (PFNGLVERTEXATTRIB1FPROC)load("glVertexAttrib1f"); - glad_glVertexAttrib1fv = (PFNGLVERTEXATTRIB1FVPROC)load("glVertexAttrib1fv"); - glad_glVertexAttrib1s = (PFNGLVERTEXATTRIB1SPROC)load("glVertexAttrib1s"); - glad_glVertexAttrib1sv = (PFNGLVERTEXATTRIB1SVPROC)load("glVertexAttrib1sv"); - glad_glVertexAttrib2d = (PFNGLVERTEXATTRIB2DPROC)load("glVertexAttrib2d"); - glad_glVertexAttrib2dv = (PFNGLVERTEXATTRIB2DVPROC)load("glVertexAttrib2dv"); - glad_glVertexAttrib2f = (PFNGLVERTEXATTRIB2FPROC)load("glVertexAttrib2f"); - glad_glVertexAttrib2fv = (PFNGLVERTEXATTRIB2FVPROC)load("glVertexAttrib2fv"); - glad_glVertexAttrib2s = (PFNGLVERTEXATTRIB2SPROC)load("glVertexAttrib2s"); - glad_glVertexAttrib2sv = (PFNGLVERTEXATTRIB2SVPROC)load("glVertexAttrib2sv"); - glad_glVertexAttrib3d = (PFNGLVERTEXATTRIB3DPROC)load("glVertexAttrib3d"); - glad_glVertexAttrib3dv = (PFNGLVERTEXATTRIB3DVPROC)load("glVertexAttrib3dv"); - glad_glVertexAttrib3f = (PFNGLVERTEXATTRIB3FPROC)load("glVertexAttrib3f"); - glad_glVertexAttrib3fv = (PFNGLVERTEXATTRIB3FVPROC)load("glVertexAttrib3fv"); - glad_glVertexAttrib3s = (PFNGLVERTEXATTRIB3SPROC)load("glVertexAttrib3s"); - glad_glVertexAttrib3sv = (PFNGLVERTEXATTRIB3SVPROC)load("glVertexAttrib3sv"); - glad_glVertexAttrib4Nbv = (PFNGLVERTEXATTRIB4NBVPROC)load("glVertexAttrib4Nbv"); - glad_glVertexAttrib4Niv = (PFNGLVERTEXATTRIB4NIVPROC)load("glVertexAttrib4Niv"); - glad_glVertexAttrib4Nsv = (PFNGLVERTEXATTRIB4NSVPROC)load("glVertexAttrib4Nsv"); - glad_glVertexAttrib4Nub = (PFNGLVERTEXATTRIB4NUBPROC)load("glVertexAttrib4Nub"); - glad_glVertexAttrib4Nubv = (PFNGLVERTEXATTRIB4NUBVPROC)load("glVertexAttrib4Nubv"); - glad_glVertexAttrib4Nuiv = (PFNGLVERTEXATTRIB4NUIVPROC)load("glVertexAttrib4Nuiv"); - glad_glVertexAttrib4Nusv = (PFNGLVERTEXATTRIB4NUSVPROC)load("glVertexAttrib4Nusv"); - glad_glVertexAttrib4bv = (PFNGLVERTEXATTRIB4BVPROC)load("glVertexAttrib4bv"); - glad_glVertexAttrib4d = (PFNGLVERTEXATTRIB4DPROC)load("glVertexAttrib4d"); - glad_glVertexAttrib4dv = (PFNGLVERTEXATTRIB4DVPROC)load("glVertexAttrib4dv"); - glad_glVertexAttrib4f = (PFNGLVERTEXATTRIB4FPROC)load("glVertexAttrib4f"); - glad_glVertexAttrib4fv = (PFNGLVERTEXATTRIB4FVPROC)load("glVertexAttrib4fv"); - glad_glVertexAttrib4iv = (PFNGLVERTEXATTRIB4IVPROC)load("glVertexAttrib4iv"); - glad_glVertexAttrib4s = (PFNGLVERTEXATTRIB4SPROC)load("glVertexAttrib4s"); - glad_glVertexAttrib4sv = (PFNGLVERTEXATTRIB4SVPROC)load("glVertexAttrib4sv"); - glad_glVertexAttrib4ubv = (PFNGLVERTEXATTRIB4UBVPROC)load("glVertexAttrib4ubv"); - glad_glVertexAttrib4uiv = (PFNGLVERTEXATTRIB4UIVPROC)load("glVertexAttrib4uiv"); - glad_glVertexAttrib4usv = (PFNGLVERTEXATTRIB4USVPROC)load("glVertexAttrib4usv"); - glad_glVertexAttribPointer = (PFNGLVERTEXATTRIBPOINTERPROC)load("glVertexAttribPointer"); -} -static void load_GL_VERSION_2_1(GLADloadproc load) { - if(!GLAD_GL_VERSION_2_1) return; - glad_glUniformMatrix2x3fv = (PFNGLUNIFORMMATRIX2X3FVPROC)load("glUniformMatrix2x3fv"); - glad_glUniformMatrix3x2fv = (PFNGLUNIFORMMATRIX3X2FVPROC)load("glUniformMatrix3x2fv"); - glad_glUniformMatrix2x4fv = (PFNGLUNIFORMMATRIX2X4FVPROC)load("glUniformMatrix2x4fv"); - glad_glUniformMatrix4x2fv = (PFNGLUNIFORMMATRIX4X2FVPROC)load("glUniformMatrix4x2fv"); - glad_glUniformMatrix3x4fv = (PFNGLUNIFORMMATRIX3X4FVPROC)load("glUniformMatrix3x4fv"); - glad_glUniformMatrix4x3fv = (PFNGLUNIFORMMATRIX4X3FVPROC)load("glUniformMatrix4x3fv"); -} -static void load_GL_VERSION_3_0(GLADloadproc load) { - if(!GLAD_GL_VERSION_3_0) return; - glad_glColorMaski = (PFNGLCOLORMASKIPROC)load("glColorMaski"); - glad_glGetBooleani_v = (PFNGLGETBOOLEANI_VPROC)load("glGetBooleani_v"); - glad_glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC)load("glGetIntegeri_v"); - glad_glEnablei = (PFNGLENABLEIPROC)load("glEnablei"); - glad_glDisablei = (PFNGLDISABLEIPROC)load("glDisablei"); - glad_glIsEnabledi = (PFNGLISENABLEDIPROC)load("glIsEnabledi"); - glad_glBeginTransformFeedback = (PFNGLBEGINTRANSFORMFEEDBACKPROC)load("glBeginTransformFeedback"); - glad_glEndTransformFeedback = (PFNGLENDTRANSFORMFEEDBACKPROC)load("glEndTransformFeedback"); - glad_glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC)load("glBindBufferRange"); - glad_glBindBufferBase = (PFNGLBINDBUFFERBASEPROC)load("glBindBufferBase"); - glad_glTransformFeedbackVaryings = (PFNGLTRANSFORMFEEDBACKVARYINGSPROC)load("glTransformFeedbackVaryings"); - glad_glGetTransformFeedbackVarying = (PFNGLGETTRANSFORMFEEDBACKVARYINGPROC)load("glGetTransformFeedbackVarying"); - glad_glClampColor = (PFNGLCLAMPCOLORPROC)load("glClampColor"); - glad_glBeginConditionalRender = (PFNGLBEGINCONDITIONALRENDERPROC)load("glBeginConditionalRender"); - glad_glEndConditionalRender = (PFNGLENDCONDITIONALRENDERPROC)load("glEndConditionalRender"); - glad_glVertexAttribIPointer = (PFNGLVERTEXATTRIBIPOINTERPROC)load("glVertexAttribIPointer"); - glad_glGetVertexAttribIiv = (PFNGLGETVERTEXATTRIBIIVPROC)load("glGetVertexAttribIiv"); - glad_glGetVertexAttribIuiv = (PFNGLGETVERTEXATTRIBIUIVPROC)load("glGetVertexAttribIuiv"); - glad_glVertexAttribI1i = (PFNGLVERTEXATTRIBI1IPROC)load("glVertexAttribI1i"); - glad_glVertexAttribI2i = (PFNGLVERTEXATTRIBI2IPROC)load("glVertexAttribI2i"); - glad_glVertexAttribI3i = (PFNGLVERTEXATTRIBI3IPROC)load("glVertexAttribI3i"); - glad_glVertexAttribI4i = (PFNGLVERTEXATTRIBI4IPROC)load("glVertexAttribI4i"); - glad_glVertexAttribI1ui = (PFNGLVERTEXATTRIBI1UIPROC)load("glVertexAttribI1ui"); - glad_glVertexAttribI2ui = (PFNGLVERTEXATTRIBI2UIPROC)load("glVertexAttribI2ui"); - glad_glVertexAttribI3ui = (PFNGLVERTEXATTRIBI3UIPROC)load("glVertexAttribI3ui"); - glad_glVertexAttribI4ui = (PFNGLVERTEXATTRIBI4UIPROC)load("glVertexAttribI4ui"); - glad_glVertexAttribI1iv = (PFNGLVERTEXATTRIBI1IVPROC)load("glVertexAttribI1iv"); - glad_glVertexAttribI2iv = (PFNGLVERTEXATTRIBI2IVPROC)load("glVertexAttribI2iv"); - glad_glVertexAttribI3iv = (PFNGLVERTEXATTRIBI3IVPROC)load("glVertexAttribI3iv"); - glad_glVertexAttribI4iv = (PFNGLVERTEXATTRIBI4IVPROC)load("glVertexAttribI4iv"); - glad_glVertexAttribI1uiv = (PFNGLVERTEXATTRIBI1UIVPROC)load("glVertexAttribI1uiv"); - glad_glVertexAttribI2uiv = (PFNGLVERTEXATTRIBI2UIVPROC)load("glVertexAttribI2uiv"); - glad_glVertexAttribI3uiv = (PFNGLVERTEXATTRIBI3UIVPROC)load("glVertexAttribI3uiv"); - glad_glVertexAttribI4uiv = (PFNGLVERTEXATTRIBI4UIVPROC)load("glVertexAttribI4uiv"); - glad_glVertexAttribI4bv = (PFNGLVERTEXATTRIBI4BVPROC)load("glVertexAttribI4bv"); - glad_glVertexAttribI4sv = (PFNGLVERTEXATTRIBI4SVPROC)load("glVertexAttribI4sv"); - glad_glVertexAttribI4ubv = (PFNGLVERTEXATTRIBI4UBVPROC)load("glVertexAttribI4ubv"); - glad_glVertexAttribI4usv = (PFNGLVERTEXATTRIBI4USVPROC)load("glVertexAttribI4usv"); - glad_glGetUniformuiv = (PFNGLGETUNIFORMUIVPROC)load("glGetUniformuiv"); - glad_glBindFragDataLocation = (PFNGLBINDFRAGDATALOCATIONPROC)load("glBindFragDataLocation"); - glad_glGetFragDataLocation = (PFNGLGETFRAGDATALOCATIONPROC)load("glGetFragDataLocation"); - glad_glUniform1ui = (PFNGLUNIFORM1UIPROC)load("glUniform1ui"); - glad_glUniform2ui = (PFNGLUNIFORM2UIPROC)load("glUniform2ui"); - glad_glUniform3ui = (PFNGLUNIFORM3UIPROC)load("glUniform3ui"); - glad_glUniform4ui = (PFNGLUNIFORM4UIPROC)load("glUniform4ui"); - glad_glUniform1uiv = (PFNGLUNIFORM1UIVPROC)load("glUniform1uiv"); - glad_glUniform2uiv = (PFNGLUNIFORM2UIVPROC)load("glUniform2uiv"); - glad_glUniform3uiv = (PFNGLUNIFORM3UIVPROC)load("glUniform3uiv"); - glad_glUniform4uiv = (PFNGLUNIFORM4UIVPROC)load("glUniform4uiv"); - glad_glTexParameterIiv = (PFNGLTEXPARAMETERIIVPROC)load("glTexParameterIiv"); - glad_glTexParameterIuiv = (PFNGLTEXPARAMETERIUIVPROC)load("glTexParameterIuiv"); - glad_glGetTexParameterIiv = (PFNGLGETTEXPARAMETERIIVPROC)load("glGetTexParameterIiv"); - glad_glGetTexParameterIuiv = (PFNGLGETTEXPARAMETERIUIVPROC)load("glGetTexParameterIuiv"); - glad_glClearBufferiv = (PFNGLCLEARBUFFERIVPROC)load("glClearBufferiv"); - glad_glClearBufferuiv = (PFNGLCLEARBUFFERUIVPROC)load("glClearBufferuiv"); - glad_glClearBufferfv = (PFNGLCLEARBUFFERFVPROC)load("glClearBufferfv"); - glad_glClearBufferfi = (PFNGLCLEARBUFFERFIPROC)load("glClearBufferfi"); - glad_glGetStringi = (PFNGLGETSTRINGIPROC)load("glGetStringi"); - glad_glIsRenderbuffer = (PFNGLISRENDERBUFFERPROC)load("glIsRenderbuffer"); - glad_glBindRenderbuffer = (PFNGLBINDRENDERBUFFERPROC)load("glBindRenderbuffer"); - glad_glDeleteRenderbuffers = (PFNGLDELETERENDERBUFFERSPROC)load("glDeleteRenderbuffers"); - glad_glGenRenderbuffers = (PFNGLGENRENDERBUFFERSPROC)load("glGenRenderbuffers"); - glad_glRenderbufferStorage = (PFNGLRENDERBUFFERSTORAGEPROC)load("glRenderbufferStorage"); - glad_glGetRenderbufferParameteriv = (PFNGLGETRENDERBUFFERPARAMETERIVPROC)load("glGetRenderbufferParameteriv"); - glad_glIsFramebuffer = (PFNGLISFRAMEBUFFERPROC)load("glIsFramebuffer"); - glad_glBindFramebuffer = (PFNGLBINDFRAMEBUFFERPROC)load("glBindFramebuffer"); - glad_glDeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSPROC)load("glDeleteFramebuffers"); - glad_glGenFramebuffers = (PFNGLGENFRAMEBUFFERSPROC)load("glGenFramebuffers"); - glad_glCheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSPROC)load("glCheckFramebufferStatus"); - glad_glFramebufferTexture1D = (PFNGLFRAMEBUFFERTEXTURE1DPROC)load("glFramebufferTexture1D"); - glad_glFramebufferTexture2D = (PFNGLFRAMEBUFFERTEXTURE2DPROC)load("glFramebufferTexture2D"); - glad_glFramebufferTexture3D = (PFNGLFRAMEBUFFERTEXTURE3DPROC)load("glFramebufferTexture3D"); - glad_glFramebufferRenderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFERPROC)load("glFramebufferRenderbuffer"); - glad_glGetFramebufferAttachmentParameteriv = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)load("glGetFramebufferAttachmentParameteriv"); - glad_glGenerateMipmap = (PFNGLGENERATEMIPMAPPROC)load("glGenerateMipmap"); - glad_glBlitFramebuffer = (PFNGLBLITFRAMEBUFFERPROC)load("glBlitFramebuffer"); - glad_glRenderbufferStorageMultisample = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)load("glRenderbufferStorageMultisample"); - glad_glFramebufferTextureLayer = (PFNGLFRAMEBUFFERTEXTURELAYERPROC)load("glFramebufferTextureLayer"); - glad_glMapBufferRange = (PFNGLMAPBUFFERRANGEPROC)load("glMapBufferRange"); - glad_glFlushMappedBufferRange = (PFNGLFLUSHMAPPEDBUFFERRANGEPROC)load("glFlushMappedBufferRange"); - glad_glBindVertexArray = (PFNGLBINDVERTEXARRAYPROC)load("glBindVertexArray"); - glad_glDeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSPROC)load("glDeleteVertexArrays"); - glad_glGenVertexArrays = (PFNGLGENVERTEXARRAYSPROC)load("glGenVertexArrays"); - glad_glIsVertexArray = (PFNGLISVERTEXARRAYPROC)load("glIsVertexArray"); -} -static void load_GL_VERSION_3_1(GLADloadproc load) { - if(!GLAD_GL_VERSION_3_1) return; - glad_glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDPROC)load("glDrawArraysInstanced"); - glad_glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDPROC)load("glDrawElementsInstanced"); - glad_glTexBuffer = (PFNGLTEXBUFFERPROC)load("glTexBuffer"); - glad_glPrimitiveRestartIndex = (PFNGLPRIMITIVERESTARTINDEXPROC)load("glPrimitiveRestartIndex"); - glad_glCopyBufferSubData = (PFNGLCOPYBUFFERSUBDATAPROC)load("glCopyBufferSubData"); - glad_glGetUniformIndices = (PFNGLGETUNIFORMINDICESPROC)load("glGetUniformIndices"); - glad_glGetActiveUniformsiv = (PFNGLGETACTIVEUNIFORMSIVPROC)load("glGetActiveUniformsiv"); - glad_glGetActiveUniformName = (PFNGLGETACTIVEUNIFORMNAMEPROC)load("glGetActiveUniformName"); - glad_glGetUniformBlockIndex = (PFNGLGETUNIFORMBLOCKINDEXPROC)load("glGetUniformBlockIndex"); - glad_glGetActiveUniformBlockiv = (PFNGLGETACTIVEUNIFORMBLOCKIVPROC)load("glGetActiveUniformBlockiv"); - glad_glGetActiveUniformBlockName = (PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC)load("glGetActiveUniformBlockName"); - glad_glUniformBlockBinding = (PFNGLUNIFORMBLOCKBINDINGPROC)load("glUniformBlockBinding"); - glad_glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC)load("glBindBufferRange"); - glad_glBindBufferBase = (PFNGLBINDBUFFERBASEPROC)load("glBindBufferBase"); - glad_glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC)load("glGetIntegeri_v"); -} -static void load_GL_VERSION_3_2(GLADloadproc load) { - if(!GLAD_GL_VERSION_3_2) return; - glad_glDrawElementsBaseVertex = (PFNGLDRAWELEMENTSBASEVERTEXPROC)load("glDrawElementsBaseVertex"); - glad_glDrawRangeElementsBaseVertex = (PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC)load("glDrawRangeElementsBaseVertex"); - glad_glDrawElementsInstancedBaseVertex = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC)load("glDrawElementsInstancedBaseVertex"); - glad_glMultiDrawElementsBaseVertex = (PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC)load("glMultiDrawElementsBaseVertex"); - glad_glProvokingVertex = (PFNGLPROVOKINGVERTEXPROC)load("glProvokingVertex"); - glad_glFenceSync = (PFNGLFENCESYNCPROC)load("glFenceSync"); - glad_glIsSync = (PFNGLISSYNCPROC)load("glIsSync"); - glad_glDeleteSync = (PFNGLDELETESYNCPROC)load("glDeleteSync"); - glad_glClientWaitSync = (PFNGLCLIENTWAITSYNCPROC)load("glClientWaitSync"); - glad_glWaitSync = (PFNGLWAITSYNCPROC)load("glWaitSync"); - glad_glGetInteger64v = (PFNGLGETINTEGER64VPROC)load("glGetInteger64v"); - glad_glGetSynciv = (PFNGLGETSYNCIVPROC)load("glGetSynciv"); - glad_glGetInteger64i_v = (PFNGLGETINTEGER64I_VPROC)load("glGetInteger64i_v"); - glad_glGetBufferParameteri64v = (PFNGLGETBUFFERPARAMETERI64VPROC)load("glGetBufferParameteri64v"); - glad_glFramebufferTexture = (PFNGLFRAMEBUFFERTEXTUREPROC)load("glFramebufferTexture"); - glad_glTexImage2DMultisample = (PFNGLTEXIMAGE2DMULTISAMPLEPROC)load("glTexImage2DMultisample"); - glad_glTexImage3DMultisample = (PFNGLTEXIMAGE3DMULTISAMPLEPROC)load("glTexImage3DMultisample"); - glad_glGetMultisamplefv = (PFNGLGETMULTISAMPLEFVPROC)load("glGetMultisamplefv"); - glad_glSampleMaski = (PFNGLSAMPLEMASKIPROC)load("glSampleMaski"); -} -static void load_GL_VERSION_3_3(GLADloadproc load) { - if(!GLAD_GL_VERSION_3_3) return; - glad_glBindFragDataLocationIndexed = (PFNGLBINDFRAGDATALOCATIONINDEXEDPROC)load("glBindFragDataLocationIndexed"); - glad_glGetFragDataIndex = (PFNGLGETFRAGDATAINDEXPROC)load("glGetFragDataIndex"); - glad_glGenSamplers = (PFNGLGENSAMPLERSPROC)load("glGenSamplers"); - glad_glDeleteSamplers = (PFNGLDELETESAMPLERSPROC)load("glDeleteSamplers"); - glad_glIsSampler = (PFNGLISSAMPLERPROC)load("glIsSampler"); - glad_glBindSampler = (PFNGLBINDSAMPLERPROC)load("glBindSampler"); - glad_glSamplerParameteri = (PFNGLSAMPLERPARAMETERIPROC)load("glSamplerParameteri"); - glad_glSamplerParameteriv = (PFNGLSAMPLERPARAMETERIVPROC)load("glSamplerParameteriv"); - glad_glSamplerParameterf = (PFNGLSAMPLERPARAMETERFPROC)load("glSamplerParameterf"); - glad_glSamplerParameterfv = (PFNGLSAMPLERPARAMETERFVPROC)load("glSamplerParameterfv"); - glad_glSamplerParameterIiv = (PFNGLSAMPLERPARAMETERIIVPROC)load("glSamplerParameterIiv"); - glad_glSamplerParameterIuiv = (PFNGLSAMPLERPARAMETERIUIVPROC)load("glSamplerParameterIuiv"); - glad_glGetSamplerParameteriv = (PFNGLGETSAMPLERPARAMETERIVPROC)load("glGetSamplerParameteriv"); - glad_glGetSamplerParameterIiv = (PFNGLGETSAMPLERPARAMETERIIVPROC)load("glGetSamplerParameterIiv"); - glad_glGetSamplerParameterfv = (PFNGLGETSAMPLERPARAMETERFVPROC)load("glGetSamplerParameterfv"); - glad_glGetSamplerParameterIuiv = (PFNGLGETSAMPLERPARAMETERIUIVPROC)load("glGetSamplerParameterIuiv"); - glad_glQueryCounter = (PFNGLQUERYCOUNTERPROC)load("glQueryCounter"); - glad_glGetQueryObjecti64v = (PFNGLGETQUERYOBJECTI64VPROC)load("glGetQueryObjecti64v"); - glad_glGetQueryObjectui64v = (PFNGLGETQUERYOBJECTUI64VPROC)load("glGetQueryObjectui64v"); - glad_glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISORPROC)load("glVertexAttribDivisor"); - glad_glVertexAttribP1ui = (PFNGLVERTEXATTRIBP1UIPROC)load("glVertexAttribP1ui"); - glad_glVertexAttribP1uiv = (PFNGLVERTEXATTRIBP1UIVPROC)load("glVertexAttribP1uiv"); - glad_glVertexAttribP2ui = (PFNGLVERTEXATTRIBP2UIPROC)load("glVertexAttribP2ui"); - glad_glVertexAttribP2uiv = (PFNGLVERTEXATTRIBP2UIVPROC)load("glVertexAttribP2uiv"); - glad_glVertexAttribP3ui = (PFNGLVERTEXATTRIBP3UIPROC)load("glVertexAttribP3ui"); - glad_glVertexAttribP3uiv = (PFNGLVERTEXATTRIBP3UIVPROC)load("glVertexAttribP3uiv"); - glad_glVertexAttribP4ui = (PFNGLVERTEXATTRIBP4UIPROC)load("glVertexAttribP4ui"); - glad_glVertexAttribP4uiv = (PFNGLVERTEXATTRIBP4UIVPROC)load("glVertexAttribP4uiv"); - glad_glVertexP2ui = (PFNGLVERTEXP2UIPROC)load("glVertexP2ui"); - glad_glVertexP2uiv = (PFNGLVERTEXP2UIVPROC)load("glVertexP2uiv"); - glad_glVertexP3ui = (PFNGLVERTEXP3UIPROC)load("glVertexP3ui"); - glad_glVertexP3uiv = (PFNGLVERTEXP3UIVPROC)load("glVertexP3uiv"); - glad_glVertexP4ui = (PFNGLVERTEXP4UIPROC)load("glVertexP4ui"); - glad_glVertexP4uiv = (PFNGLVERTEXP4UIVPROC)load("glVertexP4uiv"); - glad_glTexCoordP1ui = (PFNGLTEXCOORDP1UIPROC)load("glTexCoordP1ui"); - glad_glTexCoordP1uiv = (PFNGLTEXCOORDP1UIVPROC)load("glTexCoordP1uiv"); - glad_glTexCoordP2ui = (PFNGLTEXCOORDP2UIPROC)load("glTexCoordP2ui"); - glad_glTexCoordP2uiv = (PFNGLTEXCOORDP2UIVPROC)load("glTexCoordP2uiv"); - glad_glTexCoordP3ui = (PFNGLTEXCOORDP3UIPROC)load("glTexCoordP3ui"); - glad_glTexCoordP3uiv = (PFNGLTEXCOORDP3UIVPROC)load("glTexCoordP3uiv"); - glad_glTexCoordP4ui = (PFNGLTEXCOORDP4UIPROC)load("glTexCoordP4ui"); - glad_glTexCoordP4uiv = (PFNGLTEXCOORDP4UIVPROC)load("glTexCoordP4uiv"); - glad_glMultiTexCoordP1ui = (PFNGLMULTITEXCOORDP1UIPROC)load("glMultiTexCoordP1ui"); - glad_glMultiTexCoordP1uiv = (PFNGLMULTITEXCOORDP1UIVPROC)load("glMultiTexCoordP1uiv"); - glad_glMultiTexCoordP2ui = (PFNGLMULTITEXCOORDP2UIPROC)load("glMultiTexCoordP2ui"); - glad_glMultiTexCoordP2uiv = (PFNGLMULTITEXCOORDP2UIVPROC)load("glMultiTexCoordP2uiv"); - glad_glMultiTexCoordP3ui = (PFNGLMULTITEXCOORDP3UIPROC)load("glMultiTexCoordP3ui"); - glad_glMultiTexCoordP3uiv = (PFNGLMULTITEXCOORDP3UIVPROC)load("glMultiTexCoordP3uiv"); - glad_glMultiTexCoordP4ui = (PFNGLMULTITEXCOORDP4UIPROC)load("glMultiTexCoordP4ui"); - glad_glMultiTexCoordP4uiv = (PFNGLMULTITEXCOORDP4UIVPROC)load("glMultiTexCoordP4uiv"); - glad_glNormalP3ui = (PFNGLNORMALP3UIPROC)load("glNormalP3ui"); - glad_glNormalP3uiv = (PFNGLNORMALP3UIVPROC)load("glNormalP3uiv"); - glad_glColorP3ui = (PFNGLCOLORP3UIPROC)load("glColorP3ui"); - glad_glColorP3uiv = (PFNGLCOLORP3UIVPROC)load("glColorP3uiv"); - glad_glColorP4ui = (PFNGLCOLORP4UIPROC)load("glColorP4ui"); - glad_glColorP4uiv = (PFNGLCOLORP4UIVPROC)load("glColorP4uiv"); - glad_glSecondaryColorP3ui = (PFNGLSECONDARYCOLORP3UIPROC)load("glSecondaryColorP3ui"); - glad_glSecondaryColorP3uiv = (PFNGLSECONDARYCOLORP3UIVPROC)load("glSecondaryColorP3uiv"); -} -static void load_GL_AMD_debug_output(GLADloadproc load) { - if(!GLAD_GL_AMD_debug_output) return; - glad_glDebugMessageEnableAMD = (PFNGLDEBUGMESSAGEENABLEAMDPROC)load("glDebugMessageEnableAMD"); - glad_glDebugMessageInsertAMD = (PFNGLDEBUGMESSAGEINSERTAMDPROC)load("glDebugMessageInsertAMD"); - glad_glDebugMessageCallbackAMD = (PFNGLDEBUGMESSAGECALLBACKAMDPROC)load("glDebugMessageCallbackAMD"); - glad_glGetDebugMessageLogAMD = (PFNGLGETDEBUGMESSAGELOGAMDPROC)load("glGetDebugMessageLogAMD"); -} -static void load_GL_ARB_ES2_compatibility(GLADloadproc load) { - if(!GLAD_GL_ARB_ES2_compatibility) return; - glad_glReleaseShaderCompiler = (PFNGLRELEASESHADERCOMPILERPROC)load("glReleaseShaderCompiler"); - glad_glShaderBinary = (PFNGLSHADERBINARYPROC)load("glShaderBinary"); - glad_glGetShaderPrecisionFormat = (PFNGLGETSHADERPRECISIONFORMATPROC)load("glGetShaderPrecisionFormat"); - glad_glDepthRangef = (PFNGLDEPTHRANGEFPROC)load("glDepthRangef"); - glad_glClearDepthf = (PFNGLCLEARDEPTHFPROC)load("glClearDepthf"); -} -static void load_GL_ARB_buffer_storage(GLADloadproc load) { - if(!GLAD_GL_ARB_buffer_storage) return; - glad_glBufferStorage = (PFNGLBUFFERSTORAGEPROC)load("glBufferStorage"); -} -static void load_GL_ARB_debug_output(GLADloadproc load) { - if(!GLAD_GL_ARB_debug_output) return; - glad_glDebugMessageControlARB = (PFNGLDEBUGMESSAGECONTROLARBPROC)load("glDebugMessageControlARB"); - glad_glDebugMessageInsertARB = (PFNGLDEBUGMESSAGEINSERTARBPROC)load("glDebugMessageInsertARB"); - glad_glDebugMessageCallbackARB = (PFNGLDEBUGMESSAGECALLBACKARBPROC)load("glDebugMessageCallbackARB"); - glad_glGetDebugMessageLogARB = (PFNGLGETDEBUGMESSAGELOGARBPROC)load("glGetDebugMessageLogARB"); -} -static void load_GL_ARB_draw_buffers(GLADloadproc load) { - if(!GLAD_GL_ARB_draw_buffers) return; - glad_glDrawBuffersARB = (PFNGLDRAWBUFFERSARBPROC)load("glDrawBuffersARB"); -} -static void load_GL_ARB_draw_buffers_blend(GLADloadproc load) { - if(!GLAD_GL_ARB_draw_buffers_blend) return; - glad_glBlendEquationiARB = (PFNGLBLENDEQUATIONIARBPROC)load("glBlendEquationiARB"); - glad_glBlendEquationSeparateiARB = (PFNGLBLENDEQUATIONSEPARATEIARBPROC)load("glBlendEquationSeparateiARB"); - glad_glBlendFunciARB = (PFNGLBLENDFUNCIARBPROC)load("glBlendFunciARB"); - glad_glBlendFuncSeparateiARB = (PFNGLBLENDFUNCSEPARATEIARBPROC)load("glBlendFuncSeparateiARB"); -} -static void load_GL_ARB_fragment_program(GLADloadproc load) { - if(!GLAD_GL_ARB_fragment_program) return; - glad_glProgramStringARB = (PFNGLPROGRAMSTRINGARBPROC)load("glProgramStringARB"); - glad_glBindProgramARB = (PFNGLBINDPROGRAMARBPROC)load("glBindProgramARB"); - glad_glDeleteProgramsARB = (PFNGLDELETEPROGRAMSARBPROC)load("glDeleteProgramsARB"); - glad_glGenProgramsARB = (PFNGLGENPROGRAMSARBPROC)load("glGenProgramsARB"); - glad_glProgramEnvParameter4dARB = (PFNGLPROGRAMENVPARAMETER4DARBPROC)load("glProgramEnvParameter4dARB"); - glad_glProgramEnvParameter4dvARB = (PFNGLPROGRAMENVPARAMETER4DVARBPROC)load("glProgramEnvParameter4dvARB"); - glad_glProgramEnvParameter4fARB = (PFNGLPROGRAMENVPARAMETER4FARBPROC)load("glProgramEnvParameter4fARB"); - glad_glProgramEnvParameter4fvARB = (PFNGLPROGRAMENVPARAMETER4FVARBPROC)load("glProgramEnvParameter4fvARB"); - glad_glProgramLocalParameter4dARB = (PFNGLPROGRAMLOCALPARAMETER4DARBPROC)load("glProgramLocalParameter4dARB"); - glad_glProgramLocalParameter4dvARB = (PFNGLPROGRAMLOCALPARAMETER4DVARBPROC)load("glProgramLocalParameter4dvARB"); - glad_glProgramLocalParameter4fARB = (PFNGLPROGRAMLOCALPARAMETER4FARBPROC)load("glProgramLocalParameter4fARB"); - glad_glProgramLocalParameter4fvARB = (PFNGLPROGRAMLOCALPARAMETER4FVARBPROC)load("glProgramLocalParameter4fvARB"); - glad_glGetProgramEnvParameterdvARB = (PFNGLGETPROGRAMENVPARAMETERDVARBPROC)load("glGetProgramEnvParameterdvARB"); - glad_glGetProgramEnvParameterfvARB = (PFNGLGETPROGRAMENVPARAMETERFVARBPROC)load("glGetProgramEnvParameterfvARB"); - glad_glGetProgramLocalParameterdvARB = (PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC)load("glGetProgramLocalParameterdvARB"); - glad_glGetProgramLocalParameterfvARB = (PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC)load("glGetProgramLocalParameterfvARB"); - glad_glGetProgramivARB = (PFNGLGETPROGRAMIVARBPROC)load("glGetProgramivARB"); - glad_glGetProgramStringARB = (PFNGLGETPROGRAMSTRINGARBPROC)load("glGetProgramStringARB"); - glad_glIsProgramARB = (PFNGLISPROGRAMARBPROC)load("glIsProgramARB"); -} -static void load_GL_ARB_framebuffer_object(GLADloadproc load) { - if(!GLAD_GL_ARB_framebuffer_object) return; - glad_glIsRenderbuffer = (PFNGLISRENDERBUFFERPROC)load("glIsRenderbuffer"); - glad_glBindRenderbuffer = (PFNGLBINDRENDERBUFFERPROC)load("glBindRenderbuffer"); - glad_glDeleteRenderbuffers = (PFNGLDELETERENDERBUFFERSPROC)load("glDeleteRenderbuffers"); - glad_glGenRenderbuffers = (PFNGLGENRENDERBUFFERSPROC)load("glGenRenderbuffers"); - glad_glRenderbufferStorage = (PFNGLRENDERBUFFERSTORAGEPROC)load("glRenderbufferStorage"); - glad_glGetRenderbufferParameteriv = (PFNGLGETRENDERBUFFERPARAMETERIVPROC)load("glGetRenderbufferParameteriv"); - glad_glIsFramebuffer = (PFNGLISFRAMEBUFFERPROC)load("glIsFramebuffer"); - glad_glBindFramebuffer = (PFNGLBINDFRAMEBUFFERPROC)load("glBindFramebuffer"); - glad_glDeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSPROC)load("glDeleteFramebuffers"); - glad_glGenFramebuffers = (PFNGLGENFRAMEBUFFERSPROC)load("glGenFramebuffers"); - glad_glCheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSPROC)load("glCheckFramebufferStatus"); - glad_glFramebufferTexture1D = (PFNGLFRAMEBUFFERTEXTURE1DPROC)load("glFramebufferTexture1D"); - glad_glFramebufferTexture2D = (PFNGLFRAMEBUFFERTEXTURE2DPROC)load("glFramebufferTexture2D"); - glad_glFramebufferTexture3D = (PFNGLFRAMEBUFFERTEXTURE3DPROC)load("glFramebufferTexture3D"); - glad_glFramebufferRenderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFERPROC)load("glFramebufferRenderbuffer"); - glad_glGetFramebufferAttachmentParameteriv = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)load("glGetFramebufferAttachmentParameteriv"); - glad_glGenerateMipmap = (PFNGLGENERATEMIPMAPPROC)load("glGenerateMipmap"); - glad_glBlitFramebuffer = (PFNGLBLITFRAMEBUFFERPROC)load("glBlitFramebuffer"); - glad_glRenderbufferStorageMultisample = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)load("glRenderbufferStorageMultisample"); - glad_glFramebufferTextureLayer = (PFNGLFRAMEBUFFERTEXTURELAYERPROC)load("glFramebufferTextureLayer"); -} -static void load_GL_ARB_multisample(GLADloadproc load) { - if(!GLAD_GL_ARB_multisample) return; - glad_glSampleCoverageARB = (PFNGLSAMPLECOVERAGEARBPROC)load("glSampleCoverageARB"); -} -static void load_GL_ARB_sample_locations(GLADloadproc load) { - if(!GLAD_GL_ARB_sample_locations) return; - glad_glFramebufferSampleLocationsfvARB = (PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC)load("glFramebufferSampleLocationsfvARB"); - glad_glNamedFramebufferSampleLocationsfvARB = (PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC)load("glNamedFramebufferSampleLocationsfvARB"); - glad_glEvaluateDepthValuesARB = (PFNGLEVALUATEDEPTHVALUESARBPROC)load("glEvaluateDepthValuesARB"); -} -static void load_GL_ARB_texture_compression(GLADloadproc load) { - if(!GLAD_GL_ARB_texture_compression) return; - glad_glCompressedTexImage3DARB = (PFNGLCOMPRESSEDTEXIMAGE3DARBPROC)load("glCompressedTexImage3DARB"); - glad_glCompressedTexImage2DARB = (PFNGLCOMPRESSEDTEXIMAGE2DARBPROC)load("glCompressedTexImage2DARB"); - glad_glCompressedTexImage1DARB = (PFNGLCOMPRESSEDTEXIMAGE1DARBPROC)load("glCompressedTexImage1DARB"); - glad_glCompressedTexSubImage3DARB = (PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC)load("glCompressedTexSubImage3DARB"); - glad_glCompressedTexSubImage2DARB = (PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC)load("glCompressedTexSubImage2DARB"); - glad_glCompressedTexSubImage1DARB = (PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC)load("glCompressedTexSubImage1DARB"); - glad_glGetCompressedTexImageARB = (PFNGLGETCOMPRESSEDTEXIMAGEARBPROC)load("glGetCompressedTexImageARB"); -} -static void load_GL_ARB_texture_multisample(GLADloadproc load) { - if(!GLAD_GL_ARB_texture_multisample) return; - glad_glTexImage2DMultisample = (PFNGLTEXIMAGE2DMULTISAMPLEPROC)load("glTexImage2DMultisample"); - glad_glTexImage3DMultisample = (PFNGLTEXIMAGE3DMULTISAMPLEPROC)load("glTexImage3DMultisample"); - glad_glGetMultisamplefv = (PFNGLGETMULTISAMPLEFVPROC)load("glGetMultisamplefv"); - glad_glSampleMaski = (PFNGLSAMPLEMASKIPROC)load("glSampleMaski"); -} -static void load_GL_ARB_uniform_buffer_object(GLADloadproc load) { - if(!GLAD_GL_ARB_uniform_buffer_object) return; - glad_glGetUniformIndices = (PFNGLGETUNIFORMINDICESPROC)load("glGetUniformIndices"); - glad_glGetActiveUniformsiv = (PFNGLGETACTIVEUNIFORMSIVPROC)load("glGetActiveUniformsiv"); - glad_glGetActiveUniformName = (PFNGLGETACTIVEUNIFORMNAMEPROC)load("glGetActiveUniformName"); - glad_glGetUniformBlockIndex = (PFNGLGETUNIFORMBLOCKINDEXPROC)load("glGetUniformBlockIndex"); - glad_glGetActiveUniformBlockiv = (PFNGLGETACTIVEUNIFORMBLOCKIVPROC)load("glGetActiveUniformBlockiv"); - glad_glGetActiveUniformBlockName = (PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC)load("glGetActiveUniformBlockName"); - glad_glUniformBlockBinding = (PFNGLUNIFORMBLOCKBINDINGPROC)load("glUniformBlockBinding"); - glad_glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC)load("glBindBufferRange"); - glad_glBindBufferBase = (PFNGLBINDBUFFERBASEPROC)load("glBindBufferBase"); - glad_glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC)load("glGetIntegeri_v"); -} -static void load_GL_ARB_vertex_array_object(GLADloadproc load) { - if(!GLAD_GL_ARB_vertex_array_object) return; - glad_glBindVertexArray = (PFNGLBINDVERTEXARRAYPROC)load("glBindVertexArray"); - glad_glDeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSPROC)load("glDeleteVertexArrays"); - glad_glGenVertexArrays = (PFNGLGENVERTEXARRAYSPROC)load("glGenVertexArrays"); - glad_glIsVertexArray = (PFNGLISVERTEXARRAYPROC)load("glIsVertexArray"); -} -static void load_GL_ARB_vertex_attrib_binding(GLADloadproc load) { - if(!GLAD_GL_ARB_vertex_attrib_binding) return; - glad_glBindVertexBuffer = (PFNGLBINDVERTEXBUFFERPROC)load("glBindVertexBuffer"); - glad_glVertexAttribFormat = (PFNGLVERTEXATTRIBFORMATPROC)load("glVertexAttribFormat"); - glad_glVertexAttribIFormat = (PFNGLVERTEXATTRIBIFORMATPROC)load("glVertexAttribIFormat"); - glad_glVertexAttribLFormat = (PFNGLVERTEXATTRIBLFORMATPROC)load("glVertexAttribLFormat"); - glad_glVertexAttribBinding = (PFNGLVERTEXATTRIBBINDINGPROC)load("glVertexAttribBinding"); - glad_glVertexBindingDivisor = (PFNGLVERTEXBINDINGDIVISORPROC)load("glVertexBindingDivisor"); -} -static void load_GL_ARB_vertex_buffer_object(GLADloadproc load) { - if(!GLAD_GL_ARB_vertex_buffer_object) return; - glad_glBindBufferARB = (PFNGLBINDBUFFERARBPROC)load("glBindBufferARB"); - glad_glDeleteBuffersARB = (PFNGLDELETEBUFFERSARBPROC)load("glDeleteBuffersARB"); - glad_glGenBuffersARB = (PFNGLGENBUFFERSARBPROC)load("glGenBuffersARB"); - glad_glIsBufferARB = (PFNGLISBUFFERARBPROC)load("glIsBufferARB"); - glad_glBufferDataARB = (PFNGLBUFFERDATAARBPROC)load("glBufferDataARB"); - glad_glBufferSubDataARB = (PFNGLBUFFERSUBDATAARBPROC)load("glBufferSubDataARB"); - glad_glGetBufferSubDataARB = (PFNGLGETBUFFERSUBDATAARBPROC)load("glGetBufferSubDataARB"); - glad_glMapBufferARB = (PFNGLMAPBUFFERARBPROC)load("glMapBufferARB"); - glad_glUnmapBufferARB = (PFNGLUNMAPBUFFERARBPROC)load("glUnmapBufferARB"); - glad_glGetBufferParameterivARB = (PFNGLGETBUFFERPARAMETERIVARBPROC)load("glGetBufferParameterivARB"); - glad_glGetBufferPointervARB = (PFNGLGETBUFFERPOINTERVARBPROC)load("glGetBufferPointervARB"); -} -static void load_GL_ARB_vertex_program(GLADloadproc load) { - if(!GLAD_GL_ARB_vertex_program) return; - glad_glVertexAttrib1dARB = (PFNGLVERTEXATTRIB1DARBPROC)load("glVertexAttrib1dARB"); - glad_glVertexAttrib1dvARB = (PFNGLVERTEXATTRIB1DVARBPROC)load("glVertexAttrib1dvARB"); - glad_glVertexAttrib1fARB = (PFNGLVERTEXATTRIB1FARBPROC)load("glVertexAttrib1fARB"); - glad_glVertexAttrib1fvARB = (PFNGLVERTEXATTRIB1FVARBPROC)load("glVertexAttrib1fvARB"); - glad_glVertexAttrib1sARB = (PFNGLVERTEXATTRIB1SARBPROC)load("glVertexAttrib1sARB"); - glad_glVertexAttrib1svARB = (PFNGLVERTEXATTRIB1SVARBPROC)load("glVertexAttrib1svARB"); - glad_glVertexAttrib2dARB = (PFNGLVERTEXATTRIB2DARBPROC)load("glVertexAttrib2dARB"); - glad_glVertexAttrib2dvARB = (PFNGLVERTEXATTRIB2DVARBPROC)load("glVertexAttrib2dvARB"); - glad_glVertexAttrib2fARB = (PFNGLVERTEXATTRIB2FARBPROC)load("glVertexAttrib2fARB"); - glad_glVertexAttrib2fvARB = (PFNGLVERTEXATTRIB2FVARBPROC)load("glVertexAttrib2fvARB"); - glad_glVertexAttrib2sARB = (PFNGLVERTEXATTRIB2SARBPROC)load("glVertexAttrib2sARB"); - glad_glVertexAttrib2svARB = (PFNGLVERTEXATTRIB2SVARBPROC)load("glVertexAttrib2svARB"); - glad_glVertexAttrib3dARB = (PFNGLVERTEXATTRIB3DARBPROC)load("glVertexAttrib3dARB"); - glad_glVertexAttrib3dvARB = (PFNGLVERTEXATTRIB3DVARBPROC)load("glVertexAttrib3dvARB"); - glad_glVertexAttrib3fARB = (PFNGLVERTEXATTRIB3FARBPROC)load("glVertexAttrib3fARB"); - glad_glVertexAttrib3fvARB = (PFNGLVERTEXATTRIB3FVARBPROC)load("glVertexAttrib3fvARB"); - glad_glVertexAttrib3sARB = (PFNGLVERTEXATTRIB3SARBPROC)load("glVertexAttrib3sARB"); - glad_glVertexAttrib3svARB = (PFNGLVERTEXATTRIB3SVARBPROC)load("glVertexAttrib3svARB"); - glad_glVertexAttrib4NbvARB = (PFNGLVERTEXATTRIB4NBVARBPROC)load("glVertexAttrib4NbvARB"); - glad_glVertexAttrib4NivARB = (PFNGLVERTEXATTRIB4NIVARBPROC)load("glVertexAttrib4NivARB"); - glad_glVertexAttrib4NsvARB = (PFNGLVERTEXATTRIB4NSVARBPROC)load("glVertexAttrib4NsvARB"); - glad_glVertexAttrib4NubARB = (PFNGLVERTEXATTRIB4NUBARBPROC)load("glVertexAttrib4NubARB"); - glad_glVertexAttrib4NubvARB = (PFNGLVERTEXATTRIB4NUBVARBPROC)load("glVertexAttrib4NubvARB"); - glad_glVertexAttrib4NuivARB = (PFNGLVERTEXATTRIB4NUIVARBPROC)load("glVertexAttrib4NuivARB"); - glad_glVertexAttrib4NusvARB = (PFNGLVERTEXATTRIB4NUSVARBPROC)load("glVertexAttrib4NusvARB"); - glad_glVertexAttrib4bvARB = (PFNGLVERTEXATTRIB4BVARBPROC)load("glVertexAttrib4bvARB"); - glad_glVertexAttrib4dARB = (PFNGLVERTEXATTRIB4DARBPROC)load("glVertexAttrib4dARB"); - glad_glVertexAttrib4dvARB = (PFNGLVERTEXATTRIB4DVARBPROC)load("glVertexAttrib4dvARB"); - glad_glVertexAttrib4fARB = (PFNGLVERTEXATTRIB4FARBPROC)load("glVertexAttrib4fARB"); - glad_glVertexAttrib4fvARB = (PFNGLVERTEXATTRIB4FVARBPROC)load("glVertexAttrib4fvARB"); - glad_glVertexAttrib4ivARB = (PFNGLVERTEXATTRIB4IVARBPROC)load("glVertexAttrib4ivARB"); - glad_glVertexAttrib4sARB = (PFNGLVERTEXATTRIB4SARBPROC)load("glVertexAttrib4sARB"); - glad_glVertexAttrib4svARB = (PFNGLVERTEXATTRIB4SVARBPROC)load("glVertexAttrib4svARB"); - glad_glVertexAttrib4ubvARB = (PFNGLVERTEXATTRIB4UBVARBPROC)load("glVertexAttrib4ubvARB"); - glad_glVertexAttrib4uivARB = (PFNGLVERTEXATTRIB4UIVARBPROC)load("glVertexAttrib4uivARB"); - glad_glVertexAttrib4usvARB = (PFNGLVERTEXATTRIB4USVARBPROC)load("glVertexAttrib4usvARB"); - glad_glVertexAttribPointerARB = (PFNGLVERTEXATTRIBPOINTERARBPROC)load("glVertexAttribPointerARB"); - glad_glEnableVertexAttribArrayARB = (PFNGLENABLEVERTEXATTRIBARRAYARBPROC)load("glEnableVertexAttribArrayARB"); - glad_glDisableVertexAttribArrayARB = (PFNGLDISABLEVERTEXATTRIBARRAYARBPROC)load("glDisableVertexAttribArrayARB"); - glad_glProgramStringARB = (PFNGLPROGRAMSTRINGARBPROC)load("glProgramStringARB"); - glad_glBindProgramARB = (PFNGLBINDPROGRAMARBPROC)load("glBindProgramARB"); - glad_glDeleteProgramsARB = (PFNGLDELETEPROGRAMSARBPROC)load("glDeleteProgramsARB"); - glad_glGenProgramsARB = (PFNGLGENPROGRAMSARBPROC)load("glGenProgramsARB"); - glad_glProgramEnvParameter4dARB = (PFNGLPROGRAMENVPARAMETER4DARBPROC)load("glProgramEnvParameter4dARB"); - glad_glProgramEnvParameter4dvARB = (PFNGLPROGRAMENVPARAMETER4DVARBPROC)load("glProgramEnvParameter4dvARB"); - glad_glProgramEnvParameter4fARB = (PFNGLPROGRAMENVPARAMETER4FARBPROC)load("glProgramEnvParameter4fARB"); - glad_glProgramEnvParameter4fvARB = (PFNGLPROGRAMENVPARAMETER4FVARBPROC)load("glProgramEnvParameter4fvARB"); - glad_glProgramLocalParameter4dARB = (PFNGLPROGRAMLOCALPARAMETER4DARBPROC)load("glProgramLocalParameter4dARB"); - glad_glProgramLocalParameter4dvARB = (PFNGLPROGRAMLOCALPARAMETER4DVARBPROC)load("glProgramLocalParameter4dvARB"); - glad_glProgramLocalParameter4fARB = (PFNGLPROGRAMLOCALPARAMETER4FARBPROC)load("glProgramLocalParameter4fARB"); - glad_glProgramLocalParameter4fvARB = (PFNGLPROGRAMLOCALPARAMETER4FVARBPROC)load("glProgramLocalParameter4fvARB"); - glad_glGetProgramEnvParameterdvARB = (PFNGLGETPROGRAMENVPARAMETERDVARBPROC)load("glGetProgramEnvParameterdvARB"); - glad_glGetProgramEnvParameterfvARB = (PFNGLGETPROGRAMENVPARAMETERFVARBPROC)load("glGetProgramEnvParameterfvARB"); - glad_glGetProgramLocalParameterdvARB = (PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC)load("glGetProgramLocalParameterdvARB"); - glad_glGetProgramLocalParameterfvARB = (PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC)load("glGetProgramLocalParameterfvARB"); - glad_glGetProgramivARB = (PFNGLGETPROGRAMIVARBPROC)load("glGetProgramivARB"); - glad_glGetProgramStringARB = (PFNGLGETPROGRAMSTRINGARBPROC)load("glGetProgramStringARB"); - glad_glGetVertexAttribdvARB = (PFNGLGETVERTEXATTRIBDVARBPROC)load("glGetVertexAttribdvARB"); - glad_glGetVertexAttribfvARB = (PFNGLGETVERTEXATTRIBFVARBPROC)load("glGetVertexAttribfvARB"); - glad_glGetVertexAttribivARB = (PFNGLGETVERTEXATTRIBIVARBPROC)load("glGetVertexAttribivARB"); - glad_glGetVertexAttribPointervARB = (PFNGLGETVERTEXATTRIBPOINTERVARBPROC)load("glGetVertexAttribPointervARB"); - glad_glIsProgramARB = (PFNGLISPROGRAMARBPROC)load("glIsProgramARB"); -} -static void load_GL_ARB_vertex_shader(GLADloadproc load) { - if(!GLAD_GL_ARB_vertex_shader) return; - glad_glVertexAttrib1fARB = (PFNGLVERTEXATTRIB1FARBPROC)load("glVertexAttrib1fARB"); - glad_glVertexAttrib1sARB = (PFNGLVERTEXATTRIB1SARBPROC)load("glVertexAttrib1sARB"); - glad_glVertexAttrib1dARB = (PFNGLVERTEXATTRIB1DARBPROC)load("glVertexAttrib1dARB"); - glad_glVertexAttrib2fARB = (PFNGLVERTEXATTRIB2FARBPROC)load("glVertexAttrib2fARB"); - glad_glVertexAttrib2sARB = (PFNGLVERTEXATTRIB2SARBPROC)load("glVertexAttrib2sARB"); - glad_glVertexAttrib2dARB = (PFNGLVERTEXATTRIB2DARBPROC)load("glVertexAttrib2dARB"); - glad_glVertexAttrib3fARB = (PFNGLVERTEXATTRIB3FARBPROC)load("glVertexAttrib3fARB"); - glad_glVertexAttrib3sARB = (PFNGLVERTEXATTRIB3SARBPROC)load("glVertexAttrib3sARB"); - glad_glVertexAttrib3dARB = (PFNGLVERTEXATTRIB3DARBPROC)load("glVertexAttrib3dARB"); - glad_glVertexAttrib4fARB = (PFNGLVERTEXATTRIB4FARBPROC)load("glVertexAttrib4fARB"); - glad_glVertexAttrib4sARB = (PFNGLVERTEXATTRIB4SARBPROC)load("glVertexAttrib4sARB"); - glad_glVertexAttrib4dARB = (PFNGLVERTEXATTRIB4DARBPROC)load("glVertexAttrib4dARB"); - glad_glVertexAttrib4NubARB = (PFNGLVERTEXATTRIB4NUBARBPROC)load("glVertexAttrib4NubARB"); - glad_glVertexAttrib1fvARB = (PFNGLVERTEXATTRIB1FVARBPROC)load("glVertexAttrib1fvARB"); - glad_glVertexAttrib1svARB = (PFNGLVERTEXATTRIB1SVARBPROC)load("glVertexAttrib1svARB"); - glad_glVertexAttrib1dvARB = (PFNGLVERTEXATTRIB1DVARBPROC)load("glVertexAttrib1dvARB"); - glad_glVertexAttrib2fvARB = (PFNGLVERTEXATTRIB2FVARBPROC)load("glVertexAttrib2fvARB"); - glad_glVertexAttrib2svARB = (PFNGLVERTEXATTRIB2SVARBPROC)load("glVertexAttrib2svARB"); - glad_glVertexAttrib2dvARB = (PFNGLVERTEXATTRIB2DVARBPROC)load("glVertexAttrib2dvARB"); - glad_glVertexAttrib3fvARB = (PFNGLVERTEXATTRIB3FVARBPROC)load("glVertexAttrib3fvARB"); - glad_glVertexAttrib3svARB = (PFNGLVERTEXATTRIB3SVARBPROC)load("glVertexAttrib3svARB"); - glad_glVertexAttrib3dvARB = (PFNGLVERTEXATTRIB3DVARBPROC)load("glVertexAttrib3dvARB"); - glad_glVertexAttrib4fvARB = (PFNGLVERTEXATTRIB4FVARBPROC)load("glVertexAttrib4fvARB"); - glad_glVertexAttrib4svARB = (PFNGLVERTEXATTRIB4SVARBPROC)load("glVertexAttrib4svARB"); - glad_glVertexAttrib4dvARB = (PFNGLVERTEXATTRIB4DVARBPROC)load("glVertexAttrib4dvARB"); - glad_glVertexAttrib4ivARB = (PFNGLVERTEXATTRIB4IVARBPROC)load("glVertexAttrib4ivARB"); - glad_glVertexAttrib4bvARB = (PFNGLVERTEXATTRIB4BVARBPROC)load("glVertexAttrib4bvARB"); - glad_glVertexAttrib4ubvARB = (PFNGLVERTEXATTRIB4UBVARBPROC)load("glVertexAttrib4ubvARB"); - glad_glVertexAttrib4usvARB = (PFNGLVERTEXATTRIB4USVARBPROC)load("glVertexAttrib4usvARB"); - glad_glVertexAttrib4uivARB = (PFNGLVERTEXATTRIB4UIVARBPROC)load("glVertexAttrib4uivARB"); - glad_glVertexAttrib4NbvARB = (PFNGLVERTEXATTRIB4NBVARBPROC)load("glVertexAttrib4NbvARB"); - glad_glVertexAttrib4NsvARB = (PFNGLVERTEXATTRIB4NSVARBPROC)load("glVertexAttrib4NsvARB"); - glad_glVertexAttrib4NivARB = (PFNGLVERTEXATTRIB4NIVARBPROC)load("glVertexAttrib4NivARB"); - glad_glVertexAttrib4NubvARB = (PFNGLVERTEXATTRIB4NUBVARBPROC)load("glVertexAttrib4NubvARB"); - glad_glVertexAttrib4NusvARB = (PFNGLVERTEXATTRIB4NUSVARBPROC)load("glVertexAttrib4NusvARB"); - glad_glVertexAttrib4NuivARB = (PFNGLVERTEXATTRIB4NUIVARBPROC)load("glVertexAttrib4NuivARB"); - glad_glVertexAttribPointerARB = (PFNGLVERTEXATTRIBPOINTERARBPROC)load("glVertexAttribPointerARB"); - glad_glEnableVertexAttribArrayARB = (PFNGLENABLEVERTEXATTRIBARRAYARBPROC)load("glEnableVertexAttribArrayARB"); - glad_glDisableVertexAttribArrayARB = (PFNGLDISABLEVERTEXATTRIBARRAYARBPROC)load("glDisableVertexAttribArrayARB"); - glad_glBindAttribLocationARB = (PFNGLBINDATTRIBLOCATIONARBPROC)load("glBindAttribLocationARB"); - glad_glGetActiveAttribARB = (PFNGLGETACTIVEATTRIBARBPROC)load("glGetActiveAttribARB"); - glad_glGetAttribLocationARB = (PFNGLGETATTRIBLOCATIONARBPROC)load("glGetAttribLocationARB"); - glad_glGetVertexAttribdvARB = (PFNGLGETVERTEXATTRIBDVARBPROC)load("glGetVertexAttribdvARB"); - glad_glGetVertexAttribfvARB = (PFNGLGETVERTEXATTRIBFVARBPROC)load("glGetVertexAttribfvARB"); - glad_glGetVertexAttribivARB = (PFNGLGETVERTEXATTRIBIVARBPROC)load("glGetVertexAttribivARB"); - glad_glGetVertexAttribPointervARB = (PFNGLGETVERTEXATTRIBPOINTERVARBPROC)load("glGetVertexAttribPointervARB"); -} -static void load_GL_ATI_element_array(GLADloadproc load) { - if(!GLAD_GL_ATI_element_array) return; - glad_glElementPointerATI = (PFNGLELEMENTPOINTERATIPROC)load("glElementPointerATI"); - glad_glDrawElementArrayATI = (PFNGLDRAWELEMENTARRAYATIPROC)load("glDrawElementArrayATI"); - glad_glDrawRangeElementArrayATI = (PFNGLDRAWRANGEELEMENTARRAYATIPROC)load("glDrawRangeElementArrayATI"); -} -static void load_GL_ATI_fragment_shader(GLADloadproc load) { - if(!GLAD_GL_ATI_fragment_shader) return; - glad_glGenFragmentShadersATI = (PFNGLGENFRAGMENTSHADERSATIPROC)load("glGenFragmentShadersATI"); - glad_glBindFragmentShaderATI = (PFNGLBINDFRAGMENTSHADERATIPROC)load("glBindFragmentShaderATI"); - glad_glDeleteFragmentShaderATI = (PFNGLDELETEFRAGMENTSHADERATIPROC)load("glDeleteFragmentShaderATI"); - glad_glBeginFragmentShaderATI = (PFNGLBEGINFRAGMENTSHADERATIPROC)load("glBeginFragmentShaderATI"); - glad_glEndFragmentShaderATI = (PFNGLENDFRAGMENTSHADERATIPROC)load("glEndFragmentShaderATI"); - glad_glPassTexCoordATI = (PFNGLPASSTEXCOORDATIPROC)load("glPassTexCoordATI"); - glad_glSampleMapATI = (PFNGLSAMPLEMAPATIPROC)load("glSampleMapATI"); - glad_glColorFragmentOp1ATI = (PFNGLCOLORFRAGMENTOP1ATIPROC)load("glColorFragmentOp1ATI"); - glad_glColorFragmentOp2ATI = (PFNGLCOLORFRAGMENTOP2ATIPROC)load("glColorFragmentOp2ATI"); - glad_glColorFragmentOp3ATI = (PFNGLCOLORFRAGMENTOP3ATIPROC)load("glColorFragmentOp3ATI"); - glad_glAlphaFragmentOp1ATI = (PFNGLALPHAFRAGMENTOP1ATIPROC)load("glAlphaFragmentOp1ATI"); - glad_glAlphaFragmentOp2ATI = (PFNGLALPHAFRAGMENTOP2ATIPROC)load("glAlphaFragmentOp2ATI"); - glad_glAlphaFragmentOp3ATI = (PFNGLALPHAFRAGMENTOP3ATIPROC)load("glAlphaFragmentOp3ATI"); - glad_glSetFragmentShaderConstantATI = (PFNGLSETFRAGMENTSHADERCONSTANTATIPROC)load("glSetFragmentShaderConstantATI"); -} -static void load_GL_ATI_vertex_array_object(GLADloadproc load) { - if(!GLAD_GL_ATI_vertex_array_object) return; - glad_glNewObjectBufferATI = (PFNGLNEWOBJECTBUFFERATIPROC)load("glNewObjectBufferATI"); - glad_glIsObjectBufferATI = (PFNGLISOBJECTBUFFERATIPROC)load("glIsObjectBufferATI"); - glad_glUpdateObjectBufferATI = (PFNGLUPDATEOBJECTBUFFERATIPROC)load("glUpdateObjectBufferATI"); - glad_glGetObjectBufferfvATI = (PFNGLGETOBJECTBUFFERFVATIPROC)load("glGetObjectBufferfvATI"); - glad_glGetObjectBufferivATI = (PFNGLGETOBJECTBUFFERIVATIPROC)load("glGetObjectBufferivATI"); - glad_glFreeObjectBufferATI = (PFNGLFREEOBJECTBUFFERATIPROC)load("glFreeObjectBufferATI"); - glad_glArrayObjectATI = (PFNGLARRAYOBJECTATIPROC)load("glArrayObjectATI"); - glad_glGetArrayObjectfvATI = (PFNGLGETARRAYOBJECTFVATIPROC)load("glGetArrayObjectfvATI"); - glad_glGetArrayObjectivATI = (PFNGLGETARRAYOBJECTIVATIPROC)load("glGetArrayObjectivATI"); - glad_glVariantArrayObjectATI = (PFNGLVARIANTARRAYOBJECTATIPROC)load("glVariantArrayObjectATI"); - glad_glGetVariantArrayObjectfvATI = (PFNGLGETVARIANTARRAYOBJECTFVATIPROC)load("glGetVariantArrayObjectfvATI"); - glad_glGetVariantArrayObjectivATI = (PFNGLGETVARIANTARRAYOBJECTIVATIPROC)load("glGetVariantArrayObjectivATI"); -} -static void load_GL_EXT_blend_color(GLADloadproc load) { - if(!GLAD_GL_EXT_blend_color) return; - glad_glBlendColorEXT = (PFNGLBLENDCOLOREXTPROC)load("glBlendColorEXT"); -} -static void load_GL_EXT_blend_equation_separate(GLADloadproc load) { - if(!GLAD_GL_EXT_blend_equation_separate) return; - glad_glBlendEquationSeparateEXT = (PFNGLBLENDEQUATIONSEPARATEEXTPROC)load("glBlendEquationSeparateEXT"); -} -static void load_GL_EXT_blend_func_separate(GLADloadproc load) { - if(!GLAD_GL_EXT_blend_func_separate) return; - glad_glBlendFuncSeparateEXT = (PFNGLBLENDFUNCSEPARATEEXTPROC)load("glBlendFuncSeparateEXT"); -} -static void load_GL_EXT_debug_marker(GLADloadproc load) { - if(!GLAD_GL_EXT_debug_marker) return; - glad_glInsertEventMarkerEXT = (PFNGLINSERTEVENTMARKEREXTPROC)load("glInsertEventMarkerEXT"); - glad_glPushGroupMarkerEXT = (PFNGLPUSHGROUPMARKEREXTPROC)load("glPushGroupMarkerEXT"); - glad_glPopGroupMarkerEXT = (PFNGLPOPGROUPMARKEREXTPROC)load("glPopGroupMarkerEXT"); -} -static void load_GL_EXT_framebuffer_blit(GLADloadproc load) { - if(!GLAD_GL_EXT_framebuffer_blit) return; - glad_glBlitFramebufferEXT = (PFNGLBLITFRAMEBUFFEREXTPROC)load("glBlitFramebufferEXT"); -} -static void load_GL_EXT_framebuffer_multisample(GLADloadproc load) { - if(!GLAD_GL_EXT_framebuffer_multisample) return; - glad_glRenderbufferStorageMultisampleEXT = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC)load("glRenderbufferStorageMultisampleEXT"); -} -static void load_GL_EXT_framebuffer_object(GLADloadproc load) { - if(!GLAD_GL_EXT_framebuffer_object) return; - glad_glIsRenderbufferEXT = (PFNGLISRENDERBUFFEREXTPROC)load("glIsRenderbufferEXT"); - glad_glBindRenderbufferEXT = (PFNGLBINDRENDERBUFFEREXTPROC)load("glBindRenderbufferEXT"); - glad_glDeleteRenderbuffersEXT = (PFNGLDELETERENDERBUFFERSEXTPROC)load("glDeleteRenderbuffersEXT"); - glad_glGenRenderbuffersEXT = (PFNGLGENRENDERBUFFERSEXTPROC)load("glGenRenderbuffersEXT"); - glad_glRenderbufferStorageEXT = (PFNGLRENDERBUFFERSTORAGEEXTPROC)load("glRenderbufferStorageEXT"); - glad_glGetRenderbufferParameterivEXT = (PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC)load("glGetRenderbufferParameterivEXT"); - glad_glIsFramebufferEXT = (PFNGLISFRAMEBUFFEREXTPROC)load("glIsFramebufferEXT"); - glad_glBindFramebufferEXT = (PFNGLBINDFRAMEBUFFEREXTPROC)load("glBindFramebufferEXT"); - glad_glDeleteFramebuffersEXT = (PFNGLDELETEFRAMEBUFFERSEXTPROC)load("glDeleteFramebuffersEXT"); - glad_glGenFramebuffersEXT = (PFNGLGENFRAMEBUFFERSEXTPROC)load("glGenFramebuffersEXT"); - glad_glCheckFramebufferStatusEXT = (PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC)load("glCheckFramebufferStatusEXT"); - glad_glFramebufferTexture1DEXT = (PFNGLFRAMEBUFFERTEXTURE1DEXTPROC)load("glFramebufferTexture1DEXT"); - glad_glFramebufferTexture2DEXT = (PFNGLFRAMEBUFFERTEXTURE2DEXTPROC)load("glFramebufferTexture2DEXT"); - glad_glFramebufferTexture3DEXT = (PFNGLFRAMEBUFFERTEXTURE3DEXTPROC)load("glFramebufferTexture3DEXT"); - glad_glFramebufferRenderbufferEXT = (PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC)load("glFramebufferRenderbufferEXT"); - glad_glGetFramebufferAttachmentParameterivEXT = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC)load("glGetFramebufferAttachmentParameterivEXT"); - glad_glGenerateMipmapEXT = (PFNGLGENERATEMIPMAPEXTPROC)load("glGenerateMipmapEXT"); -} -static void load_GL_EXT_vertex_array(GLADloadproc load) { - if(!GLAD_GL_EXT_vertex_array) return; - glad_glArrayElementEXT = (PFNGLARRAYELEMENTEXTPROC)load("glArrayElementEXT"); - glad_glColorPointerEXT = (PFNGLCOLORPOINTEREXTPROC)load("glColorPointerEXT"); - glad_glDrawArraysEXT = (PFNGLDRAWARRAYSEXTPROC)load("glDrawArraysEXT"); - glad_glEdgeFlagPointerEXT = (PFNGLEDGEFLAGPOINTEREXTPROC)load("glEdgeFlagPointerEXT"); - glad_glGetPointervEXT = (PFNGLGETPOINTERVEXTPROC)load("glGetPointervEXT"); - glad_glIndexPointerEXT = (PFNGLINDEXPOINTEREXTPROC)load("glIndexPointerEXT"); - glad_glNormalPointerEXT = (PFNGLNORMALPOINTEREXTPROC)load("glNormalPointerEXT"); - glad_glTexCoordPointerEXT = (PFNGLTEXCOORDPOINTEREXTPROC)load("glTexCoordPointerEXT"); - glad_glVertexPointerEXT = (PFNGLVERTEXPOINTEREXTPROC)load("glVertexPointerEXT"); -} -static void load_GL_EXT_vertex_shader(GLADloadproc load) { - if(!GLAD_GL_EXT_vertex_shader) return; - glad_glBeginVertexShaderEXT = (PFNGLBEGINVERTEXSHADEREXTPROC)load("glBeginVertexShaderEXT"); - glad_glEndVertexShaderEXT = (PFNGLENDVERTEXSHADEREXTPROC)load("glEndVertexShaderEXT"); - glad_glBindVertexShaderEXT = (PFNGLBINDVERTEXSHADEREXTPROC)load("glBindVertexShaderEXT"); - glad_glGenVertexShadersEXT = (PFNGLGENVERTEXSHADERSEXTPROC)load("glGenVertexShadersEXT"); - glad_glDeleteVertexShaderEXT = (PFNGLDELETEVERTEXSHADEREXTPROC)load("glDeleteVertexShaderEXT"); - glad_glShaderOp1EXT = (PFNGLSHADEROP1EXTPROC)load("glShaderOp1EXT"); - glad_glShaderOp2EXT = (PFNGLSHADEROP2EXTPROC)load("glShaderOp2EXT"); - glad_glShaderOp3EXT = (PFNGLSHADEROP3EXTPROC)load("glShaderOp3EXT"); - glad_glSwizzleEXT = (PFNGLSWIZZLEEXTPROC)load("glSwizzleEXT"); - glad_glWriteMaskEXT = (PFNGLWRITEMASKEXTPROC)load("glWriteMaskEXT"); - glad_glInsertComponentEXT = (PFNGLINSERTCOMPONENTEXTPROC)load("glInsertComponentEXT"); - glad_glExtractComponentEXT = (PFNGLEXTRACTCOMPONENTEXTPROC)load("glExtractComponentEXT"); - glad_glGenSymbolsEXT = (PFNGLGENSYMBOLSEXTPROC)load("glGenSymbolsEXT"); - glad_glSetInvariantEXT = (PFNGLSETINVARIANTEXTPROC)load("glSetInvariantEXT"); - glad_glSetLocalConstantEXT = (PFNGLSETLOCALCONSTANTEXTPROC)load("glSetLocalConstantEXT"); - glad_glVariantbvEXT = (PFNGLVARIANTBVEXTPROC)load("glVariantbvEXT"); - glad_glVariantsvEXT = (PFNGLVARIANTSVEXTPROC)load("glVariantsvEXT"); - glad_glVariantivEXT = (PFNGLVARIANTIVEXTPROC)load("glVariantivEXT"); - glad_glVariantfvEXT = (PFNGLVARIANTFVEXTPROC)load("glVariantfvEXT"); - glad_glVariantdvEXT = (PFNGLVARIANTDVEXTPROC)load("glVariantdvEXT"); - glad_glVariantubvEXT = (PFNGLVARIANTUBVEXTPROC)load("glVariantubvEXT"); - glad_glVariantusvEXT = (PFNGLVARIANTUSVEXTPROC)load("glVariantusvEXT"); - glad_glVariantuivEXT = (PFNGLVARIANTUIVEXTPROC)load("glVariantuivEXT"); - glad_glVariantPointerEXT = (PFNGLVARIANTPOINTEREXTPROC)load("glVariantPointerEXT"); - glad_glEnableVariantClientStateEXT = (PFNGLENABLEVARIANTCLIENTSTATEEXTPROC)load("glEnableVariantClientStateEXT"); - glad_glDisableVariantClientStateEXT = (PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC)load("glDisableVariantClientStateEXT"); - glad_glBindLightParameterEXT = (PFNGLBINDLIGHTPARAMETEREXTPROC)load("glBindLightParameterEXT"); - glad_glBindMaterialParameterEXT = (PFNGLBINDMATERIALPARAMETEREXTPROC)load("glBindMaterialParameterEXT"); - glad_glBindTexGenParameterEXT = (PFNGLBINDTEXGENPARAMETEREXTPROC)load("glBindTexGenParameterEXT"); - glad_glBindTextureUnitParameterEXT = (PFNGLBINDTEXTUREUNITPARAMETEREXTPROC)load("glBindTextureUnitParameterEXT"); - glad_glBindParameterEXT = (PFNGLBINDPARAMETEREXTPROC)load("glBindParameterEXT"); - glad_glIsVariantEnabledEXT = (PFNGLISVARIANTENABLEDEXTPROC)load("glIsVariantEnabledEXT"); - glad_glGetVariantBooleanvEXT = (PFNGLGETVARIANTBOOLEANVEXTPROC)load("glGetVariantBooleanvEXT"); - glad_glGetVariantIntegervEXT = (PFNGLGETVARIANTINTEGERVEXTPROC)load("glGetVariantIntegervEXT"); - glad_glGetVariantFloatvEXT = (PFNGLGETVARIANTFLOATVEXTPROC)load("glGetVariantFloatvEXT"); - glad_glGetVariantPointervEXT = (PFNGLGETVARIANTPOINTERVEXTPROC)load("glGetVariantPointervEXT"); - glad_glGetInvariantBooleanvEXT = (PFNGLGETINVARIANTBOOLEANVEXTPROC)load("glGetInvariantBooleanvEXT"); - glad_glGetInvariantIntegervEXT = (PFNGLGETINVARIANTINTEGERVEXTPROC)load("glGetInvariantIntegervEXT"); - glad_glGetInvariantFloatvEXT = (PFNGLGETINVARIANTFLOATVEXTPROC)load("glGetInvariantFloatvEXT"); - glad_glGetLocalConstantBooleanvEXT = (PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC)load("glGetLocalConstantBooleanvEXT"); - glad_glGetLocalConstantIntegervEXT = (PFNGLGETLOCALCONSTANTINTEGERVEXTPROC)load("glGetLocalConstantIntegervEXT"); - glad_glGetLocalConstantFloatvEXT = (PFNGLGETLOCALCONSTANTFLOATVEXTPROC)load("glGetLocalConstantFloatvEXT"); -} -static int find_extensionsGL(void) { - if (!get_exts()) return 0; - GLAD_GL_AMD_debug_output = has_ext("GL_AMD_debug_output"); - GLAD_GL_AMD_query_buffer_object = has_ext("GL_AMD_query_buffer_object"); - GLAD_GL_ARB_ES2_compatibility = has_ext("GL_ARB_ES2_compatibility"); - GLAD_GL_ARB_ES3_compatibility = has_ext("GL_ARB_ES3_compatibility"); - GLAD_GL_ARB_buffer_storage = has_ext("GL_ARB_buffer_storage"); - GLAD_GL_ARB_compatibility = has_ext("GL_ARB_compatibility"); - GLAD_GL_ARB_compressed_texture_pixel_storage = has_ext("GL_ARB_compressed_texture_pixel_storage"); - GLAD_GL_ARB_debug_output = has_ext("GL_ARB_debug_output"); - GLAD_GL_ARB_depth_buffer_float = has_ext("GL_ARB_depth_buffer_float"); - GLAD_GL_ARB_depth_clamp = has_ext("GL_ARB_depth_clamp"); - GLAD_GL_ARB_depth_texture = has_ext("GL_ARB_depth_texture"); - GLAD_GL_ARB_draw_buffers = has_ext("GL_ARB_draw_buffers"); - GLAD_GL_ARB_draw_buffers_blend = has_ext("GL_ARB_draw_buffers_blend"); - GLAD_GL_ARB_explicit_attrib_location = has_ext("GL_ARB_explicit_attrib_location"); - GLAD_GL_ARB_explicit_uniform_location = has_ext("GL_ARB_explicit_uniform_location"); - GLAD_GL_ARB_fragment_program = has_ext("GL_ARB_fragment_program"); - GLAD_GL_ARB_fragment_shader = has_ext("GL_ARB_fragment_shader"); - GLAD_GL_ARB_framebuffer_object = has_ext("GL_ARB_framebuffer_object"); - GLAD_GL_ARB_framebuffer_sRGB = has_ext("GL_ARB_framebuffer_sRGB"); - GLAD_GL_ARB_multisample = has_ext("GL_ARB_multisample"); - GLAD_GL_ARB_sample_locations = has_ext("GL_ARB_sample_locations"); - GLAD_GL_ARB_texture_compression = has_ext("GL_ARB_texture_compression"); - GLAD_GL_ARB_texture_float = has_ext("GL_ARB_texture_float"); - GLAD_GL_ARB_texture_multisample = has_ext("GL_ARB_texture_multisample"); - GLAD_GL_ARB_texture_non_power_of_two = has_ext("GL_ARB_texture_non_power_of_two"); - GLAD_GL_ARB_texture_rg = has_ext("GL_ARB_texture_rg"); - GLAD_GL_ARB_texture_swizzle = has_ext("GL_ARB_texture_swizzle"); - GLAD_GL_ARB_uniform_buffer_object = has_ext("GL_ARB_uniform_buffer_object"); - GLAD_GL_ARB_vertex_array_object = has_ext("GL_ARB_vertex_array_object"); - GLAD_GL_ARB_vertex_attrib_binding = has_ext("GL_ARB_vertex_attrib_binding"); - GLAD_GL_ARB_vertex_buffer_object = has_ext("GL_ARB_vertex_buffer_object"); - GLAD_GL_ARB_vertex_program = has_ext("GL_ARB_vertex_program"); - GLAD_GL_ARB_vertex_shader = has_ext("GL_ARB_vertex_shader"); - GLAD_GL_ATI_element_array = has_ext("GL_ATI_element_array"); - GLAD_GL_ATI_fragment_shader = has_ext("GL_ATI_fragment_shader"); - GLAD_GL_ATI_vertex_array_object = has_ext("GL_ATI_vertex_array_object"); - GLAD_GL_EXT_blend_color = has_ext("GL_EXT_blend_color"); - GLAD_GL_EXT_blend_equation_separate = has_ext("GL_EXT_blend_equation_separate"); - GLAD_GL_EXT_blend_func_separate = has_ext("GL_EXT_blend_func_separate"); - GLAD_GL_EXT_debug_marker = has_ext("GL_EXT_debug_marker"); - GLAD_GL_EXT_framebuffer_blit = has_ext("GL_EXT_framebuffer_blit"); - GLAD_GL_EXT_framebuffer_multisample = has_ext("GL_EXT_framebuffer_multisample"); - GLAD_GL_EXT_framebuffer_multisample_blit_scaled = has_ext("GL_EXT_framebuffer_multisample_blit_scaled"); - GLAD_GL_EXT_framebuffer_object = has_ext("GL_EXT_framebuffer_object"); - GLAD_GL_EXT_framebuffer_sRGB = has_ext("GL_EXT_framebuffer_sRGB"); - GLAD_GL_EXT_index_array_formats = has_ext("GL_EXT_index_array_formats"); - GLAD_GL_EXT_texture = has_ext("GL_EXT_texture"); - GLAD_GL_EXT_texture_compression_s3tc = has_ext("GL_EXT_texture_compression_s3tc"); - GLAD_GL_EXT_texture_sRGB = has_ext("GL_EXT_texture_sRGB"); - GLAD_GL_EXT_texture_swizzle = has_ext("GL_EXT_texture_swizzle"); - GLAD_GL_EXT_vertex_array = has_ext("GL_EXT_vertex_array"); - GLAD_GL_EXT_vertex_shader = has_ext("GL_EXT_vertex_shader"); - free_exts(); - return 1; + +static GLADapiproc glad_gl_get_proc_from_userptr(void *userptr, const char* name) { + return (GLAD_GNUC_EXTENSION (GLADapiproc (*)(const char *name)) userptr)(name); } -static void find_coreGL(void) { +static int glad_gl_find_extensions_gl( int version) { + const char *exts = NULL; + unsigned int num_exts_i = 0; + char **exts_i = NULL; + if (!glad_gl_get_extensions(version, &exts, &num_exts_i, &exts_i)) return 0; - /* Thank you @elmindreda - * https://github.com/elmindreda/greg/blob/master/templates/greg.c.in#L176 - * https://github.com/glfw/glfw/blob/master/src/context.c#L36 - */ - int i, major, minor; + GLAD_GL_ARB_ES2_compatibility = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_ES2_compatibility"); + GLAD_GL_ARB_ES3_1_compatibility = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_ES3_1_compatibility"); + GLAD_GL_ARB_ES3_2_compatibility = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_ES3_2_compatibility"); + GLAD_GL_ARB_ES3_compatibility = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_ES3_compatibility"); + GLAD_GL_ARB_blend_func_extended = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_blend_func_extended"); + GLAD_GL_ARB_buffer_storage = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_buffer_storage"); + GLAD_GL_ARB_clear_buffer_object = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_clear_buffer_object"); + GLAD_GL_ARB_clear_texture = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_clear_texture"); + GLAD_GL_ARB_color_buffer_float = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_color_buffer_float"); + GLAD_GL_ARB_compatibility = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_compatibility"); + GLAD_GL_ARB_compressed_texture_pixel_storage = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_compressed_texture_pixel_storage"); + GLAD_GL_ARB_compute_shader = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_compute_shader"); + GLAD_GL_ARB_compute_variable_group_size = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_compute_variable_group_size"); + GLAD_GL_ARB_copy_buffer = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_copy_buffer"); + GLAD_GL_ARB_copy_image = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_copy_image"); + GLAD_GL_ARB_debug_output = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_debug_output"); + GLAD_GL_ARB_depth_buffer_float = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_depth_buffer_float"); + GLAD_GL_ARB_depth_clamp = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_depth_clamp"); + GLAD_GL_ARB_depth_texture = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_depth_texture"); + GLAD_GL_ARB_direct_state_access = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_direct_state_access"); + GLAD_GL_ARB_draw_buffers = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_draw_buffers"); + GLAD_GL_ARB_draw_buffers_blend = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_draw_buffers_blend"); + GLAD_GL_ARB_draw_elements_base_vertex = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_draw_elements_base_vertex"); + GLAD_GL_ARB_draw_indirect = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_draw_indirect"); + GLAD_GL_ARB_draw_instanced = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_draw_instanced"); + GLAD_GL_ARB_enhanced_layouts = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_enhanced_layouts"); + GLAD_GL_ARB_explicit_attrib_location = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_explicit_attrib_location"); + GLAD_GL_ARB_explicit_uniform_location = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_explicit_uniform_location"); + GLAD_GL_ARB_fragment_coord_conventions = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_fragment_coord_conventions"); + GLAD_GL_ARB_fragment_layer_viewport = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_fragment_layer_viewport"); + GLAD_GL_ARB_fragment_program = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_fragment_program"); + GLAD_GL_ARB_fragment_program_shadow = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_fragment_program_shadow"); + GLAD_GL_ARB_fragment_shader = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_fragment_shader"); + GLAD_GL_ARB_fragment_shader_interlock = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_fragment_shader_interlock"); + GLAD_GL_ARB_framebuffer_no_attachments = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_framebuffer_no_attachments"); + GLAD_GL_ARB_framebuffer_object = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_framebuffer_object"); + GLAD_GL_ARB_framebuffer_sRGB = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_framebuffer_sRGB"); + GLAD_GL_ARB_geometry_shader4 = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_geometry_shader4"); + GLAD_GL_ARB_get_program_binary = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_get_program_binary"); + GLAD_GL_ARB_get_texture_sub_image = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_get_texture_sub_image"); + GLAD_GL_ARB_gl_spirv = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_gl_spirv"); + GLAD_GL_ARB_gpu_shader5 = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_gpu_shader5"); + GLAD_GL_ARB_gpu_shader_fp64 = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_gpu_shader_fp64"); + GLAD_GL_ARB_gpu_shader_int64 = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_gpu_shader_int64"); + GLAD_GL_ARB_half_float_pixel = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_half_float_pixel"); + GLAD_GL_ARB_half_float_vertex = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_half_float_vertex"); + GLAD_GL_ARB_instanced_arrays = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_instanced_arrays"); + GLAD_GL_ARB_internalformat_query = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_internalformat_query"); + GLAD_GL_ARB_internalformat_query2 = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_internalformat_query2"); + GLAD_GL_ARB_map_buffer_range = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_map_buffer_range"); + GLAD_GL_ARB_multi_bind = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_multi_bind"); + GLAD_GL_ARB_multi_draw_indirect = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_multi_draw_indirect"); + GLAD_GL_ARB_multisample = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_multisample"); + GLAD_GL_ARB_multitexture = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_multitexture"); + GLAD_GL_ARB_occlusion_query = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_occlusion_query"); + GLAD_GL_ARB_occlusion_query2 = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_occlusion_query2"); + GLAD_GL_ARB_pipeline_statistics_query = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_pipeline_statistics_query"); + GLAD_GL_ARB_query_buffer_object = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_query_buffer_object"); + GLAD_GL_ARB_sample_locations = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_sample_locations"); + GLAD_GL_ARB_sample_shading = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_sample_shading"); + GLAD_GL_ARB_seamless_cube_map = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_seamless_cube_map"); + GLAD_GL_ARB_seamless_cubemap_per_texture = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_seamless_cubemap_per_texture"); + GLAD_GL_ARB_shader_atomic_counter_ops = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_shader_atomic_counter_ops"); + GLAD_GL_ARB_shader_atomic_counters = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_shader_atomic_counters"); + GLAD_GL_ARB_shader_bit_encoding = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_shader_bit_encoding"); + GLAD_GL_ARB_shader_clock = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_shader_clock"); + GLAD_GL_ARB_shader_image_load_store = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_shader_image_load_store"); + GLAD_GL_ARB_shader_image_size = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_shader_image_size"); + GLAD_GL_ARB_shader_objects = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_shader_objects"); + GLAD_GL_ARB_shader_storage_buffer_object = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_shader_storage_buffer_object"); + GLAD_GL_ARB_shader_texture_lod = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_shader_texture_lod"); + GLAD_GL_ARB_shading_language_100 = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_shading_language_100"); + GLAD_GL_ARB_shading_language_420pack = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_shading_language_420pack"); + GLAD_GL_ARB_shading_language_include = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_shading_language_include"); + GLAD_GL_ARB_shading_language_packing = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_shading_language_packing"); + GLAD_GL_ARB_spirv_extensions = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_spirv_extensions"); + GLAD_GL_ARB_tessellation_shader = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_tessellation_shader"); + GLAD_GL_ARB_texture_border_clamp = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_texture_border_clamp"); + GLAD_GL_ARB_texture_buffer_object_rgb32 = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_texture_buffer_object_rgb32"); + GLAD_GL_ARB_texture_compression = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_texture_compression"); + GLAD_GL_EXT_texture_compression_s3tc = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_EXT_texture_compression_s3tc"); + GLAD_GL_ARB_texture_cube_map = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_texture_cube_map"); + GLAD_GL_ARB_texture_cube_map_array = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_texture_cube_map_array"); + GLAD_GL_ARB_texture_env_add = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_texture_env_add"); + GLAD_GL_ARB_texture_filter_anisotropic = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_texture_filter_anisotropic"); + GLAD_GL_ARB_texture_filter_minmax = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_texture_filter_minmax"); + GLAD_GL_ARB_texture_float = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_texture_float"); + GLAD_GL_ARB_texture_mirror_clamp_to_edge = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_texture_mirror_clamp_to_edge"); + GLAD_GL_ARB_texture_mirrored_repeat = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_texture_mirrored_repeat"); + GLAD_GL_ARB_texture_multisample = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_texture_multisample"); + GLAD_GL_ARB_texture_non_power_of_two = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_texture_non_power_of_two"); + GLAD_GL_ARB_texture_rg = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_texture_rg"); + GLAD_GL_ARB_texture_storage = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_texture_storage"); + GLAD_GL_ARB_texture_swizzle = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_texture_swizzle"); + GLAD_GL_ARB_texture_view = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_texture_view"); + GLAD_GL_ARB_timer_query = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_timer_query"); + GLAD_GL_ARB_transpose_matrix = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_transpose_matrix"); + GLAD_GL_ARB_uniform_buffer_object = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_uniform_buffer_object"); + GLAD_GL_ARB_vertex_array_bgra = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_vertex_array_bgra"); + GLAD_GL_ARB_vertex_array_object = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_vertex_array_object"); + GLAD_GL_ARB_vertex_attrib_binding = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_vertex_attrib_binding"); + GLAD_GL_ARB_vertex_buffer_object = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_vertex_buffer_object"); + GLAD_GL_ARB_vertex_program = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_vertex_program"); + GLAD_GL_ARB_vertex_shader = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_ARB_vertex_shader"); + GLAD_GL_EXT_fog_coord = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_EXT_fog_coord"); + GLAD_GL_EXT_framebuffer_blit = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_EXT_framebuffer_blit"); + GLAD_GL_EXT_framebuffer_multisample = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_EXT_framebuffer_multisample"); + GLAD_GL_EXT_framebuffer_object = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_EXT_framebuffer_object"); + GLAD_GL_EXT_framebuffer_sRGB = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_EXT_framebuffer_sRGB"); + GLAD_GL_OES_compressed_paletted_texture = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_OES_compressed_paletted_texture"); + GLAD_GL_OES_fixed_point = glad_gl_has_extension(version, exts, num_exts_i, exts_i, "GL_OES_fixed_point"); + glad_gl_free_extensions(exts_i, num_exts_i); + + return 1; +} + +static int glad_gl_find_core_gl(void) { + int i; const char* version; const char* prefixes[] = { "OpenGL ES-CM ", "OpenGL ES-CL ", "OpenGL ES ", + "OpenGL SC ", NULL }; - - version = (const char*) glGetString(GL_VERSION); - if (!version) return; - + int major = 0; + int minor = 0; + version = (const char*) glad_glGetString(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) { @@ -5391,84 +8510,131 @@ static void find_coreGL(void) { } } -/* PR #18 */ -#ifdef _MSC_VER - sscanf_s(version, "%d.%d", &major, &minor); -#else - sscanf(version, "%d.%d", &major, &minor); + GLAD_IMPL_UTIL_SSCANF(version, "%d.%d", &major, &minor); + + GLAD_GL_VERSION_1_0 = (major == 1 && minor >= 0) || major > 1; + GLAD_GL_VERSION_1_1 = (major == 1 && minor >= 1) || major > 1; + GLAD_GL_VERSION_1_2 = (major == 1 && minor >= 2) || major > 1; + GLAD_GL_VERSION_1_3 = (major == 1 && minor >= 3) || major > 1; + GLAD_GL_VERSION_1_4 = (major == 1 && minor >= 4) || major > 1; + GLAD_GL_VERSION_1_5 = (major == 1 && minor >= 5) || major > 1; + GLAD_GL_VERSION_2_0 = (major == 2 && minor >= 0) || major > 2; + GLAD_GL_VERSION_2_1 = (major == 2 && minor >= 1) || major > 2; + GLAD_GL_VERSION_3_0 = (major == 3 && minor >= 0) || major > 3; + GLAD_GL_VERSION_3_1 = (major == 3 && minor >= 1) || major > 3; + GLAD_GL_VERSION_3_2 = (major == 3 && minor >= 2) || major > 3; + GLAD_GL_VERSION_3_3 = (major == 3 && minor >= 3) || major > 3; + GLAD_GL_VERSION_4_0 = (major == 4 && minor >= 0) || major > 4; + GLAD_GL_VERSION_4_1 = (major == 4 && minor >= 1) || major > 4; + GLAD_GL_VERSION_4_2 = (major == 4 && minor >= 2) || major > 4; + GLAD_GL_VERSION_4_3 = (major == 4 && minor >= 3) || major > 4; + + return GLAD_MAKE_VERSION(major, minor); +} + +int gladLoadGLUserPtr( GLADuserptrloadfunc load, void *userptr) { + int version; + + glad_glGetString = (PFNGLGETSTRINGPROC) load(userptr, "glGetString"); + if(glad_glGetString == NULL) return 0; + if(glad_glGetString(GL_VERSION) == NULL) return 0; + version = glad_gl_find_core_gl(); + + glad_gl_load_GL_VERSION_1_0(load, userptr); + glad_gl_load_GL_VERSION_1_1(load, userptr); + glad_gl_load_GL_VERSION_1_2(load, userptr); + glad_gl_load_GL_VERSION_1_3(load, userptr); + glad_gl_load_GL_VERSION_1_4(load, userptr); + glad_gl_load_GL_VERSION_1_5(load, userptr); + glad_gl_load_GL_VERSION_2_0(load, userptr); + glad_gl_load_GL_VERSION_2_1(load, userptr); + glad_gl_load_GL_VERSION_3_0(load, userptr); + glad_gl_load_GL_VERSION_3_1(load, userptr); + glad_gl_load_GL_VERSION_3_2(load, userptr); + glad_gl_load_GL_VERSION_3_3(load, userptr); + glad_gl_load_GL_VERSION_4_0(load, userptr); + glad_gl_load_GL_VERSION_4_1(load, userptr); + glad_gl_load_GL_VERSION_4_2(load, userptr); + glad_gl_load_GL_VERSION_4_3(load, userptr); + + if (!glad_gl_find_extensions_gl(version)) return 0; + glad_gl_load_GL_ARB_ES2_compatibility(load, userptr); + glad_gl_load_GL_ARB_ES3_1_compatibility(load, userptr); + glad_gl_load_GL_ARB_ES3_2_compatibility(load, userptr); + glad_gl_load_GL_ARB_blend_func_extended(load, userptr); + glad_gl_load_GL_ARB_buffer_storage(load, userptr); + glad_gl_load_GL_ARB_clear_buffer_object(load, userptr); + glad_gl_load_GL_ARB_clear_texture(load, userptr); + glad_gl_load_GL_ARB_color_buffer_float(load, userptr); + glad_gl_load_GL_ARB_compute_shader(load, userptr); + glad_gl_load_GL_ARB_compute_variable_group_size(load, userptr); + glad_gl_load_GL_ARB_copy_buffer(load, userptr); + glad_gl_load_GL_ARB_copy_image(load, userptr); + glad_gl_load_GL_ARB_debug_output(load, userptr); + glad_gl_load_GL_ARB_direct_state_access(load, userptr); + glad_gl_load_GL_ARB_draw_buffers(load, userptr); + glad_gl_load_GL_ARB_draw_buffers_blend(load, userptr); + glad_gl_load_GL_ARB_draw_elements_base_vertex(load, userptr); + glad_gl_load_GL_ARB_draw_indirect(load, userptr); + glad_gl_load_GL_ARB_draw_instanced(load, userptr); + glad_gl_load_GL_ARB_fragment_program(load, userptr); + glad_gl_load_GL_ARB_framebuffer_no_attachments(load, userptr); + glad_gl_load_GL_ARB_framebuffer_object(load, userptr); + glad_gl_load_GL_ARB_geometry_shader4(load, userptr); + glad_gl_load_GL_ARB_get_program_binary(load, userptr); + glad_gl_load_GL_ARB_get_texture_sub_image(load, userptr); + glad_gl_load_GL_ARB_gl_spirv(load, userptr); + glad_gl_load_GL_ARB_gpu_shader_fp64(load, userptr); + glad_gl_load_GL_ARB_gpu_shader_int64(load, userptr); + glad_gl_load_GL_ARB_instanced_arrays(load, userptr); + glad_gl_load_GL_ARB_internalformat_query(load, userptr); + glad_gl_load_GL_ARB_internalformat_query2(load, userptr); + glad_gl_load_GL_ARB_map_buffer_range(load, userptr); + glad_gl_load_GL_ARB_multi_bind(load, userptr); + glad_gl_load_GL_ARB_multi_draw_indirect(load, userptr); + glad_gl_load_GL_ARB_multisample(load, userptr); + glad_gl_load_GL_ARB_multitexture(load, userptr); + glad_gl_load_GL_ARB_occlusion_query(load, userptr); + glad_gl_load_GL_ARB_sample_locations(load, userptr); + glad_gl_load_GL_ARB_sample_shading(load, userptr); + glad_gl_load_GL_ARB_shader_atomic_counters(load, userptr); + glad_gl_load_GL_ARB_shader_image_load_store(load, userptr); + glad_gl_load_GL_ARB_shader_objects(load, userptr); + glad_gl_load_GL_ARB_shader_storage_buffer_object(load, userptr); + glad_gl_load_GL_ARB_shading_language_include(load, userptr); + glad_gl_load_GL_ARB_tessellation_shader(load, userptr); + glad_gl_load_GL_ARB_texture_compression(load, userptr); + glad_gl_load_GL_ARB_texture_multisample(load, userptr); + glad_gl_load_GL_ARB_texture_storage(load, userptr); + glad_gl_load_GL_ARB_texture_view(load, userptr); + glad_gl_load_GL_ARB_timer_query(load, userptr); + glad_gl_load_GL_ARB_transpose_matrix(load, userptr); + glad_gl_load_GL_ARB_uniform_buffer_object(load, userptr); + glad_gl_load_GL_ARB_vertex_array_object(load, userptr); + glad_gl_load_GL_ARB_vertex_attrib_binding(load, userptr); + glad_gl_load_GL_ARB_vertex_buffer_object(load, userptr); + glad_gl_load_GL_ARB_vertex_program(load, userptr); + glad_gl_load_GL_ARB_vertex_shader(load, userptr); + glad_gl_load_GL_EXT_fog_coord(load, userptr); + glad_gl_load_GL_EXT_framebuffer_blit(load, userptr); + glad_gl_load_GL_EXT_framebuffer_multisample(load, userptr); + glad_gl_load_GL_EXT_framebuffer_object(load, userptr); + glad_gl_load_GL_OES_fixed_point(load, userptr); + + + + return version; +} + + +int gladLoadGL( GLADloadfunc load) { + return gladLoadGLUserPtr( glad_gl_get_proc_from_userptr, GLAD_GNUC_EXTENSION (void*) load); +} + + +#ifdef __cplusplus +} #endif - GLVersion.major = major; GLVersion.minor = minor; - max_loaded_major = major; max_loaded_minor = minor; - GLAD_GL_VERSION_1_0 = (major == 1 && minor >= 0) || major > 1; - GLAD_GL_VERSION_1_1 = (major == 1 && minor >= 1) || major > 1; - GLAD_GL_VERSION_1_2 = (major == 1 && minor >= 2) || major > 1; - GLAD_GL_VERSION_1_3 = (major == 1 && minor >= 3) || major > 1; - GLAD_GL_VERSION_1_4 = (major == 1 && minor >= 4) || major > 1; - GLAD_GL_VERSION_1_5 = (major == 1 && minor >= 5) || major > 1; - GLAD_GL_VERSION_2_0 = (major == 2 && minor >= 0) || major > 2; - GLAD_GL_VERSION_2_1 = (major == 2 && minor >= 1) || major > 2; - GLAD_GL_VERSION_3_0 = (major == 3 && minor >= 0) || major > 3; - GLAD_GL_VERSION_3_1 = (major == 3 && minor >= 1) || major > 3; - GLAD_GL_VERSION_3_2 = (major == 3 && minor >= 2) || major > 3; - GLAD_GL_VERSION_3_3 = (major == 3 && minor >= 3) || major > 3; - if (GLVersion.major > 3 || (GLVersion.major >= 3 && GLVersion.minor >= 3)) { - max_loaded_major = 3; - max_loaded_minor = 3; - } -} +#endif /* GLAD_GL_IMPLEMENTATION */ -int gladLoadGLLoader(GLADloadproc load) { - GLVersion.major = 0; GLVersion.minor = 0; - glGetString = (PFNGLGETSTRINGPROC)load("glGetString"); - if(glGetString == NULL) return 0; - if(glGetString(GL_VERSION) == NULL) return 0; - find_coreGL(); - load_GL_VERSION_1_0(load); - load_GL_VERSION_1_1(load); - load_GL_VERSION_1_2(load); - load_GL_VERSION_1_3(load); - load_GL_VERSION_1_4(load); - load_GL_VERSION_1_5(load); - load_GL_VERSION_2_0(load); - load_GL_VERSION_2_1(load); - load_GL_VERSION_3_0(load); - load_GL_VERSION_3_1(load); - load_GL_VERSION_3_2(load); - load_GL_VERSION_3_3(load); - - if (!find_extensionsGL()) return 0; - load_GL_AMD_debug_output(load); - load_GL_ARB_ES2_compatibility(load); - load_GL_ARB_buffer_storage(load); - load_GL_ARB_debug_output(load); - load_GL_ARB_draw_buffers(load); - load_GL_ARB_draw_buffers_blend(load); - load_GL_ARB_fragment_program(load); - load_GL_ARB_framebuffer_object(load); - load_GL_ARB_multisample(load); - load_GL_ARB_sample_locations(load); - load_GL_ARB_texture_compression(load); - load_GL_ARB_texture_multisample(load); - load_GL_ARB_uniform_buffer_object(load); - load_GL_ARB_vertex_array_object(load); - load_GL_ARB_vertex_attrib_binding(load); - load_GL_ARB_vertex_buffer_object(load); - load_GL_ARB_vertex_program(load); - load_GL_ARB_vertex_shader(load); - load_GL_ATI_element_array(load); - load_GL_ATI_fragment_shader(load); - load_GL_ATI_vertex_array_object(load); - load_GL_EXT_blend_color(load); - load_GL_EXT_blend_equation_separate(load); - load_GL_EXT_blend_func_separate(load); - load_GL_EXT_debug_marker(load); - load_GL_EXT_framebuffer_blit(load); - load_GL_EXT_framebuffer_multisample(load); - load_GL_EXT_framebuffer_object(load); - load_GL_EXT_vertex_array(load); - load_GL_EXT_vertex_shader(load); - return GLVersion.major != 0 || GLVersion.minor != 0; -} - -#endif // GLAD_IMPLEMENTATION diff --git a/src/external/vox_loader.h b/src/external/vox_loader.h index f199a333c..0eb5cafb4 100644 --- a/src/external/vox_loader.h +++ b/src/external/vox_loader.h @@ -43,27 +43,25 @@ revision history: Changed Vox_LoadFileName to Vox_LoadFromMemory 1.02 (2021-09-10) @raysan5: Reviewed some formating 1.03 (2021-10-02) @catmanl: Reduce warnings on gcc + 1.04 (2021-10-17) @warzes: Fixing the error of loading VOX models */ #ifndef VOX_LOADER_H #define VOX_LOADER_H -#include -#include - // Allow custom memory allocators #ifndef VOX_MALLOC - #define VOX_MALLOC RL_MALLOC + #define VOX_MALLOC(sz) malloc(sz) #endif #ifndef VOX_CALLOC - #define VOX_CALLOC RL_CALLOC + #define VOX_CALLOC(n,sz) calloc(n,sz) #endif #ifndef VOX_REALLOC - #define VOX_REALLOC RL_REALLOC + #define VOX_REALLOC(n,sz) realloc(n,sz) #endif #ifndef VOX_FREE - #define VOX_FREE RL_FREE + #define VOX_FREE(p) free(p) #endif #define VOX_SUCCESS (0) @@ -157,6 +155,9 @@ void Vox_FreeArrays(VoxArray3D* voxarray); #ifdef VOX_LOADER_IMPLEMENTATION +#include +#include + ///////////////////////////////////////////////////////////////////////////////////////////// // ArrayUShort helper ///////////////////////////////////////////////////////////////////////////////////////////// @@ -585,6 +586,9 @@ int Vox_LoadFromMemory(unsigned char* pvoxData, unsigned int voxDataSize, VoxArr unsigned long chunkSize = *((unsigned long*)fileDataPtr); fileDataPtr += sizeof(unsigned long); + //unsigned long chunkTotalChildSize = *((unsigned long*)fileDataPtr); + fileDataPtr += sizeof(unsigned long); + if (strcmp(szChunkName, "SIZE") == 0) { //(4 bytes x 3 : x, y, z ) diff --git a/src/raudio.c b/src/raudio.c index 36820abe2..a694c9feb 100644 --- a/src/raudio.c +++ b/src/raudio.c @@ -193,7 +193,7 @@ typedef struct tagBITMAPINFOHEADER { #endif #if defined(SUPPORT_FILEFORMAT_OGG) - // TODO: Remap malloc()/free() calls to RL_MALLOC/RL_FREE + // TODO: Remap stb_vorbis malloc()/free() calls to RL_MALLOC/RL_FREE #define STB_VORBIS_IMPLEMENTATION #include "external/stb_vorbis.h" // OGG loading functions @@ -405,8 +405,6 @@ void UntrackAudioBuffer(AudioBuffer *buffer); // Initialize audio device void InitAudioDevice(void) { - // TODO: Load AUDIO context memory dynamically? - // Init audio context ma_context_config ctxConfig = ma_context_config_init(); ctxConfig.logCallback = OnLog; @@ -1680,7 +1678,7 @@ void SeekMusicStream(Music music, float position) #endif default: break; } - + music.stream.buffer->framesProcessed = positionInFrames; } diff --git a/src/raylib.h b/src/raylib.h index 31af5d57c..9f6ce25d6 100644 --- a/src/raylib.h +++ b/src/raylib.h @@ -5,7 +5,7 @@ * FEATURES: * - NO external dependencies, all required libraries included with raylib * - Multiplatform: Windows, Linux, FreeBSD, OpenBSD, NetBSD, DragonFly, -* MacOS, Haiku, UWP, Android, Raspberry Pi, HTML5. +* MacOS, Haiku, Android, Raspberry Pi, DRM native, HTML5. * - Written in plain C code (C99) in PascalCase/camelCase notation * - Hardware accelerated with OpenGL (1.1, 2.1, 3.3 or ES2 - choose at compile) * - Unique OpenGL abstraction layer (usable as standalone module): [rlgl] @@ -21,29 +21,28 @@ * - Bindings to multiple programming languages available! * * NOTES: -* One default Font is loaded on InitWindow()->LoadFontDefault() [core, text] -* One default Texture2D is loaded on rlglInit(), 1x1 white pixel R8G8B8A8 [rlgl] (OpenGL 3.3 or ES2) -* One default Shader is loaded on rlglInit()->rlLoadShaderDefault() [rlgl] (OpenGL 3.3 or ES2) -* One default RenderBatch is loaded on rlglInit()->rlLoadRenderBatch() [rlgl] (OpenGL 3.3 or ES2) +* - One default Font is loaded on InitWindow()->LoadFontDefault() [core, text] +* - One default Texture2D is loaded on rlglInit(), 1x1 white pixel R8G8B8A8 [rlgl] (OpenGL 3.3 or ES2) +* - One default Shader is loaded on rlglInit()->rlLoadShaderDefault() [rlgl] (OpenGL 3.3 or ES2) +* - One default RenderBatch is loaded on rlglInit()->rlLoadRenderBatch() [rlgl] (OpenGL 3.3 or ES2) * * DEPENDENCIES (included): -* [core] rglfw (Camilla Löwy - github.com/glfw/glfw) for window/context management and input (PLATFORM_DESKTOP) +* [rcore] rglfw (Camilla Löwy - github.com/glfw/glfw) for window/context management and input (PLATFORM_DESKTOP) * [rlgl] glad (David Herberth - github.com/Dav1dde/glad) for OpenGL 3.3 extensions loading (PLATFORM_DESKTOP) * [raudio] miniaudio (David Reid - github.com/mackron/miniaudio) for audio device/context management * * OPTIONAL DEPENDENCIES (included): -* [core] msf_gif (Miles Fogle) for GIF recording -* [core] sinfl (Micha Mettke) for DEFLATE decompression algorythm -* [core] sdefl (Micha Mettke) for DEFLATE compression algorythm -* [textures] stb_image (Sean Barret) for images loading (BMP, TGA, PNG, JPEG, HDR...) -* [textures] stb_image_write (Sean Barret) for image writting (BMP, TGA, PNG, JPG) -* [textures] stb_image_resize (Sean Barret) for image resizing algorithms -* [textures] stb_perlin (Sean Barret) for Perlin noise image generation -* [text] stb_truetype (Sean Barret) for ttf fonts loading -* [text] stb_rect_pack (Sean Barret) for rectangles packing -* [models] par_shapes (Philip Rideout) for parametric 3d shapes generation -* [models] tinyobj_loader_c (Syoyo Fujita) for models loading (OBJ, MTL) -* [models] cgltf (Johannes Kuhlmann) for models loading (glTF) +* [rcore] msf_gif (Miles Fogle) for GIF recording +* [rcore] sinfl (Micha Mettke) for DEFLATE decompression algorythm +* [rcore] sdefl (Micha Mettke) for DEFLATE compression algorythm +* [rtextures] stb_image (Sean Barret) for images loading (BMP, TGA, PNG, JPEG, HDR...) +* [rtextures] stb_image_write (Sean Barret) for image writting (BMP, TGA, PNG, JPG) +* [rtextures] stb_image_resize (Sean Barret) for image resizing algorithms +* [rtext] stb_truetype (Sean Barret) for ttf fonts loading +* [rtext] stb_rect_pack (Sean Barret) for rectangles packing +* [rmodels] par_shapes (Philip Rideout) for parametric 3d shapes generation +* [rmodels] tinyobj_loader_c (Syoyo Fujita) for models loading (OBJ, MTL) +* [rmodels] cgltf (Johannes Kuhlmann) for models loading (glTF) * [raudio] dr_wav (David Reid) for WAV audio file loading * [raudio] dr_flac (David Reid) for FLAC audio file loading * [raudio] dr_mp3 (David Reid) for MP3 audio file loading @@ -1053,8 +1052,11 @@ RLAPI char **GetDroppedFiles(int *count); // Get dropped RLAPI void ClearDroppedFiles(void); // Clear dropped files paths buffer (free memory) RLAPI long GetFileModTime(const char *fileName); // Get file modification time (last write time) +// Compression/Encoding functionality RLAPI unsigned char *CompressData(unsigned char *data, int dataLength, int *compDataLength); // Compress data (DEFLATE algorithm) RLAPI unsigned char *DecompressData(unsigned char *compData, int compDataLength, int *dataLength); // Decompress data (DEFLATE algorithm) +RLAPI char *EncodeDataBase64(const unsigned char *data, int dataLength, int *outputLength); // Encode data to Base64 string +RLAPI unsigned char *DecodeDataBase64(unsigned char *data, int *outputLength); // Decode Base64 string data // Persistent storage management RLAPI bool SaveStorageValue(unsigned int position, int value); // Save integer value to storage file (to defined position), returns true on success @@ -1109,7 +1111,6 @@ RLAPI int GetTouchY(void); // Get touch posit RLAPI Vector2 GetTouchPosition(int index); // Get touch position XY for a touch point index (relative to screen size) RLAPI int GetTouchPointId(int index); // Get touch point identifier for given index RLAPI int GetTouchPointCount(void); // Get number of touch points -RLAPI int GetTouchEvent(void); // Get last touch event registered //------------------------------------------------------------------------------------ // Gestures and Touch Handling Functions (Module: rgestures) @@ -1189,6 +1190,7 @@ RLAPI bool CheckCollisionPointRec(Vector2 point, Rectangle rec); RLAPI bool CheckCollisionPointCircle(Vector2 point, Vector2 center, float radius); // Check if point is inside circle RLAPI bool CheckCollisionPointTriangle(Vector2 point, Vector2 p1, Vector2 p2, Vector2 p3); // Check if point is inside a triangle RLAPI bool CheckCollisionLines(Vector2 startPos1, Vector2 endPos1, Vector2 startPos2, Vector2 endPos2, Vector2 *collisionPoint); // Check the collision between two lines defined by two points each, returns collision point by reference +RLAPI bool CheckCollisionPointLine(Vector2 point, Vector2 p1, Vector2 p2, int threshold); // Check if point belongs to line created between two points [p1] and [p2] with defined margin in pixels [threshold] RLAPI Rectangle GetCollisionRec(Rectangle rec1, Rectangle rec2); // Get collision rectangle for two rectangles collision //------------------------------------------------------------------------------------ @@ -1383,7 +1385,9 @@ RLAPI void DrawSphere(Vector3 centerPos, float radius, Color color); RLAPI void DrawSphereEx(Vector3 centerPos, float radius, int rings, int slices, Color color); // Draw sphere with extended parameters RLAPI void DrawSphereWires(Vector3 centerPos, float radius, int rings, int slices, Color color); // Draw sphere wires RLAPI void DrawCylinder(Vector3 position, float radiusTop, float radiusBottom, float height, int slices, Color color); // Draw a cylinder/cone +RLAPI void DrawCylinderEx(Vector3 startPos, Vector3 endPos, float startRadius, float endRadius, int sides, Color color); // Draw a cylinder with base at startPos and top at endPos RLAPI void DrawCylinderWires(Vector3 position, float radiusTop, float radiusBottom, float height, int slices, Color color); // Draw a cylinder/cone wires +RLAPI void DrawCylinderWiresEx(Vector3 startPos, Vector3 endPos, float startRadius, float endRadius, int sides, Color color); // Draw a cylinder wires with base at startPos and top at endPos RLAPI void DrawPlane(Vector3 centerPos, Vector2 size, Color color); // Draw a plane XZ RLAPI void DrawRay(Ray ray, Color color); // Draw a ray line RLAPI void DrawGrid(int slices, float spacing); // Draw a grid (centered at (0, 0, 0)) diff --git a/src/raymath.h b/src/raymath.h index 8f579ed6e..48846a7ad 100644 --- a/src/raymath.h +++ b/src/raymath.h @@ -69,7 +69,6 @@ #define RMAPI inline // Functions may be inlined or external definition used #endif #endif - //---------------------------------------------------------------------------------- // Defines and Macros diff --git a/src/rcamera.h b/src/rcamera.h index 5edd79de2..2a86e3626 100644 --- a/src/rcamera.h +++ b/src/rcamera.h @@ -279,7 +279,6 @@ void SetCameraMode(Camera camera, int mode) // System: EnableCursor(), DisableCursor() // Mouse: IsMouseButtonDown(), GetMousePosition(), GetMouseWheelMove() // Keys: IsKeyDown() -// TODO: Port to quaternion-based camera (?) void UpdateCamera(Camera *camera) { static int swingCounter = 0; // Used for 1st person swinging movement @@ -532,7 +531,6 @@ void UpdateCamera(Camera *camera) // Camera distance clamp if (CAMERA.targetDistance < CAMERA_THIRD_PERSON_DISTANCE_CLAMP) CAMERA.targetDistance = CAMERA_THIRD_PERSON_DISTANCE_CLAMP; - // TODO: It seems camera->position is not correctly updated or some rounding issue makes the camera move straight to camera->target... camera->position.x = sinf(CAMERA.angle.x)*CAMERA.targetDistance*cosf(CAMERA.angle.y) + camera->target.x; if (CAMERA.angle.y <= 0.0f) camera->position.y = sinf(CAMERA.angle.y)*CAMERA.targetDistance*sinf(CAMERA.angle.y) + camera->target.y; diff --git a/src/rcore.c b/src/rcore.c index 5e5d99a30..9ab34e158 100644 --- a/src/rcore.c +++ b/src/rcore.c @@ -680,11 +680,11 @@ void android_main(struct android_app *app) char arg0[] = "raylib"; // NOTE: argv[] are mutable CORE.Android.app = app; - // TODO: Should we maybe report != 0 return codes somewhere? + // NOTE: Return codes != 0 are skipped (void)main(1, (char *[]) { arg0, NULL }); } -// TODO: Add this to header (if apps really need it) +// NOTE: Add this to header (if apps really need it) struct android_app *GetAndroidApp(void) { return CORE.Android.app; @@ -1519,7 +1519,6 @@ void SetWindowMinSize(int width, int height) } // Set window dimensions -// TODO: Issues on HighDPI scaling void SetWindowSize(int width, int height) { #if defined(PLATFORM_DESKTOP) || defined(PLATFORM_WEB) @@ -1528,8 +1527,7 @@ void SetWindowSize(int width, int height) #if defined(PLATFORM_WEB) //emscripten_set_canvas_size(width, height); // DEPRECATED! - // TODO: Below functions should be used to replace previous one but - // they do not seem to work properly + // TODO: Below functions should be used to replace previous one but they do not seem to work properly //emscripten_set_canvas_element_size("canvas", width, height); //emscripten_set_element_css_size("canvas", width, height); #endif @@ -1538,13 +1536,25 @@ void SetWindowSize(int width, int height) // Get current screen width int GetScreenWidth(void) { - return CORE.Window.currentFbo.width; + return CORE.Window.screen.width; } // Get current screen height int GetScreenHeight(void) { - return CORE.Window.currentFbo.height; + return CORE.Window.screen.height; +} + +// Get current render width which is equal to screen width * dpi scale +int GetRenderWidth(void) +{ + return CORE.Window.render.width; +} + +// Get current screen height which is equal to screen height * dpi scale +int GetRenderHeight(void) +{ + return CORE.Window.render.height; } // Get native window handle @@ -2136,8 +2146,8 @@ void EndTextureMode(void) SetupViewport(CORE.Window.render.width, CORE.Window.render.height); // Reset current fbo to screen size - CORE.Window.currentFbo.width = CORE.Window.screen.width; - CORE.Window.currentFbo.height = CORE.Window.screen.height; + CORE.Window.currentFbo.width = CORE.Window.render.width; + CORE.Window.currentFbo.height = CORE.Window.render.height; } // Begin custom shader mode @@ -2172,7 +2182,17 @@ void BeginScissorMode(int x, int y, int width, int height) rlDrawRenderBatchActive(); // Update and draw internal render batch rlEnableScissorTest(); - rlScissor(x, CORE.Window.currentFbo.height - (y + height), width, height); + + if ((CORE.Window.flags & FLAG_WINDOW_HIGHDPI) > 0) + { + Vector2 scale = GetWindowScaleDPI(); + + rlScissor(x*scale.x, CORE.Window.currentFbo.height - (y + height)*scale.y, width*scale.x, height*scale.y); + } + else + { + rlScissor(x, CORE.Window.currentFbo.height - (y + height), width, height); + } } // End scissor mode @@ -2203,71 +2223,71 @@ VrStereoConfig LoadVrStereoConfig(VrDeviceInfo device) { VrStereoConfig config = { 0 }; -#if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - // Compute aspect ratio - float aspect = ((float)device.hResolution*0.5f)/(float)device.vResolution; + if ((rlGetVersion() == OPENGL_33) || (rlGetVersion() == OPENGL_ES_20)) + { + // Compute aspect ratio + float aspect = ((float)device.hResolution*0.5f)/(float)device.vResolution; - // Compute lens parameters - float lensShift = (device.hScreenSize*0.25f - device.lensSeparationDistance*0.5f)/device.hScreenSize; - config.leftLensCenter[0] = 0.25f + lensShift; - config.leftLensCenter[1] = 0.5f; - config.rightLensCenter[0] = 0.75f - lensShift; - config.rightLensCenter[1] = 0.5f; - config.leftScreenCenter[0] = 0.25f; - config.leftScreenCenter[1] = 0.5f; - config.rightScreenCenter[0] = 0.75f; - config.rightScreenCenter[1] = 0.5f; + // Compute lens parameters + float lensShift = (device.hScreenSize*0.25f - device.lensSeparationDistance*0.5f)/device.hScreenSize; + config.leftLensCenter[0] = 0.25f + lensShift; + config.leftLensCenter[1] = 0.5f; + config.rightLensCenter[0] = 0.75f - lensShift; + config.rightLensCenter[1] = 0.5f; + config.leftScreenCenter[0] = 0.25f; + config.leftScreenCenter[1] = 0.5f; + config.rightScreenCenter[0] = 0.75f; + config.rightScreenCenter[1] = 0.5f; - // Compute distortion scale parameters - // NOTE: To get lens max radius, lensShift must be normalized to [-1..1] - float lensRadius = fabsf(-1.0f - 4.0f*lensShift); - float lensRadiusSq = lensRadius*lensRadius; - float distortionScale = device.lensDistortionValues[0] + - device.lensDistortionValues[1]*lensRadiusSq + - device.lensDistortionValues[2]*lensRadiusSq*lensRadiusSq + - device.lensDistortionValues[3]*lensRadiusSq*lensRadiusSq*lensRadiusSq; + // Compute distortion scale parameters + // NOTE: To get lens max radius, lensShift must be normalized to [-1..1] + float lensRadius = fabsf(-1.0f - 4.0f*lensShift); + float lensRadiusSq = lensRadius*lensRadius; + float distortionScale = device.lensDistortionValues[0] + + device.lensDistortionValues[1]*lensRadiusSq + + device.lensDistortionValues[2]*lensRadiusSq*lensRadiusSq + + device.lensDistortionValues[3]*lensRadiusSq*lensRadiusSq*lensRadiusSq; - float normScreenWidth = 0.5f; - float normScreenHeight = 1.0f; - config.scaleIn[0] = 2.0f/normScreenWidth; - config.scaleIn[1] = 2.0f/normScreenHeight/aspect; - config.scale[0] = normScreenWidth*0.5f/distortionScale; - config.scale[1] = normScreenHeight*0.5f*aspect/distortionScale; + float normScreenWidth = 0.5f; + float normScreenHeight = 1.0f; + config.scaleIn[0] = 2.0f/normScreenWidth; + config.scaleIn[1] = 2.0f/normScreenHeight/aspect; + config.scale[0] = normScreenWidth*0.5f/distortionScale; + config.scale[1] = normScreenHeight*0.5f*aspect/distortionScale; - // Fovy is normally computed with: 2*atan2f(device.vScreenSize, 2*device.eyeToScreenDistance) - // ...but with lens distortion it is increased (see Oculus SDK Documentation) - //float fovy = 2.0f*atan2f(device.vScreenSize*0.5f*distortionScale, device.eyeToScreenDistance); // Really need distortionScale? - float fovy = 2.0f*(float)atan2f(device.vScreenSize*0.5f, device.eyeToScreenDistance); + // Fovy is normally computed with: 2*atan2f(device.vScreenSize, 2*device.eyeToScreenDistance) + // ...but with lens distortion it is increased (see Oculus SDK Documentation) + //float fovy = 2.0f*atan2f(device.vScreenSize*0.5f*distortionScale, device.eyeToScreenDistance); // Really need distortionScale? + float fovy = 2.0f*(float)atan2f(device.vScreenSize*0.5f, device.eyeToScreenDistance); - // Compute camera projection matrices - float projOffset = 4.0f*lensShift; // Scaled to projection space coordinates [-1..1] - Matrix proj = MatrixPerspective(fovy, aspect, RL_CULL_DISTANCE_NEAR, RL_CULL_DISTANCE_FAR); + // Compute camera projection matrices + float projOffset = 4.0f*lensShift; // Scaled to projection space coordinates [-1..1] + Matrix proj = MatrixPerspective(fovy, aspect, RL_CULL_DISTANCE_NEAR, RL_CULL_DISTANCE_FAR); - config.projection[0] = MatrixMultiply(proj, MatrixTranslate(projOffset, 0.0f, 0.0f)); - config.projection[1] = MatrixMultiply(proj, MatrixTranslate(-projOffset, 0.0f, 0.0f)); + config.projection[0] = MatrixMultiply(proj, MatrixTranslate(projOffset, 0.0f, 0.0f)); + config.projection[1] = MatrixMultiply(proj, MatrixTranslate(-projOffset, 0.0f, 0.0f)); - // Compute camera transformation matrices - // NOTE: Camera movement might seem more natural if we model the head. - // Our axis of rotation is the base of our head, so we might want to add - // some y (base of head to eye level) and -z (center of head to eye protrusion) to the camera positions. - config.viewOffset[0] = MatrixTranslate(-device.interpupillaryDistance*0.5f, 0.075f, 0.045f); - config.viewOffset[1] = MatrixTranslate(device.interpupillaryDistance*0.5f, 0.075f, 0.045f); + // Compute camera transformation matrices + // NOTE: Camera movement might seem more natural if we model the head. + // Our axis of rotation is the base of our head, so we might want to add + // some y (base of head to eye level) and -z (center of head to eye protrusion) to the camera positions. + config.viewOffset[0] = MatrixTranslate(-device.interpupillaryDistance*0.5f, 0.075f, 0.045f); + config.viewOffset[1] = MatrixTranslate(device.interpupillaryDistance*0.5f, 0.075f, 0.045f); - // Compute eyes Viewports - /* - config.eyeViewportRight[0] = 0; - config.eyeViewportRight[1] = 0; - config.eyeViewportRight[2] = device.hResolution/2; - config.eyeViewportRight[3] = device.vResolution; + // Compute eyes Viewports + /* + config.eyeViewportRight[0] = 0; + config.eyeViewportRight[1] = 0; + config.eyeViewportRight[2] = device.hResolution/2; + config.eyeViewportRight[3] = device.vResolution; - config.eyeViewportLeft[0] = device.hResolution/2; - config.eyeViewportLeft[1] = 0; - config.eyeViewportLeft[2] = device.hResolution/2; - config.eyeViewportLeft[3] = device.vResolution; - */ -#else - TRACELOG(LOG_WARNING, "RLGL: VR Simulator not supported on OpenGL 1.1"); -#endif + config.eyeViewportLeft[0] = device.hResolution/2; + config.eyeViewportLeft[1] = 0; + config.eyeViewportLeft[2] = device.hResolution/2; + config.eyeViewportLeft[3] = device.vResolution; + */ + } + else TRACELOG(LOG_WARNING, "RLGL: VR Simulator not supported on OpenGL 1.1"); return config; } @@ -2655,7 +2675,6 @@ void TakeScreenshot(const char *fileName) emscripten_run_script(TextFormat("saveFileFromMEMFSToDisk('%s','%s')", GetFileName(path), GetFileName(path))); #endif - // TODO: Verification required for log TRACELOG(LOG_INFO, "SYSTEM: [%s] Screenshot taken successfully", path); } @@ -3019,6 +3038,100 @@ unsigned char *DecompressData(unsigned char *compData, int compDataLength, int * return data; } +// Encode data to Base64 string +char *EncodeDataBase64(const unsigned char *data, int dataLength, int *outputLength) +{ + static const unsigned char base64encodeTable[] = { + 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', + 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', + 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/' + }; + + static const int modTable[] = { 0, 2, 1 }; + + *outputLength = 4*((dataLength + 2)/3); + + char *encodedData = RL_MALLOC(*outputLength); + + if (encodedData == NULL) return NULL; + + for (int i = 0, j = 0; i < dataLength;) + { + unsigned int octetA = (i < dataLength)? (unsigned char)data[i++] : 0; + unsigned int octetB = (i < dataLength)? (unsigned char)data[i++] : 0; + unsigned int octetC = (i < dataLength)? (unsigned char)data[i++] : 0; + + unsigned int triple = (octetA << 0x10) + (octetB << 0x08) + octetC; + + encodedData[j++] = base64encodeTable[(triple >> 3*6) & 0x3F]; + encodedData[j++] = base64encodeTable[(triple >> 2*6) & 0x3F]; + encodedData[j++] = base64encodeTable[(triple >> 1*6) & 0x3F]; + encodedData[j++] = base64encodeTable[(triple >> 0*6) & 0x3F]; + } + + for (int i = 0; i < modTable[dataLength%3]; i++) encodedData[*outputLength - 1 - i] = '='; + + return encodedData; +} + +// Decode Base64 string data +unsigned char *DecodeDataBase64(unsigned char *data, int *outputLength) +{ + static const unsigned char base64decodeTable[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 62, 0, 0, 0, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 0, 0, 0, 0, 0, 0, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51 + }; + + // Get output size of Base64 input data + int outLength = 0; + for (int i = 0; data[4*i] != 0; i++) + { + if (data[4*i + 3] == '=') + { + if (data[4*i + 2] == '=') outLength += 1; + else outLength += 2; + } + else outLength += 3; + } + + // Allocate memory to store decoded Base64 data + unsigned char *decodedData = (unsigned char *)RL_MALLOC(outLength); + + for (int i = 0; i < outLength/3; i++) + { + unsigned char a = base64decodeTable[(int)data[4*i]]; + unsigned char b = base64decodeTable[(int)data[4*i + 1]]; + unsigned char c = base64decodeTable[(int)data[4*i + 2]]; + unsigned char d = base64decodeTable[(int)data[4*i + 3]]; + + decodedData[3*i] = (a << 2) | (b >> 4); + decodedData[3*i + 1] = (b << 4) | (c >> 2); + decodedData[3*i + 2] = (c << 6) | d; + } + + if (outLength%3 == 1) + { + int n = outLength/3; + unsigned char a = base64decodeTable[(int)data[4*n]]; + unsigned char b = base64decodeTable[(int)data[4*n + 1]]; + decodedData[outLength - 1] = (a << 2) | (b >> 4); + } + else if (outLength%3 == 2) + { + int n = outLength/3; + unsigned char a = base64decodeTable[(int)data[4*n]]; + unsigned char b = base64decodeTable[(int)data[4*n + 1]]; + unsigned char c = base64decodeTable[(int)data[4*n + 2]]; + decodedData[outLength - 2] = (a << 2) | (b >> 4); + decodedData[outLength - 1] = (b << 4) | (c >> 2); + } + + *outputLength = outLength; + return decodedData; +} + // Save integer value to storage file (to defined position) // NOTE: Storage positions is directly related to file memory layout (4 bytes each integer) bool SaveStorageValue(unsigned int position, int value) @@ -3571,8 +3684,6 @@ Vector2 GetTouchPosition(int index) #if defined(PLATFORM_WEB) || defined(PLATFORM_RPI) || defined(PLATFORM_DRM) if (index < MAX_TOUCH_POINTS) position = CORE.Input.Touch.position[index]; else TRACELOG(LOG_WARNING, "INPUT: Required touch point out of range (Max touch points: %i)", MAX_TOUCH_POINTS); - - // TODO: Touch position scaling required? #endif return position; @@ -3741,6 +3852,16 @@ static bool InitGraphicsDevice(int width, int height) #endif //glfwWindowHint(GLFW_OPENGL_DEBUG_CONTEXT, GLFW_TRUE); // Request OpenGL DEBUG context } + else if (rlGetVersion() == OPENGL_43) + { + glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4); // Choose OpenGL major version (just hint) + glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); // Choose OpenGL minor version (just hint) + glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); + glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GLFW_FALSE); +#if defined(RLGL_ENABLE_OPENGL_DEBUG_CONTEXT) + glfwWindowHint(GLFW_OPENGL_DEBUG_CONTEXT, GLFW_TRUE); // Enable OpenGL Debug Context +#endif + } else if (rlGetVersion() == OPENGL_ES_20) // Request OpenGL ES 2.0 context { glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 2); @@ -3842,16 +3963,6 @@ static bool InitGraphicsDevice(int width, int height) TRACELOG(LOG_WARNING, "GLFW: Failed to initialize Window"); return false; } - else - { - TRACELOG(LOG_INFO, "DISPLAY: Device initialized successfully"); -#if defined(PLATFORM_DESKTOP) - TRACELOG(LOG_INFO, " > Display size: %i x %i", CORE.Window.display.width, CORE.Window.display.height); -#endif - TRACELOG(LOG_INFO, " > Render size: %i x %i", CORE.Window.render.width, CORE.Window.render.height); - TRACELOG(LOG_INFO, " > Screen size: %i x %i", CORE.Window.screen.width, CORE.Window.screen.height); - TRACELOG(LOG_INFO, " > Viewport offsets: %i, %i", CORE.Window.renderOffset.x, CORE.Window.renderOffset.y); - } // Set window callback events glfwSetWindowSizeCallback(CORE.Window.handle, WindowSizeCallback); // NOTE: Resizing not allowed by default! @@ -4300,12 +4411,8 @@ static bool InitGraphicsDevice(int width, int height) rlLoadExtensions(eglGetProcAddress); #endif - // Initialize OpenGL context (states and resources) - // NOTE: CORE.Window.screen.width and CORE.Window.screen.height not used, just stored as globals in rlgl - rlglInit(CORE.Window.screen.width, CORE.Window.screen.height); - - int fbWidth = CORE.Window.render.width; - int fbHeight = CORE.Window.render.height; + int fbWidth = CORE.Window.screen.width; + int fbHeight = CORE.Window.screen.height; #if defined(PLATFORM_DESKTOP) if ((CORE.Window.flags & FLAG_WINDOW_HIGHDPI) > 0) @@ -4324,11 +4431,25 @@ static bool InitGraphicsDevice(int width, int height) } #endif + CORE.Window.currentFbo.width = fbWidth; + CORE.Window.currentFbo.height = fbHeight; + CORE.Window.render.width = CORE.Window.currentFbo.width; + CORE.Window.render.height = CORE.Window.currentFbo.height; + + // Initialize OpenGL context (states and resources) + // NOTE: CORE.Window.currentFbo.width and CORE.Window.currentFbo.height not used, just stored as globals in rlgl + rlglInit(CORE.Window.currentFbo.width, CORE.Window.currentFbo.height); + // Setup default viewport SetupViewport(fbWidth, fbHeight); - CORE.Window.currentFbo.width = CORE.Window.screen.width; - CORE.Window.currentFbo.height = CORE.Window.screen.height; + TRACELOG(LOG_INFO, "DISPLAY: Device initialized successfully"); +#if defined(PLATFORM_DESKTOP) + TRACELOG(LOG_INFO, " > Display size: %i x %i", CORE.Window.display.width, CORE.Window.display.height); +#endif + TRACELOG(LOG_INFO, " > Screen size: %i x %i", CORE.Window.screen.width, CORE.Window.screen.height); + TRACELOG(LOG_INFO, " > Render size: %i x %i", CORE.Window.render.width, CORE.Window.render.height); + TRACELOG(LOG_INFO, " > Viewport offsets: %i, %i", CORE.Window.renderOffset.x, CORE.Window.renderOffset.y); ClearBackground(RAYWHITE); // Default background color for raylib games :P @@ -4353,9 +4474,9 @@ static void SetupViewport(int width, int height) #if defined(__APPLE__) float xScale = 1.0f, yScale = 1.0f; glfwGetWindowContentScale(CORE.Window.handle, &xScale, &yScale); - rlViewport(CORE.Window.renderOffset.x/2*xScale, CORE.Window.renderOffset.y/2*yScale, (CORE.Window.render.width - CORE.Window.renderOffset.x)*xScale, (CORE.Window.render.height - CORE.Window.renderOffset.y)*yScale); + rlViewport(CORE.Window.renderOffset.x/2*xScale, CORE.Window.renderOffset.y/2*yScale, (CORE.Window.render.width)*xScale, (CORE.Window.render.height)*yScale); #else - rlViewport(CORE.Window.renderOffset.x/2, CORE.Window.renderOffset.y/2, CORE.Window.render.width - CORE.Window.renderOffset.x, CORE.Window.render.height - CORE.Window.renderOffset.y); + rlViewport(CORE.Window.renderOffset.x/2, CORE.Window.renderOffset.y/2, CORE.Window.render.width, CORE.Window.render.height); #endif rlMatrixMode(RL_PROJECTION); // Switch to projection matrix @@ -4893,8 +5014,23 @@ static void WindowSizeCallback(GLFWwindow *window, int width, int height) if (IsWindowFullscreen()) return; // Set current screen size +#if defined(__APPLE__) CORE.Window.screen.width = width; CORE.Window.screen.height = height; +#else + if ((CORE.Window.flags & FLAG_WINDOW_HIGHDPI) > 0) + { + Vector2 windowScaleDPI = GetWindowScaleDPI(); + + CORE.Window.screen.width = width/windowScaleDPI.x; + CORE.Window.screen.height = height/windowScaleDPI.y; + } + else + { + CORE.Window.screen.width = width; + CORE.Window.screen.height = height; + } +#endif // NOTE: Postprocessing texture is not scaled to new size } @@ -5436,8 +5572,6 @@ static EM_BOOL EmscriptenGamepadCallback(int eventType, const EmscriptenGamepadE } else CORE.Input.Gamepad.ready[gamepadEvent->index] = false; - // TODO: Test gamepadEvent->index - return 0; } #endif @@ -5502,7 +5636,6 @@ static void RestoreKeyboard(void) #if defined(SUPPORT_SSH_KEYBOARD_RPI) // Process keyboard inputs -// TODO: Most probably input reading and processing should be in a separate thread static void ProcessKeyboard(void) { #define MAX_KEYBUFFER_SIZE 32 // Max size in bytes to read @@ -5857,7 +5990,7 @@ static void ConfigureEvdevDevice(char *device) static void PollKeyboardEvents(void) { // Scancode to keycode mapping for US keyboards - // TODO: Probably replace this with a keymap from the X11 to get the correct regional map for the keyboard: + // TODO: Replace this with a keymap from the X11 to get the correct regional map for the keyboard: // Currently non US keyboards will have the wrong mapping for some keys static const int keymapUS[] = { 0, 256, 49, 50, 51, 52, 53, 54, 55, 56, 57, 48, 45, 61, 259, 258, 81, 87, 69, 82, 84, @@ -6343,7 +6476,6 @@ static void LoadAutomationEvents(const char *fileName) // Export recorded events into a file static void ExportAutomationEvents(const char *fileName) { - // TODO: eventCount is required -> header? -> rAEL unsigned char fileId[4] = "rEP "; // Save as binary diff --git a/src/rgestures.h b/src/rgestures.h index 2442e797b..bb9dd1689 100644 --- a/src/rgestures.h +++ b/src/rgestures.h @@ -412,7 +412,7 @@ void ProcessGestureEvent(GestureEvent event) } else if (GESTURES.Touch.pointCount > 2) // More than two touch points { - // TODO. + // TODO: Process gesture events for more than two points } } diff --git a/src/rglfw.c b/src/rglfw.c index 5728fa6e7..b6a45c092 100644 --- a/src/rglfw.c +++ b/src/rglfw.c @@ -98,7 +98,6 @@ #include "external/glfw/src/x11_monitor.c" #include "external/glfw/src/x11_window.c" #include "external/glfw/src/xkb_unicode.c" - // TODO: Joystick implementation #include "external/glfw/src/null_joystick.c" #include "external/glfw/src/posix_time.c" #include "external/glfw/src/posix_thread.c" diff --git a/src/rlgl.h b/src/rlgl.h index 47f631708..cd486a266 100644 --- a/src/rlgl.h +++ b/src/rlgl.h @@ -24,6 +24,7 @@ * #define GRAPHICS_API_OPENGL_11 * #define GRAPHICS_API_OPENGL_21 * #define GRAPHICS_API_OPENGL_33 +* #define GRAPHICS_API_OPENGL_43 * #define GRAPHICS_API_OPENGL_ES2 * Use selected OpenGL graphics backend, should be supported by platform * Those preprocessor defines are only used on rlgl module, if OpenGL version is @@ -41,6 +42,9 @@ * #define RLGL_SHOW_GL_DETAILS_INFO * Show OpenGL extensions and capabilities detailed logs on init * +* #define RLGL_ENABLE_OPENGL_DEBUG_CONTEXT +* Enable debug context (only available on OpenGL 4.3) +* * rlgl capabilities could be customized just defining some internal * values before library inclusion (default values listed): * @@ -105,11 +109,6 @@ #define RLGL_VERSION "4.0" -// Function specifiers definition -#ifndef RLAPI - #define RLAPI // Functions defined as 'extern' by default (implicit specifiers) -#endif - // Function specifiers in case library is build/used as a shared library (Windows) // NOTE: Microsoft specifiers to tell compiler that symbols are imported/exported from a .dll #if defined(_WIN32) @@ -120,6 +119,11 @@ #endif #endif +// Function specifiers definition +#ifndef RLAPI + #define RLAPI // Functions defined as 'extern' by default (implicit specifiers) +#endif + // Support TRACELOG macros #ifndef TRACELOG #define TRACELOG(level, ...) (void)0 @@ -144,6 +148,7 @@ #if !defined(GRAPHICS_API_OPENGL_11) && \ !defined(GRAPHICS_API_OPENGL_21) && \ !defined(GRAPHICS_API_OPENGL_33) && \ + !defined(GRAPHICS_API_OPENGL_43) && \ !defined(GRAPHICS_API_OPENGL_ES2) #define GRAPHICS_API_OPENGL_33 #endif @@ -156,6 +161,9 @@ #if defined(GRAPHICS_API_OPENGL_33) #undef GRAPHICS_API_OPENGL_33 #endif + #if defined(GRAPHICS_API_OPENGL_43) + #undef GRAPHICS_API_OPENGL_43 + #endif #if defined(GRAPHICS_API_OPENGL_ES2) #undef GRAPHICS_API_OPENGL_ES2 #endif @@ -167,6 +175,11 @@ #define GRAPHICS_API_OPENGL_33 #endif +// OpenGL 4.3 uses OpenGL 3.3 Core functionality +#if defined(GRAPHICS_API_OPENGL_43) + #define GRAPHICS_API_OPENGL_33 +#endif + // Support framebuffer objects by default // NOTE: Some driver implementation do not support it, despite they should #define RLGL_RENDER_TEXTURES_HINT @@ -250,6 +263,22 @@ #define RL_UNSIGNED_BYTE 0x1401 // GL_UNSIGNED_BYTE #define RL_FLOAT 0x1406 // GL_FLOAT +// Buffer usage hint +#define RL_STREAM_DRAW 0x88E0 // GL_STREAM_DRAW +#define RL_STREAM_READ 0x88E1 // GL_STREAM_READ +#define RL_STREAM_COPY 0x88E2 // GL_STREAM_COPY +#define RL_STATIC_DRAW 0x88E4 // GL_STATIC_DRAW +#define RL_STATIC_READ 0x88E5 // GL_STATIC_READ +#define RL_STATIC_COPY 0x88E6 // GL_STATIC_COPY +#define RL_DYNAMIC_DRAW 0x88E8 // GL_DYNAMIC_DRAW +#define RL_DYNAMIC_READ 0x88E9 // GL_DYNAMIC_READ +#define RL_DYNAMIC_COPY 0x88EA // GL_DYNAMIC_COPY + +// GL Shader type +#define RL_FRAGMENT_SHADER 0x8B30 // GL_FRAGMENT_SHADER +#define RL_VERTEX_SHADER 0x8B31 // GL_VERTEX_SHADER +#define RL_COMPUTE_SHADER 0x91B9 // GL_COMPUTE_SHADER + //---------------------------------------------------------------------------------- // Types and Structures Definition //---------------------------------------------------------------------------------- @@ -257,6 +286,7 @@ typedef enum { OPENGL_11 = 1, OPENGL_21, OPENGL_33, + OPENGL_43, OPENGL_ES_20 } rlGlVersion; @@ -607,7 +637,7 @@ RLAPI unsigned int rlLoadTexture(void *data, int width, int height, int format, RLAPI unsigned int rlLoadTextureDepth(int width, int height, bool useRenderBuffer); // Load depth texture/renderbuffer (to be attached to fbo) RLAPI unsigned int rlLoadTextureCubemap(void *data, int size, int format); // Load texture cubemap RLAPI void rlUpdateTexture(unsigned int id, int offsetX, int offsetY, int width, int height, int format, const void *data); // Update GPU texture with new data -RLAPI void rlGetGlTextureFormats(int format, unsigned int *glInternalFormat, unsigned int *glFormat, unsigned int *glType); // Get OpenGL internal formats +RLAPI void rlGetGlTextureFormats(int format, int *glInternalFormat, int *glFormat, int *glType); // Get OpenGL internal formats RLAPI const char *rlGetPixelFormatName(unsigned int format); // Get name string for pixel format RLAPI void rlUnloadTexture(unsigned int id); // Unload texture from GPU memory RLAPI void rlGenTextureMipmaps(unsigned int id, int width, int height, int format, int *mipmaps); // Generate mipmap data for selected texture @@ -622,16 +652,34 @@ RLAPI void rlUnloadFramebuffer(unsigned int id); // Del // Shaders management RLAPI unsigned int rlLoadShaderCode(const char *vsCode, const char *fsCode); // Load shader from code strings -RLAPI unsigned int rlCompileShader(const char *shaderCode, int type); // Compile custom shader and return shader id (type: GL_VERTEX_SHADER, GL_FRAGMENT_SHADER) +RLAPI unsigned int rlCompileShader(const char *shaderCode, int type); // Compile custom shader and return shader id (type: RL_VERTEX_SHADER, RL_FRAGMENT_SHADER, RL_COMPUTE_SHADER) RLAPI unsigned int rlLoadShaderProgram(unsigned int vShaderId, unsigned int fShaderId); // Load custom shader program RLAPI void rlUnloadShaderProgram(unsigned int id); // Unload shader program RLAPI int rlGetLocationUniform(unsigned int shaderId, const char *uniformName); // Get shader location uniform RLAPI int rlGetLocationAttrib(unsigned int shaderId, const char *attribName); // Get shader location attribute -RLAPI void rlSetUniform(int locIndex, const void *value, int uniformType, int count); // Set shader value uniform -RLAPI void rlSetUniformMatrix(int locIndex, Matrix mat); // Set shader value matrix +RLAPI void rlSetUniform(int locIndex, const void *value, int uniformType, int count); // Set shader value uniform +RLAPI void rlSetUniformMatrix(int locIndex, Matrix mat); // Set shader value matrix RLAPI void rlSetUniformSampler(int locIndex, unsigned int textureId); // Set shader value sampler RLAPI void rlSetShader(unsigned int id, int *locs); // Set shader currently active (id and locations) +#if defined(GRAPHICS_API_OPENGL_43) +// Compute shader management +RLAPI unsigned int rlLoadComputeShaderProgram(unsigned int shaderId); // Load compute shader program +RLAPI void rlComputeShaderDispatch(unsigned int groupX, unsigned int groupY, unsigned int groupZ); // Dispatch compute shader (equivalent to *draw* for graphics pilepine) + +// Shader buffer storage object management (ssbo) +RLAPI unsigned int rlLoadShaderBuffer(unsigned long long size, const void *data, int usageHint); // Load shader storage buffer object (SSBO) +RLAPI void rlUnloadShaderBuffer(unsigned int ssboId); // Unload shader storage buffer object (SSBO) +RLAPI void rlUpdateShaderBufferElements(unsigned int id, const void *data, unsigned long long dataSize, unsigned long long offset); // Update SSBO buffer data +RLAPI unsigned long long rlGetShaderBufferSize(unsigned int id); // Get SSBO buffer size +RLAPI void rlReadShaderBufferElements(unsigned int id, void *dest, unsigned long long count, unsigned long long offset); // Bind SSBO buffer +RLAPI void rlBindShaderBuffer(unsigned int id, unsigned int index); // Copy SSBO buffer data + +// Buffer management +RLAPI void rlCopyBuffersElements(unsigned int destId, unsigned int srcId, unsigned long long destOffset, unsigned long long srcOffset, unsigned long long count); // Copy SSBO buffer data +RLAPI void rlBindImageTexture(unsigned int id, unsigned int index, unsigned int format, int readonly); // Bind image texture +#endif + // Matrix state management RLAPI Matrix rlGetMatrixModelview(void); // Get internal modelview matrix RLAPI Matrix rlGetMatrixProjection(void); // Get internal projection matrix @@ -640,8 +688,8 @@ RLAPI Matrix rlGetMatrixProjectionStereo(int eye); // Get RLAPI Matrix rlGetMatrixViewOffsetStereo(int eye); // Get internal view offset matrix for stereo render (selected eye) RLAPI void rlSetMatrixProjection(Matrix proj); // Set a custom projection matrix (replaces internal projection matrix) RLAPI void rlSetMatrixModelview(Matrix view); // Set a custom modelview matrix (replaces internal modelview matrix) -RLAPI void rlSetMatrixProjectionStereo(Matrix right, Matrix left); // Set eyes projection matrices for stereo rendering -RLAPI void rlSetMatrixViewOffsetStereo(Matrix right, Matrix left); // Set eyes view offsets matrices for stereo rendering +RLAPI void rlSetMatrixProjectionStereo(Matrix right, Matrix left); // Set eyes projection matrices for stereo rendering +RLAPI void rlSetMatrixViewOffsetStereo(Matrix right, Matrix left); // Set eyes view offsets matrices for stereo rendering // Quick and dirty cube/quad buffers load->draw->unload RLAPI void rlLoadDrawCube(void); // Load and draw a cube @@ -688,10 +736,10 @@ RLAPI void rlLoadDrawQuad(void); // Load and draw a quad #include // OpenGL 3 library for OSX #include // OpenGL 3 extensions library for OSX #else - #define GLAD_REALLOC RL_REALLOC + #define GLAD_MALLOC RL_MALLOC #define GLAD_FREE RL_FREE - #define GLAD_IMPLEMENTATION + #define GLAD_GL_IMPLEMENTATION #include "external/glad.h" // GLAD extensions loading library, includes OpenGL headers #endif #endif @@ -896,6 +944,8 @@ typedef struct rlglData { bool texCompASTC; // ASTC texture compression support (GL_KHR_texture_compression_astc_hdr, GL_KHR_texture_compression_astc_ldr) bool texMirrorClamp; // Clamp mirror wrap mode supported (GL_EXT_texture_mirror_clamp) bool texAnisoFilter; // Anisotropic texture filtering support (GL_EXT_texture_filter_anisotropic) + bool computeShader; // Compute shaders support (GL_ARB_compute_shader) + bool ssbo; // Shader storage buffer object support (GL_ARB_shader_storage_buffer_object) float maxAnisotropyLevel; // Maximum anisotropy level supported (minimum is 2.0f) int maxDepthBits; // Maximum bits for depth component @@ -1294,8 +1344,8 @@ void rlVertex3f(float x, float y, float z) RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].texcoords[2*RLGL.State.vertexCounter] = RLGL.State.texcoordx; RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].texcoords[2*RLGL.State.vertexCounter + 1] = RLGL.State.texcoordy; - // Add current normal - // TODO. + // TODO: Add current normal + // By default rlVertexBuffer type does not store normals // Add current color RLGL.currentBatch->vertexBuffer[RLGL.currentBatch->currentBuffer].colors[4*RLGL.State.vertexCounter] = RLGL.State.colorr; @@ -1447,7 +1497,6 @@ void rlDisableTexture(void) void rlEnableTextureCubemap(unsigned int id) { #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glEnable(GL_TEXTURE_CUBE_MAP); // Core in OpenGL 1.4 glBindTexture(GL_TEXTURE_CUBE_MAP, id); #endif } @@ -1456,7 +1505,6 @@ void rlEnableTextureCubemap(unsigned int id) void rlDisableTextureCubemap(void) { #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) - glDisable(GL_TEXTURE_CUBE_MAP); glBindTexture(GL_TEXTURE_CUBE_MAP, 0); #endif } @@ -1751,6 +1799,66 @@ void rlSetBlendFactors(int glSrcFactor, int glDstFactor, int glEquation) #endif } +//---------------------------------------------------------------------------------- +// Module Functions Definition - OpenGL Debug +//---------------------------------------------------------------------------------- +#if defined(RLGL_ENABLE_OPENGL_DEBUG_CONTEXT) && defined(GRAPHICS_API_OPENGL_43) +static void GLAPIENTRY rlDebugMessageCallback(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *message, const void *userParam) +{ + // Ignore non-significant error/warning codes (NVidia drivers) + // NOTE: Here there are the details with a sample output: + // - #131169 - Framebuffer detailed info: The driver allocated storage for renderbuffer 2. (severity: low) + // - #131185 - Buffer detailed info: Buffer object 1 (bound to GL_ELEMENT_ARRAY_BUFFER_ARB, usage hint is GL_ENUM_88e4) + // will use VIDEO memory as the source for buffer object operations. (severity: low) + // - #131218 - Program/shader state performance warning: Vertex shader in program 7 is being recompiled based on GL state. (severity: medium) + // - #131204 - Texture state usage warning: The texture object (0) bound to texture image unit 0 does not have + // a defined base level and cannot be used for texture mapping. (severity: low) + if ((id == 131169) || (id == 131185) || (id == 131218) || (id == 131204)) return; + + const char *msgSource = NULL; + switch (source) + { + case GL_DEBUG_SOURCE_API: msgSource = "API"; break; + case GL_DEBUG_SOURCE_WINDOW_SYSTEM: msgSource = "WINDOW_SYSTEM"; break; + case GL_DEBUG_SOURCE_SHADER_COMPILER: msgSource = "SHADER_COMPILER"; break; + case GL_DEBUG_SOURCE_THIRD_PARTY: msgSource = "THIRD_PARTY"; break; + case GL_DEBUG_SOURCE_APPLICATION: msgSource = "APPLICATION"; break; + case GL_DEBUG_SOURCE_OTHER: msgSource = "OTHER"; break; + default: break; + } + + const char *msgType = NULL; + switch (type) + { + case GL_DEBUG_TYPE_ERROR: msgType = "ERROR"; break; + case GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR: msgType = "DEPRECATED_BEHAVIOR"; break; + case GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR: msgType = "UNDEFINED_BEHAVIOR"; break; + case GL_DEBUG_TYPE_PORTABILITY: msgType = "PORTABILITY"; break; + case GL_DEBUG_TYPE_PERFORMANCE: msgType = "PERFORMANCE"; break; + case GL_DEBUG_TYPE_MARKER: msgType = "MARKER"; break; + case GL_DEBUG_TYPE_PUSH_GROUP: msgType = "PUSH_GROUP"; break; + case GL_DEBUG_TYPE_POP_GROUP: msgType = "POP_GROUP"; break; + case GL_DEBUG_TYPE_OTHER: msgType = "OTHER"; break; + default: break; + } + + const char *msgSeverity = "DEFAULT"; + switch (severity) + { + case GL_DEBUG_SEVERITY_LOW: msgSeverity = "LOW"; break; + case GL_DEBUG_SEVERITY_MEDIUM: msgSeverity = "MEDIUM"; break; + case GL_DEBUG_SEVERITY_HIGH: msgSeverity = "HIGH"; break; + case GL_DEBUG_SEVERITY_NOTIFICATION: msgSeverity = "NOTIFICATION"; break; + default: break; + } + + TRACELOG(LOG_WARNING, "GL: OpenGL debug message: %s", message); + TRACELOG(LOG_WARNING, " > Type: %s", msgType); + TRACELOG(LOG_WARNING, " > Source = %s", msgSource); + TRACELOG(LOG_WARNING, " > Severity = %s", msgSeverity); +} +#endif + //---------------------------------------------------------------------------------- // Module Functions Definition - rlgl functionality //---------------------------------------------------------------------------------- @@ -1758,6 +1866,21 @@ void rlSetBlendFactors(int glSrcFactor, int glDstFactor, int glEquation) // Initialize rlgl: OpenGL extensions, default buffers/shaders/textures, OpenGL states void rlglInit(int width, int height) { + // Enable OpenGL debug context if required +#if defined(RLGL_ENABLE_OPENGL_DEBUG_CONTEXT) && defined(GRAPHICS_API_OPENGL_43) + if ((glDebugMessageCallback != NULL) && (glDebugMessageControl != NULL)) + { + glDebugMessageCallback(rlDebugMessageCallback, 0); + // glDebugMessageControl(GL_DEBUG_SOURCE_API, GL_DEBUG_TYPE_ERROR, GL_DEBUG_SEVERITY_HIGH, 0, 0, GL_TRUE); // TODO: Filter message + + // Debug context options: + // - GL_DEBUG_OUTPUT - Faster version but not useful for breakpoints + // - GL_DEBUG_OUTPUT_SYNCHRONUS - Callback is in sync with errors, so a breakpoint can be placed on the callback in order to get a stacktrace for the GL error + glEnable(GL_DEBUG_OUTPUT); + glEnable(GL_DEBUG_OUTPUT_SYNCHRONOUS); + } +#endif + #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) // Init default white texture unsigned char pixels[4] = { 255, 255, 255, 255 }; // 1 pixel RGBA (4 bytes) @@ -1848,7 +1971,7 @@ void rlLoadExtensions(void *loader) #if defined(GRAPHICS_API_OPENGL_33) // Also defined for GRAPHICS_API_OPENGL_21 // NOTE: glad is generated and contains only required OpenGL 3.3 Core extensions (and lower versions) #if !defined(__APPLE__) - if (!gladLoadGLLoader((GLADloadproc)loader)) TRACELOG(RL_LOG_WARNING, "GLAD: Cannot load OpenGL extensions"); + if (gladLoadGL((GLADloadfunc)loader) == 0) TRACELOG(RL_LOG_WARNING, "GLAD: Cannot load OpenGL extensions"); else TRACELOG(RL_LOG_INFO, "GLAD: OpenGL extensions loaded successfully"); #endif @@ -1860,14 +1983,8 @@ void rlLoadExtensions(void *loader) #if defined(RLGL_SHOW_GL_DETAILS_INFO) // Get supported extensions list // WARNING: glGetStringi() not available on OpenGL 2.1 - char **extList = RL_MALLOC(numExt*sizeof(char *)); TRACELOG(RL_LOG_INFO, "GL: OpenGL extensions:"); - for (int i = 0; i < numExt; i++) - { - extList[i] = (char *)glGetStringi(GL_EXTENSIONS, i); - TRACELOG(RL_LOG_INFO, " %s", extList[i]); - } - RL_FREE(extList); // Free extensions pointers + for (int i = 0; i < numExt; i++) TRACELOG(RL_LOG_INFO, " %s", glGetStringi(GL_EXTENSIONS, i)); #endif // Register supported extensions flags @@ -1880,6 +1997,10 @@ void rlLoadExtensions(void *loader) RLGL.ExtSupported.maxDepthBits = 32; RLGL.ExtSupported.texAnisoFilter = true; RLGL.ExtSupported.texMirrorClamp = true; + #if defined(GRAPHICS_API_OPENGL_43) + if (GLAD_GL_ARB_compute_shader) RLGL.ExtSupported.computeShader = true; + if (GLAD_GL_ARB_shader_storage_buffer_object) RLGL.ExtSupported.ssbo = true; + #endif #if !defined(__APPLE__) // NOTE: With GLAD, we can check if an extension is supported using the GLAD_GL_xxx booleans if (GLAD_GL_EXT_texture_compression_s3tc) RLGL.ExtSupported.texCompDXT = true; // Texture compression: DXT @@ -2036,9 +2157,10 @@ void rlLoadExtensions(void *loader) #endif glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &capability); TRACELOG(RL_LOG_INFO, " GL_NUM_COMPRESSED_TEXTURE_FORMATS: %i", capability); - GLint format[32] = { 0 }; - glGetIntegerv(GL_COMPRESSED_TEXTURE_FORMATS, format); - for (int i = 0; i < capability; i++) TRACELOG(RL_LOG_INFO, " %s", rlGetCompressedFormatName(format[i])); + GLint *compFormats = (GLint *)RL_CALLOC(capability, sizeof(GLint)); + glGetIntegerv(GL_COMPRESSED_TEXTURE_FORMATS, compFormats); + for (int i = 0; i < capability; i++) TRACELOG(RL_LOG_INFO, " %s", rlGetCompressedFormatName(compFormats[i])); + RL_FREE(compFormats); /* // Following capabilities are only supported by OpenGL 4.3 or greater @@ -2061,6 +2183,8 @@ void rlLoadExtensions(void *loader) if (RLGL.ExtSupported.texCompETC2) TRACELOG(RL_LOG_INFO, "GL: ETC2/EAC compressed textures supported"); if (RLGL.ExtSupported.texCompPVRT) TRACELOG(RL_LOG_INFO, "GL: PVRT compressed textures supported"); if (RLGL.ExtSupported.texCompASTC) TRACELOG(RL_LOG_INFO, "GL: ASTC compressed textures supported"); + if (RLGL.ExtSupported.computeShader) TRACELOG(RL_LOG_INFO, "GL: Compute shaders supported"); + if (RLGL.ExtSupported.ssbo) TRACELOG(RL_LOG_INFO, "GL: Shader storage buffer objects supported"); #endif // RLGL_SHOW_GL_DETAILS_INFO #endif // GRAPHICS_API_OPENGL_33 || GRAPHICS_API_OPENGL_ES2 @@ -2082,6 +2206,9 @@ int rlGetVersion(void) #elif defined(GRAPHICS_API_OPENGL_33) glVersion = OPENGL_33; #endif +#if defined(GRAPHICS_API_OPENGL_43) + glVersion = OPENGL_43; +#endif #if defined(GRAPHICS_API_OPENGL_ES2) glVersion = OPENGL_ES_20; #endif @@ -2270,17 +2397,23 @@ void rlUnloadRenderBatch(rlRenderBatch batch) { #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) // Unbind everything - if (RLGL.ExtSupported.vao) glBindVertexArray(0); - glDisableVertexAttribArray(0); - glDisableVertexAttribArray(1); - glDisableVertexAttribArray(2); - glDisableVertexAttribArray(3); glBindBuffer(GL_ARRAY_BUFFER, 0); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); // Unload all vertex buffers data for (int i = 0; i < batch.bufferCount; i++) { + // Unbind VAO attribs data + if (RLGL.ExtSupported.vao) + { + glBindVertexArray(batch.vertexBuffer[i].vaoId); + glDisableVertexAttribArray(0); + glDisableVertexAttribArray(1); + glDisableVertexAttribArray(2); + glDisableVertexAttribArray(3); + glBindVertexArray(0); + } + // Delete VBOs from GPU (VRAM) glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[0]); glDeleteBuffers(1, &batch.vertexBuffer[i].vboId[1]); @@ -2608,7 +2741,7 @@ unsigned int rlLoadTexture(void *data, int width, int height, int format, int mi { unsigned int mipSize = rlGetPixelDataSize(mipWidth, mipHeight, format); - unsigned int glInternalFormat, glFormat, glType; + int glInternalFormat, glFormat, glType; rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); TRACELOGD("TEXTURE: Load mipmap level %i (%i x %i), size: %i, offset: %i", i, mipWidth, mipHeight, mipSize, mipOffset); @@ -2758,7 +2891,7 @@ unsigned int rlLoadTextureCubemap(void *data, int size, int format) glGenTextures(1, &id); glBindTexture(GL_TEXTURE_CUBE_MAP, id); - unsigned int glInternalFormat, glFormat, glType; + int glInternalFormat, glFormat, glType; rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); if (glInternalFormat != -1) @@ -2830,7 +2963,7 @@ void rlUpdateTexture(unsigned int id, int offsetX, int offsetY, int width, int h { glBindTexture(GL_TEXTURE_2D, id); - unsigned int glInternalFormat, glFormat, glType; + int glInternalFormat, glFormat, glType; rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); if ((glInternalFormat != -1) && (format < RL_PIXELFORMAT_COMPRESSED_DXT1_RGB)) @@ -2841,7 +2974,7 @@ void rlUpdateTexture(unsigned int id, int offsetX, int offsetY, int width, int h } // Get OpenGL internal formats and data type from raylib PixelFormat -void rlGetGlTextureFormats(int format, unsigned int *glInternalFormat, unsigned int *glFormat, unsigned int *glType) +void rlGetGlTextureFormats(int format, int *glInternalFormat, int *glFormat, int *glType) { *glInternalFormat = -1; *glFormat = -1; @@ -2991,7 +3124,7 @@ void *rlReadTexturePixels(unsigned int id, int width, int height, int format) // GL_UNPACK_ALIGNMENT affects operations that write to OpenGL memory (glTexImage, etc.) glPixelStorei(GL_PACK_ALIGNMENT, 1); - unsigned int glInternalFormat, glFormat, glType; + int glInternalFormat, glFormat, glType; rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); unsigned int size = rlGetPixelDataSize(width, height, format); @@ -3487,7 +3620,9 @@ unsigned int rlCompileShader(const char *shaderCode, int type) case GL_VERTEX_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to compile vertex shader code", shader); break; case GL_FRAGMENT_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to compile fragment shader code", shader); break; //case GL_GEOMETRY_SHADER: - //case GL_COMPUTE_SHADER: + #if defined(GRAPHICS_API_OPENGL_43) + case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to compile compute shader code", shader); break; + #endif default: break; } @@ -3510,7 +3645,9 @@ unsigned int rlCompileShader(const char *shaderCode, int type) case GL_VERTEX_SHADER: TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Vertex shader compiled successfully", shader); break; case GL_FRAGMENT_SHADER: TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Fragment shader compiled successfully", shader); break; //case GL_GEOMETRY_SHADER: - //case GL_COMPUTE_SHADER: + #if defined(GRAPHICS_API_OPENGL_43) + case GL_COMPUTE_SHADER: TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Compute shader compiled successfully", shader); break; + #endif default: break; } } @@ -3699,6 +3836,127 @@ void rlSetShader(unsigned int id, int *locs) #endif } +#if defined(GRAPHICS_API_OPENGL_43) +// Load compute shader program +unsigned int rlLoadComputeShaderProgram(unsigned int shaderId) +{ + unsigned int program = 0; + + GLint success = 0; + program = glCreateProgram(); + glAttachShader(program, shaderId); + glLinkProgram(program); + + // NOTE: All uniform variables are intitialised to 0 when a program links + + glGetProgramiv(program, GL_LINK_STATUS, &success); + + if (success == GL_FALSE) + { + TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Failed to link compute shader program", program); + + int maxLength = 0; + glGetProgramiv(program, GL_INFO_LOG_LENGTH, &maxLength); + + if (maxLength > 0) + { + int length = 0; + char *log = RL_CALLOC(maxLength, sizeof(char)); + glGetProgramInfoLog(program, maxLength, &length, log); + TRACELOG(RL_LOG_WARNING, "SHADER: [ID %i] Link error: %s", program, log); + RL_FREE(log); + } + + glDeleteProgram(program); + + program = 0; + } + else + { + // Get the size of compiled shader program (not available on OpenGL ES 2.0) + // NOTE: If GL_LINK_STATUS is GL_FALSE, program binary length is zero. + //GLint binarySize = 0; + //glGetProgramiv(id, GL_PROGRAM_BINARY_LENGTH, &binarySize); + + TRACELOG(RL_LOG_INFO, "SHADER: [ID %i] Compute shader program loaded successfully", program); + } + + return program; +} + +// Dispatch compute shader (equivalent to *draw* for graphics pilepine) +void rlComputeShaderDispatch(unsigned int groupX, unsigned int groupY, unsigned int groupZ) +{ + glDispatchCompute(groupX, groupY, groupZ); +} + +// Load shader storage buffer object (SSBO) +unsigned int rlLoadShaderBuffer(unsigned long long size, const void *data, int usageHint) +{ + unsigned int ssbo = 0; + + glGenBuffers(1, &ssbo); + glBindBuffer(GL_SHADER_STORAGE_BUFFER, ssbo); + glBufferData(GL_SHADER_STORAGE_BUFFER, size, data, usageHint? usageHint : RL_STREAM_COPY); + + return ssbo; +} + +// Unload shader storage buffer object (SSBO) +void rlUnloadShaderBuffer(unsigned int ssboId) +{ + glDeleteBuffers(1, &ssboId); +} + +// Update SSBO buffer data +void rlUpdateShaderBufferElements(unsigned int id, const void *data, unsigned long long dataSize, unsigned long long offset) +{ + glBindBuffer(GL_SHADER_STORAGE_BUFFER, id); + glBufferSubData(GL_SHADER_STORAGE_BUFFER, offset, dataSize, data); +} + +// Get SSBO buffer size +unsigned long long rlGetShaderBufferSize(unsigned int id) +{ + long long size = 0; + + glBindBuffer(GL_SHADER_STORAGE_BUFFER, id); + glGetInteger64v(GL_SHADER_STORAGE_BUFFER_SIZE, &size); + + return (size > 0)? size : 0; +} + +// Read SSBO buffer data +void rlReadShaderBufferElements(unsigned int id, void *dest, unsigned long long count, unsigned long long offset) +{ + glBindBuffer(GL_SHADER_STORAGE_BUFFER, id); + glGetBufferSubData(GL_SHADER_STORAGE_BUFFER, offset, count, dest); +} + +// Bind SSBO buffer +void rlBindShaderBuffer(unsigned int id, unsigned int index) +{ + glBindBufferBase(GL_SHADER_STORAGE_BUFFER, index, id); +} + +// Copy SSBO buffer data +void rlCopyBuffersElements(unsigned int destId, unsigned int srcId, unsigned long long destOffset, unsigned long long srcOffset, unsigned long long count) +{ + glBindBuffer(GL_COPY_READ_BUFFER, srcId); + glBindBuffer(GL_COPY_WRITE_BUFFER, destId); + glCopyBufferSubData(GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER, srcOffset, destOffset, count); +} + +// Bind image texture +void rlBindImageTexture(unsigned int id, unsigned int index, unsigned int format, int readonly) +{ + int glInternalFormat = 0, glFormat = 0, glType = 0; + + rlGetGlTextureFormats(format, &glInternalFormat, &glFormat, &glType); + glBindImageTexture(index, id, 0, 0, 0, readonly ? GL_READ_ONLY : GL_READ_WRITE, glInternalFormat); +} +#endif + // Matrix state management //----------------------------------------------------------------------------------------- // Get internal modelview matrix @@ -3827,7 +4085,7 @@ void rlSetMatrixViewOffsetStereo(Matrix right, Matrix left) #endif } -// Load and draw a 1x1 XY quad in NDC +// Load and draw a quad in NDC void rlLoadDrawQuad(void) { #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) @@ -3868,7 +4126,7 @@ void rlLoadDrawQuad(void) #endif } -// Load and draw a 1x1 3D cube in NDC +// Load and draw a cube in NDC void rlLoadDrawCube(void) { #if defined(GRAPHICS_API_OPENGL_33) || defined(GRAPHICS_API_OPENGL_ES2) diff --git a/src/rmodels.c b/src/rmodels.c index 2069aaabb..bb07412c3 100644 --- a/src/rmodels.c +++ b/src/rmodels.c @@ -79,7 +79,7 @@ #define VOX_FREE RL_FREE #define VOX_LOADER_IMPLEMENTATION - #include "external/vox_loader.h" // vox file format loading (MagikaVoxel) + #include "external/vox_loader.h" // VOX file format loading (MagikaVoxel) #endif #if defined(SUPPORT_MESH_GENERATION) @@ -128,20 +128,11 @@ static Model LoadOBJ(const char *fileName); // Load OBJ mesh data #endif #if defined(SUPPORT_FILEFORMAT_IQM) static Model LoadIQM(const char *fileName); // Load IQM mesh data -static ModelAnimation *LoadIQMModelAnimations(const char *fileName, unsigned int *animCount); // Load IQM animation data +static ModelAnimation *LoadModelAnimationsIQM(const char *fileName, unsigned int *animCount); // Load IQM animation data #endif #if defined(SUPPORT_FILEFORMAT_GLTF) static Model LoadGLTF(const char *fileName); // Load GLTF mesh data -static ModelAnimation *LoadGLTFModelAnimations(const char *fileName, unsigned int *animCount); // Load GLTF animation data -static void LoadGLTFMaterial(Model *model, const char *fileName, const cgltf_data *data); -static void LoadGLTFMesh(cgltf_data *data, cgltf_node *node, Model *outModel, Matrix currentTransform, int *primitiveIndex, const char *fileName); -static void LoadGLTFNode(cgltf_data *data, cgltf_node *node, Model *outModel, Matrix currentTransform, int *primitiveIndex, const char *fileName); -static void InitGLTFBones(Model *model, const cgltf_data *data); -static void BindGLTFPrimitiveToBones(Model *model, cgltf_node *node, const cgltf_data *data, int primitiveIndex); -static void GetGLTFPrimitiveCount(cgltf_node *node, int *outCount); -static bool ReadGLTFValue(cgltf_accessor *acc, unsigned int index, void *variable); -static void *ReadGLTFValuesAs(cgltf_accessor *acc, cgltf_component_type type, bool adjustOnDownCasting); -static Matrix GetNodeTransformationMatrix(cgltf_node *node, Matrix current); +//static ModelAnimation *LoadModelAnimationGLTF(const char *fileName, unsigned int *animCount); // Load GLTF animation data #endif #if defined(SUPPORT_FILEFORMAT_VOX) static Model LoadVOX(const char *filename); // Load VOX mesh data @@ -341,57 +332,57 @@ void DrawCubeWires(Vector3 position, float width, float height, float length, Co rlBegin(RL_LINES); rlColor4ub(color.r, color.g, color.b, color.a); - // Front Face ----------------------------------------------------- - // Bottom Line - rlVertex3f(x-width/2, y-height/2, z+length/2); // Bottom Left - rlVertex3f(x+width/2, y-height/2, z+length/2); // Bottom Right + // Front face ----------------------------------------------------- + // Bottom line + rlVertex3f(x-width/2, y-height/2, z+length/2); // Bottom left + rlVertex3f(x+width/2, y-height/2, z+length/2); // Bottom right - // Left Line - rlVertex3f(x+width/2, y-height/2, z+length/2); // Bottom Right - rlVertex3f(x+width/2, y+height/2, z+length/2); // Top Right + // Left line + rlVertex3f(x+width/2, y-height/2, z+length/2); // Bottom right + rlVertex3f(x+width/2, y+height/2, z+length/2); // Top right - // Top Line - rlVertex3f(x+width/2, y+height/2, z+length/2); // Top Right - rlVertex3f(x-width/2, y+height/2, z+length/2); // Top Left + // Top line + rlVertex3f(x+width/2, y+height/2, z+length/2); // Top right + rlVertex3f(x-width/2, y+height/2, z+length/2); // Top left - // Right Line - rlVertex3f(x-width/2, y+height/2, z+length/2); // Top Left - rlVertex3f(x-width/2, y-height/2, z+length/2); // Bottom Left + // Right line + rlVertex3f(x-width/2, y+height/2, z+length/2); // Top left + rlVertex3f(x-width/2, y-height/2, z+length/2); // Bottom left - // Back Face ------------------------------------------------------ - // Bottom Line - rlVertex3f(x-width/2, y-height/2, z-length/2); // Bottom Left - rlVertex3f(x+width/2, y-height/2, z-length/2); // Bottom Right + // Back face ------------------------------------------------------ + // Bottom line + rlVertex3f(x-width/2, y-height/2, z-length/2); // Bottom left + rlVertex3f(x+width/2, y-height/2, z-length/2); // Bottom right - // Left Line - rlVertex3f(x+width/2, y-height/2, z-length/2); // Bottom Right - rlVertex3f(x+width/2, y+height/2, z-length/2); // Top Right + // Left line + rlVertex3f(x+width/2, y-height/2, z-length/2); // Bottom right + rlVertex3f(x+width/2, y+height/2, z-length/2); // Top right - // Top Line - rlVertex3f(x+width/2, y+height/2, z-length/2); // Top Right - rlVertex3f(x-width/2, y+height/2, z-length/2); // Top Left + // Top line + rlVertex3f(x+width/2, y+height/2, z-length/2); // Top right + rlVertex3f(x-width/2, y+height/2, z-length/2); // Top left - // Right Line - rlVertex3f(x-width/2, y+height/2, z-length/2); // Top Left - rlVertex3f(x-width/2, y-height/2, z-length/2); // Bottom Left + // Right line + rlVertex3f(x-width/2, y+height/2, z-length/2); // Top left + rlVertex3f(x-width/2, y-height/2, z-length/2); // Bottom left - // Top Face ------------------------------------------------------- - // Left Line - rlVertex3f(x-width/2, y+height/2, z+length/2); // Top Left Front - rlVertex3f(x-width/2, y+height/2, z-length/2); // Top Left Back + // Top face ------------------------------------------------------- + // Left line + rlVertex3f(x-width/2, y+height/2, z+length/2); // Top left front + rlVertex3f(x-width/2, y+height/2, z-length/2); // Top left back - // Right Line - rlVertex3f(x+width/2, y+height/2, z+length/2); // Top Right Front - rlVertex3f(x+width/2, y+height/2, z-length/2); // Top Right Back + // Right line + rlVertex3f(x+width/2, y+height/2, z+length/2); // Top right front + rlVertex3f(x+width/2, y+height/2, z-length/2); // Top right back - // Bottom Face --------------------------------------------------- - // Left Line - rlVertex3f(x-width/2, y-height/2, z+length/2); // Top Left Front - rlVertex3f(x-width/2, y-height/2, z-length/2); // Top Left Back + // Bottom face --------------------------------------------------- + // Left line + rlVertex3f(x-width/2, y-height/2, z+length/2); // Top left front + rlVertex3f(x-width/2, y-height/2, z-length/2); // Top left back - // Right Line - rlVertex3f(x+width/2, y-height/2, z+length/2); // Top Right Front - rlVertex3f(x+width/2, y-height/2, z-length/2); // Top Right Back + // Right line + rlVertex3f(x+width/2, y-height/2, z+length/2); // Top right front + rlVertex3f(x+width/2, y-height/2, z-length/2); // Top right back rlEnd(); rlPopMatrix(); } @@ -464,153 +455,89 @@ void DrawCubeTexture(Texture2D texture, Vector3 position, float width, float hei rlSetTexture(0); } +// Draw cube with texture piece applied to all faces void DrawCubeTextureRec(Texture2D texture, Rectangle source, Vector3 position, float width, float height, float length, Color color) { float x = position.x; float y = position.y; float z = position.z; - float texture_width = (float)texture.width; - float texture_height = (float)texture.height; + float texWidth = (float)texture.width; + float texHeight = (float)texture.height; rlCheckRenderBatchLimit(36); rlSetTexture(texture.id); - rlBegin(RL_QUADS); - rlColor4ub(color.r, color.g, color.b, color.a); + rlBegin(RL_QUADS); + rlColor4ub(color.r, color.g, color.b, color.a); - // Front Face - { - // Normal Pointing Towards Viewer - rlNormal3f(0.0f, 0.0f, 1.0f); + // Front face + rlNormal3f(0.0f, 0.0f, 1.0f); + rlTexCoord2f(source.x/texWidth, (source.y + source.height)/texHeight); + rlVertex3f(x - width/2, y - height/2, z + length/2); + rlTexCoord2f((source.x + source.width)/texWidth, (source.y + source.height)/texHeight); + rlVertex3f(x + width/2, y - height/2, z + length/2); + rlTexCoord2f((source.x + source.width)/texWidth, source.y/texHeight); + rlVertex3f(x + width/2, y + height/2, z + length/2); + rlTexCoord2f(source.x/texWidth, source.y/texHeight); + rlVertex3f(x - width/2, y + height/2, z + length/2); - // Bottom Left Of The Texture and Quad - rlTexCoord2f(source.x / texture_width, (source.y + source.height) / texture_height); - rlVertex3f(x - width/2, y - height/2, z + length/2); + // Back face + rlNormal3f(0.0f, 0.0f, - 1.0f); + rlTexCoord2f((source.x + source.width)/texWidth, (source.y + source.height)/texHeight); + rlVertex3f(x - width/2, y - height/2, z - length/2); + rlTexCoord2f((source.x + source.width)/texWidth, source.y/texHeight); + rlVertex3f(x - width/2, y + height/2, z - length/2); + rlTexCoord2f(source.x/texWidth, source.y/texHeight); + rlVertex3f(x + width/2, y + height/2, z - length/2); + rlTexCoord2f(source.x/texWidth, (source.y + source.height)/texHeight); + rlVertex3f(x + width/2, y - height/2, z - length/2); - // Bottom Right Of The Texture and Quad - rlTexCoord2f((source.x + source.width) / texture_width, (source.y + source.height) / texture_height); - rlVertex3f(x + width/2, y - height/2, z + length/2); + // Top face + rlNormal3f(0.0f, 1.0f, 0.0f); + rlTexCoord2f(source.x/texWidth, source.y/texHeight); + rlVertex3f(x - width/2, y + height/2, z - length/2); + rlTexCoord2f(source.x/texWidth, (source.y + source.height)/texHeight); + rlVertex3f(x - width/2, y + height/2, z + length/2); + rlTexCoord2f((source.x + source.width)/texWidth, (source.y + source.height)/texHeight); + rlVertex3f(x + width/2, y + height/2, z + length/2); + rlTexCoord2f((source.x + source.width)/texWidth, source.y/texHeight); + rlVertex3f(x + width/2, y + height/2, z - length/2); - // Top Right Of The Texture and Quad - rlTexCoord2f((source.x + source.width) / texture_width, source.y / texture_height); - rlVertex3f(x + width/2, y + height/2, z + length/2); + // Bottom face + rlNormal3f(0.0f, - 1.0f, 0.0f); + rlTexCoord2f((source.x + source.width)/texWidth, source.y/texHeight); + rlVertex3f(x - width/2, y - height/2, z - length/2); + rlTexCoord2f(source.x/texWidth, source.y/texHeight); + rlVertex3f(x + width/2, y - height/2, z - length/2); + rlTexCoord2f(source.x/texWidth, (source.y + source.height)/texHeight); + rlVertex3f(x + width/2, y - height/2, z + length/2); + rlTexCoord2f((source.x + source.width)/texWidth, (source.y + source.height)/texHeight); + rlVertex3f(x - width/2, y - height/2, z + length/2); - // Top Left Of The Texture and Quad - rlTexCoord2f(source.x / texture_width, source.y / texture_height); - rlVertex3f(x - width/2, y + height/2, z + length/2); - } + // Right face + rlNormal3f(1.0f, 0.0f, 0.0f); + rlTexCoord2f((source.x + source.width)/texWidth, (source.y + source.height)/texHeight); + rlVertex3f(x + width/2, y - height/2, z - length/2); + rlTexCoord2f((source.x + source.width)/texWidth, source.y/texHeight); + rlVertex3f(x + width/2, y + height/2, z - length/2); + rlTexCoord2f(source.x/texWidth, source.y/texHeight); + rlVertex3f(x + width/2, y + height/2, z + length/2); + rlTexCoord2f(source.x/texWidth, (source.y + source.height)/texHeight); + rlVertex3f(x + width/2, y - height/2, z + length/2); - // Back Face - { - // Normal Pointing Away From Viewer - rlNormal3f(0.0f, 0.0f, - 1.0f); + // Left face + rlNormal3f( - 1.0f, 0.0f, 0.0f); + rlTexCoord2f(source.x/texWidth, (source.y + source.height)/texHeight); + rlVertex3f(x - width/2, y - height/2, z - length/2); + rlTexCoord2f((source.x + source.width)/texWidth, (source.y + source.height)/texHeight); + rlVertex3f(x - width/2, y - height/2, z + length/2); + rlTexCoord2f((source.x + source.width)/texWidth, source.y/texHeight); + rlVertex3f(x - width/2, y + height/2, z + length/2); + rlTexCoord2f(source.x/texWidth, source.y/texHeight); + rlVertex3f(x - width/2, y + height/2, z - length/2); - // Bottom Right Of The Texture and Quad - rlTexCoord2f((source.x + source.width) / texture_width, (source.y + source.height) / texture_height); - rlVertex3f(x - width/2, y - height/2, z - length/2); - - // Top Right Of The Texture and Quad - rlTexCoord2f((source.x + source.width) / texture_width, source.y / texture_height); - rlVertex3f(x - width/2, y + height/2, z - length/2); - - // Top Left Of The Texture and Quad - rlTexCoord2f(source.x / texture_width, source.y / texture_height); - rlVertex3f(x + width/2, y + height/2, z - length/2); - - // Bottom Left Of The Texture and Quad - rlTexCoord2f(source.x / texture_width, (source.y + source.height) / texture_height); - rlVertex3f(x + width/2, y - height/2, z - length/2); - } - - // Top Face - { - // Normal Pointing Up - rlNormal3f(0.0f, 1.0f, 0.0f); - - // Top Left Of The Texture and Quad - rlTexCoord2f(source.x / texture_width, source.y / texture_height); - rlVertex3f(x - width/2, y + height/2, z - length/2); - - // Bottom Left Of The Texture and Quad - rlTexCoord2f(source.x / texture_width, (source.y + source.height) / texture_height); - rlVertex3f(x - width/2, y + height/2, z + length/2); - - // Bottom Right Of The Texture and Quad - rlTexCoord2f((source.x + source.width) / texture_width, (source.y + source.height) / texture_height); - rlVertex3f(x + width/2, y + height/2, z + length/2); - - // Top Right Of The Texture and Quad - rlTexCoord2f((source.x + source.width) / texture_width, source.y / texture_height); - rlVertex3f(x + width/2, y + height/2, z - length/2); - } - - // Bottom Face - { - // Normal Pointing Down - rlNormal3f(0.0f, - 1.0f, 0.0f); - - // Top Right Of The Texture and Quad - rlTexCoord2f((source.x + source.width) / texture_width, source.y / texture_height); - rlVertex3f(x - width/2, y - height/2, z - length/2); - - // Top Left Of The Texture and Quad - rlTexCoord2f(source.x / texture_width, source.y / texture_height); - rlVertex3f(x + width/2, y - height/2, z - length/2); - - // Bottom Left Of The Texture and Quad - rlTexCoord2f(source.x / texture_width, (source.y + source.height) / texture_height); - rlVertex3f(x + width/2, y - height/2, z + length/2); - - // Bottom Right Of The Texture and Quad - rlTexCoord2f((source.x + source.width) / texture_width, (source.y + source.height) / texture_height); - rlVertex3f(x - width/2, y - height/2, z + length/2); - } - - // Right face - { - // Normal Pointing Right - rlNormal3f(1.0f, 0.0f, 0.0f); - - // Bottom Right Of The Texture and Quad - rlTexCoord2f((source.x + source.width) / texture_width, (source.y + source.height) / texture_height); - rlVertex3f(x + width/2, y - height/2, z - length/2); - - // Top Right Of The Texture and Quad - rlTexCoord2f((source.x + source.width) / texture_width, source.y / texture_height); - rlVertex3f(x + width/2, y + height/2, z - length/2); - - // Top Left Of The Texture and Quad - rlTexCoord2f(source.x / texture_width, source.y / texture_height); - rlVertex3f(x + width/2, y + height/2, z + length/2); - - // Bottom Left Of The Texture and Quad - rlTexCoord2f(source.x / texture_width, (source.y + source.height) / texture_height); - rlVertex3f(x + width/2, y - height/2, z + length/2); - } - - // Left Face - { - // Normal Pointing Left - rlNormal3f( - 1.0f, 0.0f, 0.0f); - - // Bottom Left Of The Texture and Quad - rlTexCoord2f(source.x / texture_width, (source.y + source.height) / texture_height); - rlVertex3f(x - width/2, y - height/2, z - length/2); - - // Bottom Right Of The Texture and Quad - rlTexCoord2f((source.x + source.width) / texture_width, (source.y + source.height) / texture_height); - rlVertex3f(x - width/2, y - height/2, z + length/2); - - // Top Right Of The Texture and Quad - rlTexCoord2f((source.x + source.width) / texture_width, source.y / texture_height); - rlVertex3f(x - width/2, y + height/2, z + length/2); - - // Top Left Of The Texture and Quad - rlTexCoord2f(source.x / texture_width, source.y / texture_height); - rlVertex3f(x - width/2, y + height/2, z - length/2); - } - rlEnd(); + rlEnd(); rlSetTexture(0); } @@ -767,6 +694,65 @@ void DrawCylinder(Vector3 position, float radiusTop, float radiusBottom, float h rlPopMatrix(); } +// Draw a cylinder with base at startPos and top at endPos +// NOTE: It could be also used for pyramid and cone +void DrawCylinderEx(Vector3 startPos, Vector3 endPos, float startRadius, float endRadius, int sides, Color color) +{ + if (sides < 3) sides = 3; + + int numVertex = sides*6; + rlCheckRenderBatchLimit(numVertex); + + Vector3 direction = { endPos.x - startPos.x, endPos.y - startPos.y, endPos.z - startPos.z }; + if ((direction.x == 0) && (direction.y == 0) && (direction.z == 0)) return; + + // Construct a basis of the base and the top face: + Vector3 b1 = Vector3Normalize(Vector3Perpendicular(direction)); + Vector3 b2 = Vector3Normalize(Vector3CrossProduct(b1, direction)); + + float baseAngle = (2.0f*PI)/sides; + + rlBegin(RL_TRIANGLES); + rlColor4ub(color.r, color.g, color.b, color.a); + + for (int i = 0; i < sides; i++) { + // compute the four vertices + float s1 = sinf(baseAngle*(i + 0))*startRadius; + float c1 = cosf(baseAngle*(i + 0))*startRadius; + Vector3 w1 = { startPos.x + s1*b1.x + c1*b2.x, startPos.y + s1*b1.y + c1*b2.y, startPos.z + s1*b1.z + c1*b2.z }; + float s2 = sinf(baseAngle*(i + 1))*startRadius; + float c2 = cosf(baseAngle*(i + 1))*startRadius; + Vector3 w2 = { startPos.x + s2*b1.x + c2*b2.x, startPos.y + s2*b1.y + c2*b2.y, startPos.z + s2*b1.z + c2*b2.z }; + float s3 = sinf(baseAngle*(i + 0))*endRadius; + float c3 = cosf(baseAngle*(i + 0))*endRadius; + Vector3 w3 = { endPos.x + s3*b1.x + c3*b2.x, endPos.y + s3*b1.y + c3*b2.y, endPos.z + s3*b1.z + c3*b2.z }; + float s4 = sinf(baseAngle*(i + 1))*endRadius; + float c4 = cosf(baseAngle*(i + 1))*endRadius; + Vector3 w4 = { endPos.x + s4*b1.x + c4*b2.x, endPos.y + s4*b1.y + c4*b2.y, endPos.z + s4*b1.z + c4*b2.z }; + + if (startRadius > 0) { // + rlVertex3f(startPos.x, startPos.y, startPos.z); // | + rlVertex3f(w2.x, w2.y, w2.z); // T0 + rlVertex3f(w1.x, w1.y, w1.z); // | + } // + // w2 x.-----------x startPos + rlVertex3f(w1.x, w1.y, w1.z); // | |\'. T0 / + rlVertex3f(w2.x, w2.y, w2.z); // T1 | \ '. / + rlVertex3f(w3.x, w3.y, w3.z); // | |T \ '. / + // | 2 \ T 'x w1 + rlVertex3f(w2.x, w2.y, w2.z); // | w4 x.---\-1-|---x endPos + rlVertex3f(w4.x, w4.y, w4.z); // T2 '. \ |T3/ + rlVertex3f(w3.x, w3.y, w3.z); // | '. \ | / + // '.\|/ + if (endRadius > 0) { // 'x w3 + rlVertex3f(endPos.x, endPos.y, endPos.z); // | + rlVertex3f(w3.x, w3.y, w3.z); // T3 + rlVertex3f(w4.x, w4.y, w4.z); // | + } // + } + rlEnd(); +} + // Draw a wired cylinder // NOTE: It could be also used for pyramid and cone void DrawCylinderWires(Vector3 position, float radiusTop, float radiusBottom, float height, int sides, Color color) @@ -800,6 +786,56 @@ void DrawCylinderWires(Vector3 position, float radiusTop, float radiusBottom, fl rlPopMatrix(); } + +// Draw a wired cylinder with base at startPos and top at endPos +// NOTE: It could be also used for pyramid and cone +void DrawCylinderWiresEx(Vector3 startPos, Vector3 endPos, float startRadius, float endRadius, int sides, Color color) +{ + if (sides < 3) sides = 3; + + int numVertex = sides*6; + rlCheckRenderBatchLimit(numVertex); + + Vector3 direction = { endPos.x - startPos.x, endPos.y - startPos.y, endPos.z - startPos.z }; + if ((direction.x == 0) && (direction.y == 0) && (direction.z == 0))return; + + // Construct a basis of the base and the top face: + Vector3 b1 = Vector3Normalize(Vector3Perpendicular(direction)); + Vector3 b2 = Vector3Normalize(Vector3CrossProduct(b1, direction)); + + float baseAngle = (2.0f*PI)/sides; + + rlBegin(RL_LINES); + rlColor4ub(color.r, color.g, color.b, color.a); + + for (int i = 0; i < sides; i++) { + // compute the four vertices + float s1 = sinf(baseAngle*(i + 0))*startRadius; + float c1 = cosf(baseAngle*(i + 0))*startRadius; + Vector3 w1 = { startPos.x + s1*b1.x + c1*b2.x, startPos.y + s1*b1.y + c1*b2.y, startPos.z + s1*b1.z + c1*b2.z }; + float s2 = sinf(baseAngle*(i + 1))*startRadius; + float c2 = cosf(baseAngle*(i + 1))*startRadius; + Vector3 w2 = { startPos.x + s2*b1.x + c2*b2.x, startPos.y + s2*b1.y + c2*b2.y, startPos.z + s2*b1.z + c2*b2.z }; + float s3 = sinf(baseAngle*(i + 0))*endRadius; + float c3 = cosf(baseAngle*(i + 0))*endRadius; + Vector3 w3 = { endPos.x + s3*b1.x + c3*b2.x, endPos.y + s3*b1.y + c3*b2.y, endPos.z + s3*b1.z + c3*b2.z }; + float s4 = sinf(baseAngle*(i + 1))*endRadius; + float c4 = cosf(baseAngle*(i + 1))*endRadius; + Vector3 w4 = { endPos.x + s4*b1.x + c4*b2.x, endPos.y + s4*b1.y + c4*b2.y, endPos.z + s4*b1.z + c4*b2.z }; + + rlVertex3f(w1.x, w1.y, w1.z); + rlVertex3f(w2.x, w2.y, w2.z); + + rlVertex3f(w1.x, w1.y, w1.z); + rlVertex3f(w3.x, w3.y, w3.z); + + rlVertex3f(w3.x, w3.y, w3.z); + rlVertex3f(w4.x, w4.y, w4.z); + } + rlEnd(); +} + + // Draw a plane void DrawPlane(Vector3 centerPos, Vector2 size, Color color) { @@ -1764,10 +1800,10 @@ ModelAnimation *LoadModelAnimations(const char *fileName, unsigned int *animCoun ModelAnimation *animations = NULL; #if defined(SUPPORT_FILEFORMAT_IQM) - if (IsFileExtension(fileName, ".iqm")) animations = LoadIQMModelAnimations(fileName, animCount); + if (IsFileExtension(fileName, ".iqm")) animations = LoadModelAnimationsIQM(fileName, animCount); #endif #if defined(SUPPORT_FILEFORMAT_GLTF) - if (IsFileExtension(fileName, ".gltf;.glb")) animations = LoadGLTFModelAnimations(fileName, animCount); + //if (IsFileExtension(fileName, ".gltf;.glb")) animations = LoadModelAnimationGLTF(fileName, animCount); #endif return animations; @@ -3740,7 +3776,7 @@ static Model LoadOBJ(const char *fileName) // iff no materials are present use all faces on one mesh if (materialCount > 0) { - for (int fi = 0; fi< attrib.num_faces; fi++) + for (unsigned int fi = 0; fi < attrib.num_faces; fi++) { //tinyobj_vertex_index_t face = attrib.faces[fi]; int idx = attrib.material_ids[fi]; @@ -4245,10 +4281,10 @@ static Model LoadIQM(const char *fileName) } // Load IQM animation data -static ModelAnimation* LoadIQMModelAnimations(const char *fileName, unsigned int *animCount) +static ModelAnimation* LoadModelAnimationsIQM(const char *fileName, unsigned int *animCount) { -#define IQM_MAGIC "INTERQUAKEMODEL" // IQM file magic number -#define IQM_VERSION 2 // only IQM version 2 supported + #define IQM_MAGIC "INTERQUAKEMODEL" // IQM file magic number + #define IQM_VERSION 2 // only IQM version 2 supported unsigned int fileSize = 0; unsigned char *fileData = LoadFileData(fileName, &fileSize); @@ -4458,547 +4494,6 @@ static ModelAnimation* LoadIQMModelAnimations(const char *fileName, unsigned int #endif #if defined(SUPPORT_FILEFORMAT_GLTF) - -static const unsigned char base64Table[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 62, 0, 0, 0, 63, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 0, 0, - 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 0, 0, 0, 0, 0, 0, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51 -}; - -static int GetSizeBase64(char *input) -{ - int size = 0; - - for (int i = 0; input[4*i] != 0; i++) - { - if (input[4*i + 3] == '=') - { - if (input[4*i + 2] == '=') size += 1; - else size += 2; - } - else size += 3; - } - - return size; -} - -static unsigned char *DecodeBase64(char *input, int *size) -{ - *size = GetSizeBase64(input); - - unsigned char *buf = (unsigned char *)RL_MALLOC(*size); - for (int i = 0; i < *size/3; i++) - { - unsigned char a = base64Table[(int)input[4*i]]; - unsigned char b = base64Table[(int)input[4*i + 1]]; - unsigned char c = base64Table[(int)input[4*i + 2]]; - unsigned char d = base64Table[(int)input[4*i + 3]]; - - buf[3*i] = (a << 2) | (b >> 4); - buf[3*i + 1] = (b << 4) | (c >> 2); - buf[3*i + 2] = (c << 6) | d; - } - - if (*size%3 == 1) - { - int n = *size/3; - unsigned char a = base64Table[(int)input[4*n]]; - unsigned char b = base64Table[(int)input[4*n + 1]]; - buf[*size - 1] = (a << 2) | (b >> 4); - } - else if (*size%3 == 2) - { - int n = *size/3; - unsigned char a = base64Table[(int)input[4*n]]; - unsigned char b = base64Table[(int)input[4*n + 1]]; - unsigned char c = base64Table[(int)input[4*n + 2]]; - buf[*size - 2] = (a << 2) | (b >> 4); - buf[*size - 1] = (b << 4) | (c >> 2); - } - return buf; -} - -// Load texture from cgltf_image -static Image LoadImageFromCgltfImage(cgltf_image *image, const char *texPath, Color tint) -{ - Image rimage = { 0 }; - - if (image->uri) - { - if ((strlen(image->uri) > 5) && - (image->uri[0] == 'd') && - (image->uri[1] == 'a') && - (image->uri[2] == 't') && - (image->uri[3] == 'a') && - (image->uri[4] == ':')) - { - // Data URI - // Format: data:;base64, - - // Find the comma - int i = 0; - while ((image->uri[i] != ',') && (image->uri[i] != 0)) i++; - - if (image->uri[i] == 0) TRACELOG(LOG_WARNING, "IMAGE: glTF data URI is not a valid image"); - else - { - int size = 0; - unsigned char *data = DecodeBase64(image->uri + i + 1, &size); - - rimage = LoadImageFromMemory(".png", data, size); - RL_FREE(data); - - // TODO: Tint shouldn't be applied here! - ImageColorTint(&rimage, tint); - } - } - else - { - rimage = LoadImage(TextFormat("%s/%s", texPath, image->uri)); - - // TODO: Tint shouldn't be applied here! - ImageColorTint(&rimage, tint); - } - } - else if (image->buffer_view) - { - unsigned char *data = RL_MALLOC(image->buffer_view->size); - int n = (int)image->buffer_view->offset; - int stride = (int)image->buffer_view->stride ? (int)image->buffer_view->stride : 1; - - for (unsigned int i = 0; i < image->buffer_view->size; i++) - { - data[i] = ((unsigned char *)image->buffer_view->buffer->data)[n]; - n += stride; - } - - rimage = LoadImageFromMemory(".png", data, (int)image->buffer_view->size); - RL_FREE(data); - - // TODO: Tint shouldn't be applied here! - ImageColorTint(&rimage, tint); - } - else rimage = GenImageColor(1, 1, tint); - - return rimage; -} - -// -static bool ReadGLTFValue(cgltf_accessor *acc, unsigned int index, void *variable) -{ - unsigned int typeElements = 0; - - switch (acc->type) - { - case cgltf_type_scalar: typeElements = 1; break; - case cgltf_type_vec2: typeElements = 2; break; - case cgltf_type_vec3: typeElements = 3; break; - case cgltf_type_vec4: - case cgltf_type_mat2: typeElements = 4; break; - case cgltf_type_mat3: typeElements = 9; break; - case cgltf_type_mat4: typeElements = 16; break; - case cgltf_type_invalid: typeElements = 0; break; - default: break; - } - - unsigned int typeSize = 0; - - switch (acc->component_type) - { - case cgltf_component_type_r_8u: - case cgltf_component_type_r_8: typeSize = 1; break; - case cgltf_component_type_r_16u: - case cgltf_component_type_r_16: typeSize = 2; break; - case cgltf_component_type_r_32f: - case cgltf_component_type_r_32u: typeSize = 4; break; - case cgltf_component_type_invalid: typeSize = 0; break; - default: break; - } - - unsigned int singleElementSize = typeSize*typeElements; - - if (acc->count == 2) - { - if (index > 1) return false; - - memcpy(variable, index == 0 ? acc->min : acc->max, singleElementSize); - return true; - } - - memset(variable, 0, singleElementSize); - - if (acc->buffer_view == NULL || acc->buffer_view->buffer == NULL || acc->buffer_view->buffer->data == NULL) return false; - - if (!acc->buffer_view->stride) - { - void *readPosition = ((char *)acc->buffer_view->buffer->data) + (index*singleElementSize) + acc->buffer_view->offset + acc->offset; - memcpy(variable, readPosition, singleElementSize); - } - else - { - void *readPosition = ((char *)acc->buffer_view->buffer->data) + (index*acc->buffer_view->stride) + acc->buffer_view->offset + acc->offset; - memcpy(variable, readPosition, singleElementSize); - } - - return true; -} - -static void *ReadGLTFValuesAs(cgltf_accessor* acc, cgltf_component_type type, bool adjustOnDownCasting) -{ - unsigned int count = acc->count; - unsigned int typeSize = 0; - switch (type) - { - case cgltf_component_type_r_8u: - case cgltf_component_type_r_8: typeSize = 1; break; - case cgltf_component_type_r_16u: - case cgltf_component_type_r_16: typeSize = 2; break; - case cgltf_component_type_r_32f: - case cgltf_component_type_r_32u: typeSize = 4; break; - case cgltf_component_type_invalid: typeSize = 0; break; - default: break; - } - - unsigned int typeElements = 0; - switch (acc->type) - { - case cgltf_type_scalar: typeElements = 1; break; - case cgltf_type_vec2: typeElements = 2; break; - case cgltf_type_vec3: typeElements = 3; break; - case cgltf_type_vec4: - case cgltf_type_mat2: typeElements = 4; break; - case cgltf_type_mat3: typeElements = 9; break; - case cgltf_type_mat4: typeElements = 16; break; - case cgltf_type_invalid: typeElements = 0; break; - default: break; - } - - if (acc->component_type == type) - { - void *array = RL_MALLOC(count*typeElements*typeSize); - - for (unsigned int i = 0; i < count; i++) ReadGLTFValue(acc, i, (char *)array + i*typeElements*typeSize); - - return array; - - } - else - { - unsigned int accTypeSize = 0; - switch (acc->component_type) - { - case cgltf_component_type_r_8u: - case cgltf_component_type_r_8: accTypeSize = 1; break; - case cgltf_component_type_r_16u: - case cgltf_component_type_r_16: accTypeSize = 2; break; - case cgltf_component_type_r_32f: - case cgltf_component_type_r_32u: accTypeSize = 4; break; - case cgltf_component_type_invalid: accTypeSize = 0; break; - default: break; - } - - void *array = RL_MALLOC(count*typeElements*typeSize); - void *additionalArray = RL_MALLOC(count*typeElements*accTypeSize); - - for (unsigned int i = 0; i < count; i++) - { - ReadGLTFValue(acc, i, (char *)additionalArray + i*typeElements*accTypeSize); - } - - switch (acc->component_type) - { - case cgltf_component_type_r_8u: - { - unsigned char *typedAdditionalArray = (unsigned char *)additionalArray; - switch (type) - { - case cgltf_component_type_r_8: - { - char *typedArray = (char *)array; - for (unsigned int i = 0; i < count*typeElements; i++) - { - if (adjustOnDownCasting) typedArray[i] = (char)(typedAdditionalArray[i]/(UCHAR_MAX/CHAR_MAX)); - else typedArray[i] = (char)typedAdditionalArray[i]; - } - - } break; - case cgltf_component_type_r_16u: - { - unsigned short *typedArray = (unsigned short *)array; - for (unsigned int i = 0; i < count*typeElements; i++) typedArray[i] = (unsigned short)typedAdditionalArray[i]; - } break; - case cgltf_component_type_r_16: - { - short *typedArray = (short *)array; - for (unsigned int i = 0; i < count*typeElements; i++) typedArray[i] = (short)typedAdditionalArray[i]; - } break; - case cgltf_component_type_r_32f: - { - float *typedArray = (float *)array; - for (unsigned int i = 0; i < count*typeElements; i++) typedArray[i] = (float)typedAdditionalArray[i]; - } break; - case cgltf_component_type_r_32u: - { - unsigned int *typedArray = (unsigned int *)array; - for (unsigned int i = 0; i < count*typeElements; i++) typedArray[i] = (unsigned int)typedAdditionalArray[i]; - } break; - default: - { - RL_FREE(array); - RL_FREE(additionalArray); - return NULL; - } break; - } - } break; - case cgltf_component_type_r_8: - { - char *typedAdditionalArray = (char *)additionalArray; - switch (type) - { - case cgltf_component_type_r_8u: - { - unsigned char *typedArray = (unsigned char *)array; - for (unsigned int i = 0; i < count*typeElements; i++) typedArray[i] = (unsigned char)typedAdditionalArray[i]; - } break; - case cgltf_component_type_r_16u: - { - unsigned short *typedArray = (unsigned short *)array; - for (unsigned int i = 0; i < count*typeElements; i++) typedArray[i] = (unsigned short)typedAdditionalArray[i]; - } break; - case cgltf_component_type_r_16: - { - short *typedArray = (short *)array; - for (unsigned int i = 0; i < count*typeElements; i++) typedArray[i] = (short)typedAdditionalArray[i]; - } break; - case cgltf_component_type_r_32f: - { - float *typedArray = (float *)array; - for (unsigned int i = 0; i < count*typeElements; i++) typedArray[i] = (float)typedAdditionalArray[i]; - } break; - case cgltf_component_type_r_32u: - { - unsigned int *typedArray = (unsigned int *)array; - for (unsigned int i = 0; i < count*typeElements; i++) typedArray[i] = (unsigned int)typedAdditionalArray[i]; - } break; - default: - { - RL_FREE(array); - RL_FREE(additionalArray); - return NULL; - } break; - } - } break; - case cgltf_component_type_r_16u: - { - unsigned short *typedAdditionalArray = (unsigned short *)additionalArray; - switch (type) - { - case cgltf_component_type_r_8u: - { - unsigned char *typedArray = (unsigned char *)array; - for (unsigned int i = 0; i < count*typeElements; i++) - { - if (adjustOnDownCasting) typedArray[i] = (unsigned char)(typedAdditionalArray[i]/(USHRT_MAX/UCHAR_MAX)); - else typedArray[i] = (unsigned char)typedAdditionalArray[i]; - } - } break; - case cgltf_component_type_r_8: - { - char *typedArray = (char *) array; - for (unsigned int i = 0; i < count*typeElements; i++) - { - if (adjustOnDownCasting) typedArray[i] = (char)(typedAdditionalArray[i]/(USHRT_MAX/CHAR_MAX)); - else typedArray[i] = (char)typedAdditionalArray[i]; - } - } break; - case cgltf_component_type_r_16: - { - short *typedArray = (short *)array; - for (unsigned int i = 0; i < count*typeElements; i++) - { - if (adjustOnDownCasting) typedArray[i] = (short)(typedAdditionalArray[i]/(USHRT_MAX/SHRT_MAX)); - else typedArray[i] = (short)typedAdditionalArray[i]; - } - } break; - case cgltf_component_type_r_32f: - { - float *typedArray = (float *)array; - for (unsigned int i = 0; i < count*typeElements; i++) typedArray[i] = (float)typedAdditionalArray[i]; - } break; - case cgltf_component_type_r_32u: - { - unsigned int *typedArray = (unsigned int *)array; - for (unsigned int i = 0; i < count*typeElements; i++) typedArray[i] = (unsigned int)typedAdditionalArray[i]; - } break; - default: - { - RL_FREE(array); - RL_FREE(additionalArray); - return NULL; - } break; - } - } break; - case cgltf_component_type_r_16: - { - short *typedAdditionalArray = (short *)additionalArray; - switch (type) - { - case cgltf_component_type_r_8u: - { - unsigned char *typedArray = (unsigned char *)array; - for (unsigned int i = 0; i < count*typeElements; i++) - { - if (adjustOnDownCasting) typedArray[i] = (unsigned char)(typedAdditionalArray[i]/(SHRT_MAX/UCHAR_MAX)); - else typedArray[i] = (unsigned char)typedAdditionalArray[i]; - } - } break; - case cgltf_component_type_r_8: - { - char *typedArray = (char *)array; - for (unsigned int i = 0; i < count*typeElements; i++) - { - if (adjustOnDownCasting) typedArray[i] = (char)(typedAdditionalArray[i]/(SHRT_MAX/CHAR_MAX)); - else typedArray[i] = (char)typedAdditionalArray[i]; - } - } break; - case cgltf_component_type_r_16u: - { - unsigned short *typedArray = (unsigned short *)array; - for (unsigned int i = 0; i < count*typeElements; i++) typedArray[i] = (unsigned short)typedAdditionalArray[i]; - } break; - case cgltf_component_type_r_32f: - { - float *typedArray = (float *)array; - for (unsigned int i = 0; i < count*typeElements; i++) typedArray[i] = (float)typedAdditionalArray[i]; - } break; - case cgltf_component_type_r_32u: - { - unsigned int *typedArray = (unsigned int *)array; - for (unsigned int i = 0; i < count*typeElements; i++) typedArray[i] = (unsigned int)typedAdditionalArray[i]; - } break; - default: - { - RL_FREE(array); - RL_FREE(additionalArray); - return NULL; - } break; - } - } break; - case cgltf_component_type_r_32f: - { - float *typedAdditionalArray = (float *)additionalArray; - switch (type) - { - case cgltf_component_type_r_8u: - { - unsigned char *typedArray = (unsigned char *)array; - for (unsigned int i = 0; i < count*typeElements; i++) typedArray[i] = (unsigned char)typedAdditionalArray[i]; - } break; - case cgltf_component_type_r_8: - { - char *typedArray = (char *)array; - for (unsigned int i = 0; i < count*typeElements; i++) typedArray[i] = (char)typedAdditionalArray[i]; - } break; - case cgltf_component_type_r_16u: - { - unsigned short *typedArray = (unsigned short *)array; - for (unsigned int i = 0; i < count*typeElements; i++) typedArray[i] = (unsigned short)typedAdditionalArray[i]; - } break; - case cgltf_component_type_r_16: - { - short *typedArray = (short *)array; - for (unsigned int i = 0; i < count*typeElements; i++) typedArray[i] = (short)typedAdditionalArray[i]; - } break; - case cgltf_component_type_r_32u: - { - unsigned int *typedArray = (unsigned int *)array; - for (unsigned int i = 0; i < count*typeElements; i++) typedArray[i] = (unsigned int)typedAdditionalArray[i]; - } break; - default: - { - RL_FREE(array); - RL_FREE(additionalArray); - return NULL; - } break; - } - } break; - case cgltf_component_type_r_32u: - { - unsigned int *typedAdditionalArray = (unsigned int *)additionalArray; - switch (type) - { - case cgltf_component_type_r_8u: - { - unsigned char *typedArray = (unsigned char *)array; - for (unsigned int i = 0; i < count*typeElements; i++) - { - if (adjustOnDownCasting) typedArray[i] = (unsigned char)(typedAdditionalArray[i]/(UINT_MAX/UCHAR_MAX)); - else typedArray[i] = (unsigned char)typedAdditionalArray[i]; - } - } break; - case cgltf_component_type_r_8: - { - char *typedArray = (char *)array; - for (unsigned int i = 0; i < count*typeElements; i++) - { - if (adjustOnDownCasting) typedArray[i] = (char)(typedAdditionalArray[i]/(UINT_MAX/CHAR_MAX)); - else typedArray[i] = (char)typedAdditionalArray[i]; - } - } break; - case cgltf_component_type_r_16u: - { - unsigned short *typedArray = (unsigned short *)array; - for (unsigned int i = 0; i < count*typeElements; i++) - { - if (adjustOnDownCasting) typedArray[i] = (unsigned short)(typedAdditionalArray[i]/(UINT_MAX/USHRT_MAX)); - else typedArray[i] = (unsigned short)typedAdditionalArray[i]; - } - } break; - case cgltf_component_type_r_16: - { - short *typedArray = (short *)array; - for (unsigned int i = 0; i < count*typeElements; i++) - { - if (adjustOnDownCasting) typedArray[i] = (short)(typedAdditionalArray[i]/(UINT_MAX/SHRT_MAX)); - else typedArray[i] = (short)typedAdditionalArray[i]; - } - } break; - case cgltf_component_type_r_32f: - { - float *typedArray = (float *)array; - for (unsigned int i = 0; i < count*typeElements; i++) typedArray[i] = (float)typedAdditionalArray[i]; - } break; - default: - { - RL_FREE(array); - RL_FREE(additionalArray); - return NULL; - } break; - } - } break; - default: - { - RL_FREE(array); - RL_FREE(additionalArray); - return NULL; - } break; - } - - RL_FREE(additionalArray); - return array; - } -} - // LoadGLTF loads in model data from given filename, supporting both .gltf and .glb static Model LoadGLTF(const char *fileName) { @@ -5023,54 +4518,54 @@ static Model LoadGLTF(const char *fileName) Model model = { 0 }; // glTF file loading - unsigned int dataSize = 0; - unsigned char *fileData = LoadFileData(fileName, &dataSize); + unsigned int fileSize = 0; + unsigned char *fileData = LoadFileData(fileName, &fileSize); if (fileData == NULL) return model; // glTF data loading - cgltf_options options = { 0 }; - cgltf_data *data = NULL; - cgltf_result result = cgltf_parse(&options, fileData, dataSize, &data); + cgltf_data *gltfData = NULL; + cgltf_options gltfOptions = { 0 }; // TODO: Define custom allocators/file-accessors + cgltf_result result = cgltf_parse(&gltfOptions, fileData, fileSize, &gltfData); if (result == cgltf_result_success) { - TRACELOG(LOG_INFO, "MODEL: [%s] glTF meshes (%s) count: %i", fileName, (data->file_type == 2)? "glb" : "gltf", data->meshes_count); - TRACELOG(LOG_INFO, "MODEL: [%s] glTF materials (%s) count: %i", fileName, (data->file_type == 2)? "glb" : "gltf", data->materials_count); + TRACELOG(LOG_INFO, "MODEL: [%s] glTF meshes (%s) count: %i", fileName, (gltfData->file_type == 2)? "glb" : "gltf", gltfData->meshes_count); + TRACELOG(LOG_INFO, "MODEL: [%s] glTF materials (%s) count: %i", fileName, (gltfData->file_type == 2)? "glb" : "gltf", gltfData->materials_count); // Read data buffers - result = cgltf_load_buffers(&options, data, fileName); + result = cgltf_load_buffers(&gltfOptions, gltfData, fileName); // TODO: Not needed, gltfData already contains URIs to buffers for manual loading if (result != cgltf_result_success) TRACELOG(LOG_INFO, "MODEL: [%s] Failed to load mesh/material buffers", fileName); - if (data->scenes_count > 1) TRACELOG(LOG_INFO, "MODEL: [%s] Has multiple scenes but only the first one will be loaded", fileName); + if (gltfData->scenes_count > 1) TRACELOG(LOG_INFO, "MODEL: [%s] Has multiple scenes but only the first one will be loaded", fileName); int primitiveCount = 0; - for (unsigned int i = 0; i < data->scene->nodes_count; i++) + for (unsigned int i = 0; i < gltfData->scene->nodes_count; i++) { - GetGLTFPrimitiveCount(data->scene->nodes[i], &primitiveCount); + //GetGLTFPrimitiveCount(gltfData->scene->nodes[i], &primitiveCount); // TODO: Recursive function, really needed? } // Process glTF data and map to model model.meshCount = primitiveCount; model.meshes = RL_CALLOC(model.meshCount, sizeof(Mesh)); - model.materialCount = (int)data->materials_count + 1; + model.materialCount = (int)gltfData->materials_count + 1; model.materials = RL_MALLOC(model.materialCount*sizeof(Material)); model.meshMaterial = RL_MALLOC(model.meshCount*sizeof(int)); - model.boneCount = (int)data->nodes_count; + model.boneCount = (int)gltfData->nodes_count; model.bones = RL_CALLOC(model.boneCount, sizeof(BoneInfo)); model.bindPose = RL_CALLOC(model.boneCount, sizeof(Transform)); - InitGLTFBones(&model, data); - LoadGLTFMaterial(&model, fileName, data); + //InitGLTFBones(&model, gltfData); + //LoadGLTFMaterial(&model, fileName, gltfData); int primitiveIndex = 0; - for (unsigned int i = 0; i < data->scene->nodes_count; i++) + for (unsigned int i = 0; i < gltfData->scene->nodes_count; i++) { Matrix staticTransform = MatrixIdentity(); - LoadGLTFNode(data, data->scene->nodes[i], &model, staticTransform, &primitiveIndex, fileName); + //LoadGLTFNode(gltfData, gltfData->scene->nodes[i], &model, staticTransform, &primitiveIndex, fileName); // TODO: Recursive function, really needed? } - cgltf_free(data); + cgltf_free(gltfData); } else TRACELOG(LOG_WARNING, "MODEL: [%s] Failed to load glTF data", fileName); @@ -5078,616 +4573,6 @@ static Model LoadGLTF(const char *fileName) return model; } - -static void InitGLTFBones(Model *model, const cgltf_data *data) -{ - for (unsigned int j = 0; j < data->nodes_count; j++) - { - strcpy(model->bones[j].name, data->nodes[j].name == 0 ? "ANIMJOINT" : data->nodes[j].name); - model->bones[j].parent = (data->nodes[j].parent != NULL) ? (int)(data->nodes[j].parent - data->nodes) : -1; - } - - for (unsigned int i = 0; i < data->nodes_count; i++) - { - if (data->nodes[i].has_translation) memcpy(&model->bindPose[i].translation, data->nodes[i].translation, 3*sizeof(float)); - else model->bindPose[i].translation = Vector3Zero(); - - if (data->nodes[i].has_rotation) memcpy(&model->bindPose[i].rotation, data->nodes[i].rotation, 4*sizeof(float)); - else model->bindPose[i].rotation = QuaternionIdentity(); - - model->bindPose[i].rotation = QuaternionNormalize(model->bindPose[i].rotation); - - if (data->nodes[i].has_scale) memcpy(&model->bindPose[i].scale, data->nodes[i].scale, 3*sizeof(float)); - else model->bindPose[i].scale = Vector3One(); - } - - { - bool *completedBones = RL_CALLOC(model->boneCount, sizeof(bool)); - int numberCompletedBones = 0; - - while (numberCompletedBones < model->boneCount) - { - for (int i = 0; i < model->boneCount; i++) - { - if (completedBones[i]) continue; - - if (model->bones[i].parent < 0) - { - completedBones[i] = true; - numberCompletedBones++; - continue; - } - - if (!completedBones[model->bones[i].parent]) continue; - - Transform* currentTransform = &model->bindPose[i]; - BoneInfo* currentBone = &model->bones[i]; - int root = currentBone->parent; - if (root >= model->boneCount) root = 0; - Transform* parentTransform = &model->bindPose[root]; - - currentTransform->rotation = QuaternionMultiply(parentTransform->rotation, currentTransform->rotation); - currentTransform->translation = Vector3RotateByQuaternion(currentTransform->translation, parentTransform->rotation); - currentTransform->translation = Vector3Add(currentTransform->translation, parentTransform->translation); - currentTransform->scale = Vector3Multiply(currentTransform->scale, parentTransform->scale); - completedBones[i] = true; - numberCompletedBones++; - } - } - - RL_FREE(completedBones); - } -} - -static void LoadGLTFMaterial(Model *model, const char *fileName, const cgltf_data *data) -{ - for (int i = 0; i < model->materialCount - 1; i++) - { - model->materials[i] = LoadMaterialDefault(); - Color tint = (Color){ 255, 255, 255, 255 }; - const char *texPath = GetDirectoryPath(fileName); - - // Ensure material follows raylib support for PBR (metallic/roughness flow) - if (data->materials[i].has_pbr_metallic_roughness) - { - tint.r = (unsigned char)(data->materials[i].pbr_metallic_roughness.base_color_factor[0]*255); - tint.g = (unsigned char)(data->materials[i].pbr_metallic_roughness.base_color_factor[1]*255); - tint.b = (unsigned char)(data->materials[i].pbr_metallic_roughness.base_color_factor[2]*255); - tint.a = (unsigned char)(data->materials[i].pbr_metallic_roughness.base_color_factor[3]*255); - - model->materials[i].maps[MATERIAL_MAP_ALBEDO].color = tint; - - if (data->materials[i].pbr_metallic_roughness.base_color_texture.texture) - { - Image albedo = LoadImageFromCgltfImage(data->materials[i].pbr_metallic_roughness.base_color_texture.texture->image, texPath, tint); - model->materials[i].maps[MATERIAL_MAP_ALBEDO].texture = LoadTextureFromImage(albedo); - UnloadImage(albedo); - } - - tint = WHITE; // Set tint to white after it's been used by Albedo - - if (data->materials[i].pbr_metallic_roughness.metallic_roughness_texture.texture) - { - Image metallicRoughness = LoadImageFromCgltfImage(data->materials[i].pbr_metallic_roughness.metallic_roughness_texture.texture->image, texPath, tint); - model->materials[i].maps[MATERIAL_MAP_ROUGHNESS].texture = LoadTextureFromImage(metallicRoughness); - - float roughness = data->materials[i].pbr_metallic_roughness.roughness_factor; - model->materials[i].maps[MATERIAL_MAP_ROUGHNESS].value = roughness; - - float metallic = data->materials[i].pbr_metallic_roughness.metallic_factor; - model->materials[i].maps[MATERIAL_MAP_METALNESS].value = metallic; - - UnloadImage(metallicRoughness); - } - - if (data->materials[i].normal_texture.texture) - { - Image normalImage = LoadImageFromCgltfImage(data->materials[i].normal_texture.texture->image, texPath, tint); - model->materials[i].maps[MATERIAL_MAP_NORMAL].texture = LoadTextureFromImage(normalImage); - UnloadImage(normalImage); - } - - if (data->materials[i].occlusion_texture.texture) - { - Image occulsionImage = LoadImageFromCgltfImage(data->materials[i].occlusion_texture.texture->image, texPath, tint); - model->materials[i].maps[MATERIAL_MAP_OCCLUSION].texture = LoadTextureFromImage(occulsionImage); - UnloadImage(occulsionImage); - } - - if (data->materials[i].emissive_texture.texture) - { - Image emissiveImage = LoadImageFromCgltfImage(data->materials[i].emissive_texture.texture->image, texPath, tint); - model->materials[i].maps[MATERIAL_MAP_EMISSION].texture = LoadTextureFromImage(emissiveImage); - tint.r = (unsigned char)(data->materials[i].emissive_factor[0]*255); - tint.g = (unsigned char)(data->materials[i].emissive_factor[1]*255); - tint.b = (unsigned char)(data->materials[i].emissive_factor[2]*255); - model->materials[i].maps[MATERIAL_MAP_EMISSION].color = tint; - UnloadImage(emissiveImage); - } - } - } - - model->materials[model->materialCount - 1] = LoadMaterialDefault(); -} - -static void BindGLTFPrimitiveToBones(Model *model, cgltf_node *node, const cgltf_data *data, int primitiveIndex) -{ - int nodeId = node - data->nodes; - - if (model->meshes[primitiveIndex].boneIds == NULL) - { - model->meshes[primitiveIndex].boneIds = RL_CALLOC(model->meshes[primitiveIndex].vertexCount*4, sizeof(int)); - model->meshes[primitiveIndex].boneWeights = RL_CALLOC(model->meshes[primitiveIndex].vertexCount*4, sizeof(float)); - - for (int b = 0; b < model->meshes[primitiveIndex].vertexCount*4; b++) - { - if (b%4 == 0) - { - model->meshes[primitiveIndex].boneIds[b] = nodeId; - model->meshes[primitiveIndex].boneWeights[b] = 1.0f; - } - else - { - model->meshes[primitiveIndex].boneIds[b] = 0; - model->meshes[primitiveIndex].boneWeights[b] = 0.0f; - } - } - } -} - -// LoadGLTF loads in animation data from given filename -static ModelAnimation *LoadGLTFModelAnimations(const char *fileName, unsigned int *animCount) -{ - /*********************************************************************************** - - Function implemented by Hristo Stamenov (@object71) - - Features: - - Supports .gltf and .glb files - - Some restrictions (not exhaustive): - - ... - - *************************************************************************************/ - - // glTF file loading - unsigned int dataSize = 0; - unsigned char *fileData = LoadFileData(fileName, &dataSize); - - ModelAnimation *animations = NULL; - - if (fileData == NULL) return animations; - - // glTF data loading - cgltf_options options = { 0 }; - cgltf_data *data = NULL; - cgltf_result result = cgltf_parse(&options, fileData, dataSize, &data); - - if (result == cgltf_result_success) - { - TRACELOG(LOG_INFO, "MODEL: [%s] glTF animations (%s) count: %i", fileName, (data->file_type == 2)? "glb" : - "gltf", data->animations_count); - - result = cgltf_load_buffers(&options, data, fileName); - if (result != cgltf_result_success) TRACELOG(LOG_WARNING, "MODEL: [%s] unable to load glTF animations data", fileName); - animations = RL_MALLOC(data->animations_count*sizeof(ModelAnimation)); - *animCount = (unsigned int)data->animations_count; - - for (unsigned int a = 0; a < data->animations_count; a++) - { - // gltf animation consists of the following structures: - // - nodes - bones are part of the node system (the whole node system is animatable) - // - channels - single transformation type on a single bone - // - node - animatable node - // - transformation type (path) - translation, rotation, scale - // - sampler - animation samples - // - input - points in time this transformation happens - // - output - the transformation amount at the given input points in time - // - interpolation - the type of interpolation to use between the frames - - cgltf_animation *animation = data->animations + a; - - ModelAnimation *output = animations + a; - - // 30 frames sampled per second - const float timeStep = (1.0f/60.0f); - float animationDuration = 0.0f; - - // Getting the max animation time to consider for animation duration - for (unsigned int i = 0; i < animation->channels_count; i++) - { - cgltf_animation_channel *channel = animation->channels + i; - int frameCounts = (int)channel->sampler->input->count; - float lastFrameTime = 0.0f; - - if (ReadGLTFValue(channel->sampler->input, frameCounts - 1, &lastFrameTime)) - { - animationDuration = fmaxf(lastFrameTime, animationDuration); - } - } - - output->frameCount = (int)(animationDuration/timeStep); - output->boneCount = (int)data->nodes_count; - output->bones = RL_MALLOC(output->boneCount*sizeof(BoneInfo)); - output->framePoses = RL_MALLOC(output->frameCount*sizeof(Transform *)); - // output->framerate = // TODO: Use framerate instead of const timestep - - // Name and parent bones - for (int j = 0; j < output->boneCount; j++) - { - strcpy(output->bones[j].name, data->nodes[j].name == 0 ? "ANIMJOINT" : data->nodes[j].name); - output->bones[j].parent = (data->nodes[j].parent != NULL) ? (int)(data->nodes[j].parent - data->nodes) : -1; - } - - // Allocate data for frames - // Initiate with zero bone translations - for (int frame = 0; frame < output->frameCount; frame++) - { - output->framePoses[frame] = RL_MALLOC(output->boneCount*sizeof(Transform)); - - for (int i = 0; i < output->boneCount; i++) - { - if (data->nodes[i].has_translation) memcpy(&output->framePoses[frame][i].translation, data->nodes[i].translation, 3*sizeof(float)); - else output->framePoses[frame][i].translation = Vector3Zero(); - - if (data->nodes[i].has_rotation) memcpy(&output->framePoses[frame][i], data->nodes[i].rotation, 4*sizeof(float)); - else output->framePoses[frame][i].rotation = QuaternionIdentity(); - - output->framePoses[frame][i].rotation = QuaternionNormalize(output->framePoses[frame][i].rotation); - - if (data->nodes[i].has_scale) memcpy(&output->framePoses[frame][i].scale, data->nodes[i].scale, 3*sizeof(float)); - else output->framePoses[frame][i].scale = Vector3One(); - } - } - - // for each single transformation type on single bone - for (unsigned int channelId = 0; channelId < animation->channels_count; channelId++) - { - cgltf_animation_channel *channel = animation->channels + channelId; - cgltf_animation_sampler *sampler = channel->sampler; - - int boneId = (int)(channel->target_node - data->nodes); - - for (int frame = 0; frame < output->frameCount; frame++) - { - bool shouldSkipFurtherTransformation = true; - int outputMin = 0; - int outputMax = 0; - float frameTime = frame*timeStep; - float lerpPercent = 0.0f; - - // For this transformation: - // getting between which input values the current frame time position - // and also what is the percent to use in the linear interpolation later - for (unsigned int j = 0; j < sampler->input->count; j++) - { - float inputFrameTime; - if (ReadGLTFValue(sampler->input, j, &inputFrameTime)) - { - if (frameTime < inputFrameTime) - { - shouldSkipFurtherTransformation = false; - outputMin = (j == 0) ? 0 : j - 1; - outputMax = j; - - float previousInputTime = 0.0f; - if (ReadGLTFValue(sampler->input, outputMin, &previousInputTime)) - { - if ((inputFrameTime - previousInputTime) != 0) - { - lerpPercent = (frameTime - previousInputTime)/(inputFrameTime - previousInputTime); - } - } - - break; - } - } - else break; - } - - // If the current transformation has no information for the current frame time point - if (shouldSkipFurtherTransformation) continue; - - if (channel->target_path == cgltf_animation_path_type_translation) - { - Vector3 translationStart; - Vector3 translationEnd; - - float values[3]; - - bool success = ReadGLTFValue(sampler->output, outputMin, values); - - translationStart.x = values[0]; - translationStart.y = values[1]; - translationStart.z = values[2]; - - success = ReadGLTFValue(sampler->output, outputMax, values) && success; - - translationEnd.x = values[0]; - translationEnd.y = values[1]; - translationEnd.z = values[2]; - - if (success) - { - output->framePoses[frame][boneId].translation = Vector3Lerp(translationStart, translationEnd, lerpPercent); - } - } - if (channel->target_path == cgltf_animation_path_type_rotation) - { - Vector4 rotationStart; - Vector4 rotationEnd; - - float values[4]; - - bool success = ReadGLTFValue(sampler->output, outputMin, &values); - - rotationStart.x = values[0]; - rotationStart.y = values[1]; - rotationStart.z = values[2]; - rotationStart.w = values[3]; - - success = ReadGLTFValue(sampler->output, outputMax, &values) && success; - - rotationEnd.x = values[0]; - rotationEnd.y = values[1]; - rotationEnd.z = values[2]; - rotationEnd.w = values[3]; - - if (success) - { - output->framePoses[frame][boneId].rotation = QuaternionNlerp(rotationStart, rotationEnd, lerpPercent); - } - } - if (channel->target_path == cgltf_animation_path_type_scale) - { - Vector3 scaleStart; - Vector3 scaleEnd; - - float values[3]; - - bool success = ReadGLTFValue(sampler->output, outputMin, &values); - - scaleStart.x = values[0]; - scaleStart.y = values[1]; - scaleStart.z = values[2]; - - success = ReadGLTFValue(sampler->output, outputMax, &values) && success; - - scaleEnd.x = values[0]; - scaleEnd.y = values[1]; - scaleEnd.z = values[2]; - - if (success) - { - output->framePoses[frame][boneId].scale = Vector3Lerp(scaleStart, scaleEnd, lerpPercent); - } - } - } - } - - // Build frameposes - for (int frame = 0; frame < output->frameCount; frame++) - { - bool *completedBones = RL_CALLOC(output->boneCount, sizeof(bool)); - int numberCompletedBones = 0; - - while (numberCompletedBones < output->boneCount) - { - for (int i = 0; i < output->boneCount; i++) - { - if (completedBones[i]) - { - continue; - } - - if (output->bones[i].parent < 0) - { - completedBones[i] = true; - numberCompletedBones++; - continue; - } - - if (!completedBones[output->bones[i].parent]) - { - continue; - } - - output->framePoses[frame][i].rotation = QuaternionMultiply(output->framePoses[frame][output->bones[i].parent].rotation, output->framePoses[frame][i].rotation); - output->framePoses[frame][i].translation = Vector3RotateByQuaternion(output->framePoses[frame][i].translation, output->framePoses[frame][output->bones[i].parent].rotation); - output->framePoses[frame][i].translation = Vector3Add(output->framePoses[frame][i].translation, output->framePoses[frame][output->bones[i].parent].translation); - output->framePoses[frame][i].scale = Vector3Multiply(output->framePoses[frame][i].scale, output->framePoses[frame][output->bones[i].parent].scale); - completedBones[i] = true; - numberCompletedBones++; - } - } - RL_FREE(completedBones); - } - } - - cgltf_free(data); - } - else TRACELOG(LOG_WARNING, ": [%s] Failed to load glTF data", fileName); - - RL_FREE(fileData); - - return animations; -} - -void LoadGLTFMesh(cgltf_data *data, cgltf_node *node, Model *outModel, Matrix currentTransform, int *primitiveIndex, const char *fileName) -{ - cgltf_mesh *mesh = node->mesh; - for (unsigned int p = 0; p < mesh->primitives_count; p++) - { - for (unsigned int j = 0; j < mesh->primitives[p].attributes_count; j++) - { - if (mesh->primitives[p].attributes[j].type == cgltf_attribute_type_position) - { - cgltf_accessor *acc = mesh->primitives[p].attributes[j].data; - outModel->meshes[(*primitiveIndex)].vertexCount = (int)acc->count; - int bufferSize = outModel->meshes[(*primitiveIndex)].vertexCount*3*sizeof(float); - outModel->meshes[(*primitiveIndex)].animVertices = RL_MALLOC(bufferSize); - - outModel->meshes[(*primitiveIndex)].vertices = ReadGLTFValuesAs(acc, cgltf_component_type_r_32f, false); - - // Transform using the nodes matrix attributes - for (int v = 0; v < outModel->meshes[(*primitiveIndex)].vertexCount; v++) - { - Vector3 vertex = { - outModel->meshes[(*primitiveIndex)].vertices[(v*3 + 0)], - outModel->meshes[(*primitiveIndex)].vertices[(v*3 + 1)], - outModel->meshes[(*primitiveIndex)].vertices[(v*3 + 2)] }; - - vertex = Vector3Transform(vertex, currentTransform); - - outModel->meshes[(*primitiveIndex)].vertices[(v*3 + 0)] = vertex.x; - outModel->meshes[(*primitiveIndex)].vertices[(v*3 + 1)] = vertex.y; - outModel->meshes[(*primitiveIndex)].vertices[(v*3 + 2)] = vertex.z; - } - - memcpy(outModel->meshes[(*primitiveIndex)].animVertices, outModel->meshes[(*primitiveIndex)].vertices, bufferSize); - } - else if (mesh->primitives[p].attributes[j].type == cgltf_attribute_type_normal) - { - cgltf_accessor *acc = mesh->primitives[p].attributes[j].data; - - int bufferSize = (int)(acc->count*3*sizeof(float)); - outModel->meshes[(*primitiveIndex)].animNormals = RL_MALLOC(bufferSize); - - outModel->meshes[(*primitiveIndex)].normals = ReadGLTFValuesAs(acc, cgltf_component_type_r_32f, false); - - // Transform using the nodes matrix attributes - for (int v = 0; v < outModel->meshes[(*primitiveIndex)].vertexCount; v++) - { - Vector3 normal = { - outModel->meshes[(*primitiveIndex)].normals[(v*3 + 0)], - outModel->meshes[(*primitiveIndex)].normals[(v*3 + 1)], - outModel->meshes[(*primitiveIndex)].normals[(v*3 + 2)] }; - - normal = Vector3Transform(normal, currentTransform); - - outModel->meshes[(*primitiveIndex)].normals[(v*3 + 0)] = normal.x; - outModel->meshes[(*primitiveIndex)].normals[(v*3 + 1)] = normal.y; - outModel->meshes[(*primitiveIndex)].normals[(v*3 + 2)] = normal.z; - } - - memcpy(outModel->meshes[(*primitiveIndex)].animNormals, outModel->meshes[(*primitiveIndex)].normals, bufferSize); - } - else if (mesh->primitives[p].attributes[j].type == cgltf_attribute_type_texcoord) - { - cgltf_accessor *acc = mesh->primitives[p].attributes[j].data; - outModel->meshes[(*primitiveIndex)].texcoords = ReadGLTFValuesAs(acc, cgltf_component_type_r_32f, false); - } - else if (mesh->primitives[p].attributes[j].type == cgltf_attribute_type_joints) - { - cgltf_accessor *acc = mesh->primitives[p].attributes[j].data; - unsigned int boneCount = acc->count; - unsigned int totalBoneWeights = boneCount*4; - outModel->meshes[(*primitiveIndex)].boneIds = RL_MALLOC(totalBoneWeights*sizeof(int)); - short *bones = ReadGLTFValuesAs(acc, cgltf_component_type_r_16, false); - // Find skin joint - for (unsigned int a = 0; a < totalBoneWeights; a++) - { - outModel->meshes[(*primitiveIndex)].boneIds[a] = 0; - if (bones[a] < 0) continue; - cgltf_node* skinJoint = node->skin->joints[bones[a]]; - unsigned int skinJointId = skinJoint - data->nodes; - outModel->meshes[(*primitiveIndex)].boneIds[a] = skinJointId; - } - RL_FREE(bones); - } - else if (mesh->primitives[p].attributes[j].type == cgltf_attribute_type_weights) - { - cgltf_accessor *acc = mesh->primitives[p].attributes[j].data; - outModel->meshes[(*primitiveIndex)].boneWeights = ReadGLTFValuesAs(acc, cgltf_component_type_r_32f, false); - } - else if (mesh->primitives[p].attributes[j].type == cgltf_attribute_type_color) - { - cgltf_accessor *acc = mesh->primitives[p].attributes[j].data; - outModel->meshes[(*primitiveIndex)].colors = ReadGLTFValuesAs(acc, cgltf_component_type_r_8u, true); - } - } - - cgltf_accessor *acc = mesh->primitives[p].indices; - if (acc) - { - outModel->meshes[(*primitiveIndex)].triangleCount = acc->count/3; - outModel->meshes[(*primitiveIndex)].indices = ReadGLTFValuesAs(acc, cgltf_component_type_r_16u, false); - } - else - { - // Unindexed mesh - outModel->meshes[(*primitiveIndex)].triangleCount = outModel->meshes[(*primitiveIndex)].vertexCount/3; - } - - if (mesh->primitives[p].material) - { - // Compute the offset - outModel->meshMaterial[(*primitiveIndex)] = (int)(mesh->primitives[p].material - data->materials); - } - else outModel->meshMaterial[(*primitiveIndex)] = outModel->materialCount - 1; - - BindGLTFPrimitiveToBones(outModel, node, data, *primitiveIndex); - - (*primitiveIndex) = (*primitiveIndex) + 1; - } -} - -static Matrix GetNodeTransformationMatrix(cgltf_node *node, Matrix current) -{ - if (node->has_matrix) - { - Matrix nodeTransform = { - node->matrix[0], node->matrix[4], node->matrix[8], node->matrix[12], - node->matrix[1], node->matrix[5], node->matrix[9], node->matrix[13], - node->matrix[2], node->matrix[6], node->matrix[10], node->matrix[14], - node->matrix[3], node->matrix[7], node->matrix[11], node->matrix[15] }; - current= MatrixMultiply(nodeTransform, current); - } - if (node->has_translation) - { - Matrix tl = MatrixTranslate(node->translation[0],node->translation[1],node->translation[2]); - current = MatrixMultiply(tl, current); - } - if (node->has_rotation) - { - Matrix rot = QuaternionToMatrix((Quaternion){node->rotation[0],node->rotation[1],node->rotation[2],node->rotation[3]}); - current = MatrixMultiply(rot, current); - } - if (node->has_scale) - { - Matrix scale = MatrixScale(node->scale[0],node->scale[1],node->scale[2]); - current = MatrixMultiply(scale, current); - } - return current; -} - -void LoadGLTFNode(cgltf_data *data, cgltf_node *node, Model *outModel, Matrix currentTransform, int *primitiveIndex, const char *fileName) -{ - // Apply the transforms if they exist (Will still be applied even if no mesh is present to support emptys and bone structures) - Matrix localTransform = GetNodeTransformationMatrix(node, MatrixIdentity()); - currentTransform = MatrixMultiply(localTransform, currentTransform); - // Load mesh if it exists - if (node->mesh != NULL) - { - // Check if skinning is enabled and load Mesh accordingly - Matrix vertexTransform = currentTransform; - if ((node->skin != NULL) && (node->parent != NULL)) - { - vertexTransform = localTransform; - TRACELOG(LOG_WARNING,"MODEL: GLTF Node %s is skinned but not root node! Parent transformations will be ignored (NODE_SKINNED_MESH_NON_ROOT)",node->name); - } - LoadGLTFMesh(data, node, outModel, vertexTransform, primitiveIndex, fileName); - } - for (unsigned int i = 0; i < node->children_count; i++) LoadGLTFNode(data, node->children[i], outModel, currentTransform, primitiveIndex, fileName); -} - -static void GetGLTFPrimitiveCount(cgltf_node *node, int *outCount) -{ - if (node->mesh != NULL) *outCount += node->mesh->primitives_count; - - for (unsigned int i = 0; i < node->children_count; i++) GetGLTFPrimitiveCount(node->children[i], outCount); -} - #endif #if defined(SUPPORT_FILEFORMAT_VOX) @@ -5695,22 +4580,23 @@ static void GetGLTFPrimitiveCount(cgltf_node *node, int *outCount) static Model LoadVOX(const char *fileName) { Model model = { 0 }; + int nbvertices = 0; int meshescount = 0; - unsigned int readed = 0; - unsigned char* fileData; + unsigned int fileSize = 0; + unsigned char *fileData = NULL; - //Read vox file into buffer - fileData = LoadFileData(fileName, &readed); + // Read vox file into buffer + fileData = LoadFileData(fileName, &fileSize); if (fileData == 0) { TRACELOG(LOG_WARNING, "MODEL: [%s] Failed to load VOX file", fileName); return model; } - //Read and build voxarray description + // Read and build voxarray description VoxArray3D voxarray = { 0 }; - int ret = Vox_LoadFromMemory(fileData, readed, &voxarray); + int ret = Vox_LoadFromMemory(fileData, fileSize, &voxarray); if (ret != VOX_SUCCESS) { @@ -5733,12 +4619,12 @@ static Model LoadVOX(const char *fileName) model.transform = MatrixIdentity(); model.meshCount = meshescount; - model.meshes = (Mesh *)MemAlloc(model.meshCount*sizeof(Mesh)); + model.meshes = (Mesh *)RL_CALLOC(model.meshCount, sizeof(Mesh)); - model.meshMaterial = (int *)MemAlloc(model.meshCount*sizeof(int)); + model.meshMaterial = (int *)RL_CALLOC(model.meshCount, sizeof(int)); model.materialCount = 1; - model.materials = (Material *)MemAlloc(model.materialCount*sizeof(Material)); + model.materials = (Material *)RL_CALLOC(model.materialCount, sizeof(Material)); model.materials[0] = LoadMaterialDefault(); // Init model meshes @@ -5746,58 +4632,47 @@ static Model LoadVOX(const char *fileName) int verticesMax = 65532; // 5461 voxels x 12 vertices per voxel -> 65532 (must be inf 65536) // 6*4 = 12 vertices per voxel - Vector3 *pvertices = { 0 }; - pvertices->x = voxarray.vertices.array->x; - pvertices->y = voxarray.vertices.array->y; - pvertices->z = voxarray.vertices.array->z; - - Color *pcolors = { 0 }; - pcolors->r = voxarray.colors.array->r; - pcolors->g = voxarray.colors.array->g; - pcolors->b = voxarray.colors.array->b; - pcolors->a = voxarray.colors.array->a; + Vector3 *pvertices = (Vector3 *)voxarray.vertices.array; + Color *pcolors = (Color *)voxarray.colors.array; unsigned short *pindices = voxarray.indices.array; // 5461*6*6 = 196596 indices max per mesh int size = 0; - for (int idxMesh = 0; idxMesh < meshescount; idxMesh++) + for (int i = 0; i < meshescount; i++) { - Mesh *pmesh = &model.meshes[idxMesh]; + Mesh *pmesh = &model.meshes[i]; memset(pmesh, 0, sizeof(Mesh)); // Copy vertices pmesh->vertexCount = (int)fmin(verticesMax, verticesRemain); size = pmesh->vertexCount*sizeof(float)*3; - pmesh->vertices = MemAlloc(size); + pmesh->vertices = RL_MALLOC(size); memcpy(pmesh->vertices, pvertices, size); // Copy indices // TODO: Compute globals indices array - size = voxarray.indices.used * sizeof(unsigned short); - pmesh->indices = MemAlloc(size); + size = voxarray.indices.used*sizeof(unsigned short); + pmesh->indices = RL_MALLOC(size); memcpy(pmesh->indices, pindices, size); pmesh->triangleCount = (pmesh->vertexCount/4)*2; // Copy colors size = pmesh->vertexCount*sizeof(Color); - pmesh->colors = MemAlloc(size); + pmesh->colors = RL_MALLOC(size); memcpy(pmesh->colors, pcolors, size); // First material index - model.meshMaterial[idxMesh] = 0; - - // Upload mesh data to GPU - UploadMesh(pmesh, false); + model.meshMaterial[i] = 0; verticesRemain -= verticesMax; pvertices += verticesMax; pcolors += verticesMax; } - //Free buffers + // Free buffers Vox_FreeArrays(&voxarray); UnloadFileData(fileData); diff --git a/src/rtext.c b/src/rtext.c index dd6bcf2d7..0cd26263f 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -364,7 +364,9 @@ Font LoadFontFromImage(Image image, Color key, int firstChar) #define MAX_GLYPHS_FROM_IMAGE 256 // Maximum number of glyphs supported on image scan #endif - #define COLOR_EQUAL(col1, col2) ((col1.r == col2.r)&&(col1.g == col2.g)&&(col1.b == col2.b)&&(col1.a == col2.a)) + #define COLOR_EQUAL(col1, col2) ((col1.r == col2.r) && (col1.g == col2.g) && (col1.b == col2.b) && (col1.a == col2.a)) + + Font font = GetFontDefault(); int charSpacing = 0; int lineSpacing = 0; @@ -374,8 +376,8 @@ Font LoadFontFromImage(Image image, Color key, int firstChar) // We allocate a temporal arrays for chars data measures, // once we get the actual number of chars, we copy data to a sized arrays - int tempCharValues[MAX_GLYPHS_FROM_IMAGE]; - Rectangle tempCharRecs[MAX_GLYPHS_FROM_IMAGE]; + int tempCharValues[MAX_GLYPHS_FROM_IMAGE] = { 0 }; + Rectangle tempCharRecs[MAX_GLYPHS_FROM_IMAGE] = { 0 }; Color *pixels = LoadImageColors(image); @@ -390,6 +392,8 @@ Font LoadFontFromImage(Image image, Color key, int firstChar) if (!COLOR_EQUAL(pixels[y*image.width + x], key)) break; } + if ((x == 0) || (y == 0)) return font; + charSpacing = x; lineSpacing = y; @@ -445,9 +449,7 @@ Font LoadFontFromImage(Image image, Color key, int firstChar) .mipmaps = 1 }; - // Create font with all data parsed from image - Font font = { 0 }; - + // Set font with all data parsed from image font.texture = LoadTextureFromImage(fontClear); // Convert processed image to OpenGL texture font.glyphCount = index; font.glyphPadding = 0; @@ -773,8 +775,6 @@ Image GenImageFontAtlas(const GlyphInfo *chars, Rectangle **charRecs, int glyphC RL_FREE(context); } - // TODO: Crop image if required for smaller size - // Convert image data from GRAYSCALE to GRAY_ALPHA unsigned char *dataGrayAlpha = (unsigned char *)RL_MALLOC(atlas.width*atlas.height*sizeof(unsigned char)*2); // Two channels @@ -1350,7 +1350,7 @@ const char *TextToUpper(const char *text) buffer[i] = (char)toupper(text[i]); //if ((text[i] >= 'a') && (text[i] <= 'z')) buffer[i] = text[i] - 32; - // TODO: Support UTF-8 diacritics! + // TODO: Support UTF-8 diacritics to upper-case //if ((text[i] >= 'à') && (text[i] <= 'ý')) buffer[i] = text[i] - 32; } else { buffer[i] = '\0'; break; } diff --git a/src/rtextures.c b/src/rtextures.c index 26d9e2cbe..34c4685f3 100644 --- a/src/rtextures.c +++ b/src/rtextures.c @@ -279,7 +279,7 @@ Image LoadImageAnim(const char *fileName, int *frames) #endif else image = LoadImage(fileName); - // TODO: Support APNG animated images? + // TODO: Support APNG animated images *frames = frameCount; return image; @@ -1481,7 +1481,7 @@ void ImageResizeCanvas(Image *image, int newWidth, int newHeight, int offsetX, i int bytesPerPixel = GetPixelDataSize(1, 1, image->format); unsigned char *resizedData = (unsigned char *)RL_CALLOC(newWidth*newHeight*bytesPerPixel, 1); - // TODO: Fill resizedData with fill color (must be formatted to image->format) + // TODO: Fill resized canvas with fill color (must be formatted to image->format) int dstOffsetSize = ((int)dstPos.y*newWidth + (int)dstPos.x)*bytesPerPixel; @@ -2893,7 +2893,7 @@ TextureCubemap LoadTextureCubemap(Image image, int layout) faces = GenImageColor(size, size*6, MAGENTA); ImageFormat(&faces, image.format); - // TODO: Image formating does not work with compressed textures! + // NOTE: Image formating does not work with compressed textures } for (int i = 0; i < 6; i++) ImageDraw(&faces, image, faceRecs[i], (Rectangle){ 0, (float)size*i, (float)size, (float)size }, WHITE); @@ -3786,45 +3786,69 @@ Color GetColor(unsigned int hexValue) // Get color from a pixel from certain format Color GetPixelColor(void *srcPtr, int format) { - Color col = { 0 }; + Color color = { 0 }; switch (format) { - case PIXELFORMAT_UNCOMPRESSED_GRAYSCALE: col = (Color){ ((unsigned char *)srcPtr)[0], ((unsigned char *)srcPtr)[0], ((unsigned char *)srcPtr)[0], 255 }; break; - case PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA: col = (Color){ ((unsigned char *)srcPtr)[0], ((unsigned char *)srcPtr)[0], ((unsigned char *)srcPtr)[0], ((unsigned char *)srcPtr)[1] }; break; + case PIXELFORMAT_UNCOMPRESSED_GRAYSCALE: color = (Color){ ((unsigned char *)srcPtr)[0], ((unsigned char *)srcPtr)[0], ((unsigned char *)srcPtr)[0], 255 }; break; + case PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA: color = (Color){ ((unsigned char *)srcPtr)[0], ((unsigned char *)srcPtr)[0], ((unsigned char *)srcPtr)[0], ((unsigned char *)srcPtr)[1] }; break; case PIXELFORMAT_UNCOMPRESSED_R5G6B5: { - col.r = (unsigned char)((((unsigned short *)srcPtr)[0] >> 11)*255/31); - col.g = (unsigned char)(((((unsigned short *)srcPtr)[0] >> 5) & 0b0000000000111111)*255/63); - col.b = (unsigned char)((((unsigned short *)srcPtr)[0] & 0b0000000000011111)*255/31); - col.a = 255; + color.r = (unsigned char)((((unsigned short *)srcPtr)[0] >> 11)*255/31); + color.g = (unsigned char)(((((unsigned short *)srcPtr)[0] >> 5) & 0b0000000000111111)*255/63); + color.b = (unsigned char)((((unsigned short *)srcPtr)[0] & 0b0000000000011111)*255/31); + color.a = 255; } break; case PIXELFORMAT_UNCOMPRESSED_R5G5B5A1: { - col.r = (unsigned char)((((unsigned short *)srcPtr)[0] >> 11)*255/31); - col.g = (unsigned char)(((((unsigned short *)srcPtr)[0] >> 6) & 0b0000000000011111)*255/31); - col.b = (unsigned char)((((unsigned short *)srcPtr)[0] & 0b0000000000011111)*255/31); - col.a = (((unsigned short *)srcPtr)[0] & 0b0000000000000001)? 255 : 0; + color.r = (unsigned char)((((unsigned short *)srcPtr)[0] >> 11)*255/31); + color.g = (unsigned char)(((((unsigned short *)srcPtr)[0] >> 6) & 0b0000000000011111)*255/31); + color.b = (unsigned char)((((unsigned short *)srcPtr)[0] & 0b0000000000011111)*255/31); + color.a = (((unsigned short *)srcPtr)[0] & 0b0000000000000001)? 255 : 0; } break; case PIXELFORMAT_UNCOMPRESSED_R4G4B4A4: { - col.r = (unsigned char)((((unsigned short *)srcPtr)[0] >> 12)*255/15); - col.g = (unsigned char)(((((unsigned short *)srcPtr)[0] >> 8) & 0b0000000000001111)*255/15); - col.b = (unsigned char)(((((unsigned short *)srcPtr)[0] >> 4) & 0b0000000000001111)*255/15); - col.a = (unsigned char)((((unsigned short *)srcPtr)[0] & 0b0000000000001111)*255/15); + color.r = (unsigned char)((((unsigned short *)srcPtr)[0] >> 12)*255/15); + color.g = (unsigned char)(((((unsigned short *)srcPtr)[0] >> 8) & 0b0000000000001111)*255/15); + color.b = (unsigned char)(((((unsigned short *)srcPtr)[0] >> 4) & 0b0000000000001111)*255/15); + color.a = (unsigned char)((((unsigned short *)srcPtr)[0] & 0b0000000000001111)*255/15); + + } break; + case PIXELFORMAT_UNCOMPRESSED_R8G8B8A8: color = (Color){ ((unsigned char *)srcPtr)[0], ((unsigned char *)srcPtr)[1], ((unsigned char *)srcPtr)[2], ((unsigned char *)srcPtr)[3] }; break; + case PIXELFORMAT_UNCOMPRESSED_R8G8B8: color = (Color){ ((unsigned char *)srcPtr)[0], ((unsigned char *)srcPtr)[1], ((unsigned char *)srcPtr)[2], 255 }; break; + case PIXELFORMAT_UNCOMPRESSED_R32: + { + // NOTE: Pixel normalized float value is converted to [0..255] + color.r = (unsigned char)(((float *)srcPtr)[0]*255.0f); + color.g = (unsigned char)(((float *)srcPtr)[0]*255.0f); + color.b = (unsigned char)(((float *)srcPtr)[0]*255.0f); + color.a = 255; + + } break; + case PIXELFORMAT_UNCOMPRESSED_R32G32B32: + { + // NOTE: Pixel normalized float value is converted to [0..255] + color.r = (unsigned char)(((float *)srcPtr)[0]*255.0f); + color.g = (unsigned char)(((float *)srcPtr)[1]*255.0f); + color.b = (unsigned char)(((float *)srcPtr)[2]*255.0f); + color.a = 255; + + } break; + case PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: + { + // NOTE: Pixel normalized float value is converted to [0..255] + color.r = (unsigned char)(((float *)srcPtr)[0]*255.0f); + color.g = (unsigned char)(((float *)srcPtr)[1]*255.0f); + color.b = (unsigned char)(((float *)srcPtr)[2]*255.0f); + color.a = (unsigned char)(((float *)srcPtr)[3]*255.0f); } break; - case PIXELFORMAT_UNCOMPRESSED_R8G8B8A8: col = (Color){ ((unsigned char *)srcPtr)[0], ((unsigned char *)srcPtr)[1], ((unsigned char *)srcPtr)[2], ((unsigned char *)srcPtr)[3] }; break; - case PIXELFORMAT_UNCOMPRESSED_R8G8B8: col = (Color){ ((unsigned char *)srcPtr)[0], ((unsigned char *)srcPtr)[1], ((unsigned char *)srcPtr)[2], 255 }; break; - // TODO: case PIXELFORMAT_UNCOMPRESSED_R32: break; - // TODO: case PIXELFORMAT_UNCOMPRESSED_R32G32B32: break; - // TODO: case PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: break; default: break; } - return col; + return color; } // Set pixel color formatted into destination pointer diff --git a/src/utils.c b/src/utils.c index dbf4b3bbb..215454ccd 100644 --- a/src/utils.c +++ b/src/utils.c @@ -375,8 +375,8 @@ FILE *android_fopen(const char *fileName, const char *mode) { if (mode[0] == 'w') { - // TODO: fopen() is mapped to android_fopen() that only grants read access - // to assets directory through AAssetManager but we want to also be able to + // fopen() is mapped to android_fopen() that only grants read access to + // assets directory through AAssetManager but we want to also be able to // write data when required using the standard stdio FILE access functions // Ref: https://stackoverflow.com/questions/11294487/android-writing-saving-files-from-native-code-only #undef fopen